* bus/config-parser.c (service_dirs_find_dir): use
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
2
3         * bus/config-parser.c (service_dirs_find_dir): use 
4         _dbus_list_get_next_link so we don't get stuck in an infinite loop
5         (start_busconfig_child): move processing of standard_session_servicedirs
6         tags here because they have no content
7         (bus_config_parser_content): check we don't have content in 
8         standard_session_servicedirs tag
9
10 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
11
12         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
13         Packagers need to own this directory
14
15 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
16
17         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
18         <standard_session_servicedirs> tag with a <sevicedir> tag that
19         points to the test service directory
20
21 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
22
23         * configure.in: Add a check for DIR *dirp->dd_fd
24
25         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
26         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
27         of both Solaris and Irix
28
29 2006-11-01  Havoc Pennington  <hp@redhat.com>
30
31         * bus/dbus-daemon.1.in: document standard_session_servicedirs
32
33 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
34
35         * configure.in: expose DBUS_DATADIR
36         
37         * bus/config-parser.c: add the standard_session_servicedirs element
38         to the parser
39         (bus_config_parser_content): process the standard_session_servicedirs
40         element by getting the standard directories from sysdeps and merging
41         them into the service directory list
42         (test_default_session_servicedirs): make sure we get what we expect
43
44         * bus/session.conf.in: replace the servicedir tag with the 
45         standard_session_servicedirs tag
46
47         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
48         dbus-sysdeps.h to avoid circular header dependencies
49
50         * dbus/dbus-sysdeps.h: add the typedef of DBusList
51
52         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
53         which takes a string of directories delimited by colons, parses them 
54         out, appends a suffix and puts them in a list ignoring empty elements
55         (_dbus_get_standard_session_servicedirs): returns the standard 
56         directories for a session bus to look for service activation files
57         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
58         DBUS_DATADIR directories
59
60         * test/data/valid-config-files/many-rules.conf: add the 
61         standard_session_servicedirs tag to the valid config file tests
62
63 2006-10-30  Havoc Pennington  <hp@redhat.com>
64
65         * tools/dbus-launch.1, doc/TODO: capture intent to change the
66         command line options of dbus-launch a bit post 1.0
67
68 2006-10-27  Havoc Pennington  <hp@redhat.com>
69         
70         * dbus/dbus-connection.c (dbus_connection_open_private): document
71         how to choose shared vs. private connections
72
73 2006-10-27  Havoc Pennington  <hp@redhat.com>
74
75         * dbus/dbus-test.c: enclose more of the file in the
76         DBUS_BUILD_TESTS check.
77
78         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
79         DBUS_DISABLE_ASSERT case.
80
81         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
82         that it only works on the server side
83
84         * dbus/dbus-bus.c: add a global lock covering the BusData we
85         attach to each connection
86         (internal_bus_get): lock our access to the BusData
87         (dbus_bus_register): lock the entire registration process
88         with _DBUS_LOCK(bus_datas). If we get the lock and 
89         registration is already complete, silently return (vs. previous
90         behavior of aborting).
91         (dbus_bus_set_unique_name): lock the BusData
92         (dbus_bus_get_unique_name): lock the BusData
93
94 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
95
96         * bus/config-parser.c (service_dirs_find_dir, 
97         service_dirs_append_unique_or_free, 
98         service_dirs_append_link_unique_or_free): New static methods
99         for only appending unique service directory names into
100         the service directory list
101         (merge_included, bus_config_parser_content): Only add unique
102         service directory names into the list
103
104 2006-10-27  Havoc Pennington  <hp@redhat.com>
105
106         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
107         variables volatile, suggested by Thiago. Document struct fields.
108         (PTHREAD_CHECK): remove pthread error checking if assertions are
109         disabled, should reduce the no-assertions case to the bare
110         minimum code.
111
112 2006-10-26  Havoc Pennington  <hp@redhat.com>
113         
114         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
115         to be recursive
116         (_dbus_pthread_mutex_unlock): make it recursive
117         (_dbus_pthread_condvar_wait): save/restore the recursion count
118         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
119
120 2006-10-26  Havoc Pennington  <hp@redhat.com>
121
122         * doc/dbus-specification.xml: clarify the UUID text slightly
123
124         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
125         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
126         in preparation for being able to extend them for e.g. recursive
127         mutexes.
128
129 2006-10-26  Havoc Pennington  <hp@redhat.com>
130
131         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
132         condition variables relate to recursive mutexes.
133         
134         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
135         dbus/dbus-threads.c: Split the platforms-specific thread 
136         implementations into their own files.
137         
138         * dbus/dbus-sysdeps-pthread.c
139         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
140         was backward. Not that anything uses it.
141
142 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
143
144         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
145         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
146         needs to be cleaned up more.
147
148         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
149         up the CREDS issue.
150
151 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
152
153         * configure.in, dbus-1.pc.in: Check to see if thread methods 
154         are in glibc or libpthread and add -lpthread to the link stage 
155         if it is the latter
156
157 2006-10-26  Thiago Macieira  <thiago@kde.org>
158
159         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
160         bug 8780: the connection lock is only required while recording
161         the shared connection, so protect only that code
162         section. Don't require connection_lookup_shared to return a
163         locked connection.
164
165 2006-10-26  Thiago Macieira  <thiago@kde.org>
166
167         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
168         check if get_machine_uuid() returns NULL before proceeding any
169         further: we can't init the X atoms or create a session file
170         name if there is no machine ID.
171         This solves a crash reported by some users if
172         --exit-with-session was used without --autolaunch=<machine-id>
173
174 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
175
176         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
177         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
178
179         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
180         before we run dbus-launch
181
182         * configure.in: define TEST_BUS_BINARY to be the full path to 
183         dbus-daemon in the build root 
184
185 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
186
187         * dbus/Makefile.am:
188         * tools/Makefile.am:
189         * toos/dbus-uuidgen.1:
190                 Move the machine-id file to /var/lib/dbus 
191
192 2006-10-24  David Zeuthen  <davidz@redhat.com>
193
194         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
195         _dbus_assert (thread_init_generation != _dbus_current_generation)
196         not _dbus_assert (thread_init_generation == _dbus_current_generation)
197
198 2006-10-24  Thiago Macieira  <thiago@kde.org>
199
200         * dbus/dbus-sysdeps.h:
201         * dbus/dbus-sysdeps-unix.c: Add function
202         _dbus_make_file_world_readable that chmods a file to 0644.
203
204         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
205         Avoid writing to the static "argv" array, thereby avoiding a
206         COW on the child process.
207
208         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
209         call _dbus_make_file_world_readable on the created file.
210
211 2006-10-23  David Zeuthen  <davidz@redhat.com>
212
213         * dbus/dbus-memory.c: Use atomic variable to protect
214         n_blocks_outstanding otherwise OOM will be reported using SMP on
215         some arches
216         
217         * bus/dispatch.c: Add missing end of line characters
218
219         * bus/desktop-file.c (parse_section_start, parse_key_value) 
220         (bus_desktop_file_load): Propertly handle OOM
221
222         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
223         thread_init_generation equals _dbus_current_generation, not 0
224
225 2006-10-22  Havoc Pennington  <hp@redhat.com>
226
227         * dbus/dbus-connection-internal.h: move prototype of
228         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
229         it isn't in a public header and doesn't end up in the DBusBus
230         group in Doxygen
231
232 2006-10-21  Havoc Pennington  <hp@redhat.com>
233
234         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
235         the tarball if packagers want to run it
236
237         * cleanup-man-pages.sh: Add a script which munges all the internal
238         API man pages out of the Doxygen output. This reduces the size of
239         the installed man pages from 7 to 2 megs, and avoids
240         namespace-polluting pages. Right now (like Doxygen) this script
241         isn't in the build, it's something packagers can do manually.
242
243 2006-10-21  Havoc Pennington  <hp@redhat.com>
244
245         * dbus/dbus-connection.h: don't include the watch/timeout
246         functions in connection section
247
248 2006-10-21  Havoc Pennington  <hp@redhat.com>
249
250         * Documentation! Whee! Doxygen now 100% silent. If you make it
251         angry again, you will be punished.
252         
253 2006-10-21  Havoc Pennington  <hp@redhat.com>
254
255         * More documentation - all public API now documented according to
256         Doxygen
257
258 2006-10-21  Havoc Pennington  <hp@redhat.com>
259
260         * Document a bunch of undocumented stuff
261         
262 2006-10-21  Havoc Pennington  <hp@redhat.com>
263
264         * Clean up Doxygen group markers for public API so Doxygen finds
265         everything (not comprehensively fixed for private API).
266         Means all remaining Doxygen warnings are just about missing docs
267         and thus pretty simple to resolve.
268         
269 2006-10-21  Havoc Pennington  <hp@redhat.com>
270         
271         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
272
273         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
274         as DBUS_GNUC_DEPRECATED
275
276 2006-10-21  Havoc Pennington  <hp@redhat.com>
277
278         * Move all private API into the private Doxygen group sections of
279         the files, so they don't show up in the public API docs
280         
281 2006-10-21  Havoc Pennington  <hp@redhat.com>
282
283         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
284         dbus_message_iter_get_array_len().
285
286         * throughout: documentation improvements.
287
288 2006-10-20  Havoc Pennington  <hp@redhat.com>
289
290         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
291         matter, and the message-loader-breaker thing since nobody is going
292         to do it.  Add an item to 1.0 about supporting recursive locks
293         in dbus_threads_init_default() though, since it should be easy.
294
295         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
296         Fix this in the !dispatch case to avoid busy-looping after
297         disconnection
298
299         * More misc docs improvements
300
301 2006-10-19  Havoc Pennington  <hp@redhat.com>
302
303         * more Doxygen-related fixes (lots of moving things from the
304         public to internal section in dbus-connection.c)
305
306 2006-10-19  Havoc Pennington  <hp@redhat.com>
307
308         * Fix a pile of Doxygen warnings and missing docs
309
310 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
311
312         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
313         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
314         instead of a void *.  kqueue uses this to get the context's loop
315         while the other modules ignore the parameter.  This allows us to
316         avoid platform conditionals
317
318         * bus/bus.c (process_config_postinit): Pass in the context to the 
319         watch
320
321 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
322
323         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
324         when starting the system bus
325
326 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
327
328         * configure.in: More fixups for cross compile (Patch from 
329         Marco Pracucci <development at pracucci dot com>)
330
331 2006-10-17  Havoc Pennington  <hp@redhat.com>
332
333         * tools/dbus-send.c (main): don't close shared connection, fix
334         from Timo Hoenig
335
336 2006-10-17  Havoc Pennington  <hp@redhat.com>
337
338         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
339
340         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
341         since realistically it doesn't look like we'll be changing it
342         anymore.
343
344 2006-10-17  Havoc Pennington  <hp@redhat.com>
345
346         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
347         be used for return_if_fail type warnings; prefixes the pid, and
348         fatal by default.
349
350 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
351
352         * configure.in: Released 1.0 RC 2(0.94)
353         Add check for -fPIC and enable it if available
354
355 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
356
357         * doc/TODO: Remove the check TODO item
358
359 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
360
361         * dbus-transport-socket.c (exchange_credentials):
362         Print out more detailed errors if reading or sending
363         credentials fail (Patch from Julio M. Merino Vidal 
364         <jmmv at NetBSD dot org>)
365
366 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
367
368         * configure.in: when checking for posix getpwnam_r assume true
369         for cross compiles
370
371 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
372
373         * configure.in: Check for gethostbyname first before we check for it
374         in libnsl.  On gnu systems it is implemeneted 
375
376 2006-10-13  Havoc Pennington  <hp@redhat.com>
377
378         * dbus/dbus-connection.c
379         (dbus_connection_send_with_reply_and_block): fix to handle closed
380         connections, from Tambet Ingo bug #8631
381
382 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
383
384         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
385
386 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
387
388         * test/name-test/Makefile.am: don't link against both libdbus and
389         libdbus-convenience
390
391 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
392
393         * configure.in: check for dirfd even if it is a macro
394         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
395
396 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
397
398         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
399         avoid using dirfd on systems that don't have dirfd 
400         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
401
402 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
403
404         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
405         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
406
407         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
408         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
409         macro because _dbus_abort calls it
410
411         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
412         works
413
414 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
415
416         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
417         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
418
419 2006-10-02  Thiago Macieira  <thiago@kde.org>
420
421         * tools/dbus-launch.c (main): make it complain and abort
422         execution in case an unknown option is given. Also, process
423         the '--' argument as the end of arguments.
424
425 2006-10-01  Havoc Pennington  <hp@redhat.com>
426
427         * tools/dbus-launch.c (print_variables): if no syntax is given,
428         don't print something that's sort-of-half-sh-syntax, just print
429         a plain key-value pairs thing.
430
431         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
432         the local machine representation (but still have the hostname in
433         the display). Remove the hostname from the display if it is
434         localhost. Change session files to be named
435         ~/.dbus/session-bus/machine-display. Change X atoms to be
436         underscore-prefixed so nobody whines about ICCCM compliance.
437         Otherwise name them the same as the env variables.
438         Change session file format to include key-value pairs and an
439         explanatory comment. Keys are the same as the env variables.
440         (set_address_in_x11): X property format can't depend on
441         sizeof(pid_t) on a particular machine, fix to always be 32 bits
442
443         * tools/dbus-launch.c: make --autolaunch take a machine id
444         argument. If --autolaunch is used with a program to run, complain
445         for now (but add a FIXME). Also, don't look for existing bus if 
446         there's a program to run (but add a FIXME).
447
448         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
449         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
450         just to get this, and avoids duplicating uuid-reading code).
451
452         * tools/dbus-launch.1: clarify various things
453         
454 2006-10-01  Havoc Pennington  <hp@redhat.com>
455
456         * test/test-service.c (path_message_func): remove broken extra
457         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
458
459         * test/test-shell-service.c (path_message_func): same fix
460         
461         * dbus/dbus-connection.c
462         (_dbus_connection_get_dispatch_status_unlocked): break up the
463         function a little for clarity and fix the notification of
464         dbus-bus.c to not require dispatch to be complete
465
466         * dbus/dbus-connection.c (dbus_connection_unref): improve the
467         warning when you try to finalize an open connection.
468         
469 2006-10-01  Havoc Pennington  <hp@redhat.com>
470
471         * dbus/dbus-bus.c
472         (internal_bus_get): only weak ref the connection; this means 
473         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
474         called safely in any context
475         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
476         unref
477
478         * dbus/dbus-connection.c
479         (_dbus_connection_get_dispatch_status_unlocked): move
480         _dbus_bus_notify_shared_connection_disconnected_unlocked here
481         when queuing Disconnected instead of when the Disconnected message
482         arrives, so dbus_bus_get() won't return closed connections.
483         
484 2006-10-01  Havoc Pennington  <hp@redhat.com>
485
486         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
487         Add a hack to make DBusNewConnectionFunction work right.
488
489         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
490         the hack here. Also, fix the todo about refcount leak.
491         
492         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
493         and use the hack here
494         
495         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
496         "shareable" flag; this was completely broken, since it meant 
497         dbus_connection_open() returned a connection of unknown
498         shared-ness. Now, we always hold a ref on anything opened 
499         as shareable.
500
501         Move the call to notify dbus-bus.c into
502         connection_forget_shared_unlocked, so libdbus consistently forgets
503         all its knowledge of a connection at once. This exposed numerous
504         places where things were totally broken if we dropped a ref inside
505         get_dispatch_status_unlocked where
506         connection_forget_shared_unlocked was previously, so move
507         connection_forget_shared_unlocked into
508         _dbus_connection_update_dispatch_status_and_unlock. Also move the
509         exit_on_disconnect here.
510
511         (shared_connections_shutdown): this assumed weak refs to the
512         shared connections; since we have strong refs now, the assertion 
513         was failing and stuff was left in the hash. Fix it to close
514         still-open shared connections.
515         
516         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
517         debug pipe connections
518         
519         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
520         dbus-bus.c if the closed connection is in fact shared
521         (_dbus_connection_close_possibly_shared): rename from 
522         _dbus_connection_close_internal
523         (dbus_connection_close, dbus_connection_open,
524         dbus_connection_open_private): Improve docs to explain the deal
525         with when you should close or unref or both
526
527         * dbus/dbus-bus.c
528         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
529         from _dbus_bus_check_connection_and_unref_unlocked and modify to
530         loop over all connections
531
532         * test/test-utils.c (test_connection_shutdown): don't try to close
533         shared connections.
534
535         * test/name-test/test-threads-init.c (main): fix warnings in here
536
537         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
538         env variable to cause blocking waiting for gdb; drop
539         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
540         unconditionally.
541
542         * configure.in: add -export-dynamic to libtool flags if assertions enabled
543         so _dbus_print_backtrace works.
544
545         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
546         instead of _dbus_verbose to print the backtrace, and diagnose lack 
547         of -rdynamic/-export-dynamic
548         
549 2006-09-30  Havoc Pennington  <hp@redhat.com>
550
551         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
552         (internal_bus_get): fix screwy code formatting. whoever committed
553         that was not paying attention!
554
555 2006-09-30  Havoc Pennington  <hp@redhat.com>
556
557         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
558         reflect addition of interfaces.
559
560         * doc/dbus-specification.xml: describe a new
561         org.freedesktop.DBus.Peer.GetMachineId method
562
563         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
564         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
565         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
566         at end of skip_white
567         (_dbus_string_chop_white): new function
568
569         * bus/connection.c (bus_connections_setup_connection): call
570         dbus_connection_set_route_peer_messages.
571
572         * dbus/dbus-connection.c
573         (_dbus_connection_peer_filter_unlocked_no_update): modify to
574         support a GetMachineId method.
575
576         Also, support a new flag to let the bus pass peer methods through
577         to apps on the bus, which can be set with
578         dbus_connection_set_route_peer_messages.
579
580         Finally, handle and return an error for anything unknown on the
581         Peer interface, which will allow us to extend the Peer interface
582         in the future without fear that we're now intercepting something
583         apps were wanting to see.
584         
585         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
586         dbus/dbus-uuidgen.c
587
588         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
589         binary here, since most of the code is already in libdbus
590
591         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
592         uuid from the system config file
593
594         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
595         (_dbus_read_uuid_file_without_creating) 
596         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
597         uuid-related functions, partly factored out from dbus-server.c
598
599         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
600         DBUS_ERROR_FILE_EXISTS instead of EEXIST
601
602         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
603
604         * tools/dbus-cleanup-sockets.1: explain what the point of this
605         thing is a bit more
606
607         * autogen.sh (run_configure): add --config-cache to default
608         configure args
609
610         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
611         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
612
613         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
614         don't try to save address, fixes crash in make check
615         
616 2006-09-30  Thiago Macieira  <thiago@kde.org>
617
618         * configure.in: add DBUS_BINDIR as a #define to C source code.
619
620         * tools/dbus-launch.c
621         * tools/dbus-launch.h
622         * tools/dbus-launch-x11.c:
623         * tools/dbus-launch.1: Add the --autolaunch option to
624         dbus-launch, which makes it scan for an existing session
625         started with --autolaunch. With that option, it also creates
626         an X11 window and saves the bus address and PID to it.
627
628         * dbus/dbus-sysdeps.h:
629         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
630         a function that runs "dbus-launch --autolaunch" to retrieve
631         the running D-Bus session address (or start one if none was running)
632
633         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
634         address protocol, which tries to get the running session from
635         dbus-launch.
636
637         * dbus/dbus-bus.c:
638         * dbus/dbus-internals.h: Make "autolaunch:" be the default
639         D-Bus session bus address.
640
641         * dbus/dbus-connection.c: Fix horrible typo in error message.
642
643 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
644
645         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
646
647 2006-09-17  Havoc Pennington  <hp@redhat.com>
648
649         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
650         fix so that if unix_user_function is set on windows, we still
651         do the default check that the auth identity matches the bus identity
652
653 2006-09-16  Havoc Pennington  <hp@redhat.com>
654
655         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
656         to _dbus_transport_open_platform_specific,
657         _dbus_transport_open_socket,
658         and _dbus_transport_open_debug_pipe
659
660         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
661
662 2006-09-16  Havoc Pennington  <hp@redhat.com>
663
664         Attempt auditing public API to remove all cases where a Unix
665         function returns weird emulated goo to Windows. This probably 
666         breaks the bus daemon on Windows, to fix it again we may 
667         need to stop processing unix-specific config options on Windows,
668         and may need to add Windows-specific public API or config options.
669         
670         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
671         to reflect added interfaces; should not break soname.
672         
673         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
674         not invoke unix user function on Windows. Kind of a hacky fix, but 
675         we don't want a "unix uid" leaking out on Windows.
676
677         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
678         to get the socket fd on Windows or UNIX
679         (dbus_connection_get_unix_fd): make this always fail on Windows
680
681 2006-09-16  Havoc Pennington  <hp@redhat.com>
682
683         * dbus/dbus-server.c (dbus_server_listen): change how this works
684         to be able to delegate to a set of handlers that can succeed,
685         fail, or choose not to handle. Allows us to have 
686         dbus_server_listen_platform_specific.
687
688         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
689         factor out the tcp socket stuff to be used on windows, leaving
690         unix domain socket only in dbus-socket-unix.c
691
692         * dbus/dbus-transport-socket.c
693         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
694         stuff to be used on windows, leaving unix domain socket only 
695         in dbus-transport-unix.c
696
697         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
698         temporary hack to be sure this fails on windows
699         (dbus_connection_get_unix_process_id): ditto
700
701 2006-09-16  Havoc Pennington  <hp@redhat.com>
702
703         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
704         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
705         _dbus_open_socket so the domain/type/protocol from system headers
706         are not required. This is kind of pointless though unless we move
707         part of _dbus_connect_tcp_socket into sysdeps.c instead of
708         sysdeps-unix.c, which would mean adding a wrapper around
709         bind/listen/etc.
710         Also, add DBusError to the socket-opening functions so they 
711         don't require use of errno.
712
713 2006-09-16  Havoc Pennington  <hp@redhat.com>
714
715         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
716         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
717
718         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
719         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
720         functions specifically for sockets only, and move generic 
721         read/write/open/close into unix-specific code.
722
723 2006-09-14  Havoc Pennington  <hp@redhat.com>
724
725         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
726         complaint about accessing revents when poll returns 0, from Julian Seward.
727
728 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
729
730         * Released 1.0 RC 1 (0.93) 
731
732 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
733
734         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
735         use _dbus_close instead of close
736
737 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
738
739         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
740         credentials.  Fixes "external" authentication under e.g. NetBSD
741         which does not support any other socket credentials mechanism.
742         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
743
744 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
745
746         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
747         dbus_threads_init and be used by the dbus mutex functions to
748         avoid deadlocks.
749
750         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
751
752 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
753
754         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
755         use threadsafe readdir_r instead of readdir
756
757 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
758
759         * dbus-threads.c (dbus_threads_init_default): New method for
760         initializing the internal thread implementation (Patch from
761         Alexander Larsson <alexl at redhat dot com>)
762
763 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
764
765         * remove a bunch of todo items from the 1.0 list
766
767 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
768
769         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
770         key not found
771
772 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
773
774         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
775         complex debugging code
776
777         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
778         between the test suite ifdefs
779         (_dbus_verbose_bytes): return if verbosity is not enabled 
780
781 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
782
783         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
784         remove DBusMark
785
786 2006-09-10  Havoc Pennington  <hp@redhat.com>
787
788        patch mostly by Peter Kümmel, bug #8211
789         
790         * dbus/dbus-sysdeps-unix.c: new file, which splits out
791         unix-specific stuff in dbus-sysdeps.c
792
793         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
794         and move unix-specific stuff to dbus-sysdeps-unix.c
795
796         * configure.in: check HAVE_ERRNO_H
797         
798 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
799
800         * bus/test-main.c (main): Initialize threading during tests
801
802         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
803         Unlock connection on error
804         (generate_local_error_message): static method for generating
805         an error message when we don't have a message to reply to
806         (_dbus_connection_block_pending_call): Send a disconnect error
807         instead of just a timeout (NULL) when the bus gets disconnected
808         while blocking for a reply.
809         
810 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
811
812         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
813         filters (Patch from Kimmo Hämäläinen 
814         <kimmo dot hamalainen at nokia dot com>)
815
816 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
817
818         * dbus/dbus-connection-internal.h: Add prototype for 
819         _dbus_connection_test_get_locks to remove warning
820
821 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
822
823         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
824         close child_err_report_pipe[WRITE_END] on exec (Patch from 
825         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
826
827 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
828
829         * Clean up close calls to use _dbus_close (Patch from 
830         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
831
832 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
833
834         * doc/TODO:
835         - Remove pending call locking todo item
836         - dbus_connection_open now holds hard ref.  Remove todo item
837         - do proper locking on _dbus_bus_check_connection_and_unref
838           and handle DBUS_BUS_STARTER. Remove todo item
839         - Warn on closing of a shared connection.  Remove todo item
840
841         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
842         dbus/dbus-connection.c: Use the dbus_connection_close_internal
843         so we don't get the warning when closing shared connections
844
845         * test/test-service.c, test/test-shell-service.c: Applications
846         don't close shared connections themselves so we unref instead of
847         close
848
849         * test/test-utils.c (test_connection_shutdown): Close the connection
850
851         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
852         _dbus_bus_check_connection_and_unref_unlocked since we only call this
853         method on a locked connection.  
854         Make sure we call _dbus_connection_unref_unlocked instead of 
855         dbus_connection_unref also.
856         Handle DBUS_BUS_STARTER correctly
857
858         * dbus/dbus-connection.c (connection_record_shared_unlocked):
859         Mark as shared and hard ref the connection
860         (connection_forget_shared_unlocked): Remove the hard ref from the 
861         connection
862         (_dbus_connection_close_internal_and_unlock):  New internal function
863         which takes a locked connection and unlocks it after closing it
864         (_dbus_connection_close_internal): New internal function which acts
865         like the origonal dbus_connection_close method by grabbing a connection
866         lock and calling _dbus_connection_close_internal_and_unlock
867         (dbus_connection_close): Public close method, warns when the app
868         trys to close a shared connection
869
870 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
871
872         * bus/driver.c:
873         (bus_driver_generate_introspect_string): New method for populating
874         a DBusString with the introspect data
875         (bus_driver_handle_introspect): Move introspect generation code to 
876         bus_driver_generate_introspect_string
877
878         * bus/main.c:
879         (introspect): New function which prints out the intropect data and
880         exits
881         (main): Add a --introspect switch
882
883 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
884
885         * doc/TODO: Removed dtd publishing item.  
886         It seems the dtd has already been added at
887         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
888
889 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
890
891         * doc/TODO, various source files: Audited todo's and FIXME's and
892         prepended the ones we should be looking at with 1.0.  Those
893         prepended with 1.0? need clerification or might not be needed
894         for 1.0
895
896 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
897
898         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
899         NULL in the public API (Patch from Kimmo Hämäläinen 
900         <kimmo dot hamalainen at nokia dot com>)
901
902 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
903
904         * configure.in: Fix for OS-X compile time endian issues (patch from
905         Benjamin Reed <ranger at befunk dot com>)
906
907 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
908
909         * configure.in: Check for no-common compiler flag (OS-X fix from
910         Benjamin Reed <ranger at befunk dot com>)
911
912 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
913
914         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
915         <fcrozat at mandriva dot com>)
916
917 2006-08-29  Havoc Pennington  <hp@redhat.com>
918
919         * test/test-service.c (path_message_func): fix lack of return value
920
921         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
922         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
923         any more sense than on anything else in this file.
924         (_dbus_get_tmpdir): add const to return value, and keep the
925         results of the various getenv around in a static variable.
926
927 2006-08-29  Havoc Pennington  <hp@redhat.com>
928
929         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
930         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
931
932 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
933
934         * test/Makefile.am: change find to use syntax that works with non
935         gnu versions of find
936
937 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
938
939         * dbus/dbus-transport.c: fix invalid deref when checking if
940         a vtable method exists (Patch from Christian Ehrlicher 
941         <ch dot ehrlicher at gmx dot de>)
942
943 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
944
945         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
946         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
947         to build with builddir != srcdir (Taken from a patch by Bernard Leak
948         <bernard at brenda-arkle dot demon dot co dot uk>)
949
950 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
951
952         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
953         default case
954
955 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
956
957         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
958         it works on any system providing this interface, not only FreeBSD.
959         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
960
961 2006-08-20  Havoc Pennington  <hp@redhat.com>
962
963         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
964         the docs
965
966 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
967
968         * Released 0.92 
969
970 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
971
972         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
973         to reflect the init late change
974
975         * bus/bus.c (bus_context_new): Check user before we fork so we can
976         print out an error message a user will be able to see
977
978 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
979
980         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
981
982         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
983         Add two more global locks for use on windows platforms.  These are
984         unused on non-windows platforms but are not ifdefed out to avoid
985         potential bugs (i.e. the few bytes lost does not warrent the extra
986         maintanence and complexity that having seperate sets of locks would
987         cause)
988
989 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
990
991         * bus/services.c (bus_registry_acquire_service): Return an error
992         when an application tries to register the org.freedesktop.DBus Bus Name
993
994         * bus/services.c (bus_registry_release_service): Return an error
995         when an application tries to release the org.freedesktop.DBus Bus Name
996
997 2006-08-17  Alp Toker  <alp@atoker.com>
998
999         * doc/dbus-specification.xml: Fix some minor typos.
1000
1001 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * configure.in: use $with_init_scripts instead of $operating_system
1004         to determine where to store the pid since the init scripts manipulate 
1005         the pid file (patch from Marcelo Ricardo Leitner 
1006         <marcelo dot leitner at terra dot com dot br>.  
1007
1008 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1009
1010         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1011         static DBusList *uninitialized_condvar_list to support new late 
1012         initialization threading model.  In this model threads can be initialized
1013         even after the D-Bus API has been used but still needs to be initialized 
1014         before the second thread has been started.  Mutexes and condvar addresses
1015         are stored in the two static lists and are replaced with actuall locks
1016         when threads are initalized.
1017         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1018         the location into the static list
1019         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1020         from the static list and freeing the mutex
1021         (_dbus_condvar_new_at_location): New method for creating a conditional 
1022         variable and placing the location into the static list
1023         (_dbus_condvar_free_at_location): New method for removing a conditional
1024         variable location from the static list and freeing the conditional variable 
1025         (init_uninitialized_locks): Atomic method which goes through the static 
1026         lists of mutex and condvar location and updates them with actuall locks
1027         (init_global_locks): changed to init_locks
1028         
1029         * dbus/dbus-connection.c:
1030         (_dbus_connection_test_get_locks): New method for tests to check connections
1031         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1032         condvar API
1033         (dbus_connection_allocate_data_slot): Pass in the global lock address
1034         to _dbus_data_slot_allocator_alloc
1035
1036         * dbus/dbus-dataslot.c:
1037         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1038         instead of the mutex itself
1039
1040         * dbus/dbus-message.c:
1041         (dbus_message_allocate_data_slot): Pass in the global lock address
1042         to _dbus_data_slot_allocator_alloc
1043
1044         * dbus/dbus-pending-call.c:
1045         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1046         to _dbus_data_slot_allocator_alloc
1047
1048         * dbus/dbus-server.c:
1049         (_dbus_server_init_base): Use the new at_location mutex API
1050         (dbus_server_allocate_data_slot): Pass in the global lock address
1051         to _dbus_data_slot_allocator_alloc
1052
1053         * test/name-test/test-threads-init.c: New test case for late thread
1054         initialization
1055
1056 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1057
1058         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1059         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1060         causes compile problems when asserts are turned off
1061         Keeping _dbus_warn for printing out the message so even if
1062         asserts are turned off the user gets the messages that something is 
1063         wrong 
1064
1065 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1066
1067         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1068
1069         * bus/services.c (bus_service_list_queued_owners):
1070         Add a pointer cast to fix compiler warning
1071
1072         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1073         return a NULL instead of FALSE since the return type
1074         is not expecting a boolean
1075
1076         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1077         Remove unused variable
1078
1079         * dbus/dbus-marshal-recursive-util.c (node_new):
1080         return a NULL instead of FALSE since the return type
1081         is not expecting a boolean
1082
1083         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1084         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1085         because we are expecting a pointer not a boolean
1086
1087         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1088         add void as the parameter so some compilers
1089         don't complain
1090
1091         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1092           _dbus_transport_new_for_tcp_socket):
1093         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1094         because we are expecting a pointer not a boolean
1095
1096         * test/shell-test.c (test_command_line):
1097         cast the second argument to _dbus_list_append to avoid compiler
1098         warnings
1099
1100         * test/test-names.c (main): remove unused variable
1101
1102         * test/test-service.c (check_hello_from_self_reply):
1103         Initialize echo_message and echo_reply to NULL
1104         
1105         * test/test-shell-service.c (handle_echo):
1106         Remove unused variable and cast the third parameter passed to
1107         dbus_connection_get_object_path_data to avoid compiler warrnings
1108
1109         * test/name-test/test-names.c (clear_message_queue):
1110         Remove unused function
1111
1112         * test/name-test/test-pending-call-dispatch.c:
1113         Fix format string in printf
1114
1115
1116 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1117
1118         * dbus/dbus-bus.c:
1119         * test/name-test/test-names.c:
1120         Remove test method dbus_bus_connection_get_unique_name because 
1121         we already have public method dbus_bus_get_unique_name that 
1122         does the exact same thing
1123
1124 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1125
1126         * dbus/dbus-signature.c:
1127         fix typos in Julio's previous patch which cause make check to fail
1128
1129 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1130
1131         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1132         In any case it was wrong since this is a test checking to see if
1133         address parsing is correct.  There was no need to get the true
1134         tmp directory.  
1135
1136 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1137
1138         * dbus/dbus-macros.h: Revert the addition of stddef.h
1139         as we should not be adding it to library headers 
1140
1141 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1142
1143         * dbus/dbus-signature.c:
1144         Fix the unit tests so that they work if assertions are not enabled.
1145         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1146
1147 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1148
1149         * tools/run-with-tmp-session-bus.sh:
1150         * test/name-test/run-test.sh:
1151         Remove bashisms (patch from Julio M. Merino Vidal
1152         <jmmv at NetBSD dot org>)
1153
1154 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1155
1156         * configure.in: add a version (>= 2.6.0) check for libxml2
1157
1158 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1159
1160         * configure.in: make sure the compiler supports -Wfloat-equal
1161         
1162         * bus/dir-watch-dnotify.c: move functional code after 
1163         variable declerations (C99 fix)  (patches from Jens Granseuer
1164         <jensgr at gmx dot net>
1165
1166 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1167
1168         * dbus/dbus-macros.h:
1169         add #include <stddef.h> so that Sun compilers don't complain about
1170         the defining NULL
1171
1172 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1173
1174         * dbus/dbus-sysdeps.c:
1175         * dbus/dbus-address.c:
1176         * bus/activation.c:
1177         * test/shell-test.c:
1178         don't hardcode tmp directory (patch from Dave Meikle 
1179         <dmk at davemeikle dot co dot uk>)
1180
1181 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1182
1183         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1184         Change an assert to a detailed warning and abort.  
1185         When allocator->lock != mutex it indicates that the user has failed
1186         to initalize threads before using the D-Bus library.  This warning
1187         helps the user identify the issue and fix their app.
1188
1189 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1190
1191         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1192         with cleanups of bugs found from Coverity reports:
1193
1194         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1195         close the file on error to avoid a leak
1196
1197         * bus/expirelist.c (bus_expire_list_test):
1198         Check for NULL on dbus_new0
1199
1200         * bus/activation.c (update_directory):
1201         remove dead code
1202
1203         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1204         Fix some leaks
1205
1206         * bus/bus.c (process_config_every_time):
1207         Fixed a leak
1208
1209         * bus/desktop-file.c (parse_key_value):
1210         Fixed leak
1211
1212         * bus/selinux.c (bus_selinux_id_table_insert):
1213         Fixed leak
1214
1215 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1216
1217         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1218         remove dead code
1219
1220 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1221
1222         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1223         #!/bin/bash
1224
1225 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1226
1227         * Doxyfile.in: fix the INPUT line so we can generate docs 
1228         when sourcedir != builddir (patch from Cygwin Ports maintainer
1229         <yselkowitz at users dot sourceforge dot net>
1230
1231 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1232
1233         * dbus/dbus-sysdeps.h:
1234         * dbus/dbus-sysdeps.c: 
1235         * dbus/dbus-string.c: 
1236         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1237         GLib's function which does the same thing
1238
1239         * configure.in:
1240         * bus/Makefile.am:
1241         * bus/dir-watch-default.c:
1242         * bus/dir-watch-dnotify.c:
1243         * bus/dir-watch-kqueue.c:
1244         Add kqueue directory watching for freebsd and split the directory
1245         watching code into seperate files per method/arch
1246         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1247
1248 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1249
1250         * configure.in:
1251         * tools/Makefile.am:
1252         * tools/dbus-launch.c:
1253         * bus/Makefile.am:
1254         allow --with-dbus-daemondir switch to be used to make the
1255         daemon install to a seperate bindir like /usr/libexec
1256         (patch from Brian Cameron <brian dot cameron at sun dot com)
1257
1258 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1259
1260         * bus/Makefile.am (install-data-hook): removed the slash after 
1261         $(DESTDIR) so we don't get the double slash which does not work
1262         in windows (patch from Andras Porjesz 
1263         <andras dot porjesz at siemens dot com>)
1264
1265 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1266
1267         * dbus/dbus-sysdeps.h:
1268         * dbus/dbus-sysdeps.c: 
1269           add _dbus_printf_length (patch from Peter Kümmel 
1270           <syntheticpp at gmx dot net>)
1271
1272 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1273
1274         * dbus/dbus-internals.c: unistd.h is not used 
1275         (_dbus_verbose_real): only enable verbose printing 
1276         if DBUS_VERBOSE environment var is set to '1'
1277         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1278
1279 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1280
1281         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1282         so we still compile on older gcc (patch from Frederic Peters 
1283         <fpeters at 0d dot be>
1284
1285 2006-08-04  Havoc Pennington  <hp@redhat.com>
1286
1287         * configure.in: add -Wdeclaration-after-statement
1288
1289         * dbus/dbus-connection.c: change all the pending call stuff to
1290         reflect the fact that pending call operations use the connection
1291         lock
1292
1293         * dbus/dbus-pending-call.c: add locking here
1294
1295         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1296         field const consistent with how message field is done
1297
1298 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1299
1300         * s/D-BUS/D-Bus/g
1301
1302 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1305         <in7y118 at public.uni-hamburg dot de> - fix invalid
1306         read/write reported by valgrind
1307
1308 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * Released 0.91
1311
1312 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1313
1314         * dbus/dbus-connection.c:
1315         (_dbus_connection_attach_pending_call_unlocked):
1316         (connection_timeout_and_complete_all_pending_calls_unlocked):
1317         Make sure we set timeout_added on pending calls to FALSE when
1318         we remove the timeout from the connection
1319
1320 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * Removed some extra bindings stuff lingering around (thanks timo)
1323         * dbus-pendingcall.c (_dbus_pending_call_new): 
1324         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1325         when we tried to take a lock on an already locked connection
1326
1327 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * Released 0.90
1330
1331 2006-07-17  Havoc Pennington  <hp@redhat.com>
1332
1333         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1334         ints, reported by Owen Taylor
1335
1336 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1337
1338         * doc/TODO:
1339         * dbus/dbus-bus.c:
1340         * dbus-errors.c:
1341         * dbus/dbus-marshal-validate.c:
1342           Removed TODO items which were fixed or are no longer relevent
1343
1344 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1345
1346         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1347         Remove stray files from the stripped bindings
1348
1349 2006-07-16  Havoc Pennington  <hp@redhat.com>
1350
1351         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1352         Improve the error message on reply timeout
1353
1354 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * Remove all bindings
1357
1358 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1359
1360         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1361         and set pending_reply out arg to NULL is connection is disconnected
1362         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1363         static method for cleaning up pending calls on disconnect
1364         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1365         calls queued timeouts on disconnect 
1366
1367          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1368         Remove 
1369
1370 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1371
1372         * bus/activation.[ch] (bus_activation_list_services): new function to 
1373         get the list of services that can be activated
1374
1375         * bus/dispatch.c: test coverage for the new bus method
1376         ListActivatableNames
1377
1378         * bus/driver.c: new bus method ListActivatableNames to get the list of
1379         services that can be activated
1380
1381         * doc/dbus-specification.xml: ListActivatableNames method documentation
1382
1383 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1384         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1385         source files
1386
1387 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1388         * dbus/dbus-message-factory.c:
1389         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1390
1391 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1392         * dbus/dbus-connection-internal.h:
1393         * dbus/dbus-connection.c:
1394         * file dbus/dbus-pending-call.c:
1395         * dbus/dbus-pending-call.h:
1396         Make DBusPendingCall an opaque type even to D-Bus internals
1397
1398 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1399
1400         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1401         connection_close
1402
1403         * dbus/dbus-connection.c: include dbus-bus.h
1404         (_dbus_connection_read_write_dispatch): make static
1405
1406 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1407
1408         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1409         function
1410         (dbus_connection_dispatch): On disconnect unref any shared connections
1411
1412         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1413         for cleaning up shared connections on disconnect
1414         (internal_bus_get): get a hard refrence to shared connections when
1415         they are created
1416         
1417         * doc/TODO: Remove items which are no longer relevent or have been fixed
1418         Split 1.0 todo items with a 0.90 freeze todo list
1419  
1420 2006-06-14  Ross Burton  <ross@openedhand.com>
1421
1422         * glib/dbus-gobject.c:
1423         Free a leaking GArray (surely not!) in dbus_g_method_return.
1424
1425 2006-06-14  Ross Burton  <ross@openedhand.com>
1426
1427         * tools/Makefile.am:
1428         * tools/dbus-monitor.c:
1429         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1430         Habacker).
1431         
1432 2006-06-14  Ross Burton  <ross@openedhand.com>
1433
1434         * tools/dbus-print-message.c:
1435         Also print the object path when outputting signals or method calls.
1436
1437 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1438
1439         * qt/src/Makefile.am: install the qdbus.h header.
1440         This allows people to actually use the installed code.
1441
1442 2006-06-12  Ross Burton  <ross@openedhand.com>
1443
1444         * glib/dbus-gproxy.c:
1445         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1446
1447 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1448
1449         * Released 0.62
1450
1451 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1452
1453         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1454         break pedantic builds. Closes bug 6043 (patch approved by
1455         Havoc back in February).
1456
1457 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1458
1459         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1460         that took a QDBusMessage parameter.
1461         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1462         * qt/tools/dbus.cpp: Don't use automatic call because we might
1463         be calling an async method: request a reply.
1464
1465 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1466
1467         * test/qt/*: Update the testcases, including testing the new
1468         functionality of sending null QByteArray and QString over the
1469         bus. Add new headertest test and restore the old
1470         qdbusxmlparser test.
1471
1472 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1473
1474         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1475         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1476
1477         * qt/examples/Makefile.am:
1478         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1479         form.
1480
1481         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1482         QByteArray() (nulls) over the bus.
1483         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1484         the one that has the signature suffix stripped.
1485         * qt/src/qdbusreply.h: Make some methods const.
1486
1487 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1488
1489         Patch from Timo Hoenig <thoenig@suse.de>.
1490
1491         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1492         required during build to EXTRA_DIST.
1493         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1494         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1495         * configure.in: Fix "make dist", take care that the Makefile for
1496         qt/dbus is being generated.
1497
1498 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1499
1500         * bus/bus.c: Fix eavesdropping on method calls
1501
1502 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1503
1504         * configure.in:
1505         * dbus/dbus-userdb-util.c:
1506         Add Solaris console owner patch from Artem Kachitchkine
1507
1508 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1509
1510         * qt/Makfile.am:
1511         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1512         reorganisation. Thanks to Timo Hoenig for pointing this out.
1513
1514 2006-06-06  Robert McQueen  <robot101@debian.org>
1515
1516         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1517           call to dbus_g_type_get_struct.
1518
1519 2006-06-06  Robert McQueen  <robot101@debian.org>
1520
1521         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1522           pointers were put into a GPtrArray-based specialised collection, and
1523           then freed along with the array. GValues which you add into
1524           collections or maps which have the NOCOPY flag set are assumed to not
1525           belong to the caller, so rather than the existing pointer-stealing
1526           semantics, they are copied instead. Given that the main consumers of
1527           this abstraction are the bindings themselves, I don't think this is
1528           too bad, but others should watch their choice of take vs set_static.
1529
1530 2006-06-06  Robert McQueen  <robot101@debian.org>
1531
1532         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1533           of g_slist_prepend not being used. Fixed copying of slist-based
1534           specialised collections, then wrote a test case and found that it was
1535           all broken. Went on to fix iterating and appending too. Good thing
1536           nobody uses this code yet.
1537
1538 2006-06-06  Robert McQueen  <robot101@debian.org>
1539
1540         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1541           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1542           are discarded without unsetting, so it makes no difference whether
1543           we take or set_static). Remove cases for G_TYPE_POINTER because
1544           there really is nothing useful we can do with them in our
1545           specialised types - we *need* boxed copy/free functions at the very
1546           least.
1547
1548 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1549
1550         * qt/dbus: Add directory. I had forgotten to add this
1551         yesterday after the move...
1552
1553         * qt/examples/Makefile.am:
1554         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1555
1556         * qt/tools/Makefile.am:
1557         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1558         Added feature to get and set properties.
1559         Added validation of service, object path and interface names.
1560
1561         * qt/tools/dbusidl2cpp.cpp: Two new features:
1562         1) Allow specifying both the header and the source file names,
1563         by separating them with a colon.
1564         2) Don't write an interface output if the -p switch wasn't
1565         given, but the -a was.
1566
1567         * qt/src/*: Fix usage of Iterators and ConstIterators.
1568         Fix shadowing of variables by other variables (-Wshadow).
1569         Fix keyword-cleanliness in headers.
1570         Fix ASCII-cast (QLatin1String, QLatin1Char).
1571         Fix validation of member names.
1572         Add extra checking of introspection data during XML parsing.
1573         Various bug fixes.
1574
1575 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1576
1577         * dbus/Makefile.am:
1578         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1579         qt/dbus/qdbus.h now.
1580
1581 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1582
1583         * configure.in: Make --disable-qt actually do
1584           something. Patch inspired by Zack Rusin.
1585
1586 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1587
1588         * qt/: Update to Subversion r548032.
1589         This includes a big reorganisation of the files inside the
1590         subdir.
1591
1592 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1593
1594         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1595         clear:  
1596         "Failed to connect to socket <host>:<port> <error>" instead of
1597         "Failed to connect to socket <host>: <error>:<port>"
1598
1599         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1600         for a tcp transport. 
1601
1602 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1603
1604         * qt/*: Update the QtDBus bindings up to revision 546310 in
1605         Subversion.
1606         This adds the dbuscpp2xml tool, that parses a C++ header and
1607         outputs a D-BUS Introspection XML.
1608
1609 2006-05-21  Havoc Pennington  <hp@redhat.com>
1610
1611         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1612         is not NULL when it shouldn't be. Also a couple of possible fixes
1613         for #4637 though I don't understand why the bug happens, to be
1614         honest... also the object constructor has an assert name != NULL
1615         and the name is only currently NULL for peer-to-peer proxies that 
1616         I don't think anyone uses? So it should be asserting.
1617         Anyway, for now at least see if we get an earlier assertion failure.
1618
1619         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1620         apparently broken code to be sure the tests fail and someone 
1621         will fix them...
1622
1623 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1624
1625         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1626         and arrays when they had a single element: has_next returns
1627         false, even before you read the element. So, instead, check
1628         the array length.
1629
1630 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1631
1632         * qt/qdbusmessage.cpp:
1633         * qt/qdbustypehelper_p.h:
1634         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1635         the list is a const-reference
1636
1637 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1638
1639         * Adding old doc patch that never got applied
1640         
1641         * dbus/bus.c (dbus_bus_add_match): Add documentation
1642
1643         * doc/dbus-specification.xml: Add documentation for the match rules
1644           and the AddMatch and RemoveMatch methods
1645
1646 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1647
1648         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1649         call (r535506)
1650
1651         * qt/dbusidl2cpp.cpp:
1652         * qt/qdbusabstractadaptor.cpp:
1653         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1654         sibling of the QDBusAbstractAdaptor objects instead of the
1655         parent. (r535848)
1656
1657         * qt/dbusidl2cpp.cpp:
1658         * qt/qdbusabstractinterface.cpp:
1659         * qt/qdbusabstractinterface.h:
1660         * qt/qdbusabstractinterface_p.h:
1661         * qt/qdbusinterface.cpp: Make properties in interfaces
1662         actually work. The code that was generated would not compile,
1663         due to moc calls to functions that did not exist. They now
1664         shall. (r536571)
1665
1666 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1667
1668         * Makefile.am:
1669         * configure.in:
1670         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1671         Thanks to Brad Hards for providing the patch
1672
1673 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1674
1675         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1676         call. (r535506)
1677
1678 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1679
1680         * qt/examples/dbus.cpp: Enhance error messages and use
1681         QDBusInterfacePtr.
1682
1683 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1684
1685         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1686         and disable the copy operators. (r533772, r534746)
1687
1688         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1689
1690         * qt/qdbusabstractinterface.cpp:
1691         * qt/qdbusabstractinterface.h: Change the default call mode to
1692         not use the event loop. Add convenience call() methods that
1693         take a CallMode parameter. (r534042)
1694
1695         * qt/qdbusconnection.h: Change the default call mode to not
1696         use the event loop. (r534042)
1697
1698         * qt/qdbusinterface.cpp:
1699         * qt/qdbusinterface.h: Add a method to tell us if the
1700         interface is valid (since we don't return a null pointer
1701         anymore) (r534099)
1702
1703         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1704         (r534101)
1705
1706         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1707         function in two so taht we get the chance to introspect
1708         without having a QDBusMessage (r534102)
1709
1710         * qt/qdbusbus.h:
1711         * qt/qdbusconnection.cpp:
1712         * qt/qdbusconnection_p.h:
1713         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1714         avoid a round-trip to the server when attempting to introspect
1715         one of our own objects. Also make sure the filter functions
1716         match the empty interface as well. (r534108)
1717         Don't keep the connection names. Instead, trust the unique
1718         connection name (r534111)
1719         Remove event loop usage (r534112)
1720
1721 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1722
1723         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1724         Brad Hards.
1725
1726 2006-04-28  Robert McQueen  <robot101@debian.org>
1727
1728         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1729         any order, making it easier for people who inherit from this
1730         object.
1731
1732 2006-04-28  Robert McQueen  <robot101@debian.org>
1733
1734         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1735         of memory from within pointer arrays and lists. Fixes bug #6300.
1736
1737 2006-04-28  Robert McQueen  <robot101@debian.org>
1738
1739         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1740         generating struct signatures. Fixes bug #6083.
1741
1742 2006-04-28  Robert McQueen  <robot101@debian.org>
1743
1744         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1745         to qdbusconnection_p.moc.
1746
1747 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1748
1749         * README, INSTALL: Doc fixes
1750         Patch from Brad Hards <bradh at frogmouth.net>
1751
1752 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1753
1754         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1755         the dynamic meta object. No need to guess which interface to
1756         call.
1757
1758 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1759
1760         * qt/qdbusconnection_p.h:
1761         * qt/qdbusmetaobject.cpp:
1762         * qt/qdbusmetaobject_p.h:
1763         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1764         for the dynamic meta object. No need to guess which
1765         interface to call.
1766         * qt/qdbusabstractinterface_p.h:
1767         * qt/qdbusconnection.cpp:
1768         * qt/qdbusintegrator.cpp:
1769         * qt/qdbusinterface.cpp:
1770         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1771         Add a QDBusRef that looks and behaves like DCOPRef.
1772
1773 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1774
1775         * dbus/dbus-connection.c: Interfaces are optional in method
1776         calls, so don't give up if the interface parameter is NULL.
1777         Patch reviewed by Havoc Pennington.
1778
1779 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1780
1781         * qt/qdbusreply.h: Add default constructor and operator=
1782           (r532625)
1783         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1784           in public headers (r532952)
1785         * qt/qdbusabstractinterface.cpp:
1786         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1787           make it the default (r532951)
1788
1789 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1790
1791         * dbus/dbus-connection.c: Fix asserts
1792         Patch from Tim Moloney <t.moloney at verizon.net>
1793
1794 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1795
1796         * mono/Connection.cs, mono/Message.cs: Check Target type
1797         Patch from Aaron Bockover (abockover at novell.com)
1798
1799 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1800
1801         * INSTALL: fine-tune the requirements for the Qt4 binding.
1802
1803 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1804
1805         * tools/dbus-print-message.c: Added support for printing of all 
1806           remaining data types. Fixed logic for indentation of compound
1807           data types.
1808         
1809 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1810
1811         * INSTALL: fill out content of file providing DBus specific
1812           build installations, followed by generic Auto* INSTALL file
1813           content
1814         
1815 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1816
1817         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1818           Patch by Stefan Eilers. (r529537)
1819
1820 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1821
1822         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1823           contents (r528208)
1824
1825 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1826
1827         * qt/Makefile.am: fix the dependency for
1828           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1829           not in qdbusconnection.cpp.
1830           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1831           spotting this.
1832
1833 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1834
1835         * qt/examples/listnames.cpp:
1836         * qt/examples/Makefile.am: Three ways to list the names on the
1837           bus.
1838
1839 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1840
1841         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1842           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1843
1844 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1845
1846         Merge from Subversion:
1847         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1848           something that exists (r526315)
1849         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1850           slots/signals (r526316)
1851         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1852           also return an unknown-method error if the parameters don't
1853           match for org.freedesktop.DBus.Properties. (r526842)
1854         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1855         * qt/qdbusintegrator.cpp: Restore the proper order of
1856           delivery: don't make method returns be delivered on priority
1857           (r528150)
1858
1859 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1860
1861         * configure.in qt/Makefile.am: add qt/examples
1862         * qt/examples: Add QtDBus example programs:
1863           - hello: Hello, World
1864           - ping: Simple method-calling program
1865           - pong: Simple object-exporting program (not using adaptors)
1866           - complexping: Interactive method-calling program 
1867                 (also gets and sets properties).
1868           - complexpong: Sample program exporting methods, signals and
1869                 properties, using adaptors.
1870           - dbus: Simple implementation of a generic method-calling
1871                 program, similar to 'dbus-send', but with semantics
1872                 similar to 'dcop'.
1873           - chat: Simplistic chat program, implemented using signals
1874                 and the system bus. Looks like IRC.
1875
1876 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1877
1878         * configure.in: Detect QtGui (necessary for one of the
1879           example programs). Note: this increases the minimum required
1880           version of Qt to 4.1.3.
1881
1882 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1883
1884         * test/qt/*: Sync with KDE Subversion revision 523647.
1885         Update the testcases to the new API. Remove testcases for
1886         classes that are no longer public or have been removed.
1887
1888 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1889
1890         * qt/*: 
1891         * dbus/qdbus.h: Sync with KDE Subversion revision
1892         523647. Hopefully, this will be the last of the
1893         source-incompatible changes. Documentation has been improved;
1894         support for QList<basic-types> has been added; QDBusObject is
1895         gone; QDBus(Abstract)Interface is now a QObject with
1896         auto-generated meta-object; QDBusIntrospection is marked
1897         private, since QMetaObject can be used now; lots of bugfixes.
1898
1899 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1900
1901         Patch from Milosz Derezynski <internalerror at gmail.com>
1902         
1903         * configure.in:
1904         Output the service directory in the configure summary
1905
1906         * dbus-1.pc.in:
1907         Add session_bus_services_dir
1908
1909 2006-03-10  Ross Burton  <ross@openedhand.com>
1910
1911         * tools/dbus-print-message.c:
1912         Add support for object paths and signatures.
1913
1914 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1915
1916         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1917         config reload.
1918         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1919         information caches
1920         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1921         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1922         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1923         * dbus/dbus-userdb.h: Add function to flush all user/group information
1924         caches.
1925
1926 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1927
1928         * qt/dbusidl2cpp.cpp:
1929         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1930         for dcopidl2cpp, found in the KDE installations (or the more
1931         modern kalyptus): generate Qt4 C++ code for the input XML
1932         introspection. Currently no IDL parsing.
1933
1934 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1935
1936         * test/qt/*: Update the self-tests.
1937
1938 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1939
1940         * qt/*: 
1941         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1942         represents the first feature-complete version of the Qt4
1943         bindings since I took ove maintainership.
1944
1945 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1946
1947         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1948         dir. This is C++, so we can't use the DBus ones.
1949
1950 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1951
1952         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1953         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1954
1955 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1956
1957         * dbus/dbus-connection.c: 
1958         (_dbus_connection_block_pending_call):
1959         Check to see if our data has already been read off the connection
1960         by another blocking pending call before we block in poll.
1961         (check_for_reply_and_update_dispatch_unlocked):
1962         Code taken from _dbus_connection_block_pending_call - checks for
1963         an already read reply and updates the dispatch if there is one.
1964
1965         * test/name-test/test-pending-call-dispatch.c:
1966         New test for making sure we don't get stuck polling a 
1967         dbus connection which has no data on the socket when
1968         blocking out of order on two or more pending calls.
1969
1970 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1971
1972         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1973         make/automake don't detect that we're talking about the same
1974         .lo file if I specify the full path to the source files.
1975
1976 2006-02-26  Havoc Pennington  <hp@redhat.com>
1977
1978         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1979
1980         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1981         session bus variable is unset, suggest "man dbus-launch" and "man
1982         dbus-daemon" to figure out how to fix the problem
1983
1984 2006-02-25  Havoc Pennington  <hp@redhat.com>
1985
1986         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1987         should make this thing use the new glib options parser
1988
1989 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1990
1991         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1992         .lo files taking moc sources.
1993
1994 2006-02-25  Havoc Pennington  <hp@redhat.com>
1995
1996         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1997         and install it as a public header
1998
1999 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2000
2001         * Released 0.61
2002
2003 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2004         
2005         * proxies.py: Fix the callchain
2006
2007 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2008         
2009         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2010
2011         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2012         dbus/dbus-sysdeps.c
2013
2014         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2015         call _dbus_group_info_free_allocated which causes infinite loop,
2016         correctly call _dbus_group_info_free
2017
2018 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2019
2020         * qt/qdbusinterface_p.h:
2021         * qt/qdbusinterface.cpp: Use the standard
2022         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2023         calls instead of creating one for us.
2024
2025         * qt/qdbusconnection_p.h:
2026         * qt/qdbusintegrator.cpp: Remove debugging code.
2027
2028         * qt/qdbusintegrator.cpp:
2029         * qt/qdbusmessage.cpp:
2030         * qt/qdbusmessage_p.h:
2031         * qt/qdbusmessage.h: Change the behaviour of automatic
2032         reply-sending: now a reply is always sent, unless the caller
2033         didn't request one or if the user slot has already sent one.
2034
2035 2006-02-16  Robert McQueen  <robot101@debian.org>
2036
2037         * configure.in: Patch from Debian packages by Sjoerd Simons
2038         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2039         arguments so it's possible to build both bindings in the
2040         same tree.
2041
2042         * qt/Makefile.am: Fix truncated value so that make dist works.
2043
2044 2006-02-16  Robert McQueen  <robot101@debian.org>
2045
2046         * acinclude.m4, configure.in: Patch from Brad Hards
2047         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2048         improving quoting, re-ordering a few checks, and a few other
2049         aesthetic tidy-ups.
2050
2051 2006-02-16  Robert McQueen  <robot101@debian.org>
2052
2053         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2054         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2055         assertion that the next element to read from the iter is fixed in
2056         size. This is not the case when you are at the end of the iter,
2057         because the next element type is INVALID.
2058
2059         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2060         a bogus assert which means that you may not initialise a 0-length
2061         string unless you provide a non-NULL pointer. This prevented
2062         you from marshalling messages containing zero-length arrays in
2063         some cases.
2064
2065         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2066         from Rob to correct bogus asserts when trying to demarshal an
2067         array and get_fixed_array got you 0 elements. Append nothing to
2068         the GArray in this case.
2069
2070         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2071         an empty array via the glib bindings. Without all of the above
2072         patches, this new test fails.
2073
2074 2006-02-16  Robert McQueen  <robot101@debian.org>
2075
2076         * glib/dbus-gmain.c: Make the previous commit compile.
2077
2078         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2079         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2080         specify sender_keyword="foo", path_keyword="bar" when adding
2081         a signal listener, so that you can bind to signals generically
2082         but still do something useful in your callback.
2083
2084         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2085         chars so that they're not cast to chars and made negative. Thanks
2086         to Jakub Stachowski for reporting this and testing the fix.
2087
2088 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2089
2090         * dbus/dbus-glib.h:
2091         * glib/dbus-gmain.h:
2092         (dbus_g_connection_open): new method for openning
2093         a connection to an arbitrary address in the glib bindings
2094
2095         * ChangeLog: checkin last entry which doesn't seem to be commited
2096
2097 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2098
2099         * tools/dbus-launch.c: Fixed sh syntax output
2100
2101 2006-02-13  Robert McQueen  <robot101@debian.org>
2102
2103         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2104         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2105         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2106         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2107         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2108         missing piece of the glib bindings jigsaw puzzle. This modifies
2109         the existing specialised types to have N type parameters (rather
2110         than the current 1 or 2 for arrays and dictionaries respectively).
2111         You can then use this to get a glib type to represent any arbitrary
2112         D-Bus struct type using dbus_g_type_get_struct. The only
2113         implementation of these types is with GValueArrays as before,
2114         but it's now possible to store these in arrays, emit them in
2115         signals, etc.
2116
2117 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2118
2119         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2120         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2121         <thiago.macieira at trolltech.com>
2122
2123 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2124
2125         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2126         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2127
2128 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2129
2130         * bus/connection.c (bus_connections_expect_reply): Make
2131         pending reply limit not common to all connections (Bug #5416)
2132         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2133
2134 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2135
2136         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2137
2138 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2139
2140         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2141         patch from Doug Goldstein <cardoe at gentoo.org>
2142
2143 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2144
2145         * mono/Arguments.cs: Fix a magic number in the mono bindings
2146         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2147
2148 2006-01-27  Robert McQueen  <robot101@debian.org>
2149
2150         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2151         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2152         when generating the client-side methods, instead of overloading
2153         CSymbol which broke everything horribly. My apologies.
2154
2155 2006-01-27  Robert McQueen  <robot101@debian.org>
2156
2157         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2158         by me and Rob Taylor to add a simple_free function to D-Bus map
2159         and collection types, which allows those types which can be freed
2160         with a GDestroyNotify (such as GHashTables and GArrays, but not
2161         GPtrArrays) to be stored as the values in hashtables.
2162
2163         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2164         Patch by Rob Taylor to add nested dicts to the glib tests to check
2165         the above code works, and appears not to leak when called repeatedly.
2166
2167 2006-01-27  Robert McQueen  <robot101@debian.org>
2168
2169         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2170         to free a D-Bus allocated string with dbus_free () instead of
2171         g_free ().
2172
2173 2006-01-27  Iain Holmes  <iain@openedhand.com>
2174
2175         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2176         method from being called multiple times.
2177
2178 2006-01-19  Robert McQueen  <robot101@debian.org>
2179
2180         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2181         <rob.taylor@collabora.co.uk> to add support for generating bindings
2182         to arrays that are represented as GPtrArrays rather than GArrays (ie
2183         size-variable things, such as strings, objects, structs, etc).
2184
2185 2006-01-05  Robert McQueen  <robot101@debian.org>
2186
2187         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2188         <ricardo.kekki@movial.fi> to make it possible to inherit from
2189         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2190         a private part, and moving the setting of the DBusGProxyManager into a
2191         connection property, allowing proper GObject construction.
2192
2193 2006-01-05  Robert McQueen  <robot101@debian.org>
2194
2195         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2196         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2197         annotations when generating glib client bindings.
2198
2199 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2200
2201         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2202
2203         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2204
2205 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2206
2207         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2208
2209 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2210
2211         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2212
2213 2005-12-19  Ross Burton  <ross@openedhand.com>
2214
2215         * doc/dbus-tutorial.xml:
2216         Document the Glib client-side bindings, and list all possible annotations.
2217
2218 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2219
2220         * dbus/bus.c (dbus_bus_release_name): Add documentation
2221
2222 2005-12-06  Robert McQueen  <robot101@debian.org>
2223
2224         * python/service.py: s/sucessful/successful/ so we're allocating to
2225         and reading from the same variable. Oops.
2226
2227 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2228
2229         * Released 0.60
2230
2231 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2232
2233         * test/qt/Makefile.am: build from srcdir
2234
2235         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2236         Note - this code is wrong and needs to be fixed by the Qt binding
2237         developers.  The flags should be treated as bitfields and not enums.
2238
2239         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2240
2241 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2242
2243         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2244           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2245           in production code
2246
2247 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2248
2249         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2250         method for getting messages off the bus in the absence of a
2251         mainloop.  This method is much like 
2252         dbus_connection_read_write_dispatch except it does not dispatch
2253         the messages to a registered filter function.  Instead it
2254         allows a developer to process messages by directly popping
2255         them off the bus.
2256
2257 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2258
2259         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2260         the parser to continue instead of returning error
2261         (bus_desktop_file_load): Do not free parser data when
2262         parse_section_start or parse_key_value fails because it was 
2263         already freed by parser_free (patch from Carlos Garcia Campos  
2264         <carlosgc at gnome.org>)
2265
2266 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2267
2268         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2269         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2270         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2271         test/test-segfault.c, test/test-utils.c,
2272         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2273         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2274         Various cleanup of dead code and compiler warnings (patch from
2275         Kjartan Maraas <kmaraas at gnome.org>) 
2276
2277 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2278
2279         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2280         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2281
2282 2005-11-27  Robert McQueen  <robot101@debian.org>
2283
2284         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2285         part of the preceding one. Oops. Merge patch by Johan Hedberg
2286         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2287         on big-endian platforms.
2288
2289         * test/python/test-client.py: Add some 16-bit integers to the test
2290         values.
2291
2292 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2293
2294         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2295         method return message for property getters
2296
2297 2005-11-27  Robert McQueen  <robot101@debian.org>
2298
2299         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2300         with type v of an instance of dbus.Variant(foo, type='x') caused
2301         it to be boxed twice before sending over the bus.
2302
2303         * python/dbus_bindings.pyx, python/service.py,
2304         test/python/test-client.py: Update the constants for the new
2305         request_name flags, and update comments/test cases now that queueing
2306         is the default action.
2307
2308 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2309
2310         * configure.in:
2311         - Change version to 0.60 for impending release
2312         - upped the sonames because of ABI and API breakage
2313
2314 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2315
2316         * configure.in: Add test/name-test/Makefile to the generated
2317         Makefile list
2318
2319         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2320         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2321         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2322         not to queue an ower if it can't be the primary owner
2323
2324         * bus/bus.h: Add new internal BusOwner struct
2325
2326         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2327         to bus_registry_ensure and don't set the prohibit_replacement flag
2328         since they are now set per BusOwner and not per name.
2329         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2330         that returns the list of connections in a name's connection queue
2331         
2332         * bus/services.c (struct BusService): remove prohibit_replacement field
2333         (struct BusOwner): new struct for keeping track of queued connections
2334         and their associated flags for the queue
2335         (struct BusRegistry): add a BusOwner memory pool
2336         (bus_registry_new): initialize the BusOwner memory pool
2337         (bus_registry_unref): free the BusOwner memory pool
2338         (_bus_service_find_owner_link): new internal method for
2339         searching the queue for a specific connection
2340         (bus_owner_set_flags): new method for adding setting the flags on a
2341         bus owner
2342         (bus_owner_new): new method that creates a BusOwner object from the
2343         pool and sets its flags
2344         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2345         (bus_registry_ensure): Add the flags parameter
2346         (bus_registry_acquire_service): Switch from using raw connections to
2347         using the BusOwner struct
2348         Add new state machine for dealing with the new set of flags
2349         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2350         cancel_ownership, free_ownership_cancel_data, 
2351         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2352         restore_ownership, free_ownership_restore_data, 
2353         add_restore_ownership_to_transaction): Switch to using BusOwner 
2354         instead of raw connections
2355         (bus_service_add_owner): Add flags parameter
2356         Switch to using BusOwner instead of raw connections
2357         Add state machine for dealing with the new set of flags
2358         (bus_service_swap_owner): Swaps the first and second owners in the
2359         queue.  Used to make sure proper signals are sent when a service looses 
2360         or gains primary ownership.  We never insert an owner at the top of the
2361         queue.  Instead we insert it in the second position and then swap.
2362         (bus_service_remove_owner): Remove the owner from the queue sending
2363         out the NameLost and NameOwnerChanged signals if the we were the 
2364         primary owner
2365         (bus_service_get_primary_owners_connection): New method that extracts
2366         the connection from the primary owner
2367         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2368         connection
2369         (bus_service_get_allow_replacement): Changed from the old 
2370         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2371         primary owner and returns if it can be replaced or not
2372         (bus_service_set_prohibit_replacement): removed
2373         (bus_service_has_owner): returns TRUE if and owner with
2374         the specified connection exists in the queue
2375         
2376         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2377         method that only compiles if tests are enabled.  Allows us to get the 
2378         unique name of a connection so we can check it against the queue when
2379         doing regression tests
2380
2381         * bus/activation.c (bus_activation_send_pending_auto_activate),
2382         bus/dispatch.c (bus_dispatch),  
2383         bus/driver.c (bus_driver_handle_get_service_owner, 
2384         bus_driver_handle_get_connection_unix_user, 
2385         bus_driver_handle_get_connection_unix_process_id,
2386         bus_driver_handle_get_connection_selinux_security_context),
2387         bus/signals.c (connection_is_primary_owner): 
2388         use bus_service_get_primary_owners_connection instead of
2389         bus_service_get_primary_owner
2390
2391         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2392         _dbus_listen_unix_socket): Calculate the length of the socket
2393         path and use that instead of using a fixed length which was
2394         causing socket names to contain many trailing Nul bytes.
2395
2396         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2397         (dbus_g_method_get_sender): New method for extracting the sender 
2398         from a DBusGMethodInvocation
2399         (dbus_g_method_return_get_reply): changed name to 
2400         dbus_g_method_get_reply
2401         (dbus_g_method_return_send_reply): changed name to
2402         dbus_g_method_send reply
2403
2404         * doc/dbus-specification.xml: New docs that describe how the new
2405         queueing system works and talks about the changes to the how
2406         we specify socket names
2407
2408         * glib/examples/example-service.c, 
2409         glib/examples/example-signal-emitter.c,
2410         glib/examples/statemachine/statemachine-server.c:
2411         Changed the RequestName flags to the new system
2412
2413         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2414         regression test suite for testing various states of the new
2415         queueing system
2416         
2417 2005-11-15  Robert McQueen  <robot101@debian.org>
2418
2419         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2420         Taylor to add two methods, dbus_g_method_return_get_reply and
2421         dbus_g_method_return_send_reply, to allow you to get the reply
2422         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2423         and send it. The GLib bindings can't marshal a return value of
2424         something like a(s) if the array is empty - ultimately they should be
2425         made to heed the signature of the out arguments as the Python bindings
2426         now can, but this is a workable interim solution which might have
2427         other applications.
2428
2429 2005-11-15  Robert McQueen  <robot101@debian.org>
2430
2431         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2432         method to org.freedesktop.DBus to release a bus name or give up
2433         waiting in the queue for it.
2434
2435         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2436         dbus_bus_release_name method to send the ReleaseName method calls.
2437         Add constants for the return values to dbus/dbus-shared.h.
2438
2439         * doc/dbus-specification.xml: Document the new ReleaseName method
2440         in the specification.
2441
2442         * python/dbus_bindings.pyx: Add a low-level python binding for the
2443         release name method.
2444
2445         * python/exceptions.py, python/service.py: Make freeing BusName
2446         objects release the name. Add a NameExistsException, and fix a
2447         bug with creating UnknownMethodException.
2448
2449         * test/python/test-client.py: Add tests for freeing BusName
2450         objects causing names to be released.
2451
2452 2005-11-14  Robert McQueen  <robot101@debian.org>
2453
2454         * python/service.py: Include the traceback in the error reply when we
2455         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2456
2457 2005-11-14  David Zeuthen  <davidz@redhat.com>
2458
2459         Patch from Timo Hoenig <thoenig@suse.de>.
2460
2461         * bus/bus.c: I've recently investigated why the automatic reload
2462         of configuration files does not work as expected.
2463
2464         Currently, reloading configuration files does only work when
2465         running dbus-daemon with --nodaemon.  If we are running as daemon
2466         we're hitting a dnotify bug once we fork the process.
2467
2468         We're initializing the dnotify fds before calling fork().  Once
2469         the child process forked it does still have the fds (and they
2470         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2471         getting SIGIO as changes are made to the configuration files.
2472
2473         The attached patch moves the initialization of the dnotify fds to
2474         process_config_postinit().  This is safe for all current code
2475         paths and solves the dnotify disfunction.  If we're running
2476         dbus-daemon as daemon the fds for dnotify are now being
2477         initialized after fork() for the child process.
2478
2479         * configure.in: The current configure.in check for dnotify probes
2480         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2481         match for 'xlinux', too. Additionally I have adapted the configure
2482         option's style to match with the others.
2483
2484 2005-11-14  Robert McQueen  <robot101@debian.org>
2485
2486         * python/decorators.py, python/service.py: Add a new argument to the
2487         dbus.service.method decorator called sender_keyword, which if set,
2488         specifies the name of an argument which will be provided the bus
2489         name of the method caller.
2490
2491         * test/python/test-client.py, test/python/test-service.py: Add a
2492         method and test to check the sender_keyword functionality.
2493
2494 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2495
2496         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2497         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2498         Simons <sjoerd at luon.net>)
2499
2500         * AUTHORS: Add Robert McQueen for his work on the Python
2501         Bindings and other parts of D-Bus
2502
2503 2005-11-07  Robert McQueen  <robot101@debian.org>
2504
2505         * python/decorators.py: Change emit_signal function to use the
2506         signature annotation of the signal when marhsalling the arguments from
2507         the service. Fix a bug where the code checking signature length
2508         against argument length referenced the wrong variable.
2509
2510         * python/introspect_parser.py: Avoid adding the type signature of
2511         signal arguments to any methods which occur after them in the
2512         introspection data (!) by making the parser a little more careful
2513         about its current state.
2514
2515         * python/service.py: Remove debug prints from last commit (again :D).
2516
2517         * test/python/test-client.py, test/python/test-service.py: Add test
2518         signals with signature decorators to test the strict marshalling code
2519         gives errors at the right time. Could do with checking the signals
2520         actually get emitted too, given that the test does nothing with
2521         signals at the moment...
2522
2523 2005-11-07  Robert McQueen  <robot101@debian.org>
2524
2525         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2526         instances to stop madness of creating new instances representing
2527         the same bus connection all the time, rendering any tracking of
2528         match rules and bus names quite meaningless. Caught a bug where
2529         the private argument to SessionBus() and friends was being passed
2530         in as use_default_mainloop by mistake. Still some problems with
2531         multiple dbus_binding.Connection instances representing the same
2532         low-level connection (eg when you use both SessionBus() and
2533         StarterBus() in same process), but it's a lot better now than it
2534         was.
2535
2536         * python/dbus_bindings.pyx: Add constants with the return values
2537         for bus_request_name().
2538
2539         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2540         and retrieve the same instances for the same name, so deletion can be
2541         done with refcounting. Also now throws some kind of error if you
2542         don't actually get the name you requested, unlike previously...
2543
2544         * test/python/test-client.py: Add tests for instance caching of buses
2545         and bus name objects.
2546
2547 2005-11-04  Robert McQueen  <robot101@debian.org>
2548
2549         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2550         marshalling of boolean values. Add some booleans to the values in
2551         the test client.
2552
2553         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2554         argument to the dbus.service.method decorator, which allows you to
2555         name arguments to take two callback functions for replying with
2556         return values or an exception.
2557
2558         * test/python/test-client.py, test/python/test-service.py: Add test
2559         case using asynchronous method reply functions, both return values and
2560         errors, and from within both the function itself and from a mainloop
2561         callback.
2562
2563         * python/decorators.py, python/service.py: Perform checking that the
2564         number of method/signal arguments matches the number of types in the
2565         signature at class loading time, not when you first introspect the
2566         class.
2567
2568         * python/service.py: Remove debug print left by the last commit.
2569
2570 2005-11-03  Robert McQueen  <robot101@debian.org>
2571
2572         * python/service.py: Heavy refactoring of method invocation, with
2573         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2574         in favour of a new _message_cb that uses seperate functions for
2575         looking up the method to call, marshalling the return values, and
2576         sending exceptions as errors, and is easier to follow as a
2577         consequence.  Fixes some corner cases about returning things that
2578         don't match your declared out_signature, allows exceptions to define
2579         _dbus_error_name and have it be sent over the bus as the error name,
2580         and paves the way for cool stuff like heeding the message no reply
2581         flag, asynchronous method implementations, informing the method of the
2582         sender, and including backtraces in the error messages.
2583
2584         * test/python/test-client.py: Catch and print exceptions thrown in the
2585         async callback tests, rather than passing them to the low-level
2586         bindings to be ignored in a noisy and frustrating manner.
2587
2588 2005-11-03  Robert McQueen  <robot101@debian.org>
2589
2590         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2591         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2592         tweak others to be consistent.
2593
2594         * test/python/test-client.py: Tweak output of testInheritance.
2595
2596 2005-10-29  Robert McQueen  <robot101@debian.org>
2597
2598         * python/service.py: Major changes to allow multiple inheritance
2599         from classes that define D-Bus interfaces:
2600         
2601          1. Create a new Interface class which is the parent class of
2602             Object, and make the ObjectType metaclass into InterfaceType.
2603         
2604          2. Patch written with Rob Taylor to replace use of method_vtable
2605             with code that walks the class's __MRO__ (method resolution order)
2606             to behave like Python does when invoking methods and allow
2607             overriding as you'd expect. Code is quite tricky because
2608             we have to find two methods, the one to invoke which has the
2609             right name and isn't decorated with the /wrong/ interface,
2610             and the one to pick up the signatures from which is decorated
2611             with the right interface.
2612         
2613             The same caveats apply as to normal multiple inheritance -
2614             this has undefined behaviour if you try and inherit from two
2615             classes that define a method with the same name but are
2616             decorated with different interfaces. You should decorate
2617             your overriding method with the interface you want.
2618         
2619          3. Replace grungy introspection XML generation code in the metaclass
2620             with dictionaries that cope correctly with multiple inheritance
2621             and the overriding of methods. This also uses the signature
2622             decorations to provide correct introspection data, including
2623             the debut appearance of the types of your return values. :D
2624
2625         * test/python/test-client.py, test/python/test-service.py: Add a test
2626         case to try invoking an method that overrides one inherited from a
2627         D-Bus interface class.
2628
2629 2005-10-29  Robert McQueen  <robot101@debian.org>
2630
2631         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2632         Add checking for the end of struct character when marshalling a
2633         struct in MessageIter.append_strict.
2634
2635         * python/examples/example-service.py,
2636         python/examples/gconf-proxy-service.py,
2637         python/examples/gconf-proxy-service2.py: Update to use gobject
2638         mainloop directly rather than appearing to depend on gtk.
2639
2640         * python/test/test-client.py, python/test/test-server.py: Remove
2641         obsolete and broken test scripts for old bindings. We have up to date
2642         and working tests in test/python/.
2643
2644 2005-10-29  Robert McQueen  <robot101@debian.org>
2645
2646         * python/decorators.py: Add optional arguments to the method and
2647         signal decorators to allow you to specify the signature of arguments
2648         and return values. Preserve the doc strings of signal functions in the
2649         decorated version, for pydoc and friends.
2650
2651         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2652         parse_signature_block function with an iterable dbus.Signature()
2653         type. Fix a bug in MessageIter.append_strict where you could append
2654         anything by claiming it was a string.
2655
2656         * python/service.py: Use the out_signature decoration on methods to
2657         marshal return values, meaning you no longer require dbus.Array()
2658         or dbus.Dictionary() to indicate the type when returning empty
2659         arrays or dictionaries. Fix a bug where exceptions which are defined
2660         in __main__ are not turned into error replies.
2661
2662         * test/python/test-client.py, test/python/test-service.py: Add test
2663         for correct marshalling of return values according to out_signature.
2664         Fix a bug in the async call test where the error_handler is missing a
2665         self argument.
2666
2667 2005-10-29  Robert McQueen  <robot101@debian.org>
2668
2669         * glib/Makefile.am, glib/examples/Makefile.am,
2670         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2671         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2672
2673         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2674
2675         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2676         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2677         the command line.
2678
2679 2005-10-27  Ross Burton  <ross@openedhand.com>
2680
2681         * dbus/dbus-marshal-header.c:
2682         Remove dead code.
2683
2684         * glib/dbus-gobject.c:
2685         Stop compiler warning.
2686
2687 2005-10-25  Ross Burton  <ross@openedhand.com>
2688
2689         * dbus/dbus-auth.c:
2690         * dbus/dbus-server-unix.c:
2691         * dbus/dbus-transport-unix.c:
2692         * glib/dbus-gmain.c:
2693         * glib/dbus-gobject.c:
2694         Add some const keywords.
2695
2696 2005-10-25  Ross Burton  <ross@openedhand.com>
2697
2698         * doc/dbus-specification.xml:
2699         Document the NoReply annotation.
2700
2701         * glib/dbus-binding-tool-glib.h:
2702         * glib/dbus-binding-tool-glib.c:
2703         Respect the NoReply annotation.
2704
2705 2005-10-24  Robert McQueen <robot101@debian.org>
2706
2707         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2708         derive from unicode instead of str, and encode/decode UTF-8 when
2709         marshalling/unmarshalling bus messages
2710
2711         * python/introspect_parser.py: encode introspection data as UTF-8
2712         before passing the buffer into libxml2
2713
2714         * test/python/test-client.py: add unicode test strings
2715
2716         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2717         ignore generated python test files
2718
2719 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2720
2721         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2722         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2723         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2724
2725         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2726         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2727         when constructing struct signatures
2728
2729         * python/_dbus.py (Bus): handle private connections using the
2730         private keyword in the constructor. defaults to private=False
2731         (Bus::close): new method to close a connection to the bus
2732
2733         * python/dbus_bindings.pyx (Connection::close): renamed method
2734         was previously called disconnect
2735         (bus_get): now supports getting a private connection
2736
2737         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2738         keyword is set to True.  if it is, execute the method without waiting
2739         for a reply
2740         (ProxyObject::_introspect_execute_queue): new method for executing
2741         all the pending methods that were waiting for the introspect to
2742         finish.  this is called when introspect either succeeds or fails
2743         (ProxyObject::_introspect_error_handler): call queued methods
2744
2745 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2746
2747         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2748         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2749
2750         * python/service.py (Object::_message_cb): handle exceptions correctly
2751         by sending them over the wire to the calling app.  This makes sure
2752         the client returns immediately instead of waiting the 15 seconds to
2753         timeout.
2754
2755         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2756         Add a test to benchmark how long it takes to introspect a service and 
2757         call a method which returns a large element (pretty fast)
2758
2759         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2760         method which pushes a lot of data
2761
2762 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2763
2764         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2765         reclaim memory outside of the loop and use del istead of just setting
2766         the key to None
2767
2768 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2769
2770         * python/service.py (ObjectType::_reflect_on_signal): Always close
2771         signal tag even when there are no arguments
2772
2773 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2774
2775         * configure.in: Set mono, mono-docs and Qt3 to default
2776         to no instead of auto when building.  These bindings do not
2777         have full time maintainers and will not be supported for the
2778         1.0 release.
2779
2780 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2781
2782         patches from Michael Krivoruchko <misha at sun.com>: 
2783         
2784         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2785         _dbus_connection_message_sent, 
2786         _dbus_connection_send_preallocated_unlocked_no_update, 
2787         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2788         is NULL when calling _dbus_verbose
2789
2790         * configure.in: check for functions getpeerucred and getpeereid
2791
2792         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2793         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2794         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2795         Patch was only tested on Solaris 10 x86 so it might be issues
2796         with other platforms (i.e. BSDs and MacOSX)
2797         
2798
2799 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2800
2801         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2802         instead of marshal basic so we can handle recursive types in a variant
2803
2804         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2805         in variants
2806
2807         * test/glib/test-service-glib.c, test-service-glib.xml
2808         (my_object_echo_variant [EchoVariant], 
2809         my_object_process_variant_of_array_of_ints123
2810         [ProcessVariantOfArrayOfInts123]): 
2811         Add two test methods
2812
2813         * python/introspect_parser.py: New module for parsing introspect
2814         data.
2815
2816         * python/dbus_bindings.pyx:
2817         (various places): when throwing errors fix to use errormsg instead 
2818         of message local variable because Pyrex can get confused with other 
2819         message variables (initial patch by Robert McQueen 
2820         <robert.mcqueen at collabora.co.uk>)
2821         (MessageIter::parse_signature_block): new method for getting the next
2822         block in a signiture.
2823         (MessageIter::append_strict): new method for appending values strictly
2824         using the passed in signature instead of guessing at the type
2825         (MessageItter:: append_dict, append_struct, append_array): use 
2826         signatures to marshal children if the signature is available
2827         
2828         * python/exceptions.py (IntrospectionParserException): new exception
2829
2830         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2831         introspected signatures if available, else we fall back to the
2832         old way of doing things.
2833         (ProxyObject::_introspect_reply_handler ): parse introspection data
2834         
2835         * python/service.py (ObjectType::_reflect_on_method): Properly
2836         terminate <method> if there are no args in the reflection data
2837
2838         * test/python/test-client.py: add tests for talking with the GLib
2839         test server.  This gives us better coverage for introspection since
2840         python to python will always generate arguments as variants.  It also
2841         allows us to test the robustness of the GLib bindings and interlanguage
2842         communications.
2843
2844         
2845 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2846
2847         * bus/driver.c (bus_driver_handle_introspect): Add signals
2848         to the introspect data. (patch from Daniel P. Berrange 
2849         <dan at berrange.com>)
2850
2851         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2852         
2853         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2854         _dbus_connection_run_builtin_filters): Changed these to
2855         be unlock_no_update functions and call 
2856         _dbus_connection_send_unlocked_no_update instead of
2857         dbus_connection_send to avoid locking errors.
2858         
2859         * doc/TODO: Removed the make Ping test TODO
2860         
2861 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2862
2863         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2864         We now copy the message from a DBusError and then free 
2865         the error object befor throwing the error
2866
2867         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2868         DBusBindingOutputMode enum which was causing a warning.
2869         #include <time.h> so using time_t is explicitly defined
2870
2871 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2872
2873         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2874         - dbus/dbus-bus.c
2875         (internal_bus_get): new method that take over the heavy lifting
2876         of dbus_bus_get and adds the ability to get a private connection
2877         to the bus
2878         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2879         interface as in previous versions
2880         (dbus_bus_get_private): new method that is a wrapper to 
2881         internal_bus_get to get a private connection to the bus
2882
2883         - dbus/dbus-bus.h
2884         (dbus_bus_get_private): add as a public libdbus interface
2885
2886         - dbus-1.pc.in: output system_bus_default_address and 
2887         sysconfdir variables so apps can use them when compiling
2888
2889 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2890         * dbus/qt: New Qt bindings
2891
2892 2005-09-12  Waldo Bastian  <bastian@kde.org>
2893
2894         * dbus/dbus-marshal-validate.c,
2895         doc/dbus-specification.xml, test/Makefile.am,
2896         test/test-names.c: allow hyphens in bus names.
2897
2898 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2899
2900         * test/data/auth/fallback.auth-script: we don't
2901         retry the EXTERNAL method when we know its going
2902         to fail anymore.
2903
2904 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2905
2906         * dbus/dbus-connection-internal.h: rename
2907         (add|remove|toggle)_(watch|timeout) to unlocked()
2908         
2909         * dbus/dbus-connection.c: ditto.
2910         
2911         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2912         Update some callers for the renaming.
2913
2914 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2915
2916         * dbus/dbus-auth.c: (record_mechanisms): don't
2917         retry the first auth mechanism because we know
2918         we're just going to get rejected again.
2919         
2920         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2921         Fix thinko ... and what a nasty little bugger to
2922         track down you were ...
2923
2924         * dbus/dbus-connection.c:
2925         (_dbus_connection_add_watch),
2926         (_dbus_connection_remove_watch): add note about
2927         these needing the connection to be locked.
2928         (_dbus_connection_get_dispatch_status_unlocked):
2929         set status to DATA_REMAINS when we queue the
2930         disconnected message.
2931         
2932         * bus/dispatch.c:
2933         (bus_dispatch): fix warning.
2934         (check_existent_service_no_auto_start):
2935         Expect ChildSignaled error too.
2936         (check_existent_hello_from_self): fix another
2937         couple of warnings.
2938         
2939 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2940
2941         Patches from James Willcox <snorp@snorp.net>
2942
2943         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2944
2945         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2946         support array "out" parameters.
2947
2948         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2949         for 16-bit int support.
2950
2951 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2952
2953         * Released 0.50
2954
2955         * Patch from Steve Grubb:
2956         - bus/activation.c (bus_activation_service_reload_test): clean up
2957         some indentation
2958         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2959         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2960         buffer overflows in the test suite.  This is non critical because
2961         it can not be exploited and this code is only run when doing a 
2962         make check.
2963
2964         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2965         - configure.in: Don't check and link against kdecore, only qt headers
2966         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2967         - gcj/org/freedesktop/dbus/Makefile.am:
2968         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2969         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2970         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2971         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2972         - tools/Makefile.am: Add platform extentions to binaries 
2973         (i.e. .exe on windows)
2974
2975         * configure.in: 
2976         - Make it so if no suitable version of python is found we only 
2977         disable building python instead of exiting the configure script
2978         - Require version 2.4 of glib for glib bindings
2979         - Up version to 0.50
2980
2981         * python/__init__.py: Sync version with libdbus to (0,50,0)
2982         
2983 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2984
2985         * dbus/dbus-object-tree.c (find_subtree_recurse):
2986         a couple of optimizations (bug #710):
2987         - do a binary search in the tree
2988         - insert a new child at the right place directly, no need for
2989           qsort anymore
2990         - do the "double alloc" thing when allocating children
2991
2992 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2993
2994         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2995
2996         * python/dbus_bindings.pyx: Memory management foo
2997         (global): remove hacky _user_data_references global list
2998         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2999         tuples. Unref user_data
3000         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3001         (Connection::__del__): Remove and replace with __dealloc__ method
3002         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3003         to keep tuple from being deallocated instead of the global var hack
3004         (Connection::register_object_path): Stuff user_data into a tuple.
3005         Use Py_INCREF to keep tuple from being deallocated instead of the 
3006         global var hack
3007         (Connection::register_fallback): Stuff user_data into a tuple.
3008         Use Py_INCREF to keep tuple from being deallocated instead of the 
3009         global var hack
3010         (GIL_safe_pending_call_notification): Don't unref the message
3011         because it gets unreffed when going out of scope.  Py_XDECREF
3012         the user_data
3013         (PendingCall::__del__): Remove and replace with __dealloc__ method
3014         (PendingCall::set_notify): ref the pending call because we will
3015         need it to stick around for when the notify callback gets called
3016         (Message::__del__): Remove and replace with __dealloc__ method
3017
3018         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3019         gthreads_init to match up with the dbus call
3020
3021         * python/glib.py (init_threads): Changed to threads_init to match
3022         up with gobject.threads_init().  init_threads is kept for backwards
3023         compat but will most likely be deprecated in the future
3024
3025         * test/python/test-client.py: 
3026         - revamp to use Python's unittest functionality
3027         - add async call tests
3028         - setup threads in glib and dbus so we make sure locks are working
3029         
3030 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3031
3032         * python/dbus_bindings.pyx 
3033         (_pending_call_notification, cunregister_function_handler, 
3034         cmessage_function_handler): All callback functions have been rearranged 
3035         to workaround a bug in Pyrex when working with the GIL which is Python's 
3036         global lock when dealing with threads.  They have been split into
3037         a wrapper function (which assumes the name of the old function) and
3038         a _GIL_safe_<function name> function which contains the functionality
3039         of the old function.  This ensures that Pyrex does not write code
3040         the lock is released.
3041         
3042
3043 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3044
3045         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3046         GIL global lock when calling back into Python
3047
3048 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3049
3050         * Release 0.36.2
3051
3052         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3053
3054         * bus/policy.c (bus_policy_allow_user): change default "user is
3055         allowed" to be "user has same uid as the bus itself"; any
3056         allow/deny rules will override.
3057
3058         * bus/session.conf.in: don't allow all users, since now by default
3059         the user that ran the bus can connect.
3060
3061 2005-08-26  Colin Walters  <walters@verbum.org>
3062
3063         * tools/dbus-print-message.c (print_message): Flush stdout
3064         after printing a message, so that redirecting to a file, then
3065         hitting Ctrl-C works.
3066
3067 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3068
3069         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3070         (EmptyMessage): new class that subclasses Message.  This is a workaround
3071         to a Pyrex bug that fails to call __del__ when the Message object goes out
3072         of scope.  For some reason subclassing Message fixes this bug
3073         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3074         - s/Message(_create=0)/EmptyMessage everywhere else
3075         
3076         * test/python/test-{server|client}.py: add the python/.libs directory
3077         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3078         get picked up from the system
3079
3080 2005-08-25  Colin Walters  <walters@verbum.org>
3081
3082         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3083         to Ryan Lortie for the suggestion.
3084
3085 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3086
3087         * test/python: Add python regression test
3088
3089         * configure.in: Add test/python/Makefile
3090
3091         * test/Makefile.am: Add the python directory to SUBDIRS
3092
3093 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3094
3095         * Release 0.36.1
3096
3097         * python/_dbus.py: 
3098         (Interface::connect_to_signal): propigate keywords for match on args
3099         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3100
3101         * python/proxies.py (ProxyObject::connect_to_signal):
3102         propigate keywords for match on args
3103
3104         * Makefile.am: point everything to pyexecdir since python borks
3105         on multilib
3106
3107 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3108
3109         * Release 0.36
3110
3111 2005-08-23  Colin Walters  <walters@verbum.org>
3112
3113         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3114
3115 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3116
3117         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3118         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3119         of defining DBusConnection ourselves.
3120
3121 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3122
3123         * python/dbus.pth: New path file to fix up problems when installing
3124         c libraries to lib64 and python files to lib.
3125
3126         * python/Makefile.am: install dbus.pth in the correct spot
3127
3128 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3129         * ChangeLog: clean up my last entry a bit
3130
3131         * doc/introspect.xsl: New stylesheet for converting introspection data
3132         into browser renderable xhtml. Contributed by Lennart Poettering.
3133
3134         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3135         Poettering.
3136
3137         * doc/dbus-tutorial.xml: 
3138         - Add Colin Walter to the Authors section for authoring the GLib
3139         section
3140         - Add descriptions of the new signature and type functionality
3141         in the Python complex type mapping section
3142         - Add a sidenote on the new args matching functionality in 
3143         the Python bindings
3144         - Fixed up some of the examples to use the gobject.MainLoop
3145         instead of gtk.main
3146         
3147         * python/_dbus.py:
3148         (Bus::_create_args_dict): New. Converts a hash of arg matches
3149         to a more useable format
3150         (Bus::add_signal_receiver): add a **keywords parameter for catching
3151         arg match parameters
3152         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3153         arg match parameters
3154         
3155         * python/matchrules.py:
3156         (MatchTree::exec_matches): Check for arg matches
3157         (SignalMatchRule::add_args_match): New method
3158         (SignalMatchRule::execute): Added args_list parameter as an optimization
3159         so we don't have to marshal the args more than once
3160         (SignalMatchRule::match_args_from_list): New method that checks to see
3161         if the rule's arg matches match an argument list.  Only arguments
3162         set in the rule are checked.
3163         (SignalMatchRule::match_args_from_rule): New method that checks to see
3164         if the rule's arg matches match another rule's.  All args have to match
3165         in order for this method to return true.  If either rule has more args
3166         then it is not a match.
3167         (SignalMatchRule::is_match): Add args match
3168         (SignalMatchRule::repr): Add args to the final output if they exist
3169
3170 2005-08-17  Ross Burton  <ross@burtonini.com>
3171
3172         * glib/dbus-gproxy.c:
3173         (dbus_g_proxy_call_no_reply): unref the message once sent.
3174         (dbus_g_proxy_call): protect against NULL proxy.
3175
3176 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3177
3178         * python/__init__.py: Version updated (0, 43, 0)
3179         
3180         * python/dbus_bindings.pyx: 
3181         - Fixed type objects to have self passed into __init__
3182         - Added the Variant type
3183         - Add the ability to specify types or signatures for Array, Variant 
3184         and Dictionary
3185         (Connection::send_with_reply_handlers): return a PendingCall object
3186         (_pending_call_notification): handle the case when an error is returned 
3187         without an error message in the body
3188         (MessageIter::get_boolean): return True or False instead of an integer
3189         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3190         and add checks for objects with embeded signatures or types (Array, 
3191         Variant and Dictionary)
3192         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3193         (MessageIter::append_dict): handle embeded types or signatures
3194         (MessageIter::append_array): handle embeded types or signatures
3195         (MessageIter::append_variant): new method
3196         
3197         * python/proxies.py:
3198         (DeferedMethod): New. Dummy executable object used when queuing calls 
3199         blocking on introspection data
3200         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3201         or shorter timeouts for method calls
3202         (ProxyObject): Add first pass at an introspection state machine
3203         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3204         introspection. 
3205         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3206         the usual mechanisms for sending messages.  This is to avoid a deadlock
3207         where the Intospect call would be queued waiting for the Introspect 
3208         call to finish ;-)
3209         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3210         when introspection returns with no error
3211         (ProxyObject::_introspect_error_handler): New.  This method is called 
3212         when introspection encounters an error
3213         (ProxyObject::__getattr__): Code to handle different introspection 
3214         states.  Queue async calls or block blocking calls if we are 
3215         introspecting.  Pass through as normal if we are not or are done with 
3216         introspecting.
3217         
3218         * python/service.py: Import signal and method from decorators.py
3219
3220         * python/types.py: Add Variant type
3221
3222 2005-08-16  Colin Walters  <walters@verbum.org>
3223
3224         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3225         DBusError message is NULL.
3226
3227 2005-08-09  Havoc Pennington  <hp@redhat.com>
3228
3229         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3230         malloc'd copy of the name parameter
3231
3232 2005-08-09  Havoc Pennington  <hp@redhat.com>
3233
3234         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3235         warning if the reply serial is set to 0
3236
3237 2005-08-04  Colin Walters  <walters@verbum.org>
3238
3239         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3240         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3241         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3242         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3243         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3244         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3245         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3246         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3247         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3248         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3249         
3250         Prefix name with _ to ensure they're not exported.  All callers
3251         updated.
3252
3253         * glib/dbus-gvalue.c (typecode_to_gtype)
3254         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3255         (signature_iter_to_g_type_dict)
3256         (signature_iter_to_g_type_array)
3257         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3258         (dbus_gtypes_from_arg_signature):
3259         Move to dbus-gsignature.c.
3260
3261         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3262         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3263         (dbus_binding_tool_output_glib_client): Ditto.
3264
3265         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3266         and dbus-gsignature.h
3267
3268         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3269         unused variable.
3270
3271 2005-08-03  Colin Walters  <walters@verbum.org>
3272
3273         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3274         catch any incompatible changes accidentally made.
3275
3276 2005-08-03  Havoc Pennington  <hp@redhat.com>
3277
3278         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3279         typo, from Julien Puydt
3280
3281         * bus/connection.c (bus_connection_disconnected): we were always
3282         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3283
3284 2005-08-01  Colin Walters  <walters@verbum.org>
3285
3286         Patch from Joe Markus Clarke:   
3287         
3288         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3289         use-after-free.
3290
3291 2005-08-01  Colin Walters  <walters@verbum.org>
3292         
3293         Patch from Joe Markus Clarke:   
3294         
3295         * tools/dbus-send.c (main): 
3296         
3297         Don't use C99 style initializers (bug #3933).
3298         
3299 2005-08-01  Colin Walters  <walters@verbum.org>
3300
3301         Patch from Joe Markus Clarke:   
3302
3303         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3304         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3305         * glib/dbus-gobject.c (write_interface):
3306
3307         Don't use C99 style initializers (bug #3933).
3308
3309 2005-07-31  Havoc Pennington  <hp@redhat.com>
3310
3311         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3312         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3313
3314 2005-07-30  Havoc Pennington  <hp@redhat.com>
3315
3316         * fix a bunch of Doxygen warnings and mistakes
3317
3318 2005-07-30  Havoc Pennington  <hp@redhat.com>
3319
3320         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3321         DBUS_BUILD_TESTS since it's now used in production code
3322
3323 2005-07-29  Havoc Pennington  <hp@redhat.com>
3324
3325         * test/glib/test-profile.c (write_junk): initialize the junk
3326         buffer so valgrind doesn't have a breakdown
3327
3328 2005-07-29  Havoc Pennington  <hp@redhat.com>
3329
3330         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3331         (match_rule_matches): remove unused arg
3332         (test_matching): add tests for match_rule_matches()
3333
3334         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3335         do arg0='foo' arg5='bar' in the match rules
3336         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3337
3338         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3339
3340 2005-07-29  Ross Burton  <ross@openedhand.com>
3341
3342         * dbus/dbus-connection.c:
3343         Don't create a DBusCondVar which is never used.
3344
3345 2005-07-27  Ross Burton  <ross@openedhand.com>
3346
3347         * dbus/dbus-message.c:
3348         Reduce the size of the maximum cached message to 10K.
3349
3350 2005-07-25  Ross Burton  <ross@openedhand.com>
3351
3352         * glib/dbus-gproxy.c:
3353         Remove matches when all proxies are unregistered.
3354
3355 2005-07-24  Colin Walters  <walters@verbum.org>
3356
3357         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3358         typedata; recursive arrays won't have it.
3359
3360         * test/glib/test-dbus-glib.c:
3361         * test/glib/test-service-glib.c:
3362         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3363         
3364 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3365
3366         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3367         proxies.py, service.py: Cleanup of code after running it through the
3368         pyflakes code checker mostly dealing with undefined names.  
3369         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3370
3371 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3372
3373         * NEWS: Update to 0.35.2
3374
3375 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3376
3377         * python/_dbus.py: Remove import of the dbus.services
3378         module as it no longer exists (patch from Dimitur Kirov)
3379
3380         * python/service.py (Object::__init__): Fixed typo
3381         s/name/bus_name (patch from Dimitur Kirov)
3382
3383         * python/examples/example-signal-emitter.py: import dbus.glib
3384         to get the main loop and use glib mainloop instead of gtk so
3385         X doesn't have to be running.
3386
3387         * python/examples/example-signal-recipient.py: import dbus.glib
3388         to get the main loop and use glib mainloop instead of gtk so
3389         X doesn't have to be running. Import the decorators module
3390         directly.
3391
3392         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3393         didn't pick up on but are needed to build
3394
3395         * configure.in: upped version to 0.35.2
3396
3397         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3398         added Colin Walters' SELinux API rename patch from head 
3399         s/unix sercurity context/selinux security context/
3400
3401 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3402
3403         * python/Makefile.am: dbus_binding.pxd.in should be included 
3404         in EXTRA_DIST not dbus_binding.pxd
3405         fix up $(srcdir) hopefully for the last time
3406
3407         * NEWS: Update to 0.35.1
3408
3409 2005-07-16  Colin Walters  <walters@verbum.org>
3410
3411         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3412         from bus_driver_handle_get_connection_unix_security_context.  Update for
3413         error usage.
3414         (message_handlers): Update for renames.
3415
3416         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3417         _dbus_string_init failure correctly.
3418         (bus_selinux_append_context): Convert SID to context.  Append it
3419         as a byte array.
3420         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3421         hasn't been called.
3422
3423         * bus/selinux.h: Update prototype.
3424
3425         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3426         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3427
3428 2005-07-15  Colin Walters  <walters@verbum.org>
3429
3430         * doc/TODO: Add note about convenience wrappers.
3431
3432 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3433
3434         * NEWS: Update to 0.35
3435
3436 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3437
3438         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3439         so distcheck doesn't fail
3440
3441         * glib/examples/Makefile.am: Add example-service.xml and 
3442         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3443
3444         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3445         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3446
3447         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3448         compiler looks in the right places during distcheck
3449
3450 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3451
3452         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3453         to fail
3454
3455 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3456
3457         * python/examples/example-service.py,
3458         python/examples/example-signal-emitter.py: Fixed up examples
3459         for API changes
3460
3461 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3462
3463         * python/__init__.py: Upped to version (0,42,0) because of
3464         the API change
3465
3466 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3467
3468         * ChangeLog: fix date in last entry
3469
3470         * configure.in, bus/system.conf.in: add the ability to configure 
3471         the system bus user at compiletime with the --with-dbus-user flag
3472         (patch from Kristof Vansant)
3473
3474 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3475
3476         * bus/dispatch.c, test/test-service.c: Add testcase
3477         for sending messages to oneself (TODO item).
3478
3479         * python/service.py (class Object): Swap ordering of bus_name 
3480         and object_path parameters to better support inheritance.
3481
3482         * doc/dbus-tutorial.xml: change Python docs to reflect change
3483         in parameter ordering and fix the inheritance section.
3484
3485         * doc/TODO: remove sending message to oneself TODO item
3486
3487 2005-07-15  Ross Burton  <ross@openedhand.com>
3488
3489         * glib/dbus-gproxy.c:
3490         Fix a leak when calling methods via the proxy.
3491
3492 2005-07-15  Colin Walters  <walters@verbum.org>
3493
3494         * bus/selinux.c (bus_selinux_append_context): Wrap in
3495         HAVE_SELINUX.
3496
3497 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3498
3499         * python/_dbus.py (Bus::remove_signal_receiver):
3500         don't add a callback to the match if none has been passed in
3501         
3502         * python/matchrules.py (SignalMatchTree::remove): if the rule
3503         being matched does not have a callback treat it as a wildcard
3504         fix matching logic
3505
3506         * doc/dbus-tutorial.xml: Add Python tutorial
3507
3508 2005-07-14  Colin Walters  <walters@verbum.org>
3509
3510         * bus/driver.c
3511         (bus_driver_handle_get_connection_unix_security_context): New function.
3512         (message_handlers): Add.
3513
3514         * bus/selinux.c (bus_selinux_append_context): New function; appends
3515         security context to message.
3516
3517         * bus/selinux.h: Prototype.
3518
3519         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3520
3521 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3522
3523         * bus/activation.c: clean up all tabs to be 8 spaces 
3524         (bus_activation_activate_service): make sure we clean up
3525         if activation fails
3526
3527         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3528         (check_shell_fail_service_auto_start): New function
3529         tests to make sure we get fail properly when trying to auto start a service
3530         with a faulty command line
3531         (check_shell_service_success_auto_start): New function tests to make sure
3532         auto started services get the arguments on the command line
3533
3534         * test/test-shell-service.c: Added service for testing auto-starting with 
3535         command line arguments
3536
3537         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3538         test/data/valid-service-files/debug-shell-echo-success.service.in:
3539         Added service files for testing auto-starting with command line arguments
3540
3541         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3542
3543 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3544
3545         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3546         
3547         * dbus/Makefile.am: added new files to build.
3548
3549         * bus/activation.c (bus_activation_activate_service): support
3550         activation commands with parameters.
3551
3552         * test/shell-test.c: added test program for the shell parsing
3553         code.
3554
3555 2005-07-13  David Zeuthen  <davidz@redhat.com>
3556
3557         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3558         64 bit signed and unsigned parameters
3559
3560 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3561
3562         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3563
3564         * python/service.py (class Name): renamed BusName to make it clearer
3565         what the object is for (a name on the bus)
3566
3567         * python/examples/example-service.py,
3568         python/examples/example-signal-emitter.py: change the Name object to
3569         BusName
3570
3571 2005-07-12  Colin Walters  <walters@verbum.org>
3572
3573         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3574
3575         * tools/dbus-launch.c: Include sys/select.h.
3576
3577 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3578         * python/dbus_bindings.pyx.in: removed
3579
3580         * python/dbus_bindings.pyx: Added.
3581         - Fixed some memleaks (patch from 
3582         Sean Meiners <sean.meiners@linspireinc.com>)
3583         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3584         own pxd file (Pyrex definition)
3585         - Broke out glib dependancies into its own pyx module
3586         
3587         * python/dbus_bindings.pdx: Added.
3588         - Defines C class Connection for exporting to other modules
3589
3590         * python/dbus_glib_bindings.pyx: Added.
3591         - New module to handle lowlevel dbus-glib mainloop integration
3592
3593         * python/glib.py: Added.
3594         - Registers the glib mainloop when you import this module
3595
3596         * python/services.py: Removed (renamed to service.py)
3597         
3598         * python/service.py: Added.
3599         - (class Server): renamed Name
3600
3601         * python/__init__.py: Bump ro version (0,41,0)
3602         -don't import the decorators or service module
3603         by default.  These now reside in the dbus.service namespace
3604
3605         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3606         setup function on creation 
3607
3608         * python/examples/example-service.py,
3609         python/examples/example-signal-emitter.py: update examples
3610
3611         * python/examples/gconf-proxy-service.py,
3612         python/examples/gconf-proxy-service2.py: TODO fix these up
3613
3614         * doc/TODO: Addition
3615         - Added a Python Bindings 1.0 section
3616         - added "Add match on args or match on details to match rules"
3617
3618
3619 2005-07-12  Colin Walters  <walters@verbum.org>
3620
3621         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3622         (statemachine-glue.h): 
3623         * glib/examples/Makefile.am (example-service-glue.h) 
3624         (example-signal-emitter-glue.h): 
3625         * glib/Makefile.am (dbus-glib-error-switch.h): 
3626         Add libtool --mode=execute so we use the built library instead
3627         of any installed one.
3628
3629 2005-07-11  Colin Walters  <walters@verbum.org>
3630
3631         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3632         (dbus_g_value_types_init): Remove assertion.
3633         (dbus_g_value_get_g_type, dbus_g_value_open)
3634         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3635         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3636         functions related to DBusGValue.  Now we marshal/demarshal
3637         structures as GValueArray.
3638         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3639         structures.
3640         (signature_iter_to_g_type_array): Don't call
3641         signature_iter_to_g_type_struct.
3642         (signature_iter_to_g_type_struct): Delete.
3643         (dbus_gvalue_to_signature): Delete.
3644         (dbus_gvalue_to_signature): New function with same name as other
3645         one; we can convert structures to signatures.
3646         (demarshal_valuearray): New function.
3647         (get_type_demarshaller): Use it.
3648         (demarshal_recurse): Delete.
3649         (marshal_proxy): New function.
3650         (marshal_map): Warn if we can't determine signature from type.
3651         (marshal_collection_ptrarray): Ditto.
3652         (marshal_collection_array): Ditto.
3653         (get_type_marshaller): Use marshal_valuearray.
3654         (marshal_recurse): Delete.
3655         (_dbus_gvalue_test): Add some tests.
3656
3657         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3658         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3659         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3660         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3661         (dbus_g_value_free): Remove prototypes.
3662
3663         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3664         G_TYPE_VALUE_ARRAY.
3665
3666         * glib/examples/example-service.c:
3667         * glib/examples/example-client.c: Implement GetTuple.
3668
3669         * test/glib/test-dbus-glib.c:
3670         * test/glib/test-service-glib.c:
3671         * test/glib/test-service-glib.xml: Add structure tests.
3672
3673 2005-07-10  Colin Walters  <walters@verbum.org>
3674
3675         * doc/TODO: Knock off some GLib items with this patch.
3676
3677         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3678         (_dbus_gvalue_signals_error): New functions.
3679
3680         * glib/dbus-gvalue-utils.h: Prototype them.
3681
3682         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3683         and change to not output const/retval flags for input args.  All
3684         callers updated.
3685         (invoke_object_method): Refactor to handle return values.  Add
3686         some more comments in various places.  Remove debug g_print.
3687
3688         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3689
3690         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3691         Handle G_TYPE_NONE.
3692         (compute_gsignature): New function; refactored from code from
3693         compute_marshaller and compute_marshaller_name.  Enhance to
3694         handle return values and async ops more cleanly.  Update for
3695         async ops returning NONE instead of BOOLEAN.
3696         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3697         and output appropriate string.
3698         (generate_glue): Handle return value annotation.  Also don't dump
3699         constness flag for input arguments.
3700
3701         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3702         files shared between installed library and utilities.
3703         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3704         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3705         binding tool can access gtype utility functions.
3706
3707         * test/glib/test-service-glib.c: 
3708         * test/glib/test-service-glib.xml: 
3709         * test/glib/test-dbus-glib.c: Add some tests for return values.
3710
3711 2005-07-09  Colin Walters  <walters@verbum.org>
3712
3713         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3714         argument if available, not method.
3715
3716         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3717         (invoke_object_method): First, remove some redundant
3718         GValues (object_value, error_value) in favor of working on
3719         array directly.  Second, rework constness to be less buggy.
3720         Now we iterate directly over the argument metadata instead
3721         of parallel iterating over output signature and metadata.
3722
3723         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3724
3725         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3726         annotation on input args.
3727         
3728 2005-07-09  Colin Walters  <walters@verbum.org>
3729
3730         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3731         Define.
3732
3733         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3734         annotation.
3735
3736         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3737         (method_dir_signature_from_object_info): Handle arg_iterate change.
3738         (write_interface): Ditto.
3739         (lookup_object_info): Don't barf if format_version is > 0.
3740         (invoke_object_method): Handle arg constness.
3741
3742         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3743         (arg_info_new): Create.
3744         (arg_info_unref): Destroy.
3745         (arg_info_get_annotations, arg_info_get_annotation) 
3746         (arg_info_add_annotation): New functions.
3747
3748         * glib/dbus-gidl.h: Prototype them.
3749
3750         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3751         args, disallow them in properties.
3752         (parse_annotation): Handle arg annotations.
3753
3754         * test/glib/test-service-glib.xml: 
3755         * test/glib/test-service-glib.c: Update to make some methods
3756         const.
3757
3758 2005-07-08  Colin Walters  <walters@verbum.org>
3759
3760         * test/glib/test-service-glib.xml: 
3761         * test/glib/test-service-glib.c:
3762         * test/glib/test-dbus-glib.c: Test a{sv}.
3763
3764         * glib/examples/statemachine/statemachine.c:
3765         * glib/examples/statemachine/statemachine-server.c:
3766         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3767         add progress bar, etc.
3768
3769         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3770         needed anymore due to generic array/map marshalling.
3771         (dbus_g_value_types_init): Don't register basic arrays or the
3772         string/string hash.
3773         (dbus_gtype_from_signature_iter): Don't try to recurse into
3774         variants.
3775         (dbus_gtype_to_signature): Check collection/map before type
3776         metadata.
3777         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3778         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3779         generic map creation/append functions instead of hash table
3780         specifically.
3781         (get_type_demarshaller): Handle maps.
3782         (demarshal_collection): Dispatch on collection type to either
3783         demarshal_collection_ptrarray or demarshal_collection_array.
3784         (get_type_marshaller): Handle maps.
3785         (marshal_collection): Dispatch collection type to either
3786         marshal_collection_ptrarray or marshal_collection_array.
3787         (_dbus_gvalue_test): New test.
3788
3789         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3790         (hash_free_from_gtype): Use it to free GValues.
3791         (hashtable_append): New function.
3792         (ptrarray_append): Fix prototype.
3793         (slist_append): Ditto.
3794         (_dbus_gvalue_utils_test): Extend tests.
3795
3796         * glib/dbus-gtype-specialized.c
3797         (dbus_g_type_specialized_init_append): Renamed from
3798         dbus_g_type_specialized_collection_init_append.  Remove const from
3799         value, since we steal it.
3800         (dbus_g_type_specialized_map_append): New function.
3801
3802         * glib/dbus-gtype-specialized.h: Update prototypes.
3803         Add DBusGTypeSpecializedMapAppendFunc.
3804
3805         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3806         _dbus_gvalue_test.
3807         
3808         * glib/dbus-gtest.h: Prototype it.
3809
3810 2005-07-08  Ross Burton  <ross@openedhand.com>
3811
3812         * dbus/dbus-glib.h:
3813         Add DBysGAsyncData for the async bindings.
3814
3815         * glib/dbus-binding-tool-glib.c:
3816         Re-enable the async bindings.
3817
3818         * test/glib/test-dbus-glib.c:
3819         Add a test for the generated async bindings.
3820
3821 2005-07-08  Colin Walters  <walters@verbum.org>
3822
3823         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3824         connection concept.
3825         
3826 2005-07-08  Colin Walters  <walters@verbum.org>
3827         
3828         * tools/Makefile.am: Kill of print-introspect in favor of using
3829         dbus-send --print-reply=literal.
3830
3831         * test/glib/test-service-glib.xml: 
3832         * test/glib/test-service-glib.c (my_object_get_objs): New test
3833         for "ao".
3834
3835         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3836         (main): Test GetObjs.
3837
3838         * glib/examples/statemachine/Makefile.am:
3839         * glib/examples/statemachine/sm-marshal.list:
3840         * glib/examples/statemachine/statemachine-client.c:
3841         * glib/examples/statemachine/statemachine-server.c:
3842         * glib/examples/statemachine/statemachine-server.xml:
3843         * glib/examples/statemachine/statemachine.c:
3844         * glib/examples/statemachine/statemachine.h:
3845         * glib/examples/statemachine/statemachine.xml:
3846
3847         New example.
3848
3849         * glib/examples/example-service.c (main): Move invocation
3850         of dbus_g_object_type_install_info earlier, to emphasize it
3851         should only be done once.
3852
3853         * glib/examples/example-signal-emitter.c (main): Ditto.
3854
3855         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3856
3857         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3858         (dbus_gvalue_marshal): Update prototypes.
3859
3860         * glib/dbus-gvalue.c: Update all marshalling functions to take
3861         const GValue instead of GValue.
3862         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3863         types.
3864         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3865         change.
3866         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3867         Return a newly-allocated string.
3868         (demarshal_proxy, demarshal_object_path, demarshal_object)
3869         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3870         we get the wrong types from message.
3871         (get_type_demarshaller): New function, extracted from
3872         dbus_gvalue_demarshal.
3873         (demarshal_collection): New function, demarshals generic
3874         collection.
3875         (dbus_gvalue_demarshal): Just invoke result of
3876         get_type_demarshaller.  Throw error if we don't have one.
3877         (marshal_garray_basic): Abort on OOM.
3878         (get_type_marshaller): New function, extracted from
3879         dbus_gvalue_marshal.
3880         (collection_marshal_iterator, marshal_collection): New functions;
3881         implements generic marshalling for an iteratable specialized
3882         collection.
3883         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3884
3885         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3886         G_TYPE_STRING.
3887         (ptrarray_value_from_gvalue): Ditto.
3888         (ptrarray_append, ptrarray_free): New functions.
3889         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3890         (slist_append, slist_end_append, slist_free): New functions.
3891         (dbus_g_type_specialized_builtins_init): Add append fuctions
3892         for GPtrArray and GSList.  Register GSList.
3893         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3894
3895         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3896         New.
3897         (dbus_g_type_specialized_collection_init_append)
3898         (dbus_g_type_specialized_collection_append)
3899         (dbus_g_type_specialized_collection_end_append): Prototype.
3900         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3901         end_append_func.
3902
3903         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3904         (dbus_g_type_specialized_collection_append) 
3905         (dbus_g_type_specialized_collection_end_append): New functions.
3906         (dbus_g_type_map_value_iterate): Take const GValue.
3907         (dbus_g_type_collection_value_iterate): Ditto.
3908
3909         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3910         _dbus_gvalue_utils_test.
3911         
3912         * glib/dbus-gtest.h: Prototype it.
3913
3914         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3915         using uninitialized owner_list.
3916         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3917         public API.
3918         (dbus_g_proxy_end_call_internal): Update to use error set
3919         from dbus_gvalue_demarshal instead of setting it here.
3920         (dbus_g_proxy_begin_call): Move return_if_fail here.
3921
3922         * glib/dbus-gobject.c (write_interface): Update for
3923         dbus_gtype_to_signature returning new string.
3924
3925         * configure.in: Add glib/examples/statemachine.
3926
3927 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3928
3929         * configure.in: Add a configure option, --with-console-auth-dir
3930         
3931         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3932         new setting.  Patch from Kay Sievers.
3933
3934 2005-07-06  Colin Walters  <walters@verbum.org>
3935
3936         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3937         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3938         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3939         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3940         Delete in favor of dbus_g_proxy_begin_call and
3941         dbus_g_proxy_cancel_call.
3942         (DBusGProxyCall, DBusGProxyCallNotify): New.
3943         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3944         data, and destroy function.  This replaces
3945         dbus_g_pending_call_set_notify.
3946         (dbus_g_proxy_cancel_call): Prototype.
3947         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3948
3949         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3950         pending_calls map.
3951         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3952         internal proxy for calls to the bus. Remove
3953         pending_nameowner_calls, now the internal proxy keeps track.
3954         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3955         pending_nameowner_calls.
3956         (got_name_owner_cb): Update prototype, and use
3957         dbus_g_proxy_end_call.
3958         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3959         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3960         favor of using internal proxy.
3961         (dbus_g_proxy_manager_unregister): Update to use
3962         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3963         (dbus_g_proxy_init): Initialize pending calls map.
3964         (dbus_g_proxy_constructor): New.
3965         (dbus_g_proxy_class_init): Add get/set property functions,
3966         constructor, and add NAME, PATH, and INTERFACE properties.
3967         (cancel_pending_call): New function.
3968         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3969         cancel them.
3970         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3971         (GPendingNotifyClosure): New structure.
3972         (d_pending_call_notify, d_pending_call_free): Moved here from
3973         dbus-glib.c.
3974         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3975         ordering.
3976         (manager_begin_bus_call): New internal function for talking to
3977         internal bus proxy.
3978         (dbus_g_proxy_new): Construct object using GObjet properties.
3979         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3980         Create closure of same, and insert call into map of pending calls.
3981         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3982         call.  Look up pending call in current set.  Remove it when we've
3983         completed.
3984         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3985         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3986         and destroy function directly.
3987         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3988         (dbus_g_proxy_call): Invoke with NULL callback.
3989         (dbus_g_proxy_cancel_call): New function, replaces
3990         dbus_g_pending_call_cancel.
3991
3992         * glib/dbus-gparser.c (validate_signature): Fix call to
3993         dbus_set_g_error.
3994
3995         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3996         New quark for attaching metadata to GType.
3997         (info_hash): Delete.
3998         (lookup_object_info): Look up using quark.
3999         (dbus_g_object_type_install_info): Check that a type is classed,
4000         not that it's an object.  Also just install type data using quark
4001         instead of using global hash.
4002
4003         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4004         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4005         (GPendingNotifyClosure): Delete.
4006         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4007         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4008
4009         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4010         client method generation until we can fix it...
4011         
4012         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4013         (load_from_service_thread_func): Ditto.
4014
4015         * tools/dbus-names-model.c (struct NamesModel): Hold
4016         DBusGProxyCall.
4017         (have_names_notify): Update prototype, use
4018         dbus_g_proxy_cancel_call.
4019         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4020
4021         * tools/dbus-monitor.c (filter_func): Update for print_message
4022         API change.
4023
4024         * test/glib/test-dbus-glib.c: Add more tests for async
4025         invocations.  Update many begin_call/end_call pairs to just use
4026         dbus_g_proxy_call.
4027
4028         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4029         allows us to dump print-introspect.c.
4030
4031         * tools/dbus-print-message.h (print_message): Add literal argument
4032         to print_message which is intended to allow printing arguments without
4033         metadata like "string=".
4034
4035         * tools/dbus-print-message.c (print_iter): Add literal argument.
4036         (print_message): Allow printing string messages literally.
4037
4038 2005-07-05  Colin Walters  <walters@verbum.org>
4039
4040         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4041         Remove value refcount leak, original patch from Jorn Baayen
4042         <jorn@openedhand.com>.  Also remove useless extra value in favor
4043         of prepending to value array directly.
4044
4045 2005-07-02  Colin Walters  <walters@verbum.org>
4046
4047         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4048
4049 2005-07-01  Colin Walters  <walters@verbum.org>
4050
4051         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4052         
4053         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4054         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4055         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4056         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4057
4058 2005-06-30  Colin Walters  <walters@verbum.org>
4059
4060         * test/glib/test-dbus-glib.c:
4061         * test/glib/test-service-glib.c:
4062         * test/glib/test-service-glib.xml: Update tests for new error
4063         setting bits, also add async tests (patch from Ross Burton).
4064
4065         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4066         DBUS_GLIB_THREADS_LIBS.
4067
4068         * glib/dbus-gproxy.c (get_name_owner)
4069         (dbus_g_pending_call_end_valist): Ditto.
4070
4071         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4072         domain (GQuark) to DBusGErrorInfo.  
4073         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4074         quark in error_metadata.  Take message interface as default
4075         error message interface.
4076         (gerror_to_dbus_error_message): Pass message interface.
4077         (dbus_set_g_error): Resurrected.
4078         (dbus_g_error_info_free): New function.
4079         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4080         of _peek to actually create the object class if it hasn't been
4081         created yet.
4082         (dbus_g_error_domain_register): New function.
4083
4084         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4085
4086         * glib/dbus-gparser.c (validate_signature): Ditto.
4087
4088         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4089         (dbus_g_error_domain_register): Prototype.
4090
4091         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4092         Update tests.
4093
4094 2005-06-29  Colin Walters  <walters@verbum.org>
4095
4096         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4097         DBUS_TYPE_G_OBJECT_PATH.
4098
4099         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4100         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4101         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4102         (dbus_g_object_path_get_g_type): New function.
4103         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4104         to DBUS_TYPE_G_OBJECT_PATH by default.
4105         (demarshal_proxy): Remove unused name variable.
4106         (demarshal_object_path, marshal_object_path): New functions.
4107         (demarshal_proxy_array, marshal_proxy_array): Delete.
4108         
4109         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4110         DBUS_TYPE_G_OBJECT_PATH to char *.
4111         (dbus_g_type_get_lookup_function): Map builtin
4112         DBUS_TYPE_G_OBJECT_PATH.
4113
4114         * test/glib/test-dbus-glib.c
4115         * test/glib/test-service-glib.c (my_object_objpath): 
4116         Adapt tests to new object path marshalling.
4117
4118 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4119
4120         * configure.in: force check for Python >= 2.4
4121
4122 2005-06-29  Colin Walters  <walters@verbum.org>
4123         
4124         Patch from Ross Burton <ross@openedhand.com>
4125         
4126         * glib/dbus-gobject.c (invoke_object_method): Unset object
4127         value in all cases, not only in async case.
4128
4129 2005-06-29  Colin Walters  <walters@verbum.org>
4130
4131         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4132         name_call for keeping track of any outgoing GetNameOwner call.
4133         Also add for_owner and associated.
4134         (struct _DBusGProxyManager): Add owner_names, which is hash table
4135         that maps a base name to a list of names it owns (that we're
4136         interested in).  Add pending_nameowner_calls which is a list of
4137         all outstanding GetNameOwner; avoids us having to iterate over
4138         every proxy.  Add unassociated_proxies which keeps track of name
4139         proxies with no associated name owner.
4140         (dbus_g_proxy_manager_unref): Destroy owner_names.
4141         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4142         name refcounts.
4143         (find_name_in_info, name_owner_foreach)
4144         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4145         (dbus_g_proxy_manager_monitor_name_owner)
4146         (dbus_g_proxy_manager_unmonitor_name_owner)
4147         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4148         New functions; they manipulate the owner_names mapping.
4149         (got_name_owner_cb): New function.
4150         (get_name_owner): New function, extracted from
4151         dbus_g_proxy_new_for_name_owner.
4152         (dbus_g_proxy_manager_register): For now we need to keep track of
4153         all NameOwnerChanged.  Also if the proxy is for a name, if we
4154         don't already know the name owner, queue a new GetNameOwner
4155         request and add it to our list of unassociated proxies.  Otherwise
4156         inc the refcount.
4157         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4158         cancel any pending GetNameOwner call, etc.
4159         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4160         the owner_names mapping to look up the current names for the
4161         signal source, and dispatch to any proxies for that name.
4162         (dbus_g_proxy_new): Initialize new members.
4163         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4164         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4165         (dbus_g_pending_call_end_valist): New function, extracted from
4166         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4167         but want to use the GLib infrastructure.  Also note how many
4168         arguments in reply were over.
4169         (dbus_g_pending_call_end): New function, just call
4170         dbus_g_pending_call_end_valist.
4171         (dbus_g_proxy_end_call_internal): Just call
4172         dbus_g_pending_call_end_valist.
4173
4174         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4175         of builtin marshaller for STRING_STRING_STRING.
4176
4177         * test/glib/test-dbus-glib.c: 
4178         * test/glib/test-service-glib.c:
4179         * test/glib/test-service-glib.xml:
4180         Extend tests to cover name proxies, destruction of owner proxies,
4181         etc.
4182         
4183         * glib/examples/example-signal-recipient.c
4184         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4185         
4186         * tools/dbus-send.c (main): Print D-BUS error name in addition
4187         to message.
4188
4189 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4190
4191         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4192         cmessage_function_handler): Patch from 
4193         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4194         by using the Py_GILState_Ensure/Release to synchronize with the
4195         python runtime.
4196         
4197 2005-06-28  Ray Strode  <rstrode@redhat.com>
4198
4199         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4200         babysitter helper process on last unref, bug #2813.
4201
4202 2005-06-27  Colin Walters  <walters@verbum.org>
4203
4204         * test/glib/test-dbus-glib.c: 
4205         * test/glib/test-service-glib.c:
4206         * test/glib/test-service-glib.xml:
4207         Test hash table signal emitting.
4208
4209         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4210         types to their fundamental basis types, since this is what
4211         marshallers operate on.  Also add an entry for VOID__BOXED.
4212         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4213
4214 2005-06-26  Havoc Pennington  <hp@redhat.com>
4215
4216         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4217         from Don Park
4218
4219 2005-06-26  Colin Walters  <walters@verbum.org>
4220
4221         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4222         (dbus_g_error_set): New public function from its ashes; used by
4223         both service-side method implementation and GLib bindings
4224         internals.
4225         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4226         (_dbus_glib_test): Add some tests.
4227
4228         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4229
4230         * test/glib/test-service-glib.c (my_object_throw_error): Use
4231         dbus_g_error_set.
4232
4233         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4234         errors thrown by dbus_g_error_set.
4235
4236         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4237
4238         * glib/dbus-gparser.c (validate_signature): Ditto.
4239
4240         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4241         (dbus_g_proxy_end_call_internal): Ditto.
4242
4243         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4244         converts DBUS_ERROR_x to DBUS_GERROR_x.
4245         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4246
4247         * doc/TODO: Remove error TODO.
4248
4249         * doc/dbus-tutorial.xml: Update with documentation about error
4250         handling.
4251
4252         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4253         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4254         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4255
4256 2005-06-22  Colin Walters  <walters@verbum.org>
4257         
4258         Patch from Ross Burton <ross@openedhand.com>
4259
4260         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4261
4262 2005-06-20  Colin Walters  <walters@verbum.org>
4263
4264         * configure.in: Add glib/examples.
4265
4266         * glib/Makefile.am: Add examples/
4267
4268         * glib/examples/.cvsignore
4269         * glib/examples/Makefile.am
4270         * glib/examples/example-client.c
4271         * glib/examples/example-service.c
4272         * glib/examples/example-service.xml
4273         * glib/examples/example-signal-emitter.c
4274         * glib/examples/example-signal-emitter.xml
4275         * glib/examples/example-signal-recipient.c:
4276         New files; GLib binding examples, ported from
4277         python/examples.
4278
4279 2005-06-20  Colin Walters  <walters@verbum.org>
4280
4281         * dbus/dbus-glib.h: 
4282         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4283         dbus_g_proxy_call.
4284
4285         * glib/dbus-binding-tool-glib.c: 
4286         * doc/dbus-tutorial.xml: 
4287         * test/glib/test-dbus-glib.c: Update for rename.
4288         
4289 2005-06-20  Colin Walters  <walters@verbum.org>
4290
4291         Patch suggested by Ross Burton <ross@openedhand.com>
4292
4293         * glib/dbus-gobject.c (export_signals): Free signal name.
4294         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4295         memory leak.  Add a bit of documentation.
4296         (dbus_g_method_return_error): Free context, and note we do
4297         so.
4298
4299 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4300
4301         * dbus/dbus-glib.h:
4302         * glib/dbus-gobject.c:
4303         * glib/dbus-gproxy.c:
4304         * glib/dbus-gvalue.c: Predeclare structs as 
4305         typedef struct _Something Something instead of 
4306         typedef struct Something Something, so we can 
4307         redeclare the prototypes. Other GNOME libraries 
4308         do this already.
4309
4310 2005-06-17  Colin Walters  <walters@verbum.org>
4311
4312         * tools/dbus-names-model.c (have_names_notify): Fix call
4313         to dbus_g_proxy_end_call.
4314         
4315 2005-06-17  Colin Walters  <walters@verbum.org>
4316
4317         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4318         spew warnings if we get malformed remote signals.
4319
4320         * glib/dbus-gobject.c (propsig_iterate): New function.
4321         (lookup_object_info): New function, extracted from
4322         lookup_object_and_method.
4323         (introspect_properties, introspect_signals): Delete; these
4324         are merged into write_interface.
4325         (write_interface): Write out signals and properties here;
4326         dump the org.gtk.object stuff and use the interface given
4327         in the introspection data blob.  Also fix up property XML.
4328         (lookup_values): New function.
4329         (introspect_interfaces): Gather a mapping from interface to a
4330         list of its methods, signals, and properties, then write out
4331         each interface.
4332         (lookup_object_and_method): Use lookup_object_info.
4333         (struct DBusGSignalClosure): Add interface.
4334         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4335         we can just use the constant data.
4336         (dbus_g_signal_closure_finalize): Don't free signal name.
4337         (signal_emitter_marshaller): Use interface from signal closure.
4338         (export_signals): Only export signals mentioned in introspection
4339         blob.
4340         (dbus_g_connection_register_g_object): Warn if we have no
4341         introspection data for an object.
4342         (funcsig_equal): Remove unused variable.
4343         (dbus_g_object_register_marshaller): Take varargs instead of
4344         list.
4345         (dbus_g_object_register_marshaller_array): New function,
4346         extracted from old dbus_g_object_register_marshaller.
4347
4348         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4349         signals and property data.
4350         (write_quoted_string): New function, extracted from generate_glue.
4351         (generate_glue): Write signals and properties to introspection
4352         blob.
4353
4354         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4355         exported_signals and exported_properties.
4356         (dbus_g_object_register_marshaller): Update prototype.
4357         (dbus_g_object_register_marshaller_array): Prototype.
4358         
4359         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4360
4361         * test/glib/test-service-glib.c: Add new test signals and method
4362         to emit them.
4363
4364         * test/glib/test-service-glib.xml: Add some test signals.
4365
4366         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4367         and my-object-marshal.h
4368         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4369         my-object-marshal.c.
4370         (my-object-marshal.c, my-object-marshal.h): Implement.
4371
4372         * test/glib/.cvsignore: Update.
4373
4374         * doc/TODO: Remove two GLib TODO items fixed by this
4375         patch.
4376
4377 2005-06-16  Colin Walters  <walters@verbum.org>
4378
4379         * doc/TODO: Update for GLib bindings.
4380         
4381 2005-06-16  Colin Walters  <walters@verbum.org>
4382
4383         * glib/dbus-binding-tool-glib.c:
4384         * glib/dbus-gobject.c:
4385         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4386         from Ross Burton, for his GLib bindings work.
4387
4388 2005-06-16  Colin Walters  <walters@verbum.org>
4389
4390         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4391         to iterate instead of walking to G_TYPE_INVALID.
4392
4393         Patch based on a patch from Ryan Gammon.
4394
4395 2005-06-16  Colin Walters  <walters@verbum.org>
4396
4397         * bus/bus.c (bus_context_new): Set parser to NULL
4398         after we unref it (Patch from Chris Boscolo, #2174).
4399         
4400 2005-06-16  Colin Walters  <walters@verbum.org>
4401
4402         * python/dbus_bindings.pyx.in: Import size_t,
4403         __int64_t, __uint64_t, and __signed.
4404
4405         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4406         Define cmsg struct, output it.
4407         (_dbus_read_credentials_unix_socket):
4408         Use cmsg struct.
4409         
4410         Patch from Joe Markus Clarke for FreeBSD support.
4411         
4412 2005-06-16  Colin Walters  <walters@verbum.org>
4413
4414         * tools/dbus-send.c (append_array): Use strtok.
4415         (append_dict): New function.
4416         (type_from_name): New function, extracted from main.
4417         (main): Handle sending dicts.
4418
4419         * tools/dbus-print-message.c (print_iter): Print dict
4420         entries.
4421         
4422 2005-06-16  Colin Walters  <walters@verbum.org>
4423
4424         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4425         values as the empty string (#2948).
4426         
4427 2005-06-16  Colin Walters  <walters@verbum.org>
4428
4429         * dbus/Makefile.am:
4430         * mono/doc/Makefile.am:
4431         * test/glib/Makefile.am:
4432
4433         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4434
4435 2005-06-16  Colin Walters  <walters@verbum.org>
4436
4437         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4438         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4439
4440         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4441         Increment pointer after swapping fixed array.  Add assertion
4442         for array length.
4443                 
4444 2005-06-15  Colin Walters  <walters@verbum.org>
4445
4446         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4447         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4448         
4449 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4450
4451         * NEWS: Update to 0.34
4452
4453 2005-06-15  David Zeuthen  <davidz@redhat.com>
4454
4455         * configure.in (LT_CURRENT): Revert back to 1 as the library
4456         hasn't changed and we've certainly not committed to protocol
4457         stability yet.  All this does is to break ABI. See commit note
4458         from hp@redhat.com 2005-05-05 for details.
4459         
4460 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4461
4462         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4463         (_dbus_connection_run_builtin_filters): New method
4464         (dbus_connection_dispatch): Run the builtin filters which in turn
4465         runs the peer filter which handles Ping messages.
4466
4467         * doc/TODO: 
4468          - Ping isn't handled: This patch fixes it
4469          
4470          - Add a test case for the Ping message: added TODO item
4471
4472 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4473
4474         * dbus/dbus-message.c:
4475         (dbus_message_has_path): New method
4476         (dbus_message_has_interface): New method
4477         (dbus_message_has_member): New method
4478
4479         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4480         New method
4481
4482         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4483         the keyring directory is private to the user
4484
4485         * doc/TODO:
4486          - The convenience functions in dbus-bus.h should perhaps have
4487          the signatures that they would have if they were autogenerated
4488          stubs. e.g. the acquire service function. We should also evaluate
4489          which of these functions to include, in light of the fact that
4490          GLib/Qt native stubs will probably also exist.: Punted
4491
4492          - add dbus_message_has_path(), maybe has_member/interface:
4493          fixed in this patch
4494
4495          - in dbus-keyring.c, enforce that the keyring dir is not
4496          world readable/writable: Fixed in this patch
4497
4498 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4499
4500         * dbus/dbus-marshal-validate.h: Added a new validation
4501         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4502         out of memory errors when validating signitures
4503
4504         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4505         in places where we previously used DBUS_VALID and a FALSE return 
4506         value to indicate OOM
4507         
4508         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4509         Use a stack to track the number of elements inside containers.  The 
4510         stack values are then used to validate that dict entries have only two
4511         elements within them.
4512         (validate_body_helper): check the reason for failure when validating
4513         varients
4514         
4515         * dbus/dbus-message.c (load_message): use 
4516         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4517         DBUS_VALID and a FALSE return value to indicate OOM
4518
4519         * doc/TODO: remove "- validate dict entry number of fields" as this
4520         patch fixes it
4521
4522 2005-06-14  David Zeuthen  <davidz@redhat.com>
4523
4524         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4525         watches (if applicable) and add new watches
4526
4527         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4528         (main): Setup SIGIO signal handler if using D_NOTIFY
4529
4530         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4531
4532         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4533         (merge_included): Also merge conf_dirs list
4534         (bus_config_parser_unref): Clear conf_dirs list
4535         (include_dir): Add directory to conf_dirs list
4536         (bus_config_parser_get_conf_dirs): New function
4537
4538         * bus/dir-watch.[ch]: New files
4539
4540         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4541
4542         * configure.in: Add checks for D_NOTIFY on Linux
4543
4544 2005-06-14  Colin Walters  <walters@verbum.org>
4545
4546         * glib/dbus-binding-tool-glib.c:
4547         * glib/dbus-gobject.c:
4548         * glib/dbus-gvalue.c: Fix indentation and brace style.
4549         
4550 2005-06-14  Ross Burton <ross@openedhand.com>.
4551
4552         * glib/dbus-glib.h: Make DBusGMethodInvocation
4553         a private structure.  Rearrange prototypes a bit.
4554         
4555         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4556         documentation for first_arg_type.
4557         
4558         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4559         here, add documentation.  Move dbus_g_method_return
4560         and dbus_g_method_return_error into public API
4561         section.
4562
4563 2005-06-14  Colin Walters  <walters@verbum.org>
4564
4565         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4566         Add missing return statements, noticed by Ross Burton.
4567         
4568 2005-06-13  Ross Burton <ross@openedhand.com>.
4569
4570         * glib/dbus-gobject.c: Handle errors on message
4571         demarshalling by sending error message back.
4572         * glib/dbus-gvalue.c: Initialize return variables.
4573
4574 2005-06-13  Colin Walters  <walters@verbum.org>
4575
4576         * glib/Makefile.am: Fix thinko in last patch.
4577
4578 2005-06-13  Colin Walters  <walters@verbum.org>
4579
4580         * glib/Makefile.am: Move dbus-gtype-specialized.c
4581         and dbus-gtype-specialized.h into a _HEADERS variable,
4582         install them.
4583
4584 2005-06-12  Colin Walters  <walters@verbum.org>
4585
4586         Async signals and various bugfixes and testing by
4587         Ross Burton <ross@openedhand.com>.
4588
4589         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4590         (dbus_gvalue_genmarshal_name_from_type)
4591         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4592         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4593         (dbus_g_value_types_init, dbus_gtype_from_signature)
4594         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4595         (dbus_gtypes_from_arg_signature): New function prototypes.
4596         (dbus_gvalue_demarshal): Take context and error arguments.
4597         (dbus_gvalue_demarshal_variant): New function.
4598         (dbus_gvalue_demarshal_message): New function.
4599         (dbus_gvalue_store): Delete.
4600
4601         * glib/dbus-gvalue.c:
4602
4603         File has been almost entirely rewritten; now we special-case
4604         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4605         hash tables correctly, etc.  Full support for recursive values
4606         is not yet complete.
4607
4608         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4609         argument of signal to G_TYPE_POINTER since we now pass a
4610         structure.
4611         (lookup_g_marshaller): Delete in favor of
4612         _dbus_gobject_lookup_marshaller.
4613         (marshal_dbus_message_to_g_marshaller): Use
4614         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4615         to handle remote signal callbacks.
4616         (dbus_g_proxy_new_from_proxy): New function; creates a new
4617         DBusGProxy by copying an existing one.
4618         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4619         (dbus_g_proxy_get_path): New functions.
4620         (dbus_g_proxy_marshal_args_to_message): New function;
4621         factored out of existing code.
4622         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4623         from a varargs array.
4624         (dbus_g_proxy_begin_call_internal): New function.
4625         (dbus_g_proxy_end_call_internal): New function.
4626         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4627         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4628         after collecting args into value array.
4629         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4630         invoke dbus_g_proxy_end_call_internal.
4631         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4632         end_call_internal.
4633         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4634         types.
4635         (array_free_all): New function.
4636         (dbus_g_proxy_add_signal): Take GTypes.
4637
4638         * glib/dbus-gobject.h:
4639         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4640         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4641         Prototype.
4642
4643         * glib/dbus-gobject.c: Add a global marshal_table hash which
4644         stores mappings from type signatures to marshallers.  Change lots
4645         of invocations of dbus_gtype_to_dbus_type to
4646         dbus_gtype_to_signature.
4647         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4648         (introspect_signals): Fix test for query.return_type.
4649         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4650         (invoke_object_method): Many changes.  Handle asynchronous
4651         invocations.  Convert arguments with
4652         dbus_gvalue_demarshal_message.  Handle errors.  Use
4653         DBusSignatureIter instead of strlen on args. Handle all arguments
4654         generically.  Special-case variants.
4655         (dbus_g_method_return, dbus_g_method_return_error): New function.
4656         (DBusGSignalClosure): New structure, closes over signal
4657         information.
4658         (dbus_g_signal_closure_new): New function.
4659         (dbus_g_signal_closure_finalize): New function.
4660         (signal_emitter_marshaller): New function; is special marshaller
4661         which emits signals on bus.
4662         (export_signals): New function; introspects object signals and
4663         connects to them.
4664         (dbus_g_object_type_install_info): Take GType instead of
4665         GObjectClass.
4666         (dbus_g_connection_register_g_object): Invoke export_signals.
4667         (dbus_g_connection_lookup_g_object): New function.
4668         (DBusGFuncSignature) New structure; used for mapping type
4669         signatures to marshallers.
4670         (funcsig_hash): New function; hashes DBusGFuncSignature.
4671         (funcsig_equal): New function; compares DBusGFuncSignature.
4672         (_dbus_gobject_lookup_marshaller): New function.
4673         (dbus_g_object_register_marshaller): New function; used to
4674         register a marshaller at runtime for a particular signature.
4675
4676         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4677
4678         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4679         which notes a server method implementation should be
4680         asynchronous.
4681
4682         * glib/dbus-binding-tool-glib.c
4683         (dbus_binding_tool_output_glib_server): Call
4684         dbus_g_value_types_init.
4685         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4686         variants specially.
4687         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4688         of a lookup function.
4689         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4690         (write_untyped_out_args): New method; write output arguments.
4691         (write_formal_declarations_for_direction): Function for
4692         writing prototypes.
4693         (write_formal_parameters_for_direction): Function for
4694         writing implementations.
4695         (write_typed_args_for_direction): Function for writing
4696         arguments prefixed with GTypes.
4697         (write_async_method_client): Write out async version
4698         of method.
4699
4700         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4701         (dbus_g_type_get_marshal_name): Move mapping from GType
4702         to marshal name into here.
4703         (dbus_g_type_get_c_name): Move into here.
4704         (compute_marshaller): Convert signature to type with
4705         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4706         (compute_marshaller_name): Ditto.
4707         (compute_marshaller): Handle async signal annotations.
4708         (gather_marshallers): Return if we don't have a known
4709         prefix.
4710         (generate_glue): Collect introspection blob here, and
4711         write all of the blob at the end.  This allows an object
4712         with multiple interfaces to work.
4713         Mark async methods in introspection blob.
4714
4715         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4716         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4717         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4718
4719         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4720         avoids people accidentally using DBUS_TYPE_* which should
4721         not be necessary anymore.
4722         Do include dbus-gtype-specialized.h, which are utilities
4723         for GLib container types.
4724         Add various #defines for types such as
4725         DBUS_TYPE_G_BOOLEAN_ARRAY.
4726         (DBusGValueIterator, DBusGValue): Define, not fully used
4727         yet.
4728         (dbus_g_value_get_g_type): Type for recursive value.
4729         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4730         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4731         (dbus_g_value_free): Prototypes.
4732         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4733         (dbus_g_proxy_set_interface): Prototype.
4734         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4735         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4736         types.
4737         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4738         Accessors.
4739         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4740         doing async invocations.
4741         (dbus_g_method_return, dbus_g_method_return_error):
4742         Prototypes.
4743         * doc/dbus-tutorial.xml: Update GLib section.
4744         
4745         * tools/dbus-viewer.c (load_child_nodes): Update
4746         for new invocation type of dbus_g_proxy_end_call.
4747         (load_from_service_thread_func): Ditto.
4748
4749         * tools/print-introspect.c (main): Ditto.
4750
4751         * tools/dbus-names-model.c (have_names_notify)
4752         (names_model_reload, names_model_set_connection)
4753         Use GTypes.
4754
4755         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4756         needed since Python bindings use GLib bindings.
4757
4758         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4759         Add --prefix argument.
4760
4761         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4762         unneeded --ignore-unsupported arg.
4763         
4764         * test/glib/test-service-glib.c: 
4765         * test/glib/test-service-glib.xml:
4766         * test/glib/test-dbus-glib.c: Add many more tests.
4767
4768 2005-06-06  David Zeuthen  <davidz@redhat.com>
4769
4770         * doc/TODO: Add item about need to remove deprecated functions.
4771
4772         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4773
4774         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4775         to repair the ABI which was broken with the last commit.
4776
4777 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4778
4779         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4780         (dbus_connection_disconnect): renamed to dbus_connection_close 
4781         for API symmetry with dbus_connection_open
4782         (_dbus_connection_open_internal): 
4783         s/dbus_connection_disconnect/dbus_connection_close
4784
4785         * dbus/dbus-bus.c (dbus_bus_get):
4786         s/dbus_connection_disconnect/dbus_connection_close
4787
4788         * bus/connection.c (bus_connections_unref, 
4789         bus_connections_setup_connection, bus_connections_expire_incomplete):
4790         s/dbus_connection_disconnect/dbus_connection_close
4791
4792         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4793         kill_client_connection_unchecked, check_hello_connection):
4794         s/dbus_connection_disconnect/dbus_connection_close
4795
4796         * bus/bus.c (new_connection_callback):
4797         s/dbus_connection_disconnect/dbus_connection_close
4798
4799         * tools/dbus-send.c (main):
4800         s/dbus_connection_disconnect/dbus_connection_close
4801
4802         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4803         s/dbus_connection_disconnect/dbus_connection_close
4804         
4805         * test/test-service.c (path_message_func, filter_func):
4806         s/dbus_connection_disconnect/dbus_connection_close
4807         
4808         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4809         
4810 2005-05-25  Colin Walters  <walters@verbum.org>
4811
4812         * dbus/dbus-protocol.h: Move various bus service #defines such
4813           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4814           dbus/dbus-shared.h.
4815         * dbus/dbus-shared.h: Various defines moved here.
4816         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4817
4818 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4819
4820         * python/__init__.py: Python bindings deserve a minor version
4821         update.  Upped to (0, 40, 2)
4822
4823 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4824
4825         * python/decorators.py: add explicitly_pass_message decorator
4826         for passing in the dbus message as keyword for edge case signal
4827         handling
4828
4829         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4830         to conform with what dbus expects for match rules
4831         (SignalMatchRule.execute): add the dbus message as a keyword
4832         if the signal handler has requested it
4833
4834         * python/examples/example/signal-recipient.py: added some more
4835         examples on how to hook up to signals
4836
4837 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4838
4839         * python/decorators.py: import dbus_bindings
4840
4841         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4842         SignalMatchNode): new classes that implement wildcard signal
4843         callback matching using a tree lookup. Heavily modified from a
4844         patch sent by Celso Pinto (fd.o bug #3241)
4845
4846         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4847         use new match classes to handle signals.
4848
4849 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4850         
4851         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4852
4853 2005-05-18  Havoc Pennington  <hp@redhat.com>
4854
4855         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4856         gettext. Not really worth requiring yet perhaps, but any
4857         production quality 1.0 would require it so we should go ahead and
4858         get things set up. We do have a couple token calls to
4859         bindtextdomain in the code already.
4860
4861 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4862
4863         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4864         when using recursive g_main_loops
4865
4866         * python/_dbus.py (class Bus): add the ProxyObjectClass
4867         alias for ProxyObject to make it easier for the Twisted 
4868         networking framework to integrate dbus.
4869
4870         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4871         alias for ProxyMethod to make it easier for the Twisted 
4872         networking framework to integrate dbus. 
4873
4874 2005-05-11  Ross Burton  <ross@openedhand.com>
4875
4876         * glib/dbus-glib-tool.c: Add --prefix argument.
4877         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4878         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4879         Add prefix argument.
4880         (generate_glue): Pass prefix argument down.
4881         (dbus_binding_tool_output_glib_server): Pass prefix to
4882         glib-genmarshal.
4883         
4884 2005-05-11  Colin Walters  <walters@verbum.org>
4885
4886         * tools/dbus-send.c (append_array): New function.
4887         (append_arg): Broken out from main.
4888         (main): Add cheesy hack to send arrays and variants.
4889         (usage): Update.
4890         * tools/dbus-print-message.c (print_iter): Broken out
4891         from main.
4892
4893 2005-05-11  Colin Walters  <walters@verbum.org>
4894
4895         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4896         New function, returns signature string for signature iter.
4897         * dbus/dbus-signature.h: Prototype it.
4898         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4899         New function, returns signature string for message iter.
4900         (dbus_message_iter_get_array_len): New function, returns
4901         length of array.
4902         (dbus_message_iter_get_fixed_array): Fix assertion; this
4903         function should be used when the iter is pointing to the
4904         contents of an array
4905         * dbus/dbus-message.h: Prototypes.
4906         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4907         New function; returns length of an array.
4908         * dbus/dbus-marshal-recursive.h: Prototype it.
4909         
4910 2005-05-11  Colin Walters  <walters@verbum.org>
4911
4912         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4913         compilation error.
4914         
4915 2005-05-08  Havoc Pennington  <hp@redhat.com>
4916
4917         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4918         daemon's pid, not the parent's pid, to the file descriptor.
4919         Reported by Taj Morton.
4920
4921 2005-05-05  Havoc Pennington  <hp@redhat.com>
4922
4923         * configure.in (LT_*): add notes on how the libtool versioning
4924         works to save thinking. Increment soname to indicate protocol
4925         breakage (though really the library interface hasn't changed I
4926         guess)
4927
4928         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4929         verify the GUID received from server matches what we were
4930         expecting, if we had an expectation
4931
4932         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4933         (_dbus_auth_get_guid_from_server): new function
4934         (send_begin): parse the OK args
4935
4936         * doc/dbus-specification.xml: add GUID to the auth protocol
4937
4938 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4939
4940         * Fix my name in previous changelog ;)
4941
4942         * python/proxies.py (ProxyObject.__getattr__): add further patch
4943         from Anthony Baxter to throw an AttributeError when python 
4944         __special__ functions are called instead of marshling them over 
4945         the bus (Bug#1685 comment 3).
4946
4947 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4948
4949         * python/Makefile.am: changed to use pyexecdir for the binding
4950         shared libraries (Bug#2494)
4951
4952         * python/exceptions.py: bring exceptions over from the bindings
4953         so they can be used in applications (Bug#2036)
4954         Make all exceptions derive from DBusException
4955
4956         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4957         of classes so that print obj doesn't throw an exception (Bug #1685)
4958
4959 2005-05-03  Ross Burton  <ross@openedhand.com>
4960
4961         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4962         Return if we get an error during registration.  Set up a
4963         weak reference on object to unregister if object is destroyed.
4964         (unregister_gobject): New function.
4965         
4966 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4967
4968         * python/dbus_bindings.pyx.in: 
4969         - added new type classes for hinting to the marashaler what type 
4970         to send over the wire
4971         - added int16 and uint16 marshalers
4972         - Fixed a bug in the type constants that caused int32 to go out
4973         as uint16 over the wire
4974         * python/dbus.py: split up into different files and renamed _dbus.py
4975         * python/__init__.py, python/_util.py, python/decorators.py, 
4976         python/exceptions.py, python/proxies.py, python/services.py,
4977         python/types.py: new files split off from dbus.py
4978         * python/Makefile.am: Add new files, remove dbus.py and 
4979         install all python files to <python module dir>/dbus
4980         * python/examples/*: Added #!/usr/bin/env python to the top of
4981         every example.  Patch provided by Tatavarty Kalyan
4982
4983 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4984
4985         * NEWS: Update to 0.33
4986
4987 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4988
4989         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4990         method for doing async calls
4991         (_pending_call_notification): New C function for handling pendning call
4992         callbacks
4993         (set_notify): New method for setting pending call notification
4994         
4995         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4996         Async capabilities added to remote method calls
4997         (Sender): class removed
4998         (RemoteService): class removed
4999         (ObjectTree): class removed for now
5000         (RemoteObject): Renamed to ProxyObject
5001         (RemoteMethod): Renamed to ProxyMethod
5002         (method): Decorator added for decorating python methods as dbus methods
5003         (signal): Decorator added for decorating python methods as signal emitters
5004         (ObjectType): Metaclass added for generating introspection data and the
5005         method callback vtable
5006         (Interface): Wrapper class added to wrap objects in a dbus interface
5007         (Object): Uses ObjectType as its metaclass and exports Introspect
5008         of the org.freedesktop.DBus.Introspectable interface
5009         (ValidationException, UnknownMethodException): new exceptions
5010
5011         * python/examples/*: Modified to fit with the new bindings
5012
5013 2005-04-23  Havoc Pennington  <hp@redhat.com>
5014
5015         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5016         reported by Tony Houghton
5017
5018         * test/test-service.c (main): test
5019         dbus_connection_get_object_path_data()
5020
5021         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5022         the exact_match
5023         (_dbus_object_tree_get_user_data_unlocked): new function used by
5024         dbus_connection_get_object_path_data()
5025         (do_register): add assertion test for get_user_data_unlocked
5026         (object_tree_test_iteration): more tests
5027
5028         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5029         new function from Dan Reed to let you get the user data from 
5030         dbus_connection_register_object_path()
5031
5032 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5033
5034         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5035         in numerous places that did not account for the NULL terminator
5036         (signature_from_seed): changed the manual string copy loop to 
5037         just use strcpy instead
5038         make check should now pass
5039
5040 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5041
5042         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5043         so that it allows messages that are not signals to pass in 
5044         NULL as the interface.
5045
5046 2005-04-18  David Zeuthen  <davidz@redhat.com>
5047
5048         * glib/dbus-gmain.c (io_handler_destroy_source): 
5049         (timeout_handler_destroy_source, connection_setup_free): 
5050         Also unref the source to avoid memory leaks.
5051
5052 2005-04-13  David Zeuthen  <davidz@redhat.com>
5053
5054         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5055         more reasonable, yet still totally arbitrary, value :-). 
5056
5057 2005-04-13  David Zeuthen  <davidz@redhat.com>
5058
5059         * doc/TODO: Added an "important for 1.0" item about selinux
5060         allow/deny messages
5061
5062 2005-04-13  David Zeuthen  <davidz@redhat.com>
5063
5064         * bus/selinux.c: Add c-file-style to top of file
5065         (log_audit_callback): Don't free the data here anymore
5066         (bus_selinux_check): Don't take spid and tpid since appending
5067         that to auxdata may OOM.
5068         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5069         to the caller if we are OOM by taking an error object.
5070         (bus_selinux_allows_send): -do-
5071
5072         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5073         and bus_selinux_allows_send
5074
5075         * bus/bus.c (bus_context_check_security_policy): Pass error and
5076         pass on OOM thrown by bus_selinux_allows_send()
5077
5078         * bus/services.c (bus_registry_acquire_service): Pass error and
5079         pass on OOM thrown by bus_selinux_allows_acquire_service()
5080
5081 2005-04-13  Havoc Pennington  <hp@redhat.com>
5082
5083         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5084         message at a time to avoid monopolizing the main loop, bug 
5085         #2953 from Benjamin Otte
5086
5087 2005-04-09  Havoc Pennington  <hp@redhat.com>
5088
5089         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5090         possible overlap, fix from Daniel Reed
5091         (fixup_alignment): fix signedness warnings
5092         (_dbus_string_append_unichar): ditto
5093
5094 2005-04-09  Havoc Pennington  <hp@redhat.com>
5095
5096         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5097
5098         * glib/dbus-glib-tool.c (main): fix warning
5099
5100         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5101
5102         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5103         add a new function that can be used in simple applications that
5104         don't have a main loop and are willing to block
5105
5106 2005-04-05  David Zeuthen  <davidz@redhat.com>
5107
5108         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5109
5110         * glib/dbus-gmain.c:
5111         (io_handler_destroy_source): Remove from list of IO handlers
5112         of the ConnectionSetup object
5113         (timeout_handler_destroy_source): -do- for timeout handlers
5114         (io_handler_source_finalized): Don't remove from list since
5115         we now do that in io_handler_destroy_source(). Renamed from
5116         io_handler_source_destroyed
5117         (timeout_handler_source_destroyed): -do- for timeout handlers
5118         (connection_setup_free): It is now safe to iterate over all
5119         IO and timeout handlers as the _destroy_source removes them
5120         from the list synchronously
5121
5122 2005-03-30  Havoc Pennington  <hp@redhat.com>
5123
5124         * configure.in: change check to gtk 2.4
5125
5126         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5127         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5128         to 2.4
5129
5130 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5131
5132         * News: Update 0.32
5133
5134         * HACKING: Fixed realease instructions.  configure.in should be updated to
5135           the next release by the person who made the last release.
5136
5137 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5138
5139         * python/lvalue_cast_post_process.py - removed.  Patch has been
5140           submitted to Pyrex maintainers that fixes gcc4.0 errors
5141
5142         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5143
5144 2005-03-24  Daniel Reed  <n@ml.org>
5145
5146         * tools/Makefile.am: Make print-introspect and
5147         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5148
5149 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5150
5151         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5152
5153         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5154           had in Red Hat packages for a while but for some reason never 
5155           got merged upstream
5156           (_dbus_is_a_number): New checks if a string
5157           can be converted to a number and does the conversion if it can
5158           (_dbus_user_database_lookup): Add check to see if the given username
5159           is a udi.  This allows udi's to be used instead of usernames in the
5160           config file.
5161           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5162           is a gdi.  This allows gdi's to be used instead of groupnames in the
5163           config file.
5164
5165 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5166
5167         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5168           code so that it compiles with gcc4.0
5169
5170         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5171           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5172           results back to dbus_binding.c
5173
5174 2005-03-20  Colin Walters  <walters@verbum.org>
5175
5176         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5177
5178         * configure.in: Require GTK+ 2.6.
5179         
5180 2005-03-20  Colin Walters  <walters@verbum.org>
5181
5182         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5183
5184 2005-03-17  Tom Parker  <palfrey@tevp.net>
5185
5186         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5187         print DBUS_UID_UNSET; instead print passed username.  Also
5188         be sure to actually use gid looked up in cache.
5189         
5190         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5191         for DBUS_GID_UNSET and groupname.
5192
5193 2005-03-17  Colin Walters  <walters@verbum.org>
5194
5195         * bus/print-introspect.c: Move to tools/.
5196         * bus/run-with-tmp-session-bus.sh: Ditto.
5197         
5198         * glib/Makefile.am (dbus-glib-bindings.h): Move
5199         generation to tools/Makefile.am.
5200
5201         * test/glib/run-test.sh: Update to handle move
5202         of run-with-tmp-session-bus.sh.
5203
5204         * test/glib/test-service-glib.c: Update to handle
5205         move of dbus-glib-bindings.h.
5206
5207         * tools/print-introspect.c: Moved here
5208         from bus/, and ported to GLib bindings.
5209
5210         * tools/run-with-tmp-session-bus.sh: Moved here
5211         from bus/.
5212
5213         * tools/Makefile.am: Generate dbus-glib-bindings.h
5214         and dbus-bus-introspect.xml here.
5215
5216         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5217         Update.
5218
5219 2005-03-17  Colin Walters  <walters@verbum.org>
5220
5221         * bus/driver.c (write_args_for_direction): Use
5222         _dbus_string_get_const_data to retrieve string;
5223         _dbus_string_get_const_data_len doesn't actually return
5224         a NULL-terminated substring.
5225
5226         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5227         (main): Change to use org_freedesktop_DBus_request_name
5228         instead of using g_proxy_begin_call/end_call.
5229
5230 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5231
5232         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5233         generating the finalizer.  Fixes from Ben Maurer.
5234
5235 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5236
5237         * mono/BusDriver.cs: Update method names: ListServices
5238         becomes ListNames; GetOwner becomes GetNameOwner.
5239
5240         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5241         onto the eval stack when removing the delegate.
5242
5243 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5244
5245         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5246         LT_CURRENT.  Set it to the autoconf variable.
5247                                                                                 
5248         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5249         classes that disconnects the signal handler delegate from the
5250         service object.  Fixes a big leak of proxy objects on the
5251         client side of things.  Patch from Ben Maurer
5252         <bmaurer@ximian.com>
5253
5254 2005-03-12  Colin Walters  <walters@verbum.org>
5255
5256         * bus/driver.c (write_args_for_direction): New function,
5257         parses a type signature into arguments and outputs to
5258         XML.
5259         (bus_driver_handle_introspect): Use it instead of
5260         hardcoding XML for certain signatures.
5261         
5262         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5263         dependency on dbus-daemon.
5264
5265         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5266         argument, pass it to dbus_binding_tool_output_glib_client.
5267
5268         * glib/dbus-binding-tool-glib.c
5269         (generate_client_glue): Protect against multiple inclusion.
5270         (dbus_binding_tool_output_glib_client): Add
5271         G_BEGIN_DECLS/G_END_DECLS.
5272
5273         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5274         Change to just take iface prefix directly.
5275         (write_formal_parameters): Clarify error message.
5276         (check_supported_parameters): New function; checks to see type
5277         signatures of method parameters are supported.
5278         (generate_client_glue): Handle ignore_unsupported flag.
5279         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5280         parameter.
5281
5282         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5283         --ignore-unsupported by default until glib bindings
5284         support arrays.
5285
5286 2005-03-11  Colin Walters  <walters@verbum.org>
5287
5288         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5289         install it.
5290
5291         * bus/print-introspect.c: New file; prints introspection
5292         data for a given name and object path.
5293
5294         * bus/run-with-tmp-session-bus.sh: New file, refactored
5295         from test/glib/run-test.sh.  Creates a temporary session
5296         bus and runs another program.
5297
5298         * test/glib/run-test.sh: Refactor to invoke
5299         run-with-tmp-session-bus.sh.
5300
5301         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5302         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5303         macros instead of hardcoding.
5304
5305         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5306
5307 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5308
5309         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5310         this unref; it doesn't match up evenly in some codepaths.
5311         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5312         this evenly matches with the ref near the top of this function.
5313
5314 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5315
5316         * dbus/dbus-object-tree.c
5317         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5318         and we try to unregister a path that's not registered, still go
5319         through the process of unlocking and don't just return.
5320
5321 2005-03-09  Colin Walters  <walters@verbum.org>
5322
5323         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5324         to this are generated for client-side wrappers.  Invokes a
5325         D-BUS method and returns reply values.  
5326
5327         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5328         function; writes signature string for argument direction.
5329         (write_args_for_direction): Change to pass input values directly
5330         instead of via address, and fix indentation.
5331         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5332         make generated wrappers inlineable.
5333
5334         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5335         note about using dbus_type_is_fixed.
5336
5337         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5338         dbus/dbus-signature.c as dbus_type_is_fixed.
5339
5340         All callers updated.
5341
5342         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5343         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5344
5345         * dbus/dbus-signature.h: Prototype.
5346
5347         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5348         error printf code.
5349
5350         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5351         appropriate instead of just freeing it.
5352         (main): Free returned strings using g_free.
5353
5354         * test/glib/Makefile.am (test-service-glib-glue.h)
5355         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5356
5357         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5358         simply maps a simple D-BUS type to GType.
5359         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5360         GType.
5361         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5362         initialize the value with it.
5363         (dbus_gvalue_binding_type_from_type): Unused, delete.
5364         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5365         various types instead of unmarshalling to value data directly.
5366         Remove can_convert boolean.
5367         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5368         returning directly instead of using can_convert boolean.
5369         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5370         Stores a GValue in a pointer to a value of its corresponding C
5371         type.
5372
5373         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5374         add dbus_gvalue_store.
5375
5376 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5377
5378         Fix a bunch of lifecycle and memory management problems
5379         in the mono bindings.
5380
5381         * mono/Arguments.cs (Arguments): Implement IDisposable
5382
5383         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5384         strictly a static class.
5385
5386         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5387         delegates into this file.
5388         (Connection): Implement IDisposable.
5389         (Dispose): Disconnect the connection and set the raw connection
5390         pointer to IntPtr.Zero.
5391         (~Connection): Call Dispose().
5392         (RegisterObjectPath): Added.  Manages the registration of object
5393         paths so we can cleanly disconnect them at dispose/finalize time.
5394         (UnregisterObjectPath): Ditto.
5395         (set_RawConnection): Unregister all of the object paths when
5396         changing the underlying DBusConnection.  Add them back onto the
5397         new connection, if any.
5398
5399         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5400         more unmanaged resources anymore, so it's not necessary.  Move all
5401         the DBusObjectPathVTable stuff out of here.
5402         (Handler): Save references to our delegates so that they don't get
5403         finalized.  Call Connection.RegisterObjectPath() instead of
5404         dbus_connection_register_object_path() directly.
5405         (Message_Called): Dispose the message after we're finished with
5406         it.
5407
5408         * mono/Message.cs (Message): Implement IDisposable.
5409         (Dispose): Dispose the Arguments, and set the RawMessage to
5410         IntPtr.Zero.
5411         (SendWithReplyAndBlock): We own the ref to the reply that comes
5412         back from dbus_connection_send_with_reply_and_block() so add a
5413         comment about that and unref it after we've constructed a managed
5414         MethodReturn class around it.  Fixes a big, big leak.
5415
5416         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5417         method.
5418         (BuildSignalHandler): After we've sent the Signal message, dispose
5419         of it.
5420         (BuildMethod): Dispose of the method call and reply messages after
5421         we've sent the message and extracted the data we want from the
5422         reply.
5423
5424         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5425         anymore.
5426         (Service_FilterCalled): Dispose of the message after we're
5427         finished with it.
5428
5429 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5430
5431         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5432         After we attach our pending call to the connection, unref
5433         it.  Fixes a leak.
5434  
5435         * mono/Connection.cs (set_RawConnection): Disconnect our
5436         filter and match callbacks from the old connection and
5437         reconnect them to the new connection, if any.
5438
5439         * mono/DBusType/Array.cs: "Code" is a static member, so
5440         don't use "this" to refer to it.  Fix for stricter checking
5441         in Mono 1.1.4.
5442  
5443         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5444         object path that we pass into unmanaged code.
5445  
5446         * mono/DBusType/String.cs (Append): Don't leak the string
5447         that we pass into unmanged code.
5448
5449 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5450         * NEWS: Update for 0.31
5451
5452         * configure.in: Release 0.31
5453         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5454
5455         * qt/Makefile.am: fixed build
5456
5457         * dbus/Makefile.am: soname bump for libdbus
5458
5459         * glib/Makefile.am: soname bump for libdbus-glib
5460
5461 2005-03-05  Havoc Pennington  <hp@redhat.com>
5462
5463         * dbus/dbus-sysdeps.c:
5464         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5465         value
5466         (_dbus_generate_random_bytes_buffer): fix return value
5467
5468         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5469         checks actually work, from Tom Parker <fdo@tevp.net>
5470
5471 2005-03-01  Colin Walters  <walters@verbum.org>
5472
5473         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5474         functions copied from dbus-glib-tool.c.
5475         (main): Convert lots of error code to use them.
5476         Also add some testing for introspection bits.
5477
5478 2005-03-01  Colin Walters  <walters@verbum.org>
5479         
5480         * doc/TODO: Remove introspection signature TODO.
5481
5482 2005-02-27  Colin Walters  <walters@verbum.org>
5483
5484         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5485         Change return value to const char * instead of int so we can do
5486         full signatures.
5487         (struct PropertyInfo, struct ArgInfo): Store char *.
5488         (property_info_new, arg_info_new): Update parameters, strdup.
5489         (property_info_unref, arg_info_unref): Free.
5490
5491         * glib/dbus-gidl.h: Update prototypes.
5492
5493         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5494         (validate_signature): New function, just validates signature and
5495         sets GError.
5496         (parse_property, parse_arg): Invoke validate_signature.  Store
5497         signature instead of just type code.
5498
5499         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5500         function to return a primary type for a signature, dropping
5501         information about types in container types.
5502         (dbus_gvalue_genmarshal_name_from_type)
5503         (dbus_gvalue_binding_type_from_type)
5504         (dbus_gvalue_ctype_from_type): Update to take full signature
5505          instead of type code.
5506         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5507
5508         * glib/dbus-gvalue.h: Update prototypes for above.
5509
5510         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5511         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5512         (introspect_properties, introspect_signals, write_interface):
5513         Update to handle signatures, and remove usage of
5514         _dbus_gutils_type_to_string.
5515         (handle_introspect): Print out type codes instead of e.g. "string"
5516         in hardcoded introspection XML; also use x_AS_STRING constants
5517         instead of hardcoding in string.
5518
5519         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5520         to string.  Remove usage of _dbus_gutils_type_to_string.
5521
5522         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5523
5524         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5525         deletion.
5526         
5527         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5528         (compute_marshaller_name, generate_glue): Handle signature change
5529         to string.
5530         (write_formal_parameters, write_args_for_direction): Ditto, and
5531         remove FIXME.
5532
5533         * tools/dbus-tree-view.c (type_to_string): Delete.
5534         (info_set_func_text): Update to print full signatures.
5535
5536         * test/glib/test-service-glib.xml: Change types to new
5537         introspection format.
5538
5539 2005-02-26  Havoc Pennington  <hp@redhat.com>
5540
5541         * doc/TODO: remove the "guid" item
5542
5543         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5544         (with_bus_thread_func): use open_private
5545
5546         * dbus/dbus-connection.c (dbus_connection_open_private): new
5547         function that works like the old dbus_connection_open()
5548         (dbus_connection_open): now returns an existing connection if
5549         possible
5550
5551         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5552         through the GUID to the transport
5553
5554         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5555         GUID in hex-encoded form.
5556
5557         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5558         pass GUID argument in to the transport
5559
5560         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5561         guid argument
5562
5563         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5564
5565         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5566
5567 2005-02-25  Havoc Pennington  <hp@redhat.com>
5568
5569         * doc/dbus-specification.xml: document the GUID thing
5570
5571         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5572         globally unique ID for the server, and put a "guid=hexencoded"
5573         field in the address
5574
5575         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5576
5577         * dbus/dbus-message.c: ditto
5578
5579         * dbus/dbus-dataslot.c: ditto
5580
5581         * dbus/dbus-list.c: ditto
5582
5583         * dbus/dbus-internals.h: wait, just include
5584         dbus-threads-internal.h here
5585         
5586         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5587         use in main library
5588
5589         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5590
5591 2005-02-24  Colin Walters  <walters@verbum.org>
5592
5593         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5594
5595 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5596
5597         * glib/Makefile.am: added dbus-gobject.h to sources list
5598         so distcheck doesn't fail
5599         
5600 2005-02-24  Havoc Pennington  <hp@redhat.com>
5601
5602         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5603         you must disconnect before unref, since locking and other things
5604         are screwed up otherwise. Fix assorted other locking stuff.
5605
5606         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5607         fix compilation
5608
5609         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5610         into a private header and don't export from the library
5611
5612         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5613
5614 2005-02-24  Colin Walters  <walters@verbum.org>
5615         
5616         * dbus/dbus-signature.c: New file; implements various functions
5617         related to type signatures.  Includes an interator for parsing,
5618         validation functions.
5619         (dbus_type_is_basic): Moved here from
5620         dbus-marshal-basic.c:_dbus_type_is_basic.
5621         (dbus_type_is_container): Moved here from
5622         dbus-marshal-basic.c:_dbus_type_is_container.
5623
5624         All callers of _dbus_type_is_container and _dbus_type_is_basic
5625         updated, and include dbus-signature.h.
5626
5627         * dbus/dbus-signature.h: New file; prototypes for the above.
5628
5629         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5630         dbus-signature.h.
5631
5632         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5633         function factored out of _dbus_first_type_in_signature.
5634         (_dbus_first_type_in_signature_c_str): New function; returns first
5635         type code for a type signature character.
5636
5637         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5638         handle function moves.
5639
5640         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5641
5642         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5643         function; skips to next complete type in type signature.
5644         Implemented using previous skip_one_complete_type.  Now
5645         skip_one_complete_type just delegates to
5646         _dbus_type_signature_next.
5647
5648         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5649         to dbus-signature.c
5650         (_dbus_type_is_container): Ditto.
5651
5652         * doc/dbus-specification.xml: Update introspection sample to
5653         use real type signatures.
5654
5655         * dbus/dbus-test.h: Prototype signature test.
5656
5657         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5658         signature tests.
5659
5660         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5661
5662 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5663
5664         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5665         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5666
5667 2005-02-21  Colin Walters  <walters@verbum.org>
5668
5669         * dbus/dbus-test-main.c (main): Take optional specific test
5670         argument.
5671
5672         * dbus/dbus-test.c (run_test): New function, runs a test function
5673         with no data directory.
5674         (run_data_test): Like above, but takes data directory.
5675         (dbus_internal_do_not_use_run_tests): Take
5676         specific test argument.  Replace lots of cut n' paste code
5677         with run_test and run_data_test.
5678
5679         * dbus/dbus-test.h: Update prototype for
5680         dbus_internal_do_not_use_run_tests.
5681
5682 2005-02-20  Havoc Pennington  <hp@redhat.com>
5683
5684         Fix bugs reported by Daniel P. Berrange
5685         
5686         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5687         (protected_change_watch): new function
5688         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5689         (_dbus_server_add_watch): change to work like the
5690         dbus-connection.c equivalents; like those, probably kind of
5691         busted, but should at least mostly work for now
5692         (dbus_server_disconnect): drop the lock if we were already
5693         disconnected, patch from Daniel P. Berrange
5694
5695         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5696         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5697         same stuff
5698
5699         * doc/TODO: todo about unscrewing this mess
5700
5701 2005-02-19  Colin Walters  <walters@verbum.org>
5702
5703         * glib/dbus-binding-tool-glib.c
5704         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5705
5706         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5707         as errno.h and sys/stat.h.
5708         (lose): New function, prints error with
5709         newline and exits.
5710         (lose_gerror): Similar, but takes GError for message.
5711         (main): Add --output argument to specify output file to write to,
5712         instead of always printing to stdout.  In this mode, determine
5713         timestamps on source files to see whether any are newer than the
5714         target file.  If not, exit.  Also convert a number of error
5715         messages to use lose (since it's shorter), and switch to using
5716         g_io_channel_shutdown.
5717
5718 2005-02-19  Havoc Pennington  <hp@redhat.com>
5719
5720         * glib/dbus-gobject.c
5721         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5722
5723         * glib/dbus-glib.c: fix doxygen warnings
5724
5725         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5726         is found on an <arg>
5727
5728 2005-02-17  Colin Walters  <walters@verbum.org>
5729
5730         * glib/dbus-gobject.h: Don't export
5731         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5732         
5733         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5734         (invoke_object_method): Handle it.
5735
5736         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5737         Handle rename.
5738         
5739 2005-02-17  Colin Walters  <walters@verbum.org>
5740
5741         * bus/.cvsignore, doc/.cvsignore
5742         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5743         Update.
5744
5745 2005-02-17  Colin Walters  <walters@verbum.org>
5746         
5747         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5748         Rename to DBUS_SERVICE_DBUS.
5749         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5750         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5751         Change the value from "org.freedesktop.Local"
5752         to "org.freedesktop.DBus.Local".
5753         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5754         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5755         DBUS_INTERFACE_INTROSPECTABLE.
5756         Change the value from "org.freedesktop.Introspectable"
5757         to "org.freedesktop.DBus.Introspectable".
5758         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5759         DBUS_INTERFACE_PROPERTIES.
5760         Change the value from "org.freedesktop.Properties"
5761         to "org.freedesktop.DBus.Properties".
5762         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5763         DBUS_INTERFACE_PEER.
5764         Change the value from "org.freedesktop.Peer"
5765         to "org.freedesktop.DBus.Peer".
5766         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5767         DBUS_INTERFACE_LOCAL.
5768         Change the value from "org.freedesktop.Local"
5769         to "org.freedesktop.DBus.Local".
5770
5771         All other users of those constants have been changed.
5772
5773         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5774
5775         * glib/dbus-gobject.c (handle_introspect): Use constants.
5776
5777         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5778
5779 2005-02-17  Colin Walters  <walters@verbum.org>
5780
5781         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5782         (parse_node, parse_interface, parse_method, parse_signal)
5783         (parse_property, parse_annotation): Lose if we're currently in an
5784         annotation.
5785         (parse_annotation): New function.
5786         (parser_start_element, parser_end_element): Handle annotation.
5787         (parse_method, parse_interface): Remove support for c_name attribute,
5788         switch to annotations.
5789
5790         * glib/dbus-gidl.h (interface_info_get_binding_names)
5791         (method_info_get_binding_names)
5792         (interface_info_get_binding_name, method_info_get_binding_name)
5793         (interface_info_set_binding_name, method_info_set_binding_name):
5794         Remove.
5795         (interface_info_get_annotations, method_info_get_annotations)
5796         (interface_info_get_annotation, method_info_get_annotation)
5797         (interface_info_add_annotation, method_info_add_annotation):
5798         Prototype.
5799
5800         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5801         for "bindings".
5802         (struct MethodInfo): Ditto.
5803         Straightfoward conversion of binding methods into annotation methods
5804         as prototyped.
5805
5806         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5807
5808         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5809
5810         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5811         Use new annotation API.
5812
5813         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5814         annotation element.
5815         
5816         * doc/dbus-specification.xml: Discuss introspection annotations,
5817         include list of well-known annotations.
5818
5819         * test/glib/test-service-glib.xml: Make validate against new DTD.
5820
5821 2005-02-17  Colin Walters  <walters@verbum.org>
5822
5823         This patch is based on initial work from
5824         Paul Kuliniewicz <kuliniew@purdue.edu>.
5825
5826         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5827         initialization of GValue from dbus type to here.
5828         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5829         for the "glib-genmarshal" program from a DBus type.
5830         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5831         into the C name for it we use in the glib bindings.
5832         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5833         glib C type (not GValue).
5834         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5835
5836         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5837         from dbus-gobject.c.
5838
5839         * glib/dbus-gutils.h: Prototype it.
5840
5841         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5842         (marshal_dbus_message_to_g_marshaller): Use new shared function
5843         dbus_glib_marshal_dbus_message_to_gvalue_array.
5844
5845         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5846         Will be changed once we have annotations.
5847
5848         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5849         GStaticRWLock.  Callers updated.
5850         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5851         (string_table_next): New function for iterating over zero-terminated
5852         string value array.
5853         (string_table_lookup): New function; retrieves specific entry in
5854         array.
5855         (get_method_data): New function; look up method data in object data chunk.
5856         (object_error_domain_prefix_from_object_info)
5857         (object_error_code_from_object_info): New functions, but not implemented yet.
5858         (method_interface_from_object_info): New function; retrieve interface name.
5859         (method_name_from_object_info): New function; retrieve method name.
5860         (method_arg_info_from_object_info): New function; retrieve argument data.
5861         (arg_iterate): New function; iterates over serialized argument data.
5862         (method_dir_signature_from_object_info): New function; returns a
5863         GString holding type signature for arguments for just one
5864         direction (input or output).
5865         (method_input_signature_from_object_info)
5866         (method_output_signature_from_object_info): New functions.
5867         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5868         converts dbus message arguments into a GValue array.  Used for both
5869         signal handling and method invocation.
5870         (struct DBusGlibWriteIterfaceData): New utility structure.
5871         (write_interface): New function; generate introspection XML for
5872         an interface.
5873         (introspect_interfaces): New function; gathers all interface->methods,
5874         generates introspection XML for them.
5875         (handle_introspect): Invoke introspect_interfaces.
5876         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5877         (lookup_object_and_method): New function; examines an incoming message
5878         and attempts to match it up (via interface, method name, and argument
5879         signature) with a known object and method.
5880         (gerror_domaincode_to_dbus_error_name): New function; converts a
5881         GError domain and code into a DBus error name.  Needs GError data
5882         added to object introspection to work well.
5883         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5884         GError.
5885         (invoke_object_method): New function to invoke an object method
5886         looked up via lookup_object_and_method.  Parses the incoming
5887         message, turns it into a GValue array, then invokes the marshaller
5888         specified in the DBusGMethodInfo.  Creates a new message with
5889         either return values or error message as appropriate.
5890         (gobject_message_function): Invoke lookup_object_and_method and
5891         invoke_object_method.
5892
5893         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5894         (enum DBusBindingOutputMode): New enum for binding output modes.
5895         (pretty_print): Print binding names.
5896         (dbus_binding_tool_error_quark): GError bits.
5897         (version): Fix typo.
5898         (main): Create GIOChannel for output.  Parse new --mode argument,
5899         possible values are "pretty-print", "glib-server", "glib-client".
5900         Use mode to invoke appropriate function.
5901         
5902         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5903
5904         * glib/dbus-glib-tool.h: New header, just includes GError bits
5905         for now.
5906
5907         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5908         maps binding style to name.
5909         (struct MethodInfo): Ditto.
5910         (get_hash_keys, get_hash_key): Utility function, returns keys for
5911         a GHashTable.
5912         (interface_info_new, method_info_new): Initialize bindings.
5913         (interface_info_unref, method_info_unref): Destroy bindings.
5914         (method_info_get_binding_names, method_info_get_binding_name)
5915         (interface_info_get_binding_names, interface_info_get_binding_name):
5916         Functions for retrieving binding names.
5917         (method_info_set_binding_name, interface_info_set_binding_name):
5918         Functions for setting binding names.
5919
5920         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5921         for glib binding generation.
5922
5923         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5924         and client-side glib glue generation.
5925
5926         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5927         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5928         dbus-glib-tool.h.
5929
5930         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5931         of using GClosureMarshal directly.
5932         (struct DBusGObjectInfo): Add n_infos member.
5933
5934         * test/glib/test-service-glib.xml: New file; contains introspection data
5935         for MyTestObject used in test-service-glib.c.
5936
5937         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5938         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5939         (my_object_uppercase, my_object_many_args): New test methods.
5940         (main): Use dbus_g_object_class_install_info to include generated object
5941         info.
5942
5943         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5944         as well as client-side bindings.
5945
5946         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5947         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5948         using both the dbus_gproxy stuff directly as well as the generated bindings.
5949
5950 2005-02-15  Havoc Pennington  <hp@redhat.com>
5951
5952         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5953         complete a pending call, don't run filters first.
5954
5955         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5956         dbus_pending_call_steal_reply
5957
5958         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5959         _dbus_connection_block_pending_call
5960         (dbus_pending_call_get_reply): change to steal_reply and return a
5961         ref
5962
5963         * dbus/dbus-connection.c
5964         (dbus_connection_send_with_reply_and_block): port to work in terms
5965         of DBusPendingCall
5966         (_dbus_connection_block_pending_call): replace block_for_reply
5967         with this
5968
5969 2005-02-14  Havoc Pennington  <hp@redhat.com>
5970
5971         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5972         properly handle looking up group information by name; fix 
5973         from j@bootlab.org
5974
5975 2005-02-13  Havoc Pennington  <hp@redhat.com>
5976
5977         * dbus/dbus-connection.c (dbus_connection_return_message) 
5978         (dbus_connection_borrow_message): hold dispatch lock while message
5979         is outstanding
5980         (_dbus_connection_block_for_reply): hold dispatch lock while we
5981         block for the reply, so nobody steals our reply
5982         (dbus_connection_pop_message): hold the dispatch lock while we
5983         pluck the message
5984
5985 2005-02-13  Havoc Pennington  <hp@redhat.com>
5986
5987         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5988         (_dbus_connection_release_dispatch)
5989         (_dbus_connection_acquire_io_path)
5990         (_dbus_connection_release_io_path): make the mutex and condvar
5991         control access to the "acquired" flag. Drop the connection lock
5992         while waiting on the condvar. Hopefully these are baby steps in
5993         roughly the right direction.
5994
5995 2005-02-13  Havoc Pennington  <hp@redhat.com>
5996
5997         * dbus/dbus-connection.c: use separate mutexes for the condition
5998         variables; this is some kind of baseline for sanity, but the
5999         condition variables still aren't used correctly afaict
6000
6001 2005-02-13  Havoc Pennington  <hp@redhat.com>
6002
6003         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6004         fix a double-unlock
6005
6006         * dbus/dbus-connection.c
6007         (_dbus_connection_detach_pending_call_unlocked): add this
6008
6009         Initial semi-correct pass through to fix thread locking; there are
6010         still some issues with the condition variable paths I'm pretty
6011         sure
6012         
6013         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6014         lock/unlock calls
6015
6016         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6017         rename to add _unlocked
6018         (struct DBusConnection): move "dispatch_acquired" and
6019         "io_path_acquired" to use only one bit each.
6020         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6021         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6022         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6023         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6024         (_dbus_connection_remove_timeout) 
6025         (_dbus_connection_toggle_timeout): drop lock when calling out to
6026         user functions; done in a hacky/bad way.
6027         (_dbus_connection_send_and_unlock): add a missing unlock
6028         (_dbus_connection_block_for_reply): add a missing unlock
6029
6030         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6031         drop lock in a hacky probably unsafe way to call out to user
6032         function
6033
6034 2005-02-12  Havoc Pennington  <hp@redhat.com>
6035
6036         * tools/dbus-tree-view.c (info_set_func_text): display more
6037         details on args
6038
6039         * bus/driver.c (bus_driver_handle_list_services): list the bus
6040         driver
6041
6042         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6043
6044         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6045         (method_info_get_n_args): new function
6046
6047 2005-02-12  Havoc Pennington  <hp@redhat.com>
6048
6049         * bus/driver.c (bus_driver_handle_introspect): add introspection
6050         for bus driver
6051
6052 2005-02-12  Havoc Pennington  <hp@redhat.com>
6053
6054         * bus/driver.c: put the signature of each bus driver method in the
6055         table of handlers and check it on incoming calls; this isn't
6056         really useful, but going to add introspect support in a minute.
6057
6058 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6059
6060         * mono/Connection.cs: The unpredictability of finalizers in mono
6061         prevents us from deterministically disconnecting the filters from
6062         the Service class's finalizer, so move tracking of filters and
6063         matches here.  Add API for that.
6064
6065         * mono/Service.cs: Remove the code, add code which calls the
6066         methods now on the Connection class.
6067
6068 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6069
6070         * python/dbus.py (class Sender): added to support dbus signals better
6071         (Bus::add_signal_receiver): added expand_args parameter which defaults
6072         to True.  When expand args is True the signal handler will pass the 
6073         message arguments as parameters to the signal handler.  If False
6074         revert to previous behavior where the signal handler must get the
6075         argument list from the message.  This is to help port applications
6076         like HAL that have a tendancy to send variable length argument lists.
6077         self._match_rule_to_receivers is now a dict of dicts.
6078         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6079         removing it from a list
6080         (Bus::_signal_func): change signal handlers so that interface,
6081         signal_name, service, path and message are packed into a Sender
6082         object and that is passed to the handler.  If expand_args is True
6083         extract the args list from the message and append it to the parameter
6084         list
6085         
6086         * python/dbus_bindings.pyx.in (class Signature): added to support 
6087         signiature types
6088         (MessageIter::__init__): changed iteration limit to match D-BUS
6089         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6090         STRUCT and VARIENT type support
6091         (MessageIter::python_value_to_dbus_sig): made recursive to support
6092         recursive types
6093         (MessageIter::append*): added Signature, dict, tuple 
6094         support
6095
6096         * python/examples/example-client.py: added examples of getting tuples
6097         and dicts
6098
6099         * python/examples/example-service.py: added examples of sending tuples
6100         and dicts
6101
6102         * python/examples/example-signal-recipient.py: Fixed to handle new
6103         signal callback format
6104
6105 2005-02-10  Havoc Pennington  <hp@redhat.com>
6106
6107         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6108         (call dbus_g_proxy_add_signal)
6109
6110         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6111         escape the hostname
6112         (_dbus_server_new_for_domain_socket): escape the path
6113
6114         * dbus/dbus-address.c (dbus_address_escape_value): new
6115         (dbus_address_unescape_value): new
6116         (dbus_parse_address): unescape values
6117
6118         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6119
6120         * doc/dbus-specification.xml: explain how to escape values in
6121         addresses
6122
6123 2005-02-10  Havoc Pennington  <hp@redhat.com>
6124
6125         * dbus/dbus-message-factory.c (generate_special): modify test to
6126         avoid using a non-basic dict key
6127
6128         * dbus/dbus-marshal-validate-util.c: add test for the below
6129
6130         * doc/dbus-specification.xml: require that dict keys are a basic
6131         type
6132
6133         * dbus/dbus-marshal-validate.c
6134         (_dbus_validate_signature_with_reason): require that dict key is a
6135         basic type
6136
6137 2005-02-10  Havoc Pennington  <hp@redhat.com>
6138
6139         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6140         change to be _and_unlock instead of _unlocked
6141
6142         * dbus/dbus-connection.c
6143         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6144         have no_update so we can find this bug quickly in future
6145
6146 2005-02-10  Havoc Pennington  <hp@redhat.com>
6147
6148         * dbus/dbus-message-util.c (verify_test_message): tests for string
6149         array
6150
6151         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6152         support for arrays of string/signature/path
6153
6154 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6155
6156         * dbus/dbus-connection.c
6157         (_dbus_connection_queue_received_message_link,
6158         _dbus_connection_message_sent): Add the path to
6159         the verbose output.
6160         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6161         _dbus_connection_send_preallocated_unlocked(), updated the
6162         dispatch status, and unlocks.  Fixes a bug where certain
6163         situations (like a broken pipe) could cause a Disconnect message
6164         to not be sent, tricking the bus into thinking a service was still
6165         there when the process had quit.
6166         (_dbus_connection_send_preallocated): Call
6167         _dbus_connection_send_preallocated_and_unlock().
6168         (_dbus_connection_send_and_unlock): Added.  Calls
6169         _dbus_connection_send_preallocated_and_unlock().
6170         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6171         (dbus_connection_send_with_reply): Update the dispatch status and
6172         unlock.
6173
6174         * mono/Service.cs (~Service): Added.  Removes the filter so that
6175         we don't get unmanaged code calling back into a GCed delegate.
6176         (RemoveFilter); Added.
6177
6178 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6179
6180         * dbus/dbus-message.c (dbus_message_iter_open_container):
6181         - Removed check for iterator type being an array because
6182         get_arg_type does not work with writer iterators
6183         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6184
6185 2005-02-07  Havoc Pennington  <hp@redhat.com>
6186
6187         * doc/dbus-specification.xml: some more language cleanups; add
6188         stuff about how to deal with invalid protocol and extension
6189         points; add _ to allowed chars in auth commands; add EXTENSION_
6190         auth command prefix
6191
6192 2005-02-06  Havoc Pennington  <hp@redhat.com>
6193
6194         * s/expected/required/ in a couple places for clarity
6195
6196 2005-02-07  Colin Walters  <walters@verbum.org>
6197
6198         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6199         sender or proposed_recipient.
6200
6201 2005-02-06  Havoc Pennington  <hp@redhat.com>
6202
6203         * dbus/dbus-message-factory.c (generate_special): more tests
6204
6205         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6206         array length that exceeds the maximum
6207
6208 2005-02-05  Havoc Pennington  <hp@redhat.com>
6209
6210         * dbus/dbus-message-factory.c (generate_special): more test cases,
6211         increasing coverage
6212
6213         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6214         reason why a signature was invalid
6215
6216         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6217         skip the length of the string before we look at it in validation
6218
6219         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6220         equal_substring
6221
6222         * dbus/dbus-message.c (_dbus_message_loader_new): default
6223         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6224
6225 2005-02-05  Havoc Pennington  <hp@redhat.com>
6226
6227         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6228         if the signature of a variant was empty
6229         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6230         struct with no element type)
6231
6232         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6233         mangled messages to break things
6234
6235 2005-02-04  Havoc Pennington  <hp@redhat.com>
6236
6237         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6238         g_quark_try_string() so it actually can return 0
6239         (dbus_g_proxy_connect_signal): ditto
6240
6241 2005-02-04  Havoc Pennington  <hp@redhat.com>
6242
6243         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6244         bogus warning
6245         (tristring_from_message): assert cleanly on null path/interface
6246         (should not be possible though I decided later)
6247         (dbus_g_proxy_dispose): move proxy manager unregistration here
6248         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6249         g_return_if_fail() checks
6250
6251 2005-02-04  Havoc Pennington  <hp@redhat.com>
6252
6253         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6254
6255         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6256         (with some minor changes)
6257
6258         * doc/dbus-specification.xml: add deprecated attribute to
6259         introspection format
6260
6261 2005-01-31  Havoc Pennington  <hp@redhat.com>
6262
6263         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6264         think it's sort of right
6265
6266 2005-01-30  Havoc Pennington  <hp@redhat.com>
6267
6268         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6269
6270 2005-01-30  Havoc Pennington  <hp@redhat.com>
6271
6272         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6273
6274         * autogen.sh: change to autotools 1.9
6275
6276         * glib/dbus-gproxy.c: completely change how signals work
6277         (dbus_g_proxy_add_signal): new function to specify signature of a
6278         signal
6279         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6280         and g_warning if the incoming message has the wrong signature.
6281
6282 2005-01-30  Havoc Pennington  <hp@redhat.com>
6283
6284         * tools/dbus-names-model.c (have_names_notify): fix this
6285
6286         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6287         up the string array handling a bit 
6288
6289 2005-01-30  Havoc Pennington  <hp@redhat.com>
6290
6291         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6292         (dbus_g_pending_call_cancel): new function
6293
6294         * dbus/dbus-glib.h: move GType decls for connection/message here;
6295         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6296         here, just kind of rationalizing how we handle all that
6297
6298         * tools/dbus-names-model.c: new file for a tree model listing the
6299         services on a bus
6300
6301         * tools/dbus-tree-view.c (model_new): use proper typing on the
6302         model rows
6303
6304 2005-01-30  Havoc Pennington  <hp@redhat.com>
6305
6306         * glib/dbus-gmain.c: add a custom GSource back that just checks
6307         whether the message queue has anything in it; otherwise, there are 
6308         cases where we won't see messages in the queue since there was no 
6309         IO visible to the glib main loop
6310
6311         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6312         increase default message timeout to 25 seconds
6313
6314 2005-01-30  Havoc Pennington  <hp@redhat.com>
6315
6316         * test/glib/test-profile.c (no_bus_stop_server): remove the
6317         warning about the g_warning that I just fixed
6318
6319         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6320         custom source, seems to be a lot easier to understand and work
6321         better.
6322
6323 2005-01-30  Havoc Pennington  <hp@redhat.com>
6324
6325         I think this main loop thing is conceptually broken, but here are 
6326         some band aids. I'll maybe rewrite it in a minute.
6327         
6328         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6329         custom GSource, so don't pass it in; confusing
6330         (gsource_server_finalize, gsource_connection_finalize): add
6331         finalize handlers that remove all the watches.  
6332
6333 2005-01-30  Havoc Pennington  <hp@redhat.com>
6334
6335         * glib/dbus-gobject.c (introspect_properties): fix the XML
6336         generated
6337
6338         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6339         which effectively detects the use of freed messages
6340
6341         * glib/dbus-gobject.c (handle_introspect): modify and return the
6342         reply message instead of the incoming message
6343
6344         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6345         gee, maybe it should SEND THE XML instead of just making a string
6346         and freeing it again ;-)
6347
6348         * tools/dbus-print-message.c (print_message): improve printing of
6349         messages
6350
6351         * configure.in: add debug-glib.service to the output
6352
6353 2005-01-30  Havoc Pennington  <hp@redhat.com>
6354
6355         dbus-viewer introspected and displayed the bus driver
6356         
6357         * dbus/dbus-object-tree.c 
6358         (object_tree_test_iteration): add tests for a handler registered on "/"
6359
6360         * dbus/dbus-object-tree.c
6361         (_dbus_decompose_path): fix to handle path "/" properly
6362         (run_decompose_tests): add tests for path decomposition
6363         
6364         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6365         properly
6366
6367         * glib/dbus-gobject.c (handle_introspect): fix quotes
6368
6369         * test/glib/run-test.sh: support launching the bus, then running
6370         dbus-viewer
6371
6372         * test/glib/test-service-glib.c (main): put in a trivial gobject
6373         subclass and register it on the connection
6374
6375         * bus/driver.c (bus_driver_handle_introspect): implement
6376         introspection of the bus driver service
6377
6378         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6379         identifiers, doctype decl
6380
6381         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6382         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6383         returning the service unchanged.
6384         (bus_driver_handle_message): remove old check for reply_serial in
6385         method calls, now the message type deals with that
6386         (bus_driver_handle_message): handle NULL interface
6387
6388         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6389
6390         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6391         -1 for len
6392
6393         * tools/dbus-viewer.c: add support for introspecting a service on
6394         a bus
6395
6396         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6397         (dbus_g_pending_call_unref): add
6398
6399 2005-01-29  Havoc Pennington  <hp@redhat.com>
6400
6401         * tools/dbus-tree-view.c: add support for displaying properties.
6402         (run dbus-viewer with an introspect xml file as arg, then resize
6403         the window so the tree elements show up, not sure what that is)
6404
6405         * glib/dbus-gobject.c (handle_introspect): return
6406         org.freedesktop.Properties and org.freedesktop.Introspectable
6407         interfaces when we are introspected.
6408
6409         * doc/dbus-specification.xml: allow empty interface name when 
6410         Get/Set a property
6411
6412 2005-01-29  Havoc Pennington  <hp@redhat.com>
6413
6414         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6415         though it uses glib, it could be extended for any binding in
6416         principle
6417
6418         * glib/dbus-gobject.c (gobject_message_function): change to the
6419         new way properties work
6420
6421         * dbus/dbus-protocol.h: add the new interfaces
6422
6423         * doc/dbus-specification.xml: document the introspection format,
6424         Introspectable interface, and add an org.freedesktop.Properties
6425         interface.
6426
6427         * glib/dbus-gparser.c: add support for a <property> element
6428
6429         * glib/dbus-gidl.c: add PropertyInfo
6430
6431         * glib/dbus-gobject.c (handle_introspect): put the outermost
6432         <node> outside the signal and property descriptions.
6433         (introspect_properties): export properties as <property> rather
6434         than as method calls
6435
6436 2005-01-28  Havoc Pennington  <hp@redhat.com>
6437
6438         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6439         related to authentication protocol
6440
6441 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6442
6443         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6444                 - BUS_ACTIVATION -> BUS_STARTER
6445                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6446                 - class MessageIter (__init__): Added recursion checking 
6447                 so we throw a nice error instead of just disconnecting from the
6448                 bus.
6449                 (get): Added arg_type parameter for recursion.
6450                 Removed the nil type
6451                 Added signiture type placeholder (not implemented)
6452                 Added struct type placeholder (not implemented)
6453                 Added varient type placeholder (not implemented)
6454                 Commented out dict type for now     
6455                 (get_element_type): renamed from get_array_type
6456                 (get_*): changed to use the dbus_message_iter_get_basic API
6457                 (get_*_array): removed in favor of recursive get_array method
6458                 (get_array): new recursive method which calls get to marshal
6459                 the elements of the array
6460                 (value_to_dbus_sig): New method returns the corrasponding
6461                 dbus signiture to a python value
6462                 (append): Comment out dict handling for now
6463                 Handle lists with the new recursive API
6464                 Comment out None handling for now
6465                 (append_nil): removed
6466                 (append_*): changed to use dbus_message_iter_append_basic API
6467                 (append_*_array): removed in favor of recursive append_array 
6468                 method
6469                 (__str__): Make it easier to print out recursive iterators
6470                 for debugging
6471                 - class Message (__str__): moved type inspection to the
6472                 MessageIter class' __str__ method
6473                 (get_iter): Added an append parameter wich defaults to False
6474                 If True use the new API's to create an append iterator
6475
6476         * python/dbus.py: Update to use new bindings API
6477                 - TYPE_ACTIVATION -> TYPE_STARTER
6478                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6479                 - class ActivationBus -> class StarterBus
6480                 - class RemoteObject (__call__): get an append iterator
6481                 - (_dispatch_dbus_method_call): get an append iterator
6482                 - class Object (emit_signal): get an append iterator
6483
6484         * python/examples/: Fixed up the examples to work with the new API
6485                 
6486 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6487
6488         * configure.in: Bump version up to 0.30.
6489
6490         * HACKING: Add a release item to bump the version number up after 
6491         a release.
6492
6493 2005-01-28  Havoc Pennington  <hp@redhat.com>
6494
6495         * doc/dbus-specification.xml: update to describe 16-bit types and
6496         dict entries
6497
6498         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6499         assertion
6500
6501         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6502         type
6503
6504         * dbus/dbus-marshal-recursive.c: implement
6505
6506 2005-01-27  Havoc Pennington  <hp@redhat.com>
6507
6508         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6509
6510         * configure.in: find the right type for 16 and 32 bit ints as well
6511         as 64
6512
6513         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6514         the 16-bit types so people don't have to stuff them in 32-bit or
6515         byte arrays.
6516
6517 2005-01-27  Havoc Pennington  <hp@redhat.com>
6518
6519         * dbus/dbus-message.c: byteswap the message if you init an
6520         iterator to read/write from it
6521         
6522         * dbus/dbus-marshal-byteswap.c: new file implementing 
6523         _dbus_marshal_byteswap()
6524
6525         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6526
6527 2005-01-26  Havoc Pennington  <hp@redhat.com>
6528         
6529         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6530         build, apparently - nobody noticed?)
6531         
6532 2005-01-26  Havoc Pennington  <hp@redhat.com>
6533
6534         * dbus/dbus-marshal-recursive.h: remove todo comment
6535
6536 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6537
6538         * Land the mono binding changes to conform to the new APIs.
6539
6540         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6541         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6542
6543         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6544         type code as a string.
6545         (InitAppending): Rename dbus_message_append_iter_init() to
6546         dbus_message_iter_init_append().
6547
6548         * mono/BusDriver.cs: Rename ServiceEventHandler to
6549         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6550         Rename ServiceOwnerChanged to NameOwnerChanged.
6551
6552         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6553         underlying C call.
6554
6555         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6556
6557         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6558         dbus_bus_acquire_service() to dbus_bus_request_name().
6559
6560         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6561         of Type.UnderlyingSystemType to get the correct element type for
6562         the array.
6563         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6564         dbus_message_get_{element|arg}_type() instead of
6565         dbus_message_iter_init_array_iterator().
6566         (Append): Replace dbus_message_iter_append_array() with
6567         dbus_message_iter_open_container() and
6568         dbus_message_iter_close_container().
6569
6570         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6571         types have been removed.
6572         
6573         * mono/DBusType/*.cs: Replace calls of
6574         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6575         but specify the type in the DllImport extern declaration.  Ditto
6576         for dbus_message_iter_append_[type]() ->
6577         dbus_message_iter_append_basic().
6578
6579         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6580         NameOwnerChangedHandler.
6581
6582 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6583
6584         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6585                 - get_base_service -> get_unique_name
6586                 - bus_get_base_service -> bus_get_unique_name
6587                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6588                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6589                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6590                 - bus_activate_service -> bus_start_service_by_name
6591                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6592                 - bus_acquire_service -> bus_request_name
6593                 - dbus_bus_acquire_service -> dbus_bus_request_name
6594                 - bus_service_exists -> bus_name_has_owner
6595                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6596
6597         * python/dbus.py: Rename of methods
6598                 - activate_service -> start_service_by_name
6599                 - bus_acquire_service -> bus_request_name
6600                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6601                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6602
6603         
6604 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6605
6606         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6607         signature for the method that can't be found.
6608
6609         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6610         the message has any arguments, we need to call
6611         _dbus_type_reader_get_current_type(), not
6612         _dbus_type_reader_has_next().
6613
6614 2005-01-24  Havoc Pennington  <hp@redhat.com>
6615
6616         * dbus/dbus-message-factory.c: more testing of message validation
6617
6618         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6619         header
6620
6621 2005-01-23  Havoc Pennington  <hp@redhat.com>
6622
6623         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6624         get this all working, not many tests in the framework yet though
6625
6626 2005-01-22  Havoc Pennington  <hp@redhat.com>
6627
6628         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6629         tutorial, based on work from David Wheeler.
6630
6631 2005-01-21  Havoc Pennington  <hp@redhat.com>
6632
6633         * dbus/dbus-bus.c: add more return_if_fail checks
6634
6635         * dbus/dbus-message.c (load_message): have the "no validation"
6636         mode (have to edit the code to toggle the mode for now though)
6637
6638         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6639         skips all validation; I want to use this at least for benchmark
6640         baseline, I'm not sure if it should be a publicly-available switch.
6641
6642 2005-01-21  Havoc Pennington  <hp@redhat.com>
6643
6644         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6645         toplevel doxygen group as the low-level API stuff
6646
6647         * dbus/dbus.h: note that libdbus is the low-level API
6648
6649 2005-01-20  Havoc Pennington  <hp@redhat.com>
6650
6651         * update-dbus-docs.sh: script to update docs on the web site, only
6652         works for me though. neener.
6653
6654 2005-01-20  Havoc Pennington  <hp@redhat.com>
6655
6656         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6657         code can reveal bugs in it
6658
6659 2005-01-20  Havoc Pennington  <hp@redhat.com>
6660
6661         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6662         select() version, patches from Tor Lillqvist
6663
6664 2005-01-20  Havoc Pennington  <hp@redhat.com>
6665
6666         * doc/dbus-tutorial.xml: replace > with &gt;
6667
6668         * bus/services.c (bus_registry_acquire_service): validate the name
6669         and return a better error if it's no good.
6670
6671         * doc/dbus-specification.xml: note NO_AUTO_START change
6672
6673         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6674         from AUTO_START, we're toggling the default
6675
6676         * bus/dispatch.c: adapt the tests to change of auto-start default
6677
6678 2005-01-18  Havoc Pennington  <hp@redhat.com>
6679
6680         * rename dbus-daemon-1 to dbus-daemon throughout
6681
6682 2005-01-18  Havoc Pennington  <hp@redhat.com>
6683
6684         * Throughout, grand renaming to strip out the use of "service",
6685         just say "name" instead (or "bus name" when ambiguous).  Did not
6686         change the internal code of the message bus itself, only the
6687         programmer-facing API and messages.
6688         
6689         * doc/dbus-specification.xml: further update the message bus section
6690         
6691         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6692         in error case
6693
6694 2005-01-17  Havoc Pennington  <hp@redhat.com>
6695
6696         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6697         ever
6698
6699         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6700         "invalid name character" not only non-ASCII
6701
6702         * doc/dbus-specification.xml: further update spec, message bus 
6703         parts are still out-of-date but the marshaling etc. stuff is now
6704         accurate-ish
6705
6706 2005-01-17  Havoc Pennington  <hp@redhat.com>
6707
6708         * doc/dbus-specification.xml: partially update spec
6709
6710 2005-01-17  Havoc Pennington  <hp@redhat.com>
6711
6712         * Throughout, align variant bodies according to the contained
6713         type, rather than always to 8. Should save a fair bit of space in
6714         message headers.
6715         
6716         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6717         fix handling of case where p == end
6718
6719         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6720
6721 2005-01-17  Havoc Pennington  <hp@redhat.com>
6722
6723         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6724
6725         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6726         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6727         are marshaling/unmarshaling a boolean.
6728
6729 2005-01-16  Havoc Pennington  <hp@redhat.com>
6730
6731         This is about it on what can be disabled/deleted from libdbus
6732         easily, back below 150K anyhow. Deeper cuts are more work than 
6733         just turning the code off as I've done here.
6734         
6735         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6736         signed int convenience funcs
6737
6738         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6739         verbose mode
6740
6741         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6742         things out of libdbus
6743
6744         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6745         
6746         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6747         tests-enabled-only, though it should probably be deleted)
6748
6749         * dbus/dbus-message-util.c: same stuff
6750
6751         * dbus/dbus-auth-util.c: same stuff
6752
6753 2005-01-16  Havoc Pennington  <hp@redhat.com>
6754
6755         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6756
6757         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6758         way for stripping down dbus-userdb.c stuff included in libdbus.
6759         Rename _dbus_parse_uid for consistency.
6760
6761 2005-01-16  Havoc Pennington  <hp@redhat.com>
6762
6763         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6764         name the assertion failed in
6765
6766         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6767         (_dbus_return_val_if_fail): assert that the name of the function
6768         containing the check doesn't start with '_', since we only want to 
6769         use checks on public functions
6770         
6771         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6772         checks to assertions
6773
6774         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6775         change checks to asserts for private function
6776
6777         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6778         to asserts for private function
6779
6780         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6781         broken assertion that was breaking make check
6782         (_dbus_type_reader_array_is_empty): remove this rather than fix
6783         it, was only used in assertions
6784
6785 2005-01-16  Havoc Pennington  <hp@redhat.com>
6786
6787         * test/unused-code-gc.py: hacky script to find code that's used
6788         only by the bus (not libdbus) or used only by tests or not used at
6789         all. It has some false alarms, but looks like we can clean up a
6790         lot of size from libdbus.
6791
6792         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6793         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6794         
6795 2005-01-16  Havoc Pennington  <hp@redhat.com>
6796
6797         * Add and fix docs according to Doxygen warnings throughout
6798         source.
6799         
6800         * dbus/dbus-marshal-recursive.c
6801         (_dbus_type_reader_array_is_empty): change this to just call
6802         array_reader_get_array_len() and make it static
6803
6804         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6805         from get_array_type
6806         (dbus_message_iter_init_append): rename from append_iter_init
6807
6808         * dbus/dbus-marshal-recursive.c
6809         (_dbus_type_reader_get_element_type): rename from
6810         _dbus_type_reader_get_array_type
6811
6812 2005-01-15  Havoc Pennington  <hp@redhat.com>
6813
6814         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6815
6816         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6817         when DBUS_DISABLE_ASSERT
6818         (_dbus_marshal_set_basic): be sure we align for the string length
6819
6820         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6821         this look faster
6822
6823         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6824         inline macro version
6825         (_dbus_string_set_byte): provide inline macro version
6826
6827 2005-01-15  Havoc Pennington  <hp@redhat.com>
6828
6829         * Land the new message args API and type system.
6830
6831         This patch is huge, but the public API change is not 
6832         really large. The set of D-BUS types has changed somewhat, 
6833         and the arg "getters" are more geared toward language bindings;
6834         they don't make a copy, etc.
6835
6836         There are also some known issues. See these emails for details
6837         on this huge patch:
6838         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6839         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6840         
6841         * dbus/dbus-marshal-*: all the new stuff
6842
6843         * dbus/dbus-message.c: basically rewritten
6844
6845         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6846         freed blocks to be all non-nul bytes so using freed memory is less
6847         likely to work right
6848
6849         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6850         DBUS_FAIL_MALLOC=N environment variable, so you can do
6851         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6852         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6853         thorough.
6854
6855         * qt/message.cpp: port to the new message args API
6856         (operator<<): use str.utf8() rather than str.unicode()
6857         (pretty sure this is right from the Qt docs?)
6858
6859         * glib/dbus-gvalue.c: port to the new message args API
6860
6861         * bus/dispatch.c, bus/driver.c: port to the new message args API
6862
6863         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6864         "locked" flag to TRUE and align_offset to 0; I guess we never
6865         looked at these anyhow, but seems cleaner.
6866
6867         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6868         move allocation padding macro to this header; use it to implement
6869         (_DBUS_STRING_STATIC): ability to declare a static string.
6870
6871         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6872         change to return TRUE if the interface is not set.
6873
6874         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6875         to dbus-marshal-validate.[hc]
6876
6877         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6878         dbus-internals.c
6879
6880         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6881         to dbus-marshal-*.[hc]
6882
6883         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6884         function here from dbus-marshal.c
6885
6886 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6887
6888         * NEWS: Update for 0.23.
6889
6890         * configure.in: Release 0.23.
6891
6892 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6893
6894         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6895         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6896         behind.
6897
6898         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6899         uninstall"
6900
6901         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6902         is an enum, get the enum's underlying type.  Another mono
6903         1.1.3 fix.
6904
6905 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6906
6907         Patch from Sjoerd Simons <sjoerd@luon.net>
6908
6909         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6910         DESTDIR.  It breaks stuff.
6911
6912 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6913
6914         Patch from Tambet Ingo <tambet@ximian.com>
6915
6916         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6917         calling type.GetElementType().  The code previously depended on
6918         broken Mono behavior, which was fixed in Mono 1.1.3.
6919
6920         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6921         Activator.CreateInstance() so that the class's constructor is
6922         called with the right parameters.
6923
6924 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6925
6926         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6927
6928         * dbus/dbus-connection.c
6929         (_dbus_connection_queue_received_message_link): Call
6930         _dbus_connection_remove_timeout() instead of the _locked()
6931         variant, since it's always called from
6932         _dbus_connection_handle_watch(), which handles the locking.
6933         Removed the _locked() variant since it's no longer used.
6934
6935 2005-01-03  Havoc Pennington  <hp@redhat.com>
6936
6937         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6938         return
6939         
6940 2004-12-26  Havoc Pennington  <hp@redhat.com>
6941
6942         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6943
6944 2005-01-03  Havoc Pennington  <hp@redhat.com>
6945
6946         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6947         floating point
6948
6949         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6950
6951 2005-01-02  Havoc Pennington  <hp@redhat.com>
6952
6953         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6954
6955 2005-01-01  Havoc Pennington  <hp@redhat.com>
6956
6957         * configure.in: add -Wfloat-equal
6958
6959 2005-01-01  Havoc Pennington  <hp@redhat.com>
6960
6961         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6962         for a variety of reasons '==' doesn't do this.
6963
6964 2004-12-31  Havoc Pennington  <hp@redhat.com>
6965
6966         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6967         I keep wishing I had
6968
6969 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6970
6971         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6972
6973 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6974
6975         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6976         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6977         dbus-protocol.h.  Because they are defines and not enums they are not
6978         autogenerated.
6979
6980 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6981
6982         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6983         dbus_bus_activate_service
6984
6985         * python/dbus.py (Bus.activate_service): activate a service on the
6986         bus.
6987
6988 2004-12-24  Havoc Pennington  <hp@redhat.com>
6989
6990         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6991         file format has also changed and I haven't adapted to that yet
6992         
6993         * Makefile.am: load .gcno files from latest gcc
6994
6995 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6996         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6997
6998         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6999         lowlevel binding
7000
7001         * python/dbus.py (get_unix_user): Added binding to 
7002         call dbus_bindings.bus_get_unix_user
7003
7004         * python/extract.py: Modified the proto_pat regex to
7005         handle unsigned long
7006
7007 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7008
7009         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7010         better POSIX compliance.
7011
7012 2004-12-19  Havoc Pennington  <hp@redhat.com>
7013
7014         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7015         (_dbus_string_insert_8_aligned): new functions
7016
7017         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7018
7019 2004-12-18  Havoc Pennington  <hp@redhat.com>
7020
7021         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7022         macro
7023
7024         * dbus/dbus-message.c: fix a comment, and add a still-unused
7025         not-implemented function
7026
7027         * dbus/dbus-marshal.h: fix comment
7028
7029         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7030
7031 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7032
7033         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7034         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7035         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7036         Type.UnderlyingSystemType to get the actual system type
7037         underneath.  This code previously depended on the broken Mono
7038         behavior, which was fixed in 1.1.3.
7039
7040 2004-11-27  Havoc Pennington  <hp@redhat.com>
7041
7042         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7043         are disabled
7044         (_dbus_string_get_const_data): inline when asserts are disabled
7045
7046         * dbus/dbus-message.c: record the _dbus_current_generation of
7047         creation so we can complain if dbus_shutdown() is used improperly.
7048         Do this only if checks are enabled.
7049
7050         * dbus/dbus-connection.c: ditto
7051         
7052 2004-11-26  Havoc Pennington  <hp@redhat.com>
7053
7054         * test/glib/test-profile.c: add with_bus mode to profile echoes
7055         that go through the bus.
7056
7057         * test/glib/run-test.sh: add ability to run test-profile
7058
7059         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7060         config file reload.
7061
7062 2004-11-26  Havoc Pennington  <hp@redhat.com>
7063
7064         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7065         thing was implemented
7066
7067 2004-11-26  Havoc Pennington  <hp@redhat.com>
7068
7069         * test/glib/test-profile.c: tweak a bit, add support for some
7070         made-up minimal malloc overhead with plain sockets, since in 
7071         real life some sort of buffers are unavoidable thus we could 
7072         count them in the theoretical best case
7073
7074 2004-11-26  Havoc Pennington  <hp@redhat.com>
7075
7076         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7077         where I was trying to cache one too many messages
7078
7079 2004-11-26  Havoc Pennington  <hp@redhat.com>
7080
7081         * dbus/dbus-message.c: reimplement message cache as an array which 
7082         makes the cache about twice as fast and saves maybe 1.5% overall
7083
7084 2004-11-26  Havoc Pennington  <hp@redhat.com>
7085
7086         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7087         message cache lock here
7088
7089 2004-11-26  Havoc Pennington  <hp@redhat.com>
7090
7091         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7092         the "char byte_order" next to each other to save 4 bytes
7093         (dbus_message_new_empty_header): reduce preallocation, since the
7094         message cache should achieve a similar effect
7095         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7096         message cache that keeps a few DBusMessage around in a pool,
7097         another 8% speedup or so.
7098
7099         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7100
7101 2004-11-25  Havoc Pennington  <hp@redhat.com>
7102
7103         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7104         to write, without reading or blocking, try it before the poll()
7105         and skip the poll() if nothing remains to write. This is about a
7106         3% speedup in the echo client/server
7107
7108 2004-11-25  Havoc Pennington  <hp@redhat.com>
7109
7110         The primary change here is to always write() once before adding
7111         the write watch, which gives us about a 10% performance increase.
7112         
7113         * dbus/dbus-transport-unix.c: a number of modifications to cope
7114         with removing messages_pending
7115         (check_write_watch): properly handle
7116         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7117         messages_pending stuff
7118         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7119         AUTHENTICATED cases
7120         (unix_handle_watch): after writing, see if the write watch can be
7121         removed
7122         (unix_do_iteration): assert that write_watch/read_watch are
7123         non-NULL rather than testing that they aren't, since they 
7124         aren't allowed to be NULL. check_write_watch() at the end so 
7125         we add the watch if we did not finish writing (e.g. got EAGAIN)
7126
7127         * dbus/dbus-transport-protected.h: remove messages_pending call,
7128         since it resulted in too much inefficient watch adding/removing; 
7129         instead we now require that the transport user does an iteration 
7130         after queueing outgoing messages, and after trying the first
7131         write() we add a write watch if we got EAGAIN or exceeded our 
7132         max bytes to write per iteration setting
7133
7134         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7135         function
7136
7137         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7138         freed and then accessed, valgrind flagged this bug, fix it
7139
7140         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7141         as the last valid field plus 1, where really it is equal to the
7142         last valid field. Corrects some message corruption issues.
7143
7144         * dbus/dbus-mainloop.c: verbosity changes
7145
7146         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7147         instead of aborting in one of the test codepaths
7148
7149         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7150         caused not printing the pid ever again if a verbose was missing
7151         the newline at the end
7152         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7153
7154         * dbus/dbus-connection.c: verbosity changes; 
7155         (dbus_connection_has_messages_to_send): new function
7156         (_dbus_connection_message_sent): no longer call transport->messages_pending
7157         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7158         try to write() immediately, so we can avoid the write watch. This
7159         is the core purpose of this patchset
7160         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7161         dump the outgoing message queue, so nobody will get confused
7162         trying to send them or thinking stuff is pending to be sent
7163
7164         * bus/test.c: verbosity changes
7165
7166         * bus/driver.c: verbosity/assertion changes
7167
7168         * bus/dispatch.c: a bunch of little tweaks to get it working again
7169         because this patchset changes when/where you need to block.
7170
7171 2004-11-23  Havoc Pennington  <hp@redhat.com>
7172
7173         * test/glib/test-profile.c: modify to accept a plain_sockets
7174         argument in which case it will bench plain sockets instead of
7175         libdbus, for comparison purposes.
7176
7177 2004-11-22  Havoc Pennington  <hp@redhat.com>
7178
7179         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7180         threads for more time, so sysprof can get a grip on it.
7181
7182         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7183         pointless variable
7184
7185 2004-11-13  Havoc Pennington  <hp@redhat.com>
7186
7187         * test/glib/test-profile.c: fix this thing up a bit
7188
7189         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7190         preallocation sizes by a fair bit; not sure if this will be an
7191         overall performance win or not, but it does reduce reallocs.
7192
7193         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7194         the test hack that forced constant realloc if asserts are
7195         disabled, so we can profile sanely. Sprinkle in some
7196         _DBUS_UNLIKELY() which are probably pointless, but before I
7197         noticed the real performance problem I put them in.
7198         (_dbus_string_validate_utf8): micro-optimize this thing a little
7199         bit, though callgrind says it didn't help; then special-case
7200         ascii, which did help a lot; then be sure we detect nul bytes as
7201         invalid, which is a bugfix.
7202         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7203         superstition; use memset to nul the padding instead of a manual
7204         loop.
7205         (_dbus_string_get_length): inline this as a
7206         macro; it showed up in the profile because it's used for loop
7207         tests and so forth
7208
7209 2004-11-10  Colin Walters  <walters@verbum.org>
7210
7211         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7212         for extra paranoia.
7213
7214 2004-11-09  Colin Walters  <walters@verbum.org>
7215
7216         * dbus/dbus-string.c (_dbus_string_get_length): New
7217         function, writes DBusString to C buffer.
7218
7219         * dbus/dbus-string.h: Prototype it.
7220
7221         * dbus/dbus-message.c (dbus_message_type_to_string): New
7222         function, converts message type into C string.
7223
7224         * dbus/dbus-message.h: Prototype it.
7225
7226         * bus/selinux.c (bus_selinux_check): Take source pid,
7227         target pid, and audit data.  Pass audit data to
7228         avc_has_perm.
7229         (log_audit_callback): New function, appends extra
7230         audit information.
7231         (bus_selinux_allows_acquire_service): Also take
7232         service name, add it to audit data.
7233         (bus_selinux_allows_send): Also take message
7234         type, interface, method member, error name,
7235         and destination, and add them to audit data.
7236         (log_cb): Initialize func_audit.
7237         
7238         * bus/selinux.h (bus_selinux_allows_acquire_service)
7239         (bus_selinux_allows_send): Update prototypes 
7240
7241         * bus/services.c (bus_registry_acquire_service): Pass
7242         service name to bus_selinux_allows_acquire_service.
7243
7244         * bus/bus.c (bus_context_check_security_policy): Pass
7245         additional audit data.  Move assignment of dest
7246         to its own line.
7247
7248 2004-11-07  Colin Walters  <walters@verbum.org>
7249
7250         * dbus/dbus-transport-unix.c (do_authentication): Always
7251         initialize auth_completed.
7252         
7253 2004-11-07  Colin Walters  <walters@verbum.org>
7254
7255         * bus/bus.c (load_config): Break into three
7256         separate functions: process_config_first_time_only,
7257         process_config_every_time, and process_config_postinit.
7258         (process_config_every_time): Move call of
7259         bus_registry_set_service_context_table into
7260         process_config_postinit.
7261         (process_config_postinit): New function, does
7262         any processing that needs to happen late
7263         in initialization (and also on reload).
7264         (bus_context_new): Instead of calling load_config,
7265         open config parser here and call process_config_first_time_only
7266         and process_config_every_time directly.  Later, after
7267         we have forked but before changing UID,
7268         invoke bus_selinux_full_init, and then call
7269         process_config_postinit.
7270         (bus_context_reload_config): As in bus_context_new,
7271         load parse file inside here, and call process_config_every_time
7272         and process_config_postinit.
7273
7274         * bus/services.h, bus/services.c
7275         (bus_registry_set_service_context_table): Rename
7276         from bus_registry_set_sid_table.  Take string hash from config
7277         parser, and convert them here into SIDs.
7278
7279         * bus/config-parser.c (struct BusConfigParser): Have
7280         config parser only store a mapping of service->context
7281         string.
7282         (merge_service_context_hash): New function.
7283         (merge_included): Merge context string hashes instead
7284         of using bus_selinux_id_table_union.
7285         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7286         simply create a new string hash.
7287         (bus_config_parser_unref): Unref it.
7288         (start_selinux_child): Simply insert strings into hash,
7289         don't call bus_selinux_id_table_copy_over.
7290
7291         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7292         (bus_selinux_id_table_copy_over): Delete.
7293
7294 2004-11-03  Colin Walters  <walters@verbum.org>
7295
7296         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7297         variables.
7298         
7299 2004-11-03  Colin Walters  <walters@verbum.org>
7300
7301         * bus/test-main.c (test_pre_hook): Fix test logic,
7302         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7303
7304 2004-11-02  Colin Walters  <walters@redhat.com>
7305
7306         * bus/selinux.c (bus_selinux_init): Split into two functions,
7307         bus_selinux_pre_init and bus_selinux_post_init.
7308         (bus_selinux_pre_init): Just determine whether SELinux is
7309         enabled.
7310         (bus_selinux_post_init): Do everything else.
7311
7312         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7313         config file, and bus_selinux_post_init after.  This ensures that
7314         we don't lose the policyreload notification thread that
7315         bus_selinux_init created before forking previously.
7316         
7317         * bus/test-main.c (test_pre_hook): Update for split.
7318
7319 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7320
7321         Patch from Johan Fischer <linux@fischaz.com>
7322         
7323         * mono/doc/Makefile.am (install-data-local): Added directory
7324         install for DESTDIR
7325
7326 2004-10-29  Colin Walters  <walters@redhat.com>
7327
7328         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7329         parameter for fd to write pid to.       
7330
7331         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7332         
7333         * bus/bus.c (bus_context_new): Pass print_pid_fd
7334         to _dbus_become_daemon (bug #1720)
7335
7336 2004-10-29  Colin Walters  <walters@redhat.com>
7337
7338         Patch from Ed Catmur <ed@catmur.co.uk>
7339
7340         * mono/doc/Makefile.am (install-data-local): Handle
7341         DESTDIR.
7342
7343 2004-10-29  Colin Walters  <walters@redhat.com>
7344
7345         * bus/.cvsignore, qt/.cvsignore: Update.
7346
7347 2004-10-29  Colin Walters  <walters@redhat.com>
7348
7349         Patch from Kristof Vansant <de_lupus@pandora.be>
7350
7351         * configure.in: Detect Slackware.
7352         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7353         * bus/rc.messagebus.in: New file.
7354
7355 2004-10-29  Colin Walters  <walters@redhat.com>
7356
7357         * tools/dbus-monitor.c (filter_func): Return
7358         DBUS_HANDLER_RESULT_HANDLED in filter function
7359         for now.  See:
7360         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7361
7362 2004-10-29  Colin Walters  <walters@redhat.com>
7363
7364         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7365
7366         * bus/services.c (bus_registry_acquire_service): 
7367         Correctly retrieve service name from DBusString
7368         for printing.
7369
7370 2004-10-29  Colin Walters  <walters@redhat.com>
7371
7372         * dbus/dbus-glib.h: Update documentation to not
7373         refer to internal APIs.
7374
7375 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7376
7377         * mono/Arguments.cs (GetDBusTypeConstructor):
7378         type.UnderlyingSystemType will return "System.Byte" if you do it
7379         on "byte[]", which is not what we want.  So check the type.IsArray
7380         property and use System.Array instead.
7381
7382 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7383
7384         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7385         the DBusUserInfo structure since this is passed into the function.
7386         This would cause a double free when the function that allocated
7387         the structure would try to free it when an error occured.
7388
7389         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7390         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7391         for service activation to avoid 32bit/64bit parallel install issues
7392
7393 2004-10-21  Colin Walters  <walters@verbum.org>
7394
7395         * AUTHORS: Fix my email address, the @gnu.org one
7396         has been bouncing for some time.  Also add J5.
7397         
7398 2004-10-21  Colin Walters  <walters@verbum.org>
7399
7400         * dbus/dbus-transport-unix.c (do_authentication): Return
7401         authentication status to callers.
7402         (unix_handle_watch): If we completed authentication this round,
7403         don't do another read.  Instead wait until the next iteration,
7404         after we've read any pending data in the auth buffer.
7405         (unix_do_iteration): Ditto.
7406         (unix_handle_watch): Updated for new do_authentication prototype.
7407
7408 2004-10-18  Colin Walters  <walters@verbum.org>
7409
7410         * bus/selinux.c (bus_selinux_enabled): Handle
7411         --disable-selinux case.
7412         
7413 2004-10-18  Colin Walters  <walters@verbum.org>
7414
7415         * bus/selinux.h: Add bus_selinux_enabled.
7416         
7417         * bus/selinux.c (bus_selinux_enabled): Implement it.
7418         
7419         * bus/config-parser.c (struct include): Add
7420         if_selinux_enabled member.
7421         (start_busconfig_child): Parse if_selinux_enabled
7422         attribute for include.
7423         (bus_config_parser_content): Handle it.
7424
7425         * bus/session.conf.in, bus/system.conf.in: Add
7426         inclusion of context mapping to default config files;
7427         conditional on SELinux being enabled.
7428         
7429         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7430         
7431         * test/data/invalid-config-files/badselinux-1.conf, 
7432         test/data/invalid-config-files/badselinux-2.conf:
7433         Test files for bad syntax.
7434         
7435 2004-10-17  Colin Walters  <walters@verbum.org>
7436
7437         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7438         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7439         format specifier mismatches.
7440
7441 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7442
7443         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7444         format string.
7445
7446         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7447         pointer (bug #1540, Leonardo Boiko).
7448
7449 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7450
7451         * mono/BusDriver.cs: Changed BusDriver struct to remove
7452         the ServiceCreated and ServiceDeleted events and replace them
7453         with the new ServiceOwnerChanged event.
7454
7455         * mono/example/BusListener.cs: Added a new example program,
7456         which listens for and reports any ServiceOwnerChanged events
7457         on the bus driver.
7458
7459         * mono/example/Makefile.am (DESTDIR): Build changes for the
7460         new BusListener.cs example.
7461
7462 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7463
7464         * bus/signals.c (bus_match_rule_parse): validate the components of
7465         match rules (bug #1439).
7466
7467         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7468
7469 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7470
7471         * doc/dbus-specification.xml: document ServiceOwnerChanged
7472         signal.
7473         
7474         * bus/driver.c, bus/driver.h, bus/services.c: Use
7475         ServiceOwnerChanged signal instead of ServiceCreated and
7476         ServiceDeleted.
7477         
7478         * bus/dispatch.c: update testcase for the new signal.
7479
7480 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7481
7482         Patch from Nat Friedman <nat@novell.com>
7483
7484         * mono/Makefile.am: A number of small build fixes to allow "make
7485         distcheck" to succeed.
7486
7487         * mono/example/Makefile.am: "make distcheck" fixes.
7488
7489         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7490         key in @srcdir@.
7491
7492         * test/Makefile.am: "make distcheck" fixes.
7493
7494 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7495
7496         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7497
7498         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7499
7500         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7501         messages after the first one (bug #1389).
7502         
7503         * bus/dispatch.c (check_double_hello_message): add a test case for
7504         the double hello message bug.
7505         (check_existent_service_activation): fix check of spawning error.
7506         
7507 2004-09-16  David Zeuthen  <david@fubar.dk>
7508
7509         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7510
7511 2004-09-12  David Zeuthen  <david@fubar.dk>
7512
7513         Patch from Kay Sievers <kay.sievers@vrfy.org>
7514
7515         * bus/bus.c (bus_context_new):
7516         * bus/bus.h:
7517         * bus/main.c (usage)
7518         (main):
7519         Add commandline option --nofork to override configuration file
7520         setting.
7521
7522 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7523
7524         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7525         compilers don't like it (bug #974).
7526
7527 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7528
7529         * qt/connection.*: Applied patch by Jérôme Lodewyck
7530         <lodewyck@clipper.ens.fr> to integrate an existing
7531         connection into the Qt eventloop
7532
7533 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7534
7535         * mono/BusDriver.cs: Added.  This is a class for interacting with
7536         the org.freedesktop.DBus service.
7537
7538         * mono/Message.cs: Added a mechanism to expose the message that is
7539         currently being dispatched via the static Message.Current
7540         property.  Added Message.Sender and Message.Destination
7541         properties.
7542
7543         * mono/Handler.cs: Expose the dispatched message via
7544         Message.Current when handling method calls.
7545
7546         * mono/Service.cs: Expose the dispatched message via
7547         Message.Current when handling signal emissions.
7548         
7549         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7550         Connection.BaseService property.
7551
7552 2004-08-28  Havoc Pennington  <hp@redhat.com>
7553
7554         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7555
7556         More fixes from Steve Grubb
7557         
7558         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7559         (_dbus_listen_tcp_socket): fix fd leak
7560
7561         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7562         EINTR to a bit lower in the code
7563
7564 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7565
7566         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7567         TRUE if we are inquiring about the existence of the built-in
7568         org.freedesktop.DBus service.
7569
7570 2004-08-25  John Palmieri  <johnp@redhat.com>
7571         * bus/config-parser.c:
7572         (struct PolicyType): Add POLICY_CONSOLE
7573         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7574         (start_busconfig_child): Sets up console element when
7575         <policy at_console=""> is encountered in a policy file
7576         (append_rule_from_element): Convert console elements to console
7577         rules.
7578
7579         * bus/policy.c: 
7580         (bus_policy_create_client_policy): Add console rules to the client
7581         policy based on if the client is at the console
7582         (bus_policy_append_console_rule): New function for adding a
7583         console rule to a policy
7584         (bus_policy_merge): Handle console rule merging
7585
7586         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7587         where we check for console user files
7588         
7589         * dbus/dbus-sysdeps.c:
7590         (_dbus_file_exists): New function which checks if the given
7591         file exists
7592         (_dbus_user_at_console): New function which does the system
7593         specific process of checking if the user is at the console
7594
7595         * dbus/dbus-userdb.c:
7596         (_dbus_is_console_user): New function converts a UID to user name
7597         and then calls the system specific _dbus_user_at_console to 
7598         see if the user is at the console and therefor a console user
7599
7600 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7601
7602         * bus/config-parser.c (set_limit):
7603         * bus/dbus-daemon-1.1.in:
7604         * test/data/valid-config-files/many-rules.conf: set the
7605         max_match_rules_per_connection limt from the config file. 
7606
7607         * doc/busconfig.dtd: update the DTD.
7608
7609         * bus/driver.c: remove some unused variables.
7610
7611 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7612
7613         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7614         it's been replaced by dbus_g_bus_get
7615
7616 2004-08-23  Colin Walters  <walters@redhat.com>
7617
7618         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7619
7620         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7621
7622         * bus/selinux.c: Create a thread for policy reload notification.
7623         (bus_selinux_get_policy_root): Implement.
7624
7625         * bus/config-parser.c (start_busconfig_child)
7626         (bus_config_parser_content): Support SELinux-root relative
7627         inclusion.
7628
7629         * configure.in <HAVE_SELINUX>: Add -lpthread.
7630         
7631         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7632         (test_post_hook): Move memory checking into here.
7633         (test_pre_hook, test_post_hook): Move SELinux checks in
7634         here, but conditional on a DBUS_TEST_SELINUX environment
7635         variable.  Unfortunately we can't run the SELinux checks
7636         as a normal user, since they won't have any permissions
7637         for /selinux.  So this will have to be tested manually
7638         for now, until we have virtualization for most of
7639         libselinux.
7640         
7641 2004-08-23  Havoc Pennington  <hp@redhat.com>
7642
7643         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7644         drop supplementary groups, suggested by Steve Grubb
7645
7646 2004-08-20  Colin Walters  <walters@redhat.com>
7647
7648         * bus/config-parser.c (start_busconfig_child): Remove some unused
7649         variables.
7650         
7651         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7652         warning.
7653
7654 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7655
7656         * configure.in: If --enable-mono is passed in, if we can't find
7657         mono error out.
7658
7659         * mono/Makefile.am: Use /gacutil to install assemblies into the
7660         GAC and not /root.
7661
7662 2004-08-12  Havoc Pennington  <hp@redhat.com>
7663
7664         * NEWS: update for 0.22
7665
7666         * configure.in: release 0.22
7667
7668 2004-08-11  Colin Walters  <walters@redhat.com>
7669
7670         * tools/dbus-send.c (main, usage): Add --reply-timeout
7671         argument.
7672
7673 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7674
7675         * bus/bus.c (process_config_first_time_only): get rid of an unused
7676         DBusError that was causing a memoy leak (bug #989).
7677
7678         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7679         fix compilation on Solaris/Forte C (bug #974)
7680
7681         * bus/main.c (main): plug two minuscule memleaks.
7682
7683 2004-08-10  Havoc Pennington  <hp@redhat.com>
7684
7685         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7686
7687 2004-08-09  Havoc Pennington  <hp@redhat.com>
7688
7689         * COPYING: switch to Academic Free License version 2.1 instead of
7690         2.0, to resolve complaints about patent termination clause.
7691
7692 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7693
7694         * README: added documentation for the --enable-python 
7695         configure switch.
7696
7697 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7698
7699         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7700         _unref in the SELinux support.
7701
7702         * doc/busconfig.dtd: update DTD for SELinux support.
7703
7704         * bus/config-loader-libxml.c: fix error handler and parser
7705         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7706
7707         * configure.in: remove the warning about libxml2.
7708
7709         * dbus/dbus-bus.c: silence doxygen warning.
7710
7711 2004-07-31  Colin Walters  <walters@redhat.com>
7712
7713         * configure.in: Move #error in SELinux check to its own line.
7714
7715 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7716
7717         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7718         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7719         dbus_error_set.
7720
7721         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7722         broken by the change in the _SET_OOM macros.
7723
7724 2004-07-31  Colin Walters  <walters@redhat.com>
7725
7726         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7727         BUS_SET_OOM.
7728
7729 2004-07-31  Colin Walters  <walters@redhat.com>
7730
7731         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7732         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7733         AC_MSG_CHECKING.
7734
7735 2004-07-24  Havoc Pennington  <hp@redhat.com>
7736
7737         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7738
7739         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7740         functionality
7741
7742         * configure.in: add --enable-selinux
7743         
7744         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7745
7746         * bus/main.c (main): initialize and shut down selinux
7747
7748         * bus/connection.c: store SELinux ID on each connection, to avoid 
7749         repeated getting of the string context and converting it into 
7750         an ID
7751
7752         * bus/bus.c (bus_context_get_policy): new accessor, though it
7753         isn't used
7754         (bus_context_check_security_policy): check whether the security
7755         context of sender connection can send to the security context of
7756         recipient connection
7757
7758         * bus/config-parser.c: add parsing for <selinux> and <associate>
7759         
7760         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7761         implement dbus_connection_get_unix_fd()
7762
7763         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7764         function, used by the selinux stuff
7765         
7766 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7767
7768         * bus/config-loader-libxml.c: complete the implementation of
7769         libxml backend for config file loader. Doesn't work with full OOM
7770         test yet. 
7771         
7772         * configure.in: change error when selecting libxml into a warning.
7773         
7774         * test/data/invalid-config-files: add two non-well-formed XML
7775         files. 
7776         
7777         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7778         
7779         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7780         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7781         be necessary to read all the buffer. (bug #894)
7782
7783         * bus/activation.c (bus_activation_activate_service): fix a
7784         potential assertion failure (bug #896). Small optimization in the
7785         case of auto-activation messages.
7786
7787         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7788         add test case for byte-through-vararg bug (#901). patch by Kimmo
7789         Hämäläinen. 
7790
7791 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7792
7793         * python/dbus.py:
7794         * python/dbus_bindings.pyx.in:
7795         Add dbus.init_gthreads (), allow emit_signal to pass
7796         arguments to the signal.
7797         
7798 2004-07-24  Havoc Pennington  <hp@redhat.com>
7799
7800         * AUTHORS: add some people, not really comprehensively, let me
7801         know if I missed you
7802
7803 2004-07-24  Havoc Pennington  <hp@redhat.com>
7804
7805         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7806         Owen
7807
7808         * test/Makefile.am (DIST_SUBDIRS): here also
7809
7810 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7811
7812         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7813         breaking build on Solaris, reported by Farhad Saberi on the ML.
7814
7815         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7816         va_arg invocation to account for integer promotion in the case of
7817         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7818
7819         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7820         _dbus_list_get_first_link, not _dbus_list_get_first.
7821
7822         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7823
7824         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7825         handler functions so that the asserts in _dbus_object_subtree_unref
7826         do not fail.
7827
7828         * dbus/dbus-transport-unix.c (do_reading):
7829         _dbus_transport_queue_messages return value is of type
7830         dbus_bool_t, not DBusDispatchStatus.
7831         
7832 2004-07-19  David Zeuthen  <david@fubar.dk>
7833
7834         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7835
7836         * bus/dispatch.c:
7837         (check_get_connection_unix_user): Debug says GetProperty; but the
7838         method is called GetConnectionUnixUser
7839         (check_get_connection_unix_process_id): New function
7840         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7841         also call check_get_connection_unix_process_id()
7842         
7843         * bus/driver.c:
7844         (bus_driver_handle_get_connection_unix_process_id): New function,
7845         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7846         interface
7847         
7848         * dbus/dbus-auth.c:
7849         (handle_server_data_external_mech): Set pid from the credentials
7850         obtained from the socket
7851         
7852         * dbus/dbus-connection.c:
7853         (dbus_connection_get_unix_process_id): New function
7854         
7855         * dbus/dbus-connection.h: 
7856         Add prototype for dbus_connection_get_unix_process_id
7857         
7858         * dbus/dbus-transport.c:
7859         (_dbus_transport_get_unix_process_id): New function
7860         
7861         * dbus/dbus-transport.h:
7862         Add prototype for _dbus_transport_get_unix_process_id
7863         
7864 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7865
7866         * dbus/dbus-message.c: Message counter fix, patch by Christian
7867         Hammond <chipx86@gnupdate.org>
7868
7869 2004-07-18  Seth Nickell  <seth@gnome.org>
7870
7871         * python/dbus.py:
7872         * python/dbus_bindings.pyx.in:
7873         * python/tests/test-client.py:
7874
7875         Add dbus.ByteArray and dbus_bindings.ByteArray
7876         types so that byte streams can be passed back.
7877
7878         Give jdahlin the heaps of credit that are so
7879         rightfully his.
7880         
7881 2004-07-12  Seth Nickell  <seth@gnome.org>
7882
7883         * python/dbus.py:
7884
7885         Add message argument to the default object_method_handler
7886         function.
7887         
7888         * python/dbus_bindings.pyx.in:
7889
7890         Automatically return NIL when passed an empty list
7891         (we can't pass back a list since lists are typed
7892         and we don't have any idea what type the the client
7893         intended the list to be... :-( )
7894         
7895 2004-07-10  Seth Nickell  <seth@gnome.org>
7896
7897         * python/examples/Makefile.am:
7898
7899         Fix distcheck breakage caused by new examples.
7900
7901 2004-07-10  Seth Nickell  <seth@gnome.org>
7902
7903         * python/dbus.py:
7904
7905         Add "message" argument to service-side dbus.Object
7906         methods. This will break existing services written
7907         using the python bindings, but will allow extraction
7908         of all the message information (e.g. who its from).
7909
7910         Add improved "object oriented" signal handling/emission.
7911         
7912         * python/examples/example-service.py:
7913
7914         Nix this example.
7915         
7916         * python/examples/example-signal-emitter.py:
7917         * python/examples/example-signal-recipient.py:
7918
7919         Two new examples that show how to emit and receive
7920         signals using the new APIs.
7921         
7922         * python/examples/example-signals.py:
7923         * python/examples/gconf-proxy-service.py:
7924         * python/examples/gconf-proxy-service2.py:
7925
7926         Add "message" argument to service methods.
7927
7928 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7929
7930         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7931         * dbus/bus.c (dbus_bus_get_unix_user)
7932         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7933         method of org.freedesktop.DBus interface.
7934
7935         * bus/dispatch.c: test case
7936
7937 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7938
7939         * python/Makefile.am: switched include directory from glib/ to dbus/
7940         since dbus-glib.h moved
7941  
7942 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7943
7944         * configure.in: prevent building the gcj stuff and libxml loader
7945         since they are broken.
7946
7947 2004-06-20  Havoc Pennington  <hp@redhat.com>
7948
7949         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7950         codes from the dbus error names
7951         
7952         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7953         as dbus/dbus-glib.h and that breakage is now visible due to 
7954         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7955         
7956         * glib/dbus-glib.h: s/gproxy/g_proxy/
7957
7958         * dbus/dbus-shared.h: new header to hold stuff shared with
7959         binding APIs
7960         
7961         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7962         than dbus-errors.h
7963
7964         * glib/dbus-glib.h (dbus_set_g_error): move to
7965         dbus-glib-lowlevel.h
7966
7967         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7968         of stuff to enable this
7969
7970         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7971
7972         * a bunch of other changes with the same basic "separate glib 
7973         bindings from dbus.h" theme
7974         
7975 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7976
7977         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7978
7979         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7980
7981 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7982
7983         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7984         the reply value of the ServiceExists message.
7985
7986 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7987
7988         * python/dbus_bindings.pyx.in: No longer need to parse path
7989         elements and pass them as arrays of strings.  The C API now
7990         accepts plain path strings.
7991         (_build_parsed_path): removed 
7992
7993 2004-06-07  Havoc Pennington  <hp@redhat.com>
7994
7995         * doc/TODO: remove auto-activation item since it's done; sort
7996         items by importance/milestone
7997
7998 2004-06-07  Havoc Pennington  <hp@redhat.com>
7999
8000         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8001         random signature when using REQUIRED_FIELDS (this hack won't work
8002         in the long term)
8003
8004         * dbus/dbus-message.c: change the signature to be a header field,
8005         instead of message->signature special-case string. Incremental
8006         step forward. Then we can fix up code to send the signature in the
8007         message, then fix up code to validate said signature, then fix up
8008         code to not put the typecodes inline, etc.
8009         (load_one_message): don't make up the signature after the fact
8010         (decode_header_data): require signature field for the known
8011         message types
8012
8013         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8014
8015         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8016
8017 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8018
8019         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8020
8021         * mono/Handler.cs: Updated to follow new path argument for
8022         (un-)registering objects.
8023
8024         * mono/example/Makefile.am:
8025         * mono/Makefile.am:
8026         * configure.in: Bumped required version for mono and use new -pkg
8027         syntax for deps
8028
8029 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8030
8031         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8032         registration functions take the path argument as char* instead of
8033         char**.
8034
8035         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8036         split off the path decompostion part of
8037         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8038         warnings. 
8039
8040         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8041         
8042 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8043  
8044         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8045         machine approach.  A state is implemented as a function that
8046         handles incoming events as specified for that state.
8047         
8048         * doc/dbus-specification.xml: Update auth protocol state machine
8049         specification to match implementation.  Remove some leftover
8050         base64 examples.
8051
8052 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8053
8054         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8055         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8056         quiet doxygen.
8057
8058         * Doxyfile.in: remove deprecated options.
8059
8060         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8061         glib/test-thread.h, glib/test-thread-client.c,
8062         glib/test-thread-server.c, glib/test-profile.c,
8063         glib/test-dbus-glib.c: remove these unused files.
8064
8065 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8066
8067         * dbus/dbus-object-tree.c
8068         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8069         non-fallback handlers (bug #684).
8070         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8071         (find_subtree_recurse): report wether the returned subtree is an
8072         exact match or a "fallback" match higher up in the tree.
8073         (object_tree_test_iteration): update test case.
8074
8075 2004-06-01  Seth Nickell  <seth@gnome.org>
8076
8077         * python/dbus_bindings.pyx.in:
8078         * python/tests/test-client.py:
8079
8080         Round off basic type support. Add dicts (yay!), and 
8081         remaining array types.
8082
8083         Make MessageIter more general so it works for dicts too.
8084
8085         Mark all loop variables as C integers.
8086         
8087 2004-05-31  Havoc Pennington  <hp@redhat.com>
8088
8089         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8090         "in" before "out"
8091
8092         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8093
8094         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8095         option that runs the tests, and start filling in some code
8096         including for starters just dumping the interfaces to stdout
8097
8098         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8099
8100         * test/data/valid-introspection-files/lots-of-types.xml: test of
8101         an example introspection file
8102
8103         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8104         "node" (I think...)
8105
8106 2004-05-31  Seth Nickell  <seth@gnome.org>
8107
8108         * python/dbus_bindings.pyx.in:
8109         * python/tests/test-client.py:
8110
8111         Test Suite: 1
8112         Python Bindings: 0
8113
8114         Fix string array memory trashing bug... oops...
8115
8116 2004-05-30  Seth Nickell  <seth@gnome.org>
8117
8118         * python/dbus.py:
8119
8120         Add a nicer-but-less-flexible alternate API for handling 
8121         calls to virtual objects in dbus.ObjectTree.
8122
8123         Screw up the argument order to the dbus.Object constructor
8124         for consistency with dbus.ObjectTree (and to make dbus_methods
8125         optional for future extension)
8126         
8127         * python/examples/Makefile.am:
8128         * python/examples/gconf-proxy-service.py:
8129         * python/examples/gconf-proxy-service2.py:
8130
8131         Alternate implementation of gconf-proxy-service using the
8132         nicer dbus.ObjectTree API.
8133         
8134         * python/examples/example-service.py:
8135         * python/tests/test-server.py
8136
8137         Reverse the argument order to deal with dbus.Object constructor
8138         changes.
8139         
8140 2004-05-30  Seth Nickell  <seth@gnome.org>
8141
8142         * python/examples/example-client.py:
8143         * python/examples/example-service.py:
8144
8145         Take it back. Lists seem to work but they're broken
8146         in the test suite. Make the base examples use
8147         lists (works fine).
8148
8149 2004-05-30  Seth Nickell  <seth@gnome.org>
8150
8151         * python/dbus_bindings.pyx.in:
8152         * python/tests/test-client.py:
8153
8154         Add some more tests and fix errors that crop up.
8155         Unfortunately, currently it seems like marshalling
8156         and unmarshalling of lists is completely broken :-(
8157
8158 2004-05-30  Seth Nickell  <seth@gnome.org>
8159
8160         * python/dbus_bindings.pyx.in:
8161
8162         Add support for ObjectPath type.
8163
8164         * python/dbus.py:
8165
8166         Refactor message handling code to a common function.
8167         
8168         * python/tests/test-client.py:
8169         * python/tests/test-server.py:
8170
8171         Add tests that check to make sure values of all types
8172         can be echoed from a service w/o mangling.
8173         
8174 2004-05-29  Seth Nickell  <seth@gnome.org>
8175
8176         * python/dbus.py:
8177
8178         Add ObjectTree class which allows implementation
8179         of trees of "virtual" objects. Basically the python
8180         wrapper for "register_fallback".
8181         
8182         * python/examples/Makefile.am
8183         * python/examples/gconf-proxy-client.py:
8184         * python/examples/gconf-proxy-service.py:
8185
8186         Implement a simple GConf proxy service that supports
8187         get/set on string and int GConf keys using the ObjectTree.
8188         
8189 2004-05-29  Seth Nickell  <seth@gnome.org>
8190
8191         * python/dbus.py:
8192         * python/examples/example-client.py:
8193         * python/examples/example-service.py:
8194         * python/examples/list-system-services.py:
8195
8196         Add SessionBus, SystemBus and ActivationBus classes
8197         so you don't need to know the special little BUS_TYPE
8198         flag.
8199         
8200 2004-05-29  Havoc Pennington  <hp@redhat.com>
8201
8202         * bus/config-parser.c (process_test_valid_subdir): temporarily
8203         stop testing config parser OOM handling, since expat has issues
8204         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8205
8206         * bus/dbus-daemon-1.1.in: change requested_reply to
8207         send_requested_reply/receive_requested_reply so we can send the
8208         replies, not just receive them.
8209
8210         * bus/config-parser.c: parse the new
8211         send_requested_reply/receive_requested_reply
8212
8213         * bus/policy.c (bus_client_policy_check_can_send): add
8214         requested_reply argument and use it
8215
8216         * bus/bus.c (bus_context_check_security_policy): pass through
8217         requested_reply status to message send check
8218
8219         * bus/system.conf.in: adapt to requested_reply change
8220         
8221 2004-05-28  Havoc Pennington  <hp@redhat.com>
8222
8223         * test/glib/test-service-glib.c (main): remove unused variable
8224
8225         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8226
8227         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8228         from the enum, no longer in use.
8229
8230         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8231         works right.
8232
8233         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8234         whether error_name passed in is a valid error name.
8235
8236 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8237
8238         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8239         OBJECT_PATH and OBJECT_PATH_ARRAY
8240
8241 2004-05-28  Seth Nickell  <seth@gnome.org>
8242
8243         * python/examples/Makefile.am:
8244
8245         Forget to add Makefile.am. Do not pass go.
8246
8247 2004-05-28  Michael Meeks  <michael@ximian.com>
8248
8249         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8250         fix no int64 case.
8251
8252         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8253
8254         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8255         (_dbus_message_iter_get_basic_type_array): impl.
8256         drastically simplify ~all relevant _get methods to use these.
8257         (_dbus_message_iter_append_basic_array),
8258         (dbus_message_iter_append_basic): impl
8259         drastically simplify ~all relevant _append methods to use these.
8260
8261         * dbus/dbus-message-builder.c (parse_basic_type) 
8262         (parse_basic_array, lookup_basic_type): impl.
8263         (_dbus_message_data_load): prune scads of duplicate /
8264         cut & paste coding.
8265
8266         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8267         (_dbus_demarshal_basic_type): implement,
8268         (demarshal_and_validate_len/arg): beef up debug.
8269         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8270
8271 2004-05-27  Seth Nickell  <seth@gnome.org>
8272
8273         * configure.in:
8274         * python/Makefile.am:
8275
8276         Include the example python apps in the tarball.
8277         
8278         * python/examples/list-system-services.py
8279
8280         Add a python new example that fetches the list of services
8281         from the system bus.
8282         
8283 2004-05-27  Seth Nickell  <seth@gnome.org>
8284
8285         * python/dbus.py:
8286         * python/dbus_bindings.pyx.in:
8287
8288         Fix failure to notify that a signal was not handled,
8289         resulted in hung functions.
8290         
8291 2004-05-25  Colin Walters  <walters@redhat.com>
8292
8293         * tools/dbus-monitor.c (main): Monitor all types of messages.
8294
8295 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8296
8297         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8298         which unregisters the object path and disposes the handler.
8299
8300 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8301  
8302         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8303          
8304         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8305         operands to && so we call dbus_message_iter_next () for the last
8306         argument also.
8307
8308 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8309
8310         * dbus/dbus-object-tree.c
8311         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8312         children even if the requested path isn't registered.
8313         (object_tree_test_iteration): test object_tree_list_registered.
8314
8315         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8316         it to 0.
8317         
8318 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8319
8320         * doc/TODO: Remove resolved items.
8321
8322         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8323         field.
8324         
8325         * bus/connection.c (bus_connections_expect_reply): Enforce the
8326         per-connection limit on pending replies.
8327         
8328         Patch from Jon Trowbridge <trow@ximian.com>:
8329  
8330         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8331         up a watch that triggers a config reload when one end of the pipe
8332         becomes readable.
8333         (signal_handler): Instead of doing the config reload in our SIGHUP
8334         handler, just write to the reload pipe and let the associated
8335         watch handle the reload when control returns to the main loop.
8336  
8337         * bus/driver.c (bus_driver_handle_reload_config): Added.
8338         Implements a ReloadConfig method for requesting a configuration
8339         file reload via the bus driver.
8340  
8341 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8342
8343         * HACKING: Updated release instructions concerning the wiki page.
8344
8345 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8346
8347         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8348         filter against auth->allowed_mechs; we only add allowed mechs in
8349         record_mechanisms().
8350  
8351         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8352         ALLOWED_MECHS to auth-script format so we can set the list of
8353         allowed mechanisms.
8354  
8355         * data/auth/client-out-of-mechanisms.auth-script: New test to
8356         check client disconnects when it is out of mechanisms to try.
8357  
8358         * dbus/dbus-auth.c (process_command): Remove check for lines
8359         longer that 1 MB; we only buffer up maximum 16 kB.
8360  
8361         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8362         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8363         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8364         assume there might be unused bytes.
8365  
8366         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8367         client-out-of-mechs, it is handled in process_reject(). Move check
8368         for max failures to send_rejected(), as it's a server-only thing.
8369
8370         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8371         send_auth(), send_data(), send_rejected(), send_error(),
8372         send_ok(), send_begin() and send_cancel().
8373
8374 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8375
8376         Remove base64 encoding, replace with hex encoding. Original patch
8377         from trow@ximian.com, added error handling.
8378
8379         * dbus/dbus-string.c (_dbus_string_base64_encode)
8380         (_dbus_string_base64_decode): Remove.
8381         (_dbus_string_hex_decode): Add end_return argument so we can
8382         distinguish between OOM and invalid hex encoding.
8383         (_dbus_string_test): Remove base64 tests and add test case for
8384         invalid hex.
8385
8386         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8387         Replace base64 with hex.
8388
8389         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8390         for invalid hex encoded data in auth protocol.
8391
8392 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8393
8394         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8395         leak.
8396
8397 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8398
8399         * mono/dbus-sharp.dll.config.in: Added for GAC
8400         * mono/dbus-sharp.snk: Added for GAC
8401         * mono/Assembly.cs.in: Added for GAC
8402         * mono/Makefile.am: Changes for GAC installation        
8403         * configure.in: Added refs for dbus-sharp.dll.config.in and
8404         Assembly.cs.in. More fixes for mono testing
8405         * mono/example/Makefile.am: Changed var to CSC
8406         * Makefile.am: Changed flag name to DBUS_USE_CSC
8407
8408 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8409
8410         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8411         * mono/doc/*: Added documentation framework
8412         * configure.in: Added monodoc check
8413         * README: Added description of mono configure flags
8414
8415 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8416
8417         * doc/dbus-specification.xml: Added a "Required" column to the 
8418         header fields table and changed the "zero or more" verbage in
8419         the above paragraph to read "The header must contain the required 
8420         named header fields and zero or more of the optional named header 
8421         fields".
8422         * test/data/invalid-messages/*.message: Added the required PATH 
8423         named header field to the tests so that they don't fail on 
8424         'Missing path field'
8425
8426 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8427
8428         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8429         the stack by implicitly defining variable and parameter types and
8430         removing the hack of defining C pointers as python objects and later
8431         casting them.
8432
8433 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8434
8435         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8436
8437 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8438
8439         * mono/DBusType/Dict.cs: Handle empty dicts
8440         * mono/DBusType/Array.cs: Handle empty arrays
8441         * mono/Arguments.cs: Handle empty arguments
8442
8443 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8444
8445         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8446         field
8447
8448 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8449
8450         * test/data/valid-messages/standard-*.message: Update message
8451         test scripts to new header field names.
8452
8453 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8454
8455         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8456         overflow to times_we_did_each_thing array which would chop off the
8457         first character of the failure_dir string. Increased the size of
8458         the array to 7 to reflect the number of random mutation functions
8459         we have.
8460
8461 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8462
8463         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8464         unix_server->watch here, it is unreffed in disconnect.
8465         (_dbus_server_new_for_tcp_socket): convert NULL host to
8466         "localhost" here so we don't append NULL to address.
8467         
8468         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8469         various addresses, including tcp with no explicit host.
8470
8471 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8472
8473         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8474         fix incorrect setting of .name_offset in the HeaderField (it was
8475         off by two bytes, positioned right after the name and typecode)
8476
8477         * bus/bus.c (bus_context_new, bus_context_unref): test before
8478         calling dbus_server_free_data_slot and _dbus_user_database_unref
8479         in case of an error.
8480
8481         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8482         by libdbus-gtool.
8483
8484 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8485
8486         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8487         _dbus_poll() instead of select().
8488
8489 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8490
8491         * bus/main.c (signal_handler): Reload the configuration files
8492         on SIGHUP.
8493         (main): Set up our SIGHUP handler.
8494
8495         * bus/bus.c (struct BusContext): Store the config file, user and
8496         fork flag in the BusContext.
8497         (process_config_first_time_only): Added.  Contains the code
8498         (previously in bus_context_new) for setting up the BusContext from
8499         the BusConfigParser that should only be run the first time the
8500         config files are read.
8501         (process_config_every_time): Added.  Contains the code (previously
8502         in bus_context_new) for setting up the BusContext from the
8503         BusConfigParser that should be run every time the config files are
8504         read.
8505         (load_config): Added.  Builds a BusConfigParser from the config
8506         files and passes the resulting structure off to
8507         process_config_first_time_only (assuming this is the first time)
8508         and process_config_every_time.
8509         (bus_context_new): All of the config-related code has been moved
8510         to process_config_first_time_only and process_config_every_time.
8511         Now this function just does the non-config-related initializations
8512         and calls load_config.
8513         (bus_context_reload_config): Added.
8514
8515 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8516
8517         * bus/driver.c (bus_driver_handle_get_service_owner):
8518         implement a GetServiceOwner method.
8519         * doc/dbus-specification.xml: document it.
8520         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8521         
8522         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8523         implement, using the bus GetServiceOwner method.
8524
8525         * test/glib/test-dbus-glib.c:
8526         use dbus_gproxy_new_for_service_owner so that we can receive the
8527         signal. 
8528
8529 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8530
8531         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8532         dbus/dbus-message.c, dbus/dbus-protocol.h
8533         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8534
8535         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8536         dbus/dbus-message.c, dbus/dbus-protocol.h
8537         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8538
8539         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8540         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8541         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8542
8543         * doc/dbus-specification.xml (Header Fields Table):
8544         s/SERVICE/DESTINATION
8545         s/SENDER_SERVICE/SENDER
8546
8547
8548 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8549
8550         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8551         a few seconds.
8552
8553 2004-04-13  Michael Meeks  <michael@ximian.com>
8554
8555         * glib/dbus-gobject.c (handle_introspect): split out
8556         (introspect_properties): this.
8557         (handle_introspect): implement this.
8558
8559         * test/glib/Makefile.am: use the absolute path so the bus
8560         daemon's chdir ("/") doesn't kill us dead.
8561
8562         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8563
8564 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8565
8566         * bus/config-parser.c (struct BusConfigParser): Added
8567         included_files field.
8568         (seen_include): Added.  Checks whether or not a file has already
8569         been included by any parent BusConfigParser.
8570         (bus_config_parser_new): Copy the parent's included_files.
8571         (include_file): Track which files have been included, and fail on
8572         circular inclusions.
8573         (process_test_valid_subdir): Changed printf to report if we are
8574         testing valid or invalid conf files.
8575         (all_are_equiv): Changed printf to be a bit clearer about
8576         what we are actually doing.
8577         (bus_config_parser_test): Test invalid configuration files.
8578
8579 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8580
8581         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8582         argument.  If non-null, the newly-constructed BusConfigParser will
8583         be initialized with the parent's BusLimits instead of the default
8584         values.
8585         (include_file): When including a config file, pass in
8586         the current parser as the parent and then copy the BusLimits
8587         from the included BusConfigParser pack to the current parser.
8588         (process_test_valid_subdir): Renamed from process_test_subdir.
8589         (process_test_equiv_subdir): Added.  Walks through a directory,
8590         descending into each subdirectory and loading the config files
8591         it finds there.  If any subdirectory contains two config files
8592         that don't produce identical BusConfigParser structs, fail.
8593         For now, the BusConfigParser's BusPolicies are not compared.
8594         (bus_config_parser_test): Call both process_test_valid_subdir and
8595         process_test_equiv_subdir.
8596
8597         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8598         argument and pass it along to the call to bus_config_parser_new.
8599         Also made a few small changes to allow this code to compile.
8600
8601         * bus/config-loader-expat.c (bus_config_load): Take a parent
8602         argument and pass it along to the call to bus_config_parser_new.
8603
8604         * bus/bus.c (bus_context_new): Load the config file
8605         with a NULL parent argument.
8606
8607 2004-03-29  Michael Meeks  <michael@ximian.com>
8608
8609         * glib/dbus-gobject.c (introspect_properties): split
8610         out, fix mangled 'while' flow control.
8611         (introspect_signals): implement.
8612         (handle_introspect): update.
8613
8614 2004-03-29  Michael Meeks  <michael@ximian.com>
8615
8616         * glib/dbus-gobject.c (set_object_property): split out / 
8617         re-work, use the property type, and not the message type(!)
8618         (get_object_property): ditto.
8619
8620         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8621         (dbus_gvalue_marshal): make this code re-usable, needed
8622         for signals too, also on both proxy and server side.
8623         Re-write for more efficiency / readability.
8624
8625 2004-03-29  Michael Meeks  <michael@ximian.com>
8626
8627         * dbus/dbus-message.c
8628         (dbus_message_new_error_printf): impl.
8629
8630         * dbus/dbus-connection.c
8631         (dbus_connection_unregister_object_path): fix warning.
8632
8633         * configure.in: fix no-mono-installed situation.
8634
8635 2004-03-27  Havoc Pennington  <hp@redhat.com>
8636
8637         Patch from Timo Teräs:
8638         
8639         * tools/dbus-send.c (main): if --print-reply, assume type is
8640         method call; support boolean type args
8641         
8642         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8643         bunch of memleak and logic bugs
8644         
8645 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8646
8647         * mono/Arguments.cs:
8648         * mono/Introspector.cs:
8649         * mono/Handler.cs:
8650         * mono/InterfaceProxy.cs:
8651         * mono/Message.cs
8652         * mono/ProxyBuilder.cs:
8653         * mono/Service.cs:
8654         Added InterfaceProxy class to avoid building proxies for every
8655         object.
8656
8657         * dbus-message.h:
8658         * dbus-message.c (dbus_message_append_args_valist)
8659         (dbus_message_iter_get_object_path)
8660         (dbus_message_iter_get_object_path_array)
8661         (dbus_message_iter_append_object_path)
8662         (dbus_message_iter_append_object_path_array):
8663         Added object_path iter functions to handle OBJECT_PATH arguments
8664         
8665 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8666
8667         First checkin of mono bindings.
8668         * configure.in:
8669         * Makefile.am:
8670         Build stuff for the bindings
8671         * dbus-sharp.pc.in: Added for pkgconfig
8672         
8673 2004-03-21  Havoc Pennington  <hp@redhat.com>
8674
8675         * test/test-service.c (main): remove debug spew
8676
8677 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8678
8679         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8680         arrays
8681
8682         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8683         (dbus_message_iter_init_array_iterator)
8684         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8685         indicate whether the iterator is empty
8686
8687         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8688         warnings
8689
8690 2004-03-19  Havoc Pennington  <hp@redhat.com>
8691
8692         * NEWS: 0.21 updates
8693
8694         * configure.in: 0.21
8695
8696         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8697         
8698         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8699         you don't need pyrex to make dist
8700
8701         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8702         sources; run moc
8703         
8704 2004-03-18  Richard Hult  <richard@imendio.com>
8705
8706         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8707         (dbus_message_set_auto_activation): Add doxygen docs.
8708
8709 2004-03-16  Richard Hult  <richard@imendio.com>
8710
8711         * bus/activation.c: (bus_activation_service_created),
8712         (bus_activation_send_pending_auto_activation_messages),
8713         (bus_activation_activate_service):
8714         * bus/activation.h:
8715         * bus/dispatch.c: (bus_dispatch),
8716         (check_nonexistent_service_auto_activation),
8717         (check_service_auto_activated),
8718         (check_segfault_service_auto_activation),
8719         (check_existent_service_auto_activation), (bus_dispatch_test):
8720         * bus/driver.c: (bus_driver_handle_activate_service):
8721         * bus/services.c: (bus_registry_acquire_service):
8722         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8723         (dbus_message_get_auto_activation):
8724         * dbus/dbus-message.h:
8725         * dbus/dbus-protocol.h: Implement auto-activation.
8726         
8727         * doc/dbus-specification.xml: Add auto-activation to the spec.
8728
8729 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8730
8731         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8732         fix a bug with CUSTOM types.
8733
8734         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8735         a unit test for this bug (used to fail).
8736
8737 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8738
8739         * bus/activation.c:
8740         (babysitter_watch_callback): notify all pending activations waiting for
8741           the same exec that the activation failed.
8742         (bus_activation_activate_service): shortcut the activation if we 
8743           already waiting for the same executable to start up.
8744
8745 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8746
8747         * bus/activation.c: 
8748         - Added service file reloading. 
8749           Each service files directory is kept in an hash table in 
8750           BusActivation and each BusActivationEntry knows what .service-file it
8751           was read from. So when you try to activate a service the bus will 
8752           check if it's been updated, removed or if new .service-files has 
8753           been installed.
8754         - Test code at the bottom for the service file reloading.
8755         * bus/test-main.c: (main):
8756         * bus/test.h:
8757         - added service reloading test.
8758         * dbus/dbus-sysdeps.c: 
8759         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8760
8761 2004-03-08  Michael Meeks  <michael@ximian.com>
8762
8763         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8764         bail immediately if disconnected, to avoid busy loop.
8765
8766         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8767         cleanup cut/paste/inefficiency.
8768
8769 2004-03-01  David Zeuthen  <david@fubar.dk>
8770
8771         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8772         bug where args were used twice. This bug resulted in a segfault
8773         on a Debian/PPC system when starting the messagebus daemon. Include
8774         dbus-sysdeps.h for DBUS_VA_COPY
8775
8776         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8777
8778         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8779         appropriate va_copy implementation. From GLib
8780         
8781 2004-02-24  Joe Shaw  <joe@ximian.com>
8782
8783         * bus/services.c (bus_registry_acquire_service): We need to pass
8784         in the service name to dbus_set_error() to prevent a crash.
8785
8786 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8787
8788         * AUTHORS: Reveal my True identity.
8789
8790 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8791
8792         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8793         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8794
8795 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8796
8797         * doc/TODO: Added not about better error check of configuration files.
8798
8799 2003-12-02  Richard Hult  <richard@imendio.com>
8800
8801         * Update AFL version to 2.0 throughout the source files to reflect
8802         the update that was done a while ago.
8803
8804 2003-12-02  Richard Hult  <richard@imendio.com>
8805
8806         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8807         wrote_dict_key to FALSE on the iter that the dict is appended to,
8808         just like when appending other types. Fixes a bug where a dict
8809         couldn't be put inside a dict.
8810         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8811         (message_iter_test, _dbus_message_test): Add test case for dict
8812         inside dict.
8813
8814 2003-12-01  David Zeuthen  <david@fubar.dk>
8815
8816         * python/dbus.py: Add the actual message when calling the reciever
8817         of a signal such that parameters can be inspected. Add the method
8818         remove_signal_receiver
8819         
8820 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8821
8822         * bus/*.[ch]:
8823         * dbus/*.[ch]:
8824         * glib/*.[ch]: Made ref functions return the pointer
8825
8826 2003-11-25  Zack Rusin  <zack@kde.org>
8827
8828         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8829
8830         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8831         wrappers,
8832
8833         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8834         the Integrator and to better fit with the server,
8835
8836 2003-11-24  Zack Rusin  <zack@kde.org>
8837
8838         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8839         the integrator handles it now
8840
8841         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8842         since QTimer wasn't really meant to be used the way DBusTimeout is
8843
8844 2003-11-24  Zack Rusin  <zack@kde.org>
8845
8846         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8847         Integrator class which integrates D-BUS with the Qt event loop,
8848
8849         * qt/connection.h, qt/connection.cpp: Move all the code which
8850         was dealing with D-BUS integration to the Integrator class,
8851         and start using Integrator,
8852
8853 2003-11-23  Zack Rusin  <zack@kde.org>
8854
8855         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8856         wrapper
8857
8858         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8859         switching namespaces to DBusQt, reworking the class,
8860
8861         * Makefile.cvs: switching dependencies so that it matches KDE 
8862         schematics,
8863         
8864         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8865         the library
8866
8867 2003-11-19  Havoc Pennington  <hp@redhat.com>
8868
8869         * NEWS: update
8870
8871         * configure.in: bump version to 0.20
8872
8873         * configure.in (have_qt): add yet another place to look for qt
8874         (someone hand trolltech a .pc file...)
8875
8876 2003-11-01  Havoc Pennington  <hp@redhat.com>
8877
8878         * doc/dbus-specification.xml: add state machine docs on the auth
8879         protocol; just a first draft, I'm sure it's wrong.      
8880
8881 2003-10-28  David Zeuthen  <david@fubar.dk>
8882
8883         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8884         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8885         
8886 2003-10-28  Havoc Pennington  <hp@redhat.com>
8887
8888         * dbus/dbus-message.c (get_next_field): delete unused function
8889
8890 2003-10-28  Havoc Pennington  <hp@redhat.com>
8891
8892         * bus/expirelist.c (do_expiration_with_current_time): detect
8893         failure of the expire_func due to OOM
8894
8895         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8896
8897         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8898         NoReply error that's now created by the bus when the service exits
8899
8900 2003-10-28  Havoc Pennington  <hp@redhat.com>
8901
8902         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8903         tests for set_path, set_interface, set_member, etc.
8904
8905         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8906
8907         * dbus/dbus-message.c (set_string_field): always just delete and
8908         re-append the field; accept NULL for deletion
8909         (re_align_fields_recurse): reimplement
8910         
8911 2003-10-26  Havoc Pennington  <hp@redhat.com>
8912
8913         * dbus/dbus-connection.c: fix docs to properly describe the
8914         disconnected message
8915         (_dbus_connection_notify_disconnected): remove this function; 
8916         we can't synchronously add the disconnected message, we have to 
8917         do it after we've queued any remaining real messages
8918         (_dbus_connection_get_dispatch_status_unlocked): queue the
8919         disconnect message only if the transport has finished queueing all
8920         its real messages and is disconnected.
8921         (dbus_connection_disconnect): update the dispatch status here
8922
8923 2003-10-22  Havoc Pennington  <hp@redhat.com>
8924
8925         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8926
8927         * bus/connection.c (bus_transaction_send_from_driver): set the
8928         destination to the connection's base service
8929
8930 2003-10-20  Havoc Pennington  <hp@redhat.com>
8931
8932         hmm, make check is currently not passing.
8933         
8934         * doc/dbus-specification.xml: add requirement that custom type
8935         names follow the same rules as interface names.
8936
8937         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8938         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8939         'map'
8940
8941         * doc/dbus-specification.xml: update type codes to match
8942         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8943         CUSTOM. Add type OBJECT_PATH to the spec.
8944
8945 2003-10-17  Havoc Pennington  <hp@redhat.com>
8946
8947         * bus/driver.c (create_unique_client_name): use "." as separator
8948         in base service names instead of '-'
8949
8950         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8951         byte at the end of the string
8952
8953         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8954         optimization macros since string validation seems to be a slow
8955         point.
8956         
8957         * doc/dbus-specification.xml: restrict valid
8958         service/interface/member/error names. Add test suite code for the
8959         name validation.
8960
8961         * dbus/dbus-string.c: limit service/interface/member/error names 
8962         to [0-9][A-Z][a-z]_
8963
8964         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8965         format arg to verbose spew
8966
8967         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8968         memory, return instead of g_error
8969
8970         * test/test-service.c (path_message_func): support emitting a
8971         signal on request
8972
8973         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8974         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8975         assuming the activation bus was the session bus so that services
8976         started manually will still register.
8977         (init_connections_unlocked): fix so that in OOM situation we get
8978         the same semantics when retrying the function
8979         
8980         * test/test-service.c (main): change to use path registration, to
8981         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8982         than DBUS_BUS_SESSION
8983
8984 2003-10-16  Havoc Pennington  <hp@redhat.com>
8985
8986         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8987
8988         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8989         coverage of the tests
8990         (coverage-report.txt): don't move the .da and .bbg files around
8991
8992 2003-10-16  Havoc Pennington  <hp@redhat.com>
8993
8994         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8995         to put there
8996
8997 2003-10-16  Havoc Pennington  <hp@redhat.com>
8998
8999         * bus/connection.c (bus_pending_reply_expired): either cancel or
9000         execute, not both
9001         (bus_connections_check_reply): use unlink, not remove_link, as we
9002         don't want to free the link; fixes double free mess
9003
9004         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9005         where no reply was received
9006
9007         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9008         fix a refcount leak
9009
9010         * bus/signals.c (match_rule_matches): add special cases for the
9011         bus driver, so you can match on sender/destination for it.
9012
9013         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9014         DBUS_PRINT_BACKTRACE is set
9015
9016         * dbus/dbus-internals.c: add pid to assertion failure messages
9017
9018         * dbus/dbus-connection.c: add message type code to the debug spew
9019
9020         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9021         sender=foo not service=foo
9022
9023         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9024         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9025         DBUS_ACTIVATION_ADDRESS instead
9026
9027         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9028         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9029
9030         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9031         context struct
9032
9033         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9034         (dbus_message_iter_get_object_path_array): new function (half
9035         finished, disabled for the moment)
9036         
9037         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9038         DBUS_MESSAGE_TYPE_ERROR
9039
9040         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9041         avoid redirecting stderr to /dev/null
9042         (babysit): close stdin if not doing the "exit_with_session" thing
9043
9044         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9045         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9046         stdout/stdin, so things don't get confused
9047         
9048         * bus/system.conf.in: fix to allow replies, I modified .conf
9049         instead of .conf.in again.
9050
9051 2003-10-14  David Zeuthen  <david@fubar.dk>
9052
9053         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9054         argtype to arg_type when raising unknown arg type exception.
9055         Changed type list to reflect the changes in dbus-protocol.h so 
9056         the bindings actually work.
9057
9058 2003-10-14  Havoc Pennington  <hp@redhat.com>
9059
9060         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9061         to have a bug keeping it from outputting the .da files sometimes
9062         (string_get_string): don't append garbage nul bytes to the string.
9063
9064 2003-10-15  Seth Nickell  <seth@gnome.org>
9065
9066         * python/Makefile.am:
9067
9068         Include dbus_h_wrapper.h in the dist tarball.
9069
9070 2003-10-14  Havoc Pennington  <hp@redhat.com>
9071
9072         * bus/bus.c (bus_context_check_security_policy): revamp this to
9073         work more sanely with new policy-based requested reply setup
9074
9075         * bus/connection.c (bus_transaction_send_from_driver): set bus
9076         driver messages as no reply
9077
9078         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9079         requested_reply attribute on allow/deny rules
9080
9081         * bus/system.conf: add <allow requested_reply="true"/>
9082
9083         * bus/driver.c (bus_driver_handle_message): fix check for replies
9084         sent to the bus driver, which was backward. How did this ever work
9085         at all though? I think I'm missing something.
9086
9087         * dbus/dbus-message.c (decode_header_data): require error and
9088         method return messages to have a reply serial field to be valid
9089         (_dbus_message_loader_queue_messages): break up this function;
9090         validate that reply serial and plain serial are nonzero; 
9091         clean up the OOM/error handling.
9092         (get_uint_field): don't return -1 from this
9093         (dbus_message_create_header): fix signed/unsigned bug
9094
9095         * bus/connection.c (bus_connections_expect_reply): save serial of
9096         the incoming message, not reply serial
9097
9098 2003-10-14  Havoc Pennington  <hp@redhat.com>
9099
9100         * bus/connection.c: implement pending reply tracking using
9101         BusExpireList
9102
9103         * bus/bus.c (bus_context_check_security_policy): verify that a
9104         reply is pending in order to allow a reply to be sent. Deny 
9105         messages of unknown type.
9106
9107         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9108
9109         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9110         (bus_context_get_reply_timeout): new
9111
9112 2003-10-13  Seth Nickell  <seth@gnome.org>
9113
9114         * python/Makefile.am:
9115
9116         Pass "make distcheck": remove a couple files from DIST_FILES
9117         that weren't included in the final version.
9118
9119 2003-10-12  Havoc Pennington  <hp@pobox.com>
9120
9121         Added test code that 1) starts an actual bus daemon and 2) uses
9122         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9123         more testing possible, but this is the basic framework.
9124         
9125         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9126         empty proxy lists from the proxy list hash
9127
9128         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9129         couple of return_if_fail checks
9130
9131         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9132         to allocate, so everything is cleared to NULL as it should be.
9133
9134         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9135         source as data to dbus_connection_set_timeout_functions() as the 
9136         timeout functions expected
9137
9138         * test/glib/run-test.sh: add a little script to start up a message
9139         bus and run tests using it
9140
9141         * tools/dbus-launch.1: updates
9142
9143         * tools/dbus-launch.c (main): add --config-file option
9144
9145         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9146         that could never be reached.
9147
9148         * dbus/dbus-message.c (dbus_message_new_method_return) 
9149         (dbus_message_new_error, dbus_message_new_signal): set the
9150         no-reply-expected flag on all these. Redundant, but may
9151         as well be consistent.
9152
9153 2003-10-11  Havoc Pennington  <hp@pobox.com>
9154
9155         * test/decode-gcov.c (function_solve_graph): make broken block
9156         graph a nonfatal error since it seems to be broken. Need to debug
9157         this.
9158
9159         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9160         can't just check type > INVALID < LAST anymore
9161
9162         * dbus/dbus-message.c (dbus_message_get_signature): new function
9163         (dbus_message_has_signature): new function
9164         (struct DBusMessage): add signature field (right now it isn't sent
9165         over the wire, just generated on the fly)
9166         (dbus_message_copy): copy the signature, and init strings to
9167         proper length to avoid some reallocs
9168         (dbus_message_iter_init_array_iterator): return void, since it
9169         can't fail
9170         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9171         (_dbus_message_loader_queue_messages): add silly temporary hack to
9172         fill in message->signature on load
9173
9174         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9175         characters, so they are relatively human-readable.
9176
9177 2003-10-11  Havoc Pennington  <hp@pobox.com>
9178
9179         * dbus/dbus-message.c (_dbus_message_test): add more test
9180         coverage, but #if 0 for now since they uncover a bug 
9181         not fixed yet; I think in re_align_field_recurse()
9182         (re_align_field_recurse): add FIXME about broken assertion
9183
9184         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9185
9186         * bus/connection.c: share a couple code bits with expirelist.c
9187
9188         * bus/expirelist.h, bus/expirelist.c: implement a generic
9189         expire-items-after-N-seconds facility, was going to share between
9190         expiring connections and replies, decided not to use for expiring
9191         connections for now.
9192
9193         * COPYING: include AFL 2.0 (still need to change all the file headers)
9194
9195 2003-10-09  Havoc Pennington  <hp@redhat.com>
9196
9197         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9198         gcc 3.3. Not that we do anything about it yet.
9199
9200         * bus/signals.c (bus_match_rule_parse): impose max length on the
9201         match rule text
9202
9203         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9204
9205 2003-10-09  Havoc Pennington  <hp@redhat.com>
9206
9207         Make matching rules theoretically work (add parser).
9208         
9209         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9210         the case where destination is explicitly specified as bus driver
9211         and someone else is eavesdropping.
9212         
9213         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9214         definition of eavesdropping and assertion
9215
9216         * tools/dbus-send.c (main): use dbus_message_type_from_string
9217
9218         * bus/signals.c (bus_match_rule_parse): implement
9219
9220         * dbus/dbus-message.c (dbus_message_type_from_string): new
9221
9222         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9223
9224 2003-10-02  Havoc Pennington  <hp@pobox.com>
9225
9226         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9227         dbus_gproxy_oneway_call
9228
9229         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9230         (dbus_server_setup_with_g_main): fix to allow calling them more
9231         than once on the same args
9232         (dbus_bus_get_with_g_main): new function
9233
9234 2003-10-02  Havoc Pennington  <hp@redhat.com>
9235
9236         * doc/dbus-tutorial.xml: write some stuff
9237
9238 2003-09-29  Havoc Pennington  <hp@pobox.com>
9239
9240         * configure.in: split checks for Doxygen from XML docs, check for
9241         xmlto
9242
9243         * doc/Makefile.am: XML-ify all the docs, and add a blank
9244         dbus-tutorial.xml
9245
9246 2003-09-29  Havoc Pennington  <hp@pobox.com>
9247
9248         * Merge dbus-object-names branch. To see the entire patch 
9249         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9250         it's huuuuge though.
9251         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9252         
9253 2003-09-28  Havoc Pennington  <hp@pobox.com>
9254
9255         * HACKING: update to reflect new server
9256
9257 2003-09-26  Seth Nickell  <seth@gnome.org>
9258
9259         * python/dbus.py:
9260         * python/examples/example-signals.py:
9261
9262         Start implementing some notions of signals. The API
9263         is really terrible, but they sort of work (with the
9264         exception of being able to filter by service, and to
9265         transmit signals *as* a particular service). Need to
9266         figure out how to make messages come from the service
9267         we registered :-(
9268         
9269         * python/dbus_bindings.pyx.in:
9270
9271         Removed duplicate message_handler callbacks.
9272         
9273 2003-09-25  Havoc Pennington  <hp@redhat.com>
9274
9275         * bus/session.conf.in: fix my mess
9276
9277 2003-09-25  Havoc Pennington  <hp@pobox.com>
9278
9279         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9280
9281 2003-09-25  Seth Nickell  <seth@gnome.org>
9282
9283         * python/examples/example-service.py:
9284
9285         Johan notices complete wrong code in example-service, but
9286         completely wrong in a way that works exactly the same (!).
9287         Johan is confused, how could this possibly work? Example
9288         code fails to serve purpose of making things clear.
9289         Seth fixes.
9290
9291 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9292
9293         * doc/dbus-specification.sgml: don't require header fields
9294         to be 4-byte aligned and specify that fields should be
9295         distinguished from padding by the fact that zero is not
9296         a valid field name.
9297         
9298         * doc/TODO: remove re-alignment item and add item to doc
9299         the OBJECT_PATH type.
9300         
9301         * dbus/dbus-message.c:
9302         (HeaderField): rename the original member to value_offset
9303         and introduce a name_offset member to keep track of where
9304         the field actually begins.
9305         (adjust_field_offsets): remove.
9306         (append_int_field), (append_uint_field),
9307         (append_string_field): don't align the start of the header
9308         field to a 4-byte boundary.
9309         (get_next_field): impl finding the next marhsalled field
9310         after a given field.
9311         (re_align_field_recurse): impl re-aligning a number of
9312         already marshalled fields.
9313         (delete_field): impl deleting a field of any type and
9314         re-aligning any following fields.
9315         (delete_int_or_uint_field), (delete_string_field): remove.
9316         (set_int_field), (set_uint_field): no need to re-check
9317         that we have the correct type for the field.
9318         (set_string_field): ditto and impl re-aligning any
9319         following fields.
9320         (decode_header_data): update to take into account that
9321         the fields aren't 4-byte aligned any more and the new
9322         way to distinguish padding from header fields. Also,
9323         don't exit when there is too much header padding.
9324         (process_test_subdir): print the directory.
9325         (_dbus_message_test): add test to make sure a following
9326         field is re-aligned correctly after field deletion.
9327         
9328         * dbus/dbus-string.[ch]:
9329         (_dbus_string_insert_bytes): rename from insert_byte and
9330         allow the insert of multiple bytes.
9331         (_dbus_string_test): test inserting multiple bytes.
9332
9333         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9334         warning note to docs about having to re-align any
9335         marshalled values following the string.
9336         
9337         * dbus/dbus-message-builder.c:
9338         (append_string_field), (_dbus_message_data_load):
9339         don't align the header field.
9340         
9341         * dbus/dbus-auth.c: (process_test_subdir): print the
9342         directory.
9343         
9344         * test/break-loader.c: (randomly_add_one_byte): upd. for
9345         insert_byte change.
9346         
9347         * test/data/invalid-messages/bad-header-field-alignment.message:
9348         new test case.
9349         
9350         * test/data/valid-messages/unknown-header-field.message: shove
9351         a dict in the unknown field.
9352
9353 2003-09-25  Seth Nickell  <seth@gnome.org>
9354
9355         * python/dbus.py:
9356         * python/dbus_bindings.pyx.in:
9357
9358         Handle return values.
9359         
9360         * python/examples/example-client.py:
9361         * python/examples/example-service.py:
9362
9363         Pass back return values from the service to the client.
9364         
9365 2003-09-24  Seth Nickell  <seth@gnome.org>
9366
9367         * python/dbus.py:
9368
9369         Connect Object methods (when you are sharing an object) up... pass
9370         in a list of methods to be shared. Sharing all the methods just
9371         worked out too weird. You can now create nice Services over the
9372         DBus in Python. :-)
9373         
9374         * python/dbus_bindings.pyx.in:
9375
9376         Keep references to user_data tuples passed into C functions so 
9377         Python doesn't garbage collect on us.
9378
9379         Implement MethodReturn and Error subclasses of Message for creating
9380         DBusMessage's of those types.
9381         
9382         * python/examples/example-client.py:
9383         * python/examples/example-service.py:
9384
9385         Simple example code showing both how create DBus services and objects,
9386         and how to use them.
9387
9388 2003-09-23  Havoc Pennington  <hp@pobox.com>
9389
9390         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9391
9392 2003-09-23  Havoc Pennington  <hp@redhat.com>
9393
9394         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9395         (dbus_gproxy_disconnect_signal): implement
9396         (dbus_gproxy_manager_remove_signal_match): implement
9397         (dbus_gproxy_manager_add_signal_match): implement
9398         (dbus_gproxy_oneway_call): implement
9399
9400 2003-09-23  Havoc Pennington  <hp@pobox.com>
9401
9402         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9403         subclass. This means dropping the transparent thread safety of the
9404         proxy; you now need a separate proxy per-thread, or your own
9405         locking on the proxy. Probably right anyway.
9406         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9407
9408 2003-09-22  Havoc Pennington  <hp@redhat.com>
9409
9410         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9411
9412 2003-09-21  Seth Nickell  <seth@gnome.org>
9413
9414         First checkin of the Python bindings.
9415         
9416         * python/.cvsignore:
9417         * python/Makefile.am:
9418         * python/dbus_bindings.pyx.in:
9419         * python/dbus_h_wrapper.h:
9420
9421         Pieces for Pyrex to operate on, building a dbus_bindings.so
9422         python module for low-level access to the DBus APIs.
9423         
9424         * python/dbus.py:
9425
9426         High-level Python module for accessing DBus objects.
9427
9428         * configure.in:
9429         * Makefile.am:
9430
9431         Build stuff for the python bindings.
9432
9433         * acinclude.m4:
9434
9435         Extra macro needed for finding the Python C header files.
9436
9437 2003-09-21  Havoc Pennington  <hp@pobox.com>
9438
9439         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9440         implementing the proxy manager, didn't get very far.
9441
9442         * dbus/dbus-bus.c (dbus_bus_add_match): new
9443         (dbus_bus_remove_match): new
9444
9445         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9446         path_name argument; adjust the other not-yet-implemented 
9447         gproxy constructors to be what I think they should be.
9448
9449 2003-09-21  Havoc Pennington  <hp@pobox.com>
9450
9451         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9452         by default for message bus connections.
9453
9454         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9455         exit_on_disconnect flag is set and we process the disconnected
9456         signal.
9457         (dbus_connection_set_exit_on_disconnect): new function
9458
9459 2003-09-21  Havoc Pennington  <hp@pobox.com>
9460
9461         Get matching rules mostly working in the bus; only actually
9462         parsing the rule text remains. However, the client side of
9463         "signal connections" hasn't been started, this patch is only the
9464         bus side.
9465         
9466         * dbus/dispatch.c: fix for the matching rules changes
9467         
9468         * bus/driver.c (bus_driver_handle_remove_match)
9469         (bus_driver_handle_add_match): send an ack reply from these
9470         method calls
9471
9472         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9473         arguments, reported by Seth Nickell
9474
9475         * bus/config-parser.c (append_rule_from_element): support
9476         eavesdrop=true|false attribute on policies so match rules 
9477         can be prevented from snooping on the system bus.
9478
9479         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9480         and "destination" in attribute names; fix some docs bugs; 
9481         add eavesdrop=true|false attribute
9482
9483         * bus/driver.c (bus_driver_handle_add_match)
9484         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9485         messages
9486
9487         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9488         rid of broadcast service concept, signals are just always broadcast
9489
9490         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9491         mostly implement matching rules stuff (currently only exposed as signal
9492         connections)
9493
9494 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9495
9496         * doc/dbus-specification.sgml: Change the header field name
9497         to be an enum and update the rest of the spec to reference
9498         the fields using the conventinal name.
9499
9500         * dbus/dbus-protocol.h: update to reflect the spec.
9501
9502         * doc/TODO: add item to remove the 4 byte alignment requirement.
9503         
9504         * dbus/dbus-message.c: Remove the code to generalise the
9505         header/body length and serial number header fields as named
9506         header fields so we can reference field names using the 
9507         protocol values.
9508         (append_int_field), (append_uint_field), (append_string_field):
9509         Append the field name as a byte rather than four chars.
9510         (delete_int_or_uint_field), (delete_string_field): reflect the
9511         fact that the field name and typecode now occupy 4 bytes instead
9512         of 8.
9513         (decode_string_field), (decode_header_data): update to reflect
9514         protocol changes and move the field specific encoding from
9515         decode_string_field() back into decode_header_data().
9516         
9517         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9518         Add utility to aid debugging.
9519         
9520         * dbus/dbus-message-builder.c:
9521         (append_string_field), (_dbus_message_data_load): Update to
9522         reflect protocol changes; Change the FIELD_NAME directive
9523         to HEADER_FIELD and allow it to take the field's conventional
9524         name rather than the actual value.
9525         
9526         * test/data/*/*.message: Update to use HEADER_FIELD instead
9527         of FIELD_NAME; Always align the header on an 8 byte boundary
9528         *before* updating the header length.
9529
9530 2003-09-15  Havoc Pennington  <hp@pobox.com>
9531
9532         * dbus/dbus-pending-call.c: add the get/set object data
9533         boilerplate as for DBusConnection, etc. Use generic object data
9534         for the notify callback.
9535
9536         * glib/dbus-gparser.c (parse_node): parse child nodes
9537
9538         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9539         
9540         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9541         contain functions shared between the convenience lib and the
9542         installed lib
9543
9544         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9545         -export-symbols-regex to the GLib library
9546
9547         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9548         fix the locking in here, and add a default handler for
9549         Introspect() that just returns sub-nodes.
9550
9551 2003-09-14  Havoc Pennington  <hp@pobox.com>
9552
9553         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9554         rather than gfoo consistent
9555
9556         * glib/dbus-gproxy.h: delete for now, move contents to
9557         dbus-glib.h, because the include files don't work right since we
9558         aren't in the dbus/ subdir.
9559         
9560         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9561         (dbus_gproxy_end_call): finish
9562         (dbus_gproxy_begin_call): finish
9563
9564         * glib/dbus-gmain.c (dbus_set_g_error): new
9565
9566         * glib/dbus-gobject.c (handle_introspect): include information
9567         about child nodes in the introspection
9568
9569         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9570         function to help in implementation of introspection
9571
9572         * dbus/dbus-object-tree.c
9573         (_dbus_object_tree_list_registered_and_unlock): new function
9574
9575 2003-09-12  Havoc Pennington  <hp@pobox.com>
9576
9577         * glib/dbus-gidl.h: add common base class for all the foo_info
9578         types
9579
9580         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9581         similar to kdcop
9582
9583         * test/Makefile.am: try test srcdir -ef . in addition to test
9584         srcdir = ., one of them should work (yeah lame)
9585         
9586         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9587         library
9588         
9589         * glib/dbus-gparser.h: make description_load routines return
9590         NodeInfo* not Parser*
9591
9592         * Makefile.am (SUBDIRS): build test dir after all library dirs
9593
9594         * configure.in: add GTK+ detection
9595
9596 2003-09-07  Havoc Pennington  <hp@pobox.com>
9597
9598         * Make Doxygen contented.
9599
9600 2003-09-07  Havoc Pennington  <hp@pobox.com>
9601
9602         * doc/dbus-specification.sgml: more updates
9603
9604 2003-09-06  Havoc Pennington  <hp@pobox.com>
9605
9606         * doc/dbus-specification.sgml: partial updates
9607
9608         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9609         zillionth time; hopefully I edited the right file this time.
9610
9611         * bus/config-parser.c (append_rule_from_element): support
9612         send_type, send_path, receive_type, receive_path
9613
9614         * bus/policy.c: add message type and path to the list of things
9615         that can be "firewalled"
9616
9617 2003-09-06  Havoc Pennington  <hp@pobox.com>
9618
9619         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9620         (dbus_connection_register_object_path): make this not handle
9621         messages to paths below the given path
9622
9623 2003-09-03  Havoc Pennington  <hp@pobox.com>
9624
9625         * test/glib/Makefile.am: add this with random glib-linked test
9626         programs
9627
9628         * glib/Makefile.am: remove the random test programs from here,
9629         leave only the unit tests
9630
9631         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9632         uscore/javacaps conversion, and fix     
9633         (get_object_property, set_object_property): change to .NET
9634         convention for mapping props to methods, set_FooBar/get_FooBar, 
9635         since one language has such a convention we may as well copy it. 
9636         Plus real methods in either getFooBar or get_foo_bar style won't 
9637         collide with this convention.
9638
9639 2003-09-01  Havoc Pennington  <hp@pobox.com>
9640
9641         * glib/dbus-gparser.c: implement
9642
9643         * glib/dbus-gobject.c: start implementing skeletons support
9644
9645         * configure.in: when disabling checks/assert, also define
9646         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9647
9648 2003-09-01  Havoc Pennington  <hp@pobox.com>
9649
9650         * glib/Makefile.am: rearrange a bunch of files and get "make
9651         check" framework set up
9652
9653 2003-08-31  Havoc Pennington  <hp@pobox.com>
9654
9655         * fix build with --disable-tests
9656
9657 2003-08-30  Havoc Pennington  <hp@pobox.com>
9658
9659         * dbus/dbus-connection.c: purge DBusMessageHandler
9660
9661         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9662         use callbacks everywhere
9663
9664 2003-08-30  Havoc Pennington  <hp@pobox.com>
9665
9666         * test/data/valid-config-files/system.d/test.conf: change to 
9667         root for the user so warnings don't get printed
9668
9669         * dbus/dbus-message.c: add dbus_message_get_path,
9670         dbus_message_set_path
9671         
9672         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9673         dispatching to a path
9674
9675         * dbus/dbus-string.c (_dbus_string_validate_path): add
9676
9677         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9678         (_dbus_marshal_object_path): implement
9679
9680         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9681         to contain the path to the target object
9682         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9683         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9684
9685 2003-08-30  Havoc Pennington  <hp@pobox.com>
9686
9687         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9688
9689 2003-08-29  Havoc Pennington  <hp@pobox.com>
9690
9691         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9692         registered
9693         (struct DBusObjectSubtree): shrink this
9694         a lot, since we may have a lot of them
9695         (_dbus_object_tree_free_all_unlocked): implement
9696         (_dbus_object_tree_dispatch_and_unlock): implement
9697
9698 2003-08-29  Havoc Pennington  <hp@pobox.com>
9699
9700         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9701
9702 2003-08-28  Havoc Pennington  <hp@pobox.com>
9703
9704         purge DBusObjectID
9705         
9706         * dbus/dbus-connection.c: port to no ObjectID, create a
9707         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9708
9709         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9710         everything except UnregisterFunction and MessageFunction
9711         
9712         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9713         add DBUS_TYPE_OBJECT_PATH
9714         
9715         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9716         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9717         path-based object IDs
9718
9719 2003-08-25  Havoc Pennington  <hp@pobox.com>
9720
9721         Just noticed that dbus_message_test is hosed, I wonder when I
9722         broke that. I thought make check was passing earlier...
9723         
9724         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9725         container tree, will replace most of dbus-object-registry
9726
9727         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9728         screwup
9729
9730 2003-08-19  Havoc Pennington  <hp@pobox.com>
9731
9732         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9733         (dbus_message_is_error): fix this function
9734
9735         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9736         match
9737
9738         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9739         reflect clarified man page
9740         (bus_client_policy_check_can_send): ditto
9741         
9742         * bus/session.conf.in: fixup
9743
9744         * bus/system.conf.in: fixup
9745
9746 2003-08-18  Havoc Pennington  <hp@redhat.com>
9747
9748         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9749
9750         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9751         dumb bug created earlier (wrong order of args to
9752         decode_header_data())
9753         
9754         * tools/dbus-send.c: port
9755
9756         * tools/dbus-print-message.c (print_message): port
9757
9758         * test/data/*messages: port all messages over
9759         
9760         * dbus/dbus-message-builder.c: support including 
9761         message type
9762         
9763         * bus/driver.c: port over
9764         
9765         * bus/dispatch.c: port over to new stuff
9766
9767         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9768         rename disconnect signal to "Disconnected"
9769
9770 2003-08-17  Havoc Pennington  <hp@pobox.com>
9771
9772         This doesn't compile yet, but syncing up so I can hack on it from
9773         work. What are branches for if not broken code? ;-)
9774         
9775         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9776         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9777         DBUS_HEADER_FIELD_ERROR_NAME
9778         
9779         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9780         for the interface+member pairs
9781         (string_hash): change to use g_str_hash algorithm
9782         (find_direct_function, find_string_function): refactor these to
9783         share most code.
9784         
9785         * dbus/dbus-message.c: port all of this over to support 
9786         interface/member fields instead of name field
9787
9788         * dbus/dbus-object-registry.c: port over
9789         
9790         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9791         from _dbus_string_validate_name
9792
9793         * bus/dbus-daemon-1.1: change file format for the 
9794         <deny>/<allow> stuff to match new message naming scheme
9795
9796         * bus/policy.c: port over
9797
9798         * bus/config-parser.c: parse new format
9799         
9800 2003-08-16  Havoc Pennington  <hp@pobox.com>
9801
9802         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9803         broken assertion
9804
9805         * glib/dbus-gproxy.c: some hacking
9806
9807 2003-08-15  Havoc Pennington  <hp@redhat.com>
9808
9809         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9810
9811         * dbus/dbus-connection.c
9812         (dbus_connection_send_with_reply_and_block): factor out internals;
9813         change to convert any error replies to DBusError instead of 
9814         returning them as a message
9815
9816 2003-08-15  Havoc Pennington  <hp@pobox.com>
9817
9818         * dbus/dbus-connection.c, 
9819         dbus/dbus-pending-call.c: Finish the pending call stuff
9820
9821 2003-08-14  Havoc Pennington  <hp@redhat.com>
9822
9823         * dbus/dbus-pending-call.c: start on new object that will replace
9824         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9825         replies
9826
9827         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9828         with remote interfaces
9829
9830         * dbus/dbus-gidl.c: do the boring boilerplate in here
9831         
9832 2003-08-12  Havoc Pennington  <hp@pobox.com>
9833
9834         * bus/dispatch.c (bus_dispatch): make this return proper 
9835         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9836
9837         * dbus/dbus-errors.c (dbus_set_error): use
9838         _dbus_string_append_printf_valist
9839
9840         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9841         (_dbus_string_append_printf): new
9842
9843         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9844         UNKNOWN_METHOD
9845
9846         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9847         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9848         message is unhandled.
9849
9850 2003-08-11  Havoc Pennington  <hp@pobox.com>
9851
9852         * bus/test.c (client_disconnect_handler): change to return
9853         HANDLED (would have been REMOVE_MESSAGE)
9854
9855         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9856         HANDLED/NOT_YET_HANDLED instead of
9857         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9858         should be used.
9859
9860 2003-08-10  Havoc Pennington  <hp@pobox.com>
9861
9862         * tools/dbus-send.c (main): add --type argument, for now
9863         supporting only method_call and signal types.
9864
9865         * tools/dbus-print-message.c: print message type
9866
9867         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9868         init connection->objects
9869
9870         * doc/dbus-specification.sgml: fix sgml
9871
9872         * bus/*.c: port over to object-instance API changes
9873
9874         * test/test-service.c: ditto
9875         
9876         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9877         name, we will have to fix up the rest of the code to also handle
9878         this
9879         (dbus_message_new): generic message-creation call
9880         (set_string_field): allow appending name field
9881
9882 2003-08-06  Havoc Pennington  <hp@pobox.com>
9883
9884         * dbus/dbus-object-registry.c: implement signal connection 
9885         and dispatch
9886
9887         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9888
9889         * dbus/dbus-internals.c (_dbus_memdup): new function
9890
9891 2003-08-02  Havoc Pennington  <hp@pobox.com>
9892
9893         * dbus/dbus-message.c (dbus_message_get_no_reply)
9894         (dbus_message_set_no_reply): add these and remove
9895         set_is_error/get_is_error
9896
9897         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9898         remove the ERROR flag, since there's now an ERROR type
9899
9900 2003-08-01  Havoc Pennington  <hp@pobox.com>
9901
9902         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9903         implement
9904
9905         * dbus/dbus-message.c (dbus_message_get_type): new function
9906
9907         * doc/dbus-specification.sgml: add "type" byte to messages
9908
9909 2003-08-01  Havoc Pennington  <hp@pobox.com>
9910
9911         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9912         a message type enum to distinguish kinds of message
9913         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9914         that need not be replied to
9915
9916 2003-08-01  Havoc Pennington  <hp@pobox.com>
9917
9918         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9919         (unpack_8_octets): fix no-64-bit-int bug
9920
9921         * dbus/dbus-object-registry.c (validate_id): validate the 
9922         connection ID bits, not just the instance ID.
9923
9924         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9925         the connection-global 33 bits of the object ID
9926
9927         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9928         object ID in the new way
9929
9930         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9931         define server/client/instance bits.
9932
9933 2003-07-30  Havoc Pennington  <hp@pobox.com>
9934
9935         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9936         build
9937
9938 2003-07-13  Havoc Pennington  <hp@pobox.com>
9939
9940         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9941         fields to DBusObjectVTable and DBusObjectInfo
9942
9943 2003-07-12  Havoc Pennington  <hp@pobox.com>
9944
9945         * dbus/dbus-object-registry.c: implement unit test,
9946         fix bugs discovered in process
9947
9948         * dbus/dbus-connection.c: remove handler_table and
9949         register_handler(), add DBusObjectRegistry usage
9950
9951         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9952         (dbus_object_id_set_null): new functions
9953
9954 2003-07-08  Havoc Pennington  <hp@pobox.com>
9955
9956         * dbus/dbus-object.c: implement some of this
9957
9958         * dbus/dbus-object-registry.c
9959         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9960         param
9961         (_dbus_object_registry_new): handle OOM
9962
9963 2003-07-08  Havoc Pennington  <hp@pobox.com>
9964
9965         * dbus/dbus-object.h: sketch out an API for registering objects
9966         with a connection, that allows us to use as little as 24 bytes
9967         per object and lets application code represent an object in 
9968         any conceivable way.
9969
9970         * dbus/dbus-object-registry.c: implement the hard bits of the
9971         DBusConnection aspect of object API. Not yet wired up.
9972         
9973 2003-07-06  Havoc Pennington  <hp@pobox.com>
9974
9975         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9976         (_dbus_marshal_object_id): new
9977         (_dbus_demarshal_object_id): new
9978         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9979         consolidate identical switch cases. Don't conditionalize handling
9980         of DBUS_TYPE_UINT64, need to handle the type always.
9981         (_dbus_marshal_validate_arg): consolidate identical cases, and
9982         handle DBUS_TYPE_OBJECT_ID
9983
9984         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9985
9986         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9987
9988 2003-09-28  Havoc Pennington  <hp@pobox.com>
9989
9990         * real 0.13 release
9991
9992 2003-09-28  Havoc Pennington  <hp@pobox.com>
9993
9994         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9995         to work with Debian db2html
9996
9997 2003-09-28  Havoc Pennington  <hp@pobox.com>
9998
9999         * configure.in: 0.13
10000
10001         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10002         stylesheet-images for benefit of Debian
10003         
10004         Change back to using filesystem-linked sockets for the system
10005         bus, so only root can create the default system bus address.
10006         
10007         * bus/system.conf.in: change to use
10008         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10009
10010         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10011         from here.
10012
10013         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10014         here, and AC_DEFINE DBUS_SYSTEM_PATH
10015
10016 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10017
10018         * doc/TODO:
10019         * doc/busconfig.dtd:
10020         Add busconfig DTD.
10021         
10022 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10023
10024         * doc/dbus-specification.sgml:
10025         Add activation reply values.
10026         
10027 2003-08-05  Havoc Pennington  <hp@redhat.com>
10028
10029         * configure.in: 0.12
10030
10031 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10032
10033         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10034         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10035         (add_watch), (remove_watch), (create_source):
10036         Refcount fds, fixes some reentrancy issues.
10037         
10038 2003-07-30  Havoc Pennington  <hp@redhat.com>
10039
10040         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10041         bus address to be abstract if we have abstract sockets
10042
10043         * NEWS: update
10044
10045 2003-07-28  Havoc Pennington  <hp@redhat.com>
10046
10047         * bus/messagebus.in: fix to avoid processname/servicename 
10048         confusion, from Michael Kearey
10049         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10050         
10051 2003-07-23  Havoc Pennington  <hp@pobox.com>
10052
10053         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10054         fix from Andy Hanton to remove broken "+1"
10055
10056 2003-07-16  Havoc Pennington  <hp@pobox.com>
10057
10058         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10059         babysitter process, as suggested by Thomas Leonard, so 
10060         an "eval `dbus-launch --exit-with-session`" will actually 
10061         return
10062
10063 2003-07-16  Havoc Pennington  <hp@pobox.com>
10064
10065         * configure.in: print out EXPANDED_* variables in the summary at
10066         the end; clean up the code that computes EXPANDED_ variables and
10067         get the ones using exec_prefix right. Should make things work
10068         when you build without --prefix
10069
10070 2003-06-29  Havoc Pennington  <hp@pobox.com>
10071
10072         * mono/Test.cs (class Test): fire up a main loop and run it
10073
10074         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10075         done once, the app has to do it
10076
10077 2003-06-26  Havoc Pennington  <hp@pobox.com>
10078
10079         * mono/Connection.cs: set up connection with the glib main loop
10080
10081 2003-07-01  Havoc Pennington  <hp@redhat.com>
10082
10083         * doc/dbus-specification.sgml: clarify the format of a type code,
10084         change suggested by Jim Blandy
10085
10086 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10087
10088         * doc/Makefile.am:
10089         * tools/Makefile.am: Don't assume srcdir == builddir.
10090
10091         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10092         the allocated block.
10093         (_dbus_memory_test): New function.
10094         * dbus/dbus-test.h: Add _dbus_memory_test ().
10095         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10096
10097         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10098         of %c%c%c%c.
10099         (dbus_message_new): Remove obsolete @todo.
10100
10101         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10102         (_dbus_marshal_set_uint64): Fix comment.
10103
10104         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10105         hardcode FIELD_REPLY_SERIAL.
10106
10107         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10108         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10109
10110         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10111         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10112
10113 2003-06-24  Havoc Pennington  <hp@pobox.com>
10114
10115         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10116
10117 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10118
10119         * configure.in:
10120         * gcj/.cvsignore:
10121         * gcj/Hello.java:
10122         * gcj/Makefile.am:
10123         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10124         * gcj/org/.cvsignore:
10125         * gcj/org/Makefile.am:
10126         * gcj/org/freedesktop/.cvsignore:
10127         * gcj/org/freedesktop/Makefile.am:
10128         * gcj/org/freedesktop/dbus/.cvsignore:
10129         * gcj/org/freedesktop/dbus/Makefile.am:
10130         * gcj/org/freedesktop/dbus/Message.java: (Message),
10131         (Message.Message):
10132         * gcj/org/freedesktop/dbus/natMessage.cc:
10133         Fix the build system.
10134
10135 2003-06-22  Havoc Pennington  <hp@pobox.com>
10136
10137         * mono/Connection.cs: add more bindings
10138
10139         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10140         more than once.
10141
10142 2003-06-22  Havoc Pennington  <hp@pobox.com>
10143
10144         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10145         Start wrapping more stuff.
10146
10147 2003-06-22  Havoc Pennington  <hp@pobox.com>
10148
10149         * mono/Message.cs: implement Message.Wrap() that ensures we only
10150         have a single C# wrapper per DBusMessage, assuming it works which
10151         it probably doesn't.
10152
10153         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10154         (dbus_message_free_data_slot): new
10155         (dbus_message_set_data): new
10156         (dbus_message_get_data): new
10157
10158 2003-06-22  Havoc Pennington  <hp@pobox.com>
10159
10160         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10161         (_dbus_data_slot_allocator_alloc): rework these to keep a
10162         reference count on each slot and automatically manage a global
10163         slot ID variable passed in by address
10164
10165         * bus/bus.c: convert to new dataslot API
10166
10167         * dbus/dbus-bus.c: convert to new dataslot API
10168
10169         * dbus/dbus-connection.c: convert to new dataslot API
10170
10171         * dbus/dbus-server.c: convert to new dataslot API
10172
10173         * glib/dbus-gmain.c: ditto
10174
10175         * bus/test.c: ditto
10176
10177         * bus/connection.c: ditto
10178
10179 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10180
10181         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10182         after the gcj checks so that the correct configuration tags
10183         will be added to libtool.
10184
10185         * dbus-glib-1.pc.in: No need to specify any includes since
10186         dbus-1.pc.in has those.
10187
10188 2003-06-22  Havoc Pennington  <hp@pobox.com>
10189
10190         * mono/*, gcj/*, configure.in, Makefile.am:
10191         Check in makefiles and subdirs for mono and gcj bindings.
10192         Neither binding actually exists, just trying to get through
10193         all the build and other boring bits.
10194
10195 2003-06-21  Philip Blundell  <philb@gnu.org>
10196
10197         * tools/dbus-monitor.1: Updated.
10198
10199         * tools/dbus-send.1: Likewise.
10200
10201 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10202
10203         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10204         for hangup and error after checking read so we won't discard
10205         pending data if both hangup and read are set.
10206
10207 2003-06-19  Philip Blundell  <philb@gnu.org>
10208
10209         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10210
10211         * tools/dbus-send.c: Accept both --system and --session.
10212
10213         * tools/dbus-monitor.c: Same here.
10214
10215 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10216
10217         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10218         from C++ (Patch by Miloslav Trmac).
10219
10220 2003-06-15  Joe Shaw  <joe@assbarn.com>
10221
10222         * configure.in: Check for socklen_t.
10223
10224         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10225
10226         * test/test-segfault.c: Add #include <sys/time.h>
10227
10228         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10229         dbus-launch needs it.
10230
10231 2003-06-09  Havoc Pennington  <hp@redhat.com>
10232
10233         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10234         SUN_LEN, it breaks abstract socket usage
10235
10236         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10237         starts of lines.
10238
10239 2003-06-04  Havoc Pennington  <hp@pobox.com>
10240
10241         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10242         using unix:abstract=/foo, and when listening in a tmpdir
10243         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10244
10245         * dbus/dbus-transport.c (_dbus_transport_open): support
10246         unix:abstract=/foo
10247
10248         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10249         support abstract sockets
10250
10251         * dbus/dbus-transport-unix.c
10252         (_dbus_transport_new_for_domain_socket): support abstract sockets
10253
10254         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10255         toggle as an argument, implement abstract namespace support
10256         (_dbus_listen_unix_socket): ditto
10257
10258         * configure.in: add --enable-abstract-sockets and implement
10259         a configure check for autodetection of the right value.
10260
10261 2003-06-01  Havoc Pennington  <hp@pobox.com>
10262
10263         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10264         in /tmp (though on Linux this will end up being useless,
10265         when we add abstract namespace support)
10266
10267         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10268         subst'ing it
10269
10270 2003-05-28  Colin Walters  <walters@verbum.org>
10271
10272         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10273
10274 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10275
10276         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10277
10278 2003-05-17  Colin Walters  <walters@gnu.org>
10279
10280         * tools/dbus-send.c: Don't exit with an error code if --help was
10281         passed.  Default to using the session bus instead of the system
10282         one.
10283
10284         * tools/dbus-launch.c: Ditto.
10285
10286         * tools/dbus-monitor.c: Ditto.
10287
10288         * tools/dbus-send.1: Update with new arguments.
10289
10290         * tools/dbus-launch.c: Emit code to export variables.  New
10291         arguments -s and -c to specify shell syntax, and a bit of code to
10292         autodetect syntax.  Also, allow specifying a program to run.
10293
10294         * tools/dbus-launch.1: Update with new arguments.
10295
10296         * tools/dbus-send.1: Ditto.
10297
10298         * tools/dbus-monitor.1: Ditto.
10299
10300 2003-05-17  Havoc Pennington  <hp@pobox.com>
10301
10302         * bus/config-parser.c (merge_included): merge in policies from
10303         child configuration file.
10304
10305         * bus/policy.c (bus_policy_merge): function to merge two policies
10306         together
10307
10308 2003-05-16  Havoc Pennington  <hp@redhat.com>
10309
10310         * dbus/dbus-connection.c: disable verbose lock spew
10311
10312         * tools/dbus-send.c: add --print-reply command line option
10313
10314         * tools/dbus-print-message.h (print_message): new util function
10315         shared by dbus-send and dbus-monitor
10316
10317         * tools/dbus-monitor.c (handler_func): exit on disconnect
10318
10319         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10320         disconnected, don't try to use the read_watch
10321
10322         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10323         so we can find this bug more easily
10324
10325 2003-05-16  Havoc Pennington  <hp@redhat.com>
10326
10327         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10328         NULL as DBusHashTable is annoyingly likely to do.
10329
10330 2003-05-16  Colin Walters  <walters@verbum.org>
10331
10332         * tools/dbus-monitor.c: Add --session argument and usage()
10333         function.
10334
10335         * tools/dbus-monitor.1: Update with new --session arg.
10336
10337         * bus/Makefile.am (install-data-hook): Create
10338         $(libdir)/dbus-1.0/services so that the session bus is happy.
10339
10340 2003-05-15  Havoc Pennington  <hp@redhat.com>
10341
10342         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10343         on non-x86. ifdef's are evil.
10344
10345 2003-05-15  Havoc Pennington  <hp@redhat.com>
10346
10347         * configure.in: 0.11
10348
10349         * NEWS: update
10350
10351         * bus/Makefile.am (initddir): apparently we are supposed to put
10352         init scripts in /etc/rc.d/init.d not /etc/init.d
10353
10354         * bus/Makefile.am: remove the "you must --enable-tests to make
10355         check" as it broke distcheck
10356
10357         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10358
10359 2003-05-13  James Willcox  <jwillcox@gnome.org>
10360
10361         * configure.in:
10362         * bus/activation.c: (bus_activation_service_created),
10363         (bus_activation_activate_service):
10364         * bus/driver.c: (bus_driver_send_service_deleted),
10365         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10366         (bus_driver_send_service_acquired),
10367         (bus_driver_send_welcome_message),
10368         (bus_driver_handle_list_services):
10369         * bus/session.conf.in:
10370         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10371         (dbus_bus_service_exists), (dbus_bus_activate_service):
10372         * dbus/dbus-bus.h:
10373
10374         Add some convenience API which lets you activate a service, and did a
10375         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10376         and dbus_message_get_args()
10377
10378 2003-05-11  Havoc Pennington  <hp@pobox.com>
10379
10380         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10381         calling _dbus_marshal_validate_arg() for every byte in a byte
10382         array, etc.
10383
10384         * dbus/dbus-message-handler.c: use atomic reference counting to
10385         reduce number of locks slightly; the global lock in here sucks
10386
10387         * dbus/dbus-connection.c
10388         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10389         update_dispatch_status that can be called with lock held; then use
10390         in a couple places to reduce locking/unlocking
10391         (dbus_connection_send): hold the lock over the whole function
10392         instead of acquiring it twice.
10393
10394         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10395
10396         * bus/connection.c (bus_connections_setup_connection): fix access
10397         to already-freed memory.
10398
10399         * dbus/dbus-connection.c: keep a little cache of linked list
10400         nodes, to avoid using the global linked list alloc lock in the
10401         normal send-message case. Instead we just use the connection lock
10402         that we already have to take.
10403
10404         * dbus/dbus-list.c (_dbus_list_find_last): new function
10405
10406         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10407         change to use a struct for the atomic type; fix docs,
10408         they return value before increment, not after increment.
10409
10410         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10411         (_dbus_string_append_8_aligned): new functions to try to
10412         microoptimize this operation.
10413         (reallocate_for_length): break this out of set_length(), to
10414         improve profile info, and also so we can consider inlining the
10415         set_length() part.
10416
10417         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10418         strings with some preallocation, cuts down on our calls to realloc
10419         a fair bit. Though if we can get the "move entire string to empty
10420         string" optimization below to kick in here, it would be better.
10421
10422         * dbus/dbus-string.c (_dbus_string_move): just call
10423         _dbus_string_move_len
10424         (_dbus_string_move_len): add a special case for moving
10425         an entire string into an empty string; we can just
10426         swap the string data instead of doing any reallocs.
10427         (_dbus_string_init_preallocated): new function
10428
10429 2003-05-11  Havoc Pennington  <hp@pobox.com>
10430
10431         Write a "test-profile" that does echo client-server with threads;
10432         profile reveals lock contention, memcpy/realloc of buffers, and
10433         UTF-8 validation as hot spots. 20% of lock contention eliminated
10434         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10435         contention is global mempool locks for GList and DBusList.
10436
10437         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10438         x86 implementation
10439
10440         * dbus/dbus-connection.c (struct DBusConnection): use
10441         dbus_atomic_t for the reference count
10442
10443         * dbus/dbus-message.c (struct DBusMessage): declare
10444         dbus_atomic_t values as volatile
10445
10446         * configure.in: code to detect ability to use atomic integer
10447         operations in assembly, from GLib patch
10448
10449         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10450         time, tired of it being wrong in threads and forked processes
10451
10452         * glib/test-profile.c: a little program to bounce messages back
10453         and forth between threads and eat CPU
10454
10455         * dbus/dbus-connection.c: add debug spew macros for debugging
10456         thread locks; include config.h at top; fix deadlock in
10457         dbus_connection_flush()
10458
10459 2003-05-08  Havoc Pennington  <hp@pobox.com>
10460
10461         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10462         data from getting written, and there wasn't a good reason to
10463         use _exit really.
10464
10465         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10466         dbus_verbose lines in test coverage
10467         (main): add list of functions sorted by # of untested blocks
10468         to the coverage report
10469
10470         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10471
10472         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10473
10474         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10475         extend test coverage
10476
10477         * test/data/auth/cancel.auth-script: test canceling an
10478         authentication
10479
10480         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10481         aren't used. in CVS history if we end up needing them.
10482
10483 2003-05-04  Havoc Pennington  <hp@pobox.com>
10484
10485         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10486         unit test
10487
10488         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10489         function, which assumed length was in # of strings, not bytes
10490
10491         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10492         missing coverage
10493
10494         * dbus/dbus-connection.c
10495         (_dbus_connection_queue_received_message): disable function for
10496         now, we are only using it in test mode
10497
10498         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10499         remove a mistaken FIXME
10500
10501 2003-05-04  Havoc Pennington  <hp@pobox.com>
10502
10503         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10504         unlock mutex on successful return, patch from Anders Gustafsson
10505
10506 2003-05-04  Havoc Pennington  <hp@pobox.com>
10507
10508         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10509         Anders Gustafsson
10510
10511 2003-05-04  Havoc Pennington  <hp@pobox.com>
10512
10513         * tools/dbus-launch.c: implement
10514
10515         * bus/main.c (main), bus/bus.c (bus_context_new):
10516         implement --print-pid and --fork
10517
10518 2003-05-03  Havoc Pennington  <hp@redhat.com>
10519
10520         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10521         the address had no value, and add to test suite. Fix and
10522         regression test from Miloslav Trmac
10523
10524 2003-05-03  Havoc Pennington  <hp@pobox.com>
10525
10526         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10527         watch is invalid when handled
10528
10529         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10530         dbus-launch utility to launch the bus from a shell script.  Didn't
10531         actually implement dbus-launch yet, it's just a placeholder still.
10532
10533 2003-05-03  Havoc Pennington  <hp@pobox.com>
10534
10535         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10536         daemon; also documents daemon config file, so replaces
10537         doc/config-file.txt. Corrected some stuff from config-file.txt in
10538         the process of moving it.
10539
10540 2003-05-03  Havoc Pennington  <hp@pobox.com>
10541
10542         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10543         add some man pages
10544
10545 2003-05-03  Colin Walters  <walters@verbum.org>
10546
10547         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10548         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10549
10550         * Makefile.am: Update to use new .pc versioning scheme.
10551
10552 2003-05-02  Havoc Pennington  <hp@redhat.com>
10553
10554         * bus/system.conf.in: allow send/receive to/from message bus
10555         service
10556
10557 2003-04-30  Havoc Pennington  <hp@redhat.com>
10558
10559         * configure.in: print a note when building with unit tests and
10560         without assertions
10561
10562 2003-04-30  Havoc Pennington  <hp@redhat.com>
10563
10564         * Makefile.am: add a check-local that complains if you didn't
10565         configure with --enable-tests
10566
10567 2003-04-29  Havoc Pennington  <hp@redhat.com>
10568
10569         * glib/dbus-gmain.c: docs cleanups
10570
10571         * dbus/dbus-types.h: add docs on int64 types
10572
10573         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10574         public API docs section
10575
10576 2003-04-29  Havoc Pennington  <hp@redhat.com>
10577
10578         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10579         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10580         parallel install API version, not with the D-BUS package version.
10581
10582         * HACKING: move some of README over here
10583
10584         * README: updates, and document API/ABI policy
10585
10586         * configure.in: reindentation
10587
10588 2003-04-29  Havoc Pennington  <hp@redhat.com>
10589
10590         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10591         to use this library" to be sure people have the right
10592         expectations.
10593
10594 2003-04-28  Havoc Pennington  <hp@redhat.com>
10595
10596         * configure.in: add --enable-docs which by default is auto yes if
10597         doxygen and db2html found, no otherwise; but can be forced on/off
10598
10599         * doc/Makefile.am: conditionalize whether to build docs on
10600         --enable-docs
10601
10602 2003-04-28  Havoc Pennington  <hp@redhat.com>
10603
10604         * configure.in: 0.10
10605
10606         * NEWS: update
10607
10608         * bus/system.conf.in: add <includedir>system.d</includedir>
10609
10610         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10611         username was provided but not uid
10612
10613         * bus/config-parser.c (struct BusConfigParser): keep track of
10614         whether the parser is toplevel or was included; change some
10615         of the error handling if it's included.
10616
10617 2003-04-27  Havoc Pennington  <hp@pobox.com>
10618
10619         Unbreak my code...
10620
10621         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10622         report correct status if we finish processing authentication
10623         inside this function.
10624
10625         * bus/activation.c (try_send_activation_failure): use
10626         bus_transaction_send_error_reply
10627
10628         * bus/connection.c (bus_connection_get_groups): return an error
10629         explaining the problem
10630
10631         * bus/bus.c (bus_context_check_security_policy): implement
10632         restriction here that inactive connections can only send the
10633         hello message. Also, allow bus driver to send anything to
10634         any recipient.
10635
10636         * bus/connection.c (bus_connection_complete): create the
10637         BusClientPolicy here instead of on-demand.
10638         (bus_connection_get_policy): don't return an error
10639
10640         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10641         sender field in message being replied to
10642
10643         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10644         causing it to return FALSE always
10645
10646         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10647         we checked sender rather than destination
10648
10649 2003-04-25  Havoc Pennington  <hp@redhat.com>
10650
10651         test suite is slightly hosed at the moment, will fix soon
10652
10653         * bus/connection.c (bus_connections_expire_incomplete): fix to
10654         properly disable the timeout when required
10655         (bus_connection_set_name): check whether we can remove incomplete
10656         connections timeout after we complete each connection.
10657
10658         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10659         probably still broken.
10660
10661         * bus/services.c (bus_registry_acquire_service): implement max
10662         number of services owned, and honor allow/deny rules on which
10663         services a connection can own.
10664
10665         * bus/connection.c (bus_connection_get_policy): report errors here
10666
10667         * bus/activation.c: implement limit on number of pending
10668         activations
10669
10670 2003-04-25  Havoc Pennington  <hp@redhat.com>
10671
10672         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10673         where we used >= 0 instead of != DBUS_UID_UNSET.
10674
10675 2003-04-25  Havoc Pennington  <hp@redhat.com>
10676
10677         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10678         were toggled without add/remove, fix from Anders Gustafsson
10679
10680 2003-04-24  Havoc Pennington  <hp@redhat.com>
10681
10682         * test/data/valid-config-files/basic.conf: add <limit> tags to
10683         this test
10684
10685         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10686         <limit> tag in configuration file.
10687
10688 2003-04-24  Havoc Pennington  <hp@redhat.com>
10689
10690         * bus/dispatch.c: somehow missed some name_is
10691
10692         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10693         (_dbus_timeout_set_interval): new
10694
10695         * bus/connection.c (bus_connections_setup_connection): record time
10696         when each connection is first set up, and expire them after the
10697         auth timeout passes.
10698
10699 2003-04-24  Havoc Pennington  <hp@redhat.com>
10700
10701         * dbus/dbus-message.c (dbus_message_name_is): rename
10702         (dbus_message_service_is): rename
10703         (dbus_message_sender_is): rename
10704         (dbus_message_get_service): rename
10705
10706 2003-04-24  Havoc Pennington  <hp@redhat.com>
10707
10708         * configure.in: add --enable-checks
10709
10710         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10711
10712         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10713         to use thread locks.
10714         (_dbus_connection_handler_destroyed_locked): move some private
10715         functions into proper docs group
10716
10717         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10718         _dbus_return_val_if_fail
10719
10720         Throughout: use dbus_return_if_fail
10721
10722 2003-04-23  James Willcox  <jwillcox@gnome.org>
10723
10724         * glib/dbus-glib.h:
10725         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10726         (dbus_connection_setup_with_g_main),
10727         (dbus_server_setup_with_g_main):
10728         * glib/test-dbus-glib.c: (main):
10729         * glib/test-thread-client.c: (main):
10730         * glib/test-thread-server.c: (new_connection_callback), (main):
10731         * tools/dbus-monitor.c: (main):
10732
10733         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10734         and dbus_server_setup_with_g_main().
10735
10736 2003-04-20  Havoc Pennington  <hp@pobox.com>
10737
10738         * doc/dbus-specification.sgml: document the restrictions on
10739         message and service names
10740
10741 2003-04-22  Havoc Pennington  <hp@redhat.com>
10742
10743         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10744         support, and do some code cleanups to share more code and
10745         speed up array marshal/demarshal.
10746
10747         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10748
10749         * configure.in: generate dbus-arch-deps.h
10750
10751         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10752         64-bit typecodes
10753
10754 2003-04-22  Havoc Pennington  <hp@redhat.com>
10755
10756         * test/data/valid-messages/opposite-endian.message: fix test
10757         to use proper type for rply field
10758
10759         * test/data/invalid-messages: add tests for below validation
10760
10761         * dbus/dbus-message.c (decode_header_data): validate field types,
10762         and validate that named fields are valid names
10763         (decode_name_field): consider messages in the
10764         org.freedesktop.Local. namespace to be invalid.
10765
10766         * dbus/dbus-string.c (_dbus_string_validate_name): new
10767
10768 2003-04-19  Havoc Pennington  <hp@pobox.com>
10769
10770         * bus/driver.c (bus_driver_handle_hello): check limits and
10771         return an error if they are exceeded.
10772
10773         * bus/connection.c: maintain separate lists of active and inactive
10774         connections, and a count of each. Maintain count of completed
10775         connections per user. Implement code to check connection limits.
10776
10777         * dbus/dbus-list.c (_dbus_list_unlink): export
10778
10779         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10780         number of bytes in the message queue for a connection
10781
10782 2003-04-18  Havoc Pennington  <hp@pobox.com>
10783
10784         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10785
10786         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10787         memleaks
10788
10789         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10790         on realloc be sure to update the pointer in the keyring
10791
10792         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10793         offset to avoid writing to unallocated memory
10794
10795         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10796         try the next mechanism, so we properly handle OOM
10797
10798         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10799         on OOM.
10800         (_dbus_keyring_new): fix OOM bug
10801         (_dbus_keyring_new_homedir): always set error; impose a maximum
10802         number of keys we'll load from the file, mostly to speed up the
10803         test suite and make its OOM checks more useful, but also for
10804         general sanity.
10805
10806         * dbus/dbus-auth.c (process_error_server): reject authentication
10807         if we get an error from the client
10808         (process_cancel): on cancel, send REJECTED, per the spec
10809         (process_error_client): send CANCEL if we get an error from the
10810         server.
10811
10812 2003-04-18  Havoc Pennington  <hp@pobox.com>
10813
10814         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10815         debug spew
10816
10817         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10818         handling problem
10819
10820         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10821         about DBUS_TEST_HOMEDIR once
10822
10823         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10824         the environment
10825
10826         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10827         config file so we test the right thing
10828
10829         Throughout: assorted docs improvements
10830
10831 2003-04-18  Havoc Pennington  <hp@pobox.com>
10832
10833         * glib/dbus-gmain.c: adapt to watch changes
10834
10835         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10836
10837         * dbus/dbus-server.h: remove dbus_server_handle_watch
10838
10839         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10840
10841         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10842         like DBusTimeout, so we don't need dbus_connection_handle_watch
10843         etc.
10844
10845 2003-04-17  Havoc Pennington  <hp@redhat.com>
10846
10847         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10848         database usage so it all goes via the DBusUserDatabase cache.
10849
10850 2003-04-17  Havoc Pennington  <hp@redhat.com>
10851
10852         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10853         there was an OOM watch we skipped, we always return TRUE so we
10854         iterate again to have a look at it again. Fixes test suite hang.
10855         Code rearrangement also lets us lose some memset and only iterate
10856         over callbacks once.
10857
10858         * bus/driver.c (bus_driver_handle_message): sense of test for
10859         reply was backward
10860
10861 2003-04-16  Havoc Pennington  <hp@pobox.com>
10862
10863         * doc/dbus-specification.sgml: make spec say serials are unsigned
10864
10865         * dbus/dbus-message.h: change message serials to unsigned
10866
10867         * dbus/dbus-connection.c: adapt to message serials being unsigned
10868
10869 2003-04-15  Havoc Pennington  <hp@pobox.com>
10870
10871         * bus/bus.c: create and keep around a shared DBusUserDatabase
10872         object.
10873
10874         * bus/connection.c (bus_connection_get_groups): don't cache
10875         groups for user in the connection object, since user database
10876         object now does that.
10877
10878 2003-04-16  Havoc Pennington  <hp@redhat.com>
10879
10880         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10881         list of size counters
10882         (_dbus_message_loader_putback_message_link): put back a popped link
10883
10884         * dbus/dbus-connection.c
10885         (dbus_connection_set_max_live_messages_size): rename
10886         max_received_size
10887         (dbus_connection_get_outgoing_size): get size of outgoing
10888         queue
10889         (_dbus_connection_set_connection_counter): remove this cruft
10890
10891 2003-04-14  Havoc Pennington  <hp@redhat.com>
10892
10893         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10894         caching, but at some point we might want to be able to use a
10895         different database.
10896
10897         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10898         SHA1 conf file to test the sha1 auth mechanism, since the regular
10899         test always uses EXTERNAL when available.
10900
10901         * configure.in,
10902         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10903         add conf file that requires use of sha1 auth
10904
10905 2003-04-13  Havoc Pennington  <hp@pobox.com>
10906
10907         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10908         from Philip Blundell to send messages and monitor them.
10909
10910 2003-04-13  Havoc Pennington  <hp@pobox.com>
10911
10912         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10913         callbacks
10914
10915         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10916         users
10917
10918         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10919         fix to only recover unused bytes if we're already authenticated
10920         (_dbus_transport_get_is_authenticated): fix to still mark us
10921         authenticated if there are unused bytes.
10922
10923         * bus/dispatch.c: implement security policy checking
10924
10925         * bus/connection.c (bus_transaction_send_from_driver): new
10926
10927         * bus/bus.c (bus_context_check_security_policy): new
10928
10929         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10930         now we just set the DBusError and it gets converted to an error
10931         reply.
10932
10933         * bus/connection.c (allow_user_function): enable code using actual
10934         data from the config file
10935
10936         * bus/policy.c (list_allows_user): handle wildcard rules for
10937         user/group connection perms
10938
10939 2003-04-13  Havoc Pennington  <hp@pobox.com>
10940
10941         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10942
10943         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10944
10945         * bus/policy.c (bus_policy_append_mandatory_rule)
10946         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10947         (bus_policy_append_group_rule): new functions
10948
10949 2003-04-12  Havoc Pennington  <hp@pobox.com>
10950
10951         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10952
10953         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10954         the pid/gid/uid, just for paranoia.
10955
10956         * test/break-loader.c (randomly_do_n_things): find a byte
10957         containing a type code, and randomly change it to a different
10958         type code.
10959
10960 2003-04-12  Havoc Pennington  <hp@pobox.com>
10961
10962         * bus/policy.h: change BusPolicy to be the thing from the config
10963         file, and rename old BusPolicy to BusClientPolicy
10964
10965         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10966         match change in how policy works
10967
10968         * dbus/dbus-internals.h: mark assert_not_reached as
10969         __attribute((noreturn))__
10970
10971 2003-04-11  Havoc Pennington  <hp@redhat.com>
10972
10973         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10974         the broadcast service. Use boolean return for ServiceExists.
10975
10976 2003-04-11  Havoc Pennington  <hp@redhat.com>
10977
10978         * configure.in: add another directory to look for qt in.
10979
10980 2003-04-11  Havoc Pennington  <hp@redhat.com>
10981
10982         * AUTHORS: add Colin Walters
10983
10984 2003-04-11  Havoc Pennington  <hp@redhat.com>
10985
10986         * NEWS: update
10987
10988         * configure.in: 0.9
10989
10990 2003-04-11  Havoc Pennington  <hp@redhat.com>
10991
10992         * bus/messagebus.in: remove pid file when stopping the
10993         message bus, since the bus won't have privileges to remove it
10994         itself.
10995
10996 2003-04-11  Havoc Pennington  <hp@redhat.com>
10997
10998         * bus/bus.c (bus_context_new): move credentials change after
10999         creating pidfile
11000
11001 2003-04-11  Havoc Pennington  <hp@pobox.com>
11002
11003         * test/decode-gcov.c: add "below average functions" to the
11004         coverage report, and change how some of the code works.
11005
11006         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11007         not in the coverage stats.
11008
11009         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11010         couple places so running the test suite doesn't result in megaspam.
11011
11012 2003-04-11  Havoc Pennington  <hp@pobox.com>
11013
11014         * bus/dispatch.c (check_existent_service_activation): accept a no
11015         memory error in a place we didn't before
11016
11017         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11018         in case the first one failed," since the test suite is less
11019         broken now.
11020
11021 2003-04-10  Havoc Pennington  <hp@pobox.com>
11022
11023         * bus/dispatch.c (check_segfault_service_activation): add test
11024         for launching an executable that just crashes.
11025
11026         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11027         don't leave a million cores. We'll see how portable this is.
11028
11029 2003-04-10  Havoc Pennington  <hp@pobox.com>
11030
11031         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11032         the possible parent failures before we fork, so that we don't
11033         fail to create a babysitter after creating the child.
11034
11035         * bus/activation.c (bus_activation_activate_service): kill child
11036         if we don't successfully complete the activation.
11037
11038 2003-04-10  Havoc Pennington  <hp@redhat.com>
11039
11040         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11041         the connection if it's disconnected
11042
11043         * bus/activation.c (bus_activation_service_created): use new
11044         transaction features to roll back removal of pending activation if
11045         we don't successfully create the service after all. Don't remove
11046         pending activation if the function fails.
11047
11048         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11049         (_dbus_list_insert_after_link): new code to facilitate
11050         services.c fixes
11051
11052         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11053         new functionality, so we can preallocate the ability to insert
11054         into a hash table.
11055
11056         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11057         allowing us to put custom hooks in a transaction to be used for
11058         cancelling said transaction
11059
11060         * doc/dbus-specification.sgml: add some discussion of secondary
11061         service owners, and disallow zero-length service names
11062
11063         * bus/services.c (bus_registry_acquire_service): new function,
11064         splits out part of bus_driver_handle_acquire_service() and fixes
11065         a bug where we didn't remove the service doing the acquiring
11066         from the secondary queue if we failed to remove the current owner
11067         from the front of the queue.
11068
11069 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11070
11071         * doc/dbus-specification.sgml:
11072         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11073
11074 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11075
11076         * bus/.cvsignore:
11077         * glib/.cvsignore:
11078         * test/.cvsignore:
11079         Added files to cvsignore
11080
11081         * dbus/dbus-message.h:
11082         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11083         Make get_named() take two out argument and return a boolean.
11084         (dbus_message_iter_get_args_valist):
11085         Update usage of get_named().
11086         (dbus_message_iter_append_byte):
11087         Fix typo
11088         (dbus_message_iter_append_named)
11089         Fix typo
11090         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11091         More tests.
11092
11093 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11094
11095         * dbus/dbus-marshal.[ch]:
11096         Add array_type_pos argument to _dbus_marshal_validate_arg.
11097         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11098
11099         * dbus/dbus-message.[ch]:
11100         Multi-dimensional arrays have full type specification in the
11101         outermost array. Iter code re-arranged to handle this.
11102         Added some more iter tests.
11103
11104         * doc/dbus-specification.sgml:
11105         Add me to authors.
11106         Remove old FIXME.
11107         Update new array encoding description.
11108         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11109
11110         * test/data/invalid-messages/array-with-mixed-types.message:
11111         * test/data/valid-messages/array-of-array-of-uint32.message:
11112         Change to the new array format.
11113
11114         * test/data/invalid-messages/too-short-dict.message:
11115         Fix bug in test.
11116
11117         * test/data/valid-messages/recursive-types.message:
11118         Fix up and extend test.
11119
11120 2003-04-10  Havoc Pennington  <hp@pobox.com>
11121
11122         * bus/dispatch.c: lots of fixes
11123
11124         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11125         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11126         that was crack, broke the test service.
11127
11128         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11129         handling to avoid piling up errors if we get a failure on the
11130         first address.
11131
11132         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11133         pid in assertion failures.
11134
11135         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11136         to some fixed size of file descriptor array. Don't return TRUE
11137         anytime a timeout exists, that led to lots of busy loop silliness
11138         in the tests.
11139
11140 2003-04-09  Havoc Pennington  <hp@redhat.com>
11141
11142         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11143         I'd checked this in earlier but hadn't.
11144
11145 2003-04-09  Havoc Pennington  <hp@redhat.com>
11146
11147         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11148         the activation test (man this is getting old!)
11149
11150 2003-04-09  Havoc Pennington  <hp@redhat.com>
11151
11152         * test/test-utils.c: use dispatch status function to fix this up
11153
11154         * bus/connection.c (connection_watch_callback): don't dispatch
11155         from here
11156         (connection_timeout_callback): don't dispatch from here
11157         (bus_connections_setup_connection): set the dispatch status function
11158         (bus_connection_disconnected): unset it
11159
11160         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11161         used to add a connection to be dispatched
11162         (_dbus_loop_iterate): do the dispatching at the end of each
11163         iteration
11164
11165         * dbus/dbus-connection.c
11166         (dbus_connection_set_dispatch_status_function): new function
11167         allowing us to fix up main loop usage
11168         (_dbus_connection_last_unref): free all the various function
11169         user data
11170         (dbus_connection_dispatch): call the DispatchStatusFunction
11171         whenever this function returns
11172         (dbus_connection_handle_watch): call DispatchStatusFunction
11173         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11174         (reply_handler_timeout): call DispatchStatusFunction
11175         (dbus_connection_flush): call DispatchStatusFunction
11176
11177 2003-04-09  Havoc Pennington  <hp@redhat.com>
11178
11179         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11180         a memory leak
11181
11182         * bus/dispatch.c (check_service_activated): fix bug in test
11183
11184         * dbus/dbus-mainloop.c (check_timeout): fix this up
11185
11186         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11187         verbose output so we can sort out output from different processes,
11188         e.g. in the activation case.
11189
11190 2003-04-08  Colin Walters  <walters@gnu.org>
11191
11192         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11193         the pid file.
11194         (bus_context_new): Set it.
11195         (bus_context_unref): Use it to delete the pid file.
11196
11197 2003-04-08  Havoc Pennington  <hp@redhat.com>
11198
11199         * test/data/invalid-messages/array-with-mixed-types.message:
11200         regression test that fails for the moment
11201
11202         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11203         tests for convenience
11204
11205         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11206         array of nil, it broke things.
11207
11208         * test/data/invalid-messages/array-of-nil.message: regression test
11209
11210         * test/data/valid-messages/array-of-array-of-uint32.message:
11211         happened to write this so added it to suite
11212
11213 2003-04-08  Havoc Pennington  <hp@redhat.com>
11214
11215         * bus/driver.c (bus_driver_handle_acquire_service): init
11216         retval/reply before checking name
11217
11218         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11219         recursion depth argument
11220
11221         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11222         in the public struct for future extension
11223
11224         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11225         typo
11226
11227         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11228         message
11229
11230         * doc/dbus-specification.sgml: fix typo
11231
11232 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11233
11234         Implemented recursive types, named types and new-style iters
11235
11236         * bus/driver.c:
11237         * glib/test-thread-client.c: (thread_func):
11238         * glib/test-thread-server.c: (handle_test_message):
11239         * test/test-service.c: (handle_echo):
11240         Update to new api
11241
11242         * dbus/Makefile.am:
11243         * dbus/dbus-dict.c:
11244         * dbus/dbus-dict.h:
11245         * dbus/dbus.h
11246         Remove DBusDict
11247
11248         * dbus/dbus-internals.c: (_dbus_type_to_string):
11249         Update for new types.
11250
11251         * dbus/dbus-marshal.[ch]:
11252         Implement recursive types and the new marshalling format.
11253         Remove hardcoded dict marshalling.
11254         Marshal named types.
11255
11256         * dbus/dbus-message-builder.c:
11257         Add BYTE_ARRAY.
11258         Remove references to old types
11259
11260         * dbus/dbus-message.[ch]:
11261         New non-refcounted iter API that supports recursive iters.
11262         Use iters for appending, including support for recursive
11263         iters.
11264         Add byte and named type support.
11265         Update everything to new marshalling formats.
11266         Add tests for new API.
11267
11268         * dbus/dbus-protocol.h:
11269         Remove old array types.
11270         Add types: BYTE, ARRAY, DICT, NAMED
11271
11272         * dbus/dbus-string.c:
11273         * dbus/dbus-sysdeps.c:
11274         Make parse_double locale safe.
11275
11276         * dbus/dbus-test-main.c:
11277         Call setlocale.
11278
11279         * dbus/dbus-test.c:
11280         Kill dict test
11281
11282         * doc/dbus-specification.sgml:
11283         Update spec
11284
11285         * test/data/incomplete-messages/missing-body.message:
11286         * test/data/invalid-messages/bad-boolean.message:
11287         * test/data/invalid-messages/bad-boolean-array.message:
11288         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11289         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11290         * test/data/invalid-messages/too-short-dict.message:
11291         * test/data/valid-messages/dict-simple.message:
11292         * test/data/valid-messages/dict.message:
11293         * test/data/valid-messages/emptiness.message:
11294         * test/data/valid-messages/lots-of-arguments.message:
11295         * test/data/valid-messages/no-padding.message:
11296         * test/data/valid-messages/recursive-types.message:
11297         Add missing NAME fields
11298         Fix up dicts & arrays
11299
11300         * test/data/invalid-messages/dict-with-nil-value.message:
11301         Removed, this is not invalid anymore.
11302
11303         * test/data/valid-messages/recursive-types.message:
11304         Add new test for deeply recursive types.
11305
11306 2003-04-07  Havoc Pennington  <hp@pobox.com>
11307
11308         * bus/driver.c (bus_driver_handle_acquire_service): return an
11309         error if you try to acquire a service that starts with ':'
11310
11311 2003-04-07  Havoc Pennington  <hp@redhat.com>
11312
11313         * doc/dbus-specification.sgml: require that base service names
11314         start with ':' and that the base service is created/deleted
11315         as first and last things a connection does on the bus
11316
11317         * bus/dispatch.c (check_existent_service_activation): lots more
11318         work on the activation test; it doesn't fully pass yet...
11319
11320         * test/test-service.c (main): fix so we don't memleak the
11321         connection to the message bus
11322         (filter_func): accept a message asking us to exit
11323
11324 2003-04-06  Havoc Pennington  <hp@pobox.com>
11325
11326         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11327         from Colin Walters
11328
11329         * configure.in: fixes to Qt detection from Colin Walters
11330
11331         * doc/Makefile.am: Only remove generated docbook dirs if they
11332         exist, from Colin Walters
11333
11334         * dbus/dbus-bus.c: change how we set well-known connections to
11335         NULL, so that it works if a single connection is stored in
11336         two well-known array slots.
11337
11338         * test/Makefile.am: remove a lot of stuff that isn't immediately
11339         useful, it's in CVS history if we want it.
11340
11341         * test/test-service.c: use dbus-mainloop instead of that
11342         watch.[hc] crack
11343
11344 2003-04-06  Havoc Pennington  <hp@pobox.com>
11345
11346         * dbus/Makefile.am: split lists of sources into stuff that goes in
11347         the library, util functions that go in the lib and are also used
11348         elsewhere, and util functions that are used in tests/daemon but
11349         don't go in the lib.
11350
11351         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11352         here so it can be used in test binaries also
11353
11354 2003-04-06  Havoc Pennington  <hp@pobox.com>
11355
11356         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11357         here in the parent process, so we can return an error if it
11358         fails. Also, move some of the code into the child so the parent
11359         is less hosed if we fail midway through.
11360
11361         * bus/bus.c (bus_context_new): move pidfile detection further up
11362         in the function, before we start overwriting sockets and such.
11363
11364         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11365
11366         * configure.in: add --with-system-pid-file and --with-system-socket
11367
11368 2003-04-06  Colin Walters  <walters@verbum.org>
11369
11370         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11371
11372         * bus/system.conf.in: Declare a pidfile.
11373
11374         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11375         create one (if appropriate).
11376
11377         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11378         (struct BusConfigParser) [pidfile]: New.
11379         (element_type_to_name, merge_included, start_busconfig_child)
11380         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11381         (bus_config_parser_unref): Free it.
11382         (bus_config_parser_get_pidfile): New function.
11383
11384         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11385
11386         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11387
11388         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11389
11390         * dbus/dbus-sysdeps.h: Prototype it.
11391
11392 2003-04-06  Havoc Pennington  <hp@pobox.com>
11393
11394         * bus/bus.c (bus_context_new): print the address in here, rather
11395         than in main(), because we need to do it before forking the daemon
11396
11397         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11398         on the service nonexistent error
11399
11400         * bus/driver.c (bus_driver_handle_acquire_service): set the
11401         sender on the AcquireService reply
11402
11403         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11404         server also listen on a UNIX socket so services can connect to it.
11405
11406 2003-04-06  Havoc Pennington  <hp@pobox.com>
11407
11408         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11409         so it detects deadlocks and also we actually init threads when
11410         debugging.
11411
11412 2003-04-06  Havoc Pennington  <hp@pobox.com>
11413
11414         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11415         save the domain socket name, and unlink it when we disconnect the
11416         server. Means that at least when we exit normally, we won't leave
11417         a bunch of junk in /tmp
11418
11419         * dbus/dbus-transport-unix.c
11420         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11421         memory management). (I was making a real change here but then
11422         didn't)
11423
11424 2003-04-06  Havoc Pennington  <hp@pobox.com>
11425
11426         * bus/bus.c (bus_context_new): fix wrong handling of
11427         server_data_slot_unref() in the error case.
11428
11429         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11430         "(condition) != 0" to _dbus_real_assert so that
11431         "_dbus_assert (pointer)" doesn't cause a warning
11432
11433         * bus/main.c (main): accept --print-address option to print out
11434         the message bus address
11435
11436         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11437
11438         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11439         "tmpdir" option to unix: address on client side
11440
11441         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11442         to unix: address
11443
11444         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11445         we can use to create sockets in the test suite.
11446
11447         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11448         cleanly. To be used for testing.
11449
11450         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11451
11452         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11453
11454         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11455         handle trying to call this when there's no servers active
11456
11457 2003-04-05  Havoc Pennington  <hp@pobox.com>
11458
11459         * NEWS: update
11460
11461         * configure.in: 0.8
11462
11463 2003-04-05  Havoc Pennington  <hp@pobox.com>
11464
11465         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11466         crash on startup. Need to get "try starting the daemon"
11467         in the test suite I guess. ;-)
11468
11469         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11470         tracked the number of open connections; it's better done in
11471         application-specific code as you want it to span all servers etc.
11472
11473 2003-04-05  Havoc Pennington  <hp@pobox.com>
11474
11475         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11476         patch from Colin Walters
11477
11478 2003-04-05  Havoc Pennington  <hp@pobox.com>
11479
11480         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11481         reality; in fact multiple mechanisms are allowed.
11482
11483         * dbus/dbus-internals.c (_dbus_real_assert)
11484         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11485         _dbus_assert_not_reached() into functions, so that they don't show
11486         up in basic block counts for test coverage, and don't use up as
11487         much disk space. Does mean slower execution speed though, so
11488         assumes --disable-asserts is the normal production case.
11489
11490 2003-04-05  Havoc Pennington  <hp@pobox.com>
11491
11492         * test/Makefile.am (dist-hook): also dist *.in files
11493
11494         * NEWS: update
11495
11496         * configure.in: 0.7
11497
11498 2003-04-05  Havoc Pennington  <hp@pobox.com>
11499
11500         * dbus/dbus-string.c: docs warning
11501
11502         * dbus/dbus-spawn.c: missing docs
11503
11504         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11505
11506 2003-04-05  Havoc Pennington  <hp@pobox.com>
11507
11508         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11509         magic from GLib
11510
11511         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11512         to -1 once we've reaped the babysitter
11513         (_dbus_babysitter_handle_watch): do as much work as we can, not
11514         just one go of it
11515
11516         * bus/activation.c: add code using DBusBabysitter so that we
11517         handle it when a service fails to start up properly.
11518         (bus_activation_service_created): don't remove the activation
11519         entries as we go, just let them get removed when we free the pending
11520         activation. Unref reply messages after sending them.
11521
11522 2003-04-05  Havoc Pennington  <hp@pobox.com>
11523
11524         * test/decode-gcov.c (main): print per-directory stats in the report
11525
11526         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11527
11528 2003-04-05  Havoc Pennington  <hp@pobox.com>
11529
11530         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11531
11532         * test/decode-gcov.c: hack up a little program to suck data
11533         out of gcov files. Yes this is sort of silly.
11534
11535         * configure.in: define something in config.h and do an
11536         AM_CONDITIONAL when gcov is enabled
11537
11538 2003-04-04  Havoc Pennington  <hp@redhat.com>
11539
11540         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11541         return a "babysitter" object that is used to monitor the status of
11542         the spawned process and reap it when required.
11543
11544         * test/test-segfault.c, test/test-exit.c,
11545         test/test-sleep-forever.c: binaries that do various lame things,
11546         used in the test suite.
11547
11548         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11549
11550 2003-04-03  Havoc Pennington  <hp@pobox.com>
11551
11552         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11553         in preparation for modifying it, dbus-sysdeps is getting
11554         a bit unmanageable.
11555
11556 2003-04-03  Havoc Pennington  <hp@redhat.com>
11557
11558         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11559         have multiple ones
11560
11561         * bus/*.[hc]: adapt to mainloop change
11562
11563 2003-04-03  Havoc Pennington  <hp@redhat.com>
11564
11565         * bus/activation.c (load_directory): fix up memleaks
11566         (bus_activation_entry_free): free the entry
11567
11568         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11569         we get one from the message bus; fix memleaks.
11570
11571         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11572
11573 2003-04-03  Havoc Pennington  <hp@pobox.com>
11574
11575         * bus/config-parser.c (bus_config_parser_unref): free
11576         list of mechanisms, bug discovered by test suite enhancements
11577         (putting system.conf and session.conf into suite)
11578
11579         * test/Makefile.am, test/test-service.c: add placeholder for a
11580         test service that we'll activate as part of test suite. Doesn't
11581         do anything yet.
11582
11583         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11584         setting NULL value, and use system malloc not dbus_malloc()
11585         when we have unavoidable memleakage.
11586
11587         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11588         didn't work, and support DBUS_BUS_ACTIVATION.
11589
11590         * bus/activation.c (child_setup): pass our well-known bus type to
11591         the child
11592
11593         * bus/config-parser.c: support <type> to specify well-known type
11594
11595         * doc/dbus-specification.sgml: document the env variables to
11596         locate well-known buses and find service activator
11597
11598 2003-04-02  Havoc Pennington  <hp@redhat.com>
11599
11600         * test/Makefile.am (all-local): add a rule to copy tests to
11601         builddir, so we can have generated tests. Use this to remove the
11602         silly hack for testing system.conf and session.conf. Will use this
11603         shortly to generate .service files pointing to test binaries.
11604
11605 2003-04-02  Havoc Pennington  <hp@redhat.com>
11606
11607         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11608         current alloc and needed new length, not max of the doubled
11609         allocation and needed new length. Also, when building tests,
11610         don't do the double-allocation stuff, just realloc every time.
11611
11612 2003-04-02  Havoc Pennington  <hp@redhat.com>
11613
11614         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11615         in error messages
11616         (_dbus_string_get_dirname): new
11617         (_dbus_sysdeps_test): new
11618         (_dbus_directory_open): include dirnames in error messages
11619
11620         * bus/config-parser.c: interpret <include> and <includedir> and
11621         <servicedir> relative to config file location if the given
11622         filename is not absolute.
11623
11624         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11625
11626 2003-04-02  Havoc Pennington  <hp@redhat.com>
11627
11628         * bus/connection.c (bus_transaction_send_error_reply): set sender
11629         service for the error, and unref the reply on success
11630
11631         * bus/activation.c: convert to use BusTransaction so OOM can be
11632         handled correctly
11633         (bus_activation_service_created): set sender of the message
11634
11635 2003-04-01  Havoc Pennington  <hp@redhat.com>
11636
11637         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11638         <includedir> (at least mostly)
11639
11640         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11641         first, then the user ID
11642
11643 2003-04-01  Havoc Pennington  <hp@pobox.com>
11644
11645         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11646         function
11647
11648         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11649
11650         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11651
11652         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11653         socket 0777, and unlink any existing socket.
11654
11655         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11656         the configuration file so specifies; set up auth mechanism
11657         restrictions
11658
11659         * bus/config-parser.c (bus_config_parser_content): add support
11660         for <fork> option and fill in code for <auth>
11661
11662         * bus/system.conf.in: add <fork/> to default configuration,
11663         and limit auth mechanisms to EXTERNAL
11664
11665         * doc/config-file.txt (Elements): add <fork>
11666
11667         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11668         (_dbus_change_identity): new function
11669
11670 2003-03-31  Havoc Pennington  <hp@redhat.com>
11671
11672         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11673         (_dbus_listen_unix_socket): fix off-by-one error in null
11674         termination spotted by Nalin
11675
11676 2003-03-31  Havoc Pennington  <hp@redhat.com>
11677
11678         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11679         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11680         having a real home directory available.
11681
11682 2003-03-31  Havoc Pennington  <hp@redhat.com>
11683
11684         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11685
11686         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11687
11688         * configure.in: add support for specifying a style of init script
11689         to install
11690
11691 2003-03-31  Havoc Pennington  <hp@redhat.com>
11692
11693         Fix some annoying DBusString API and fix all affected code.
11694
11695         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11696         max_length argument
11697         (_dbus_string_get_data): change to return string instead of using
11698         an out param
11699         (_dbus_string_get_const_data): ditto
11700         (_dbus_string_get_data_len): ditto
11701         (_dbus_string_get_const_data_len): ditto
11702
11703 2003-03-31  Havoc Pennington  <hp@redhat.com>
11704
11705         * bus/main.c (main): fix up the command line arguments to be nicer
11706
11707 2003-03-31  Havoc Pennington  <hp@redhat.com>
11708
11709         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11710         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11711         final location that lands in the config file
11712
11713         * bus/config-loader-expat.c (bus_config_load): fix type of
11714         XML_Parser variable
11715
11716         * doc/TODO: remove TODO item for dbus_bus_get()
11717
11718         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11719
11720 2003-03-31  Havoc Pennington  <hp@pobox.com>
11721
11722         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11723         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11724         argument since they are always client side
11725
11726         * dbus/dbus-server.c (dbus_server_get_address): new function
11727
11728         * bus/main.c (main): take the configuration file as an argument.
11729
11730         * test/data/valid-config-files/debug-allow-all.conf: new file to
11731         use with dispatch.c tests for example
11732
11733         * bus/test-main.c (main): require test data dir
11734
11735         * bus/bus.c (bus_context_new): change this to take a
11736         configuration file name as argument
11737
11738         * doc/config-file.txt (Elements): add <servicedir>
11739
11740         * bus/system.conf, bus/session.conf: new files
11741
11742         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11743         well-known socket if none set
11744
11745         * configure.in: create system.conf and session.conf
11746
11747 2003-03-30  Havoc Pennington  <hp@pobox.com>
11748
11749         * bus/config-parser.c: hacking
11750
11751         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11752         to shut down, since it could cause weirdness with the DBusList
11753         lock
11754
11755         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11756         link-oriented stack routines
11757         (alloc_link): free the mempool if the first alloc from it fails
11758
11759         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11760
11761         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11762         from GLib
11763         (_dbus_string_skip_white): new
11764
11765         * doc/config-file.txt (Elements): add <includedir>
11766
11767 2003-03-28  Havoc Pennington  <hp@pobox.com>
11768
11769         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11770         (_dbus_string_copy_data): new functions
11771
11772 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11773
11774         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11775         * dbus/dbus-bus.h:
11776         Add dbus_bus_get.
11777
11778         * dbus/dbus-memory.c:
11779         Fix a doc comment.
11780
11781 2003-03-28  Havoc Pennington  <hp@pobox.com>
11782
11783         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11784         I think it may have just been superstition. Not sure.
11785
11786         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11787         failures that were not being handled.
11788
11789         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11790
11791         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11792         row that will fail on out-of-memory.
11793
11794         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11795         function for testing out-of-memory handling.
11796
11797         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11798         allocation functions, they do map exactly to the expat ones.
11799
11800 2003-03-27  Havoc Pennington  <hp@redhat.com>
11801
11802         * bus/config-loader-libxml.c (bus_config_load): add another error
11803         check
11804
11805 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11806
11807         * doc/TODO:
11808         Add note about automatic service activation.
11809
11810         * doc/dbus-specification.sgml:
11811         Rename the specification and clarify a few things.
11812
11813 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11814
11815         * Doxyfile.in:
11816         * dbus/dbus-address.c:
11817         * dbus/dbus-dict.c:
11818         * dbus/dbus-marshal.c:
11819         * dbus/dbus-server-debug-pipe.c:
11820         * dbus/dbus-transport-unix.c:
11821         Fix documentation warnings.
11822
11823 2003-03-26  Havoc Pennington  <hp@pobox.com>
11824
11825         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11826         after every test so it's quick and easy to see which leaked, and
11827         so we test multiple dbus_shutdown() calls
11828
11829         * configure.in: change configure.in XML stuff to also support
11830         expat
11831
11832         * config-loader-libxml.c: some hacking
11833
11834         * config-loader-expat.c: some hacking
11835
11836         * config-parser.c: some hacking, plus tests
11837
11838 2003-03-25  Havoc Pennington  <hp@redhat.com>
11839
11840         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11841
11842         * configure.in: add --with-xml option to specify XML library,
11843         right now only libxml is supported.
11844
11845         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11846         nonworking code between home and work, still just stubs
11847
11848 2003-03-24  Havoc Pennington  <hp@redhat.com>
11849
11850         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11851         file
11852
11853         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11854         NULL argument for "message" if the error is a well-known one,
11855         fill in a generic message in this case.
11856
11857         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11858         favor of DBusError
11859
11860         * bus/test.c (bus_test_flush_bus): add
11861
11862         * bus/policy.c (bus_policy_test): test code stub
11863
11864 2003-03-24  Havoc Pennington  <hp@pobox.com>
11865
11866         * bus/connection.c (bus_connections_setup_connection): set up
11867         the "can this user connect" function, but it always returns
11868         TRUE until we have a config file parser so we can have a config
11869         file that allows connections.
11870
11871 2003-03-23  Havoc Pennington  <hp@pobox.com>
11872
11873         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11874         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11875         the mutex, so we can check for proper memory management
11876         and OOM handling.
11877
11878         * dbus/dbus-dataslot.c: remove the mutex from
11879         DBusDataSlotAllocator and lock it manually when using it,
11880         to simplify fitting it into the global slots framework.
11881
11882         * dbus/dbus-threads.c (init_static_locks): rework how we're
11883         handling global locks so they are easily shut down.
11884
11885         * bus/policy.c (bus_policy_append_rule): fix
11886
11887         * bus/test-main.c (main): check for memleaks
11888
11889         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11890         test suite check for memleaks
11891
11892         * dbus/dbus-memory.c: add support in test mode for tracking
11893         number of outstanding blocks
11894
11895 2003-03-23  Havoc Pennington  <hp@pobox.com>
11896
11897         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11898         policies code
11899
11900         * dbus/dbus-hash.h: add ULONG hash keys
11901
11902         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11903         (_dbus_get_group_id): new function
11904
11905 2003-03-20  Havoc Pennington  <hp@redhat.com>
11906
11907         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11908         new function
11909         (dbus_connection_get_unix_user): new function
11910
11911 2003-03-20  Havoc Pennington  <hp@pobox.com>
11912
11913         * bus/connection.c (bus_connection_send_oom_error): assert that
11914         message has a sender
11915         (connection_execute_transaction): ditto
11916         (bus_connection_preallocate_oom_error): fix to set the sender, and
11917         set recipient to the destination service, not the bus driver
11918
11919         * bus/policy.c: hacking
11920
11921         * dbus/dbus-message.c (dbus_message_service_is): new function
11922         (dbus_message_sender_is): new
11923
11924 2003-03-19  Havoc Pennington  <hp@redhat.com>
11925
11926         * bus/policy.c: start sketching code for policy restrictions on
11927         what connections can do.
11928
11929 2003-03-18  Havoc Pennington  <hp@redhat.com>
11930
11931         * doc/TODO: some notes on high-level todo items. Little nitpick
11932         stuff is all in @todo, so no need to add it here.
11933
11934         * doc/config-file.txt: some notes on how config file might look
11935
11936 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11937
11938         * configure.in: 0.6
11939
11940         * NEWS: Update.
11941
11942 2003-03-17  Havoc Pennington  <hp@redhat.com>
11943
11944         * dbus/dbus-internals.h: add gcc attributes so that
11945         our printf-style functions warn on bad arguments to
11946         format
11947
11948         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11949         format bug
11950
11951         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11952         printf format bug
11953
11954 2003-03-17  Havoc Pennington  <hp@redhat.com>
11955
11956         * bus/test-main.c (main): make it print something as it runs
11957         so make check doesn't look stuck
11958
11959         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11960         from CVS, now obsolete
11961
11962 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11963
11964         * bus/dispatch.c: (bus_dispatch):
11965         Refetch the service name since it may have been reallocated
11966         when dbus_message_set_sender was called.
11967
11968         * dbus/dbus-sysdeps.c: (_dbus_accept):
11969         Add address and address length variables and use them to stop
11970         valgrind from complaining.
11971
11972 2003-03-17  Havoc Pennington  <hp@pobox.com>
11973
11974         All tests pass, no memleaks, no valgrind complaints.
11975
11976         * bus/test.c: refcount handler_slot
11977
11978         * bus/connection.c (bus_connections_new): refcount
11979         connection_data_slot
11980
11981         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11982         bytes so that auth scripts pass.
11983
11984         * bus/dispatch.c: init message_handler_slot so it gets allocated
11985         properly
11986
11987         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11988
11989         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11990         dealloc server_pipe_hash when no longer used for benefit of
11991         leak checking
11992
11993         * dbus/dbus-auth.c (process_command): memleak fix
11994
11995         * bus/dispatch.c (check_hello_message): memleak fix
11996
11997 2003-03-16  Havoc Pennington  <hp@pobox.com>
11998
11999         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12000
12001 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12002
12003         * bus/activation.c (bus_activation_activate_service): Append
12004         the pending activation entry to the list of pending activations.
12005
12006 2003-03-16  Havoc Pennington  <hp@pobox.com>
12007
12008         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12009         connections
12010
12011         * dbus/dbus-address.c (create_entry): fix OOM handling when
12012         failing to alloc entry->method
12013
12014 2003-03-16  Havoc Pennington  <hp@pobox.com>
12015
12016         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12017         the watch
12018
12019         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12020         add some missing dbus_set_result
12021
12022         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12023         alloc the DBusMessageHandler
12024
12025         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12026         the transport here, since we call this from the finalizer; it
12027         resulted in a double-finalize.
12028
12029         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12030         where we tried to use transport->connection that was NULL,
12031         happened when transport was disconnected early on due to OOM
12032
12033         * bus/*.c: adapt to handle OOM for watches/timeouts
12034
12035         * dbus/dbus-transport-unix.c: port to handle OOM during
12036         watch handling
12037
12038         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12039         reference to unused bytes instead of a copy
12040
12041         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12042         out of memory
12043
12044         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12045         FALSE on OOM
12046
12047         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12048         of memory
12049
12050 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12051
12052         * doc/dbus-specification.sgml:
12053         Document reply message for ActivateService.
12054
12055 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12056
12057         * bus/activation.c: (bus_pending_activation_entry_free),
12058         (bus_pending_activation_free), (bus_activation_new),
12059         (bus_activation_unref), (bus_activation_service_created),
12060         (bus_activation_activate_service):
12061         * bus/activation.h:
12062         * bus/bus.c: (bus_context_new):
12063         * bus/desktop-file.c: (new_section):
12064         * bus/driver.c: (bus_driver_send_service_deleted),
12065         (bus_driver_handle_activate_service):
12066         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12067         * bus/services.h:
12068         * dbus/dbus-connection.c:
12069         (dbus_connection_send_with_reply_and_block):
12070         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12071         * dbus/dbus-protocol.h:
12072         Make activation work better. Now pending activations will be queued
12073         and the daemon won't try to activate services that are already registered.
12074
12075 2003-03-16  Havoc Pennington  <hp@pobox.com>
12076
12077         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12078         connection data
12079
12080         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12081         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12082
12083 2003-03-16  Havoc Pennington  <hp@pobox.com>
12084
12085         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12086         this. always run the test suite before commit...
12087
12088         * bus/*: adapt to DBusConnection API changes
12089
12090         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12091         requires renaming stuff to avoid dbus_connection_dispatch name
12092         conflict.
12093
12094         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12095         function
12096
12097         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12098         separate from _dbus_message_loader_return_buffer()
12099
12100         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12101         this, because it's now always broken to use; the number of
12102         messages in queue vs. the number still buffered by the message
12103         loader is undefined/meaningless. Should use
12104         dbus_connection_get_dispatch_state().
12105         (dbus_connection_dispatch): rename from
12106         dbus_connection_dispatch_message
12107
12108 2003-03-16  Havoc Pennington  <hp@pobox.com>
12109
12110         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12111         implementation
12112
12113 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12114
12115         * dbus/dbus-connection.c:
12116         (dbus_connection_send_with_reply_and_block):
12117         Decrease connection->n_incoming when removing an entry
12118         from the list.
12119         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12120         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12121         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12122         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12123         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12124         (dbus_dict_get_byte_array):
12125         Handle NULL arrays and strings. Also add support for byte arrays.
12126
12127         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12128         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12129         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12130         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12131         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12132         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12133         * dbus/dbus-marshal.h:
12134         Add support for marshalling and demarshalling empty arrays and strings.
12135
12136         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12137         (dbus_message_append_string_array),
12138         (dbus_message_iter_get_boolean),
12139         (dbus_message_iter_get_boolean_array),
12140         (dbus_message_iter_get_int32_array),
12141         (dbus_message_iter_get_uint32_array),
12142         (dbus_message_iter_get_double_array),
12143         (dbus_message_iter_get_byte_array),
12144         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12145         (check_message_handling):
12146         Add support for getting empty arrays and dicts.
12147
12148         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12149         Don't do any validation at all for now, that's better than just checking
12150         for ASCII.
12151
12152         * test/data/valid-messages/emptiness.message:
12153         New test message with lots of empty arrays.
12154
12155 2003-03-16  Havoc Pennington  <hp@pobox.com>
12156
12157         * dbus/dbus-connection.c
12158         (_dbus_connection_queue_received_message_link): new function that
12159         can't fail due to OOM
12160
12161         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12162         new function pops a message together with a list link
12163         containing it.
12164
12165         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12166         message queuing functions to avoid needing to alloc memory
12167
12168 2003-03-16  Havoc Pennington  <hp@pobox.com>
12169
12170         Oops - test code was only testing failure of around 30 of the
12171         mallocs in the test path, but it turns out there are 500+
12172         mallocs. I believe this was due to misguided linking setup such
12173         that there was one copy of dbus_malloc etc. in the daemon and one
12174         in the shared lib, and only daemon mallocs were tested. In any
12175         case, the test case now tests all 500+ mallocs, and doesn't pass
12176         yet, though there are lots of fixes in this patch.
12177
12178         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12179         this so that it doesn't need to allocate memory, since it
12180         has no way of indicating failure due to OOM (and would be
12181         annoying if it did).
12182
12183         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12184
12185         * bus/Makefile.am: rearrange to create two self-contained
12186         libraries, to avoid having libraries with overlapping symbols.
12187         that was resulting in weirdness, e.g. I'm pretty sure there
12188         were two copies of global static variables.
12189
12190         * dbus/dbus-internals.c: move the malloc debug stuff to
12191         dbus-memory.c
12192
12193         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12194         empty.
12195
12196         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12197
12198         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12199         on failure.
12200
12201         * bus/dispatch.c (bus_dispatch_add_connection): free
12202         message_handler_slot when no longer using it, so
12203         memory leak checkers are happy for the test suite.
12204
12205         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12206
12207         * bus/bus.c (new_connection_callback): disconnect in here if
12208         bus_connections_setup_connection fails.
12209
12210         * bus/connection.c (bus_connections_unref): fix to free the
12211         connections
12212         (bus_connections_setup_connection): if this fails, don't
12213         disconnect the connection, just be sure there are no side
12214         effects.
12215
12216         * dbus/dbus-string.c (undo_alignment): unbreak this
12217
12218         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12219         leaking
12220         (_dbus_auth_new): fix the order in which we free strings
12221         on OOM failure
12222
12223         * bus/connection.c (bus_connection_disconnected): fix to
12224         not send ServiceDeleted multiple times in case of memory
12225         allocation failure
12226
12227         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12228         get the base service name
12229         (dbus_bus_register_client): don't return base service name,
12230         instead store it on the DBusConnection and have an accessor
12231         function for it.
12232         (dbus_bus_register_client): rename dbus_bus_register()
12233
12234         * bus/dispatch.c (check_hello_message): verify that other
12235         connections on the bus also got the correct results, not
12236         just the one sending hello
12237
12238 2003-03-15  Havoc Pennington  <hp@pobox.com>
12239
12240         Make it pass the Hello handling test including all OOM codepaths.
12241         Now to do other messages...
12242
12243         * bus/services.c (bus_service_remove_owner): fix crash when
12244         removing owner from an empty list of owners
12245         (bus_registry_ensure): don't leave service in the list of
12246         a connection's owned services if we fail to put the service
12247         in the hash table.
12248
12249         * bus/connection.c (bus_connection_preallocate_oom_error): set
12250         error flag on the OOM error.
12251
12252         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12253         handle _dbus_transport_set_connection failure
12254
12255         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12256         to create watches up front and simply enable/disable them as
12257         needed.
12258         (unix_connection_set): this can now fail on OOM
12259
12260         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12261         of enabling/disabling a watch or timeout.
12262
12263         * bus/loop.c (bus_loop_iterate): don't touch disabled
12264         watches/timeouts
12265
12266         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12267
12268 2003-03-15  Havoc Pennington  <hp@pobox.com>
12269
12270         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12271         write useful test code, after all that futzing around ;-)
12272
12273         Test does not yet pass because we can't handle OOM in
12274         _dbus_transport_messages_pending (basically,
12275         dbus_connection_preallocate_send() does not prealloc the write
12276         watch). To fix this, I think we need to add new stuff to
12277         set_watch_functions, namely a SetEnabled function so we can alloc
12278         the watch earlier, then enable it later.
12279
12280         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12281         dbus-memory.c to the convenience lib
12282
12283         * bus/test.c: rename some static functions to keep them clearly
12284         distinct from stuff in connection.c. Handle client disconnection.
12285
12286 2003-03-14  Havoc Pennington  <hp@pobox.com>
12287
12288         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12289         transport, tests more of the real codepath. Set up clients
12290         with bus_setup_debug_client.
12291
12292         * bus/test.c (bus_setup_debug_client): function to set up debug
12293         "clients" on the main loop
12294
12295         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12296         support
12297
12298         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12299         server type
12300
12301         * dbus/dbus-server-debug.c: support a debug server based on pipes
12302
12303         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12304         (_dbus_close): new function
12305
12306         * configure.in: check for socketpair
12307
12308 2003-03-14  Havoc Pennington  <hp@redhat.com>
12309
12310         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12311         cheesy hack
12312
12313         * dbus/dbus-transport-debug.c: rework this a good bit to be
12314         less complicated. hopefully still works.
12315
12316         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12317         manually
12318
12319         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12320         after running it
12321
12322         * dbus/dbus-message.c (dbus_message_copy): rename from
12323         dbus_message_new_from_message, fix it up to copy
12324         all the message fields, add test case
12325
12326         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12327         not quite passing yet
12328
12329 2003-03-14  Havoc Pennington  <hp@pobox.com>
12330
12331         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12332         until no work remains" in test code. (the large diff here
12333         is just code movement, no actual changes)
12334
12335         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12336         1, no point waiting around for test code.
12337         (_dbus_server_debug_accept_transport): unref the timeout
12338         after adding it (right?)
12339
12340         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12341
12342 2003-03-13  Havoc Pennington  <hp@redhat.com>
12343
12344         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12345         out of memory
12346
12347         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12348         of memory
12349
12350         * dbus/dbus-connection.h: Make AddWatchFunction and
12351         AddTimeoutFunction return a bool so they can fail on out-of-memory
12352
12353         * bus/bus.c (bus_context_new): set up timeout handlers
12354
12355         * bus/connection.c (bus_connections_setup_connection): set up
12356         timeout handlers
12357
12358         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12359         can fail
12360
12361         * bus/bus.c (bus_context_new): adapt to changes
12362
12363         * bus/connection.c: adapt to changes
12364
12365         * test/watch.c: adapt to DBusWatch changes
12366
12367         * bus/dispatch.c (bus_dispatch_test): started adding this but
12368         didn't finish
12369
12370 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12371
12372         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12373
12374 2003-03-13  Havoc Pennington  <hp@pobox.com>
12375
12376         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12377         set up a test framework as for the library
12378
12379 2003-03-12  Havoc Pennington  <hp@pobox.com>
12380
12381         Throughout: purge global variables, introduce BusActivation,
12382         BusConnections, BusRegistry, etc. objects instead.
12383
12384         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12385         message bus object
12386
12387         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12388         going to redo this a bit differently I think
12389
12390 2003-03-12  Havoc Pennington  <hp@redhat.com>
12391
12392         Mega-patch that gets the message bus daemon initially handling
12393         out-of-memory. Work still needed. Also lots of random
12394         moving stuff to DBusError instead of ResultCode.
12395
12396         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12397
12398         * dbus/dbus-connection.c
12399         (dbus_connection_send_with_reply_and_block): use DBusError
12400
12401         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12402         DBusResultCode
12403
12404         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12405         code here, as the only failure possible is OOM.
12406
12407         * bus/connection.c (bus_connection_disconnect):
12408         rename bus_connection_disconnected as it's a notification only
12409
12410         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12411         "name" on get_args failure, should be done by get_args;
12412         don't disconnect client for bad args, just return an error.
12413         (bus_driver_handle_service_exists): ditto
12414
12415         * bus/services.c (bus_services_list): NULL-terminate returned array
12416
12417         * bus/driver.c (bus_driver_send_service_lost)
12418         (bus_driver_send_service_acquired): send messages from driver to a
12419         specific client to the client's unique name, not to the broadcast
12420         service.
12421
12422         * dbus/dbus-message.c (decode_header_data): reject messages that
12423         contain no name field
12424         (_dbus_message_get_client_serial): rename to
12425         dbus_message_get_serial and make public
12426         (_dbus_message_set_serial): rename from set_client_serial
12427         (_dbus_message_set_reply_serial): make public
12428         (_dbus_message_get_reply_serial): make public
12429
12430         * bus/connection.c (bus_connection_foreach): allow stopping
12431         iteration by returning FALSE from foreach function.
12432
12433         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12434         (dbus_connection_free_preallocated_send)
12435         (dbus_connection_preallocate_send): new API for sending a message
12436         without possibility of malloc failure.
12437         (dbus_connection_send_message): rename to just
12438         dbus_connection_send (and same for whole function family)
12439
12440         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12441
12442         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12443
12444         * bus/activation.c: handle/return errors
12445
12446         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12447
12448         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12449         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12450         (_dbus_result_from_errno): move to this file
12451
12452 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12453
12454         * dbus/dbus-marshal.c:
12455         (_dbus_marshal_set_string):
12456         Take a length argument so we can marshal the correct string
12457         length.
12458
12459         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12460         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12461         (_dbus_marshal_test):
12462         * dbus/dbus-marshal.h:
12463         Add support for marshalling and demarshalling dicts.
12464
12465         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12466         Add support for TYPE DICT.
12467
12468         * dbus/dbus-message.c: (set_string_field):
12469         Adjust header padding.
12470
12471         (dbus_message_append_args_valist), (dbus_message_append_dict),
12472         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12473         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12474         (check_message_handling), (check_have_valid_message):
12475         * dbus/dbus-message.h:
12476         Add functions for setting and getting dicts.
12477
12478         * dbus/dbus-protocol.h:
12479         Add DBUS_TYPE_DICT.
12480
12481         * dbus/dbus.h:
12482         Add dbus-dict.h
12483
12484         * doc/dbus-specification.sgml:
12485         Add information about how dicts are marshalled.
12486
12487         * test/data/invalid-messages/dict-with-nil-value.message:
12488         * test/data/invalid-messages/too-short-dict.message:
12489         * test/data/valid-messages/dict-simple.message:
12490         * test/data/valid-messages/dict.message:
12491         Add sample messages containing dicts.
12492
12493 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12494
12495         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12496
12497 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12498
12499         * dbus/Makefile.am:
12500         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12501         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12502         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12503         (dbus_dict_set_double), (dbus_dict_set_string),
12504         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12505         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12506         (dbus_dict_set_string_array), (_dbus_dict_test):
12507         * dbus/dbus-dict.h:
12508         Fix according to comments from Havoc.
12509
12510 2003-03-06  Michael Meeks  <michael@server.home>
12511
12512         * configure.in: if we don't have kde-config, disable have_qt.
12513
12514 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12515
12516         * dbus/Makefile.am:
12517         Add dbus-dict.[ch]
12518
12519         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12520         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12521         (dbus_dict_remove), (dbus_dict_get_value_type),
12522         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12523         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12524         (dbus_dict_put_double), (dbus_dict_put_string),
12525         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12526         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12527         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12528         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12529         (dbus_dict_get_double), (dbus_dict_get_string),
12530         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12531         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12532         (dbus_dict_get_string_array), (_dbus_dict_test):
12533         * dbus/dbus-dict.h:
12534         Add DBusDict implementation
12535
12536         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12537         * dbus/dbus-test.h:
12538         Add _dbus_dict_test
12539
12540 2003-03-04  Havoc Pennington  <hp@pobox.com>
12541
12542         * test/data/auth/*: adapt to changes
12543
12544         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12545         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12546         userid
12547
12548         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12549         more stuff from being in a context name, to make the protocol
12550         simpler to deal with
12551
12552         * dbus/dbus-errors.c (dbus_error_has_name): new function
12553         (dbus_error_is_set): new function
12554
12555         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12556         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12557
12558         * dbus/dbus-connection.c (dbus_connection_flush): also read
12559         messages during a flush operation
12560
12561         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12562
12563 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12564
12565         * configure.in: Check for gethostbyname on Solaris.
12566
12567         * dbus/dbus-transport.c: (_dbus_transport_open):
12568         Remove duplicate "tcp" entry.
12569
12570         * doc/dbus-specification.sgml:
12571         Clarify some things.
12572
12573 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12574
12575         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12576         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12577         (_dbus_keyring_test):
12578         * dbus/dbus-md5.c: (_dbus_md5_compute):
12579         * dbus/dbus-sha.c: (_dbus_sha_compute):
12580         Plug memory leaks.
12581
12582 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12583
12584         * README: Add some things.
12585
12586 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12587
12588         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12589         after case DBUS_TYPE_BOOELAN.
12590
12591 2003-03-02  Havoc Pennington  <hp@pobox.com>
12592
12593         * test/break-loader.c (randomly_set_extreme_ints): add test that
12594         sets really huge and small integers
12595
12596         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12597         that length of boolean array fits in the string, and that
12598         string has room for boolean value in single-bool case.
12599
12600         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12601         optional value to "ALIGN" command which is what to fill the
12602         alignment with.
12603
12604         * test/data/valid-messages/no-padding.message: add regression
12605         test for the message padding problem
12606
12607 2003-03-02  Havoc Pennington  <hp@pobox.com>
12608
12609         * dbus/dbus-message.c (decode_header_data): fix to always init
12610         message_padding, from Benjamin Dauvergne
12611
12612 2003-03-02  Havoc Pennington  <hp@pobox.com>
12613
12614         * configure.in: 0.5
12615
12616         * NEWS: Update.
12617
12618 2003-03-01  Joe Shaw  <joe@assbarn.com>
12619
12620         * configure.in: Check for "struct cmsgcred" and try to access its
12621         members for BSD-like unices.
12622
12623         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12624         _dbus_read_credentials_unix_socket().
12625         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12626         read() for reading the credential byte off the unix socket.  Use
12627         struct cmsgcred on systems that support it.
12628
12629 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12630
12631         * glib/Makefile.am:
12632         * configure.in:
12633         Make gthreads-2.0 dependency optional. Don't build thread test if
12634         its not found.
12635
12636 2003-02-27  Havoc Pennington  <hp@pobox.com>
12637
12638         * dbus/dbus-connection.c
12639         (dbus_connection_send_message_with_reply_and_block): fix doh!
12640         doh! doh! bug that resulted in never removing a reply from the
12641         queue, no wonder we called get_reply_serial so much ;-)
12642
12643         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12644         and client serial instead of demarshaling them every time
12645
12646 2003-02-27  Havoc Pennington  <hp@pobox.com>
12647
12648         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12649         more inlined, using dbus-string-private.h, speeds things up
12650         substantially
12651
12652         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12653         when freeing the string
12654         (_dbus_string_steal_data): fix for align offset
12655         (undo_alignment): new function
12656
12657 2003-02-26  Havoc Pennington  <hp@redhat.com>
12658
12659         All kinds of audit fixes from Owen, plus initial attempt to
12660         handle unaligned memory returned from malloc.
12661
12662         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12663         leave room for align_offset and nul byte
12664         (fixup_alignment): function to track an align_offset and
12665         ensure real->str is aligned
12666         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12667         to allow a nul byte plus align offset
12668         (_dbus_string_lock): fix overflow issue
12669         (_dbus_string_init_const_len): add assertions on sanity of len,
12670         assign allocated to be ALLOCATION_PADDING larger than len
12671         (set_length): fixup the overflow handling
12672         (_dbus_string_get_data_len): fix overflow in assertion
12673         (open_gap): detect overflow in size of gap to be opened
12674         (_dbus_string_lengthen): add overflow check
12675         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12676         (_dbus_string_append): add overflow check
12677         (_dbus_string_append_unichar): overflow
12678         (_dbus_string_delete): fix overflow in assertion
12679         (_dbus_string_copy_len): overflow in assertion
12680         (_dbus_string_replace_len): overflows in assertions
12681         (_dbus_string_find): change to implement in terms of
12682         _dbus_string_find_to
12683         (_dbus_string_find_to): assorted fixage
12684         (_dbus_string_equal_c_str): assert c_str != NULL,
12685         fix logic so the function works
12686         (_dbus_string_ends_with_c_str): fix overflow thingy
12687         (_dbus_string_base64_encode): overflow fix
12688         (_dbus_string_validate_ascii): overflow
12689         (_dbus_string_validate_nul): overflow
12690
12691 2003-02-26  Havoc Pennington  <hp@redhat.com>
12692
12693         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12694
12695 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12696
12697         * configure.in:
12698         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12699
12700         * dbus/dbus-connection.c:
12701         * dbus/dbus-connection.h:
12702         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12703         Add dbus_connection_set_wakeup_main_function and use it when queueing
12704         incoming and outgoing messages.
12705
12706
12707         * dbus/dbus-dataslot.c:
12708         Threadsafe usage of DBusDataSlotAllocator
12709
12710         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12711         dbus_new can fail.
12712
12713         * dbus/dbus-server-unix.c:
12714         Add todo comment
12715
12716         * glib/dbus-gmain.c:
12717         Implement the new wakeup functions for glib.
12718
12719         * glib/Makefile.am:
12720         * glib/test-thread-client.c:
12721         * glib/test-thread-server.c:
12722         * glib/test-thread.h:
12723         Initial cut at some thread test code. Not really done yet.
12724
12725 2003-02-26  Havoc Pennington  <hp@pobox.com>
12726
12727         * dbus/dbus-connection.c
12728         (dbus_connection_send_message_with_reply_and_block): fix crash
12729         where we ref'd the outgoing message instead of the returned reply
12730
12731         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12732         at the end of this function, so if we didn't need to read for
12733         authentication, we reinstall it for receiving messages
12734
12735         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12736         a NULL sender for peer-to-peer case
12737
12738         * dbus/dbus-transport-unix.c (check_read_watch): handle
12739         !authenticated case correctly
12740
12741         * glib/dbus-gmain.c: add support for DBusServer
12742
12743         * dbus/dbus-server.c: add data slot support
12744
12745         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12746         return values and handle errors
12747
12748         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12749         DBusConnection
12750
12751         * Doxyfile.in (INPUT): add glib subdir
12752
12753         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12754         setup_with_g_main instead of hookup_with_g_main; write docs
12755
12756 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12757
12758         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12759         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12760         * dbus/dbus-message.c: (dbus_message_append_boolean),
12761         (dbus_message_append_boolean_array),
12762         (dbus_message_get_args_valist), (_dbus_message_test):
12763         * dbus/dbus-message.h:
12764         * doc/dbus-specification.sgml:
12765         Various fixes as pointed out by Havoc.
12766
12767         * test/data/invalid-messages/bad-boolean-array.message:
12768         * test/data/invalid-messages/bad-boolean.message:
12769         Add invalid boolean value test cases.
12770
12771 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12772
12773         * dbus/dbus-internals.c: (_dbus_type_to_string):
12774         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12775         (_dbus_marshal_validate_arg):
12776         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12777         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12778         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12779         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12780         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12781         (dbus_message_iter_get_double),
12782         (dbus_message_iter_get_boolean_array), (message_iter_test):
12783         * dbus/dbus-message.h:
12784         * dbus/dbus-protocol.h:
12785         * doc/dbus-specification.sgml:
12786         * test/data/valid-messages/lots-of-arguments.message:
12787         Add support for boolean and boolean array types.
12788
12789 2003-02-23  Havoc Pennington  <hp@pobox.com>
12790
12791         * dbus/dbus-keyring.c: finish most of this implementation and
12792         simple unit test
12793
12794         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12795         these barf if the error isn't cleared to NULL
12796
12797         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12798         (_dbus_create_directory): new function
12799
12800         * dbus/dbus-errors.c (dbus_set_error): fix warning
12801
12802         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12803         (_dbus_string_hex_decode): new function
12804         (test_hex_roundtrip): test code
12805
12806         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12807
12808         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12809
12810         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12811         the save-to-temp/rename trick to atomically write the new file
12812         (_dbus_string_parse_uint): new function
12813
12814 2003-02-22  Havoc Pennington  <hp@pobox.com>
12815
12816         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12817
12818 2003-02-22  Havoc Pennington  <hp@pobox.com>
12819
12820         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12821         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12822
12823         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12824
12825         * dbus/test/data/sha-1: add US government test suite for SHA-1
12826
12827 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12828
12829         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12830         Make string arrays NULL-terminated.
12831
12832         * dbus/dbus-memory.c: (dbus_free_string_array):
12833         * dbus/dbus-memory.h:
12834         New function for freeing NULL-terminated string arrays.
12835
12836         * dbus/dbus-message-builder.c: (append_quoted_string),
12837         (_dbus_message_data_load):
12838         Add support for array types.
12839
12840         * dbus/dbus-message.c: (check_message_handling):
12841         Add more types as test cases.
12842
12843         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12844         (_dbus_string_parse_double):
12845         Add the start offset to the end offset.
12846
12847         * test/data/valid-messages/lots-of-arguments.message:
12848         New test message with lots of arguments.
12849
12850 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12851
12852         * dbus/dbus-message.c: (dbus_message_append_nil),
12853         (dbus_message_append_int32), (dbus_message_append_uint32),
12854         (dbus_message_append_double), (dbus_message_append_string),
12855         (dbus_message_append_int32_array),
12856         (dbus_message_append_uint32_array),
12857         (dbus_message_append_double_array),
12858         (dbus_message_append_byte_array),
12859         (dbus_message_append_string_array):
12860         Fix all out-of-memory handling in these functions.
12861
12862 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12863
12864         * dbus/dbus-message.c: (dbus_message_append_nil):
12865         Fix a silly.
12866
12867 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12868
12869         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12870         (dbus_message_append_nil), (dbus_message_append_int32_array),
12871         (dbus_message_append_uint32_array),
12872         (dbus_message_append_double_array),
12873         (dbus_message_append_byte_array),
12874         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12875         (dbus_message_iter_get_int32_array),
12876         (dbus_message_iter_get_uint32_array),
12877         (dbus_message_iter_get_double_array),
12878         (dbus_message_iter_get_byte_array),
12879         (dbus_message_iter_get_string_array):
12880
12881         * dbus/dbus-message.h:
12882         Add functions for appending and getting arrays.
12883
12884 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12885
12886         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12887         element size at least 8 bytes, fixes mempool tests on
12888         64-bit machines.
12889
12890 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12891
12892         * dbus/dbus-transport-unix.c (unix_do_iteration):
12893         Unlock the connection mutex during a blocking select call.
12894         Add todo about how we need a way to wake up the select.
12895
12896         * dbus/dbus-connection-internal.h:
12897         * dbus/dbus-connection.c:
12898         Add _dbus_connection_lock and _dbus_connection_unlock.
12899
12900 2003-02-19  Havoc Pennington  <hp@pobox.com>
12901
12902         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12903         Doxyfile.in, not Doxyfile
12904
12905         * dbus/dbus-keyring.c: do some hacking on this
12906
12907         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12908
12909         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12910         dbus_error_init
12911         (dbus_set_error): remove dbus_error_init, check for message ==
12912         NULL *before* we sprintf into it, and add @todo about including
12913         system headers in this file
12914
12915         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12916
12917         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12918
12919         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12920         get various bits of user information based on either username
12921         or user ID
12922         (_dbus_homedir_from_username): new function
12923
12924 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12925
12926         * configure.in:
12927         Add check for nonposix getpwnam_r
12928
12929         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12930         Align the pool element size to a sizeof (void *) boundary.
12931
12932         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12933         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12934         General Solaris fixes.
12935
12936         * test/data/valid-messages/simplest-manual.message:
12937         Explicitly state that we want little-endian packing.
12938
12939 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12940
12941         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12942
12943         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12944         Added to create a transport connecting using a tcp/ip socket.
12945
12946         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12947         to a tcp socket at given host and port.
12948         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12949         hostname and port.
12950
12951         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12952
12953         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12954         Added to create a server listening on a TCP/IP socket.
12955
12956 2003-02-19  Havoc Pennington  <hp@pobox.com>
12957
12958         Throughout: mop up all the Doxygen warnings and undocumented
12959         stuff.
12960
12961         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12962         to search any paths.
12963
12964         * dbus/dbus-threads.c: move global mutex initializers to
12965         dbus-internals.h, multiple prototypes was confusing doxygen
12966         besides being kind of ugly
12967
12968         * Doxyfile (PREDEFINED): have Doxygen define
12969         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12970         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12971         (do not abuse the feature! it's for stuff like the autogenerated
12972         macros in dbus-md5.c, not just for things you don't feel like
12973         documenting...)
12974
12975 2003-02-18  Havoc Pennington  <hp@pobox.com>
12976
12977         * dbus/dbus-string.c (_dbus_string_zero): new function
12978
12979         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12980         wrap it in some dbus-friendly API
12981
12982         * dbus/dbus-types.h: add 16-bit types
12983
12984 2003-02-18  Joe Shaw  <joe@assbarn.com>
12985
12986         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12987         credentials from our currently running process.
12988         (get_word): Fix a buglet where we were copying the entire length
12989         instead of relative to our position.
12990
12991         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12992         keys on the stack... it's 640k of data.
12993
12994         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12995         read the credentials byte off the socket, even if we don't have
12996         SO_PEERCRED.
12997         (_dbus_poll): Implement poll() using select() for systems which
12998         don't have it.
12999
13000         * glib/test-dbus-glib.c (main): Print out an error if no
13001         parameters are given.
13002
13003         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13004         can fallback to a secondary auth mechanism if the first fails.
13005
13006 2003-02-18  Havoc Pennington  <hp@pobox.com>
13007
13008         * AUTHORS: add Alex
13009
13010 2003-02-17  Havoc Pennington  <hp@pobox.com>
13011
13012         * doc/dbus-specification.sgml: lots of cosmetic
13013         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13014         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13015         s/server/bus/ (except in authentication section). Add a section
13016         "Message Bus Message Routing"
13017
13018 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13019
13020         Release 0.4
13021
13022         * NEWS: Update
13023
13024 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13025
13026         * doc/dbus-specification.sgml:
13027         Specification updates.
13028
13029 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13030
13031         * bus/activation.c: (bus_activation_init), (child_setup),
13032         (bus_activation_activate_service):
13033         * bus/activation.h:
13034         * bus/main.c: (main):
13035         Set DBUS_ADDRESS environment variable.
13036
13037         * dbus/dbus-errors.c: (dbus_set_error):
13038         Don't use va_copy since that's a C99 feature.
13039
13040         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13041         (_dbus_spawn_async):
13042         * dbus/dbus-sysdeps.h:
13043         Add child_setup_func to _dbus_spawn_async.
13044
13045         * doc/dbus-specification.sgml:
13046         Update specification.
13047
13048         * test/spawn-test.c: (setup_func), (main):
13049         Fix test.
13050
13051 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13052
13053         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13054         Added todo.
13055
13056 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13057
13058         * doc/.cvsignore:
13059         * doc/Makefile.am:
13060         * doc/dbus-test-plan.sgml:
13061         Add test plan document.
13062
13063         * test/Makefile.am:
13064         Fix distcheck.
13065
13066 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13067
13068         * dbus/dbus-message.c: (decode_header_data),
13069         (_dbus_message_loader_return_buffer):
13070         Set the header padding amount when loading a message.
13071
13072 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13073
13074         * bus/dispatch.c: (send_one_message):
13075         Only send broadcast messages to registered connections.
13076
13077         * dbus/dbus-message.c: (dbus_message_name_is):
13078         * dbus/dbus-message.h:
13079         New convenience function.
13080
13081         * dbus/dbus-transport-debug.c: (do_reading):
13082         Only dispatch one message per run.
13083
13084         * test/Makefile.am:
13085         * test/bus-test.c: (new_connection_callback), (die),
13086         (test_hello_client1_handler), (test_hello_client2_handler),
13087         (test_hello_replies), (main):
13088
13089         * test/bus-test-loop.[ch]:
13090         Add these.
13091
13092 2003-02-16  Havoc Pennington  <hp@pobox.com>
13093
13094         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13095         backward conditional
13096
13097 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13098
13099         * dbus/dbus-connection.c:
13100         Implement sent_message_with_reply. (with_reply_and block is still
13101         busted).
13102         Made dispatch_message not lose message if OOM.
13103
13104         * dbus/dbus-errors.h:
13105         Add NoReply error (for reply timeouts).
13106
13107 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13108
13109         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13110         Actually free keys and values when destroying hashtable.
13111
13112 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13113
13114         * dbus/dbus-auth.c: (client_try_next_mechanism):
13115         Plug a leak.
13116
13117         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13118         Return TRUE if there's no thread implementation around.
13119
13120         * glib/dbus-gmain.c: (free_source),
13121         (dbus_connection_hookup_with_g_main):
13122         Make sure to remove the GSource when the connection is finalized.
13123
13124 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13125
13126         * bus/dispatch.c: (bus_dispatch_message_handler):
13127         * dbus/dbus-errors.h:
13128         Return an error if someone tries to send a message to a service
13129         that doesn't exist.
13130
13131 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13132
13133         * bus/activation.c: (load_directory), (bus_activation_init),
13134         (bus_activation_activate_service):
13135         * bus/activation.h:
13136         * bus/driver.c:
13137         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13138         More work on the activation handling.
13139
13140         * dbus/dbus-errors.h:
13141         Add some error messages
13142
13143         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13144         * dbus/dbus-message.h:
13145         New function that creates an error message.
13146
13147         * dbus/dbus-protocol.h:
13148         Add ACTIVATE_SERVER message.
13149
13150         * dbus/dbus-server-unix.c: (unix_handle_watch),
13151         (_dbus_server_new_for_domain_socket):
13152         Call _dbus_fd_set_close_on_exec.
13153
13154         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13155         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13156         (_dbus_fd_set_close_on_exec):
13157         * dbus/dbus-sysdeps.h:
13158         Add _dbus_fd_set_close_on exec function. Also add function that checks
13159         that all open fds are set to close-on-exec and warns otherwise.
13160
13161         * dbus/dbus-transport-unix.c:
13162         (_dbus_transport_new_for_domain_socket):
13163         Call _dbus_fd_set_close_on_exec.
13164
13165 2003-02-16  Havoc Pennington  <hp@pobox.com>
13166
13167         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13168         allow people to avoid setting SIGPIPE to SIG_IGN
13169         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13170         we've been asked not to
13171
13172 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13173
13174         * dbus/dbus-list.c: (_dbus_list_append_link),
13175         (_dbus_list_prepend_link):
13176         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13177         (dbus_realloc):
13178         Warning fixes.
13179
13180 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13181
13182         * bus/Makefile.am:
13183         * bus/activation.c: (bus_activation_entry_free),
13184         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13185         * bus/activation.h:
13186         * bus/main.c: (main):
13187         Add simple activation support, doesn't work yet though.
13188
13189 2003-02-15   Zack Rusin  <zack@kde.org>
13190
13191         * qt/dbus-qthread.cpp:  small casting fix
13192
13193 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13194
13195         * dbus/dbus-errors.c: (dbus_set_error):
13196         * dbus/dbus-errors.h:
13197         Add a few errors and make dbus_set_error void.
13198
13199         * dbus/dbus-sysdeps.c:
13200         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13201         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13202         * dbus/dbus-sysdeps.h:
13203         Add _dbus_spawn_async.
13204
13205         * test/spawn-test.c: (main):
13206         Test for _dbus_spawn_async.
13207
13208 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13209
13210         * dbus/dbus-internals.h:
13211         Fix build without tests.
13212
13213         * dbus/dbus-list.c: (alloc_link):
13214         Fix a segfault when a malloc fails.
13215
13216         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13217         (dbus_malloc0), (dbus_realloc):
13218         Add support for malloc debugging.
13219
13220 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13221
13222         * dbus/dbus-threads.c:
13223         * dbus/dbus-threads.h:
13224         Add condvars. Remove static mutext from API.
13225         Implement static mutexes by initializing them from threads_init.
13226
13227         * glib/dbus-gthread.c:
13228         * qt/dbus-qthread.cpp:
13229         Update with the thread api changes.
13230
13231
13232         * dbus/dbus-list.c:
13233         * dbus/dbus-list.h:
13234         Turn StaticMutex into normal mutex + init function.
13235         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13236         _dbus_list_append_link, _dbus_list_prepend_link
13237
13238
13239         * dbus/dbus-sysdeps.c:
13240         * dbus/dbus-sysdeps.h:
13241         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13242         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13243
13244         * dbus/dbus-protocol.h:
13245         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13246
13247         * dbus/dbus-message.c:
13248         Make ref/unref atomic.
13249         Fix some docs.
13250
13251         * dbus/dbus-connection-internal.h:
13252         * dbus/dbus-connection.c:
13253         * dbus/dbus-connection.h:
13254         Make threadsafe.
13255         Change _peek to _borrow,_return & _steal_borrowed.
13256         Change disconnect callback to event.
13257         Make dbus_connection_dispatch_messages reentrant.
13258
13259         * dbus/dbus-transport.c:
13260         Don't ref the connection on calls to the transport
13261         implementation.
13262
13263         * dbus/dbus-message-handler.c:
13264         Make threadsafe.
13265
13266         * glib/dbus-gmain.c:
13267         Don't use peek_message anymore
13268
13269         * test/Makefile.am:
13270         * test/debug-thread.c:
13271         * test/debug-thread.h:
13272         Simple thread implementation that asserts() on deadlocks in
13273         single-threaded code.
13274
13275         * test/bus-test.c:
13276         (main) Call debug_threads_init.
13277
13278         * test/watch.c:
13279         Use disconnect message instead of disconnect callback.
13280
13281         * bus/connection.c:
13282         * bus/connection.h:
13283         Don't call dbus_connection_set_disconnect_function. Instead export
13284         bus_connection_disconnect.
13285
13286         * bus/dispatch.c:
13287         Call bus_connection_disconnect when we get a disconnected message.
13288
13289 2003-02-15  Havoc Pennington  <hp@pobox.com>
13290
13291         * dbus/dbus-message.c (dbus_message_new): fool around with the
13292         docs
13293
13294 2003-02-14  Havoc Pennington  <hp@pobox.com>
13295
13296         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13297
13298         * dbus/dbus-memory.c: fail if the debug functions indicate we
13299         should
13300
13301         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13302         (_dbus_decrement_fail_alloc_counter): debug functions to
13303         simulate memory allocation failures
13304
13305 2003-02-14  Havoc Pennington  <hp@pobox.com>
13306
13307         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13308         to DBusError
13309
13310 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13311
13312         * bus/driver.c: (bus_driver_handle_hello):
13313         * bus/driver.h:
13314         * bus/services.c: (bus_service_lookup):
13315         Reorder message sending so we get a more sane order.
13316
13317         * test/bus-test.c: (message_handler):
13318         Fix tyop.
13319
13320 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13321
13322         * bus/driver.c: (bus_driver_send_service_deleted),
13323         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13324         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13325         (bus_driver_send_welcome_message),
13326         (bus_driver_handle_list_services),
13327         (bus_driver_handle_acquire_service),
13328         (bus_driver_handle_service_exists):
13329         * dbus/dbus-bus.c: (dbus_bus_register_client),
13330         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13331         * dbus/dbus-errors.c: (dbus_result_to_string):
13332         * dbus/dbus-errors.h:
13333         * dbus/dbus-message.c: (dbus_message_append_args),
13334         (dbus_message_append_args_valist), (dbus_message_get_args),
13335         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13336         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13337         (dbus_message_iter_get_byte_array),
13338         (dbus_message_iter_get_string_array), (message_iter_test),
13339         (check_message_handling), (_dbus_message_test):
13340         * dbus/dbus-message.h:
13341         * test/bus-test.c: (main):
13342         Change fields to arguments in messages, so that they won't be
13343         confused with header fields.
13344
13345         * glib/test-dbus-glib.c: (main):
13346         Remove append_fields from hello message.
13347
13348 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13349
13350         * dbus/dbus-errors.c:
13351         * dbus/dbus-message.c:
13352         * dbus/dbus-string.c:
13353         Documentation fixes.
13354
13355 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13356
13357         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13358         (remove_timeout):
13359         Implement support for timeouts in dbus-glib.
13360
13361 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13362
13363         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13364         * dbus/dbus-message.c: (process_test_subdir):
13365         * test/break-loader.c: (find_breaks_based_on):
13366         Plug some memory leaks.
13367
13368 2003-02-13  Richard Hult  <rhult@codefactory.se>
13369
13370         * bus/main.c: Fix build.
13371
13372         * dbus/dbus-errors.h:
13373         * dbus/dbus-errors.c: Fix copyright for Anders.
13374
13375 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13376
13377         * bus/Makefile.am:
13378         Add utils.[ch]
13379
13380         * bus/connection.c: (bus_connection_foreach):
13381         Fix a warning.
13382
13383         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13384         (unescape_string), (new_section), (parse_section_start),
13385         (parse_key_value), (report_error), (bus_desktop_file_load),
13386         (bus_desktop_file_get_string):
13387         * bus/desktop-file.h:
13388         Use DBusError for error reporting.
13389
13390         * bus/dispatch.c: (send_one_message),
13391         (bus_dispatch_message_handler):
13392         * bus/driver.c: (bus_driver_send_service_deleted),
13393         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13394         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13395         (bus_driver_send_welcome_message),
13396         (bus_driver_handle_list_services),
13397         (bus_driver_handle_acquire_service),
13398         (bus_driver_handle_service_exists):
13399         * bus/loop.c: (bus_loop_run):
13400         * bus/main.c:
13401         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13402
13403         * bus/utils.c: (bus_wait_for_memory):
13404         * bus/utils.h:
13405         New files with general utility functions.
13406
13407         * dbus/dbus-internals.h:
13408         Remove _DBUS_HANDLE_OOM.
13409
13410 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13411
13412         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13413         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13414         * dbus/dbus-errors.h:
13415         Add DBusError structure.
13416
13417 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13418
13419         * test/data/valid-messages/standard-acquire-service.message:
13420         * test/data/valid-messages/standard-hello.message:
13421         * test/data/valid-messages/standard-list-services.message:
13422         * test/data/valid-messages/standard-service-exists.message:
13423         Add some standard messages.
13424
13425 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13426
13427         * bus/driver.c: (bus_driver_send_welcome_message),
13428         (bus_driver_handle_list_services),
13429         (bus_driver_handle_acquire_service),
13430         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13431         Update for API changes in libdbus.
13432
13433         * dbus/dbus-message.c: (dbus_message_new_reply):
13434         * dbus/dbus-message.h:
13435         Remove the name argument. The spec states that replies shouldn't
13436         have a name.
13437
13438 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13439
13440         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13441         (report_error), (bus_desktop_file_load), (lookup_section),
13442         (lookup_line), (bus_desktop_file_get_raw),
13443         (bus_desktop_file_get_string):
13444         * bus/desktop-file.h:
13445         Some fixes, and new functions for getting a key value from a section.
13446
13447 2003-02-13  Havoc Pennington  <hp@pobox.com>
13448
13449         * test/data/auth/fail-after-n-attempts.auth-script: new test
13450
13451         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13452         reject the client.
13453
13454 2003-02-13  Havoc Pennington  <hp@pobox.com>
13455
13456         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13457         dbus_credentials_match were backward
13458
13459         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13460         NO_CREDENTIALS and ROOT_CREDENTIALS
13461
13462         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13463         into here. Never process more commands after we've reached an
13464         end state; store further data as unused bytes.
13465
13466         * test/data/auth/*: add more auth tests
13467
13468         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13469         command to match exact string and EXPECT_UNUSED to match unused
13470         bytes
13471
13472         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13473
13474 2003-02-12  Havoc Pennington  <hp@pobox.com>
13475
13476         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13477         \r off of popped lines
13478
13479         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13480         scripts
13481
13482         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13483         SEND, append \r\n
13484
13485 2003-02-12  Havoc Pennington  <hp@pobox.com>
13486
13487         * dbus/Makefile.am: remove break-loader from the build, since it
13488         moved.
13489
13490         * configure.in: add --enable-gcov to turn on coverage profiling
13491         flags and disable optimization
13492
13493 2003-02-10  Havoc Pennington  <hp@pobox.com>
13494
13495         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13496         initial cut at test framework for DBusAuth from laptop.
13497         Doesn't quite work yet but it compiles and I need to get
13498         it off the 266mhz laptop. ;-)
13499
13500         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13501         fix a memleak in error case
13502
13503 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13504
13505         * bus/Makefile.am:
13506         * bus/desktop-file.c:
13507         * bus/desktop-file.h:
13508         Add a desktop file parser.
13509
13510 2003-02-11  Zack Rusin  <zack@kde.org>
13511
13512         * qt/message.[h|cpp]: sample implementation
13513         of the KDE wrapper for DBusMessage
13514
13515 2003-02-09  Zack Rusin  <zack@kde.org>
13516
13517         * test/bus-test.c: make_it_compile
13518         * doc/dbus-specification.sgml: minimal semantic fix
13519
13520 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13521
13522         Release 0.3
13523
13524         * NEWS: Update
13525
13526 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13527
13528         * dbus/Makefile.am:
13529         * dbus/dbus-break-loader.c:
13530         * test/Makefile.am:
13531         * test/break-loader.c:
13532         Move dbus-break-loader to test/ and rename it to break-loader.
13533
13534 2003-02-02  Havoc Pennington  <hp@pobox.com>
13535
13536         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13537         for code to manage cookies in your home directory
13538
13539         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13540
13541         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13542         to authenticate, then disconnect the client.
13543
13544 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13545
13546         * dbus/dbus-message.c (dbus_message_append_fields):
13547         Correct docs.
13548
13549 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13550
13551         * doc/dbus-specification.sgml:
13552         Update address format section.
13553
13554 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13555
13556         * test/Makefile.am:
13557         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13558         (message_handler), (new_connection_callback), (loop_quit),
13559         (loop_run), (main):
13560         Add bus test.
13561
13562 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13563
13564         * bus/driver.c: (bus_driver_handle_service_exists):
13565         Simplify the code a bit.
13566
13567         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13568         Fix a silly.
13569
13570 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13571
13572         * bus/Makefile.am:
13573         Add libdbus-daemon.la and link to it.
13574
13575 2003-02-01  James Willcox  <jwillcox@gnome.org>
13576
13577         * bus/driver.c: (bus_driver_handle_own_service):
13578         Actually include the service reply code in the message.
13579
13580 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13581
13582         * bus/driver.c: (bus_driver_handle_service_exists):
13583         Don't unref the incoming message.
13584
13585 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13586
13587         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13588
13589 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13590
13591         * dbus/dbus-server.c: (dbus_server_listen):
13592         * dbus/dbus-transport.c: (_dbus_transport_open):
13593         ifdef out the calls to the debug transport and server.
13594
13595 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13596
13597         * dbus/dbus-watch.c (dbus_watch_get_flags):
13598         Add note in the docs that ERROR or HANGUP won't be returned
13599         and are assumed always on.
13600
13601         * glib/dbus-gmain.c (add_watch):
13602         Always add IO_ERR | IO_HUP
13603
13604         * dbus/dbus-message.h:
13605         Add semicolon after dbus_message_iter_get_string_array().
13606         Makes qt code build again
13607
13608 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13609
13610         * bus/driver.c: (create_unique_client_name),
13611         (bus_driver_handle_hello):
13612         Don't take a name, just use a numeric id to identify
13613         each client.
13614
13615         * dbus/Makefile.am:
13616         * dbus/dbus-bus.c: (dbus_bus_register_client),
13617         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13618         * dbus/dbus-bus.h:
13619         Add new convenience functions for communicating with the bus.
13620
13621         * dbus/dbus-message.h:
13622
13623         * dbus/dbus-protocol.h:
13624         Fix a typo.
13625
13626 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13627
13628         * dbus/dbus-message.c (dbus_message_append_fields):
13629         Add some more doc comments.
13630
13631 2003-02-01  Havoc Pennington  <hp@pobox.com>
13632
13633         * dbus/dbus-break-loader.c (randomly_modify_length): change
13634         a 4-byte value in the message as if it were a length
13635
13636         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13637         execute bit on saved files
13638
13639 2003-02-01  Havoc Pennington  <hp@pobox.com>
13640
13641         * dbus/dbus-break-loader.c (main): new program to find messages
13642         that break the loader.
13643
13644         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13645         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13646
13647         * dbus/dbus-string.c (_dbus_string_set_byte): new
13648
13649 2003-01-31  Havoc Pennington  <hp@pobox.com>
13650
13651         * dbus/dbus-message.c: refactor the test code to be more general,
13652         in preparation for writing a "randomly permute test cases to
13653         try to break the loader" program.
13654
13655 2003-01-31  Havoc Pennington  <hp@pobox.com>
13656
13657         * doc/dbus-specification.sgml: work on the specification
13658
13659         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13660         the protocol version of the message.
13661
13662         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13663         no longer specifies that.
13664         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13665         1/2/3/4)
13666
13667         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13668         "break" for DBUS_TYPE_NIL, remove @todo
13669
13670 2003-01-31  Havoc Pennington  <hp@pobox.com>
13671
13672         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13673         just set_is_error/get_is_error as this is a commonly-used
13674         function, and write docs.
13675
13676 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13677
13678         * dbus/dbus-address.c: (dbus_address_entry_free):
13679         Free key and value lists.
13680
13681         * dbus/dbus-internals.c: (_dbus_type_to_string):
13682         Add the types we didn't have.
13683
13684         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13685         (_dbus_marshal_validate_arg):
13686         Add NIL types.
13687
13688         * dbus/dbus-message.c: (dbus_message_set_sender):
13689         Remove todo about being able to set sender to NULL.
13690
13691         (dbus_message_set_is_error_reply),
13692         (dbus_message_get_is_error_reply):
13693         * dbus/dbus-message.h:
13694         New functions.
13695
13696         * dbus/dbus-protocol.h:
13697         Add error reply flag.
13698
13699         * test/data/valid-messages/opposite-endian.message:
13700         Add NIL type to test.
13701
13702 2003-01-31  Havoc Pennington  <hp@pobox.com>
13703
13704         * doc/dbus-specification.sgml: fully specify the header.  Add
13705         flags and major protocol version, and change header/body len to
13706         unsigned.
13707
13708         * dbus/dbus-message-builder.c (append_saved_length): append length
13709         as uint32
13710
13711         * dbus/dbus-message.c (dbus_message_create_header): change header
13712         length and body length to unsigned. Add the new fields from the
13713         spec
13714         (_dbus_message_loader_return_buffer): unsigned header/body len
13715
13716 2003-01-30  Havoc Pennington  <hp@pobox.com>
13717
13718         * dbus/dbus-auth.c: rework to use only REJECTED, no
13719         MECHANISMS
13720
13721         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13722         use REJECTED, suggested by Mark McLoughlin
13723
13724 2003-01-30  Havoc Pennington  <hp@pobox.com>
13725
13726         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13727         a better way to report errors here. e.g.  "unix address lacks
13728         path" or something. also "no such file" when the path doesn't
13729         exist, etc.
13730
13731         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13732         leaking list nodes
13733         (dbus_parse_address): add @todo about documenting address format,
13734         and allowing , and ; to be escaped
13735
13736 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13737
13738         * dbus/Makefile.am:
13739         Add dbus-address.[ch]
13740
13741         * dbus/dbus-address.c: (dbus_address_entry_free),
13742         (dbus_address_entries_free), (create_entry),
13743         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13744         (dbus_parse_address), (_dbus_address_test):
13745         * dbus/dbus-address.h:
13746         New files for dealing with address parsing.
13747
13748         * dbus/dbus-connection.c:
13749         Document timeout functions.
13750
13751         * dbus/dbus-message.c:
13752         Document dbus_message_new_from_message.
13753
13754         * dbus/dbus-server-debug.c:
13755         Document.
13756
13757         * dbus/dbus-server.c: (dbus_server_listen):
13758         Parse address and use correct server implementation.
13759
13760         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13761         * dbus/dbus-string.h:
13762         New function with test.
13763
13764         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13765         * dbus/dbus-test.h:
13766         Add address tests.
13767
13768         * dbus/dbus-transport-debug.c:
13769         Document.
13770
13771         * dbus/dbus-transport.c: (_dbus_transport_open):
13772         Parse address and use correct transport implementation.
13773
13774 2003-01-30  Havoc Pennington  <hp@pobox.com>
13775
13776         * dbus/dbus-message.c: use message->byte_order instead of
13777         DBUS_COMPILER_BYTE_ORDER throughout.
13778         (dbus_message_create_header): pad header to align the
13779         start of the body of the message to 8-byte boundary
13780
13781         * dbus/dbus-marshal.h: make all the demarshalers take const
13782         DBusString arguments.
13783
13784         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13785         validate message args here, so we don't have to do slow validation
13786         later, and so we catch bad messages as they are incoming. Also add
13787         better checks on header_len and body_len. Also fill in
13788         message->byte_order
13789
13790         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13791         implemented properly)
13792         (_dbus_string_validate_nul): new function to check all-nul
13793
13794         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13795         get_arg_end_pos and remove all validation
13796         (_dbus_marshal_validate_arg): actually do validation here.
13797
13798 2003-01-29  Havoc Pennington  <hp@pobox.com>
13799
13800         * dbus/dbus-message.c (check_message_handling): fix assertion
13801         failure on set_client_serial
13802
13803 2003-01-28  Havoc Pennington  <hp@pobox.com>
13804
13805         * dbus/dbus-server-debug.c: Add doc section comments
13806
13807         * dbus/dbus-transport-debug.c: add doc section comments
13808
13809 2003-01-28  Havoc Pennington  <hp@redhat.com>
13810
13811         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13812         the reverse order from how I had it
13813         (_dbus_string_base64_encode): reverse encoding order. I was
13814         basically byteswapping everything during encoding.
13815
13816 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13817
13818         * dbus/dbus-connection-internal.h:
13819         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13820         (_dbus_connection_remove_timeout):
13821         Add functions for adding and removing timeouts.
13822
13823         * dbus/dbus-message.c: (dbus_message_new_from_message):
13824         Add new function that takes a message and creates an exact
13825         copy of it, but with the refcount set to 1.
13826         (check_message_handling):
13827         Fix build error.
13828
13829         * dbus/dbus-server-protected.h:
13830         * dbus/dbus-server.c: (_dbus_server_init_base),
13831         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13832         (dbus_server_set_timeout_functions):
13833         (_dbus_server_remove_timeout):
13834         New functions so that a server can add and remove timeouts.
13835
13836         (dbus_server_listen):
13837         Add commented out call to dbus_server_debug_new.
13838
13839         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13840         Actually set the handler, doh.
13841
13842         * dbus/dbus-transport.c: (_dbus_transport_open):
13843         Add commented out call to dbus_transport_debug_client_new.
13844
13845         * dbus/Makefile.am:
13846         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13847
13848 2003-01-28  Havoc Pennington  <hp@pobox.com>
13849
13850         * dbus/dbus-message.c (check_message_handling): function to check
13851         on the loaded message, iterates over it etc.
13852
13853 2003-01-28  Havoc Pennington  <hp@pobox.com>
13854
13855         * test/Makefile.am (dist-hook): fix make distdir
13856
13857         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13858
13859 2003-01-27  Havoc Pennington  <hp@pobox.com>
13860
13861         * dbus/dbus-mempool.c (time_for_size): replace printf with
13862         _dbus_verbose
13863
13864         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13865         empty lines; fix the SAVE_LENGTH stuff to be
13866         START_LENGTH/END_LENGTH so it actually works; couple other
13867         bugfixes
13868
13869         * test/Makefile.am (dist-hook): add dist-hook for .message files
13870
13871         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13872         can be constant or locked.
13873         (_dbus_string_free): allow freeing a const string as
13874         documented/intended
13875
13876         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13877
13878         * dbus/dbus-test-main.c (main): take an argument which is the
13879         directory containing test data
13880
13881         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13882         argument to this and load all the messages in test/data/
13883         checking that they can be loaded or not loaded as appropriate.
13884
13885 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13886
13887         * bus/dispatch.c: (bus_dispatch_message_handler):
13888         Dispatch messages sent to services.
13889
13890         * bus/driver.c: (bus_driver_send_service_deleted),
13891         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13892         (bus_driver_send_service_acquired):
13893         Add helper functions for sending service related messages.
13894
13895         (bus_driver_send_welcome_message):
13896         Send HELLO_REPLY instead of WELCOME.
13897
13898         (bus_driver_handle_list_services):
13899         Send LIST_SERVICES_REPLY instead of SERVICES.
13900
13901         (bus_driver_handle_own_service),
13902         (bus_driver_handle_service_exists):
13903         New message handlers.
13904
13905         (bus_driver_handle_message):
13906         Invoke new message handlers.
13907
13908         (bus_driver_remove_connection):
13909         Don't remove any services here since that's done automatically
13910         by bus_service_remove_owner now.
13911
13912         * bus/driver.h:
13913         New function signatures.
13914
13915         * bus/services.c: (bus_service_add_owner):
13916         Send ServiceAcquired message if we're the only primary owner.
13917
13918         (bus_service_remove_owner):
13919         Send ServiceAcquired/ServiceLost messages.
13920
13921         (bus_service_set_prohibit_replacement),
13922         (bus_service_get_prohibit_replacement):
13923         Functions for setting prohibit replacement.
13924
13925         (bus_service_has_owner):
13926         New function that checks if a connection is in the owner queue of
13927         a certain service.
13928
13929         * bus/services.h:
13930         Add new function signatures.
13931
13932         * dbus/dbus-list.c: (_dbus_list_test):
13933         Add tests for _dbus_list_remove_last and traversing the list backwards.
13934
13935         * dbus/dbus-list.h:
13936         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13937         go any further, so return NULL then.
13938
13939         * dbus/dbus-protocol.h:
13940         Add new messages, service flags and service replies.
13941
13942 2003-01-26  Havoc Pennington  <hp@pobox.com>
13943
13944         * dbus/dbus-message-builder.c: implement, completely untested.
13945
13946         * test/data/*: add data to be used in testing.
13947         ".message" files are our simple loadable text format.
13948         ".message-raw" will be binary dumps of messages.
13949
13950         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13951
13952 2003-01-26  Havoc Pennington  <hp@pobox.com>
13953
13954         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13955
13956         * dbus/dbus-errors.c (dbus_result_to_string): add
13957         file errors
13958
13959         * dbus/dbus-message-builder.c: new file, will contain code to load
13960         up messages from files. Not implemented yet.
13961
13962 2003-01-26  Havoc Pennington  <hp@pobox.com>
13963
13964         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13965         the sender by setting to NULL
13966
13967 2003-01-26  Havoc Pennington  <hp@pobox.com>
13968
13969         The unit tests pass, but otherwise untested.  If it breaks, the
13970         tests should have been better. ;-)
13971
13972         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13973         the connection.
13974
13975         * dbus/dbus-message.c: redo everything so we maintain
13976         message->header as the only copy of the various fields.
13977         This avoids the possibility of out-of-memory in some cases,
13978         for example dbus_message_lock() can't run out of memory anymore,
13979         and avoids extra copying. Figured I may as well go ahead and do
13980         this since it was busted for dbus_message_lock to not return
13981         failure on OOM, and dbus_message_write_header was totally
13982         unchecked for OOM. Also fixed some random other bugs.
13983
13984         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13985         that strings are nul-terminated. Also, end_pos can be equal
13986         to string length just not greater than, I think.
13987         (_dbus_marshal_set_int32): new function
13988         (_dbus_marshal_set_uint32): new function
13989         (_dbus_marshal_set_string): new function
13990
13991         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13992         a warning, init timeout_list to NULL
13993         (dbus_connection_send_message): don't use uninitialized variable
13994         "serial"
13995
13996         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13997
13998 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13999
14000         * bus/driver.c: (bus_driver_handle_hello),
14001         (bus_driver_send_welcome_message):
14002         Plug leaks
14003
14004 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14005
14006         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14007         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14008         (dbus_connection_unref):
14009         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14010         * dbus/dbus-message.c: (dbus_message_unref),
14011         Plug memory leaks.
14012
14013         (dbus_message_get_fields):
14014         Remove debugging printout.
14015
14016         (_dbus_message_loader_return_buffer):
14017         Don't store the header string.
14018
14019         (_dbus_message_test):
14020         Plug leaks.
14021
14022 2003-01-26  Richard Hult  <rhult@codefactory.se>
14023
14024         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14025         the file descriptor list, since it can change under us.
14026
14027 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14028
14029         * glib/dbus-gmain.c: (dbus_connection_prepare),
14030         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14031         (remove_watch), (dbus_connection_hookup_with_g_main):
14032         Rewrite the glib handling to use its own GSource instead of a
14033         GIOChannel so we can catch messages put in the queue while waiting
14034         for a reply.
14035
14036 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14037
14038         * bus/Makefile.am:
14039         * bus/connection.c: (connection_disconnect_handler),
14040         (connection_watch_callback), (bus_connection_setup):
14041         * bus/dispatch.c: (send_one_message),
14042         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14043         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14044         * bus/dispatch.h:
14045         * bus/driver.c: (bus_driver_send_service_deleted),
14046         (bus_driver_send_service_created), (bus_driver_handle_hello),
14047         (bus_driver_send_welcome_message),
14048         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14049         (bus_driver_handle_message):
14050         * bus/driver.h:
14051         Refactor code, put the message dispatching in its own file. Use
14052         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14053         is disconnected.
14054
14055 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14056
14057         * dbus/dbus-internals.h:
14058         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14059
14060         * dbus/dbus-message.c: (dbus_message_get_sender):
14061         * dbus/dbus-message.h:
14062         Implement dbus_message_get_sender.
14063
14064         * dbus/dbus-protocol.h:
14065         Add message and service defines.
14066
14067 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14068
14069         * dbus/dbus-connection.c: (dbus_connection_send_message):
14070         * dbus/dbus-message-internal.h:
14071         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14072         (dbus_message_write_header):
14073         Remove _dbus_messag_unlock and don't set the client serial on a
14074         message if one already exists.
14075
14076 2003-01-24  Havoc Pennington  <hp@pobox.com>
14077
14078         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14079         list_pool
14080
14081         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14082         on OOM
14083
14084 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14085
14086         * dbus/dbus-list.c: (alloc_link), (free_link):
14087         Use a memory pool for the links.
14088
14089 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14090
14091         * bus/connection.c: (bus_connection_foreach):
14092         * bus/connection.h:
14093         Add new bus_connection_foreach function.
14094
14095         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14096         Add function that broadcasts a message to all clients.
14097
14098         (bus_driver_send_service_created), (bus_driver_handle_hello),
14099         (bus_driver_send_welcome_message),
14100         (bus_driver_handle_list_services), (bus_driver_message_handler):
14101         Implement functions that take care of listing services, and notifying
14102         clients when new services are created.
14103
14104         * bus/services.c: (bus_services_list):
14105         * bus/services.h:
14106         Add new function that returns an array of strings with the currently
14107         registered services.
14108
14109         * glib/dbus-glib.h:
14110         * glib/dbus-gmain.c:
14111         Update copyright year.
14112
14113 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14114
14115         * dbus/dbus-connection.c: (dbus_connection_send_message):
14116         Unlock the message in case it was sent earlier.
14117
14118         (dbus_connection_send_message_with_reply_and_block):
14119         Remove the reply message from the list.
14120
14121         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14122         Set array_len and new_pos correctly.
14123
14124         (_dbus_marshal_test):
14125         Remove debug output.
14126
14127         * dbus/dbus-message-internal.h:
14128         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14129         New function that returns the reply serial.
14130
14131         (_dbus_message_unlock):
14132         New function that unlocks a message and resets its header.
14133
14134         (dbus_message_append_string_array),
14135         (dbus_message_get_fields_valist),
14136         (dbus_message_iter_get_field_type),
14137         (dbus_message_iter_get_string_array),
14138         (dbus_message_get_fields),
14139         (dbus_message_append_fields_valist):
14140         Handle string arrays.
14141
14142         (dbus_message_set_sender):
14143         Make this function public since the bus daemon needs it.
14144
14145         (decode_header_data):
14146         Set the reply serial to -1 initially.
14147
14148         * dbus/dbus-message.h:
14149         Add dbus_message_set_sender.
14150
14151 2003-01-24  Havoc Pennington  <hp@pobox.com>
14152
14153         * doc/dbus-specification.sgml: add some stuff
14154
14155 2003-01-22  Havoc Pennington  <hp@pobox.com>
14156
14157         * doc/dbus-specification.sgml: Start to document the protocol.
14158
14159 2003-01-22  Havoc Pennington  <hp@pobox.com>
14160
14161         * dbus/dbus-connection.c
14162         (dbus_connection_send_message_with_reply_and_block): add some @todo
14163
14164         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14165
14166 2003-01-21  Havoc Pennington  <hp@pobox.com>
14167
14168         (patch untested because can't compile)
14169
14170         * bus/driver.c (create_unique_client_name): make this function
14171         never recycle client names. Also, caller should initialize
14172         the DBusString.
14173
14174         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14175
14176 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14177
14178         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14179         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14180         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14181         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14182         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14183         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14184         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14185         * dbus/dbus-marshal.h:
14186         * dbus/dbus-protocol.h:
14187         Add support for marshalling and demarshalling integer, double
14188         and string arrays.
14189
14190 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14191
14192         * bus/Makefile.am:
14193         Add driver.[ch]
14194
14195         * bus/connection.c: (connection_disconnect_handler):
14196         Remove the connection from the bus driver's list.
14197
14198         (connection_watch_callback): Dispatch messages.
14199
14200         (free_connection_data): Free connection name.
14201
14202         (bus_connection_setup): Add connection to the bus driver's list.
14203         (bus_connection_remove_owned_service):
14204         (bus_connection_set_name), (bus_connection_get_name):
14205         Add functions for setting and getting the connection's name.
14206
14207         * bus/connection.h:
14208         Add function headers.
14209
14210         * bus/driver.c: (create_unique_client_name),
14211         (bus_driver_handle_hello_message),
14212         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14213         (bus_driver_add_connection), (bus_driver_remove_connection):
14214         * bus/driver.h:
14215         * bus/main.c:
14216         * bus/services.c: (bus_service_free):
14217         * bus/services.h:
14218         New file that handles communication and registreation with the bus
14219         itself.
14220
14221 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14222
14223         * dbus/dbus-connection.c: (dbus_connection_send_message):
14224         Add a new client_serial parameter.
14225
14226         (dbus_connection_send_message_with_reply):
14227         Remove a @todo since we've implemented the blocking function.
14228
14229         (dbus_connection_send_message_with_reply_and_block):
14230         New function that sends a message and waits for a reply and
14231         then returns the reply.
14232
14233         * dbus/dbus-connection.h:
14234         Add new functions.
14235
14236         * dbus/dbus-errors.c: (dbus_result_to_string):
14237         * dbus/dbus-errors.h:
14238         Add new DBUS_RESULT.
14239
14240         * dbus/dbus-message-internal.h:
14241         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14242         (_dbus_message_set_sender), (dbus_message_write_header),
14243         (dbus_message_new_reply), (decode_header_data),
14244         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14245         * dbus/dbus-message.h:
14246         Add new functions that set the reply serial and sender.
14247         Also marshal and demarshal them correctly and add test.
14248
14249         * dbus/dbus-protocol.h:
14250         Add new DBUS_MESSAGE_TYPE_SENDER.
14251
14252         * glib/dbus-glib.h:
14253         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14254         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14255         (dbus_connection_hookup_with_g_main):
14256         * glib/test-dbus-glib.c: (main):
14257         Rewrite to use GIOChannel and remove the GSource crack.
14258
14259         * test/echo-client.c: (main):
14260         * test/watch.c: (check_messages):
14261         Update for changed APIs
14262
14263 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14264
14265         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14266
14267         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14268         Create a DBusTimeoutList.
14269         (dbus_connection_set_timeout_functions): Add new function to
14270         set timeout callbacks
14271
14272         * dbus/dbus-connection.h: Add public DBusTimeout API.
14273
14274         * dbus/dbus-message.c: (dbus_message_get_service):
14275         * dbus/dbus-message.h:  New function.
14276
14277         * dbus/dbus-server.c: Fix small doc typo.
14278
14279         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14280
14281 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14282
14283         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14284         of the string, just as long as specified.
14285
14286 2003-01-19  Havoc Pennington  <hp@pobox.com>
14287
14288         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14289         new function
14290
14291         * dbus/dbus-server.c (dbus_server_set_max_connections)
14292         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14293         keep track of current number of connections, and add API for
14294         setting a max (but haven't implemented enforcing the max yet)
14295
14296 2003-01-18  Havoc Pennington  <hp@pobox.com>
14297
14298         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14299         reading/writing if read_watch != NULL or write_watch != NULL.
14300
14301         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14302         the message loader code to actually load message->header and
14303         message->body into the newly-created message.
14304
14305         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14306         in OOM case
14307
14308         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14309         (dbus_connection_get_max_message_size)
14310         (dbus_connection_set_max_live_messages_size)
14311         (dbus_connection_get_max_live_messages_size): implement some
14312         resource limitation functions
14313
14314         * dbus/dbus-resources.c: new file implementing some of the
14315         resource limits stuff
14316
14317         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14318         missing docs, add @todo to handle OOM etc.
14319
14320         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14321         docs
14322
14323 2003-01-18  Havoc Pennington  <hp@pobox.com>
14324
14325         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14326         connection if it hasn't been already.
14327
14328         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14329         replace with DisconnectFunction.
14330
14331 2003-01-18  Havoc Pennington  <hp@pobox.com>
14332
14333         Building --disable-verbose-mode --disable-asserts --disable-tests
14334         cuts the library from 112K to 45K or so
14335
14336         * configure.in: check for varargs macro support,
14337         add --enable-verbose-mode, --enable-asserts.
14338
14339         * dbus/dbus-internals.h (_dbus_assert): support
14340         DBUS_DISABLE_ASSERT
14341         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14342
14343 2003-01-18  Havoc Pennington  <hp@pobox.com>
14344
14345         * dbus/dbus-test.c: include config.h so that tests actually run
14346
14347         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14348         so the failure mode when that assumption fails will be plenty
14349         obvious.
14350
14351 2003-01-18  Havoc Pennington  <hp@pobox.com>
14352
14353         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14354
14355         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14356         the distribution
14357
14358         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14359         since we don't want to use those in make check
14360
14361 2003-01-15  Havoc Pennington  <hp@redhat.com>
14362
14363         Release 0.2
14364
14365         * NEWS: update
14366
14367 2003-01-15  Havoc Pennington  <hp@redhat.com>
14368
14369         * test/Makefile.am: fix so that test source code ends up in the
14370         distribution on make distcheck
14371
14372 2003-01-15  Havoc Pennington  <hp@redhat.com>
14373
14374         Release 0.1.
14375
14376         * NEWS: update
14377
14378 2003-01-15  Havoc Pennington  <hp@redhat.com>
14379
14380         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14381         fix build when --disable-tests
14382
14383         * Makefile.am (EXTRA_DIST): put HACKING in here
14384
14385         * HACKING: document procedure for making a tarball release.
14386
14387 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14388
14389         * bus/connection.c: (connection_error_handler),
14390         (bus_connection_setup):
14391         * bus/main.c: (main):
14392         Make sure that the DBusConnectionData struct is NULLed
14393         out to prevent a segfault.
14394
14395         * dbus/dbus-errors.c: (dbus_result_to_string):
14396         * dbus/dbus-errors.h:
14397         * dbus/dbus-message.c: (dbus_message_get_fields),
14398         (dbus_message_get_fields_valist), (_dbus_message_test):
14399         * dbus/dbus-message.h:
14400         Make dbus_message_get_fields return a result code so we can
14401         track invalid fields as well as oom.
14402
14403 2003-01-11  Havoc Pennington  <hp@pobox.com>
14404
14405         * configure.in: change --enable-test/--enable-ansi action-if-given
14406         to enable_foo=$enableval instead of enable_foo=yes
14407
14408 2003-01-08  Havoc Pennington  <hp@pobox.com>
14409
14410         * dbus/dbus-string.c (_dbus_string_align_length): new function
14411
14412         * dbus/dbus-test-main.c: move main() for test app here
14413         * dbus/dbus-test.c
14414         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14415         symbol to run tests, because dbus-test isn't in the main
14416         library
14417
14418         Code review nitpicks.
14419
14420         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14421         for people with narrow emacs ;-). Assert client_serial was filled
14422         in. Assert message->name != NULL.
14423         (dbus_message_append_fields): have "first_field_type" arg separate
14424         from va list, needed for C++ binding that also uses varargs IIRC
14425         and helps with type safety
14426         (dbus_message_new): add @todo about using DBusString to store
14427         service/name internally
14428         (dbus_message_new): don't leak ->service and ->name on OOM later
14429         in the function
14430         (dbus_message_unref): free the service name
14431         (dbus_message_get_fields): same change to varargs
14432         i.e. first_field_type
14433         (_dbus_message_loader_return_buffer): assert that the message data
14434         is aligned (if not it's a bug in our code). Put in verbose griping
14435         about why we set corrupted = TRUE.
14436         (decode_header_data): add FIXME that char* is evil.  Was going to
14437         add FIXME about evil locale-specific string.h strncmp, but just
14438         switched to wacky string-as-uint32 optimization. Move check for
14439         "no room for field name" above get_const_data_len() to avoid
14440         assertion failure in get_const_data_len if we have trailing 2
14441         bytes or the like. Check for service and name fields being
14442         provided twice. Don't leak service/name on error. Require field
14443         names to be aligned to 4 bytes.
14444
14445         * dbus/dbus-marshal.c: move byte swap stuff to header
14446         (_dbus_pack_int32): uscore-prefix
14447         (_dbus_unpack_int32): uscore-prefix
14448         (_dbus_unpack_uint32): export
14449         (_dbus_demarshal_string): add @todo complaining about use of
14450         memcpy()
14451         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14452         handling allowing corrupt data to go unchecked
14453
14454 2003-01-08  Havoc Pennington  <hp@redhat.com>
14455
14456         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14457         to the select() as needed for authentication. (should be using
14458         _dbus_poll() not select, but for another day)
14459
14460         * dbus/dbus.h: include dbus/dbus-protocol.h
14461
14462 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14463
14464         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14465         dbus-connection.h
14466
14467 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14468
14469         * dbus/dbus-internals.c: (_dbus_type_to_string):
14470         New function that returns a string describing a type.
14471
14472         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14473         * dbus/dbus-marshal.h:
14474         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14475         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14476         (dbus_message_iter_get_byte_array):
14477         * dbus/dbus-message.h:
14478         Add new convenience functions for appending and getting message fields.
14479         Also add demarshalling routines for byte arrays.
14480
14481 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14482
14483         * dbus/dbus-connection-internal.h:
14484         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14485         (_dbus_connection_get_next_client_serial),
14486         (dbus_connection_send_message):
14487         * dbus/dbus-internals.h:
14488         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14489         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14490         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14491         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14492         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14493         (_dbus_verbose_bytes), (_dbus_marshal_test):
14494         * dbus/dbus-marshal.h:
14495         * dbus/dbus-message-internal.h:
14496         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14497         (dbus_message_write_header), (_dbus_message_lock),
14498         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14499         (dbus_message_get_name), (dbus_message_append_int32),
14500         (dbus_message_append_uint32), (dbus_message_append_double),
14501         (dbus_message_append_string), (dbus_message_append_byte_array),
14502         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14503         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14504         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14505         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14506         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14507         (decode_header_data), (_dbus_message_loader_return_buffer),
14508         (message_iter_test), (_dbus_message_test):
14509         * dbus/dbus-message.h:
14510         * dbus/dbus-protocol.h:
14511         * dbus/dbus-test.c: (main):
14512         * dbus/dbus-test.h:
14513         * glib/test-dbus-glib.c: (message_handler), (main):
14514         * test/echo-client.c: (main):
14515         * test/watch.c: (check_messages):
14516         Make messages sendable and receivable for real.
14517
14518 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14519
14520         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14521         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14522         * dbus/dbus-message.c: (dbus_message_append_int32),
14523         (dbus_message_append_uint32), (dbus_message_append_double),
14524         (dbus_message_append_string), (dbus_message_append_byte_array):
14525         Handle OOM restoration.
14526
14527 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14528
14529         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14530         (_dbus_demarshal_string), (_dbus_marshal_test):
14531         * dbus/dbus-marshal.h:
14532         * dbus/dbus-message.c: (dbus_message_get_name),
14533         Document these functions.
14534
14535         (dbus_message_append_int32), (dbus_message_append_uint32),
14536         (dbus_message_append_double), (dbus_message_append_string),
14537         (dbus_message_append_byte_array):
14538         * dbus/dbus-message.h:
14539         Add functions for adding message fields of different types.
14540
14541         * dbus/dbus-protocol.h:
14542         Add the different types.
14543
14544 2003-01-05  Havoc Pennington  <hp@pobox.com>
14545
14546         * bus/connection.c: implement routines for handling connections,
14547         first thing is keeping a list of owned services on each connection
14548         and setting up watches etc.
14549
14550         * bus/services.c: implement a mapping from service names to lists
14551         of connections
14552
14553         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14554
14555         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14556         to use static mutexes for global data
14557
14558         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14559         collection of functions to set/get application-specific data
14560         on the DBusConnection.
14561
14562 2003-01-04  Havoc Pennington  <hp@pobox.com>
14563
14564         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14565         (_dbus_poll): new function
14566
14567         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14568         copied from GLib
14569
14570         * bus/loop.c: initial code for the daemon main loop
14571
14572 2003-01-04  Havoc Pennington  <hp@pobox.com>
14573
14574         * test/watch.c (error_handler): make it safe if the error handler
14575         is called multiple times (if we s/error handler/disconnect
14576         handler/ we should just guarantee it's called only once)
14577
14578         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14579         error handler on disconnect (it's quite possible we should
14580         just change the error handler to a "disconnect handler," I'm
14581         not sure we have any other meaningful errors)
14582
14583         * configure.in: check for getpwnam_r
14584
14585         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14586         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14587         mechanism as in SASL spec, using socket credentials
14588
14589         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14590         (_dbus_send_credentials_unix_socket): new function
14591
14592         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14593         dbus_accept()
14594         (_dbus_write): only check errno if <0 returned
14595         (_dbus_write_two): ditto
14596
14597 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14598
14599         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14600         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14601         (_dbus_marshal_test):
14602         * dbus/dbus-marshal.h:
14603         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14604         to _dbus_marshal_utf8_string. Also fix some tests.
14605
14606 2002-12-28  Harri Porten  <porten@kde.org>
14607
14608         * configure.in: added check for C++ compiler and a very cheesy
14609         check for the Qt integration
14610
14611         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14612
14613         * qt/Makefile.am: added
14614
14615         * qt/.cvsignore: added
14616
14617         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14618         latter, added #ifdef QT_THREAD_SUPPORT guard.
14619
14620         * dbus/Makefile.am: added missing headers for make dist
14621
14622 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14623
14624         * dbus/Makefile.am: fixup export-symbols-regex.
14625
14626 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14627
14628         * acinclude.m4: Add this file and put the
14629         PKG_CHECK_MODULE macro in it.
14630
14631 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14632
14633         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14634         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14635         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14636         (_dbus_marshal_test):
14637         Make the demarshalling routines align the pos argument.
14638         Add string marshalling tests and fix the obvious bugs
14639         discovered.
14640
14641 2002-12-26  Havoc Pennington  <hp@pobox.com>
14642
14643         * dbus/dbus-auth.c: fixes fixes fixes
14644
14645         * dbus/dbus-transport-unix.c: wire up support for
14646         encoding/decoding data on the wire
14647
14648         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14649         (_dbus_auth_decode_data): append to target string
14650         instead of nuking it.
14651
14652 2002-12-26  Havoc Pennington  <hp@pobox.com>
14653
14654         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14655         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14656         doh
14657
14658         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14659         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14660         now). Main point is because I wanted unpack_uint32 to implement
14661         _dbus_verbose_bytes
14662         (_dbus_verbose_bytes): new function
14663
14664         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14665
14666         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14667         mechanism to handle a corrupt message stream
14668         (_dbus_message_loader_new): fix preallocation to only prealloc,
14669         not prelengthen
14670
14671         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14672         (_dbus_string_test): enhance tests for copy/move and fix the
14673         functions
14674
14675         * dbus/dbus-transport-unix.c: Hold references in more places to
14676         avoid reentrancy problems
14677
14678         * dbus/dbus-transport.c: ditto
14679
14680         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14681         leak reference count in no-message case
14682
14683         * test/watch.c (do_mainloop): handle adding/removing watches
14684         during iteration over the watches. Also, ref the connection/server
14685         stored on a watch, so we don't try to mangle a destroyed one.
14686
14687         * dbus/dbus-transport-unix.c (do_authentication): perform
14688         authentication
14689
14690         * dbus/dbus-auth.c (get_state): add a state
14691         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14692         (_dbus_auth_get_unused_bytes): append the unused bytes
14693         to the passed in string, rather than prepend
14694
14695         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14696         the auth conversation DBusAuth
14697
14698         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14699         (_dbus_transport_new_for_domain_socket): when creating a
14700         transport, pass in whether it's a client-side or server-side
14701         transport so we know which DBusAuth to create
14702
14703 2002-12-03  Havoc Pennington  <hp@pobox.com>
14704
14705         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14706         _after_ finalizing the derived members
14707         (unix_connection_set): unref watch if we fail to add it
14708
14709         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14710         transport first, so that the connection owned by the
14711         transport will be valid as the transport finalizes.
14712
14713         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14714         if necessary, and remove watches from the connection.
14715
14716         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14717
14718 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14719
14720         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14721         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14722         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14723         (_dbus_marshal_test):
14724         * dbus/dbus-marshal.h:
14725         Add string marshal functions and have the demarshal functions
14726         return the new position.
14727
14728 2002-12-25  Havoc Pennington  <hp@pobox.com>
14729
14730         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14731         it is a simple protocol that just maps directly to SASL.
14732
14733         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14734         initial implementation, not actually used yet.
14735
14736         * dbus/dbus-string.c (_dbus_string_find): new function
14737         (_dbus_string_equal): new function
14738         (_dbus_string_base64_encode): new function
14739         (_dbus_string_base64_decode): new function
14740
14741 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14742
14743         * dbus/Makefile.am:
14744         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14745         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14746         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14747         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14748         * dbus/dbus-marshal.h:
14749         * dbus/dbus-protocol.h:
14750         * dbus/dbus-test.c: (main):
14751         * dbus/dbus-test.h:
14752         Add un-optimized marshalling/demarshalling routines.
14753
14754 2002-12-25  Harri Porten  <porten@kde.org>
14755
14756         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14757
14758 2002-12-24  Zack Rusin  <zack@kde.org>
14759
14760         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14761         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14762         main loop stuff
14763
14764 2002-12-24  Havoc Pennington  <hp@pobox.com>
14765
14766         * glib/dbus-gthread.c: fix include
14767
14768         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14769         I think glib API needs to change, though, as you don't
14770         want to use DBusMessageFunction, you want to use the
14771         DBusMessageHandler object. Probably
14772         dbus_connection_open_with_g_main_loop()
14773         and dbus_connection_setup_g_main_loop() or something like that
14774         (but think of better names...) that just create a connection
14775         that has watch/timeout functions etc. already set up.
14776
14777         * dbus/dbus-connection.c
14778         (dbus_connection_send_message_with_reply): new function just to
14779         show how the message handler helps us deal with replies.
14780
14781         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14782
14783         * dbus/dbus-string.c (_dbus_string_test): free a string that
14784         wasn't
14785
14786         * dbus/dbus-hash.c: use memory pools for the hash entries
14787         (rebuild_table): be more paranoid about overflow, and
14788         shrink table when we can
14789         (_dbus_hash_test): reduce number of sprintfs and write
14790         valid C89. Add tests for case where we grow and then
14791         shrink the hash table.
14792
14793         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14794
14795         * dbus/dbus-connection.c (dbus_connection_register_handler)
14796         (dbus_connection_unregister_handler): new functions
14797
14798         * dbus/dbus-message.c (dbus_message_get_name): new
14799
14800         * dbus/dbus-list.c: fix docs typo
14801
14802         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14803         an object representing a handler for messages.
14804
14805 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14806
14807         * glib/dbus-glib.h:
14808         * glib/dbus-gthread.c: (dbus_gthread_init):
14809         Don't use the gdbus prefix for public functions.
14810
14811 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14812
14813         * Makefile.am:
14814         * configure.in:
14815         Add GLib checks and fixup .pc files
14816
14817         * glib/Makefile.am:
14818         * glib/dbus-glib.h:
14819         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14820         (gdbus_connection_check), (gdbus_connection_dispatch),
14821         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14822         (dbus_connection_gsource_new):
14823         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14824         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14825         * glib/test-dbus-glib.c: (message_handler), (main):
14826         Add GLib support.
14827
14828 2002-12-15  Harri Porten  <porten@kde.org>
14829
14830         * autogen.sh: check for libtoolize before attempting to use it
14831
14832         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14833         struct.
14834
14835         * .cvsignore: ignore more stamp files
14836
14837         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14838
14839         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14840         without make install.
14841
14842 2002-12-15  Havoc Pennington  <hp@pobox.com>
14843
14844         * dbus/dbus-threads.c: add thread stubs that a higher library
14845         layer can fill in. e.g. the GLib wrapper might fill them in with
14846         GThread stuff. We still need to use this thread API to
14847         thread-safe-ize the library.
14848
14849 2002-12-12  Havoc Pennington  <hp@pobox.com>
14850
14851         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14852         below new interfaces and include fewer system headers.
14853
14854         * dbus/dbus-sysdeps.c (_dbus_read): new function
14855         (_dbus_write): new function
14856         (_dbus_write_two): new function
14857         (_dbus_connect_unix_socket): new function
14858         (_dbus_listen_unix_socket): new function
14859
14860         * dbus/dbus-message-internal.h: change interfaces to use
14861         DBusString
14862
14863 2002-12-11  Havoc Pennington  <hp@pobox.com>
14864
14865         * dbus/dbus-types.h: add dbus_unichar
14866
14867         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14868
14869         * dbus/dbus-connection.c (dbus_connection_send_message): return
14870         TRUE on success
14871
14872         * dbus/dbus-transport.c: include dbus-watch.h
14873
14874         * dbus/dbus-connection.c: include dbus-message-internal.h
14875
14876         * HACKING: add file with coding guidelines stuff.
14877
14878         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14879         handling here, for security purposes (as in vsftpd). Not actually
14880         using this class yet.
14881
14882         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14883         system/libc usage here, as in vsftpd, for ease of auditing (and
14884         should also simplify portability). Haven't actually moved all the
14885         system/libc usage into here yet.
14886
14887 2002-11-25  Havoc Pennington  <hp@pobox.com>
14888
14889         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14890         always print the first verbose message.
14891
14892 2002-11-24  Havoc Pennington  <hp@pobox.com>
14893
14894         * test/echo-client.c, test/echo-server.c: cheesy test
14895         clients.
14896
14897         * configure.in (AC_CHECK_FUNCS): check for writev
14898
14899         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14900         function
14901
14902         * dbus/dbus-list.c (_dbus_list_foreach): new function
14903
14904         * dbus/dbus-internals.c (_dbus_verbose): new function
14905
14906         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14907         representing a server that listens for connections.
14908
14909         * dbus/.cvsignore: create
14910
14911         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14912         public API for reporting errors
14913
14914         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14915         public object representing a connection that
14916         sends/receives messages. (Same object used for
14917         both client and server.)
14918
14919         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14920         Basic abstraction for different kinds of stream
14921         that we might read/write messages from.
14922
14923 2002-11-23  Havoc Pennington  <hp@pobox.com>
14924
14925         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14926         _DBUS_INT_MAX
14927
14928         * dbus/dbus-test.c (main): add list test, and include
14929         dbus-test.h as intended
14930
14931         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14932         (_dbus_hash_table_remove_int): return value indicates
14933         whether the entry existed to remove
14934
14935         * dbus/dbus-list.c: add linked list utility class,
14936         with docs and tests
14937
14938         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14939         array sometimes.
14940
14941 2002-11-23  Havoc Pennington  <hp@pobox.com>
14942
14943         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14944         DBUS_END_DECLS to nothing, that should fix this once and for all
14945
14946         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14947
14948         * dbus/dbus-message.c, dbus/dbus-hash.c:
14949         add some missing @brief
14950
14951 2002-11-23  Havoc Pennington  <hp@pobox.com>
14952
14953         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14954         to avoid confusing Doxygen
14955
14956         * dbus/dbus-hash.c: @} not }@
14957
14958         * dbus/dbus-message.c (struct DBusMessage): split out
14959         internals docs
14960
14961 2002-11-23  Havoc Pennington  <hp@pobox.com>
14962
14963         * configure.in: pile on more warning flags if using gcc
14964
14965         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14966         to document static functions
14967
14968         * configure.in: add summary to end of configure so it
14969         looks nice and attractive
14970
14971         * dbus/dbus-hash.c: finish implementation and write unit
14972         tests and docs
14973
14974         * configure.in: add --enable-tests to enable unit tests
14975
14976         * dbus/dbus-test.c: test program to run unit tests
14977         for all files in dbus/*, initially runs a test for
14978         dbus-hash.c
14979
14980         * dbus/dbus-internals.h: file to hold some internal utility stuff
14981
14982 2002-11-22  Havoc Pennington  <hp@redhat.com>
14983
14984         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14985         "ported" away from Tcl
14986
14987         * dbus/dbus-types.h: header for types such as dbus_bool_t
14988
14989 2002-11-22  Havoc Pennington  <hp@redhat.com>
14990
14991         * dbus/dbus.h: fixups for doc warnings
14992
14993         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14994         macros
14995         (QUIET): make it quiet so we can see warnings
14996
14997         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14998
14999 2002-11-22  Havoc Pennington  <hp@redhat.com>
15000
15001         * Makefile.am: include "Doxyfile" target in all-local
15002
15003         * configure.in: generate the Doxyfile
15004
15005         * Doxyfile.in: move Doxyfile here, so we can use
15006         configure to generate a Doxyfile with the right
15007         version number etc.
15008
15009 2002-11-22  Havoc Pennington  <hp@redhat.com>
15010
15011         * dbus/dbus-message.c: move inline docs into .c file
15012
15013         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15014         so all docs are under doc/
15015         (MAN_EXTENSION): generate man pages. Use extension
15016         ".3dbus" which matches ".3qt" on my system,
15017         I guess this is OK, I don't know really.
15018         (FILE_PATTERNS): look for .c files not .h, makes sense
15019         for plain C I think
15020
15021 2002-11-22  Havoc Pennington  <hp@pobox.com>
15022
15023         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15024         because any app can be a server, and any app can be a client,
15025         the bus is a special kind of server.
15026
15027 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15028
15029         * Doxyfile : adding. Still needs Makefile rules to be generated
15030         automatically (just run "doxygen" in the toplevel dir for now to
15031         generate docs)
15032
15033         * dbus/dbus-message.h : Adding sample docs (javadoc since
15034         resembles gtk-doc a little more)
15035
15036         * dbus/dbus.h : Adding sample docs
15037
15038 2002-11-21  Havoc Pennington  <hp@redhat.com>
15039
15040         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15041         so we can allow ourselves to include files directly,
15042         instead of having to use dbus.h
15043
15044         * dbus/dbus.h: fill in
15045
15046         * dbus/dbus-message.h: sketch out a sample header file.
15047         Include griping if you include it directly instead of
15048         via dbus.h
15049
15050         * dbus/dbus-macros.h: new file with macros for extern "C",
15051         TRUE/FALSE, NULL, etc.
15052
15053         * doc/file-boilerplate.c: put include guards in here
15054
15055 2002-11-21  Havoc Pennington  <hp@redhat.com>
15056
15057         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15058
15059         * COPYING: include the GPL as well, and license code
15060         under both AFL and GPL.
15061
15062 2002-11-21  Havoc Pennington  <hp@redhat.com>
15063
15064         * acconfig.h: get rid of this
15065
15066         * autogen.sh (run_configure): add --no-configure option
15067
15068         * configure.in: remove AC_ARG_PROGRAM to make
15069         autoconf complain less. add AC_PREREQ.
15070         add AC_DEFINE third arg.
15071
15072 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15073
15074         * doc/Makefile.am:
15075         Fix references so we can distcheck.
15076
15077 2002-11-21  Havoc Pennington  <hp@redhat.com>
15078
15079         * Initial module creation
15080