* tools/dbus-monitor.c: add profiling tools to dbus-monitor
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
4         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
5
6 2006-11-07  Havoc Pennington  <hp@redhat.com>
7
8         * HACKING: Update release instructions to include stuff about
9         stable releases, branching, etc. May not be totally correct,
10         please fix if needed, but keep instructions up-to-date so we do
11         each stable release consistently in the future.
12
13 2006-11-07  Havoc Pennington  <hp@redhat.com>
14
15         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
16         documentation updates. Bump faq/spec versions (not to 1.0; I don't
17         think the spec will be "finished"/1.0 when we ship the 1.0 library).
18
19 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
20
21         * bus/bus.c: Missed patch - pass in the context to the directory watch
22
23 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
24
25         * Released D-Bus 1.0 RC 3(0.95)
26
27 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
28
29         * bus/activation.c (bus_activation_new): don't fail if we can not read
30         the directory as it may not exist
31
32 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
33
34         * bus/config-parser.c (service_dirs_find_dir): use 
35         _dbus_list_get_next_link so we don't get stuck in an infinite loop
36         (start_busconfig_child): move processing of standard_session_servicedirs
37         tags here because they have no content
38         (bus_config_parser_content): check we don't have content in 
39         standard_session_servicedirs tag
40
41 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
42
43         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
44         Packagers need to own this directory
45
46 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
47
48         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
49         <standard_session_servicedirs> tag with a <sevicedir> tag that
50         points to the test service directory
51
52 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
53
54         * configure.in: Add a check for DIR *dirp->dd_fd
55
56         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
57         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
58         of both Solaris and Irix
59
60 2006-11-01  Havoc Pennington  <hp@redhat.com>
61
62         * bus/dbus-daemon.1.in: document standard_session_servicedirs
63
64 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
65
66         * configure.in: expose DBUS_DATADIR
67         
68         * bus/config-parser.c: add the standard_session_servicedirs element
69         to the parser
70         (bus_config_parser_content): process the standard_session_servicedirs
71         element by getting the standard directories from sysdeps and merging
72         them into the service directory list
73         (test_default_session_servicedirs): make sure we get what we expect
74
75         * bus/session.conf.in: replace the servicedir tag with the 
76         standard_session_servicedirs tag
77
78         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
79         dbus-sysdeps.h to avoid circular header dependencies
80
81         * dbus/dbus-sysdeps.h: add the typedef of DBusList
82
83         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
84         which takes a string of directories delimited by colons, parses them 
85         out, appends a suffix and puts them in a list ignoring empty elements
86         (_dbus_get_standard_session_servicedirs): returns the standard 
87         directories for a session bus to look for service activation files
88         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
89         DBUS_DATADIR directories
90
91         * test/data/valid-config-files/many-rules.conf: add the 
92         standard_session_servicedirs tag to the valid config file tests
93
94 2006-10-30  Havoc Pennington  <hp@redhat.com>
95
96         * tools/dbus-launch.1, doc/TODO: capture intent to change the
97         command line options of dbus-launch a bit post 1.0
98
99 2006-10-27  Havoc Pennington  <hp@redhat.com>
100         
101         * dbus/dbus-connection.c (dbus_connection_open_private): document
102         how to choose shared vs. private connections
103
104 2006-10-27  Havoc Pennington  <hp@redhat.com>
105
106         * dbus/dbus-test.c: enclose more of the file in the
107         DBUS_BUILD_TESTS check.
108
109         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
110         DBUS_DISABLE_ASSERT case.
111
112         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
113         that it only works on the server side
114
115         * dbus/dbus-bus.c: add a global lock covering the BusData we
116         attach to each connection
117         (internal_bus_get): lock our access to the BusData
118         (dbus_bus_register): lock the entire registration process
119         with _DBUS_LOCK(bus_datas). If we get the lock and 
120         registration is already complete, silently return (vs. previous
121         behavior of aborting).
122         (dbus_bus_set_unique_name): lock the BusData
123         (dbus_bus_get_unique_name): lock the BusData
124
125 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
126
127         * bus/config-parser.c (service_dirs_find_dir, 
128         service_dirs_append_unique_or_free, 
129         service_dirs_append_link_unique_or_free): New static methods
130         for only appending unique service directory names into
131         the service directory list
132         (merge_included, bus_config_parser_content): Only add unique
133         service directory names into the list
134
135 2006-10-27  Havoc Pennington  <hp@redhat.com>
136
137         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
138         variables volatile, suggested by Thiago. Document struct fields.
139         (PTHREAD_CHECK): remove pthread error checking if assertions are
140         disabled, should reduce the no-assertions case to the bare
141         minimum code.
142
143 2006-10-26  Havoc Pennington  <hp@redhat.com>
144         
145         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
146         to be recursive
147         (_dbus_pthread_mutex_unlock): make it recursive
148         (_dbus_pthread_condvar_wait): save/restore the recursion count
149         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
150
151 2006-10-26  Havoc Pennington  <hp@redhat.com>
152
153         * doc/dbus-specification.xml: clarify the UUID text slightly
154
155         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
156         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
157         in preparation for being able to extend them for e.g. recursive
158         mutexes.
159
160 2006-10-26  Havoc Pennington  <hp@redhat.com>
161
162         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
163         condition variables relate to recursive mutexes.
164         
165         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
166         dbus/dbus-threads.c: Split the platforms-specific thread 
167         implementations into their own files.
168         
169         * dbus/dbus-sysdeps-pthread.c
170         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
171         was backward. Not that anything uses it.
172
173 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
174
175         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
176         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
177         needs to be cleaned up more.
178
179         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
180         up the CREDS issue.
181
182 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
183
184         * configure.in, dbus-1.pc.in: Check to see if thread methods 
185         are in glibc or libpthread and add -lpthread to the link stage 
186         if it is the latter
187
188 2006-10-26  Thiago Macieira  <thiago@kde.org>
189
190         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
191         bug 8780: the connection lock is only required while recording
192         the shared connection, so protect only that code
193         section. Don't require connection_lookup_shared to return a
194         locked connection.
195
196 2006-10-26  Thiago Macieira  <thiago@kde.org>
197
198         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
199         check if get_machine_uuid() returns NULL before proceeding any
200         further: we can't init the X atoms or create a session file
201         name if there is no machine ID.
202         This solves a crash reported by some users if
203         --exit-with-session was used without --autolaunch=<machine-id>
204
205 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
206
207         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
208         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
209
210         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
211         before we run dbus-launch
212
213         * configure.in: define TEST_BUS_BINARY to be the full path to 
214         dbus-daemon in the build root 
215
216 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
217
218         * dbus/Makefile.am:
219         * tools/Makefile.am:
220         * toos/dbus-uuidgen.1:
221                 Move the machine-id file to /var/lib/dbus 
222
223 2006-10-24  David Zeuthen  <davidz@redhat.com>
224
225         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
226         _dbus_assert (thread_init_generation != _dbus_current_generation)
227         not _dbus_assert (thread_init_generation == _dbus_current_generation)
228
229 2006-10-24  Thiago Macieira  <thiago@kde.org>
230
231         * dbus/dbus-sysdeps.h:
232         * dbus/dbus-sysdeps-unix.c: Add function
233         _dbus_make_file_world_readable that chmods a file to 0644.
234
235         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
236         Avoid writing to the static "argv" array, thereby avoiding a
237         COW on the child process.
238
239         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
240         call _dbus_make_file_world_readable on the created file.
241
242 2006-10-23  David Zeuthen  <davidz@redhat.com>
243
244         * dbus/dbus-memory.c: Use atomic variable to protect
245         n_blocks_outstanding otherwise OOM will be reported using SMP on
246         some arches
247         
248         * bus/dispatch.c: Add missing end of line characters
249
250         * bus/desktop-file.c (parse_section_start, parse_key_value) 
251         (bus_desktop_file_load): Propertly handle OOM
252
253         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
254         thread_init_generation equals _dbus_current_generation, not 0
255
256 2006-10-22  Havoc Pennington  <hp@redhat.com>
257
258         * dbus/dbus-connection-internal.h: move prototype of
259         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
260         it isn't in a public header and doesn't end up in the DBusBus
261         group in Doxygen
262
263 2006-10-21  Havoc Pennington  <hp@redhat.com>
264
265         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
266         the tarball if packagers want to run it
267
268         * cleanup-man-pages.sh: Add a script which munges all the internal
269         API man pages out of the Doxygen output. This reduces the size of
270         the installed man pages from 7 to 2 megs, and avoids
271         namespace-polluting pages. Right now (like Doxygen) this script
272         isn't in the build, it's something packagers can do manually.
273
274 2006-10-21  Havoc Pennington  <hp@redhat.com>
275
276         * dbus/dbus-connection.h: don't include the watch/timeout
277         functions in connection section
278
279 2006-10-21  Havoc Pennington  <hp@redhat.com>
280
281         * Documentation! Whee! Doxygen now 100% silent. If you make it
282         angry again, you will be punished.
283         
284 2006-10-21  Havoc Pennington  <hp@redhat.com>
285
286         * More documentation - all public API now documented according to
287         Doxygen
288
289 2006-10-21  Havoc Pennington  <hp@redhat.com>
290
291         * Document a bunch of undocumented stuff
292         
293 2006-10-21  Havoc Pennington  <hp@redhat.com>
294
295         * Clean up Doxygen group markers for public API so Doxygen finds
296         everything (not comprehensively fixed for private API).
297         Means all remaining Doxygen warnings are just about missing docs
298         and thus pretty simple to resolve.
299         
300 2006-10-21  Havoc Pennington  <hp@redhat.com>
301         
302         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
303
304         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
305         as DBUS_GNUC_DEPRECATED
306
307 2006-10-21  Havoc Pennington  <hp@redhat.com>
308
309         * Move all private API into the private Doxygen group sections of
310         the files, so they don't show up in the public API docs
311         
312 2006-10-21  Havoc Pennington  <hp@redhat.com>
313
314         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
315         dbus_message_iter_get_array_len().
316
317         * throughout: documentation improvements.
318
319 2006-10-20  Havoc Pennington  <hp@redhat.com>
320
321         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
322         matter, and the message-loader-breaker thing since nobody is going
323         to do it.  Add an item to 1.0 about supporting recursive locks
324         in dbus_threads_init_default() though, since it should be easy.
325
326         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
327         Fix this in the !dispatch case to avoid busy-looping after
328         disconnection
329
330         * More misc docs improvements
331
332 2006-10-19  Havoc Pennington  <hp@redhat.com>
333
334         * more Doxygen-related fixes (lots of moving things from the
335         public to internal section in dbus-connection.c)
336
337 2006-10-19  Havoc Pennington  <hp@redhat.com>
338
339         * Fix a pile of Doxygen warnings and missing docs
340
341 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
342
343         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
344         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
345         instead of a void *.  kqueue uses this to get the context's loop
346         while the other modules ignore the parameter.  This allows us to
347         avoid platform conditionals
348
349         * bus/bus.c (process_config_postinit): Pass in the context to the 
350         watch
351
352 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
353
354         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
355         when starting the system bus
356
357 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
358
359         * configure.in: More fixups for cross compile (Patch from 
360         Marco Pracucci <development at pracucci dot com>)
361
362 2006-10-17  Havoc Pennington  <hp@redhat.com>
363
364         * tools/dbus-send.c (main): don't close shared connection, fix
365         from Timo Hoenig
366
367 2006-10-17  Havoc Pennington  <hp@redhat.com>
368
369         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
370
371         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
372         since realistically it doesn't look like we'll be changing it
373         anymore.
374
375 2006-10-17  Havoc Pennington  <hp@redhat.com>
376
377         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
378         be used for return_if_fail type warnings; prefixes the pid, and
379         fatal by default.
380
381 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
382
383         * configure.in: Released 1.0 RC 2(0.94)
384         Add check for -fPIC and enable it if available
385
386 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
387
388         * doc/TODO: Remove the check TODO item
389
390 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
391
392         * dbus-transport-socket.c (exchange_credentials):
393         Print out more detailed errors if reading or sending
394         credentials fail (Patch from Julio M. Merino Vidal 
395         <jmmv at NetBSD dot org>)
396
397 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
398
399         * configure.in: when checking for posix getpwnam_r assume true
400         for cross compiles
401
402 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
403
404         * configure.in: Check for gethostbyname first before we check for it
405         in libnsl.  On gnu systems it is implemeneted 
406
407 2006-10-13  Havoc Pennington  <hp@redhat.com>
408
409         * dbus/dbus-connection.c
410         (dbus_connection_send_with_reply_and_block): fix to handle closed
411         connections, from Tambet Ingo bug #8631
412
413 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
414
415         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
416
417 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
418
419         * test/name-test/Makefile.am: don't link against both libdbus and
420         libdbus-convenience
421
422 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
423
424         * configure.in: check for dirfd even if it is a macro
425         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
426
427 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
428
429         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
430         avoid using dirfd on systems that don't have dirfd 
431         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
432
433 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
434
435         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
436         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
437
438         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
439         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
440         macro because _dbus_abort calls it
441
442         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
443         works
444
445 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
446
447         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
448         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
449
450 2006-10-02  Thiago Macieira  <thiago@kde.org>
451
452         * tools/dbus-launch.c (main): make it complain and abort
453         execution in case an unknown option is given. Also, process
454         the '--' argument as the end of arguments.
455
456 2006-10-01  Havoc Pennington  <hp@redhat.com>
457
458         * tools/dbus-launch.c (print_variables): if no syntax is given,
459         don't print something that's sort-of-half-sh-syntax, just print
460         a plain key-value pairs thing.
461
462         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
463         the local machine representation (but still have the hostname in
464         the display). Remove the hostname from the display if it is
465         localhost. Change session files to be named
466         ~/.dbus/session-bus/machine-display. Change X atoms to be
467         underscore-prefixed so nobody whines about ICCCM compliance.
468         Otherwise name them the same as the env variables.
469         Change session file format to include key-value pairs and an
470         explanatory comment. Keys are the same as the env variables.
471         (set_address_in_x11): X property format can't depend on
472         sizeof(pid_t) on a particular machine, fix to always be 32 bits
473
474         * tools/dbus-launch.c: make --autolaunch take a machine id
475         argument. If --autolaunch is used with a program to run, complain
476         for now (but add a FIXME). Also, don't look for existing bus if 
477         there's a program to run (but add a FIXME).
478
479         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
480         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
481         just to get this, and avoids duplicating uuid-reading code).
482
483         * tools/dbus-launch.1: clarify various things
484         
485 2006-10-01  Havoc Pennington  <hp@redhat.com>
486
487         * test/test-service.c (path_message_func): remove broken extra
488         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
489
490         * test/test-shell-service.c (path_message_func): same fix
491         
492         * dbus/dbus-connection.c
493         (_dbus_connection_get_dispatch_status_unlocked): break up the
494         function a little for clarity and fix the notification of
495         dbus-bus.c to not require dispatch to be complete
496
497         * dbus/dbus-connection.c (dbus_connection_unref): improve the
498         warning when you try to finalize an open connection.
499         
500 2006-10-01  Havoc Pennington  <hp@redhat.com>
501
502         * dbus/dbus-bus.c
503         (internal_bus_get): only weak ref the connection; this means 
504         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
505         called safely in any context
506         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
507         unref
508
509         * dbus/dbus-connection.c
510         (_dbus_connection_get_dispatch_status_unlocked): move
511         _dbus_bus_notify_shared_connection_disconnected_unlocked here
512         when queuing Disconnected instead of when the Disconnected message
513         arrives, so dbus_bus_get() won't return closed connections.
514         
515 2006-10-01  Havoc Pennington  <hp@redhat.com>
516
517         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
518         Add a hack to make DBusNewConnectionFunction work right.
519
520         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
521         the hack here. Also, fix the todo about refcount leak.
522         
523         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
524         and use the hack here
525         
526         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
527         "shareable" flag; this was completely broken, since it meant 
528         dbus_connection_open() returned a connection of unknown
529         shared-ness. Now, we always hold a ref on anything opened 
530         as shareable.
531
532         Move the call to notify dbus-bus.c into
533         connection_forget_shared_unlocked, so libdbus consistently forgets
534         all its knowledge of a connection at once. This exposed numerous
535         places where things were totally broken if we dropped a ref inside
536         get_dispatch_status_unlocked where
537         connection_forget_shared_unlocked was previously, so move
538         connection_forget_shared_unlocked into
539         _dbus_connection_update_dispatch_status_and_unlock. Also move the
540         exit_on_disconnect here.
541
542         (shared_connections_shutdown): this assumed weak refs to the
543         shared connections; since we have strong refs now, the assertion 
544         was failing and stuff was left in the hash. Fix it to close
545         still-open shared connections.
546         
547         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
548         debug pipe connections
549         
550         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
551         dbus-bus.c if the closed connection is in fact shared
552         (_dbus_connection_close_possibly_shared): rename from 
553         _dbus_connection_close_internal
554         (dbus_connection_close, dbus_connection_open,
555         dbus_connection_open_private): Improve docs to explain the deal
556         with when you should close or unref or both
557
558         * dbus/dbus-bus.c
559         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
560         from _dbus_bus_check_connection_and_unref_unlocked and modify to
561         loop over all connections
562
563         * test/test-utils.c (test_connection_shutdown): don't try to close
564         shared connections.
565
566         * test/name-test/test-threads-init.c (main): fix warnings in here
567
568         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
569         env variable to cause blocking waiting for gdb; drop
570         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
571         unconditionally.
572
573         * configure.in: add -export-dynamic to libtool flags if assertions enabled
574         so _dbus_print_backtrace works.
575
576         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
577         instead of _dbus_verbose to print the backtrace, and diagnose lack 
578         of -rdynamic/-export-dynamic
579         
580 2006-09-30  Havoc Pennington  <hp@redhat.com>
581
582         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
583         (internal_bus_get): fix screwy code formatting. whoever committed
584         that was not paying attention!
585
586 2006-09-30  Havoc Pennington  <hp@redhat.com>
587
588         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
589         reflect addition of interfaces.
590
591         * doc/dbus-specification.xml: describe a new
592         org.freedesktop.DBus.Peer.GetMachineId method
593
594         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
595         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
596         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
597         at end of skip_white
598         (_dbus_string_chop_white): new function
599
600         * bus/connection.c (bus_connections_setup_connection): call
601         dbus_connection_set_route_peer_messages.
602
603         * dbus/dbus-connection.c
604         (_dbus_connection_peer_filter_unlocked_no_update): modify to
605         support a GetMachineId method.
606
607         Also, support a new flag to let the bus pass peer methods through
608         to apps on the bus, which can be set with
609         dbus_connection_set_route_peer_messages.
610
611         Finally, handle and return an error for anything unknown on the
612         Peer interface, which will allow us to extend the Peer interface
613         in the future without fear that we're now intercepting something
614         apps were wanting to see.
615         
616         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
617         dbus/dbus-uuidgen.c
618
619         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
620         binary here, since most of the code is already in libdbus
621
622         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
623         uuid from the system config file
624
625         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
626         (_dbus_read_uuid_file_without_creating) 
627         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
628         uuid-related functions, partly factored out from dbus-server.c
629
630         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
631         DBUS_ERROR_FILE_EXISTS instead of EEXIST
632
633         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
634
635         * tools/dbus-cleanup-sockets.1: explain what the point of this
636         thing is a bit more
637
638         * autogen.sh (run_configure): add --config-cache to default
639         configure args
640
641         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
642         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
643
644         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
645         don't try to save address, fixes crash in make check
646         
647 2006-09-30  Thiago Macieira  <thiago@kde.org>
648
649         * configure.in: add DBUS_BINDIR as a #define to C source code.
650
651         * tools/dbus-launch.c
652         * tools/dbus-launch.h
653         * tools/dbus-launch-x11.c:
654         * tools/dbus-launch.1: Add the --autolaunch option to
655         dbus-launch, which makes it scan for an existing session
656         started with --autolaunch. With that option, it also creates
657         an X11 window and saves the bus address and PID to it.
658
659         * dbus/dbus-sysdeps.h:
660         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
661         a function that runs "dbus-launch --autolaunch" to retrieve
662         the running D-Bus session address (or start one if none was running)
663
664         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
665         address protocol, which tries to get the running session from
666         dbus-launch.
667
668         * dbus/dbus-bus.c:
669         * dbus/dbus-internals.h: Make "autolaunch:" be the default
670         D-Bus session bus address.
671
672         * dbus/dbus-connection.c: Fix horrible typo in error message.
673
674 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
675
676         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
677
678 2006-09-17  Havoc Pennington  <hp@redhat.com>
679
680         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
681         fix so that if unix_user_function is set on windows, we still
682         do the default check that the auth identity matches the bus identity
683
684 2006-09-16  Havoc Pennington  <hp@redhat.com>
685
686         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
687         to _dbus_transport_open_platform_specific,
688         _dbus_transport_open_socket,
689         and _dbus_transport_open_debug_pipe
690
691         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
692
693 2006-09-16  Havoc Pennington  <hp@redhat.com>
694
695         Attempt auditing public API to remove all cases where a Unix
696         function returns weird emulated goo to Windows. This probably 
697         breaks the bus daemon on Windows, to fix it again we may 
698         need to stop processing unix-specific config options on Windows,
699         and may need to add Windows-specific public API or config options.
700         
701         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
702         to reflect added interfaces; should not break soname.
703         
704         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
705         not invoke unix user function on Windows. Kind of a hacky fix, but 
706         we don't want a "unix uid" leaking out on Windows.
707
708         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
709         to get the socket fd on Windows or UNIX
710         (dbus_connection_get_unix_fd): make this always fail on Windows
711
712 2006-09-16  Havoc Pennington  <hp@redhat.com>
713
714         * dbus/dbus-server.c (dbus_server_listen): change how this works
715         to be able to delegate to a set of handlers that can succeed,
716         fail, or choose not to handle. Allows us to have 
717         dbus_server_listen_platform_specific.
718
719         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
720         factor out the tcp socket stuff to be used on windows, leaving
721         unix domain socket only in dbus-socket-unix.c
722
723         * dbus/dbus-transport-socket.c
724         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
725         stuff to be used on windows, leaving unix domain socket only 
726         in dbus-transport-unix.c
727
728         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
729         temporary hack to be sure this fails on windows
730         (dbus_connection_get_unix_process_id): ditto
731
732 2006-09-16  Havoc Pennington  <hp@redhat.com>
733
734         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
735         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
736         _dbus_open_socket so the domain/type/protocol from system headers
737         are not required. This is kind of pointless though unless we move
738         part of _dbus_connect_tcp_socket into sysdeps.c instead of
739         sysdeps-unix.c, which would mean adding a wrapper around
740         bind/listen/etc.
741         Also, add DBusError to the socket-opening functions so they 
742         don't require use of errno.
743
744 2006-09-16  Havoc Pennington  <hp@redhat.com>
745
746         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
747         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
748
749         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
750         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
751         functions specifically for sockets only, and move generic 
752         read/write/open/close into unix-specific code.
753
754 2006-09-14  Havoc Pennington  <hp@redhat.com>
755
756         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
757         complaint about accessing revents when poll returns 0, from Julian Seward.
758
759 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
760
761         * Released 1.0 RC 1 (0.93) 
762
763 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
764
765         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
766         use _dbus_close instead of close
767
768 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
769
770         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
771         credentials.  Fixes "external" authentication under e.g. NetBSD
772         which does not support any other socket credentials mechanism.
773         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
774
775 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
776
777         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
778         dbus_threads_init and be used by the dbus mutex functions to
779         avoid deadlocks.
780
781         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
782
783 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
784
785         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
786         use threadsafe readdir_r instead of readdir
787
788 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
789
790         * dbus-threads.c (dbus_threads_init_default): New method for
791         initializing the internal thread implementation (Patch from
792         Alexander Larsson <alexl at redhat dot com>)
793
794 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
795
796         * remove a bunch of todo items from the 1.0 list
797
798 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
799
800         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
801         key not found
802
803 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
804
805         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
806         complex debugging code
807
808         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
809         between the test suite ifdefs
810         (_dbus_verbose_bytes): return if verbosity is not enabled 
811
812 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
813
814         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
815         remove DBusMark
816
817 2006-09-10  Havoc Pennington  <hp@redhat.com>
818
819        patch mostly by Peter Kümmel, bug #8211
820         
821         * dbus/dbus-sysdeps-unix.c: new file, which splits out
822         unix-specific stuff in dbus-sysdeps.c
823
824         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
825         and move unix-specific stuff to dbus-sysdeps-unix.c
826
827         * configure.in: check HAVE_ERRNO_H
828         
829 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
830
831         * bus/test-main.c (main): Initialize threading during tests
832
833         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
834         Unlock connection on error
835         (generate_local_error_message): static method for generating
836         an error message when we don't have a message to reply to
837         (_dbus_connection_block_pending_call): Send a disconnect error
838         instead of just a timeout (NULL) when the bus gets disconnected
839         while blocking for a reply.
840         
841 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
842
843         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
844         filters (Patch from Kimmo Hämäläinen 
845         <kimmo dot hamalainen at nokia dot com>)
846
847 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
848
849         * dbus/dbus-connection-internal.h: Add prototype for 
850         _dbus_connection_test_get_locks to remove warning
851
852 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
853
854         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
855         close child_err_report_pipe[WRITE_END] on exec (Patch from 
856         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
857
858 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
859
860         * Clean up close calls to use _dbus_close (Patch from 
861         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
862
863 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
864
865         * doc/TODO:
866         - Remove pending call locking todo item
867         - dbus_connection_open now holds hard ref.  Remove todo item
868         - do proper locking on _dbus_bus_check_connection_and_unref
869           and handle DBUS_BUS_STARTER. Remove todo item
870         - Warn on closing of a shared connection.  Remove todo item
871
872         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
873         dbus/dbus-connection.c: Use the dbus_connection_close_internal
874         so we don't get the warning when closing shared connections
875
876         * test/test-service.c, test/test-shell-service.c: Applications
877         don't close shared connections themselves so we unref instead of
878         close
879
880         * test/test-utils.c (test_connection_shutdown): Close the connection
881
882         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
883         _dbus_bus_check_connection_and_unref_unlocked since we only call this
884         method on a locked connection.  
885         Make sure we call _dbus_connection_unref_unlocked instead of 
886         dbus_connection_unref also.
887         Handle DBUS_BUS_STARTER correctly
888
889         * dbus/dbus-connection.c (connection_record_shared_unlocked):
890         Mark as shared and hard ref the connection
891         (connection_forget_shared_unlocked): Remove the hard ref from the 
892         connection
893         (_dbus_connection_close_internal_and_unlock):  New internal function
894         which takes a locked connection and unlocks it after closing it
895         (_dbus_connection_close_internal): New internal function which acts
896         like the origonal dbus_connection_close method by grabbing a connection
897         lock and calling _dbus_connection_close_internal_and_unlock
898         (dbus_connection_close): Public close method, warns when the app
899         trys to close a shared connection
900
901 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
902
903         * bus/driver.c:
904         (bus_driver_generate_introspect_string): New method for populating
905         a DBusString with the introspect data
906         (bus_driver_handle_introspect): Move introspect generation code to 
907         bus_driver_generate_introspect_string
908
909         * bus/main.c:
910         (introspect): New function which prints out the intropect data and
911         exits
912         (main): Add a --introspect switch
913
914 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
915
916         * doc/TODO: Removed dtd publishing item.  
917         It seems the dtd has already been added at
918         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
919
920 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
921
922         * doc/TODO, various source files: Audited todo's and FIXME's and
923         prepended the ones we should be looking at with 1.0.  Those
924         prepended with 1.0? need clerification or might not be needed
925         for 1.0
926
927 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
928
929         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
930         NULL in the public API (Patch from Kimmo Hämäläinen 
931         <kimmo dot hamalainen at nokia dot com>)
932
933 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
934
935         * configure.in: Fix for OS-X compile time endian issues (patch from
936         Benjamin Reed <ranger at befunk dot com>)
937
938 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
939
940         * configure.in: Check for no-common compiler flag (OS-X fix from
941         Benjamin Reed <ranger at befunk dot com>)
942
943 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
944
945         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
946         <fcrozat at mandriva dot com>)
947
948 2006-08-29  Havoc Pennington  <hp@redhat.com>
949
950         * test/test-service.c (path_message_func): fix lack of return value
951
952         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
953         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
954         any more sense than on anything else in this file.
955         (_dbus_get_tmpdir): add const to return value, and keep the
956         results of the various getenv around in a static variable.
957
958 2006-08-29  Havoc Pennington  <hp@redhat.com>
959
960         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
961         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
962
963 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
964
965         * test/Makefile.am: change find to use syntax that works with non
966         gnu versions of find
967
968 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
969
970         * dbus/dbus-transport.c: fix invalid deref when checking if
971         a vtable method exists (Patch from Christian Ehrlicher 
972         <ch dot ehrlicher at gmx dot de>)
973
974 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
975
976         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
977         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
978         to build with builddir != srcdir (Taken from a patch by Bernard Leak
979         <bernard at brenda-arkle dot demon dot co dot uk>)
980
981 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
982
983         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
984         default case
985
986 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
987
988         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
989         it works on any system providing this interface, not only FreeBSD.
990         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
991
992 2006-08-20  Havoc Pennington  <hp@redhat.com>
993
994         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
995         the docs
996
997 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
998
999         * Released 0.92 
1000
1001 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1004         to reflect the init late change
1005
1006         * bus/bus.c (bus_context_new): Check user before we fork so we can
1007         print out an error message a user will be able to see
1008
1009 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1010
1011         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1012
1013         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1014         Add two more global locks for use on windows platforms.  These are
1015         unused on non-windows platforms but are not ifdefed out to avoid
1016         potential bugs (i.e. the few bytes lost does not warrent the extra
1017         maintanence and complexity that having seperate sets of locks would
1018         cause)
1019
1020 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1021
1022         * bus/services.c (bus_registry_acquire_service): Return an error
1023         when an application tries to register the org.freedesktop.DBus Bus Name
1024
1025         * bus/services.c (bus_registry_release_service): Return an error
1026         when an application tries to release the org.freedesktop.DBus Bus Name
1027
1028 2006-08-17  Alp Toker  <alp@atoker.com>
1029
1030         * doc/dbus-specification.xml: Fix some minor typos.
1031
1032 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1033
1034         * configure.in: use $with_init_scripts instead of $operating_system
1035         to determine where to store the pid since the init scripts manipulate 
1036         the pid file (patch from Marcelo Ricardo Leitner 
1037         <marcelo dot leitner at terra dot com dot br>.  
1038
1039 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1040
1041         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1042         static DBusList *uninitialized_condvar_list to support new late 
1043         initialization threading model.  In this model threads can be initialized
1044         even after the D-Bus API has been used but still needs to be initialized 
1045         before the second thread has been started.  Mutexes and condvar addresses
1046         are stored in the two static lists and are replaced with actuall locks
1047         when threads are initalized.
1048         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1049         the location into the static list
1050         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1051         from the static list and freeing the mutex
1052         (_dbus_condvar_new_at_location): New method for creating a conditional 
1053         variable and placing the location into the static list
1054         (_dbus_condvar_free_at_location): New method for removing a conditional
1055         variable location from the static list and freeing the conditional variable 
1056         (init_uninitialized_locks): Atomic method which goes through the static 
1057         lists of mutex and condvar location and updates them with actuall locks
1058         (init_global_locks): changed to init_locks
1059         
1060         * dbus/dbus-connection.c:
1061         (_dbus_connection_test_get_locks): New method for tests to check connections
1062         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1063         condvar API
1064         (dbus_connection_allocate_data_slot): Pass in the global lock address
1065         to _dbus_data_slot_allocator_alloc
1066
1067         * dbus/dbus-dataslot.c:
1068         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1069         instead of the mutex itself
1070
1071         * dbus/dbus-message.c:
1072         (dbus_message_allocate_data_slot): Pass in the global lock address
1073         to _dbus_data_slot_allocator_alloc
1074
1075         * dbus/dbus-pending-call.c:
1076         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1077         to _dbus_data_slot_allocator_alloc
1078
1079         * dbus/dbus-server.c:
1080         (_dbus_server_init_base): Use the new at_location mutex API
1081         (dbus_server_allocate_data_slot): Pass in the global lock address
1082         to _dbus_data_slot_allocator_alloc
1083
1084         * test/name-test/test-threads-init.c: New test case for late thread
1085         initialization
1086
1087 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1088
1089         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1090         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1091         causes compile problems when asserts are turned off
1092         Keeping _dbus_warn for printing out the message so even if
1093         asserts are turned off the user gets the messages that something is 
1094         wrong 
1095
1096 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1097
1098         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1099
1100         * bus/services.c (bus_service_list_queued_owners):
1101         Add a pointer cast to fix compiler warning
1102
1103         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1104         return a NULL instead of FALSE since the return type
1105         is not expecting a boolean
1106
1107         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1108         Remove unused variable
1109
1110         * dbus/dbus-marshal-recursive-util.c (node_new):
1111         return a NULL instead of FALSE since the return type
1112         is not expecting a boolean
1113
1114         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1115         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1116         because we are expecting a pointer not a boolean
1117
1118         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1119         add void as the parameter so some compilers
1120         don't complain
1121
1122         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1123           _dbus_transport_new_for_tcp_socket):
1124         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1125         because we are expecting a pointer not a boolean
1126
1127         * test/shell-test.c (test_command_line):
1128         cast the second argument to _dbus_list_append to avoid compiler
1129         warnings
1130
1131         * test/test-names.c (main): remove unused variable
1132
1133         * test/test-service.c (check_hello_from_self_reply):
1134         Initialize echo_message and echo_reply to NULL
1135         
1136         * test/test-shell-service.c (handle_echo):
1137         Remove unused variable and cast the third parameter passed to
1138         dbus_connection_get_object_path_data to avoid compiler warrnings
1139
1140         * test/name-test/test-names.c (clear_message_queue):
1141         Remove unused function
1142
1143         * test/name-test/test-pending-call-dispatch.c:
1144         Fix format string in printf
1145
1146
1147 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1148
1149         * dbus/dbus-bus.c:
1150         * test/name-test/test-names.c:
1151         Remove test method dbus_bus_connection_get_unique_name because 
1152         we already have public method dbus_bus_get_unique_name that 
1153         does the exact same thing
1154
1155 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1156
1157         * dbus/dbus-signature.c:
1158         fix typos in Julio's previous patch which cause make check to fail
1159
1160 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1161
1162         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1163         In any case it was wrong since this is a test checking to see if
1164         address parsing is correct.  There was no need to get the true
1165         tmp directory.  
1166
1167 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1168
1169         * dbus/dbus-macros.h: Revert the addition of stddef.h
1170         as we should not be adding it to library headers 
1171
1172 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1173
1174         * dbus/dbus-signature.c:
1175         Fix the unit tests so that they work if assertions are not enabled.
1176         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1177
1178 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1179
1180         * tools/run-with-tmp-session-bus.sh:
1181         * test/name-test/run-test.sh:
1182         Remove bashisms (patch from Julio M. Merino Vidal
1183         <jmmv at NetBSD dot org>)
1184
1185 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1186
1187         * configure.in: add a version (>= 2.6.0) check for libxml2
1188
1189 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1190
1191         * configure.in: make sure the compiler supports -Wfloat-equal
1192         
1193         * bus/dir-watch-dnotify.c: move functional code after 
1194         variable declerations (C99 fix)  (patches from Jens Granseuer
1195         <jensgr at gmx dot net>
1196
1197 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1198
1199         * dbus/dbus-macros.h:
1200         add #include <stddef.h> so that Sun compilers don't complain about
1201         the defining NULL
1202
1203 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1204
1205         * dbus/dbus-sysdeps.c:
1206         * dbus/dbus-address.c:
1207         * bus/activation.c:
1208         * test/shell-test.c:
1209         don't hardcode tmp directory (patch from Dave Meikle 
1210         <dmk at davemeikle dot co dot uk>)
1211
1212 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1213
1214         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1215         Change an assert to a detailed warning and abort.  
1216         When allocator->lock != mutex it indicates that the user has failed
1217         to initalize threads before using the D-Bus library.  This warning
1218         helps the user identify the issue and fix their app.
1219
1220 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1221
1222         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1223         with cleanups of bugs found from Coverity reports:
1224
1225         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1226         close the file on error to avoid a leak
1227
1228         * bus/expirelist.c (bus_expire_list_test):
1229         Check for NULL on dbus_new0
1230
1231         * bus/activation.c (update_directory):
1232         remove dead code
1233
1234         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1235         Fix some leaks
1236
1237         * bus/bus.c (process_config_every_time):
1238         Fixed a leak
1239
1240         * bus/desktop-file.c (parse_key_value):
1241         Fixed leak
1242
1243         * bus/selinux.c (bus_selinux_id_table_insert):
1244         Fixed leak
1245
1246 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1247
1248         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1249         remove dead code
1250
1251 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1252
1253         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1254         #!/bin/bash
1255
1256 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1257
1258         * Doxyfile.in: fix the INPUT line so we can generate docs 
1259         when sourcedir != builddir (patch from Cygwin Ports maintainer
1260         <yselkowitz at users dot sourceforge dot net>
1261
1262 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1263
1264         * dbus/dbus-sysdeps.h:
1265         * dbus/dbus-sysdeps.c: 
1266         * dbus/dbus-string.c: 
1267         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1268         GLib's function which does the same thing
1269
1270         * configure.in:
1271         * bus/Makefile.am:
1272         * bus/dir-watch-default.c:
1273         * bus/dir-watch-dnotify.c:
1274         * bus/dir-watch-kqueue.c:
1275         Add kqueue directory watching for freebsd and split the directory
1276         watching code into seperate files per method/arch
1277         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1278
1279 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1280
1281         * configure.in:
1282         * tools/Makefile.am:
1283         * tools/dbus-launch.c:
1284         * bus/Makefile.am:
1285         allow --with-dbus-daemondir switch to be used to make the
1286         daemon install to a seperate bindir like /usr/libexec
1287         (patch from Brian Cameron <brian dot cameron at sun dot com)
1288
1289 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * bus/Makefile.am (install-data-hook): removed the slash after 
1292         $(DESTDIR) so we don't get the double slash which does not work
1293         in windows (patch from Andras Porjesz 
1294         <andras dot porjesz at siemens dot com>)
1295
1296 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * dbus/dbus-sysdeps.h:
1299         * dbus/dbus-sysdeps.c: 
1300           add _dbus_printf_length (patch from Peter Kümmel 
1301           <syntheticpp at gmx dot net>)
1302
1303 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1304
1305         * dbus/dbus-internals.c: unistd.h is not used 
1306         (_dbus_verbose_real): only enable verbose printing 
1307         if DBUS_VERBOSE environment var is set to '1'
1308         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1309
1310 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1311
1312         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1313         so we still compile on older gcc (patch from Frederic Peters 
1314         <fpeters at 0d dot be>
1315
1316 2006-08-04  Havoc Pennington  <hp@redhat.com>
1317
1318         * configure.in: add -Wdeclaration-after-statement
1319
1320         * dbus/dbus-connection.c: change all the pending call stuff to
1321         reflect the fact that pending call operations use the connection
1322         lock
1323
1324         * dbus/dbus-pending-call.c: add locking here
1325
1326         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1327         field const consistent with how message field is done
1328
1329 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1330
1331         * s/D-BUS/D-Bus/g
1332
1333 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1334
1335         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1336         <in7y118 at public.uni-hamburg dot de> - fix invalid
1337         read/write reported by valgrind
1338
1339 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1340
1341         * Released 0.91
1342
1343 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * dbus/dbus-connection.c:
1346         (_dbus_connection_attach_pending_call_unlocked):
1347         (connection_timeout_and_complete_all_pending_calls_unlocked):
1348         Make sure we set timeout_added on pending calls to FALSE when
1349         we remove the timeout from the connection
1350
1351 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1352
1353         * Removed some extra bindings stuff lingering around (thanks timo)
1354         * dbus-pendingcall.c (_dbus_pending_call_new): 
1355         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1356         when we tried to take a lock on an already locked connection
1357
1358 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1359
1360         * Released 0.90
1361
1362 2006-07-17  Havoc Pennington  <hp@redhat.com>
1363
1364         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1365         ints, reported by Owen Taylor
1366
1367 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1368
1369         * doc/TODO:
1370         * dbus/dbus-bus.c:
1371         * dbus-errors.c:
1372         * dbus/dbus-marshal-validate.c:
1373           Removed TODO items which were fixed or are no longer relevent
1374
1375 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1376
1377         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1378         Remove stray files from the stripped bindings
1379
1380 2006-07-16  Havoc Pennington  <hp@redhat.com>
1381
1382         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1383         Improve the error message on reply timeout
1384
1385 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1386
1387         * Remove all bindings
1388
1389 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1390
1391         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1392         and set pending_reply out arg to NULL is connection is disconnected
1393         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1394         static method for cleaning up pending calls on disconnect
1395         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1396         calls queued timeouts on disconnect 
1397
1398          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1399         Remove 
1400
1401 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1402
1403         * bus/activation.[ch] (bus_activation_list_services): new function to 
1404         get the list of services that can be activated
1405
1406         * bus/dispatch.c: test coverage for the new bus method
1407         ListActivatableNames
1408
1409         * bus/driver.c: new bus method ListActivatableNames to get the list of
1410         services that can be activated
1411
1412         * doc/dbus-specification.xml: ListActivatableNames method documentation
1413
1414 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1415         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1416         source files
1417
1418 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1419         * dbus/dbus-message-factory.c:
1420         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1421
1422 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1423         * dbus/dbus-connection-internal.h:
1424         * dbus/dbus-connection.c:
1425         * file dbus/dbus-pending-call.c:
1426         * dbus/dbus-pending-call.h:
1427         Make DBusPendingCall an opaque type even to D-Bus internals
1428
1429 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1430
1431         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1432         connection_close
1433
1434         * dbus/dbus-connection.c: include dbus-bus.h
1435         (_dbus_connection_read_write_dispatch): make static
1436
1437 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1438
1439         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1440         function
1441         (dbus_connection_dispatch): On disconnect unref any shared connections
1442
1443         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1444         for cleaning up shared connections on disconnect
1445         (internal_bus_get): get a hard refrence to shared connections when
1446         they are created
1447         
1448         * doc/TODO: Remove items which are no longer relevent or have been fixed
1449         Split 1.0 todo items with a 0.90 freeze todo list
1450  
1451 2006-06-14  Ross Burton  <ross@openedhand.com>
1452
1453         * glib/dbus-gobject.c:
1454         Free a leaking GArray (surely not!) in dbus_g_method_return.
1455
1456 2006-06-14  Ross Burton  <ross@openedhand.com>
1457
1458         * tools/Makefile.am:
1459         * tools/dbus-monitor.c:
1460         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1461         Habacker).
1462         
1463 2006-06-14  Ross Burton  <ross@openedhand.com>
1464
1465         * tools/dbus-print-message.c:
1466         Also print the object path when outputting signals or method calls.
1467
1468 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1469
1470         * qt/src/Makefile.am: install the qdbus.h header.
1471         This allows people to actually use the installed code.
1472
1473 2006-06-12  Ross Burton  <ross@openedhand.com>
1474
1475         * glib/dbus-gproxy.c:
1476         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1477
1478 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1479
1480         * Released 0.62
1481
1482 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1483
1484         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1485         break pedantic builds. Closes bug 6043 (patch approved by
1486         Havoc back in February).
1487
1488 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1489
1490         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1491         that took a QDBusMessage parameter.
1492         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1493         * qt/tools/dbus.cpp: Don't use automatic call because we might
1494         be calling an async method: request a reply.
1495
1496 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1497
1498         * test/qt/*: Update the testcases, including testing the new
1499         functionality of sending null QByteArray and QString over the
1500         bus. Add new headertest test and restore the old
1501         qdbusxmlparser test.
1502
1503 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1504
1505         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1506         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1507
1508         * qt/examples/Makefile.am:
1509         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1510         form.
1511
1512         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1513         QByteArray() (nulls) over the bus.
1514         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1515         the one that has the signature suffix stripped.
1516         * qt/src/qdbusreply.h: Make some methods const.
1517
1518 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1519
1520         Patch from Timo Hoenig <thoenig@suse.de>.
1521
1522         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1523         required during build to EXTRA_DIST.
1524         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1525         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1526         * configure.in: Fix "make dist", take care that the Makefile for
1527         qt/dbus is being generated.
1528
1529 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1530
1531         * bus/bus.c: Fix eavesdropping on method calls
1532
1533 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1534
1535         * configure.in:
1536         * dbus/dbus-userdb-util.c:
1537         Add Solaris console owner patch from Artem Kachitchkine
1538
1539 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1540
1541         * qt/Makfile.am:
1542         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1543         reorganisation. Thanks to Timo Hoenig for pointing this out.
1544
1545 2006-06-06  Robert McQueen  <robot101@debian.org>
1546
1547         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1548           call to dbus_g_type_get_struct.
1549
1550 2006-06-06  Robert McQueen  <robot101@debian.org>
1551
1552         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1553           pointers were put into a GPtrArray-based specialised collection, and
1554           then freed along with the array. GValues which you add into
1555           collections or maps which have the NOCOPY flag set are assumed to not
1556           belong to the caller, so rather than the existing pointer-stealing
1557           semantics, they are copied instead. Given that the main consumers of
1558           this abstraction are the bindings themselves, I don't think this is
1559           too bad, but others should watch their choice of take vs set_static.
1560
1561 2006-06-06  Robert McQueen  <robot101@debian.org>
1562
1563         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1564           of g_slist_prepend not being used. Fixed copying of slist-based
1565           specialised collections, then wrote a test case and found that it was
1566           all broken. Went on to fix iterating and appending too. Good thing
1567           nobody uses this code yet.
1568
1569 2006-06-06  Robert McQueen  <robot101@debian.org>
1570
1571         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1572           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1573           are discarded without unsetting, so it makes no difference whether
1574           we take or set_static). Remove cases for G_TYPE_POINTER because
1575           there really is nothing useful we can do with them in our
1576           specialised types - we *need* boxed copy/free functions at the very
1577           least.
1578
1579 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1580
1581         * qt/dbus: Add directory. I had forgotten to add this
1582         yesterday after the move...
1583
1584         * qt/examples/Makefile.am:
1585         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1586
1587         * qt/tools/Makefile.am:
1588         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1589         Added feature to get and set properties.
1590         Added validation of service, object path and interface names.
1591
1592         * qt/tools/dbusidl2cpp.cpp: Two new features:
1593         1) Allow specifying both the header and the source file names,
1594         by separating them with a colon.
1595         2) Don't write an interface output if the -p switch wasn't
1596         given, but the -a was.
1597
1598         * qt/src/*: Fix usage of Iterators and ConstIterators.
1599         Fix shadowing of variables by other variables (-Wshadow).
1600         Fix keyword-cleanliness in headers.
1601         Fix ASCII-cast (QLatin1String, QLatin1Char).
1602         Fix validation of member names.
1603         Add extra checking of introspection data during XML parsing.
1604         Various bug fixes.
1605
1606 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1607
1608         * dbus/Makefile.am:
1609         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1610         qt/dbus/qdbus.h now.
1611
1612 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1613
1614         * configure.in: Make --disable-qt actually do
1615           something. Patch inspired by Zack Rusin.
1616
1617 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1618
1619         * qt/: Update to Subversion r548032.
1620         This includes a big reorganisation of the files inside the
1621         subdir.
1622
1623 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1624
1625         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1626         clear:  
1627         "Failed to connect to socket <host>:<port> <error>" instead of
1628         "Failed to connect to socket <host>: <error>:<port>"
1629
1630         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1631         for a tcp transport. 
1632
1633 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1634
1635         * qt/*: Update the QtDBus bindings up to revision 546310 in
1636         Subversion.
1637         This adds the dbuscpp2xml tool, that parses a C++ header and
1638         outputs a D-BUS Introspection XML.
1639
1640 2006-05-21  Havoc Pennington  <hp@redhat.com>
1641
1642         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1643         is not NULL when it shouldn't be. Also a couple of possible fixes
1644         for #4637 though I don't understand why the bug happens, to be
1645         honest... also the object constructor has an assert name != NULL
1646         and the name is only currently NULL for peer-to-peer proxies that 
1647         I don't think anyone uses? So it should be asserting.
1648         Anyway, for now at least see if we get an earlier assertion failure.
1649
1650         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1651         apparently broken code to be sure the tests fail and someone 
1652         will fix them...
1653
1654 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1655
1656         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1657         and arrays when they had a single element: has_next returns
1658         false, even before you read the element. So, instead, check
1659         the array length.
1660
1661 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1662
1663         * qt/qdbusmessage.cpp:
1664         * qt/qdbustypehelper_p.h:
1665         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1666         the list is a const-reference
1667
1668 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1669
1670         * Adding old doc patch that never got applied
1671         
1672         * dbus/bus.c (dbus_bus_add_match): Add documentation
1673
1674         * doc/dbus-specification.xml: Add documentation for the match rules
1675           and the AddMatch and RemoveMatch methods
1676
1677 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1678
1679         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1680         call (r535506)
1681
1682         * qt/dbusidl2cpp.cpp:
1683         * qt/qdbusabstractadaptor.cpp:
1684         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1685         sibling of the QDBusAbstractAdaptor objects instead of the
1686         parent. (r535848)
1687
1688         * qt/dbusidl2cpp.cpp:
1689         * qt/qdbusabstractinterface.cpp:
1690         * qt/qdbusabstractinterface.h:
1691         * qt/qdbusabstractinterface_p.h:
1692         * qt/qdbusinterface.cpp: Make properties in interfaces
1693         actually work. The code that was generated would not compile,
1694         due to moc calls to functions that did not exist. They now
1695         shall. (r536571)
1696
1697 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1698
1699         * Makefile.am:
1700         * configure.in:
1701         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1702         Thanks to Brad Hards for providing the patch
1703
1704 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1705
1706         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1707         call. (r535506)
1708
1709 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1710
1711         * qt/examples/dbus.cpp: Enhance error messages and use
1712         QDBusInterfacePtr.
1713
1714 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1715
1716         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1717         and disable the copy operators. (r533772, r534746)
1718
1719         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1720
1721         * qt/qdbusabstractinterface.cpp:
1722         * qt/qdbusabstractinterface.h: Change the default call mode to
1723         not use the event loop. Add convenience call() methods that
1724         take a CallMode parameter. (r534042)
1725
1726         * qt/qdbusconnection.h: Change the default call mode to not
1727         use the event loop. (r534042)
1728
1729         * qt/qdbusinterface.cpp:
1730         * qt/qdbusinterface.h: Add a method to tell us if the
1731         interface is valid (since we don't return a null pointer
1732         anymore) (r534099)
1733
1734         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1735         (r534101)
1736
1737         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1738         function in two so taht we get the chance to introspect
1739         without having a QDBusMessage (r534102)
1740
1741         * qt/qdbusbus.h:
1742         * qt/qdbusconnection.cpp:
1743         * qt/qdbusconnection_p.h:
1744         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1745         avoid a round-trip to the server when attempting to introspect
1746         one of our own objects. Also make sure the filter functions
1747         match the empty interface as well. (r534108)
1748         Don't keep the connection names. Instead, trust the unique
1749         connection name (r534111)
1750         Remove event loop usage (r534112)
1751
1752 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1753
1754         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1755         Brad Hards.
1756
1757 2006-04-28  Robert McQueen  <robot101@debian.org>
1758
1759         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1760         any order, making it easier for people who inherit from this
1761         object.
1762
1763 2006-04-28  Robert McQueen  <robot101@debian.org>
1764
1765         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1766         of memory from within pointer arrays and lists. Fixes bug #6300.
1767
1768 2006-04-28  Robert McQueen  <robot101@debian.org>
1769
1770         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1771         generating struct signatures. Fixes bug #6083.
1772
1773 2006-04-28  Robert McQueen  <robot101@debian.org>
1774
1775         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1776         to qdbusconnection_p.moc.
1777
1778 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1779
1780         * README, INSTALL: Doc fixes
1781         Patch from Brad Hards <bradh at frogmouth.net>
1782
1783 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1784
1785         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1786         the dynamic meta object. No need to guess which interface to
1787         call.
1788
1789 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1790
1791         * qt/qdbusconnection_p.h:
1792         * qt/qdbusmetaobject.cpp:
1793         * qt/qdbusmetaobject_p.h:
1794         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1795         for the dynamic meta object. No need to guess which
1796         interface to call.
1797         * qt/qdbusabstractinterface_p.h:
1798         * qt/qdbusconnection.cpp:
1799         * qt/qdbusintegrator.cpp:
1800         * qt/qdbusinterface.cpp:
1801         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1802         Add a QDBusRef that looks and behaves like DCOPRef.
1803
1804 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1805
1806         * dbus/dbus-connection.c: Interfaces are optional in method
1807         calls, so don't give up if the interface parameter is NULL.
1808         Patch reviewed by Havoc Pennington.
1809
1810 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1811
1812         * qt/qdbusreply.h: Add default constructor and operator=
1813           (r532625)
1814         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1815           in public headers (r532952)
1816         * qt/qdbusabstractinterface.cpp:
1817         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1818           make it the default (r532951)
1819
1820 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1821
1822         * dbus/dbus-connection.c: Fix asserts
1823         Patch from Tim Moloney <t.moloney at verizon.net>
1824
1825 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1826
1827         * mono/Connection.cs, mono/Message.cs: Check Target type
1828         Patch from Aaron Bockover (abockover at novell.com)
1829
1830 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1831
1832         * INSTALL: fine-tune the requirements for the Qt4 binding.
1833
1834 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1835
1836         * tools/dbus-print-message.c: Added support for printing of all 
1837           remaining data types. Fixed logic for indentation of compound
1838           data types.
1839         
1840 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1841
1842         * INSTALL: fill out content of file providing DBus specific
1843           build installations, followed by generic Auto* INSTALL file
1844           content
1845         
1846 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1847
1848         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1849           Patch by Stefan Eilers. (r529537)
1850
1851 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1852
1853         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1854           contents (r528208)
1855
1856 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1857
1858         * qt/Makefile.am: fix the dependency for
1859           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1860           not in qdbusconnection.cpp.
1861           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1862           spotting this.
1863
1864 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1865
1866         * qt/examples/listnames.cpp:
1867         * qt/examples/Makefile.am: Three ways to list the names on the
1868           bus.
1869
1870 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1871
1872         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1873           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1874
1875 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1876
1877         Merge from Subversion:
1878         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1879           something that exists (r526315)
1880         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1881           slots/signals (r526316)
1882         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1883           also return an unknown-method error if the parameters don't
1884           match for org.freedesktop.DBus.Properties. (r526842)
1885         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1886         * qt/qdbusintegrator.cpp: Restore the proper order of
1887           delivery: don't make method returns be delivered on priority
1888           (r528150)
1889
1890 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1891
1892         * configure.in qt/Makefile.am: add qt/examples
1893         * qt/examples: Add QtDBus example programs:
1894           - hello: Hello, World
1895           - ping: Simple method-calling program
1896           - pong: Simple object-exporting program (not using adaptors)
1897           - complexping: Interactive method-calling program 
1898                 (also gets and sets properties).
1899           - complexpong: Sample program exporting methods, signals and
1900                 properties, using adaptors.
1901           - dbus: Simple implementation of a generic method-calling
1902                 program, similar to 'dbus-send', but with semantics
1903                 similar to 'dcop'.
1904           - chat: Simplistic chat program, implemented using signals
1905                 and the system bus. Looks like IRC.
1906
1907 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1908
1909         * configure.in: Detect QtGui (necessary for one of the
1910           example programs). Note: this increases the minimum required
1911           version of Qt to 4.1.3.
1912
1913 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1914
1915         * test/qt/*: Sync with KDE Subversion revision 523647.
1916         Update the testcases to the new API. Remove testcases for
1917         classes that are no longer public or have been removed.
1918
1919 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1920
1921         * qt/*: 
1922         * dbus/qdbus.h: Sync with KDE Subversion revision
1923         523647. Hopefully, this will be the last of the
1924         source-incompatible changes. Documentation has been improved;
1925         support for QList<basic-types> has been added; QDBusObject is
1926         gone; QDBus(Abstract)Interface is now a QObject with
1927         auto-generated meta-object; QDBusIntrospection is marked
1928         private, since QMetaObject can be used now; lots of bugfixes.
1929
1930 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1931
1932         Patch from Milosz Derezynski <internalerror at gmail.com>
1933         
1934         * configure.in:
1935         Output the service directory in the configure summary
1936
1937         * dbus-1.pc.in:
1938         Add session_bus_services_dir
1939
1940 2006-03-10  Ross Burton  <ross@openedhand.com>
1941
1942         * tools/dbus-print-message.c:
1943         Add support for object paths and signatures.
1944
1945 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1946
1947         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1948         config reload.
1949         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1950         information caches
1951         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1952         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1953         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1954         * dbus/dbus-userdb.h: Add function to flush all user/group information
1955         caches.
1956
1957 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1958
1959         * qt/dbusidl2cpp.cpp:
1960         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1961         for dcopidl2cpp, found in the KDE installations (or the more
1962         modern kalyptus): generate Qt4 C++ code for the input XML
1963         introspection. Currently no IDL parsing.
1964
1965 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1966
1967         * test/qt/*: Update the self-tests.
1968
1969 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1970
1971         * qt/*: 
1972         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1973         represents the first feature-complete version of the Qt4
1974         bindings since I took ove maintainership.
1975
1976 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1977
1978         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1979         dir. This is C++, so we can't use the DBus ones.
1980
1981 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1982
1983         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1984         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1985
1986 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1987
1988         * dbus/dbus-connection.c: 
1989         (_dbus_connection_block_pending_call):
1990         Check to see if our data has already been read off the connection
1991         by another blocking pending call before we block in poll.
1992         (check_for_reply_and_update_dispatch_unlocked):
1993         Code taken from _dbus_connection_block_pending_call - checks for
1994         an already read reply and updates the dispatch if there is one.
1995
1996         * test/name-test/test-pending-call-dispatch.c:
1997         New test for making sure we don't get stuck polling a 
1998         dbus connection which has no data on the socket when
1999         blocking out of order on two or more pending calls.
2000
2001 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2002
2003         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2004         make/automake don't detect that we're talking about the same
2005         .lo file if I specify the full path to the source files.
2006
2007 2006-02-26  Havoc Pennington  <hp@redhat.com>
2008
2009         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2010
2011         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2012         session bus variable is unset, suggest "man dbus-launch" and "man
2013         dbus-daemon" to figure out how to fix the problem
2014
2015 2006-02-25  Havoc Pennington  <hp@redhat.com>
2016
2017         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2018         should make this thing use the new glib options parser
2019
2020 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2021
2022         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2023         .lo files taking moc sources.
2024
2025 2006-02-25  Havoc Pennington  <hp@redhat.com>
2026
2027         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2028         and install it as a public header
2029
2030 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2031
2032         * Released 0.61
2033
2034 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2035         
2036         * proxies.py: Fix the callchain
2037
2038 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2039         
2040         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2041
2042         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2043         dbus/dbus-sysdeps.c
2044
2045         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2046         call _dbus_group_info_free_allocated which causes infinite loop,
2047         correctly call _dbus_group_info_free
2048
2049 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2050
2051         * qt/qdbusinterface_p.h:
2052         * qt/qdbusinterface.cpp: Use the standard
2053         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2054         calls instead of creating one for us.
2055
2056         * qt/qdbusconnection_p.h:
2057         * qt/qdbusintegrator.cpp: Remove debugging code.
2058
2059         * qt/qdbusintegrator.cpp:
2060         * qt/qdbusmessage.cpp:
2061         * qt/qdbusmessage_p.h:
2062         * qt/qdbusmessage.h: Change the behaviour of automatic
2063         reply-sending: now a reply is always sent, unless the caller
2064         didn't request one or if the user slot has already sent one.
2065
2066 2006-02-16  Robert McQueen  <robot101@debian.org>
2067
2068         * configure.in: Patch from Debian packages by Sjoerd Simons
2069         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2070         arguments so it's possible to build both bindings in the
2071         same tree.
2072
2073         * qt/Makefile.am: Fix truncated value so that make dist works.
2074
2075 2006-02-16  Robert McQueen  <robot101@debian.org>
2076
2077         * acinclude.m4, configure.in: Patch from Brad Hards
2078         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2079         improving quoting, re-ordering a few checks, and a few other
2080         aesthetic tidy-ups.
2081
2082 2006-02-16  Robert McQueen  <robot101@debian.org>
2083
2084         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2085         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2086         assertion that the next element to read from the iter is fixed in
2087         size. This is not the case when you are at the end of the iter,
2088         because the next element type is INVALID.
2089
2090         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2091         a bogus assert which means that you may not initialise a 0-length
2092         string unless you provide a non-NULL pointer. This prevented
2093         you from marshalling messages containing zero-length arrays in
2094         some cases.
2095
2096         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2097         from Rob to correct bogus asserts when trying to demarshal an
2098         array and get_fixed_array got you 0 elements. Append nothing to
2099         the GArray in this case.
2100
2101         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2102         an empty array via the glib bindings. Without all of the above
2103         patches, this new test fails.
2104
2105 2006-02-16  Robert McQueen  <robot101@debian.org>
2106
2107         * glib/dbus-gmain.c: Make the previous commit compile.
2108
2109         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2110         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2111         specify sender_keyword="foo", path_keyword="bar" when adding
2112         a signal listener, so that you can bind to signals generically
2113         but still do something useful in your callback.
2114
2115         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2116         chars so that they're not cast to chars and made negative. Thanks
2117         to Jakub Stachowski for reporting this and testing the fix.
2118
2119 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2120
2121         * dbus/dbus-glib.h:
2122         * glib/dbus-gmain.h:
2123         (dbus_g_connection_open): new method for openning
2124         a connection to an arbitrary address in the glib bindings
2125
2126         * ChangeLog: checkin last entry which doesn't seem to be commited
2127
2128 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2129
2130         * tools/dbus-launch.c: Fixed sh syntax output
2131
2132 2006-02-13  Robert McQueen  <robot101@debian.org>
2133
2134         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2135         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2136         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2137         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2138         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2139         missing piece of the glib bindings jigsaw puzzle. This modifies
2140         the existing specialised types to have N type parameters (rather
2141         than the current 1 or 2 for arrays and dictionaries respectively).
2142         You can then use this to get a glib type to represent any arbitrary
2143         D-Bus struct type using dbus_g_type_get_struct. The only
2144         implementation of these types is with GValueArrays as before,
2145         but it's now possible to store these in arrays, emit them in
2146         signals, etc.
2147
2148 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2149
2150         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2151         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2152         <thiago.macieira at trolltech.com>
2153
2154 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2155
2156         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2157         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2158
2159 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2160
2161         * bus/connection.c (bus_connections_expect_reply): Make
2162         pending reply limit not common to all connections (Bug #5416)
2163         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2164
2165 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2166
2167         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2168
2169 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2170
2171         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2172         patch from Doug Goldstein <cardoe at gentoo.org>
2173
2174 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2175
2176         * mono/Arguments.cs: Fix a magic number in the mono bindings
2177         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2178
2179 2006-01-27  Robert McQueen  <robot101@debian.org>
2180
2181         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2182         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2183         when generating the client-side methods, instead of overloading
2184         CSymbol which broke everything horribly. My apologies.
2185
2186 2006-01-27  Robert McQueen  <robot101@debian.org>
2187
2188         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2189         by me and Rob Taylor to add a simple_free function to D-Bus map
2190         and collection types, which allows those types which can be freed
2191         with a GDestroyNotify (such as GHashTables and GArrays, but not
2192         GPtrArrays) to be stored as the values in hashtables.
2193
2194         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2195         Patch by Rob Taylor to add nested dicts to the glib tests to check
2196         the above code works, and appears not to leak when called repeatedly.
2197
2198 2006-01-27  Robert McQueen  <robot101@debian.org>
2199
2200         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2201         to free a D-Bus allocated string with dbus_free () instead of
2202         g_free ().
2203
2204 2006-01-27  Iain Holmes  <iain@openedhand.com>
2205
2206         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2207         method from being called multiple times.
2208
2209 2006-01-19  Robert McQueen  <robot101@debian.org>
2210
2211         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2212         <rob.taylor@collabora.co.uk> to add support for generating bindings
2213         to arrays that are represented as GPtrArrays rather than GArrays (ie
2214         size-variable things, such as strings, objects, structs, etc).
2215
2216 2006-01-05  Robert McQueen  <robot101@debian.org>
2217
2218         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2219         <ricardo.kekki@movial.fi> to make it possible to inherit from
2220         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2221         a private part, and moving the setting of the DBusGProxyManager into a
2222         connection property, allowing proper GObject construction.
2223
2224 2006-01-05  Robert McQueen  <robot101@debian.org>
2225
2226         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2227         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2228         annotations when generating glib client bindings.
2229
2230 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2231
2232         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2233
2234         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2235
2236 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2237
2238         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2239
2240 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2241
2242         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2243
2244 2005-12-19  Ross Burton  <ross@openedhand.com>
2245
2246         * doc/dbus-tutorial.xml:
2247         Document the Glib client-side bindings, and list all possible annotations.
2248
2249 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2250
2251         * dbus/bus.c (dbus_bus_release_name): Add documentation
2252
2253 2005-12-06  Robert McQueen  <robot101@debian.org>
2254
2255         * python/service.py: s/sucessful/successful/ so we're allocating to
2256         and reading from the same variable. Oops.
2257
2258 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2259
2260         * Released 0.60
2261
2262 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2263
2264         * test/qt/Makefile.am: build from srcdir
2265
2266         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2267         Note - this code is wrong and needs to be fixed by the Qt binding
2268         developers.  The flags should be treated as bitfields and not enums.
2269
2270         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2271
2272 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2273
2274         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2275           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2276           in production code
2277
2278 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2279
2280         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2281         method for getting messages off the bus in the absence of a
2282         mainloop.  This method is much like 
2283         dbus_connection_read_write_dispatch except it does not dispatch
2284         the messages to a registered filter function.  Instead it
2285         allows a developer to process messages by directly popping
2286         them off the bus.
2287
2288 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2289
2290         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2291         the parser to continue instead of returning error
2292         (bus_desktop_file_load): Do not free parser data when
2293         parse_section_start or parse_key_value fails because it was 
2294         already freed by parser_free (patch from Carlos Garcia Campos  
2295         <carlosgc at gnome.org>)
2296
2297 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2298
2299         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2300         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2301         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2302         test/test-segfault.c, test/test-utils.c,
2303         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2304         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2305         Various cleanup of dead code and compiler warnings (patch from
2306         Kjartan Maraas <kmaraas at gnome.org>) 
2307
2308 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2309
2310         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2311         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2312
2313 2005-11-27  Robert McQueen  <robot101@debian.org>
2314
2315         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2316         part of the preceding one. Oops. Merge patch by Johan Hedberg
2317         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2318         on big-endian platforms.
2319
2320         * test/python/test-client.py: Add some 16-bit integers to the test
2321         values.
2322
2323 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2324
2325         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2326         method return message for property getters
2327
2328 2005-11-27  Robert McQueen  <robot101@debian.org>
2329
2330         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2331         with type v of an instance of dbus.Variant(foo, type='x') caused
2332         it to be boxed twice before sending over the bus.
2333
2334         * python/dbus_bindings.pyx, python/service.py,
2335         test/python/test-client.py: Update the constants for the new
2336         request_name flags, and update comments/test cases now that queueing
2337         is the default action.
2338
2339 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2340
2341         * configure.in:
2342         - Change version to 0.60 for impending release
2343         - upped the sonames because of ABI and API breakage
2344
2345 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2346
2347         * configure.in: Add test/name-test/Makefile to the generated
2348         Makefile list
2349
2350         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2351         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2352         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2353         not to queue an ower if it can't be the primary owner
2354
2355         * bus/bus.h: Add new internal BusOwner struct
2356
2357         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2358         to bus_registry_ensure and don't set the prohibit_replacement flag
2359         since they are now set per BusOwner and not per name.
2360         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2361         that returns the list of connections in a name's connection queue
2362         
2363         * bus/services.c (struct BusService): remove prohibit_replacement field
2364         (struct BusOwner): new struct for keeping track of queued connections
2365         and their associated flags for the queue
2366         (struct BusRegistry): add a BusOwner memory pool
2367         (bus_registry_new): initialize the BusOwner memory pool
2368         (bus_registry_unref): free the BusOwner memory pool
2369         (_bus_service_find_owner_link): new internal method for
2370         searching the queue for a specific connection
2371         (bus_owner_set_flags): new method for adding setting the flags on a
2372         bus owner
2373         (bus_owner_new): new method that creates a BusOwner object from the
2374         pool and sets its flags
2375         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2376         (bus_registry_ensure): Add the flags parameter
2377         (bus_registry_acquire_service): Switch from using raw connections to
2378         using the BusOwner struct
2379         Add new state machine for dealing with the new set of flags
2380         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2381         cancel_ownership, free_ownership_cancel_data, 
2382         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2383         restore_ownership, free_ownership_restore_data, 
2384         add_restore_ownership_to_transaction): Switch to using BusOwner 
2385         instead of raw connections
2386         (bus_service_add_owner): Add flags parameter
2387         Switch to using BusOwner instead of raw connections
2388         Add state machine for dealing with the new set of flags
2389         (bus_service_swap_owner): Swaps the first and second owners in the
2390         queue.  Used to make sure proper signals are sent when a service looses 
2391         or gains primary ownership.  We never insert an owner at the top of the
2392         queue.  Instead we insert it in the second position and then swap.
2393         (bus_service_remove_owner): Remove the owner from the queue sending
2394         out the NameLost and NameOwnerChanged signals if the we were the 
2395         primary owner
2396         (bus_service_get_primary_owners_connection): New method that extracts
2397         the connection from the primary owner
2398         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2399         connection
2400         (bus_service_get_allow_replacement): Changed from the old 
2401         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2402         primary owner and returns if it can be replaced or not
2403         (bus_service_set_prohibit_replacement): removed
2404         (bus_service_has_owner): returns TRUE if and owner with
2405         the specified connection exists in the queue
2406         
2407         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2408         method that only compiles if tests are enabled.  Allows us to get the 
2409         unique name of a connection so we can check it against the queue when
2410         doing regression tests
2411
2412         * bus/activation.c (bus_activation_send_pending_auto_activate),
2413         bus/dispatch.c (bus_dispatch),  
2414         bus/driver.c (bus_driver_handle_get_service_owner, 
2415         bus_driver_handle_get_connection_unix_user, 
2416         bus_driver_handle_get_connection_unix_process_id,
2417         bus_driver_handle_get_connection_selinux_security_context),
2418         bus/signals.c (connection_is_primary_owner): 
2419         use bus_service_get_primary_owners_connection instead of
2420         bus_service_get_primary_owner
2421
2422         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2423         _dbus_listen_unix_socket): Calculate the length of the socket
2424         path and use that instead of using a fixed length which was
2425         causing socket names to contain many trailing Nul bytes.
2426
2427         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2428         (dbus_g_method_get_sender): New method for extracting the sender 
2429         from a DBusGMethodInvocation
2430         (dbus_g_method_return_get_reply): changed name to 
2431         dbus_g_method_get_reply
2432         (dbus_g_method_return_send_reply): changed name to
2433         dbus_g_method_send reply
2434
2435         * doc/dbus-specification.xml: New docs that describe how the new
2436         queueing system works and talks about the changes to the how
2437         we specify socket names
2438
2439         * glib/examples/example-service.c, 
2440         glib/examples/example-signal-emitter.c,
2441         glib/examples/statemachine/statemachine-server.c:
2442         Changed the RequestName flags to the new system
2443
2444         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2445         regression test suite for testing various states of the new
2446         queueing system
2447         
2448 2005-11-15  Robert McQueen  <robot101@debian.org>
2449
2450         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2451         Taylor to add two methods, dbus_g_method_return_get_reply and
2452         dbus_g_method_return_send_reply, to allow you to get the reply
2453         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2454         and send it. The GLib bindings can't marshal a return value of
2455         something like a(s) if the array is empty - ultimately they should be
2456         made to heed the signature of the out arguments as the Python bindings
2457         now can, but this is a workable interim solution which might have
2458         other applications.
2459
2460 2005-11-15  Robert McQueen  <robot101@debian.org>
2461
2462         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2463         method to org.freedesktop.DBus to release a bus name or give up
2464         waiting in the queue for it.
2465
2466         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2467         dbus_bus_release_name method to send the ReleaseName method calls.
2468         Add constants for the return values to dbus/dbus-shared.h.
2469
2470         * doc/dbus-specification.xml: Document the new ReleaseName method
2471         in the specification.
2472
2473         * python/dbus_bindings.pyx: Add a low-level python binding for the
2474         release name method.
2475
2476         * python/exceptions.py, python/service.py: Make freeing BusName
2477         objects release the name. Add a NameExistsException, and fix a
2478         bug with creating UnknownMethodException.
2479
2480         * test/python/test-client.py: Add tests for freeing BusName
2481         objects causing names to be released.
2482
2483 2005-11-14  Robert McQueen  <robot101@debian.org>
2484
2485         * python/service.py: Include the traceback in the error reply when we
2486         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2487
2488 2005-11-14  David Zeuthen  <davidz@redhat.com>
2489
2490         Patch from Timo Hoenig <thoenig@suse.de>.
2491
2492         * bus/bus.c: I've recently investigated why the automatic reload
2493         of configuration files does not work as expected.
2494
2495         Currently, reloading configuration files does only work when
2496         running dbus-daemon with --nodaemon.  If we are running as daemon
2497         we're hitting a dnotify bug once we fork the process.
2498
2499         We're initializing the dnotify fds before calling fork().  Once
2500         the child process forked it does still have the fds (and they
2501         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2502         getting SIGIO as changes are made to the configuration files.
2503
2504         The attached patch moves the initialization of the dnotify fds to
2505         process_config_postinit().  This is safe for all current code
2506         paths and solves the dnotify disfunction.  If we're running
2507         dbus-daemon as daemon the fds for dnotify are now being
2508         initialized after fork() for the child process.
2509
2510         * configure.in: The current configure.in check for dnotify probes
2511         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2512         match for 'xlinux', too. Additionally I have adapted the configure
2513         option's style to match with the others.
2514
2515 2005-11-14  Robert McQueen  <robot101@debian.org>
2516
2517         * python/decorators.py, python/service.py: Add a new argument to the
2518         dbus.service.method decorator called sender_keyword, which if set,
2519         specifies the name of an argument which will be provided the bus
2520         name of the method caller.
2521
2522         * test/python/test-client.py, test/python/test-service.py: Add a
2523         method and test to check the sender_keyword functionality.
2524
2525 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2526
2527         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2528         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2529         Simons <sjoerd at luon.net>)
2530
2531         * AUTHORS: Add Robert McQueen for his work on the Python
2532         Bindings and other parts of D-Bus
2533
2534 2005-11-07  Robert McQueen  <robot101@debian.org>
2535
2536         * python/decorators.py: Change emit_signal function to use the
2537         signature annotation of the signal when marhsalling the arguments from
2538         the service. Fix a bug where the code checking signature length
2539         against argument length referenced the wrong variable.
2540
2541         * python/introspect_parser.py: Avoid adding the type signature of
2542         signal arguments to any methods which occur after them in the
2543         introspection data (!) by making the parser a little more careful
2544         about its current state.
2545
2546         * python/service.py: Remove debug prints from last commit (again :D).
2547
2548         * test/python/test-client.py, test/python/test-service.py: Add test
2549         signals with signature decorators to test the strict marshalling code
2550         gives errors at the right time. Could do with checking the signals
2551         actually get emitted too, given that the test does nothing with
2552         signals at the moment...
2553
2554 2005-11-07  Robert McQueen  <robot101@debian.org>
2555
2556         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2557         instances to stop madness of creating new instances representing
2558         the same bus connection all the time, rendering any tracking of
2559         match rules and bus names quite meaningless. Caught a bug where
2560         the private argument to SessionBus() and friends was being passed
2561         in as use_default_mainloop by mistake. Still some problems with
2562         multiple dbus_binding.Connection instances representing the same
2563         low-level connection (eg when you use both SessionBus() and
2564         StarterBus() in same process), but it's a lot better now than it
2565         was.
2566
2567         * python/dbus_bindings.pyx: Add constants with the return values
2568         for bus_request_name().
2569
2570         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2571         and retrieve the same instances for the same name, so deletion can be
2572         done with refcounting. Also now throws some kind of error if you
2573         don't actually get the name you requested, unlike previously...
2574
2575         * test/python/test-client.py: Add tests for instance caching of buses
2576         and bus name objects.
2577
2578 2005-11-04  Robert McQueen  <robot101@debian.org>
2579
2580         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2581         marshalling of boolean values. Add some booleans to the values in
2582         the test client.
2583
2584         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2585         argument to the dbus.service.method decorator, which allows you to
2586         name arguments to take two callback functions for replying with
2587         return values or an exception.
2588
2589         * test/python/test-client.py, test/python/test-service.py: Add test
2590         case using asynchronous method reply functions, both return values and
2591         errors, and from within both the function itself and from a mainloop
2592         callback.
2593
2594         * python/decorators.py, python/service.py: Perform checking that the
2595         number of method/signal arguments matches the number of types in the
2596         signature at class loading time, not when you first introspect the
2597         class.
2598
2599         * python/service.py: Remove debug print left by the last commit.
2600
2601 2005-11-03  Robert McQueen  <robot101@debian.org>
2602
2603         * python/service.py: Heavy refactoring of method invocation, with
2604         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2605         in favour of a new _message_cb that uses seperate functions for
2606         looking up the method to call, marshalling the return values, and
2607         sending exceptions as errors, and is easier to follow as a
2608         consequence.  Fixes some corner cases about returning things that
2609         don't match your declared out_signature, allows exceptions to define
2610         _dbus_error_name and have it be sent over the bus as the error name,
2611         and paves the way for cool stuff like heeding the message no reply
2612         flag, asynchronous method implementations, informing the method of the
2613         sender, and including backtraces in the error messages.
2614
2615         * test/python/test-client.py: Catch and print exceptions thrown in the
2616         async callback tests, rather than passing them to the low-level
2617         bindings to be ignored in a noisy and frustrating manner.
2618
2619 2005-11-03  Robert McQueen  <robot101@debian.org>
2620
2621         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2622         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2623         tweak others to be consistent.
2624
2625         * test/python/test-client.py: Tweak output of testInheritance.
2626
2627 2005-10-29  Robert McQueen  <robot101@debian.org>
2628
2629         * python/service.py: Major changes to allow multiple inheritance
2630         from classes that define D-Bus interfaces:
2631         
2632          1. Create a new Interface class which is the parent class of
2633             Object, and make the ObjectType metaclass into InterfaceType.
2634         
2635          2. Patch written with Rob Taylor to replace use of method_vtable
2636             with code that walks the class's __MRO__ (method resolution order)
2637             to behave like Python does when invoking methods and allow
2638             overriding as you'd expect. Code is quite tricky because
2639             we have to find two methods, the one to invoke which has the
2640             right name and isn't decorated with the /wrong/ interface,
2641             and the one to pick up the signatures from which is decorated
2642             with the right interface.
2643         
2644             The same caveats apply as to normal multiple inheritance -
2645             this has undefined behaviour if you try and inherit from two
2646             classes that define a method with the same name but are
2647             decorated with different interfaces. You should decorate
2648             your overriding method with the interface you want.
2649         
2650          3. Replace grungy introspection XML generation code in the metaclass
2651             with dictionaries that cope correctly with multiple inheritance
2652             and the overriding of methods. This also uses the signature
2653             decorations to provide correct introspection data, including
2654             the debut appearance of the types of your return values. :D
2655
2656         * test/python/test-client.py, test/python/test-service.py: Add a test
2657         case to try invoking an method that overrides one inherited from a
2658         D-Bus interface class.
2659
2660 2005-10-29  Robert McQueen  <robot101@debian.org>
2661
2662         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2663         Add checking for the end of struct character when marshalling a
2664         struct in MessageIter.append_strict.
2665
2666         * python/examples/example-service.py,
2667         python/examples/gconf-proxy-service.py,
2668         python/examples/gconf-proxy-service2.py: Update to use gobject
2669         mainloop directly rather than appearing to depend on gtk.
2670
2671         * python/test/test-client.py, python/test/test-server.py: Remove
2672         obsolete and broken test scripts for old bindings. We have up to date
2673         and working tests in test/python/.
2674
2675 2005-10-29  Robert McQueen  <robot101@debian.org>
2676
2677         * python/decorators.py: Add optional arguments to the method and
2678         signal decorators to allow you to specify the signature of arguments
2679         and return values. Preserve the doc strings of signal functions in the
2680         decorated version, for pydoc and friends.
2681
2682         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2683         parse_signature_block function with an iterable dbus.Signature()
2684         type. Fix a bug in MessageIter.append_strict where you could append
2685         anything by claiming it was a string.
2686
2687         * python/service.py: Use the out_signature decoration on methods to
2688         marshal return values, meaning you no longer require dbus.Array()
2689         or dbus.Dictionary() to indicate the type when returning empty
2690         arrays or dictionaries. Fix a bug where exceptions which are defined
2691         in __main__ are not turned into error replies.
2692
2693         * test/python/test-client.py, test/python/test-service.py: Add test
2694         for correct marshalling of return values according to out_signature.
2695         Fix a bug in the async call test where the error_handler is missing a
2696         self argument.
2697
2698 2005-10-29  Robert McQueen  <robot101@debian.org>
2699
2700         * glib/Makefile.am, glib/examples/Makefile.am,
2701         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2702         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2703
2704         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2705
2706         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2707         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2708         the command line.
2709
2710 2005-10-27  Ross Burton  <ross@openedhand.com>
2711
2712         * dbus/dbus-marshal-header.c:
2713         Remove dead code.
2714
2715         * glib/dbus-gobject.c:
2716         Stop compiler warning.
2717
2718 2005-10-25  Ross Burton  <ross@openedhand.com>
2719
2720         * dbus/dbus-auth.c:
2721         * dbus/dbus-server-unix.c:
2722         * dbus/dbus-transport-unix.c:
2723         * glib/dbus-gmain.c:
2724         * glib/dbus-gobject.c:
2725         Add some const keywords.
2726
2727 2005-10-25  Ross Burton  <ross@openedhand.com>
2728
2729         * doc/dbus-specification.xml:
2730         Document the NoReply annotation.
2731
2732         * glib/dbus-binding-tool-glib.h:
2733         * glib/dbus-binding-tool-glib.c:
2734         Respect the NoReply annotation.
2735
2736 2005-10-24  Robert McQueen <robot101@debian.org>
2737
2738         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2739         derive from unicode instead of str, and encode/decode UTF-8 when
2740         marshalling/unmarshalling bus messages
2741
2742         * python/introspect_parser.py: encode introspection data as UTF-8
2743         before passing the buffer into libxml2
2744
2745         * test/python/test-client.py: add unicode test strings
2746
2747         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2748         ignore generated python test files
2749
2750 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2751
2752         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2753         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2754         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2755
2756         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2757         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2758         when constructing struct signatures
2759
2760         * python/_dbus.py (Bus): handle private connections using the
2761         private keyword in the constructor. defaults to private=False
2762         (Bus::close): new method to close a connection to the bus
2763
2764         * python/dbus_bindings.pyx (Connection::close): renamed method
2765         was previously called disconnect
2766         (bus_get): now supports getting a private connection
2767
2768         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2769         keyword is set to True.  if it is, execute the method without waiting
2770         for a reply
2771         (ProxyObject::_introspect_execute_queue): new method for executing
2772         all the pending methods that were waiting for the introspect to
2773         finish.  this is called when introspect either succeeds or fails
2774         (ProxyObject::_introspect_error_handler): call queued methods
2775
2776 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2777
2778         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2779         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2780
2781         * python/service.py (Object::_message_cb): handle exceptions correctly
2782         by sending them over the wire to the calling app.  This makes sure
2783         the client returns immediately instead of waiting the 15 seconds to
2784         timeout.
2785
2786         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2787         Add a test to benchmark how long it takes to introspect a service and 
2788         call a method which returns a large element (pretty fast)
2789
2790         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2791         method which pushes a lot of data
2792
2793 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2794
2795         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2796         reclaim memory outside of the loop and use del istead of just setting
2797         the key to None
2798
2799 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2800
2801         * python/service.py (ObjectType::_reflect_on_signal): Always close
2802         signal tag even when there are no arguments
2803
2804 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2805
2806         * configure.in: Set mono, mono-docs and Qt3 to default
2807         to no instead of auto when building.  These bindings do not
2808         have full time maintainers and will not be supported for the
2809         1.0 release.
2810
2811 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2812
2813         patches from Michael Krivoruchko <misha at sun.com>: 
2814         
2815         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2816         _dbus_connection_message_sent, 
2817         _dbus_connection_send_preallocated_unlocked_no_update, 
2818         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2819         is NULL when calling _dbus_verbose
2820
2821         * configure.in: check for functions getpeerucred and getpeereid
2822
2823         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2824         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2825         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2826         Patch was only tested on Solaris 10 x86 so it might be issues
2827         with other platforms (i.e. BSDs and MacOSX)
2828         
2829
2830 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2831
2832         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2833         instead of marshal basic so we can handle recursive types in a variant
2834
2835         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2836         in variants
2837
2838         * test/glib/test-service-glib.c, test-service-glib.xml
2839         (my_object_echo_variant [EchoVariant], 
2840         my_object_process_variant_of_array_of_ints123
2841         [ProcessVariantOfArrayOfInts123]): 
2842         Add two test methods
2843
2844         * python/introspect_parser.py: New module for parsing introspect
2845         data.
2846
2847         * python/dbus_bindings.pyx:
2848         (various places): when throwing errors fix to use errormsg instead 
2849         of message local variable because Pyrex can get confused with other 
2850         message variables (initial patch by Robert McQueen 
2851         <robert.mcqueen at collabora.co.uk>)
2852         (MessageIter::parse_signature_block): new method for getting the next
2853         block in a signiture.
2854         (MessageIter::append_strict): new method for appending values strictly
2855         using the passed in signature instead of guessing at the type
2856         (MessageItter:: append_dict, append_struct, append_array): use 
2857         signatures to marshal children if the signature is available
2858         
2859         * python/exceptions.py (IntrospectionParserException): new exception
2860
2861         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2862         introspected signatures if available, else we fall back to the
2863         old way of doing things.
2864         (ProxyObject::_introspect_reply_handler ): parse introspection data
2865         
2866         * python/service.py (ObjectType::_reflect_on_method): Properly
2867         terminate <method> if there are no args in the reflection data
2868
2869         * test/python/test-client.py: add tests for talking with the GLib
2870         test server.  This gives us better coverage for introspection since
2871         python to python will always generate arguments as variants.  It also
2872         allows us to test the robustness of the GLib bindings and interlanguage
2873         communications.
2874
2875         
2876 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2877
2878         * bus/driver.c (bus_driver_handle_introspect): Add signals
2879         to the introspect data. (patch from Daniel P. Berrange 
2880         <dan at berrange.com>)
2881
2882         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2883         
2884         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2885         _dbus_connection_run_builtin_filters): Changed these to
2886         be unlock_no_update functions and call 
2887         _dbus_connection_send_unlocked_no_update instead of
2888         dbus_connection_send to avoid locking errors.
2889         
2890         * doc/TODO: Removed the make Ping test TODO
2891         
2892 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2893
2894         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2895         We now copy the message from a DBusError and then free 
2896         the error object befor throwing the error
2897
2898         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2899         DBusBindingOutputMode enum which was causing a warning.
2900         #include <time.h> so using time_t is explicitly defined
2901
2902 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2903
2904         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2905         - dbus/dbus-bus.c
2906         (internal_bus_get): new method that take over the heavy lifting
2907         of dbus_bus_get and adds the ability to get a private connection
2908         to the bus
2909         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2910         interface as in previous versions
2911         (dbus_bus_get_private): new method that is a wrapper to 
2912         internal_bus_get to get a private connection to the bus
2913
2914         - dbus/dbus-bus.h
2915         (dbus_bus_get_private): add as a public libdbus interface
2916
2917         - dbus-1.pc.in: output system_bus_default_address and 
2918         sysconfdir variables so apps can use them when compiling
2919
2920 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2921         * dbus/qt: New Qt bindings
2922
2923 2005-09-12  Waldo Bastian  <bastian@kde.org>
2924
2925         * dbus/dbus-marshal-validate.c,
2926         doc/dbus-specification.xml, test/Makefile.am,
2927         test/test-names.c: allow hyphens in bus names.
2928
2929 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2930
2931         * test/data/auth/fallback.auth-script: we don't
2932         retry the EXTERNAL method when we know its going
2933         to fail anymore.
2934
2935 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2936
2937         * dbus/dbus-connection-internal.h: rename
2938         (add|remove|toggle)_(watch|timeout) to unlocked()
2939         
2940         * dbus/dbus-connection.c: ditto.
2941         
2942         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2943         Update some callers for the renaming.
2944
2945 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2946
2947         * dbus/dbus-auth.c: (record_mechanisms): don't
2948         retry the first auth mechanism because we know
2949         we're just going to get rejected again.
2950         
2951         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2952         Fix thinko ... and what a nasty little bugger to
2953         track down you were ...
2954
2955         * dbus/dbus-connection.c:
2956         (_dbus_connection_add_watch),
2957         (_dbus_connection_remove_watch): add note about
2958         these needing the connection to be locked.
2959         (_dbus_connection_get_dispatch_status_unlocked):
2960         set status to DATA_REMAINS when we queue the
2961         disconnected message.
2962         
2963         * bus/dispatch.c:
2964         (bus_dispatch): fix warning.
2965         (check_existent_service_no_auto_start):
2966         Expect ChildSignaled error too.
2967         (check_existent_hello_from_self): fix another
2968         couple of warnings.
2969         
2970 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2971
2972         Patches from James Willcox <snorp@snorp.net>
2973
2974         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2975
2976         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2977         support array "out" parameters.
2978
2979         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2980         for 16-bit int support.
2981
2982 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2983
2984         * Released 0.50
2985
2986         * Patch from Steve Grubb:
2987         - bus/activation.c (bus_activation_service_reload_test): clean up
2988         some indentation
2989         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2990         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2991         buffer overflows in the test suite.  This is non critical because
2992         it can not be exploited and this code is only run when doing a 
2993         make check.
2994
2995         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2996         - configure.in: Don't check and link against kdecore, only qt headers
2997         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2998         - gcj/org/freedesktop/dbus/Makefile.am:
2999         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3000         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3001         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3002         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3003         - tools/Makefile.am: Add platform extentions to binaries 
3004         (i.e. .exe on windows)
3005
3006         * configure.in: 
3007         - Make it so if no suitable version of python is found we only 
3008         disable building python instead of exiting the configure script
3009         - Require version 2.4 of glib for glib bindings
3010         - Up version to 0.50
3011
3012         * python/__init__.py: Sync version with libdbus to (0,50,0)
3013         
3014 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3015
3016         * dbus/dbus-object-tree.c (find_subtree_recurse):
3017         a couple of optimizations (bug #710):
3018         - do a binary search in the tree
3019         - insert a new child at the right place directly, no need for
3020           qsort anymore
3021         - do the "double alloc" thing when allocating children
3022
3023 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3024
3025         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3026
3027         * python/dbus_bindings.pyx: Memory management foo
3028         (global): remove hacky _user_data_references global list
3029         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3030         tuples. Unref user_data
3031         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3032         (Connection::__del__): Remove and replace with __dealloc__ method
3033         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3034         to keep tuple from being deallocated instead of the global var hack
3035         (Connection::register_object_path): Stuff user_data into a tuple.
3036         Use Py_INCREF to keep tuple from being deallocated instead of the 
3037         global var hack
3038         (Connection::register_fallback): Stuff user_data into a tuple.
3039         Use Py_INCREF to keep tuple from being deallocated instead of the 
3040         global var hack
3041         (GIL_safe_pending_call_notification): Don't unref the message
3042         because it gets unreffed when going out of scope.  Py_XDECREF
3043         the user_data
3044         (PendingCall::__del__): Remove and replace with __dealloc__ method
3045         (PendingCall::set_notify): ref the pending call because we will
3046         need it to stick around for when the notify callback gets called
3047         (Message::__del__): Remove and replace with __dealloc__ method
3048
3049         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3050         gthreads_init to match up with the dbus call
3051
3052         * python/glib.py (init_threads): Changed to threads_init to match
3053         up with gobject.threads_init().  init_threads is kept for backwards
3054         compat but will most likely be deprecated in the future
3055
3056         * test/python/test-client.py: 
3057         - revamp to use Python's unittest functionality
3058         - add async call tests
3059         - setup threads in glib and dbus so we make sure locks are working
3060         
3061 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3062
3063         * python/dbus_bindings.pyx 
3064         (_pending_call_notification, cunregister_function_handler, 
3065         cmessage_function_handler): All callback functions have been rearranged 
3066         to workaround a bug in Pyrex when working with the GIL which is Python's 
3067         global lock when dealing with threads.  They have been split into
3068         a wrapper function (which assumes the name of the old function) and
3069         a _GIL_safe_<function name> function which contains the functionality
3070         of the old function.  This ensures that Pyrex does not write code
3071         the lock is released.
3072         
3073
3074 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3075
3076         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3077         GIL global lock when calling back into Python
3078
3079 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3080
3081         * Release 0.36.2
3082
3083         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3084
3085         * bus/policy.c (bus_policy_allow_user): change default "user is
3086         allowed" to be "user has same uid as the bus itself"; any
3087         allow/deny rules will override.
3088
3089         * bus/session.conf.in: don't allow all users, since now by default
3090         the user that ran the bus can connect.
3091
3092 2005-08-26  Colin Walters  <walters@verbum.org>
3093
3094         * tools/dbus-print-message.c (print_message): Flush stdout
3095         after printing a message, so that redirecting to a file, then
3096         hitting Ctrl-C works.
3097
3098 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3099
3100         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3101         (EmptyMessage): new class that subclasses Message.  This is a workaround
3102         to a Pyrex bug that fails to call __del__ when the Message object goes out
3103         of scope.  For some reason subclassing Message fixes this bug
3104         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3105         - s/Message(_create=0)/EmptyMessage everywhere else
3106         
3107         * test/python/test-{server|client}.py: add the python/.libs directory
3108         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3109         get picked up from the system
3110
3111 2005-08-25  Colin Walters  <walters@verbum.org>
3112
3113         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3114         to Ryan Lortie for the suggestion.
3115
3116 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3117
3118         * test/python: Add python regression test
3119
3120         * configure.in: Add test/python/Makefile
3121
3122         * test/Makefile.am: Add the python directory to SUBDIRS
3123
3124 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3125
3126         * Release 0.36.1
3127
3128         * python/_dbus.py: 
3129         (Interface::connect_to_signal): propigate keywords for match on args
3130         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3131
3132         * python/proxies.py (ProxyObject::connect_to_signal):
3133         propigate keywords for match on args
3134
3135         * Makefile.am: point everything to pyexecdir since python borks
3136         on multilib
3137
3138 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3139
3140         * Release 0.36
3141
3142 2005-08-23  Colin Walters  <walters@verbum.org>
3143
3144         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3145
3146 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3147
3148         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3149         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3150         of defining DBusConnection ourselves.
3151
3152 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3153
3154         * python/dbus.pth: New path file to fix up problems when installing
3155         c libraries to lib64 and python files to lib.
3156
3157         * python/Makefile.am: install dbus.pth in the correct spot
3158
3159 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3160         * ChangeLog: clean up my last entry a bit
3161
3162         * doc/introspect.xsl: New stylesheet for converting introspection data
3163         into browser renderable xhtml. Contributed by Lennart Poettering.
3164
3165         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3166         Poettering.
3167
3168         * doc/dbus-tutorial.xml: 
3169         - Add Colin Walter to the Authors section for authoring the GLib
3170         section
3171         - Add descriptions of the new signature and type functionality
3172         in the Python complex type mapping section
3173         - Add a sidenote on the new args matching functionality in 
3174         the Python bindings
3175         - Fixed up some of the examples to use the gobject.MainLoop
3176         instead of gtk.main
3177         
3178         * python/_dbus.py:
3179         (Bus::_create_args_dict): New. Converts a hash of arg matches
3180         to a more useable format
3181         (Bus::add_signal_receiver): add a **keywords parameter for catching
3182         arg match parameters
3183         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3184         arg match parameters
3185         
3186         * python/matchrules.py:
3187         (MatchTree::exec_matches): Check for arg matches
3188         (SignalMatchRule::add_args_match): New method
3189         (SignalMatchRule::execute): Added args_list parameter as an optimization
3190         so we don't have to marshal the args more than once
3191         (SignalMatchRule::match_args_from_list): New method that checks to see
3192         if the rule's arg matches match an argument list.  Only arguments
3193         set in the rule are checked.
3194         (SignalMatchRule::match_args_from_rule): New method that checks to see
3195         if the rule's arg matches match another rule's.  All args have to match
3196         in order for this method to return true.  If either rule has more args
3197         then it is not a match.
3198         (SignalMatchRule::is_match): Add args match
3199         (SignalMatchRule::repr): Add args to the final output if they exist
3200
3201 2005-08-17  Ross Burton  <ross@burtonini.com>
3202
3203         * glib/dbus-gproxy.c:
3204         (dbus_g_proxy_call_no_reply): unref the message once sent.
3205         (dbus_g_proxy_call): protect against NULL proxy.
3206
3207 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3208
3209         * python/__init__.py: Version updated (0, 43, 0)
3210         
3211         * python/dbus_bindings.pyx: 
3212         - Fixed type objects to have self passed into __init__
3213         - Added the Variant type
3214         - Add the ability to specify types or signatures for Array, Variant 
3215         and Dictionary
3216         (Connection::send_with_reply_handlers): return a PendingCall object
3217         (_pending_call_notification): handle the case when an error is returned 
3218         without an error message in the body
3219         (MessageIter::get_boolean): return True or False instead of an integer
3220         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3221         and add checks for objects with embeded signatures or types (Array, 
3222         Variant and Dictionary)
3223         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3224         (MessageIter::append_dict): handle embeded types or signatures
3225         (MessageIter::append_array): handle embeded types or signatures
3226         (MessageIter::append_variant): new method
3227         
3228         * python/proxies.py:
3229         (DeferedMethod): New. Dummy executable object used when queuing calls 
3230         blocking on introspection data
3231         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3232         or shorter timeouts for method calls
3233         (ProxyObject): Add first pass at an introspection state machine
3234         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3235         introspection. 
3236         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3237         the usual mechanisms for sending messages.  This is to avoid a deadlock
3238         where the Intospect call would be queued waiting for the Introspect 
3239         call to finish ;-)
3240         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3241         when introspection returns with no error
3242         (ProxyObject::_introspect_error_handler): New.  This method is called 
3243         when introspection encounters an error
3244         (ProxyObject::__getattr__): Code to handle different introspection 
3245         states.  Queue async calls or block blocking calls if we are 
3246         introspecting.  Pass through as normal if we are not or are done with 
3247         introspecting.
3248         
3249         * python/service.py: Import signal and method from decorators.py
3250
3251         * python/types.py: Add Variant type
3252
3253 2005-08-16  Colin Walters  <walters@verbum.org>
3254
3255         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3256         DBusError message is NULL.
3257
3258 2005-08-09  Havoc Pennington  <hp@redhat.com>
3259
3260         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3261         malloc'd copy of the name parameter
3262
3263 2005-08-09  Havoc Pennington  <hp@redhat.com>
3264
3265         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3266         warning if the reply serial is set to 0
3267
3268 2005-08-04  Colin Walters  <walters@verbum.org>
3269
3270         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3271         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3272         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3273         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3274         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3275         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3276         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3277         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3278         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3279         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3280         
3281         Prefix name with _ to ensure they're not exported.  All callers
3282         updated.
3283
3284         * glib/dbus-gvalue.c (typecode_to_gtype)
3285         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3286         (signature_iter_to_g_type_dict)
3287         (signature_iter_to_g_type_array)
3288         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3289         (dbus_gtypes_from_arg_signature):
3290         Move to dbus-gsignature.c.
3291
3292         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3293         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3294         (dbus_binding_tool_output_glib_client): Ditto.
3295
3296         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3297         and dbus-gsignature.h
3298
3299         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3300         unused variable.
3301
3302 2005-08-03  Colin Walters  <walters@verbum.org>
3303
3304         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3305         catch any incompatible changes accidentally made.
3306
3307 2005-08-03  Havoc Pennington  <hp@redhat.com>
3308
3309         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3310         typo, from Julien Puydt
3311
3312         * bus/connection.c (bus_connection_disconnected): we were always
3313         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3314
3315 2005-08-01  Colin Walters  <walters@verbum.org>
3316
3317         Patch from Joe Markus Clarke:   
3318         
3319         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3320         use-after-free.
3321
3322 2005-08-01  Colin Walters  <walters@verbum.org>
3323         
3324         Patch from Joe Markus Clarke:   
3325         
3326         * tools/dbus-send.c (main): 
3327         
3328         Don't use C99 style initializers (bug #3933).
3329         
3330 2005-08-01  Colin Walters  <walters@verbum.org>
3331
3332         Patch from Joe Markus Clarke:   
3333
3334         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3335         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3336         * glib/dbus-gobject.c (write_interface):
3337
3338         Don't use C99 style initializers (bug #3933).
3339
3340 2005-07-31  Havoc Pennington  <hp@redhat.com>
3341
3342         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3343         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3344
3345 2005-07-30  Havoc Pennington  <hp@redhat.com>
3346
3347         * fix a bunch of Doxygen warnings and mistakes
3348
3349 2005-07-30  Havoc Pennington  <hp@redhat.com>
3350
3351         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3352         DBUS_BUILD_TESTS since it's now used in production code
3353
3354 2005-07-29  Havoc Pennington  <hp@redhat.com>
3355
3356         * test/glib/test-profile.c (write_junk): initialize the junk
3357         buffer so valgrind doesn't have a breakdown
3358
3359 2005-07-29  Havoc Pennington  <hp@redhat.com>
3360
3361         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3362         (match_rule_matches): remove unused arg
3363         (test_matching): add tests for match_rule_matches()
3364
3365         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3366         do arg0='foo' arg5='bar' in the match rules
3367         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3368
3369         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3370
3371 2005-07-29  Ross Burton  <ross@openedhand.com>
3372
3373         * dbus/dbus-connection.c:
3374         Don't create a DBusCondVar which is never used.
3375
3376 2005-07-27  Ross Burton  <ross@openedhand.com>
3377
3378         * dbus/dbus-message.c:
3379         Reduce the size of the maximum cached message to 10K.
3380
3381 2005-07-25  Ross Burton  <ross@openedhand.com>
3382
3383         * glib/dbus-gproxy.c:
3384         Remove matches when all proxies are unregistered.
3385
3386 2005-07-24  Colin Walters  <walters@verbum.org>
3387
3388         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3389         typedata; recursive arrays won't have it.
3390
3391         * test/glib/test-dbus-glib.c:
3392         * test/glib/test-service-glib.c:
3393         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3394         
3395 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3396
3397         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3398         proxies.py, service.py: Cleanup of code after running it through the
3399         pyflakes code checker mostly dealing with undefined names.  
3400         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3401
3402 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3403
3404         * NEWS: Update to 0.35.2
3405
3406 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3407
3408         * python/_dbus.py: Remove import of the dbus.services
3409         module as it no longer exists (patch from Dimitur Kirov)
3410
3411         * python/service.py (Object::__init__): Fixed typo
3412         s/name/bus_name (patch from Dimitur Kirov)
3413
3414         * python/examples/example-signal-emitter.py: import dbus.glib
3415         to get the main loop and use glib mainloop instead of gtk so
3416         X doesn't have to be running.
3417
3418         * python/examples/example-signal-recipient.py: import dbus.glib
3419         to get the main loop and use glib mainloop instead of gtk so
3420         X doesn't have to be running. Import the decorators module
3421         directly.
3422
3423         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3424         didn't pick up on but are needed to build
3425
3426         * configure.in: upped version to 0.35.2
3427
3428         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3429         added Colin Walters' SELinux API rename patch from head 
3430         s/unix sercurity context/selinux security context/
3431
3432 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3433
3434         * python/Makefile.am: dbus_binding.pxd.in should be included 
3435         in EXTRA_DIST not dbus_binding.pxd
3436         fix up $(srcdir) hopefully for the last time
3437
3438         * NEWS: Update to 0.35.1
3439
3440 2005-07-16  Colin Walters  <walters@verbum.org>
3441
3442         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3443         from bus_driver_handle_get_connection_unix_security_context.  Update for
3444         error usage.
3445         (message_handlers): Update for renames.
3446
3447         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3448         _dbus_string_init failure correctly.
3449         (bus_selinux_append_context): Convert SID to context.  Append it
3450         as a byte array.
3451         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3452         hasn't been called.
3453
3454         * bus/selinux.h: Update prototype.
3455
3456         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3457         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3458
3459 2005-07-15  Colin Walters  <walters@verbum.org>
3460
3461         * doc/TODO: Add note about convenience wrappers.
3462
3463 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3464
3465         * NEWS: Update to 0.35
3466
3467 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3468
3469         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3470         so distcheck doesn't fail
3471
3472         * glib/examples/Makefile.am: Add example-service.xml and 
3473         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3474
3475         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3476         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3477
3478         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3479         compiler looks in the right places during distcheck
3480
3481 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3482
3483         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3484         to fail
3485
3486 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3487
3488         * python/examples/example-service.py,
3489         python/examples/example-signal-emitter.py: Fixed up examples
3490         for API changes
3491
3492 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3493
3494         * python/__init__.py: Upped to version (0,42,0) because of
3495         the API change
3496
3497 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3498
3499         * ChangeLog: fix date in last entry
3500
3501         * configure.in, bus/system.conf.in: add the ability to configure 
3502         the system bus user at compiletime with the --with-dbus-user flag
3503         (patch from Kristof Vansant)
3504
3505 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3506
3507         * bus/dispatch.c, test/test-service.c: Add testcase
3508         for sending messages to oneself (TODO item).
3509
3510         * python/service.py (class Object): Swap ordering of bus_name 
3511         and object_path parameters to better support inheritance.
3512
3513         * doc/dbus-tutorial.xml: change Python docs to reflect change
3514         in parameter ordering and fix the inheritance section.
3515
3516         * doc/TODO: remove sending message to oneself TODO item
3517
3518 2005-07-15  Ross Burton  <ross@openedhand.com>
3519
3520         * glib/dbus-gproxy.c:
3521         Fix a leak when calling methods via the proxy.
3522
3523 2005-07-15  Colin Walters  <walters@verbum.org>
3524
3525         * bus/selinux.c (bus_selinux_append_context): Wrap in
3526         HAVE_SELINUX.
3527
3528 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3529
3530         * python/_dbus.py (Bus::remove_signal_receiver):
3531         don't add a callback to the match if none has been passed in
3532         
3533         * python/matchrules.py (SignalMatchTree::remove): if the rule
3534         being matched does not have a callback treat it as a wildcard
3535         fix matching logic
3536
3537         * doc/dbus-tutorial.xml: Add Python tutorial
3538
3539 2005-07-14  Colin Walters  <walters@verbum.org>
3540
3541         * bus/driver.c
3542         (bus_driver_handle_get_connection_unix_security_context): New function.
3543         (message_handlers): Add.
3544
3545         * bus/selinux.c (bus_selinux_append_context): New function; appends
3546         security context to message.
3547
3548         * bus/selinux.h: Prototype.
3549
3550         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3551
3552 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3553
3554         * bus/activation.c: clean up all tabs to be 8 spaces 
3555         (bus_activation_activate_service): make sure we clean up
3556         if activation fails
3557
3558         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3559         (check_shell_fail_service_auto_start): New function
3560         tests to make sure we get fail properly when trying to auto start a service
3561         with a faulty command line
3562         (check_shell_service_success_auto_start): New function tests to make sure
3563         auto started services get the arguments on the command line
3564
3565         * test/test-shell-service.c: Added service for testing auto-starting with 
3566         command line arguments
3567
3568         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3569         test/data/valid-service-files/debug-shell-echo-success.service.in:
3570         Added service files for testing auto-starting with command line arguments
3571
3572         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3573
3574 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3575
3576         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3577         
3578         * dbus/Makefile.am: added new files to build.
3579
3580         * bus/activation.c (bus_activation_activate_service): support
3581         activation commands with parameters.
3582
3583         * test/shell-test.c: added test program for the shell parsing
3584         code.
3585
3586 2005-07-13  David Zeuthen  <davidz@redhat.com>
3587
3588         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3589         64 bit signed and unsigned parameters
3590
3591 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3592
3593         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3594
3595         * python/service.py (class Name): renamed BusName to make it clearer
3596         what the object is for (a name on the bus)
3597
3598         * python/examples/example-service.py,
3599         python/examples/example-signal-emitter.py: change the Name object to
3600         BusName
3601
3602 2005-07-12  Colin Walters  <walters@verbum.org>
3603
3604         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3605
3606         * tools/dbus-launch.c: Include sys/select.h.
3607
3608 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3609         * python/dbus_bindings.pyx.in: removed
3610
3611         * python/dbus_bindings.pyx: Added.
3612         - Fixed some memleaks (patch from 
3613         Sean Meiners <sean.meiners@linspireinc.com>)
3614         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3615         own pxd file (Pyrex definition)
3616         - Broke out glib dependancies into its own pyx module
3617         
3618         * python/dbus_bindings.pdx: Added.
3619         - Defines C class Connection for exporting to other modules
3620
3621         * python/dbus_glib_bindings.pyx: Added.
3622         - New module to handle lowlevel dbus-glib mainloop integration
3623
3624         * python/glib.py: Added.
3625         - Registers the glib mainloop when you import this module
3626
3627         * python/services.py: Removed (renamed to service.py)
3628         
3629         * python/service.py: Added.
3630         - (class Server): renamed Name
3631
3632         * python/__init__.py: Bump ro version (0,41,0)
3633         -don't import the decorators or service module
3634         by default.  These now reside in the dbus.service namespace
3635
3636         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3637         setup function on creation 
3638
3639         * python/examples/example-service.py,
3640         python/examples/example-signal-emitter.py: update examples
3641
3642         * python/examples/gconf-proxy-service.py,
3643         python/examples/gconf-proxy-service2.py: TODO fix these up
3644
3645         * doc/TODO: Addition
3646         - Added a Python Bindings 1.0 section
3647         - added "Add match on args or match on details to match rules"
3648
3649
3650 2005-07-12  Colin Walters  <walters@verbum.org>
3651
3652         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3653         (statemachine-glue.h): 
3654         * glib/examples/Makefile.am (example-service-glue.h) 
3655         (example-signal-emitter-glue.h): 
3656         * glib/Makefile.am (dbus-glib-error-switch.h): 
3657         Add libtool --mode=execute so we use the built library instead
3658         of any installed one.
3659
3660 2005-07-11  Colin Walters  <walters@verbum.org>
3661
3662         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3663         (dbus_g_value_types_init): Remove assertion.
3664         (dbus_g_value_get_g_type, dbus_g_value_open)
3665         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3666         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3667         functions related to DBusGValue.  Now we marshal/demarshal
3668         structures as GValueArray.
3669         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3670         structures.
3671         (signature_iter_to_g_type_array): Don't call
3672         signature_iter_to_g_type_struct.
3673         (signature_iter_to_g_type_struct): Delete.
3674         (dbus_gvalue_to_signature): Delete.
3675         (dbus_gvalue_to_signature): New function with same name as other
3676         one; we can convert structures to signatures.
3677         (demarshal_valuearray): New function.
3678         (get_type_demarshaller): Use it.
3679         (demarshal_recurse): Delete.
3680         (marshal_proxy): New function.
3681         (marshal_map): Warn if we can't determine signature from type.
3682         (marshal_collection_ptrarray): Ditto.
3683         (marshal_collection_array): Ditto.
3684         (get_type_marshaller): Use marshal_valuearray.
3685         (marshal_recurse): Delete.
3686         (_dbus_gvalue_test): Add some tests.
3687
3688         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3689         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3690         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3691         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3692         (dbus_g_value_free): Remove prototypes.
3693
3694         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3695         G_TYPE_VALUE_ARRAY.
3696
3697         * glib/examples/example-service.c:
3698         * glib/examples/example-client.c: Implement GetTuple.
3699
3700         * test/glib/test-dbus-glib.c:
3701         * test/glib/test-service-glib.c:
3702         * test/glib/test-service-glib.xml: Add structure tests.
3703
3704 2005-07-10  Colin Walters  <walters@verbum.org>
3705
3706         * doc/TODO: Knock off some GLib items with this patch.
3707
3708         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3709         (_dbus_gvalue_signals_error): New functions.
3710
3711         * glib/dbus-gvalue-utils.h: Prototype them.
3712
3713         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3714         and change to not output const/retval flags for input args.  All
3715         callers updated.
3716         (invoke_object_method): Refactor to handle return values.  Add
3717         some more comments in various places.  Remove debug g_print.
3718
3719         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3720
3721         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3722         Handle G_TYPE_NONE.
3723         (compute_gsignature): New function; refactored from code from
3724         compute_marshaller and compute_marshaller_name.  Enhance to
3725         handle return values and async ops more cleanly.  Update for
3726         async ops returning NONE instead of BOOLEAN.
3727         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3728         and output appropriate string.
3729         (generate_glue): Handle return value annotation.  Also don't dump
3730         constness flag for input arguments.
3731
3732         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3733         files shared between installed library and utilities.
3734         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3735         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3736         binding tool can access gtype utility functions.
3737
3738         * test/glib/test-service-glib.c: 
3739         * test/glib/test-service-glib.xml: 
3740         * test/glib/test-dbus-glib.c: Add some tests for return values.
3741
3742 2005-07-09  Colin Walters  <walters@verbum.org>
3743
3744         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3745         argument if available, not method.
3746
3747         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3748         (invoke_object_method): First, remove some redundant
3749         GValues (object_value, error_value) in favor of working on
3750         array directly.  Second, rework constness to be less buggy.
3751         Now we iterate directly over the argument metadata instead
3752         of parallel iterating over output signature and metadata.
3753
3754         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3755
3756         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3757         annotation on input args.
3758         
3759 2005-07-09  Colin Walters  <walters@verbum.org>
3760
3761         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3762         Define.
3763
3764         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3765         annotation.
3766
3767         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3768         (method_dir_signature_from_object_info): Handle arg_iterate change.
3769         (write_interface): Ditto.
3770         (lookup_object_info): Don't barf if format_version is > 0.
3771         (invoke_object_method): Handle arg constness.
3772
3773         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3774         (arg_info_new): Create.
3775         (arg_info_unref): Destroy.
3776         (arg_info_get_annotations, arg_info_get_annotation) 
3777         (arg_info_add_annotation): New functions.
3778
3779         * glib/dbus-gidl.h: Prototype them.
3780
3781         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3782         args, disallow them in properties.
3783         (parse_annotation): Handle arg annotations.
3784
3785         * test/glib/test-service-glib.xml: 
3786         * test/glib/test-service-glib.c: Update to make some methods
3787         const.
3788
3789 2005-07-08  Colin Walters  <walters@verbum.org>
3790
3791         * test/glib/test-service-glib.xml: 
3792         * test/glib/test-service-glib.c:
3793         * test/glib/test-dbus-glib.c: Test a{sv}.
3794
3795         * glib/examples/statemachine/statemachine.c:
3796         * glib/examples/statemachine/statemachine-server.c:
3797         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3798         add progress bar, etc.
3799
3800         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3801         needed anymore due to generic array/map marshalling.
3802         (dbus_g_value_types_init): Don't register basic arrays or the
3803         string/string hash.
3804         (dbus_gtype_from_signature_iter): Don't try to recurse into
3805         variants.
3806         (dbus_gtype_to_signature): Check collection/map before type
3807         metadata.
3808         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3809         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3810         generic map creation/append functions instead of hash table
3811         specifically.
3812         (get_type_demarshaller): Handle maps.
3813         (demarshal_collection): Dispatch on collection type to either
3814         demarshal_collection_ptrarray or demarshal_collection_array.
3815         (get_type_marshaller): Handle maps.
3816         (marshal_collection): Dispatch collection type to either
3817         marshal_collection_ptrarray or marshal_collection_array.
3818         (_dbus_gvalue_test): New test.
3819
3820         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3821         (hash_free_from_gtype): Use it to free GValues.
3822         (hashtable_append): New function.
3823         (ptrarray_append): Fix prototype.
3824         (slist_append): Ditto.
3825         (_dbus_gvalue_utils_test): Extend tests.
3826
3827         * glib/dbus-gtype-specialized.c
3828         (dbus_g_type_specialized_init_append): Renamed from
3829         dbus_g_type_specialized_collection_init_append.  Remove const from
3830         value, since we steal it.
3831         (dbus_g_type_specialized_map_append): New function.
3832
3833         * glib/dbus-gtype-specialized.h: Update prototypes.
3834         Add DBusGTypeSpecializedMapAppendFunc.
3835
3836         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3837         _dbus_gvalue_test.
3838         
3839         * glib/dbus-gtest.h: Prototype it.
3840
3841 2005-07-08  Ross Burton  <ross@openedhand.com>
3842
3843         * dbus/dbus-glib.h:
3844         Add DBysGAsyncData for the async bindings.
3845
3846         * glib/dbus-binding-tool-glib.c:
3847         Re-enable the async bindings.
3848
3849         * test/glib/test-dbus-glib.c:
3850         Add a test for the generated async bindings.
3851
3852 2005-07-08  Colin Walters  <walters@verbum.org>
3853
3854         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3855         connection concept.
3856         
3857 2005-07-08  Colin Walters  <walters@verbum.org>
3858         
3859         * tools/Makefile.am: Kill of print-introspect in favor of using
3860         dbus-send --print-reply=literal.
3861
3862         * test/glib/test-service-glib.xml: 
3863         * test/glib/test-service-glib.c (my_object_get_objs): New test
3864         for "ao".
3865
3866         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3867         (main): Test GetObjs.
3868
3869         * glib/examples/statemachine/Makefile.am:
3870         * glib/examples/statemachine/sm-marshal.list:
3871         * glib/examples/statemachine/statemachine-client.c:
3872         * glib/examples/statemachine/statemachine-server.c:
3873         * glib/examples/statemachine/statemachine-server.xml:
3874         * glib/examples/statemachine/statemachine.c:
3875         * glib/examples/statemachine/statemachine.h:
3876         * glib/examples/statemachine/statemachine.xml:
3877
3878         New example.
3879
3880         * glib/examples/example-service.c (main): Move invocation
3881         of dbus_g_object_type_install_info earlier, to emphasize it
3882         should only be done once.
3883
3884         * glib/examples/example-signal-emitter.c (main): Ditto.
3885
3886         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3887
3888         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3889         (dbus_gvalue_marshal): Update prototypes.
3890
3891         * glib/dbus-gvalue.c: Update all marshalling functions to take
3892         const GValue instead of GValue.
3893         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3894         types.
3895         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3896         change.
3897         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3898         Return a newly-allocated string.
3899         (demarshal_proxy, demarshal_object_path, demarshal_object)
3900         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3901         we get the wrong types from message.
3902         (get_type_demarshaller): New function, extracted from
3903         dbus_gvalue_demarshal.
3904         (demarshal_collection): New function, demarshals generic
3905         collection.
3906         (dbus_gvalue_demarshal): Just invoke result of
3907         get_type_demarshaller.  Throw error if we don't have one.
3908         (marshal_garray_basic): Abort on OOM.
3909         (get_type_marshaller): New function, extracted from
3910         dbus_gvalue_marshal.
3911         (collection_marshal_iterator, marshal_collection): New functions;
3912         implements generic marshalling for an iteratable specialized
3913         collection.
3914         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3915
3916         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3917         G_TYPE_STRING.
3918         (ptrarray_value_from_gvalue): Ditto.
3919         (ptrarray_append, ptrarray_free): New functions.
3920         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3921         (slist_append, slist_end_append, slist_free): New functions.
3922         (dbus_g_type_specialized_builtins_init): Add append fuctions
3923         for GPtrArray and GSList.  Register GSList.
3924         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3925
3926         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3927         New.
3928         (dbus_g_type_specialized_collection_init_append)
3929         (dbus_g_type_specialized_collection_append)
3930         (dbus_g_type_specialized_collection_end_append): Prototype.
3931         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3932         end_append_func.
3933
3934         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3935         (dbus_g_type_specialized_collection_append) 
3936         (dbus_g_type_specialized_collection_end_append): New functions.
3937         (dbus_g_type_map_value_iterate): Take const GValue.
3938         (dbus_g_type_collection_value_iterate): Ditto.
3939
3940         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3941         _dbus_gvalue_utils_test.
3942         
3943         * glib/dbus-gtest.h: Prototype it.
3944
3945         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3946         using uninitialized owner_list.
3947         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3948         public API.
3949         (dbus_g_proxy_end_call_internal): Update to use error set
3950         from dbus_gvalue_demarshal instead of setting it here.
3951         (dbus_g_proxy_begin_call): Move return_if_fail here.
3952
3953         * glib/dbus-gobject.c (write_interface): Update for
3954         dbus_gtype_to_signature returning new string.
3955
3956         * configure.in: Add glib/examples/statemachine.
3957
3958 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3959
3960         * configure.in: Add a configure option, --with-console-auth-dir
3961         
3962         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3963         new setting.  Patch from Kay Sievers.
3964
3965 2005-07-06  Colin Walters  <walters@verbum.org>
3966
3967         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3968         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3969         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3970         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3971         Delete in favor of dbus_g_proxy_begin_call and
3972         dbus_g_proxy_cancel_call.
3973         (DBusGProxyCall, DBusGProxyCallNotify): New.
3974         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3975         data, and destroy function.  This replaces
3976         dbus_g_pending_call_set_notify.
3977         (dbus_g_proxy_cancel_call): Prototype.
3978         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3979
3980         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3981         pending_calls map.
3982         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3983         internal proxy for calls to the bus. Remove
3984         pending_nameowner_calls, now the internal proxy keeps track.
3985         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3986         pending_nameowner_calls.
3987         (got_name_owner_cb): Update prototype, and use
3988         dbus_g_proxy_end_call.
3989         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3990         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3991         favor of using internal proxy.
3992         (dbus_g_proxy_manager_unregister): Update to use
3993         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3994         (dbus_g_proxy_init): Initialize pending calls map.
3995         (dbus_g_proxy_constructor): New.
3996         (dbus_g_proxy_class_init): Add get/set property functions,
3997         constructor, and add NAME, PATH, and INTERFACE properties.
3998         (cancel_pending_call): New function.
3999         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4000         cancel them.
4001         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4002         (GPendingNotifyClosure): New structure.
4003         (d_pending_call_notify, d_pending_call_free): Moved here from
4004         dbus-glib.c.
4005         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4006         ordering.
4007         (manager_begin_bus_call): New internal function for talking to
4008         internal bus proxy.
4009         (dbus_g_proxy_new): Construct object using GObjet properties.
4010         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4011         Create closure of same, and insert call into map of pending calls.
4012         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4013         call.  Look up pending call in current set.  Remove it when we've
4014         completed.
4015         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4016         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4017         and destroy function directly.
4018         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4019         (dbus_g_proxy_call): Invoke with NULL callback.
4020         (dbus_g_proxy_cancel_call): New function, replaces
4021         dbus_g_pending_call_cancel.
4022
4023         * glib/dbus-gparser.c (validate_signature): Fix call to
4024         dbus_set_g_error.
4025
4026         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4027         New quark for attaching metadata to GType.
4028         (info_hash): Delete.
4029         (lookup_object_info): Look up using quark.
4030         (dbus_g_object_type_install_info): Check that a type is classed,
4031         not that it's an object.  Also just install type data using quark
4032         instead of using global hash.
4033
4034         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4035         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4036         (GPendingNotifyClosure): Delete.
4037         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4038         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4039
4040         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4041         client method generation until we can fix it...
4042         
4043         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4044         (load_from_service_thread_func): Ditto.
4045
4046         * tools/dbus-names-model.c (struct NamesModel): Hold
4047         DBusGProxyCall.
4048         (have_names_notify): Update prototype, use
4049         dbus_g_proxy_cancel_call.
4050         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4051
4052         * tools/dbus-monitor.c (filter_func): Update for print_message
4053         API change.
4054
4055         * test/glib/test-dbus-glib.c: Add more tests for async
4056         invocations.  Update many begin_call/end_call pairs to just use
4057         dbus_g_proxy_call.
4058
4059         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4060         allows us to dump print-introspect.c.
4061
4062         * tools/dbus-print-message.h (print_message): Add literal argument
4063         to print_message which is intended to allow printing arguments without
4064         metadata like "string=".
4065
4066         * tools/dbus-print-message.c (print_iter): Add literal argument.
4067         (print_message): Allow printing string messages literally.
4068
4069 2005-07-05  Colin Walters  <walters@verbum.org>
4070
4071         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4072         Remove value refcount leak, original patch from Jorn Baayen
4073         <jorn@openedhand.com>.  Also remove useless extra value in favor
4074         of prepending to value array directly.
4075
4076 2005-07-02  Colin Walters  <walters@verbum.org>
4077
4078         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4079
4080 2005-07-01  Colin Walters  <walters@verbum.org>
4081
4082         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4083         
4084         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4085         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4086         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4087         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4088
4089 2005-06-30  Colin Walters  <walters@verbum.org>
4090
4091         * test/glib/test-dbus-glib.c:
4092         * test/glib/test-service-glib.c:
4093         * test/glib/test-service-glib.xml: Update tests for new error
4094         setting bits, also add async tests (patch from Ross Burton).
4095
4096         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4097         DBUS_GLIB_THREADS_LIBS.
4098
4099         * glib/dbus-gproxy.c (get_name_owner)
4100         (dbus_g_pending_call_end_valist): Ditto.
4101
4102         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4103         domain (GQuark) to DBusGErrorInfo.  
4104         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4105         quark in error_metadata.  Take message interface as default
4106         error message interface.
4107         (gerror_to_dbus_error_message): Pass message interface.
4108         (dbus_set_g_error): Resurrected.
4109         (dbus_g_error_info_free): New function.
4110         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4111         of _peek to actually create the object class if it hasn't been
4112         created yet.
4113         (dbus_g_error_domain_register): New function.
4114
4115         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4116
4117         * glib/dbus-gparser.c (validate_signature): Ditto.
4118
4119         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4120         (dbus_g_error_domain_register): Prototype.
4121
4122         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4123         Update tests.
4124
4125 2005-06-29  Colin Walters  <walters@verbum.org>
4126
4127         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4128         DBUS_TYPE_G_OBJECT_PATH.
4129
4130         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4131         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4132         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4133         (dbus_g_object_path_get_g_type): New function.
4134         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4135         to DBUS_TYPE_G_OBJECT_PATH by default.
4136         (demarshal_proxy): Remove unused name variable.
4137         (demarshal_object_path, marshal_object_path): New functions.
4138         (demarshal_proxy_array, marshal_proxy_array): Delete.
4139         
4140         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4141         DBUS_TYPE_G_OBJECT_PATH to char *.
4142         (dbus_g_type_get_lookup_function): Map builtin
4143         DBUS_TYPE_G_OBJECT_PATH.
4144
4145         * test/glib/test-dbus-glib.c
4146         * test/glib/test-service-glib.c (my_object_objpath): 
4147         Adapt tests to new object path marshalling.
4148
4149 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4150
4151         * configure.in: force check for Python >= 2.4
4152
4153 2005-06-29  Colin Walters  <walters@verbum.org>
4154         
4155         Patch from Ross Burton <ross@openedhand.com>
4156         
4157         * glib/dbus-gobject.c (invoke_object_method): Unset object
4158         value in all cases, not only in async case.
4159
4160 2005-06-29  Colin Walters  <walters@verbum.org>
4161
4162         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4163         name_call for keeping track of any outgoing GetNameOwner call.
4164         Also add for_owner and associated.
4165         (struct _DBusGProxyManager): Add owner_names, which is hash table
4166         that maps a base name to a list of names it owns (that we're
4167         interested in).  Add pending_nameowner_calls which is a list of
4168         all outstanding GetNameOwner; avoids us having to iterate over
4169         every proxy.  Add unassociated_proxies which keeps track of name
4170         proxies with no associated name owner.
4171         (dbus_g_proxy_manager_unref): Destroy owner_names.
4172         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4173         name refcounts.
4174         (find_name_in_info, name_owner_foreach)
4175         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4176         (dbus_g_proxy_manager_monitor_name_owner)
4177         (dbus_g_proxy_manager_unmonitor_name_owner)
4178         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4179         New functions; they manipulate the owner_names mapping.
4180         (got_name_owner_cb): New function.
4181         (get_name_owner): New function, extracted from
4182         dbus_g_proxy_new_for_name_owner.
4183         (dbus_g_proxy_manager_register): For now we need to keep track of
4184         all NameOwnerChanged.  Also if the proxy is for a name, if we
4185         don't already know the name owner, queue a new GetNameOwner
4186         request and add it to our list of unassociated proxies.  Otherwise
4187         inc the refcount.
4188         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4189         cancel any pending GetNameOwner call, etc.
4190         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4191         the owner_names mapping to look up the current names for the
4192         signal source, and dispatch to any proxies for that name.
4193         (dbus_g_proxy_new): Initialize new members.
4194         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4195         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4196         (dbus_g_pending_call_end_valist): New function, extracted from
4197         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4198         but want to use the GLib infrastructure.  Also note how many
4199         arguments in reply were over.
4200         (dbus_g_pending_call_end): New function, just call
4201         dbus_g_pending_call_end_valist.
4202         (dbus_g_proxy_end_call_internal): Just call
4203         dbus_g_pending_call_end_valist.
4204
4205         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4206         of builtin marshaller for STRING_STRING_STRING.
4207
4208         * test/glib/test-dbus-glib.c: 
4209         * test/glib/test-service-glib.c:
4210         * test/glib/test-service-glib.xml:
4211         Extend tests to cover name proxies, destruction of owner proxies,
4212         etc.
4213         
4214         * glib/examples/example-signal-recipient.c
4215         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4216         
4217         * tools/dbus-send.c (main): Print D-BUS error name in addition
4218         to message.
4219
4220 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4221
4222         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4223         cmessage_function_handler): Patch from 
4224         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4225         by using the Py_GILState_Ensure/Release to synchronize with the
4226         python runtime.
4227         
4228 2005-06-28  Ray Strode  <rstrode@redhat.com>
4229
4230         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4231         babysitter helper process on last unref, bug #2813.
4232
4233 2005-06-27  Colin Walters  <walters@verbum.org>
4234
4235         * test/glib/test-dbus-glib.c: 
4236         * test/glib/test-service-glib.c:
4237         * test/glib/test-service-glib.xml:
4238         Test hash table signal emitting.
4239
4240         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4241         types to their fundamental basis types, since this is what
4242         marshallers operate on.  Also add an entry for VOID__BOXED.
4243         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4244
4245 2005-06-26  Havoc Pennington  <hp@redhat.com>
4246
4247         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4248         from Don Park
4249
4250 2005-06-26  Colin Walters  <walters@verbum.org>
4251
4252         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4253         (dbus_g_error_set): New public function from its ashes; used by
4254         both service-side method implementation and GLib bindings
4255         internals.
4256         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4257         (_dbus_glib_test): Add some tests.
4258
4259         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4260
4261         * test/glib/test-service-glib.c (my_object_throw_error): Use
4262         dbus_g_error_set.
4263
4264         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4265         errors thrown by dbus_g_error_set.
4266
4267         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4268
4269         * glib/dbus-gparser.c (validate_signature): Ditto.
4270
4271         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4272         (dbus_g_proxy_end_call_internal): Ditto.
4273
4274         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4275         converts DBUS_ERROR_x to DBUS_GERROR_x.
4276         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4277
4278         * doc/TODO: Remove error TODO.
4279
4280         * doc/dbus-tutorial.xml: Update with documentation about error
4281         handling.
4282
4283         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4284         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4285         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4286
4287 2005-06-22  Colin Walters  <walters@verbum.org>
4288         
4289         Patch from Ross Burton <ross@openedhand.com>
4290
4291         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4292
4293 2005-06-20  Colin Walters  <walters@verbum.org>
4294
4295         * configure.in: Add glib/examples.
4296
4297         * glib/Makefile.am: Add examples/
4298
4299         * glib/examples/.cvsignore
4300         * glib/examples/Makefile.am
4301         * glib/examples/example-client.c
4302         * glib/examples/example-service.c
4303         * glib/examples/example-service.xml
4304         * glib/examples/example-signal-emitter.c
4305         * glib/examples/example-signal-emitter.xml
4306         * glib/examples/example-signal-recipient.c:
4307         New files; GLib binding examples, ported from
4308         python/examples.
4309
4310 2005-06-20  Colin Walters  <walters@verbum.org>
4311
4312         * dbus/dbus-glib.h: 
4313         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4314         dbus_g_proxy_call.
4315
4316         * glib/dbus-binding-tool-glib.c: 
4317         * doc/dbus-tutorial.xml: 
4318         * test/glib/test-dbus-glib.c: Update for rename.
4319         
4320 2005-06-20  Colin Walters  <walters@verbum.org>
4321
4322         Patch suggested by Ross Burton <ross@openedhand.com>
4323
4324         * glib/dbus-gobject.c (export_signals): Free signal name.
4325         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4326         memory leak.  Add a bit of documentation.
4327         (dbus_g_method_return_error): Free context, and note we do
4328         so.
4329
4330 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4331
4332         * dbus/dbus-glib.h:
4333         * glib/dbus-gobject.c:
4334         * glib/dbus-gproxy.c:
4335         * glib/dbus-gvalue.c: Predeclare structs as 
4336         typedef struct _Something Something instead of 
4337         typedef struct Something Something, so we can 
4338         redeclare the prototypes. Other GNOME libraries 
4339         do this already.
4340
4341 2005-06-17  Colin Walters  <walters@verbum.org>
4342
4343         * tools/dbus-names-model.c (have_names_notify): Fix call
4344         to dbus_g_proxy_end_call.
4345         
4346 2005-06-17  Colin Walters  <walters@verbum.org>
4347
4348         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4349         spew warnings if we get malformed remote signals.
4350
4351         * glib/dbus-gobject.c (propsig_iterate): New function.
4352         (lookup_object_info): New function, extracted from
4353         lookup_object_and_method.
4354         (introspect_properties, introspect_signals): Delete; these
4355         are merged into write_interface.
4356         (write_interface): Write out signals and properties here;
4357         dump the org.gtk.object stuff and use the interface given
4358         in the introspection data blob.  Also fix up property XML.
4359         (lookup_values): New function.
4360         (introspect_interfaces): Gather a mapping from interface to a
4361         list of its methods, signals, and properties, then write out
4362         each interface.
4363         (lookup_object_and_method): Use lookup_object_info.
4364         (struct DBusGSignalClosure): Add interface.
4365         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4366         we can just use the constant data.
4367         (dbus_g_signal_closure_finalize): Don't free signal name.
4368         (signal_emitter_marshaller): Use interface from signal closure.
4369         (export_signals): Only export signals mentioned in introspection
4370         blob.
4371         (dbus_g_connection_register_g_object): Warn if we have no
4372         introspection data for an object.
4373         (funcsig_equal): Remove unused variable.
4374         (dbus_g_object_register_marshaller): Take varargs instead of
4375         list.
4376         (dbus_g_object_register_marshaller_array): New function,
4377         extracted from old dbus_g_object_register_marshaller.
4378
4379         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4380         signals and property data.
4381         (write_quoted_string): New function, extracted from generate_glue.
4382         (generate_glue): Write signals and properties to introspection
4383         blob.
4384
4385         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4386         exported_signals and exported_properties.
4387         (dbus_g_object_register_marshaller): Update prototype.
4388         (dbus_g_object_register_marshaller_array): Prototype.
4389         
4390         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4391
4392         * test/glib/test-service-glib.c: Add new test signals and method
4393         to emit them.
4394
4395         * test/glib/test-service-glib.xml: Add some test signals.
4396
4397         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4398         and my-object-marshal.h
4399         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4400         my-object-marshal.c.
4401         (my-object-marshal.c, my-object-marshal.h): Implement.
4402
4403         * test/glib/.cvsignore: Update.
4404
4405         * doc/TODO: Remove two GLib TODO items fixed by this
4406         patch.
4407
4408 2005-06-16  Colin Walters  <walters@verbum.org>
4409
4410         * doc/TODO: Update for GLib bindings.
4411         
4412 2005-06-16  Colin Walters  <walters@verbum.org>
4413
4414         * glib/dbus-binding-tool-glib.c:
4415         * glib/dbus-gobject.c:
4416         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4417         from Ross Burton, for his GLib bindings work.
4418
4419 2005-06-16  Colin Walters  <walters@verbum.org>
4420
4421         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4422         to iterate instead of walking to G_TYPE_INVALID.
4423
4424         Patch based on a patch from Ryan Gammon.
4425
4426 2005-06-16  Colin Walters  <walters@verbum.org>
4427
4428         * bus/bus.c (bus_context_new): Set parser to NULL
4429         after we unref it (Patch from Chris Boscolo, #2174).
4430         
4431 2005-06-16  Colin Walters  <walters@verbum.org>
4432
4433         * python/dbus_bindings.pyx.in: Import size_t,
4434         __int64_t, __uint64_t, and __signed.
4435
4436         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4437         Define cmsg struct, output it.
4438         (_dbus_read_credentials_unix_socket):
4439         Use cmsg struct.
4440         
4441         Patch from Joe Markus Clarke for FreeBSD support.
4442         
4443 2005-06-16  Colin Walters  <walters@verbum.org>
4444
4445         * tools/dbus-send.c (append_array): Use strtok.
4446         (append_dict): New function.
4447         (type_from_name): New function, extracted from main.
4448         (main): Handle sending dicts.
4449
4450         * tools/dbus-print-message.c (print_iter): Print dict
4451         entries.
4452         
4453 2005-06-16  Colin Walters  <walters@verbum.org>
4454
4455         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4456         values as the empty string (#2948).
4457         
4458 2005-06-16  Colin Walters  <walters@verbum.org>
4459
4460         * dbus/Makefile.am:
4461         * mono/doc/Makefile.am:
4462         * test/glib/Makefile.am:
4463
4464         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4465
4466 2005-06-16  Colin Walters  <walters@verbum.org>
4467
4468         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4469         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4470
4471         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4472         Increment pointer after swapping fixed array.  Add assertion
4473         for array length.
4474                 
4475 2005-06-15  Colin Walters  <walters@verbum.org>
4476
4477         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4478         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4479         
4480 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4481
4482         * NEWS: Update to 0.34
4483
4484 2005-06-15  David Zeuthen  <davidz@redhat.com>
4485
4486         * configure.in (LT_CURRENT): Revert back to 1 as the library
4487         hasn't changed and we've certainly not committed to protocol
4488         stability yet.  All this does is to break ABI. See commit note
4489         from hp@redhat.com 2005-05-05 for details.
4490         
4491 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4492
4493         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4494         (_dbus_connection_run_builtin_filters): New method
4495         (dbus_connection_dispatch): Run the builtin filters which in turn
4496         runs the peer filter which handles Ping messages.
4497
4498         * doc/TODO: 
4499          - Ping isn't handled: This patch fixes it
4500          
4501          - Add a test case for the Ping message: added TODO item
4502
4503 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4504
4505         * dbus/dbus-message.c:
4506         (dbus_message_has_path): New method
4507         (dbus_message_has_interface): New method
4508         (dbus_message_has_member): New method
4509
4510         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4511         New method
4512
4513         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4514         the keyring directory is private to the user
4515
4516         * doc/TODO:
4517          - The convenience functions in dbus-bus.h should perhaps have
4518          the signatures that they would have if they were autogenerated
4519          stubs. e.g. the acquire service function. We should also evaluate
4520          which of these functions to include, in light of the fact that
4521          GLib/Qt native stubs will probably also exist.: Punted
4522
4523          - add dbus_message_has_path(), maybe has_member/interface:
4524          fixed in this patch
4525
4526          - in dbus-keyring.c, enforce that the keyring dir is not
4527          world readable/writable: Fixed in this patch
4528
4529 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4530
4531         * dbus/dbus-marshal-validate.h: Added a new validation
4532         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4533         out of memory errors when validating signitures
4534
4535         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4536         in places where we previously used DBUS_VALID and a FALSE return 
4537         value to indicate OOM
4538         
4539         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4540         Use a stack to track the number of elements inside containers.  The 
4541         stack values are then used to validate that dict entries have only two
4542         elements within them.
4543         (validate_body_helper): check the reason for failure when validating
4544         varients
4545         
4546         * dbus/dbus-message.c (load_message): use 
4547         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4548         DBUS_VALID and a FALSE return value to indicate OOM
4549
4550         * doc/TODO: remove "- validate dict entry number of fields" as this
4551         patch fixes it
4552
4553 2005-06-14  David Zeuthen  <davidz@redhat.com>
4554
4555         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4556         watches (if applicable) and add new watches
4557
4558         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4559         (main): Setup SIGIO signal handler if using D_NOTIFY
4560
4561         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4562
4563         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4564         (merge_included): Also merge conf_dirs list
4565         (bus_config_parser_unref): Clear conf_dirs list
4566         (include_dir): Add directory to conf_dirs list
4567         (bus_config_parser_get_conf_dirs): New function
4568
4569         * bus/dir-watch.[ch]: New files
4570
4571         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4572
4573         * configure.in: Add checks for D_NOTIFY on Linux
4574
4575 2005-06-14  Colin Walters  <walters@verbum.org>
4576
4577         * glib/dbus-binding-tool-glib.c:
4578         * glib/dbus-gobject.c:
4579         * glib/dbus-gvalue.c: Fix indentation and brace style.
4580         
4581 2005-06-14  Ross Burton <ross@openedhand.com>.
4582
4583         * glib/dbus-glib.h: Make DBusGMethodInvocation
4584         a private structure.  Rearrange prototypes a bit.
4585         
4586         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4587         documentation for first_arg_type.
4588         
4589         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4590         here, add documentation.  Move dbus_g_method_return
4591         and dbus_g_method_return_error into public API
4592         section.
4593
4594 2005-06-14  Colin Walters  <walters@verbum.org>
4595
4596         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4597         Add missing return statements, noticed by Ross Burton.
4598         
4599 2005-06-13  Ross Burton <ross@openedhand.com>.
4600
4601         * glib/dbus-gobject.c: Handle errors on message
4602         demarshalling by sending error message back.
4603         * glib/dbus-gvalue.c: Initialize return variables.
4604
4605 2005-06-13  Colin Walters  <walters@verbum.org>
4606
4607         * glib/Makefile.am: Fix thinko in last patch.
4608
4609 2005-06-13  Colin Walters  <walters@verbum.org>
4610
4611         * glib/Makefile.am: Move dbus-gtype-specialized.c
4612         and dbus-gtype-specialized.h into a _HEADERS variable,
4613         install them.
4614
4615 2005-06-12  Colin Walters  <walters@verbum.org>
4616
4617         Async signals and various bugfixes and testing by
4618         Ross Burton <ross@openedhand.com>.
4619
4620         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4621         (dbus_gvalue_genmarshal_name_from_type)
4622         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4623         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4624         (dbus_g_value_types_init, dbus_gtype_from_signature)
4625         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4626         (dbus_gtypes_from_arg_signature): New function prototypes.
4627         (dbus_gvalue_demarshal): Take context and error arguments.
4628         (dbus_gvalue_demarshal_variant): New function.
4629         (dbus_gvalue_demarshal_message): New function.
4630         (dbus_gvalue_store): Delete.
4631
4632         * glib/dbus-gvalue.c:
4633
4634         File has been almost entirely rewritten; now we special-case
4635         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4636         hash tables correctly, etc.  Full support for recursive values
4637         is not yet complete.
4638
4639         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4640         argument of signal to G_TYPE_POINTER since we now pass a
4641         structure.
4642         (lookup_g_marshaller): Delete in favor of
4643         _dbus_gobject_lookup_marshaller.
4644         (marshal_dbus_message_to_g_marshaller): Use
4645         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4646         to handle remote signal callbacks.
4647         (dbus_g_proxy_new_from_proxy): New function; creates a new
4648         DBusGProxy by copying an existing one.
4649         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4650         (dbus_g_proxy_get_path): New functions.
4651         (dbus_g_proxy_marshal_args_to_message): New function;
4652         factored out of existing code.
4653         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4654         from a varargs array.
4655         (dbus_g_proxy_begin_call_internal): New function.
4656         (dbus_g_proxy_end_call_internal): New function.
4657         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4658         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4659         after collecting args into value array.
4660         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4661         invoke dbus_g_proxy_end_call_internal.
4662         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4663         end_call_internal.
4664         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4665         types.
4666         (array_free_all): New function.
4667         (dbus_g_proxy_add_signal): Take GTypes.
4668
4669         * glib/dbus-gobject.h:
4670         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4671         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4672         Prototype.
4673
4674         * glib/dbus-gobject.c: Add a global marshal_table hash which
4675         stores mappings from type signatures to marshallers.  Change lots
4676         of invocations of dbus_gtype_to_dbus_type to
4677         dbus_gtype_to_signature.
4678         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4679         (introspect_signals): Fix test for query.return_type.
4680         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4681         (invoke_object_method): Many changes.  Handle asynchronous
4682         invocations.  Convert arguments with
4683         dbus_gvalue_demarshal_message.  Handle errors.  Use
4684         DBusSignatureIter instead of strlen on args. Handle all arguments
4685         generically.  Special-case variants.
4686         (dbus_g_method_return, dbus_g_method_return_error): New function.
4687         (DBusGSignalClosure): New structure, closes over signal
4688         information.
4689         (dbus_g_signal_closure_new): New function.
4690         (dbus_g_signal_closure_finalize): New function.
4691         (signal_emitter_marshaller): New function; is special marshaller
4692         which emits signals on bus.
4693         (export_signals): New function; introspects object signals and
4694         connects to them.
4695         (dbus_g_object_type_install_info): Take GType instead of
4696         GObjectClass.
4697         (dbus_g_connection_register_g_object): Invoke export_signals.
4698         (dbus_g_connection_lookup_g_object): New function.
4699         (DBusGFuncSignature) New structure; used for mapping type
4700         signatures to marshallers.
4701         (funcsig_hash): New function; hashes DBusGFuncSignature.
4702         (funcsig_equal): New function; compares DBusGFuncSignature.
4703         (_dbus_gobject_lookup_marshaller): New function.
4704         (dbus_g_object_register_marshaller): New function; used to
4705         register a marshaller at runtime for a particular signature.
4706
4707         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4708
4709         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4710         which notes a server method implementation should be
4711         asynchronous.
4712
4713         * glib/dbus-binding-tool-glib.c
4714         (dbus_binding_tool_output_glib_server): Call
4715         dbus_g_value_types_init.
4716         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4717         variants specially.
4718         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4719         of a lookup function.
4720         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4721         (write_untyped_out_args): New method; write output arguments.
4722         (write_formal_declarations_for_direction): Function for
4723         writing prototypes.
4724         (write_formal_parameters_for_direction): Function for
4725         writing implementations.
4726         (write_typed_args_for_direction): Function for writing
4727         arguments prefixed with GTypes.
4728         (write_async_method_client): Write out async version
4729         of method.
4730
4731         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4732         (dbus_g_type_get_marshal_name): Move mapping from GType
4733         to marshal name into here.
4734         (dbus_g_type_get_c_name): Move into here.
4735         (compute_marshaller): Convert signature to type with
4736         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4737         (compute_marshaller_name): Ditto.
4738         (compute_marshaller): Handle async signal annotations.
4739         (gather_marshallers): Return if we don't have a known
4740         prefix.
4741         (generate_glue): Collect introspection blob here, and
4742         write all of the blob at the end.  This allows an object
4743         with multiple interfaces to work.
4744         Mark async methods in introspection blob.
4745
4746         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4747         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4748         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4749
4750         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4751         avoids people accidentally using DBUS_TYPE_* which should
4752         not be necessary anymore.
4753         Do include dbus-gtype-specialized.h, which are utilities
4754         for GLib container types.
4755         Add various #defines for types such as
4756         DBUS_TYPE_G_BOOLEAN_ARRAY.
4757         (DBusGValueIterator, DBusGValue): Define, not fully used
4758         yet.
4759         (dbus_g_value_get_g_type): Type for recursive value.
4760         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4761         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4762         (dbus_g_value_free): Prototypes.
4763         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4764         (dbus_g_proxy_set_interface): Prototype.
4765         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4766         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4767         types.
4768         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4769         Accessors.
4770         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4771         doing async invocations.
4772         (dbus_g_method_return, dbus_g_method_return_error):
4773         Prototypes.
4774         * doc/dbus-tutorial.xml: Update GLib section.
4775         
4776         * tools/dbus-viewer.c (load_child_nodes): Update
4777         for new invocation type of dbus_g_proxy_end_call.
4778         (load_from_service_thread_func): Ditto.
4779
4780         * tools/print-introspect.c (main): Ditto.
4781
4782         * tools/dbus-names-model.c (have_names_notify)
4783         (names_model_reload, names_model_set_connection)
4784         Use GTypes.
4785
4786         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4787         needed since Python bindings use GLib bindings.
4788
4789         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4790         Add --prefix argument.
4791
4792         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4793         unneeded --ignore-unsupported arg.
4794         
4795         * test/glib/test-service-glib.c: 
4796         * test/glib/test-service-glib.xml:
4797         * test/glib/test-dbus-glib.c: Add many more tests.
4798
4799 2005-06-06  David Zeuthen  <davidz@redhat.com>
4800
4801         * doc/TODO: Add item about need to remove deprecated functions.
4802
4803         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4804
4805         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4806         to repair the ABI which was broken with the last commit.
4807
4808 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4809
4810         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4811         (dbus_connection_disconnect): renamed to dbus_connection_close 
4812         for API symmetry with dbus_connection_open
4813         (_dbus_connection_open_internal): 
4814         s/dbus_connection_disconnect/dbus_connection_close
4815
4816         * dbus/dbus-bus.c (dbus_bus_get):
4817         s/dbus_connection_disconnect/dbus_connection_close
4818
4819         * bus/connection.c (bus_connections_unref, 
4820         bus_connections_setup_connection, bus_connections_expire_incomplete):
4821         s/dbus_connection_disconnect/dbus_connection_close
4822
4823         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4824         kill_client_connection_unchecked, check_hello_connection):
4825         s/dbus_connection_disconnect/dbus_connection_close
4826
4827         * bus/bus.c (new_connection_callback):
4828         s/dbus_connection_disconnect/dbus_connection_close
4829
4830         * tools/dbus-send.c (main):
4831         s/dbus_connection_disconnect/dbus_connection_close
4832
4833         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4834         s/dbus_connection_disconnect/dbus_connection_close
4835         
4836         * test/test-service.c (path_message_func, filter_func):
4837         s/dbus_connection_disconnect/dbus_connection_close
4838         
4839         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4840         
4841 2005-05-25  Colin Walters  <walters@verbum.org>
4842
4843         * dbus/dbus-protocol.h: Move various bus service #defines such
4844           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4845           dbus/dbus-shared.h.
4846         * dbus/dbus-shared.h: Various defines moved here.
4847         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4848
4849 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4850
4851         * python/__init__.py: Python bindings deserve a minor version
4852         update.  Upped to (0, 40, 2)
4853
4854 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4855
4856         * python/decorators.py: add explicitly_pass_message decorator
4857         for passing in the dbus message as keyword for edge case signal
4858         handling
4859
4860         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4861         to conform with what dbus expects for match rules
4862         (SignalMatchRule.execute): add the dbus message as a keyword
4863         if the signal handler has requested it
4864
4865         * python/examples/example/signal-recipient.py: added some more
4866         examples on how to hook up to signals
4867
4868 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4869
4870         * python/decorators.py: import dbus_bindings
4871
4872         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4873         SignalMatchNode): new classes that implement wildcard signal
4874         callback matching using a tree lookup. Heavily modified from a
4875         patch sent by Celso Pinto (fd.o bug #3241)
4876
4877         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4878         use new match classes to handle signals.
4879
4880 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4881         
4882         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4883
4884 2005-05-18  Havoc Pennington  <hp@redhat.com>
4885
4886         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4887         gettext. Not really worth requiring yet perhaps, but any
4888         production quality 1.0 would require it so we should go ahead and
4889         get things set up. We do have a couple token calls to
4890         bindtextdomain in the code already.
4891
4892 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4893
4894         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4895         when using recursive g_main_loops
4896
4897         * python/_dbus.py (class Bus): add the ProxyObjectClass
4898         alias for ProxyObject to make it easier for the Twisted 
4899         networking framework to integrate dbus.
4900
4901         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4902         alias for ProxyMethod to make it easier for the Twisted 
4903         networking framework to integrate dbus. 
4904
4905 2005-05-11  Ross Burton  <ross@openedhand.com>
4906
4907         * glib/dbus-glib-tool.c: Add --prefix argument.
4908         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4909         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4910         Add prefix argument.
4911         (generate_glue): Pass prefix argument down.
4912         (dbus_binding_tool_output_glib_server): Pass prefix to
4913         glib-genmarshal.
4914         
4915 2005-05-11  Colin Walters  <walters@verbum.org>
4916
4917         * tools/dbus-send.c (append_array): New function.
4918         (append_arg): Broken out from main.
4919         (main): Add cheesy hack to send arrays and variants.
4920         (usage): Update.
4921         * tools/dbus-print-message.c (print_iter): Broken out
4922         from main.
4923
4924 2005-05-11  Colin Walters  <walters@verbum.org>
4925
4926         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4927         New function, returns signature string for signature iter.
4928         * dbus/dbus-signature.h: Prototype it.
4929         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4930         New function, returns signature string for message iter.
4931         (dbus_message_iter_get_array_len): New function, returns
4932         length of array.
4933         (dbus_message_iter_get_fixed_array): Fix assertion; this
4934         function should be used when the iter is pointing to the
4935         contents of an array
4936         * dbus/dbus-message.h: Prototypes.
4937         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4938         New function; returns length of an array.
4939         * dbus/dbus-marshal-recursive.h: Prototype it.
4940         
4941 2005-05-11  Colin Walters  <walters@verbum.org>
4942
4943         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4944         compilation error.
4945         
4946 2005-05-08  Havoc Pennington  <hp@redhat.com>
4947
4948         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4949         daemon's pid, not the parent's pid, to the file descriptor.
4950         Reported by Taj Morton.
4951
4952 2005-05-05  Havoc Pennington  <hp@redhat.com>
4953
4954         * configure.in (LT_*): add notes on how the libtool versioning
4955         works to save thinking. Increment soname to indicate protocol
4956         breakage (though really the library interface hasn't changed I
4957         guess)
4958
4959         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4960         verify the GUID received from server matches what we were
4961         expecting, if we had an expectation
4962
4963         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4964         (_dbus_auth_get_guid_from_server): new function
4965         (send_begin): parse the OK args
4966
4967         * doc/dbus-specification.xml: add GUID to the auth protocol
4968
4969 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4970
4971         * Fix my name in previous changelog ;)
4972
4973         * python/proxies.py (ProxyObject.__getattr__): add further patch
4974         from Anthony Baxter to throw an AttributeError when python 
4975         __special__ functions are called instead of marshling them over 
4976         the bus (Bug#1685 comment 3).
4977
4978 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4979
4980         * python/Makefile.am: changed to use pyexecdir for the binding
4981         shared libraries (Bug#2494)
4982
4983         * python/exceptions.py: bring exceptions over from the bindings
4984         so they can be used in applications (Bug#2036)
4985         Make all exceptions derive from DBusException
4986
4987         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4988         of classes so that print obj doesn't throw an exception (Bug #1685)
4989
4990 2005-05-03  Ross Burton  <ross@openedhand.com>
4991
4992         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4993         Return if we get an error during registration.  Set up a
4994         weak reference on object to unregister if object is destroyed.
4995         (unregister_gobject): New function.
4996         
4997 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4998
4999         * python/dbus_bindings.pyx.in: 
5000         - added new type classes for hinting to the marashaler what type 
5001         to send over the wire
5002         - added int16 and uint16 marshalers
5003         - Fixed a bug in the type constants that caused int32 to go out
5004         as uint16 over the wire
5005         * python/dbus.py: split up into different files and renamed _dbus.py
5006         * python/__init__.py, python/_util.py, python/decorators.py, 
5007         python/exceptions.py, python/proxies.py, python/services.py,
5008         python/types.py: new files split off from dbus.py
5009         * python/Makefile.am: Add new files, remove dbus.py and 
5010         install all python files to <python module dir>/dbus
5011         * python/examples/*: Added #!/usr/bin/env python to the top of
5012         every example.  Patch provided by Tatavarty Kalyan
5013
5014 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5015
5016         * NEWS: Update to 0.33
5017
5018 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5019
5020         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5021         method for doing async calls
5022         (_pending_call_notification): New C function for handling pendning call
5023         callbacks
5024         (set_notify): New method for setting pending call notification
5025         
5026         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5027         Async capabilities added to remote method calls
5028         (Sender): class removed
5029         (RemoteService): class removed
5030         (ObjectTree): class removed for now
5031         (RemoteObject): Renamed to ProxyObject
5032         (RemoteMethod): Renamed to ProxyMethod
5033         (method): Decorator added for decorating python methods as dbus methods
5034         (signal): Decorator added for decorating python methods as signal emitters
5035         (ObjectType): Metaclass added for generating introspection data and the
5036         method callback vtable
5037         (Interface): Wrapper class added to wrap objects in a dbus interface
5038         (Object): Uses ObjectType as its metaclass and exports Introspect
5039         of the org.freedesktop.DBus.Introspectable interface
5040         (ValidationException, UnknownMethodException): new exceptions
5041
5042         * python/examples/*: Modified to fit with the new bindings
5043
5044 2005-04-23  Havoc Pennington  <hp@redhat.com>
5045
5046         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5047         reported by Tony Houghton
5048
5049         * test/test-service.c (main): test
5050         dbus_connection_get_object_path_data()
5051
5052         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5053         the exact_match
5054         (_dbus_object_tree_get_user_data_unlocked): new function used by
5055         dbus_connection_get_object_path_data()
5056         (do_register): add assertion test for get_user_data_unlocked
5057         (object_tree_test_iteration): more tests
5058
5059         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5060         new function from Dan Reed to let you get the user data from 
5061         dbus_connection_register_object_path()
5062
5063 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5064
5065         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5066         in numerous places that did not account for the NULL terminator
5067         (signature_from_seed): changed the manual string copy loop to 
5068         just use strcpy instead
5069         make check should now pass
5070
5071 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5072
5073         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5074         so that it allows messages that are not signals to pass in 
5075         NULL as the interface.
5076
5077 2005-04-18  David Zeuthen  <davidz@redhat.com>
5078
5079         * glib/dbus-gmain.c (io_handler_destroy_source): 
5080         (timeout_handler_destroy_source, connection_setup_free): 
5081         Also unref the source to avoid memory leaks.
5082
5083 2005-04-13  David Zeuthen  <davidz@redhat.com>
5084
5085         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5086         more reasonable, yet still totally arbitrary, value :-). 
5087
5088 2005-04-13  David Zeuthen  <davidz@redhat.com>
5089
5090         * doc/TODO: Added an "important for 1.0" item about selinux
5091         allow/deny messages
5092
5093 2005-04-13  David Zeuthen  <davidz@redhat.com>
5094
5095         * bus/selinux.c: Add c-file-style to top of file
5096         (log_audit_callback): Don't free the data here anymore
5097         (bus_selinux_check): Don't take spid and tpid since appending
5098         that to auxdata may OOM.
5099         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5100         to the caller if we are OOM by taking an error object.
5101         (bus_selinux_allows_send): -do-
5102
5103         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5104         and bus_selinux_allows_send
5105
5106         * bus/bus.c (bus_context_check_security_policy): Pass error and
5107         pass on OOM thrown by bus_selinux_allows_send()
5108
5109         * bus/services.c (bus_registry_acquire_service): Pass error and
5110         pass on OOM thrown by bus_selinux_allows_acquire_service()
5111
5112 2005-04-13  Havoc Pennington  <hp@redhat.com>
5113
5114         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5115         message at a time to avoid monopolizing the main loop, bug 
5116         #2953 from Benjamin Otte
5117
5118 2005-04-09  Havoc Pennington  <hp@redhat.com>
5119
5120         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5121         possible overlap, fix from Daniel Reed
5122         (fixup_alignment): fix signedness warnings
5123         (_dbus_string_append_unichar): ditto
5124
5125 2005-04-09  Havoc Pennington  <hp@redhat.com>
5126
5127         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5128
5129         * glib/dbus-glib-tool.c (main): fix warning
5130
5131         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5132
5133         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5134         add a new function that can be used in simple applications that
5135         don't have a main loop and are willing to block
5136
5137 2005-04-05  David Zeuthen  <davidz@redhat.com>
5138
5139         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5140
5141         * glib/dbus-gmain.c:
5142         (io_handler_destroy_source): Remove from list of IO handlers
5143         of the ConnectionSetup object
5144         (timeout_handler_destroy_source): -do- for timeout handlers
5145         (io_handler_source_finalized): Don't remove from list since
5146         we now do that in io_handler_destroy_source(). Renamed from
5147         io_handler_source_destroyed
5148         (timeout_handler_source_destroyed): -do- for timeout handlers
5149         (connection_setup_free): It is now safe to iterate over all
5150         IO and timeout handlers as the _destroy_source removes them
5151         from the list synchronously
5152
5153 2005-03-30  Havoc Pennington  <hp@redhat.com>
5154
5155         * configure.in: change check to gtk 2.4
5156
5157         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5158         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5159         to 2.4
5160
5161 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5162
5163         * News: Update 0.32
5164
5165         * HACKING: Fixed realease instructions.  configure.in should be updated to
5166           the next release by the person who made the last release.
5167
5168 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5169
5170         * python/lvalue_cast_post_process.py - removed.  Patch has been
5171           submitted to Pyrex maintainers that fixes gcc4.0 errors
5172
5173         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5174
5175 2005-03-24  Daniel Reed  <n@ml.org>
5176
5177         * tools/Makefile.am: Make print-introspect and
5178         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5179
5180 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5181
5182         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5183
5184         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5185           had in Red Hat packages for a while but for some reason never 
5186           got merged upstream
5187           (_dbus_is_a_number): New checks if a string
5188           can be converted to a number and does the conversion if it can
5189           (_dbus_user_database_lookup): Add check to see if the given username
5190           is a udi.  This allows udi's to be used instead of usernames in the
5191           config file.
5192           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5193           is a gdi.  This allows gdi's to be used instead of groupnames in the
5194           config file.
5195
5196 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5197
5198         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5199           code so that it compiles with gcc4.0
5200
5201         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5202           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5203           results back to dbus_binding.c
5204
5205 2005-03-20  Colin Walters  <walters@verbum.org>
5206
5207         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5208
5209         * configure.in: Require GTK+ 2.6.
5210         
5211 2005-03-20  Colin Walters  <walters@verbum.org>
5212
5213         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5214
5215 2005-03-17  Tom Parker  <palfrey@tevp.net>
5216
5217         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5218         print DBUS_UID_UNSET; instead print passed username.  Also
5219         be sure to actually use gid looked up in cache.
5220         
5221         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5222         for DBUS_GID_UNSET and groupname.
5223
5224 2005-03-17  Colin Walters  <walters@verbum.org>
5225
5226         * bus/print-introspect.c: Move to tools/.
5227         * bus/run-with-tmp-session-bus.sh: Ditto.
5228         
5229         * glib/Makefile.am (dbus-glib-bindings.h): Move
5230         generation to tools/Makefile.am.
5231
5232         * test/glib/run-test.sh: Update to handle move
5233         of run-with-tmp-session-bus.sh.
5234
5235         * test/glib/test-service-glib.c: Update to handle
5236         move of dbus-glib-bindings.h.
5237
5238         * tools/print-introspect.c: Moved here
5239         from bus/, and ported to GLib bindings.
5240
5241         * tools/run-with-tmp-session-bus.sh: Moved here
5242         from bus/.
5243
5244         * tools/Makefile.am: Generate dbus-glib-bindings.h
5245         and dbus-bus-introspect.xml here.
5246
5247         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5248         Update.
5249
5250 2005-03-17  Colin Walters  <walters@verbum.org>
5251
5252         * bus/driver.c (write_args_for_direction): Use
5253         _dbus_string_get_const_data to retrieve string;
5254         _dbus_string_get_const_data_len doesn't actually return
5255         a NULL-terminated substring.
5256
5257         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5258         (main): Change to use org_freedesktop_DBus_request_name
5259         instead of using g_proxy_begin_call/end_call.
5260
5261 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5262
5263         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5264         generating the finalizer.  Fixes from Ben Maurer.
5265
5266 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5267
5268         * mono/BusDriver.cs: Update method names: ListServices
5269         becomes ListNames; GetOwner becomes GetNameOwner.
5270
5271         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5272         onto the eval stack when removing the delegate.
5273
5274 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5275
5276         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5277         LT_CURRENT.  Set it to the autoconf variable.
5278                                                                                 
5279         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5280         classes that disconnects the signal handler delegate from the
5281         service object.  Fixes a big leak of proxy objects on the
5282         client side of things.  Patch from Ben Maurer
5283         <bmaurer@ximian.com>
5284
5285 2005-03-12  Colin Walters  <walters@verbum.org>
5286
5287         * bus/driver.c (write_args_for_direction): New function,
5288         parses a type signature into arguments and outputs to
5289         XML.
5290         (bus_driver_handle_introspect): Use it instead of
5291         hardcoding XML for certain signatures.
5292         
5293         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5294         dependency on dbus-daemon.
5295
5296         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5297         argument, pass it to dbus_binding_tool_output_glib_client.
5298
5299         * glib/dbus-binding-tool-glib.c
5300         (generate_client_glue): Protect against multiple inclusion.
5301         (dbus_binding_tool_output_glib_client): Add
5302         G_BEGIN_DECLS/G_END_DECLS.
5303
5304         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5305         Change to just take iface prefix directly.
5306         (write_formal_parameters): Clarify error message.
5307         (check_supported_parameters): New function; checks to see type
5308         signatures of method parameters are supported.
5309         (generate_client_glue): Handle ignore_unsupported flag.
5310         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5311         parameter.
5312
5313         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5314         --ignore-unsupported by default until glib bindings
5315         support arrays.
5316
5317 2005-03-11  Colin Walters  <walters@verbum.org>
5318
5319         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5320         install it.
5321
5322         * bus/print-introspect.c: New file; prints introspection
5323         data for a given name and object path.
5324
5325         * bus/run-with-tmp-session-bus.sh: New file, refactored
5326         from test/glib/run-test.sh.  Creates a temporary session
5327         bus and runs another program.
5328
5329         * test/glib/run-test.sh: Refactor to invoke
5330         run-with-tmp-session-bus.sh.
5331
5332         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5333         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5334         macros instead of hardcoding.
5335
5336         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5337
5338 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5339
5340         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5341         this unref; it doesn't match up evenly in some codepaths.
5342         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5343         this evenly matches with the ref near the top of this function.
5344
5345 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5346
5347         * dbus/dbus-object-tree.c
5348         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5349         and we try to unregister a path that's not registered, still go
5350         through the process of unlocking and don't just return.
5351
5352 2005-03-09  Colin Walters  <walters@verbum.org>
5353
5354         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5355         to this are generated for client-side wrappers.  Invokes a
5356         D-BUS method and returns reply values.  
5357
5358         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5359         function; writes signature string for argument direction.
5360         (write_args_for_direction): Change to pass input values directly
5361         instead of via address, and fix indentation.
5362         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5363         make generated wrappers inlineable.
5364
5365         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5366         note about using dbus_type_is_fixed.
5367
5368         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5369         dbus/dbus-signature.c as dbus_type_is_fixed.
5370
5371         All callers updated.
5372
5373         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5374         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5375
5376         * dbus/dbus-signature.h: Prototype.
5377
5378         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5379         error printf code.
5380
5381         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5382         appropriate instead of just freeing it.
5383         (main): Free returned strings using g_free.
5384
5385         * test/glib/Makefile.am (test-service-glib-glue.h)
5386         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5387
5388         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5389         simply maps a simple D-BUS type to GType.
5390         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5391         GType.
5392         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5393         initialize the value with it.
5394         (dbus_gvalue_binding_type_from_type): Unused, delete.
5395         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5396         various types instead of unmarshalling to value data directly.
5397         Remove can_convert boolean.
5398         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5399         returning directly instead of using can_convert boolean.
5400         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5401         Stores a GValue in a pointer to a value of its corresponding C
5402         type.
5403
5404         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5405         add dbus_gvalue_store.
5406
5407 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5408
5409         Fix a bunch of lifecycle and memory management problems
5410         in the mono bindings.
5411
5412         * mono/Arguments.cs (Arguments): Implement IDisposable
5413
5414         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5415         strictly a static class.
5416
5417         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5418         delegates into this file.
5419         (Connection): Implement IDisposable.
5420         (Dispose): Disconnect the connection and set the raw connection
5421         pointer to IntPtr.Zero.
5422         (~Connection): Call Dispose().
5423         (RegisterObjectPath): Added.  Manages the registration of object
5424         paths so we can cleanly disconnect them at dispose/finalize time.
5425         (UnregisterObjectPath): Ditto.
5426         (set_RawConnection): Unregister all of the object paths when
5427         changing the underlying DBusConnection.  Add them back onto the
5428         new connection, if any.
5429
5430         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5431         more unmanaged resources anymore, so it's not necessary.  Move all
5432         the DBusObjectPathVTable stuff out of here.
5433         (Handler): Save references to our delegates so that they don't get
5434         finalized.  Call Connection.RegisterObjectPath() instead of
5435         dbus_connection_register_object_path() directly.
5436         (Message_Called): Dispose the message after we're finished with
5437         it.
5438
5439         * mono/Message.cs (Message): Implement IDisposable.
5440         (Dispose): Dispose the Arguments, and set the RawMessage to
5441         IntPtr.Zero.
5442         (SendWithReplyAndBlock): We own the ref to the reply that comes
5443         back from dbus_connection_send_with_reply_and_block() so add a
5444         comment about that and unref it after we've constructed a managed
5445         MethodReturn class around it.  Fixes a big, big leak.
5446
5447         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5448         method.
5449         (BuildSignalHandler): After we've sent the Signal message, dispose
5450         of it.
5451         (BuildMethod): Dispose of the method call and reply messages after
5452         we've sent the message and extracted the data we want from the
5453         reply.
5454
5455         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5456         anymore.
5457         (Service_FilterCalled): Dispose of the message after we're
5458         finished with it.
5459
5460 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5461
5462         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5463         After we attach our pending call to the connection, unref
5464         it.  Fixes a leak.
5465  
5466         * mono/Connection.cs (set_RawConnection): Disconnect our
5467         filter and match callbacks from the old connection and
5468         reconnect them to the new connection, if any.
5469
5470         * mono/DBusType/Array.cs: "Code" is a static member, so
5471         don't use "this" to refer to it.  Fix for stricter checking
5472         in Mono 1.1.4.
5473  
5474         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5475         object path that we pass into unmanaged code.
5476  
5477         * mono/DBusType/String.cs (Append): Don't leak the string
5478         that we pass into unmanged code.
5479
5480 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5481         * NEWS: Update for 0.31
5482
5483         * configure.in: Release 0.31
5484         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5485
5486         * qt/Makefile.am: fixed build
5487
5488         * dbus/Makefile.am: soname bump for libdbus
5489
5490         * glib/Makefile.am: soname bump for libdbus-glib
5491
5492 2005-03-05  Havoc Pennington  <hp@redhat.com>
5493
5494         * dbus/dbus-sysdeps.c:
5495         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5496         value
5497         (_dbus_generate_random_bytes_buffer): fix return value
5498
5499         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5500         checks actually work, from Tom Parker <fdo@tevp.net>
5501
5502 2005-03-01  Colin Walters  <walters@verbum.org>
5503
5504         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5505         functions copied from dbus-glib-tool.c.
5506         (main): Convert lots of error code to use them.
5507         Also add some testing for introspection bits.
5508
5509 2005-03-01  Colin Walters  <walters@verbum.org>
5510         
5511         * doc/TODO: Remove introspection signature TODO.
5512
5513 2005-02-27  Colin Walters  <walters@verbum.org>
5514
5515         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5516         Change return value to const char * instead of int so we can do
5517         full signatures.
5518         (struct PropertyInfo, struct ArgInfo): Store char *.
5519         (property_info_new, arg_info_new): Update parameters, strdup.
5520         (property_info_unref, arg_info_unref): Free.
5521
5522         * glib/dbus-gidl.h: Update prototypes.
5523
5524         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5525         (validate_signature): New function, just validates signature and
5526         sets GError.
5527         (parse_property, parse_arg): Invoke validate_signature.  Store
5528         signature instead of just type code.
5529
5530         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5531         function to return a primary type for a signature, dropping
5532         information about types in container types.
5533         (dbus_gvalue_genmarshal_name_from_type)
5534         (dbus_gvalue_binding_type_from_type)
5535         (dbus_gvalue_ctype_from_type): Update to take full signature
5536          instead of type code.
5537         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5538
5539         * glib/dbus-gvalue.h: Update prototypes for above.
5540
5541         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5542         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5543         (introspect_properties, introspect_signals, write_interface):
5544         Update to handle signatures, and remove usage of
5545         _dbus_gutils_type_to_string.
5546         (handle_introspect): Print out type codes instead of e.g. "string"
5547         in hardcoded introspection XML; also use x_AS_STRING constants
5548         instead of hardcoding in string.
5549
5550         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5551         to string.  Remove usage of _dbus_gutils_type_to_string.
5552
5553         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5554
5555         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5556         deletion.
5557         
5558         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5559         (compute_marshaller_name, generate_glue): Handle signature change
5560         to string.
5561         (write_formal_parameters, write_args_for_direction): Ditto, and
5562         remove FIXME.
5563
5564         * tools/dbus-tree-view.c (type_to_string): Delete.
5565         (info_set_func_text): Update to print full signatures.
5566
5567         * test/glib/test-service-glib.xml: Change types to new
5568         introspection format.
5569
5570 2005-02-26  Havoc Pennington  <hp@redhat.com>
5571
5572         * doc/TODO: remove the "guid" item
5573
5574         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5575         (with_bus_thread_func): use open_private
5576
5577         * dbus/dbus-connection.c (dbus_connection_open_private): new
5578         function that works like the old dbus_connection_open()
5579         (dbus_connection_open): now returns an existing connection if
5580         possible
5581
5582         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5583         through the GUID to the transport
5584
5585         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5586         GUID in hex-encoded form.
5587
5588         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5589         pass GUID argument in to the transport
5590
5591         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5592         guid argument
5593
5594         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5595
5596         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5597
5598 2005-02-25  Havoc Pennington  <hp@redhat.com>
5599
5600         * doc/dbus-specification.xml: document the GUID thing
5601
5602         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5603         globally unique ID for the server, and put a "guid=hexencoded"
5604         field in the address
5605
5606         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5607
5608         * dbus/dbus-message.c: ditto
5609
5610         * dbus/dbus-dataslot.c: ditto
5611
5612         * dbus/dbus-list.c: ditto
5613
5614         * dbus/dbus-internals.h: wait, just include
5615         dbus-threads-internal.h here
5616         
5617         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5618         use in main library
5619
5620         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5621
5622 2005-02-24  Colin Walters  <walters@verbum.org>
5623
5624         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5625
5626 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5627
5628         * glib/Makefile.am: added dbus-gobject.h to sources list
5629         so distcheck doesn't fail
5630         
5631 2005-02-24  Havoc Pennington  <hp@redhat.com>
5632
5633         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5634         you must disconnect before unref, since locking and other things
5635         are screwed up otherwise. Fix assorted other locking stuff.
5636
5637         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5638         fix compilation
5639
5640         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5641         into a private header and don't export from the library
5642
5643         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5644
5645 2005-02-24  Colin Walters  <walters@verbum.org>
5646         
5647         * dbus/dbus-signature.c: New file; implements various functions
5648         related to type signatures.  Includes an interator for parsing,
5649         validation functions.
5650         (dbus_type_is_basic): Moved here from
5651         dbus-marshal-basic.c:_dbus_type_is_basic.
5652         (dbus_type_is_container): Moved here from
5653         dbus-marshal-basic.c:_dbus_type_is_container.
5654
5655         All callers of _dbus_type_is_container and _dbus_type_is_basic
5656         updated, and include dbus-signature.h.
5657
5658         * dbus/dbus-signature.h: New file; prototypes for the above.
5659
5660         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5661         dbus-signature.h.
5662
5663         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5664         function factored out of _dbus_first_type_in_signature.
5665         (_dbus_first_type_in_signature_c_str): New function; returns first
5666         type code for a type signature character.
5667
5668         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5669         handle function moves.
5670
5671         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5672
5673         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5674         function; skips to next complete type in type signature.
5675         Implemented using previous skip_one_complete_type.  Now
5676         skip_one_complete_type just delegates to
5677         _dbus_type_signature_next.
5678
5679         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5680         to dbus-signature.c
5681         (_dbus_type_is_container): Ditto.
5682
5683         * doc/dbus-specification.xml: Update introspection sample to
5684         use real type signatures.
5685
5686         * dbus/dbus-test.h: Prototype signature test.
5687
5688         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5689         signature tests.
5690
5691         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5692
5693 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5694
5695         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5696         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5697
5698 2005-02-21  Colin Walters  <walters@verbum.org>
5699
5700         * dbus/dbus-test-main.c (main): Take optional specific test
5701         argument.
5702
5703         * dbus/dbus-test.c (run_test): New function, runs a test function
5704         with no data directory.
5705         (run_data_test): Like above, but takes data directory.
5706         (dbus_internal_do_not_use_run_tests): Take
5707         specific test argument.  Replace lots of cut n' paste code
5708         with run_test and run_data_test.
5709
5710         * dbus/dbus-test.h: Update prototype for
5711         dbus_internal_do_not_use_run_tests.
5712
5713 2005-02-20  Havoc Pennington  <hp@redhat.com>
5714
5715         Fix bugs reported by Daniel P. Berrange
5716         
5717         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5718         (protected_change_watch): new function
5719         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5720         (_dbus_server_add_watch): change to work like the
5721         dbus-connection.c equivalents; like those, probably kind of
5722         busted, but should at least mostly work for now
5723         (dbus_server_disconnect): drop the lock if we were already
5724         disconnected, patch from Daniel P. Berrange
5725
5726         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5727         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5728         same stuff
5729
5730         * doc/TODO: todo about unscrewing this mess
5731
5732 2005-02-19  Colin Walters  <walters@verbum.org>
5733
5734         * glib/dbus-binding-tool-glib.c
5735         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5736
5737         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5738         as errno.h and sys/stat.h.
5739         (lose): New function, prints error with
5740         newline and exits.
5741         (lose_gerror): Similar, but takes GError for message.
5742         (main): Add --output argument to specify output file to write to,
5743         instead of always printing to stdout.  In this mode, determine
5744         timestamps on source files to see whether any are newer than the
5745         target file.  If not, exit.  Also convert a number of error
5746         messages to use lose (since it's shorter), and switch to using
5747         g_io_channel_shutdown.
5748
5749 2005-02-19  Havoc Pennington  <hp@redhat.com>
5750
5751         * glib/dbus-gobject.c
5752         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5753
5754         * glib/dbus-glib.c: fix doxygen warnings
5755
5756         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5757         is found on an <arg>
5758
5759 2005-02-17  Colin Walters  <walters@verbum.org>
5760
5761         * glib/dbus-gobject.h: Don't export
5762         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5763         
5764         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5765         (invoke_object_method): Handle it.
5766
5767         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5768         Handle rename.
5769         
5770 2005-02-17  Colin Walters  <walters@verbum.org>
5771
5772         * bus/.cvsignore, doc/.cvsignore
5773         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5774         Update.
5775
5776 2005-02-17  Colin Walters  <walters@verbum.org>
5777         
5778         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5779         Rename to DBUS_SERVICE_DBUS.
5780         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5781         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5782         Change the value from "org.freedesktop.Local"
5783         to "org.freedesktop.DBus.Local".
5784         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5785         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5786         DBUS_INTERFACE_INTROSPECTABLE.
5787         Change the value from "org.freedesktop.Introspectable"
5788         to "org.freedesktop.DBus.Introspectable".
5789         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5790         DBUS_INTERFACE_PROPERTIES.
5791         Change the value from "org.freedesktop.Properties"
5792         to "org.freedesktop.DBus.Properties".
5793         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5794         DBUS_INTERFACE_PEER.
5795         Change the value from "org.freedesktop.Peer"
5796         to "org.freedesktop.DBus.Peer".
5797         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5798         DBUS_INTERFACE_LOCAL.
5799         Change the value from "org.freedesktop.Local"
5800         to "org.freedesktop.DBus.Local".
5801
5802         All other users of those constants have been changed.
5803
5804         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5805
5806         * glib/dbus-gobject.c (handle_introspect): Use constants.
5807
5808         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5809
5810 2005-02-17  Colin Walters  <walters@verbum.org>
5811
5812         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5813         (parse_node, parse_interface, parse_method, parse_signal)
5814         (parse_property, parse_annotation): Lose if we're currently in an
5815         annotation.
5816         (parse_annotation): New function.
5817         (parser_start_element, parser_end_element): Handle annotation.
5818         (parse_method, parse_interface): Remove support for c_name attribute,
5819         switch to annotations.
5820
5821         * glib/dbus-gidl.h (interface_info_get_binding_names)
5822         (method_info_get_binding_names)
5823         (interface_info_get_binding_name, method_info_get_binding_name)
5824         (interface_info_set_binding_name, method_info_set_binding_name):
5825         Remove.
5826         (interface_info_get_annotations, method_info_get_annotations)
5827         (interface_info_get_annotation, method_info_get_annotation)
5828         (interface_info_add_annotation, method_info_add_annotation):
5829         Prototype.
5830
5831         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5832         for "bindings".
5833         (struct MethodInfo): Ditto.
5834         Straightfoward conversion of binding methods into annotation methods
5835         as prototyped.
5836
5837         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5838
5839         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5840
5841         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5842         Use new annotation API.
5843
5844         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5845         annotation element.
5846         
5847         * doc/dbus-specification.xml: Discuss introspection annotations,
5848         include list of well-known annotations.
5849
5850         * test/glib/test-service-glib.xml: Make validate against new DTD.
5851
5852 2005-02-17  Colin Walters  <walters@verbum.org>
5853
5854         This patch is based on initial work from
5855         Paul Kuliniewicz <kuliniew@purdue.edu>.
5856
5857         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5858         initialization of GValue from dbus type to here.
5859         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5860         for the "glib-genmarshal" program from a DBus type.
5861         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5862         into the C name for it we use in the glib bindings.
5863         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5864         glib C type (not GValue).
5865         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5866
5867         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5868         from dbus-gobject.c.
5869
5870         * glib/dbus-gutils.h: Prototype it.
5871
5872         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5873         (marshal_dbus_message_to_g_marshaller): Use new shared function
5874         dbus_glib_marshal_dbus_message_to_gvalue_array.
5875
5876         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5877         Will be changed once we have annotations.
5878
5879         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5880         GStaticRWLock.  Callers updated.
5881         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5882         (string_table_next): New function for iterating over zero-terminated
5883         string value array.
5884         (string_table_lookup): New function; retrieves specific entry in
5885         array.
5886         (get_method_data): New function; look up method data in object data chunk.
5887         (object_error_domain_prefix_from_object_info)
5888         (object_error_code_from_object_info): New functions, but not implemented yet.
5889         (method_interface_from_object_info): New function; retrieve interface name.
5890         (method_name_from_object_info): New function; retrieve method name.
5891         (method_arg_info_from_object_info): New function; retrieve argument data.
5892         (arg_iterate): New function; iterates over serialized argument data.
5893         (method_dir_signature_from_object_info): New function; returns a
5894         GString holding type signature for arguments for just one
5895         direction (input or output).
5896         (method_input_signature_from_object_info)
5897         (method_output_signature_from_object_info): New functions.
5898         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5899         converts dbus message arguments into a GValue array.  Used for both
5900         signal handling and method invocation.
5901         (struct DBusGlibWriteIterfaceData): New utility structure.
5902         (write_interface): New function; generate introspection XML for
5903         an interface.
5904         (introspect_interfaces): New function; gathers all interface->methods,
5905         generates introspection XML for them.
5906         (handle_introspect): Invoke introspect_interfaces.
5907         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5908         (lookup_object_and_method): New function; examines an incoming message
5909         and attempts to match it up (via interface, method name, and argument
5910         signature) with a known object and method.
5911         (gerror_domaincode_to_dbus_error_name): New function; converts a
5912         GError domain and code into a DBus error name.  Needs GError data
5913         added to object introspection to work well.
5914         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5915         GError.
5916         (invoke_object_method): New function to invoke an object method
5917         looked up via lookup_object_and_method.  Parses the incoming
5918         message, turns it into a GValue array, then invokes the marshaller
5919         specified in the DBusGMethodInfo.  Creates a new message with
5920         either return values or error message as appropriate.
5921         (gobject_message_function): Invoke lookup_object_and_method and
5922         invoke_object_method.
5923
5924         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5925         (enum DBusBindingOutputMode): New enum for binding output modes.
5926         (pretty_print): Print binding names.
5927         (dbus_binding_tool_error_quark): GError bits.
5928         (version): Fix typo.
5929         (main): Create GIOChannel for output.  Parse new --mode argument,
5930         possible values are "pretty-print", "glib-server", "glib-client".
5931         Use mode to invoke appropriate function.
5932         
5933         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5934
5935         * glib/dbus-glib-tool.h: New header, just includes GError bits
5936         for now.
5937
5938         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5939         maps binding style to name.
5940         (struct MethodInfo): Ditto.
5941         (get_hash_keys, get_hash_key): Utility function, returns keys for
5942         a GHashTable.
5943         (interface_info_new, method_info_new): Initialize bindings.
5944         (interface_info_unref, method_info_unref): Destroy bindings.
5945         (method_info_get_binding_names, method_info_get_binding_name)
5946         (interface_info_get_binding_names, interface_info_get_binding_name):
5947         Functions for retrieving binding names.
5948         (method_info_set_binding_name, interface_info_set_binding_name):
5949         Functions for setting binding names.
5950
5951         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5952         for glib binding generation.
5953
5954         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5955         and client-side glib glue generation.
5956
5957         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5958         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5959         dbus-glib-tool.h.
5960
5961         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5962         of using GClosureMarshal directly.
5963         (struct DBusGObjectInfo): Add n_infos member.
5964
5965         * test/glib/test-service-glib.xml: New file; contains introspection data
5966         for MyTestObject used in test-service-glib.c.
5967
5968         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5969         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5970         (my_object_uppercase, my_object_many_args): New test methods.
5971         (main): Use dbus_g_object_class_install_info to include generated object
5972         info.
5973
5974         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5975         as well as client-side bindings.
5976
5977         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5978         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5979         using both the dbus_gproxy stuff directly as well as the generated bindings.
5980
5981 2005-02-15  Havoc Pennington  <hp@redhat.com>
5982
5983         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5984         complete a pending call, don't run filters first.
5985
5986         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5987         dbus_pending_call_steal_reply
5988
5989         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5990         _dbus_connection_block_pending_call
5991         (dbus_pending_call_get_reply): change to steal_reply and return a
5992         ref
5993
5994         * dbus/dbus-connection.c
5995         (dbus_connection_send_with_reply_and_block): port to work in terms
5996         of DBusPendingCall
5997         (_dbus_connection_block_pending_call): replace block_for_reply
5998         with this
5999
6000 2005-02-14  Havoc Pennington  <hp@redhat.com>
6001
6002         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6003         properly handle looking up group information by name; fix 
6004         from j@bootlab.org
6005
6006 2005-02-13  Havoc Pennington  <hp@redhat.com>
6007
6008         * dbus/dbus-connection.c (dbus_connection_return_message) 
6009         (dbus_connection_borrow_message): hold dispatch lock while message
6010         is outstanding
6011         (_dbus_connection_block_for_reply): hold dispatch lock while we
6012         block for the reply, so nobody steals our reply
6013         (dbus_connection_pop_message): hold the dispatch lock while we
6014         pluck the message
6015
6016 2005-02-13  Havoc Pennington  <hp@redhat.com>
6017
6018         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6019         (_dbus_connection_release_dispatch)
6020         (_dbus_connection_acquire_io_path)
6021         (_dbus_connection_release_io_path): make the mutex and condvar
6022         control access to the "acquired" flag. Drop the connection lock
6023         while waiting on the condvar. Hopefully these are baby steps in
6024         roughly the right direction.
6025
6026 2005-02-13  Havoc Pennington  <hp@redhat.com>
6027
6028         * dbus/dbus-connection.c: use separate mutexes for the condition
6029         variables; this is some kind of baseline for sanity, but the
6030         condition variables still aren't used correctly afaict
6031
6032 2005-02-13  Havoc Pennington  <hp@redhat.com>
6033
6034         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6035         fix a double-unlock
6036
6037         * dbus/dbus-connection.c
6038         (_dbus_connection_detach_pending_call_unlocked): add this
6039
6040         Initial semi-correct pass through to fix thread locking; there are
6041         still some issues with the condition variable paths I'm pretty
6042         sure
6043         
6044         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6045         lock/unlock calls
6046
6047         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6048         rename to add _unlocked
6049         (struct DBusConnection): move "dispatch_acquired" and
6050         "io_path_acquired" to use only one bit each.
6051         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6052         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6053         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6054         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6055         (_dbus_connection_remove_timeout) 
6056         (_dbus_connection_toggle_timeout): drop lock when calling out to
6057         user functions; done in a hacky/bad way.
6058         (_dbus_connection_send_and_unlock): add a missing unlock
6059         (_dbus_connection_block_for_reply): add a missing unlock
6060
6061         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6062         drop lock in a hacky probably unsafe way to call out to user
6063         function
6064
6065 2005-02-12  Havoc Pennington  <hp@redhat.com>
6066
6067         * tools/dbus-tree-view.c (info_set_func_text): display more
6068         details on args
6069
6070         * bus/driver.c (bus_driver_handle_list_services): list the bus
6071         driver
6072
6073         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6074
6075         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6076         (method_info_get_n_args): new function
6077
6078 2005-02-12  Havoc Pennington  <hp@redhat.com>
6079
6080         * bus/driver.c (bus_driver_handle_introspect): add introspection
6081         for bus driver
6082
6083 2005-02-12  Havoc Pennington  <hp@redhat.com>
6084
6085         * bus/driver.c: put the signature of each bus driver method in the
6086         table of handlers and check it on incoming calls; this isn't
6087         really useful, but going to add introspect support in a minute.
6088
6089 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6090
6091         * mono/Connection.cs: The unpredictability of finalizers in mono
6092         prevents us from deterministically disconnecting the filters from
6093         the Service class's finalizer, so move tracking of filters and
6094         matches here.  Add API for that.
6095
6096         * mono/Service.cs: Remove the code, add code which calls the
6097         methods now on the Connection class.
6098
6099 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6100
6101         * python/dbus.py (class Sender): added to support dbus signals better
6102         (Bus::add_signal_receiver): added expand_args parameter which defaults
6103         to True.  When expand args is True the signal handler will pass the 
6104         message arguments as parameters to the signal handler.  If False
6105         revert to previous behavior where the signal handler must get the
6106         argument list from the message.  This is to help port applications
6107         like HAL that have a tendancy to send variable length argument lists.
6108         self._match_rule_to_receivers is now a dict of dicts.
6109         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6110         removing it from a list
6111         (Bus::_signal_func): change signal handlers so that interface,
6112         signal_name, service, path and message are packed into a Sender
6113         object and that is passed to the handler.  If expand_args is True
6114         extract the args list from the message and append it to the parameter
6115         list
6116         
6117         * python/dbus_bindings.pyx.in (class Signature): added to support 
6118         signiature types
6119         (MessageIter::__init__): changed iteration limit to match D-BUS
6120         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6121         STRUCT and VARIENT type support
6122         (MessageIter::python_value_to_dbus_sig): made recursive to support
6123         recursive types
6124         (MessageIter::append*): added Signature, dict, tuple 
6125         support
6126
6127         * python/examples/example-client.py: added examples of getting tuples
6128         and dicts
6129
6130         * python/examples/example-service.py: added examples of sending tuples
6131         and dicts
6132
6133         * python/examples/example-signal-recipient.py: Fixed to handle new
6134         signal callback format
6135
6136 2005-02-10  Havoc Pennington  <hp@redhat.com>
6137
6138         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6139         (call dbus_g_proxy_add_signal)
6140
6141         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6142         escape the hostname
6143         (_dbus_server_new_for_domain_socket): escape the path
6144
6145         * dbus/dbus-address.c (dbus_address_escape_value): new
6146         (dbus_address_unescape_value): new
6147         (dbus_parse_address): unescape values
6148
6149         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6150
6151         * doc/dbus-specification.xml: explain how to escape values in
6152         addresses
6153
6154 2005-02-10  Havoc Pennington  <hp@redhat.com>
6155
6156         * dbus/dbus-message-factory.c (generate_special): modify test to
6157         avoid using a non-basic dict key
6158
6159         * dbus/dbus-marshal-validate-util.c: add test for the below
6160
6161         * doc/dbus-specification.xml: require that dict keys are a basic
6162         type
6163
6164         * dbus/dbus-marshal-validate.c
6165         (_dbus_validate_signature_with_reason): require that dict key is a
6166         basic type
6167
6168 2005-02-10  Havoc Pennington  <hp@redhat.com>
6169
6170         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6171         change to be _and_unlock instead of _unlocked
6172
6173         * dbus/dbus-connection.c
6174         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6175         have no_update so we can find this bug quickly in future
6176
6177 2005-02-10  Havoc Pennington  <hp@redhat.com>
6178
6179         * dbus/dbus-message-util.c (verify_test_message): tests for string
6180         array
6181
6182         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6183         support for arrays of string/signature/path
6184
6185 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6186
6187         * dbus/dbus-connection.c
6188         (_dbus_connection_queue_received_message_link,
6189         _dbus_connection_message_sent): Add the path to
6190         the verbose output.
6191         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6192         _dbus_connection_send_preallocated_unlocked(), updated the
6193         dispatch status, and unlocks.  Fixes a bug where certain
6194         situations (like a broken pipe) could cause a Disconnect message
6195         to not be sent, tricking the bus into thinking a service was still
6196         there when the process had quit.
6197         (_dbus_connection_send_preallocated): Call
6198         _dbus_connection_send_preallocated_and_unlock().
6199         (_dbus_connection_send_and_unlock): Added.  Calls
6200         _dbus_connection_send_preallocated_and_unlock().
6201         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6202         (dbus_connection_send_with_reply): Update the dispatch status and
6203         unlock.
6204
6205         * mono/Service.cs (~Service): Added.  Removes the filter so that
6206         we don't get unmanaged code calling back into a GCed delegate.
6207         (RemoveFilter); Added.
6208
6209 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6210
6211         * dbus/dbus-message.c (dbus_message_iter_open_container):
6212         - Removed check for iterator type being an array because
6213         get_arg_type does not work with writer iterators
6214         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6215
6216 2005-02-07  Havoc Pennington  <hp@redhat.com>
6217
6218         * doc/dbus-specification.xml: some more language cleanups; add
6219         stuff about how to deal with invalid protocol and extension
6220         points; add _ to allowed chars in auth commands; add EXTENSION_
6221         auth command prefix
6222
6223 2005-02-06  Havoc Pennington  <hp@redhat.com>
6224
6225         * s/expected/required/ in a couple places for clarity
6226
6227 2005-02-07  Colin Walters  <walters@verbum.org>
6228
6229         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6230         sender or proposed_recipient.
6231
6232 2005-02-06  Havoc Pennington  <hp@redhat.com>
6233
6234         * dbus/dbus-message-factory.c (generate_special): more tests
6235
6236         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6237         array length that exceeds the maximum
6238
6239 2005-02-05  Havoc Pennington  <hp@redhat.com>
6240
6241         * dbus/dbus-message-factory.c (generate_special): more test cases,
6242         increasing coverage
6243
6244         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6245         reason why a signature was invalid
6246
6247         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6248         skip the length of the string before we look at it in validation
6249
6250         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6251         equal_substring
6252
6253         * dbus/dbus-message.c (_dbus_message_loader_new): default
6254         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6255
6256 2005-02-05  Havoc Pennington  <hp@redhat.com>
6257
6258         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6259         if the signature of a variant was empty
6260         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6261         struct with no element type)
6262
6263         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6264         mangled messages to break things
6265
6266 2005-02-04  Havoc Pennington  <hp@redhat.com>
6267
6268         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6269         g_quark_try_string() so it actually can return 0
6270         (dbus_g_proxy_connect_signal): ditto
6271
6272 2005-02-04  Havoc Pennington  <hp@redhat.com>
6273
6274         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6275         bogus warning
6276         (tristring_from_message): assert cleanly on null path/interface
6277         (should not be possible though I decided later)
6278         (dbus_g_proxy_dispose): move proxy manager unregistration here
6279         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6280         g_return_if_fail() checks
6281
6282 2005-02-04  Havoc Pennington  <hp@redhat.com>
6283
6284         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6285
6286         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6287         (with some minor changes)
6288
6289         * doc/dbus-specification.xml: add deprecated attribute to
6290         introspection format
6291
6292 2005-01-31  Havoc Pennington  <hp@redhat.com>
6293
6294         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6295         think it's sort of right
6296
6297 2005-01-30  Havoc Pennington  <hp@redhat.com>
6298
6299         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6300
6301 2005-01-30  Havoc Pennington  <hp@redhat.com>
6302
6303         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6304
6305         * autogen.sh: change to autotools 1.9
6306
6307         * glib/dbus-gproxy.c: completely change how signals work
6308         (dbus_g_proxy_add_signal): new function to specify signature of a
6309         signal
6310         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6311         and g_warning if the incoming message has the wrong signature.
6312
6313 2005-01-30  Havoc Pennington  <hp@redhat.com>
6314
6315         * tools/dbus-names-model.c (have_names_notify): fix this
6316
6317         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6318         up the string array handling a bit 
6319
6320 2005-01-30  Havoc Pennington  <hp@redhat.com>
6321
6322         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6323         (dbus_g_pending_call_cancel): new function
6324
6325         * dbus/dbus-glib.h: move GType decls for connection/message here;
6326         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6327         here, just kind of rationalizing how we handle all that
6328
6329         * tools/dbus-names-model.c: new file for a tree model listing the
6330         services on a bus
6331
6332         * tools/dbus-tree-view.c (model_new): use proper typing on the
6333         model rows
6334
6335 2005-01-30  Havoc Pennington  <hp@redhat.com>
6336
6337         * glib/dbus-gmain.c: add a custom GSource back that just checks
6338         whether the message queue has anything in it; otherwise, there are 
6339         cases where we won't see messages in the queue since there was no 
6340         IO visible to the glib main loop
6341
6342         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6343         increase default message timeout to 25 seconds
6344
6345 2005-01-30  Havoc Pennington  <hp@redhat.com>
6346
6347         * test/glib/test-profile.c (no_bus_stop_server): remove the
6348         warning about the g_warning that I just fixed
6349
6350         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6351         custom source, seems to be a lot easier to understand and work
6352         better.
6353
6354 2005-01-30  Havoc Pennington  <hp@redhat.com>
6355
6356         I think this main loop thing is conceptually broken, but here are 
6357         some band aids. I'll maybe rewrite it in a minute.
6358         
6359         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6360         custom GSource, so don't pass it in; confusing
6361         (gsource_server_finalize, gsource_connection_finalize): add
6362         finalize handlers that remove all the watches.  
6363
6364 2005-01-30  Havoc Pennington  <hp@redhat.com>
6365
6366         * glib/dbus-gobject.c (introspect_properties): fix the XML
6367         generated
6368
6369         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6370         which effectively detects the use of freed messages
6371
6372         * glib/dbus-gobject.c (handle_introspect): modify and return the
6373         reply message instead of the incoming message
6374
6375         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6376         gee, maybe it should SEND THE XML instead of just making a string
6377         and freeing it again ;-)
6378
6379         * tools/dbus-print-message.c (print_message): improve printing of
6380         messages
6381
6382         * configure.in: add debug-glib.service to the output
6383
6384 2005-01-30  Havoc Pennington  <hp@redhat.com>
6385
6386         dbus-viewer introspected and displayed the bus driver
6387         
6388         * dbus/dbus-object-tree.c 
6389         (object_tree_test_iteration): add tests for a handler registered on "/"
6390
6391         * dbus/dbus-object-tree.c
6392         (_dbus_decompose_path): fix to handle path "/" properly
6393         (run_decompose_tests): add tests for path decomposition
6394         
6395         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6396         properly
6397
6398         * glib/dbus-gobject.c (handle_introspect): fix quotes
6399
6400         * test/glib/run-test.sh: support launching the bus, then running
6401         dbus-viewer
6402
6403         * test/glib/test-service-glib.c (main): put in a trivial gobject
6404         subclass and register it on the connection
6405
6406         * bus/driver.c (bus_driver_handle_introspect): implement
6407         introspection of the bus driver service
6408
6409         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6410         identifiers, doctype decl
6411
6412         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6413         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6414         returning the service unchanged.
6415         (bus_driver_handle_message): remove old check for reply_serial in
6416         method calls, now the message type deals with that
6417         (bus_driver_handle_message): handle NULL interface
6418
6419         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6420
6421         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6422         -1 for len
6423
6424         * tools/dbus-viewer.c: add support for introspecting a service on
6425         a bus
6426
6427         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6428         (dbus_g_pending_call_unref): add
6429
6430 2005-01-29  Havoc Pennington  <hp@redhat.com>
6431
6432         * tools/dbus-tree-view.c: add support for displaying properties.
6433         (run dbus-viewer with an introspect xml file as arg, then resize
6434         the window so the tree elements show up, not sure what that is)
6435
6436         * glib/dbus-gobject.c (handle_introspect): return
6437         org.freedesktop.Properties and org.freedesktop.Introspectable
6438         interfaces when we are introspected.
6439
6440         * doc/dbus-specification.xml: allow empty interface name when 
6441         Get/Set a property
6442
6443 2005-01-29  Havoc Pennington  <hp@redhat.com>
6444
6445         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6446         though it uses glib, it could be extended for any binding in
6447         principle
6448
6449         * glib/dbus-gobject.c (gobject_message_function): change to the
6450         new way properties work
6451
6452         * dbus/dbus-protocol.h: add the new interfaces
6453
6454         * doc/dbus-specification.xml: document the introspection format,
6455         Introspectable interface, and add an org.freedesktop.Properties
6456         interface.
6457
6458         * glib/dbus-gparser.c: add support for a <property> element
6459
6460         * glib/dbus-gidl.c: add PropertyInfo
6461
6462         * glib/dbus-gobject.c (handle_introspect): put the outermost
6463         <node> outside the signal and property descriptions.
6464         (introspect_properties): export properties as <property> rather
6465         than as method calls
6466
6467 2005-01-28  Havoc Pennington  <hp@redhat.com>
6468
6469         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6470         related to authentication protocol
6471
6472 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6473
6474         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6475                 - BUS_ACTIVATION -> BUS_STARTER
6476                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6477                 - class MessageIter (__init__): Added recursion checking 
6478                 so we throw a nice error instead of just disconnecting from the
6479                 bus.
6480                 (get): Added arg_type parameter for recursion.
6481                 Removed the nil type
6482                 Added signiture type placeholder (not implemented)
6483                 Added struct type placeholder (not implemented)
6484                 Added varient type placeholder (not implemented)
6485                 Commented out dict type for now     
6486                 (get_element_type): renamed from get_array_type
6487                 (get_*): changed to use the dbus_message_iter_get_basic API
6488                 (get_*_array): removed in favor of recursive get_array method
6489                 (get_array): new recursive method which calls get to marshal
6490                 the elements of the array
6491                 (value_to_dbus_sig): New method returns the corrasponding
6492                 dbus signiture to a python value
6493                 (append): Comment out dict handling for now
6494                 Handle lists with the new recursive API
6495                 Comment out None handling for now
6496                 (append_nil): removed
6497                 (append_*): changed to use dbus_message_iter_append_basic API
6498                 (append_*_array): removed in favor of recursive append_array 
6499                 method
6500                 (__str__): Make it easier to print out recursive iterators
6501                 for debugging
6502                 - class Message (__str__): moved type inspection to the
6503                 MessageIter class' __str__ method
6504                 (get_iter): Added an append parameter wich defaults to False
6505                 If True use the new API's to create an append iterator
6506
6507         * python/dbus.py: Update to use new bindings API
6508                 - TYPE_ACTIVATION -> TYPE_STARTER
6509                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6510                 - class ActivationBus -> class StarterBus
6511                 - class RemoteObject (__call__): get an append iterator
6512                 - (_dispatch_dbus_method_call): get an append iterator
6513                 - class Object (emit_signal): get an append iterator
6514
6515         * python/examples/: Fixed up the examples to work with the new API
6516                 
6517 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6518
6519         * configure.in: Bump version up to 0.30.
6520
6521         * HACKING: Add a release item to bump the version number up after 
6522         a release.
6523
6524 2005-01-28  Havoc Pennington  <hp@redhat.com>
6525
6526         * doc/dbus-specification.xml: update to describe 16-bit types and
6527         dict entries
6528
6529         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6530         assertion
6531
6532         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6533         type
6534
6535         * dbus/dbus-marshal-recursive.c: implement
6536
6537 2005-01-27  Havoc Pennington  <hp@redhat.com>
6538
6539         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6540
6541         * configure.in: find the right type for 16 and 32 bit ints as well
6542         as 64
6543
6544         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6545         the 16-bit types so people don't have to stuff them in 32-bit or
6546         byte arrays.
6547
6548 2005-01-27  Havoc Pennington  <hp@redhat.com>
6549
6550         * dbus/dbus-message.c: byteswap the message if you init an
6551         iterator to read/write from it
6552         
6553         * dbus/dbus-marshal-byteswap.c: new file implementing 
6554         _dbus_marshal_byteswap()
6555
6556         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6557
6558 2005-01-26  Havoc Pennington  <hp@redhat.com>
6559         
6560         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6561         build, apparently - nobody noticed?)
6562         
6563 2005-01-26  Havoc Pennington  <hp@redhat.com>
6564
6565         * dbus/dbus-marshal-recursive.h: remove todo comment
6566
6567 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6568
6569         * Land the mono binding changes to conform to the new APIs.
6570
6571         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6572         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6573
6574         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6575         type code as a string.
6576         (InitAppending): Rename dbus_message_append_iter_init() to
6577         dbus_message_iter_init_append().
6578
6579         * mono/BusDriver.cs: Rename ServiceEventHandler to
6580         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6581         Rename ServiceOwnerChanged to NameOwnerChanged.
6582
6583         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6584         underlying C call.
6585
6586         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6587
6588         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6589         dbus_bus_acquire_service() to dbus_bus_request_name().
6590
6591         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6592         of Type.UnderlyingSystemType to get the correct element type for
6593         the array.
6594         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6595         dbus_message_get_{element|arg}_type() instead of
6596         dbus_message_iter_init_array_iterator().
6597         (Append): Replace dbus_message_iter_append_array() with
6598         dbus_message_iter_open_container() and
6599         dbus_message_iter_close_container().
6600
6601         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6602         types have been removed.
6603         
6604         * mono/DBusType/*.cs: Replace calls of
6605         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6606         but specify the type in the DllImport extern declaration.  Ditto
6607         for dbus_message_iter_append_[type]() ->
6608         dbus_message_iter_append_basic().
6609
6610         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6611         NameOwnerChangedHandler.
6612
6613 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6614
6615         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6616                 - get_base_service -> get_unique_name
6617                 - bus_get_base_service -> bus_get_unique_name
6618                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6619                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6620                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6621                 - bus_activate_service -> bus_start_service_by_name
6622                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6623                 - bus_acquire_service -> bus_request_name
6624                 - dbus_bus_acquire_service -> dbus_bus_request_name
6625                 - bus_service_exists -> bus_name_has_owner
6626                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6627
6628         * python/dbus.py: Rename of methods
6629                 - activate_service -> start_service_by_name
6630                 - bus_acquire_service -> bus_request_name
6631                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6632                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6633
6634         
6635 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6636
6637         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6638         signature for the method that can't be found.
6639
6640         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6641         the message has any arguments, we need to call
6642         _dbus_type_reader_get_current_type(), not
6643         _dbus_type_reader_has_next().
6644
6645 2005-01-24  Havoc Pennington  <hp@redhat.com>
6646
6647         * dbus/dbus-message-factory.c: more testing of message validation
6648
6649         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6650         header
6651
6652 2005-01-23  Havoc Pennington  <hp@redhat.com>
6653
6654         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6655         get this all working, not many tests in the framework yet though
6656
6657 2005-01-22  Havoc Pennington  <hp@redhat.com>
6658
6659         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6660         tutorial, based on work from David Wheeler.
6661
6662 2005-01-21  Havoc Pennington  <hp@redhat.com>
6663
6664         * dbus/dbus-bus.c: add more return_if_fail checks
6665
6666         * dbus/dbus-message.c (load_message): have the "no validation"
6667         mode (have to edit the code to toggle the mode for now though)
6668
6669         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6670         skips all validation; I want to use this at least for benchmark
6671         baseline, I'm not sure if it should be a publicly-available switch.
6672
6673 2005-01-21  Havoc Pennington  <hp@redhat.com>
6674
6675         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6676         toplevel doxygen group as the low-level API stuff
6677
6678         * dbus/dbus.h: note that libdbus is the low-level API
6679
6680 2005-01-20  Havoc Pennington  <hp@redhat.com>
6681
6682         * update-dbus-docs.sh: script to update docs on the web site, only
6683         works for me though. neener.
6684
6685 2005-01-20  Havoc Pennington  <hp@redhat.com>
6686
6687         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6688         code can reveal bugs in it
6689
6690 2005-01-20  Havoc Pennington  <hp@redhat.com>
6691
6692         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6693         select() version, patches from Tor Lillqvist
6694
6695 2005-01-20  Havoc Pennington  <hp@redhat.com>
6696
6697         * doc/dbus-tutorial.xml: replace > with &gt;
6698
6699         * bus/services.c (bus_registry_acquire_service): validate the name
6700         and return a better error if it's no good.
6701
6702         * doc/dbus-specification.xml: note NO_AUTO_START change
6703
6704         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6705         from AUTO_START, we're toggling the default
6706
6707         * bus/dispatch.c: adapt the tests to change of auto-start default
6708
6709 2005-01-18  Havoc Pennington  <hp@redhat.com>
6710
6711         * rename dbus-daemon-1 to dbus-daemon throughout
6712
6713 2005-01-18  Havoc Pennington  <hp@redhat.com>
6714
6715         * Throughout, grand renaming to strip out the use of "service",
6716         just say "name" instead (or "bus name" when ambiguous).  Did not
6717         change the internal code of the message bus itself, only the
6718         programmer-facing API and messages.
6719         
6720         * doc/dbus-specification.xml: further update the message bus section
6721         
6722         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6723         in error case
6724
6725 2005-01-17  Havoc Pennington  <hp@redhat.com>
6726
6727         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6728         ever
6729
6730         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6731         "invalid name character" not only non-ASCII
6732
6733         * doc/dbus-specification.xml: further update spec, message bus 
6734         parts are still out-of-date but the marshaling etc. stuff is now
6735         accurate-ish
6736
6737 2005-01-17  Havoc Pennington  <hp@redhat.com>
6738
6739         * doc/dbus-specification.xml: partially update spec
6740
6741 2005-01-17  Havoc Pennington  <hp@redhat.com>
6742
6743         * Throughout, align variant bodies according to the contained
6744         type, rather than always to 8. Should save a fair bit of space in
6745         message headers.
6746         
6747         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6748         fix handling of case where p == end
6749
6750         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6751
6752 2005-01-17  Havoc Pennington  <hp@redhat.com>
6753
6754         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6755
6756         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6757         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6758         are marshaling/unmarshaling a boolean.
6759
6760 2005-01-16  Havoc Pennington  <hp@redhat.com>
6761
6762         This is about it on what can be disabled/deleted from libdbus
6763         easily, back below 150K anyhow. Deeper cuts are more work than 
6764         just turning the code off as I've done here.
6765         
6766         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6767         signed int convenience funcs
6768
6769         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6770         verbose mode
6771
6772         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6773         things out of libdbus
6774
6775         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6776         
6777         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6778         tests-enabled-only, though it should probably be deleted)
6779
6780         * dbus/dbus-message-util.c: same stuff
6781
6782         * dbus/dbus-auth-util.c: same stuff
6783
6784 2005-01-16  Havoc Pennington  <hp@redhat.com>
6785
6786         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6787
6788         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6789         way for stripping down dbus-userdb.c stuff included in libdbus.
6790         Rename _dbus_parse_uid for consistency.
6791
6792 2005-01-16  Havoc Pennington  <hp@redhat.com>
6793
6794         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6795         name the assertion failed in
6796
6797         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6798         (_dbus_return_val_if_fail): assert that the name of the function
6799         containing the check doesn't start with '_', since we only want to 
6800         use checks on public functions
6801         
6802         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6803         checks to assertions
6804
6805         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6806         change checks to asserts for private function
6807
6808         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6809         to asserts for private function
6810
6811         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6812         broken assertion that was breaking make check
6813         (_dbus_type_reader_array_is_empty): remove this rather than fix
6814         it, was only used in assertions
6815
6816 2005-01-16  Havoc Pennington  <hp@redhat.com>
6817
6818         * test/unused-code-gc.py: hacky script to find code that's used
6819         only by the bus (not libdbus) or used only by tests or not used at
6820         all. It has some false alarms, but looks like we can clean up a
6821         lot of size from libdbus.
6822
6823         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6824         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6825         
6826 2005-01-16  Havoc Pennington  <hp@redhat.com>
6827
6828         * Add and fix docs according to Doxygen warnings throughout
6829         source.
6830         
6831         * dbus/dbus-marshal-recursive.c
6832         (_dbus_type_reader_array_is_empty): change this to just call
6833         array_reader_get_array_len() and make it static
6834
6835         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6836         from get_array_type
6837         (dbus_message_iter_init_append): rename from append_iter_init
6838
6839         * dbus/dbus-marshal-recursive.c
6840         (_dbus_type_reader_get_element_type): rename from
6841         _dbus_type_reader_get_array_type
6842
6843 2005-01-15  Havoc Pennington  <hp@redhat.com>
6844
6845         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6846
6847         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6848         when DBUS_DISABLE_ASSERT
6849         (_dbus_marshal_set_basic): be sure we align for the string length
6850
6851         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6852         this look faster
6853
6854         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6855         inline macro version
6856         (_dbus_string_set_byte): provide inline macro version
6857
6858 2005-01-15  Havoc Pennington  <hp@redhat.com>
6859
6860         * Land the new message args API and type system.
6861
6862         This patch is huge, but the public API change is not 
6863         really large. The set of D-BUS types has changed somewhat, 
6864         and the arg "getters" are more geared toward language bindings;
6865         they don't make a copy, etc.
6866
6867         There are also some known issues. See these emails for details
6868         on this huge patch:
6869         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6870         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6871         
6872         * dbus/dbus-marshal-*: all the new stuff
6873
6874         * dbus/dbus-message.c: basically rewritten
6875
6876         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6877         freed blocks to be all non-nul bytes so using freed memory is less
6878         likely to work right
6879
6880         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6881         DBUS_FAIL_MALLOC=N environment variable, so you can do
6882         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6883         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6884         thorough.
6885
6886         * qt/message.cpp: port to the new message args API
6887         (operator<<): use str.utf8() rather than str.unicode()
6888         (pretty sure this is right from the Qt docs?)
6889
6890         * glib/dbus-gvalue.c: port to the new message args API
6891
6892         * bus/dispatch.c, bus/driver.c: port to the new message args API
6893
6894         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6895         "locked" flag to TRUE and align_offset to 0; I guess we never
6896         looked at these anyhow, but seems cleaner.
6897
6898         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6899         move allocation padding macro to this header; use it to implement
6900         (_DBUS_STRING_STATIC): ability to declare a static string.
6901
6902         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6903         change to return TRUE if the interface is not set.
6904
6905         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6906         to dbus-marshal-validate.[hc]
6907
6908         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6909         dbus-internals.c
6910
6911         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6912         to dbus-marshal-*.[hc]
6913
6914         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6915         function here from dbus-marshal.c
6916
6917 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6918
6919         * NEWS: Update for 0.23.
6920
6921         * configure.in: Release 0.23.
6922
6923 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6924
6925         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6926         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6927         behind.
6928
6929         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6930         uninstall"
6931
6932         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6933         is an enum, get the enum's underlying type.  Another mono
6934         1.1.3 fix.
6935
6936 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6937
6938         Patch from Sjoerd Simons <sjoerd@luon.net>
6939
6940         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6941         DESTDIR.  It breaks stuff.
6942
6943 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6944
6945         Patch from Tambet Ingo <tambet@ximian.com>
6946
6947         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6948         calling type.GetElementType().  The code previously depended on
6949         broken Mono behavior, which was fixed in Mono 1.1.3.
6950
6951         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6952         Activator.CreateInstance() so that the class's constructor is
6953         called with the right parameters.
6954
6955 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6956
6957         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6958
6959         * dbus/dbus-connection.c
6960         (_dbus_connection_queue_received_message_link): Call
6961         _dbus_connection_remove_timeout() instead of the _locked()
6962         variant, since it's always called from
6963         _dbus_connection_handle_watch(), which handles the locking.
6964         Removed the _locked() variant since it's no longer used.
6965
6966 2005-01-03  Havoc Pennington  <hp@redhat.com>
6967
6968         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6969         return
6970         
6971 2004-12-26  Havoc Pennington  <hp@redhat.com>
6972
6973         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6974
6975 2005-01-03  Havoc Pennington  <hp@redhat.com>
6976
6977         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6978         floating point
6979
6980         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6981
6982 2005-01-02  Havoc Pennington  <hp@redhat.com>
6983
6984         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6985
6986 2005-01-01  Havoc Pennington  <hp@redhat.com>
6987
6988         * configure.in: add -Wfloat-equal
6989
6990 2005-01-01  Havoc Pennington  <hp@redhat.com>
6991
6992         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6993         for a variety of reasons '==' doesn't do this.
6994
6995 2004-12-31  Havoc Pennington  <hp@redhat.com>
6996
6997         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6998         I keep wishing I had
6999
7000 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7001
7002         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7003
7004 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7005
7006         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7007         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7008         dbus-protocol.h.  Because they are defines and not enums they are not
7009         autogenerated.
7010
7011 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7012
7013         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7014         dbus_bus_activate_service
7015
7016         * python/dbus.py (Bus.activate_service): activate a service on the
7017         bus.
7018
7019 2004-12-24  Havoc Pennington  <hp@redhat.com>
7020
7021         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7022         file format has also changed and I haven't adapted to that yet
7023         
7024         * Makefile.am: load .gcno files from latest gcc
7025
7026 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7027         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7028
7029         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7030         lowlevel binding
7031
7032         * python/dbus.py (get_unix_user): Added binding to 
7033         call dbus_bindings.bus_get_unix_user
7034
7035         * python/extract.py: Modified the proto_pat regex to
7036         handle unsigned long
7037
7038 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7039
7040         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7041         better POSIX compliance.
7042
7043 2004-12-19  Havoc Pennington  <hp@redhat.com>
7044
7045         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7046         (_dbus_string_insert_8_aligned): new functions
7047
7048         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7049
7050 2004-12-18  Havoc Pennington  <hp@redhat.com>
7051
7052         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7053         macro
7054
7055         * dbus/dbus-message.c: fix a comment, and add a still-unused
7056         not-implemented function
7057
7058         * dbus/dbus-marshal.h: fix comment
7059
7060         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7061
7062 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7063
7064         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7065         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7066         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7067         Type.UnderlyingSystemType to get the actual system type
7068         underneath.  This code previously depended on the broken Mono
7069         behavior, which was fixed in 1.1.3.
7070
7071 2004-11-27  Havoc Pennington  <hp@redhat.com>
7072
7073         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7074         are disabled
7075         (_dbus_string_get_const_data): inline when asserts are disabled
7076
7077         * dbus/dbus-message.c: record the _dbus_current_generation of
7078         creation so we can complain if dbus_shutdown() is used improperly.
7079         Do this only if checks are enabled.
7080
7081         * dbus/dbus-connection.c: ditto
7082         
7083 2004-11-26  Havoc Pennington  <hp@redhat.com>
7084
7085         * test/glib/test-profile.c: add with_bus mode to profile echoes
7086         that go through the bus.
7087
7088         * test/glib/run-test.sh: add ability to run test-profile
7089
7090         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7091         config file reload.
7092
7093 2004-11-26  Havoc Pennington  <hp@redhat.com>
7094
7095         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7096         thing was implemented
7097
7098 2004-11-26  Havoc Pennington  <hp@redhat.com>
7099
7100         * test/glib/test-profile.c: tweak a bit, add support for some
7101         made-up minimal malloc overhead with plain sockets, since in 
7102         real life some sort of buffers are unavoidable thus we could 
7103         count them in the theoretical best case
7104
7105 2004-11-26  Havoc Pennington  <hp@redhat.com>
7106
7107         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7108         where I was trying to cache one too many messages
7109
7110 2004-11-26  Havoc Pennington  <hp@redhat.com>
7111
7112         * dbus/dbus-message.c: reimplement message cache as an array which 
7113         makes the cache about twice as fast and saves maybe 1.5% overall
7114
7115 2004-11-26  Havoc Pennington  <hp@redhat.com>
7116
7117         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7118         message cache lock here
7119
7120 2004-11-26  Havoc Pennington  <hp@redhat.com>
7121
7122         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7123         the "char byte_order" next to each other to save 4 bytes
7124         (dbus_message_new_empty_header): reduce preallocation, since the
7125         message cache should achieve a similar effect
7126         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7127         message cache that keeps a few DBusMessage around in a pool,
7128         another 8% speedup or so.
7129
7130         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7131
7132 2004-11-25  Havoc Pennington  <hp@redhat.com>
7133
7134         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7135         to write, without reading or blocking, try it before the poll()
7136         and skip the poll() if nothing remains to write. This is about a
7137         3% speedup in the echo client/server
7138
7139 2004-11-25  Havoc Pennington  <hp@redhat.com>
7140
7141         The primary change here is to always write() once before adding
7142         the write watch, which gives us about a 10% performance increase.
7143         
7144         * dbus/dbus-transport-unix.c: a number of modifications to cope
7145         with removing messages_pending
7146         (check_write_watch): properly handle
7147         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7148         messages_pending stuff
7149         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7150         AUTHENTICATED cases
7151         (unix_handle_watch): after writing, see if the write watch can be
7152         removed
7153         (unix_do_iteration): assert that write_watch/read_watch are
7154         non-NULL rather than testing that they aren't, since they 
7155         aren't allowed to be NULL. check_write_watch() at the end so 
7156         we add the watch if we did not finish writing (e.g. got EAGAIN)
7157
7158         * dbus/dbus-transport-protected.h: remove messages_pending call,
7159         since it resulted in too much inefficient watch adding/removing; 
7160         instead we now require that the transport user does an iteration 
7161         after queueing outgoing messages, and after trying the first
7162         write() we add a write watch if we got EAGAIN or exceeded our 
7163         max bytes to write per iteration setting
7164
7165         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7166         function
7167
7168         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7169         freed and then accessed, valgrind flagged this bug, fix it
7170
7171         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7172         as the last valid field plus 1, where really it is equal to the
7173         last valid field. Corrects some message corruption issues.
7174
7175         * dbus/dbus-mainloop.c: verbosity changes
7176
7177         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7178         instead of aborting in one of the test codepaths
7179
7180         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7181         caused not printing the pid ever again if a verbose was missing
7182         the newline at the end
7183         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7184
7185         * dbus/dbus-connection.c: verbosity changes; 
7186         (dbus_connection_has_messages_to_send): new function
7187         (_dbus_connection_message_sent): no longer call transport->messages_pending
7188         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7189         try to write() immediately, so we can avoid the write watch. This
7190         is the core purpose of this patchset
7191         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7192         dump the outgoing message queue, so nobody will get confused
7193         trying to send them or thinking stuff is pending to be sent
7194
7195         * bus/test.c: verbosity changes
7196
7197         * bus/driver.c: verbosity/assertion changes
7198
7199         * bus/dispatch.c: a bunch of little tweaks to get it working again
7200         because this patchset changes when/where you need to block.
7201
7202 2004-11-23  Havoc Pennington  <hp@redhat.com>
7203
7204         * test/glib/test-profile.c: modify to accept a plain_sockets
7205         argument in which case it will bench plain sockets instead of
7206         libdbus, for comparison purposes.
7207
7208 2004-11-22  Havoc Pennington  <hp@redhat.com>
7209
7210         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7211         threads for more time, so sysprof can get a grip on it.
7212
7213         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7214         pointless variable
7215
7216 2004-11-13  Havoc Pennington  <hp@redhat.com>
7217
7218         * test/glib/test-profile.c: fix this thing up a bit
7219
7220         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7221         preallocation sizes by a fair bit; not sure if this will be an
7222         overall performance win or not, but it does reduce reallocs.
7223
7224         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7225         the test hack that forced constant realloc if asserts are
7226         disabled, so we can profile sanely. Sprinkle in some
7227         _DBUS_UNLIKELY() which are probably pointless, but before I
7228         noticed the real performance problem I put them in.
7229         (_dbus_string_validate_utf8): micro-optimize this thing a little
7230         bit, though callgrind says it didn't help; then special-case
7231         ascii, which did help a lot; then be sure we detect nul bytes as
7232         invalid, which is a bugfix.
7233         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7234         superstition; use memset to nul the padding instead of a manual
7235         loop.
7236         (_dbus_string_get_length): inline this as a
7237         macro; it showed up in the profile because it's used for loop
7238         tests and so forth
7239
7240 2004-11-10  Colin Walters  <walters@verbum.org>
7241
7242         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7243         for extra paranoia.
7244
7245 2004-11-09  Colin Walters  <walters@verbum.org>
7246
7247         * dbus/dbus-string.c (_dbus_string_get_length): New
7248         function, writes DBusString to C buffer.
7249
7250         * dbus/dbus-string.h: Prototype it.
7251
7252         * dbus/dbus-message.c (dbus_message_type_to_string): New
7253         function, converts message type into C string.
7254
7255         * dbus/dbus-message.h: Prototype it.
7256
7257         * bus/selinux.c (bus_selinux_check): Take source pid,
7258         target pid, and audit data.  Pass audit data to
7259         avc_has_perm.
7260         (log_audit_callback): New function, appends extra
7261         audit information.
7262         (bus_selinux_allows_acquire_service): Also take
7263         service name, add it to audit data.
7264         (bus_selinux_allows_send): Also take message
7265         type, interface, method member, error name,
7266         and destination, and add them to audit data.
7267         (log_cb): Initialize func_audit.
7268         
7269         * bus/selinux.h (bus_selinux_allows_acquire_service)
7270         (bus_selinux_allows_send): Update prototypes 
7271
7272         * bus/services.c (bus_registry_acquire_service): Pass
7273         service name to bus_selinux_allows_acquire_service.
7274
7275         * bus/bus.c (bus_context_check_security_policy): Pass
7276         additional audit data.  Move assignment of dest
7277         to its own line.
7278
7279 2004-11-07  Colin Walters  <walters@verbum.org>
7280
7281         * dbus/dbus-transport-unix.c (do_authentication): Always
7282         initialize auth_completed.
7283         
7284 2004-11-07  Colin Walters  <walters@verbum.org>
7285
7286         * bus/bus.c (load_config): Break into three
7287         separate functions: process_config_first_time_only,
7288         process_config_every_time, and process_config_postinit.
7289         (process_config_every_time): Move call of
7290         bus_registry_set_service_context_table into
7291         process_config_postinit.
7292         (process_config_postinit): New function, does
7293         any processing that needs to happen late
7294         in initialization (and also on reload).
7295         (bus_context_new): Instead of calling load_config,
7296         open config parser here and call process_config_first_time_only
7297         and process_config_every_time directly.  Later, after
7298         we have forked but before changing UID,
7299         invoke bus_selinux_full_init, and then call
7300         process_config_postinit.
7301         (bus_context_reload_config): As in bus_context_new,
7302         load parse file inside here, and call process_config_every_time
7303         and process_config_postinit.
7304
7305         * bus/services.h, bus/services.c
7306         (bus_registry_set_service_context_table): Rename
7307         from bus_registry_set_sid_table.  Take string hash from config
7308         parser, and convert them here into SIDs.
7309
7310         * bus/config-parser.c (struct BusConfigParser): Have
7311         config parser only store a mapping of service->context
7312         string.
7313         (merge_service_context_hash): New function.
7314         (merge_included): Merge context string hashes instead
7315         of using bus_selinux_id_table_union.
7316         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7317         simply create a new string hash.
7318         (bus_config_parser_unref): Unref it.
7319         (start_selinux_child): Simply insert strings into hash,
7320         don't call bus_selinux_id_table_copy_over.
7321
7322         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7323         (bus_selinux_id_table_copy_over): Delete.
7324
7325 2004-11-03  Colin Walters  <walters@verbum.org>
7326
7327         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7328         variables.
7329         
7330 2004-11-03  Colin Walters  <walters@verbum.org>
7331
7332         * bus/test-main.c (test_pre_hook): Fix test logic,
7333         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7334
7335 2004-11-02  Colin Walters  <walters@redhat.com>
7336
7337         * bus/selinux.c (bus_selinux_init): Split into two functions,
7338         bus_selinux_pre_init and bus_selinux_post_init.
7339         (bus_selinux_pre_init): Just determine whether SELinux is
7340         enabled.
7341         (bus_selinux_post_init): Do everything else.
7342
7343         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7344         config file, and bus_selinux_post_init after.  This ensures that
7345         we don't lose the policyreload notification thread that
7346         bus_selinux_init created before forking previously.
7347         
7348         * bus/test-main.c (test_pre_hook): Update for split.
7349
7350 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7351
7352         Patch from Johan Fischer <linux@fischaz.com>
7353         
7354         * mono/doc/Makefile.am (install-data-local): Added directory
7355         install for DESTDIR
7356
7357 2004-10-29  Colin Walters  <walters@redhat.com>
7358
7359         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7360         parameter for fd to write pid to.       
7361
7362         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7363         
7364         * bus/bus.c (bus_context_new): Pass print_pid_fd
7365         to _dbus_become_daemon (bug #1720)
7366
7367 2004-10-29  Colin Walters  <walters@redhat.com>
7368
7369         Patch from Ed Catmur <ed@catmur.co.uk>
7370
7371         * mono/doc/Makefile.am (install-data-local): Handle
7372         DESTDIR.
7373
7374 2004-10-29  Colin Walters  <walters@redhat.com>
7375
7376         * bus/.cvsignore, qt/.cvsignore: Update.
7377
7378 2004-10-29  Colin Walters  <walters@redhat.com>
7379
7380         Patch from Kristof Vansant <de_lupus@pandora.be>
7381
7382         * configure.in: Detect Slackware.
7383         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7384         * bus/rc.messagebus.in: New file.
7385
7386 2004-10-29  Colin Walters  <walters@redhat.com>
7387
7388         * tools/dbus-monitor.c (filter_func): Return
7389         DBUS_HANDLER_RESULT_HANDLED in filter function
7390         for now.  See:
7391         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7392
7393 2004-10-29  Colin Walters  <walters@redhat.com>
7394
7395         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7396
7397         * bus/services.c (bus_registry_acquire_service): 
7398         Correctly retrieve service name from DBusString
7399         for printing.
7400
7401 2004-10-29  Colin Walters  <walters@redhat.com>
7402
7403         * dbus/dbus-glib.h: Update documentation to not
7404         refer to internal APIs.
7405
7406 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7407
7408         * mono/Arguments.cs (GetDBusTypeConstructor):
7409         type.UnderlyingSystemType will return "System.Byte" if you do it
7410         on "byte[]", which is not what we want.  So check the type.IsArray
7411         property and use System.Array instead.
7412
7413 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7414
7415         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7416         the DBusUserInfo structure since this is passed into the function.
7417         This would cause a double free when the function that allocated
7418         the structure would try to free it when an error occured.
7419
7420         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7421         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7422         for service activation to avoid 32bit/64bit parallel install issues
7423
7424 2004-10-21  Colin Walters  <walters@verbum.org>
7425
7426         * AUTHORS: Fix my email address, the @gnu.org one
7427         has been bouncing for some time.  Also add J5.
7428         
7429 2004-10-21  Colin Walters  <walters@verbum.org>
7430
7431         * dbus/dbus-transport-unix.c (do_authentication): Return
7432         authentication status to callers.
7433         (unix_handle_watch): If we completed authentication this round,
7434         don't do another read.  Instead wait until the next iteration,
7435         after we've read any pending data in the auth buffer.
7436         (unix_do_iteration): Ditto.
7437         (unix_handle_watch): Updated for new do_authentication prototype.
7438
7439 2004-10-18  Colin Walters  <walters@verbum.org>
7440
7441         * bus/selinux.c (bus_selinux_enabled): Handle
7442         --disable-selinux case.
7443         
7444 2004-10-18  Colin Walters  <walters@verbum.org>
7445
7446         * bus/selinux.h: Add bus_selinux_enabled.
7447         
7448         * bus/selinux.c (bus_selinux_enabled): Implement it.
7449         
7450         * bus/config-parser.c (struct include): Add
7451         if_selinux_enabled member.
7452         (start_busconfig_child): Parse if_selinux_enabled
7453         attribute for include.
7454         (bus_config_parser_content): Handle it.
7455
7456         * bus/session.conf.in, bus/system.conf.in: Add
7457         inclusion of context mapping to default config files;
7458         conditional on SELinux being enabled.
7459         
7460         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7461         
7462         * test/data/invalid-config-files/badselinux-1.conf, 
7463         test/data/invalid-config-files/badselinux-2.conf:
7464         Test files for bad syntax.
7465         
7466 2004-10-17  Colin Walters  <walters@verbum.org>
7467
7468         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7469         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7470         format specifier mismatches.
7471
7472 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7473
7474         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7475         format string.
7476
7477         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7478         pointer (bug #1540, Leonardo Boiko).
7479
7480 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7481
7482         * mono/BusDriver.cs: Changed BusDriver struct to remove
7483         the ServiceCreated and ServiceDeleted events and replace them
7484         with the new ServiceOwnerChanged event.
7485
7486         * mono/example/BusListener.cs: Added a new example program,
7487         which listens for and reports any ServiceOwnerChanged events
7488         on the bus driver.
7489
7490         * mono/example/Makefile.am (DESTDIR): Build changes for the
7491         new BusListener.cs example.
7492
7493 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7494
7495         * bus/signals.c (bus_match_rule_parse): validate the components of
7496         match rules (bug #1439).
7497
7498         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7499
7500 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7501
7502         * doc/dbus-specification.xml: document ServiceOwnerChanged
7503         signal.
7504         
7505         * bus/driver.c, bus/driver.h, bus/services.c: Use
7506         ServiceOwnerChanged signal instead of ServiceCreated and
7507         ServiceDeleted.
7508         
7509         * bus/dispatch.c: update testcase for the new signal.
7510
7511 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7512
7513         Patch from Nat Friedman <nat@novell.com>
7514
7515         * mono/Makefile.am: A number of small build fixes to allow "make
7516         distcheck" to succeed.
7517
7518         * mono/example/Makefile.am: "make distcheck" fixes.
7519
7520         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7521         key in @srcdir@.
7522
7523         * test/Makefile.am: "make distcheck" fixes.
7524
7525 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7526
7527         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7528
7529         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7530
7531         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7532         messages after the first one (bug #1389).
7533         
7534         * bus/dispatch.c (check_double_hello_message): add a test case for
7535         the double hello message bug.
7536         (check_existent_service_activation): fix check of spawning error.
7537         
7538 2004-09-16  David Zeuthen  <david@fubar.dk>
7539
7540         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7541
7542 2004-09-12  David Zeuthen  <david@fubar.dk>
7543
7544         Patch from Kay Sievers <kay.sievers@vrfy.org>
7545
7546         * bus/bus.c (bus_context_new):
7547         * bus/bus.h:
7548         * bus/main.c (usage)
7549         (main):
7550         Add commandline option --nofork to override configuration file
7551         setting.
7552
7553 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7554
7555         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7556         compilers don't like it (bug #974).
7557
7558 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7559
7560         * qt/connection.*: Applied patch by Jérôme Lodewyck
7561         <lodewyck@clipper.ens.fr> to integrate an existing
7562         connection into the Qt eventloop
7563
7564 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7565
7566         * mono/BusDriver.cs: Added.  This is a class for interacting with
7567         the org.freedesktop.DBus service.
7568
7569         * mono/Message.cs: Added a mechanism to expose the message that is
7570         currently being dispatched via the static Message.Current
7571         property.  Added Message.Sender and Message.Destination
7572         properties.
7573
7574         * mono/Handler.cs: Expose the dispatched message via
7575         Message.Current when handling method calls.
7576
7577         * mono/Service.cs: Expose the dispatched message via
7578         Message.Current when handling signal emissions.
7579         
7580         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7581         Connection.BaseService property.
7582
7583 2004-08-28  Havoc Pennington  <hp@redhat.com>
7584
7585         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7586
7587         More fixes from Steve Grubb
7588         
7589         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7590         (_dbus_listen_tcp_socket): fix fd leak
7591
7592         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7593         EINTR to a bit lower in the code
7594
7595 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7596
7597         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7598         TRUE if we are inquiring about the existence of the built-in
7599         org.freedesktop.DBus service.
7600
7601 2004-08-25  John Palmieri  <johnp@redhat.com>
7602         * bus/config-parser.c:
7603         (struct PolicyType): Add POLICY_CONSOLE
7604         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7605         (start_busconfig_child): Sets up console element when
7606         <policy at_console=""> is encountered in a policy file
7607         (append_rule_from_element): Convert console elements to console
7608         rules.
7609
7610         * bus/policy.c: 
7611         (bus_policy_create_client_policy): Add console rules to the client
7612         policy based on if the client is at the console
7613         (bus_policy_append_console_rule): New function for adding a
7614         console rule to a policy
7615         (bus_policy_merge): Handle console rule merging
7616
7617         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7618         where we check for console user files
7619         
7620         * dbus/dbus-sysdeps.c:
7621         (_dbus_file_exists): New function which checks if the given
7622         file exists
7623         (_dbus_user_at_console): New function which does the system
7624         specific process of checking if the user is at the console
7625
7626         * dbus/dbus-userdb.c:
7627         (_dbus_is_console_user): New function converts a UID to user name
7628         and then calls the system specific _dbus_user_at_console to 
7629         see if the user is at the console and therefor a console user
7630
7631 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7632
7633         * bus/config-parser.c (set_limit):
7634         * bus/dbus-daemon-1.1.in:
7635         * test/data/valid-config-files/many-rules.conf: set the
7636         max_match_rules_per_connection limt from the config file. 
7637
7638         * doc/busconfig.dtd: update the DTD.
7639
7640         * bus/driver.c: remove some unused variables.
7641
7642 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7643
7644         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7645         it's been replaced by dbus_g_bus_get
7646
7647 2004-08-23  Colin Walters  <walters@redhat.com>
7648
7649         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7650
7651         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7652
7653         * bus/selinux.c: Create a thread for policy reload notification.
7654         (bus_selinux_get_policy_root): Implement.
7655
7656         * bus/config-parser.c (start_busconfig_child)
7657         (bus_config_parser_content): Support SELinux-root relative
7658         inclusion.
7659
7660         * configure.in <HAVE_SELINUX>: Add -lpthread.
7661         
7662         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7663         (test_post_hook): Move memory checking into here.
7664         (test_pre_hook, test_post_hook): Move SELinux checks in
7665         here, but conditional on a DBUS_TEST_SELINUX environment
7666         variable.  Unfortunately we can't run the SELinux checks
7667         as a normal user, since they won't have any permissions
7668         for /selinux.  So this will have to be tested manually
7669         for now, until we have virtualization for most of
7670         libselinux.
7671         
7672 2004-08-23  Havoc Pennington  <hp@redhat.com>
7673
7674         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7675         drop supplementary groups, suggested by Steve Grubb
7676
7677 2004-08-20  Colin Walters  <walters@redhat.com>
7678
7679         * bus/config-parser.c (start_busconfig_child): Remove some unused
7680         variables.
7681         
7682         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7683         warning.
7684
7685 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7686
7687         * configure.in: If --enable-mono is passed in, if we can't find
7688         mono error out.
7689
7690         * mono/Makefile.am: Use /gacutil to install assemblies into the
7691         GAC and not /root.
7692
7693 2004-08-12  Havoc Pennington  <hp@redhat.com>
7694
7695         * NEWS: update for 0.22
7696
7697         * configure.in: release 0.22
7698
7699 2004-08-11  Colin Walters  <walters@redhat.com>
7700
7701         * tools/dbus-send.c (main, usage): Add --reply-timeout
7702         argument.
7703
7704 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7705
7706         * bus/bus.c (process_config_first_time_only): get rid of an unused
7707         DBusError that was causing a memoy leak (bug #989).
7708
7709         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7710         fix compilation on Solaris/Forte C (bug #974)
7711
7712         * bus/main.c (main): plug two minuscule memleaks.
7713
7714 2004-08-10  Havoc Pennington  <hp@redhat.com>
7715
7716         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7717
7718 2004-08-09  Havoc Pennington  <hp@redhat.com>
7719
7720         * COPYING: switch to Academic Free License version 2.1 instead of
7721         2.0, to resolve complaints about patent termination clause.
7722
7723 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7724
7725         * README: added documentation for the --enable-python 
7726         configure switch.
7727
7728 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7729
7730         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7731         _unref in the SELinux support.
7732
7733         * doc/busconfig.dtd: update DTD for SELinux support.
7734
7735         * bus/config-loader-libxml.c: fix error handler and parser
7736         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7737
7738         * configure.in: remove the warning about libxml2.
7739
7740         * dbus/dbus-bus.c: silence doxygen warning.
7741
7742 2004-07-31  Colin Walters  <walters@redhat.com>
7743
7744         * configure.in: Move #error in SELinux check to its own line.
7745
7746 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7747
7748         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7749         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7750         dbus_error_set.
7751
7752         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7753         broken by the change in the _SET_OOM macros.
7754
7755 2004-07-31  Colin Walters  <walters@redhat.com>
7756
7757         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7758         BUS_SET_OOM.
7759
7760 2004-07-31  Colin Walters  <walters@redhat.com>
7761
7762         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7763         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7764         AC_MSG_CHECKING.
7765
7766 2004-07-24  Havoc Pennington  <hp@redhat.com>
7767
7768         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7769
7770         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7771         functionality
7772
7773         * configure.in: add --enable-selinux
7774         
7775         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7776
7777         * bus/main.c (main): initialize and shut down selinux
7778
7779         * bus/connection.c: store SELinux ID on each connection, to avoid 
7780         repeated getting of the string context and converting it into 
7781         an ID
7782
7783         * bus/bus.c (bus_context_get_policy): new accessor, though it
7784         isn't used
7785         (bus_context_check_security_policy): check whether the security
7786         context of sender connection can send to the security context of
7787         recipient connection
7788
7789         * bus/config-parser.c: add parsing for <selinux> and <associate>
7790         
7791         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7792         implement dbus_connection_get_unix_fd()
7793
7794         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7795         function, used by the selinux stuff
7796         
7797 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7798
7799         * bus/config-loader-libxml.c: complete the implementation of
7800         libxml backend for config file loader. Doesn't work with full OOM
7801         test yet. 
7802         
7803         * configure.in: change error when selecting libxml into a warning.
7804         
7805         * test/data/invalid-config-files: add two non-well-formed XML
7806         files. 
7807         
7808         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7809         
7810         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7811         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7812         be necessary to read all the buffer. (bug #894)
7813
7814         * bus/activation.c (bus_activation_activate_service): fix a
7815         potential assertion failure (bug #896). Small optimization in the
7816         case of auto-activation messages.
7817
7818         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7819         add test case for byte-through-vararg bug (#901). patch by Kimmo
7820         Hämäläinen. 
7821
7822 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7823
7824         * python/dbus.py:
7825         * python/dbus_bindings.pyx.in:
7826         Add dbus.init_gthreads (), allow emit_signal to pass
7827         arguments to the signal.
7828         
7829 2004-07-24  Havoc Pennington  <hp@redhat.com>
7830
7831         * AUTHORS: add some people, not really comprehensively, let me
7832         know if I missed you
7833
7834 2004-07-24  Havoc Pennington  <hp@redhat.com>
7835
7836         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7837         Owen
7838
7839         * test/Makefile.am (DIST_SUBDIRS): here also
7840
7841 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7842
7843         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7844         breaking build on Solaris, reported by Farhad Saberi on the ML.
7845
7846         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7847         va_arg invocation to account for integer promotion in the case of
7848         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7849
7850         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7851         _dbus_list_get_first_link, not _dbus_list_get_first.
7852
7853         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7854
7855         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7856         handler functions so that the asserts in _dbus_object_subtree_unref
7857         do not fail.
7858
7859         * dbus/dbus-transport-unix.c (do_reading):
7860         _dbus_transport_queue_messages return value is of type
7861         dbus_bool_t, not DBusDispatchStatus.
7862         
7863 2004-07-19  David Zeuthen  <david@fubar.dk>
7864
7865         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7866
7867         * bus/dispatch.c:
7868         (check_get_connection_unix_user): Debug says GetProperty; but the
7869         method is called GetConnectionUnixUser
7870         (check_get_connection_unix_process_id): New function
7871         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7872         also call check_get_connection_unix_process_id()
7873         
7874         * bus/driver.c:
7875         (bus_driver_handle_get_connection_unix_process_id): New function,
7876         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7877         interface
7878         
7879         * dbus/dbus-auth.c:
7880         (handle_server_data_external_mech): Set pid from the credentials
7881         obtained from the socket
7882         
7883         * dbus/dbus-connection.c:
7884         (dbus_connection_get_unix_process_id): New function
7885         
7886         * dbus/dbus-connection.h: 
7887         Add prototype for dbus_connection_get_unix_process_id
7888         
7889         * dbus/dbus-transport.c:
7890         (_dbus_transport_get_unix_process_id): New function
7891         
7892         * dbus/dbus-transport.h:
7893         Add prototype for _dbus_transport_get_unix_process_id
7894         
7895 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7896
7897         * dbus/dbus-message.c: Message counter fix, patch by Christian
7898         Hammond <chipx86@gnupdate.org>
7899
7900 2004-07-18  Seth Nickell  <seth@gnome.org>
7901
7902         * python/dbus.py:
7903         * python/dbus_bindings.pyx.in:
7904         * python/tests/test-client.py:
7905
7906         Add dbus.ByteArray and dbus_bindings.ByteArray
7907         types so that byte streams can be passed back.
7908
7909         Give jdahlin the heaps of credit that are so
7910         rightfully his.
7911         
7912 2004-07-12  Seth Nickell  <seth@gnome.org>
7913
7914         * python/dbus.py:
7915
7916         Add message argument to the default object_method_handler
7917         function.
7918         
7919         * python/dbus_bindings.pyx.in:
7920
7921         Automatically return NIL when passed an empty list
7922         (we can't pass back a list since lists are typed
7923         and we don't have any idea what type the the client
7924         intended the list to be... :-( )
7925         
7926 2004-07-10  Seth Nickell  <seth@gnome.org>
7927
7928         * python/examples/Makefile.am:
7929
7930         Fix distcheck breakage caused by new examples.
7931
7932 2004-07-10  Seth Nickell  <seth@gnome.org>
7933
7934         * python/dbus.py:
7935
7936         Add "message" argument to service-side dbus.Object
7937         methods. This will break existing services written
7938         using the python bindings, but will allow extraction
7939         of all the message information (e.g. who its from).
7940
7941         Add improved "object oriented" signal handling/emission.
7942         
7943         * python/examples/example-service.py:
7944
7945         Nix this example.
7946         
7947         * python/examples/example-signal-emitter.py:
7948         * python/examples/example-signal-recipient.py:
7949
7950         Two new examples that show how to emit and receive
7951         signals using the new APIs.
7952         
7953         * python/examples/example-signals.py:
7954         * python/examples/gconf-proxy-service.py:
7955         * python/examples/gconf-proxy-service2.py:
7956
7957         Add "message" argument to service methods.
7958
7959 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7960
7961         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7962         * dbus/bus.c (dbus_bus_get_unix_user)
7963         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7964         method of org.freedesktop.DBus interface.
7965
7966         * bus/dispatch.c: test case
7967
7968 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7969
7970         * python/Makefile.am: switched include directory from glib/ to dbus/
7971         since dbus-glib.h moved
7972  
7973 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7974
7975         * configure.in: prevent building the gcj stuff and libxml loader
7976         since they are broken.
7977
7978 2004-06-20  Havoc Pennington  <hp@redhat.com>
7979
7980         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7981         codes from the dbus error names
7982         
7983         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7984         as dbus/dbus-glib.h and that breakage is now visible due to 
7985         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7986         
7987         * glib/dbus-glib.h: s/gproxy/g_proxy/
7988
7989         * dbus/dbus-shared.h: new header to hold stuff shared with
7990         binding APIs
7991         
7992         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7993         than dbus-errors.h
7994
7995         * glib/dbus-glib.h (dbus_set_g_error): move to
7996         dbus-glib-lowlevel.h
7997
7998         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7999         of stuff to enable this
8000
8001         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8002
8003         * a bunch of other changes with the same basic "separate glib 
8004         bindings from dbus.h" theme
8005         
8006 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8007
8008         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8009
8010         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8011
8012 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8013
8014         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8015         the reply value of the ServiceExists message.
8016
8017 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8018
8019         * python/dbus_bindings.pyx.in: No longer need to parse path
8020         elements and pass them as arrays of strings.  The C API now
8021         accepts plain path strings.
8022         (_build_parsed_path): removed 
8023
8024 2004-06-07  Havoc Pennington  <hp@redhat.com>
8025
8026         * doc/TODO: remove auto-activation item since it's done; sort
8027         items by importance/milestone
8028
8029 2004-06-07  Havoc Pennington  <hp@redhat.com>
8030
8031         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8032         random signature when using REQUIRED_FIELDS (this hack won't work
8033         in the long term)
8034
8035         * dbus/dbus-message.c: change the signature to be a header field,
8036         instead of message->signature special-case string. Incremental
8037         step forward. Then we can fix up code to send the signature in the
8038         message, then fix up code to validate said signature, then fix up
8039         code to not put the typecodes inline, etc.
8040         (load_one_message): don't make up the signature after the fact
8041         (decode_header_data): require signature field for the known
8042         message types
8043
8044         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8045
8046         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8047
8048 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8049
8050         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8051
8052         * mono/Handler.cs: Updated to follow new path argument for
8053         (un-)registering objects.
8054
8055         * mono/example/Makefile.am:
8056         * mono/Makefile.am:
8057         * configure.in: Bumped required version for mono and use new -pkg
8058         syntax for deps
8059
8060 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8061
8062         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8063         registration functions take the path argument as char* instead of
8064         char**.
8065
8066         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8067         split off the path decompostion part of
8068         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8069         warnings. 
8070
8071         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8072         
8073 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8074  
8075         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8076         machine approach.  A state is implemented as a function that
8077         handles incoming events as specified for that state.
8078         
8079         * doc/dbus-specification.xml: Update auth protocol state machine
8080         specification to match implementation.  Remove some leftover
8081         base64 examples.
8082
8083 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8084
8085         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8086         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8087         quiet doxygen.
8088
8089         * Doxyfile.in: remove deprecated options.
8090
8091         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8092         glib/test-thread.h, glib/test-thread-client.c,
8093         glib/test-thread-server.c, glib/test-profile.c,
8094         glib/test-dbus-glib.c: remove these unused files.
8095
8096 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8097
8098         * dbus/dbus-object-tree.c
8099         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8100         non-fallback handlers (bug #684).
8101         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8102         (find_subtree_recurse): report wether the returned subtree is an
8103         exact match or a "fallback" match higher up in the tree.
8104         (object_tree_test_iteration): update test case.
8105
8106 2004-06-01  Seth Nickell  <seth@gnome.org>
8107
8108         * python/dbus_bindings.pyx.in:
8109         * python/tests/test-client.py:
8110
8111         Round off basic type support. Add dicts (yay!), and 
8112         remaining array types.
8113
8114         Make MessageIter more general so it works for dicts too.
8115
8116         Mark all loop variables as C integers.
8117         
8118 2004-05-31  Havoc Pennington  <hp@redhat.com>
8119
8120         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8121         "in" before "out"
8122
8123         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8124
8125         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8126         option that runs the tests, and start filling in some code
8127         including for starters just dumping the interfaces to stdout
8128
8129         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8130
8131         * test/data/valid-introspection-files/lots-of-types.xml: test of
8132         an example introspection file
8133
8134         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8135         "node" (I think...)
8136
8137 2004-05-31  Seth Nickell  <seth@gnome.org>
8138
8139         * python/dbus_bindings.pyx.in:
8140         * python/tests/test-client.py:
8141
8142         Test Suite: 1
8143         Python Bindings: 0
8144
8145         Fix string array memory trashing bug... oops...
8146
8147 2004-05-30  Seth Nickell  <seth@gnome.org>
8148
8149         * python/dbus.py:
8150
8151         Add a nicer-but-less-flexible alternate API for handling 
8152         calls to virtual objects in dbus.ObjectTree.
8153
8154         Screw up the argument order to the dbus.Object constructor
8155         for consistency with dbus.ObjectTree (and to make dbus_methods
8156         optional for future extension)
8157         
8158         * python/examples/Makefile.am:
8159         * python/examples/gconf-proxy-service.py:
8160         * python/examples/gconf-proxy-service2.py:
8161
8162         Alternate implementation of gconf-proxy-service using the
8163         nicer dbus.ObjectTree API.
8164         
8165         * python/examples/example-service.py:
8166         * python/tests/test-server.py
8167
8168         Reverse the argument order to deal with dbus.Object constructor
8169         changes.
8170         
8171 2004-05-30  Seth Nickell  <seth@gnome.org>
8172
8173         * python/examples/example-client.py:
8174         * python/examples/example-service.py:
8175
8176         Take it back. Lists seem to work but they're broken
8177         in the test suite. Make the base examples use
8178         lists (works fine).
8179
8180 2004-05-30  Seth Nickell  <seth@gnome.org>
8181
8182         * python/dbus_bindings.pyx.in:
8183         * python/tests/test-client.py:
8184
8185         Add some more tests and fix errors that crop up.
8186         Unfortunately, currently it seems like marshalling
8187         and unmarshalling of lists is completely broken :-(
8188
8189 2004-05-30  Seth Nickell  <seth@gnome.org>
8190
8191         * python/dbus_bindings.pyx.in:
8192
8193         Add support for ObjectPath type.
8194
8195         * python/dbus.py:
8196
8197         Refactor message handling code to a common function.
8198         
8199         * python/tests/test-client.py:
8200         * python/tests/test-server.py:
8201
8202         Add tests that check to make sure values of all types
8203         can be echoed from a service w/o mangling.
8204         
8205 2004-05-29  Seth Nickell  <seth@gnome.org>
8206
8207         * python/dbus.py:
8208
8209         Add ObjectTree class which allows implementation
8210         of trees of "virtual" objects. Basically the python
8211         wrapper for "register_fallback".
8212         
8213         * python/examples/Makefile.am
8214         * python/examples/gconf-proxy-client.py:
8215         * python/examples/gconf-proxy-service.py:
8216
8217         Implement a simple GConf proxy service that supports
8218         get/set on string and int GConf keys using the ObjectTree.
8219         
8220 2004-05-29  Seth Nickell  <seth@gnome.org>
8221
8222         * python/dbus.py:
8223         * python/examples/example-client.py:
8224         * python/examples/example-service.py:
8225         * python/examples/list-system-services.py:
8226
8227         Add SessionBus, SystemBus and ActivationBus classes
8228         so you don't need to know the special little BUS_TYPE
8229         flag.
8230         
8231 2004-05-29  Havoc Pennington  <hp@redhat.com>
8232
8233         * bus/config-parser.c (process_test_valid_subdir): temporarily
8234         stop testing config parser OOM handling, since expat has issues
8235         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8236
8237         * bus/dbus-daemon-1.1.in: change requested_reply to
8238         send_requested_reply/receive_requested_reply so we can send the
8239         replies, not just receive them.
8240
8241         * bus/config-parser.c: parse the new
8242         send_requested_reply/receive_requested_reply
8243
8244         * bus/policy.c (bus_client_policy_check_can_send): add
8245         requested_reply argument and use it
8246
8247         * bus/bus.c (bus_context_check_security_policy): pass through
8248         requested_reply status to message send check
8249
8250         * bus/system.conf.in: adapt to requested_reply change
8251         
8252 2004-05-28  Havoc Pennington  <hp@redhat.com>
8253
8254         * test/glib/test-service-glib.c (main): remove unused variable
8255
8256         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8257
8258         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8259         from the enum, no longer in use.
8260
8261         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8262         works right.
8263
8264         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8265         whether error_name passed in is a valid error name.
8266
8267 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8268
8269         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8270         OBJECT_PATH and OBJECT_PATH_ARRAY
8271
8272 2004-05-28  Seth Nickell  <seth@gnome.org>
8273
8274         * python/examples/Makefile.am:
8275
8276         Forget to add Makefile.am. Do not pass go.
8277
8278 2004-05-28  Michael Meeks  <michael@ximian.com>
8279
8280         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8281         fix no int64 case.
8282
8283         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8284
8285         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8286         (_dbus_message_iter_get_basic_type_array): impl.
8287         drastically simplify ~all relevant _get methods to use these.
8288         (_dbus_message_iter_append_basic_array),
8289         (dbus_message_iter_append_basic): impl
8290         drastically simplify ~all relevant _append methods to use these.
8291
8292         * dbus/dbus-message-builder.c (parse_basic_type) 
8293         (parse_basic_array, lookup_basic_type): impl.
8294         (_dbus_message_data_load): prune scads of duplicate /
8295         cut & paste coding.
8296
8297         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8298         (_dbus_demarshal_basic_type): implement,
8299         (demarshal_and_validate_len/arg): beef up debug.
8300         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8301
8302 2004-05-27  Seth Nickell  <seth@gnome.org>
8303
8304         * configure.in:
8305         * python/Makefile.am:
8306
8307         Include the example python apps in the tarball.
8308         
8309         * python/examples/list-system-services.py
8310
8311         Add a python new example that fetches the list of services
8312         from the system bus.
8313         
8314 2004-05-27  Seth Nickell  <seth@gnome.org>
8315
8316         * python/dbus.py:
8317         * python/dbus_bindings.pyx.in:
8318
8319         Fix failure to notify that a signal was not handled,
8320         resulted in hung functions.
8321         
8322 2004-05-25  Colin Walters  <walters@redhat.com>
8323
8324         * tools/dbus-monitor.c (main): Monitor all types of messages.
8325
8326 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8327
8328         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8329         which unregisters the object path and disposes the handler.
8330
8331 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8332  
8333         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8334          
8335         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8336         operands to && so we call dbus_message_iter_next () for the last
8337         argument also.
8338
8339 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8340
8341         * dbus/dbus-object-tree.c
8342         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8343         children even if the requested path isn't registered.
8344         (object_tree_test_iteration): test object_tree_list_registered.
8345
8346         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8347         it to 0.
8348         
8349 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8350
8351         * doc/TODO: Remove resolved items.
8352
8353         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8354         field.
8355         
8356         * bus/connection.c (bus_connections_expect_reply): Enforce the
8357         per-connection limit on pending replies.
8358         
8359         Patch from Jon Trowbridge <trow@ximian.com>:
8360  
8361         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8362         up a watch that triggers a config reload when one end of the pipe
8363         becomes readable.
8364         (signal_handler): Instead of doing the config reload in our SIGHUP
8365         handler, just write to the reload pipe and let the associated
8366         watch handle the reload when control returns to the main loop.
8367  
8368         * bus/driver.c (bus_driver_handle_reload_config): Added.
8369         Implements a ReloadConfig method for requesting a configuration
8370         file reload via the bus driver.
8371  
8372 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8373
8374         * HACKING: Updated release instructions concerning the wiki page.
8375
8376 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8377
8378         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8379         filter against auth->allowed_mechs; we only add allowed mechs in
8380         record_mechanisms().
8381  
8382         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8383         ALLOWED_MECHS to auth-script format so we can set the list of
8384         allowed mechanisms.
8385  
8386         * data/auth/client-out-of-mechanisms.auth-script: New test to
8387         check client disconnects when it is out of mechanisms to try.
8388  
8389         * dbus/dbus-auth.c (process_command): Remove check for lines
8390         longer that 1 MB; we only buffer up maximum 16 kB.
8391  
8392         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8393         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8394         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8395         assume there might be unused bytes.
8396  
8397         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8398         client-out-of-mechs, it is handled in process_reject(). Move check
8399         for max failures to send_rejected(), as it's a server-only thing.
8400
8401         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8402         send_auth(), send_data(), send_rejected(), send_error(),
8403         send_ok(), send_begin() and send_cancel().
8404
8405 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8406
8407         Remove base64 encoding, replace with hex encoding. Original patch
8408         from trow@ximian.com, added error handling.
8409
8410         * dbus/dbus-string.c (_dbus_string_base64_encode)
8411         (_dbus_string_base64_decode): Remove.
8412         (_dbus_string_hex_decode): Add end_return argument so we can
8413         distinguish between OOM and invalid hex encoding.
8414         (_dbus_string_test): Remove base64 tests and add test case for
8415         invalid hex.
8416
8417         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8418         Replace base64 with hex.
8419
8420         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8421         for invalid hex encoded data in auth protocol.
8422
8423 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8424
8425         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8426         leak.
8427
8428 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8429
8430         * mono/dbus-sharp.dll.config.in: Added for GAC
8431         * mono/dbus-sharp.snk: Added for GAC
8432         * mono/Assembly.cs.in: Added for GAC
8433         * mono/Makefile.am: Changes for GAC installation        
8434         * configure.in: Added refs for dbus-sharp.dll.config.in and
8435         Assembly.cs.in. More fixes for mono testing
8436         * mono/example/Makefile.am: Changed var to CSC
8437         * Makefile.am: Changed flag name to DBUS_USE_CSC
8438
8439 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8440
8441         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8442         * mono/doc/*: Added documentation framework
8443         * configure.in: Added monodoc check
8444         * README: Added description of mono configure flags
8445
8446 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8447
8448         * doc/dbus-specification.xml: Added a "Required" column to the 
8449         header fields table and changed the "zero or more" verbage in
8450         the above paragraph to read "The header must contain the required 
8451         named header fields and zero or more of the optional named header 
8452         fields".
8453         * test/data/invalid-messages/*.message: Added the required PATH 
8454         named header field to the tests so that they don't fail on 
8455         'Missing path field'
8456
8457 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8458
8459         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8460         the stack by implicitly defining variable and parameter types and
8461         removing the hack of defining C pointers as python objects and later
8462         casting them.
8463
8464 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8465
8466         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8467
8468 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8469
8470         * mono/DBusType/Dict.cs: Handle empty dicts
8471         * mono/DBusType/Array.cs: Handle empty arrays
8472         * mono/Arguments.cs: Handle empty arguments
8473
8474 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8475
8476         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8477         field
8478
8479 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8480
8481         * test/data/valid-messages/standard-*.message: Update message
8482         test scripts to new header field names.
8483
8484 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8485
8486         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8487         overflow to times_we_did_each_thing array which would chop off the
8488         first character of the failure_dir string. Increased the size of
8489         the array to 7 to reflect the number of random mutation functions
8490         we have.
8491
8492 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8493
8494         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8495         unix_server->watch here, it is unreffed in disconnect.
8496         (_dbus_server_new_for_tcp_socket): convert NULL host to
8497         "localhost" here so we don't append NULL to address.
8498         
8499         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8500         various addresses, including tcp with no explicit host.
8501
8502 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8503
8504         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8505         fix incorrect setting of .name_offset in the HeaderField (it was
8506         off by two bytes, positioned right after the name and typecode)
8507
8508         * bus/bus.c (bus_context_new, bus_context_unref): test before
8509         calling dbus_server_free_data_slot and _dbus_user_database_unref
8510         in case of an error.
8511
8512         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8513         by libdbus-gtool.
8514
8515 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8516
8517         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8518         _dbus_poll() instead of select().
8519
8520 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8521
8522         * bus/main.c (signal_handler): Reload the configuration files
8523         on SIGHUP.
8524         (main): Set up our SIGHUP handler.
8525
8526         * bus/bus.c (struct BusContext): Store the config file, user and
8527         fork flag in the BusContext.
8528         (process_config_first_time_only): Added.  Contains the code
8529         (previously in bus_context_new) for setting up the BusContext from
8530         the BusConfigParser that should only be run the first time the
8531         config files are read.
8532         (process_config_every_time): Added.  Contains the code (previously
8533         in bus_context_new) for setting up the BusContext from the
8534         BusConfigParser that should be run every time the config files are
8535         read.
8536         (load_config): Added.  Builds a BusConfigParser from the config
8537         files and passes the resulting structure off to
8538         process_config_first_time_only (assuming this is the first time)
8539         and process_config_every_time.
8540         (bus_context_new): All of the config-related code has been moved
8541         to process_config_first_time_only and process_config_every_time.
8542         Now this function just does the non-config-related initializations
8543         and calls load_config.
8544         (bus_context_reload_config): Added.
8545
8546 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8547
8548         * bus/driver.c (bus_driver_handle_get_service_owner):
8549         implement a GetServiceOwner method.
8550         * doc/dbus-specification.xml: document it.
8551         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8552         
8553         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8554         implement, using the bus GetServiceOwner method.
8555
8556         * test/glib/test-dbus-glib.c:
8557         use dbus_gproxy_new_for_service_owner so that we can receive the
8558         signal. 
8559
8560 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8561
8562         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8563         dbus/dbus-message.c, dbus/dbus-protocol.h
8564         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8565
8566         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8567         dbus/dbus-message.c, dbus/dbus-protocol.h
8568         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8569
8570         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8571         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8572         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8573
8574         * doc/dbus-specification.xml (Header Fields Table):
8575         s/SERVICE/DESTINATION
8576         s/SENDER_SERVICE/SENDER
8577
8578
8579 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8580
8581         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8582         a few seconds.
8583
8584 2004-04-13  Michael Meeks  <michael@ximian.com>
8585
8586         * glib/dbus-gobject.c (handle_introspect): split out
8587         (introspect_properties): this.
8588         (handle_introspect): implement this.
8589
8590         * test/glib/Makefile.am: use the absolute path so the bus
8591         daemon's chdir ("/") doesn't kill us dead.
8592
8593         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8594
8595 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8596
8597         * bus/config-parser.c (struct BusConfigParser): Added
8598         included_files field.
8599         (seen_include): Added.  Checks whether or not a file has already
8600         been included by any parent BusConfigParser.
8601         (bus_config_parser_new): Copy the parent's included_files.
8602         (include_file): Track which files have been included, and fail on
8603         circular inclusions.
8604         (process_test_valid_subdir): Changed printf to report if we are
8605         testing valid or invalid conf files.
8606         (all_are_equiv): Changed printf to be a bit clearer about
8607         what we are actually doing.
8608         (bus_config_parser_test): Test invalid configuration files.
8609
8610 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8611
8612         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8613         argument.  If non-null, the newly-constructed BusConfigParser will
8614         be initialized with the parent's BusLimits instead of the default
8615         values.
8616         (include_file): When including a config file, pass in
8617         the current parser as the parent and then copy the BusLimits
8618         from the included BusConfigParser pack to the current parser.
8619         (process_test_valid_subdir): Renamed from process_test_subdir.
8620         (process_test_equiv_subdir): Added.  Walks through a directory,
8621         descending into each subdirectory and loading the config files
8622         it finds there.  If any subdirectory contains two config files
8623         that don't produce identical BusConfigParser structs, fail.
8624         For now, the BusConfigParser's BusPolicies are not compared.
8625         (bus_config_parser_test): Call both process_test_valid_subdir and
8626         process_test_equiv_subdir.
8627
8628         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8629         argument and pass it along to the call to bus_config_parser_new.
8630         Also made a few small changes to allow this code to compile.
8631
8632         * bus/config-loader-expat.c (bus_config_load): Take a parent
8633         argument and pass it along to the call to bus_config_parser_new.
8634
8635         * bus/bus.c (bus_context_new): Load the config file
8636         with a NULL parent argument.
8637
8638 2004-03-29  Michael Meeks  <michael@ximian.com>
8639
8640         * glib/dbus-gobject.c (introspect_properties): split
8641         out, fix mangled 'while' flow control.
8642         (introspect_signals): implement.
8643         (handle_introspect): update.
8644
8645 2004-03-29  Michael Meeks  <michael@ximian.com>
8646
8647         * glib/dbus-gobject.c (set_object_property): split out / 
8648         re-work, use the property type, and not the message type(!)
8649         (get_object_property): ditto.
8650
8651         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8652         (dbus_gvalue_marshal): make this code re-usable, needed
8653         for signals too, also on both proxy and server side.
8654         Re-write for more efficiency / readability.
8655
8656 2004-03-29  Michael Meeks  <michael@ximian.com>
8657
8658         * dbus/dbus-message.c
8659         (dbus_message_new_error_printf): impl.
8660
8661         * dbus/dbus-connection.c
8662         (dbus_connection_unregister_object_path): fix warning.
8663
8664         * configure.in: fix no-mono-installed situation.
8665
8666 2004-03-27  Havoc Pennington  <hp@redhat.com>
8667
8668         Patch from Timo Teräs:
8669         
8670         * tools/dbus-send.c (main): if --print-reply, assume type is
8671         method call; support boolean type args
8672         
8673         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8674         bunch of memleak and logic bugs
8675         
8676 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8677
8678         * mono/Arguments.cs:
8679         * mono/Introspector.cs:
8680         * mono/Handler.cs:
8681         * mono/InterfaceProxy.cs:
8682         * mono/Message.cs
8683         * mono/ProxyBuilder.cs:
8684         * mono/Service.cs:
8685         Added InterfaceProxy class to avoid building proxies for every
8686         object.
8687
8688         * dbus-message.h:
8689         * dbus-message.c (dbus_message_append_args_valist)
8690         (dbus_message_iter_get_object_path)
8691         (dbus_message_iter_get_object_path_array)
8692         (dbus_message_iter_append_object_path)
8693         (dbus_message_iter_append_object_path_array):
8694         Added object_path iter functions to handle OBJECT_PATH arguments
8695         
8696 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8697
8698         First checkin of mono bindings.
8699         * configure.in:
8700         * Makefile.am:
8701         Build stuff for the bindings
8702         * dbus-sharp.pc.in: Added for pkgconfig
8703         
8704 2004-03-21  Havoc Pennington  <hp@redhat.com>
8705
8706         * test/test-service.c (main): remove debug spew
8707
8708 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8709
8710         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8711         arrays
8712
8713         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8714         (dbus_message_iter_init_array_iterator)
8715         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8716         indicate whether the iterator is empty
8717
8718         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8719         warnings
8720
8721 2004-03-19  Havoc Pennington  <hp@redhat.com>
8722
8723         * NEWS: 0.21 updates
8724
8725         * configure.in: 0.21
8726
8727         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8728         
8729         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8730         you don't need pyrex to make dist
8731
8732         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8733         sources; run moc
8734         
8735 2004-03-18  Richard Hult  <richard@imendio.com>
8736
8737         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8738         (dbus_message_set_auto_activation): Add doxygen docs.
8739
8740 2004-03-16  Richard Hult  <richard@imendio.com>
8741
8742         * bus/activation.c: (bus_activation_service_created),
8743         (bus_activation_send_pending_auto_activation_messages),
8744         (bus_activation_activate_service):
8745         * bus/activation.h:
8746         * bus/dispatch.c: (bus_dispatch),
8747         (check_nonexistent_service_auto_activation),
8748         (check_service_auto_activated),
8749         (check_segfault_service_auto_activation),
8750         (check_existent_service_auto_activation), (bus_dispatch_test):
8751         * bus/driver.c: (bus_driver_handle_activate_service):
8752         * bus/services.c: (bus_registry_acquire_service):
8753         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8754         (dbus_message_get_auto_activation):
8755         * dbus/dbus-message.h:
8756         * dbus/dbus-protocol.h: Implement auto-activation.
8757         
8758         * doc/dbus-specification.xml: Add auto-activation to the spec.
8759
8760 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8761
8762         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8763         fix a bug with CUSTOM types.
8764
8765         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8766         a unit test for this bug (used to fail).
8767
8768 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8769
8770         * bus/activation.c:
8771         (babysitter_watch_callback): notify all pending activations waiting for
8772           the same exec that the activation failed.
8773         (bus_activation_activate_service): shortcut the activation if we 
8774           already waiting for the same executable to start up.
8775
8776 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8777
8778         * bus/activation.c: 
8779         - Added service file reloading. 
8780           Each service files directory is kept in an hash table in 
8781           BusActivation and each BusActivationEntry knows what .service-file it
8782           was read from. So when you try to activate a service the bus will 
8783           check if it's been updated, removed or if new .service-files has 
8784           been installed.
8785         - Test code at the bottom for the service file reloading.
8786         * bus/test-main.c: (main):
8787         * bus/test.h:
8788         - added service reloading test.
8789         * dbus/dbus-sysdeps.c: 
8790         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8791
8792 2004-03-08  Michael Meeks  <michael@ximian.com>
8793
8794         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8795         bail immediately if disconnected, to avoid busy loop.
8796
8797         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8798         cleanup cut/paste/inefficiency.
8799
8800 2004-03-01  David Zeuthen  <david@fubar.dk>
8801
8802         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8803         bug where args were used twice. This bug resulted in a segfault
8804         on a Debian/PPC system when starting the messagebus daemon. Include
8805         dbus-sysdeps.h for DBUS_VA_COPY
8806
8807         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8808
8809         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8810         appropriate va_copy implementation. From GLib
8811         
8812 2004-02-24  Joe Shaw  <joe@ximian.com>
8813
8814         * bus/services.c (bus_registry_acquire_service): We need to pass
8815         in the service name to dbus_set_error() to prevent a crash.
8816
8817 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8818
8819         * AUTHORS: Reveal my True identity.
8820
8821 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8822
8823         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8824         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8825
8826 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8827
8828         * doc/TODO: Added not about better error check of configuration files.
8829
8830 2003-12-02  Richard Hult  <richard@imendio.com>
8831
8832         * Update AFL version to 2.0 throughout the source files to reflect
8833         the update that was done a while ago.
8834
8835 2003-12-02  Richard Hult  <richard@imendio.com>
8836
8837         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8838         wrote_dict_key to FALSE on the iter that the dict is appended to,
8839         just like when appending other types. Fixes a bug where a dict
8840         couldn't be put inside a dict.
8841         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8842         (message_iter_test, _dbus_message_test): Add test case for dict
8843         inside dict.
8844
8845 2003-12-01  David Zeuthen  <david@fubar.dk>
8846
8847         * python/dbus.py: Add the actual message when calling the reciever
8848         of a signal such that parameters can be inspected. Add the method
8849         remove_signal_receiver
8850         
8851 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8852
8853         * bus/*.[ch]:
8854         * dbus/*.[ch]:
8855         * glib/*.[ch]: Made ref functions return the pointer
8856
8857 2003-11-25  Zack Rusin  <zack@kde.org>
8858
8859         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8860
8861         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8862         wrappers,
8863
8864         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8865         the Integrator and to better fit with the server,
8866
8867 2003-11-24  Zack Rusin  <zack@kde.org>
8868
8869         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8870         the integrator handles it now
8871
8872         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8873         since QTimer wasn't really meant to be used the way DBusTimeout is
8874
8875 2003-11-24  Zack Rusin  <zack@kde.org>
8876
8877         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8878         Integrator class which integrates D-BUS with the Qt event loop,
8879
8880         * qt/connection.h, qt/connection.cpp: Move all the code which
8881         was dealing with D-BUS integration to the Integrator class,
8882         and start using Integrator,
8883
8884 2003-11-23  Zack Rusin  <zack@kde.org>
8885
8886         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8887         wrapper
8888
8889         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8890         switching namespaces to DBusQt, reworking the class,
8891
8892         * Makefile.cvs: switching dependencies so that it matches KDE 
8893         schematics,
8894         
8895         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8896         the library
8897
8898 2003-11-19  Havoc Pennington  <hp@redhat.com>
8899
8900         * NEWS: update
8901
8902         * configure.in: bump version to 0.20
8903
8904         * configure.in (have_qt): add yet another place to look for qt
8905         (someone hand trolltech a .pc file...)
8906
8907 2003-11-01  Havoc Pennington  <hp@redhat.com>
8908
8909         * doc/dbus-specification.xml: add state machine docs on the auth
8910         protocol; just a first draft, I'm sure it's wrong.      
8911
8912 2003-10-28  David Zeuthen  <david@fubar.dk>
8913
8914         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8915         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8916         
8917 2003-10-28  Havoc Pennington  <hp@redhat.com>
8918
8919         * dbus/dbus-message.c (get_next_field): delete unused function
8920
8921 2003-10-28  Havoc Pennington  <hp@redhat.com>
8922
8923         * bus/expirelist.c (do_expiration_with_current_time): detect
8924         failure of the expire_func due to OOM
8925
8926         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8927
8928         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8929         NoReply error that's now created by the bus when the service exits
8930
8931 2003-10-28  Havoc Pennington  <hp@redhat.com>
8932
8933         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8934         tests for set_path, set_interface, set_member, etc.
8935
8936         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8937
8938         * dbus/dbus-message.c (set_string_field): always just delete and
8939         re-append the field; accept NULL for deletion
8940         (re_align_fields_recurse): reimplement
8941         
8942 2003-10-26  Havoc Pennington  <hp@redhat.com>
8943
8944         * dbus/dbus-connection.c: fix docs to properly describe the
8945         disconnected message
8946         (_dbus_connection_notify_disconnected): remove this function; 
8947         we can't synchronously add the disconnected message, we have to 
8948         do it after we've queued any remaining real messages
8949         (_dbus_connection_get_dispatch_status_unlocked): queue the
8950         disconnect message only if the transport has finished queueing all
8951         its real messages and is disconnected.
8952         (dbus_connection_disconnect): update the dispatch status here
8953
8954 2003-10-22  Havoc Pennington  <hp@redhat.com>
8955
8956         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8957
8958         * bus/connection.c (bus_transaction_send_from_driver): set the
8959         destination to the connection's base service
8960
8961 2003-10-20  Havoc Pennington  <hp@redhat.com>
8962
8963         hmm, make check is currently not passing.
8964         
8965         * doc/dbus-specification.xml: add requirement that custom type
8966         names follow the same rules as interface names.
8967
8968         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8969         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8970         'map'
8971
8972         * doc/dbus-specification.xml: update type codes to match
8973         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8974         CUSTOM. Add type OBJECT_PATH to the spec.
8975
8976 2003-10-17  Havoc Pennington  <hp@redhat.com>
8977
8978         * bus/driver.c (create_unique_client_name): use "." as separator
8979         in base service names instead of '-'
8980
8981         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8982         byte at the end of the string
8983
8984         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8985         optimization macros since string validation seems to be a slow
8986         point.
8987         
8988         * doc/dbus-specification.xml: restrict valid
8989         service/interface/member/error names. Add test suite code for the
8990         name validation.
8991
8992         * dbus/dbus-string.c: limit service/interface/member/error names 
8993         to [0-9][A-Z][a-z]_
8994
8995         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8996         format arg to verbose spew
8997
8998         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8999         memory, return instead of g_error
9000
9001         * test/test-service.c (path_message_func): support emitting a
9002         signal on request
9003
9004         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9005         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9006         assuming the activation bus was the session bus so that services
9007         started manually will still register.
9008         (init_connections_unlocked): fix so that in OOM situation we get
9009         the same semantics when retrying the function
9010         
9011         * test/test-service.c (main): change to use path registration, to
9012         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9013         than DBUS_BUS_SESSION
9014
9015 2003-10-16  Havoc Pennington  <hp@redhat.com>
9016
9017         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9018
9019         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9020         coverage of the tests
9021         (coverage-report.txt): don't move the .da and .bbg files around
9022
9023 2003-10-16  Havoc Pennington  <hp@redhat.com>
9024
9025         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9026         to put there
9027
9028 2003-10-16  Havoc Pennington  <hp@redhat.com>
9029
9030         * bus/connection.c (bus_pending_reply_expired): either cancel or
9031         execute, not both
9032         (bus_connections_check_reply): use unlink, not remove_link, as we
9033         don't want to free the link; fixes double free mess
9034
9035         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9036         where no reply was received
9037
9038         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9039         fix a refcount leak
9040
9041         * bus/signals.c (match_rule_matches): add special cases for the
9042         bus driver, so you can match on sender/destination for it.
9043
9044         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9045         DBUS_PRINT_BACKTRACE is set
9046
9047         * dbus/dbus-internals.c: add pid to assertion failure messages
9048
9049         * dbus/dbus-connection.c: add message type code to the debug spew
9050
9051         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9052         sender=foo not service=foo
9053
9054         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9055         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9056         DBUS_ACTIVATION_ADDRESS instead
9057
9058         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9059         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9060
9061         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9062         context struct
9063
9064         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9065         (dbus_message_iter_get_object_path_array): new function (half
9066         finished, disabled for the moment)
9067         
9068         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9069         DBUS_MESSAGE_TYPE_ERROR
9070
9071         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9072         avoid redirecting stderr to /dev/null
9073         (babysit): close stdin if not doing the "exit_with_session" thing
9074
9075         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9076         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9077         stdout/stdin, so things don't get confused
9078         
9079         * bus/system.conf.in: fix to allow replies, I modified .conf
9080         instead of .conf.in again.
9081
9082 2003-10-14  David Zeuthen  <david@fubar.dk>
9083
9084         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9085         argtype to arg_type when raising unknown arg type exception.
9086         Changed type list to reflect the changes in dbus-protocol.h so 
9087         the bindings actually work.
9088
9089 2003-10-14  Havoc Pennington  <hp@redhat.com>
9090
9091         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9092         to have a bug keeping it from outputting the .da files sometimes
9093         (string_get_string): don't append garbage nul bytes to the string.
9094
9095 2003-10-15  Seth Nickell  <seth@gnome.org>
9096
9097         * python/Makefile.am:
9098
9099         Include dbus_h_wrapper.h in the dist tarball.
9100
9101 2003-10-14  Havoc Pennington  <hp@redhat.com>
9102
9103         * bus/bus.c (bus_context_check_security_policy): revamp this to
9104         work more sanely with new policy-based requested reply setup
9105
9106         * bus/connection.c (bus_transaction_send_from_driver): set bus
9107         driver messages as no reply
9108
9109         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9110         requested_reply attribute on allow/deny rules
9111
9112         * bus/system.conf: add <allow requested_reply="true"/>
9113
9114         * bus/driver.c (bus_driver_handle_message): fix check for replies
9115         sent to the bus driver, which was backward. How did this ever work
9116         at all though? I think I'm missing something.
9117
9118         * dbus/dbus-message.c (decode_header_data): require error and
9119         method return messages to have a reply serial field to be valid
9120         (_dbus_message_loader_queue_messages): break up this function;
9121         validate that reply serial and plain serial are nonzero; 
9122         clean up the OOM/error handling.
9123         (get_uint_field): don't return -1 from this
9124         (dbus_message_create_header): fix signed/unsigned bug
9125
9126         * bus/connection.c (bus_connections_expect_reply): save serial of
9127         the incoming message, not reply serial
9128
9129 2003-10-14  Havoc Pennington  <hp@redhat.com>
9130
9131         * bus/connection.c: implement pending reply tracking using
9132         BusExpireList
9133
9134         * bus/bus.c (bus_context_check_security_policy): verify that a
9135         reply is pending in order to allow a reply to be sent. Deny 
9136         messages of unknown type.
9137
9138         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9139
9140         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9141         (bus_context_get_reply_timeout): new
9142
9143 2003-10-13  Seth Nickell  <seth@gnome.org>
9144
9145         * python/Makefile.am:
9146
9147         Pass "make distcheck": remove a couple files from DIST_FILES
9148         that weren't included in the final version.
9149
9150 2003-10-12  Havoc Pennington  <hp@pobox.com>
9151
9152         Added test code that 1) starts an actual bus daemon and 2) uses
9153         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9154         more testing possible, but this is the basic framework.
9155         
9156         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9157         empty proxy lists from the proxy list hash
9158
9159         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9160         couple of return_if_fail checks
9161
9162         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9163         to allocate, so everything is cleared to NULL as it should be.
9164
9165         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9166         source as data to dbus_connection_set_timeout_functions() as the 
9167         timeout functions expected
9168
9169         * test/glib/run-test.sh: add a little script to start up a message
9170         bus and run tests using it
9171
9172         * tools/dbus-launch.1: updates
9173
9174         * tools/dbus-launch.c (main): add --config-file option
9175
9176         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9177         that could never be reached.
9178
9179         * dbus/dbus-message.c (dbus_message_new_method_return) 
9180         (dbus_message_new_error, dbus_message_new_signal): set the
9181         no-reply-expected flag on all these. Redundant, but may
9182         as well be consistent.
9183
9184 2003-10-11  Havoc Pennington  <hp@pobox.com>
9185
9186         * test/decode-gcov.c (function_solve_graph): make broken block
9187         graph a nonfatal error since it seems to be broken. Need to debug
9188         this.
9189
9190         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9191         can't just check type > INVALID < LAST anymore
9192
9193         * dbus/dbus-message.c (dbus_message_get_signature): new function
9194         (dbus_message_has_signature): new function
9195         (struct DBusMessage): add signature field (right now it isn't sent
9196         over the wire, just generated on the fly)
9197         (dbus_message_copy): copy the signature, and init strings to
9198         proper length to avoid some reallocs
9199         (dbus_message_iter_init_array_iterator): return void, since it
9200         can't fail
9201         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9202         (_dbus_message_loader_queue_messages): add silly temporary hack to
9203         fill in message->signature on load
9204
9205         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9206         characters, so they are relatively human-readable.
9207
9208 2003-10-11  Havoc Pennington  <hp@pobox.com>
9209
9210         * dbus/dbus-message.c (_dbus_message_test): add more test
9211         coverage, but #if 0 for now since they uncover a bug 
9212         not fixed yet; I think in re_align_field_recurse()
9213         (re_align_field_recurse): add FIXME about broken assertion
9214
9215         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9216
9217         * bus/connection.c: share a couple code bits with expirelist.c
9218
9219         * bus/expirelist.h, bus/expirelist.c: implement a generic
9220         expire-items-after-N-seconds facility, was going to share between
9221         expiring connections and replies, decided not to use for expiring
9222         connections for now.
9223
9224         * COPYING: include AFL 2.0 (still need to change all the file headers)
9225
9226 2003-10-09  Havoc Pennington  <hp@redhat.com>
9227
9228         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9229         gcc 3.3. Not that we do anything about it yet.
9230
9231         * bus/signals.c (bus_match_rule_parse): impose max length on the
9232         match rule text
9233
9234         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9235
9236 2003-10-09  Havoc Pennington  <hp@redhat.com>
9237
9238         Make matching rules theoretically work (add parser).
9239         
9240         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9241         the case where destination is explicitly specified as bus driver
9242         and someone else is eavesdropping.
9243         
9244         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9245         definition of eavesdropping and assertion
9246
9247         * tools/dbus-send.c (main): use dbus_message_type_from_string
9248
9249         * bus/signals.c (bus_match_rule_parse): implement
9250
9251         * dbus/dbus-message.c (dbus_message_type_from_string): new
9252
9253         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9254
9255 2003-10-02  Havoc Pennington  <hp@pobox.com>
9256
9257         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9258         dbus_gproxy_oneway_call
9259
9260         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9261         (dbus_server_setup_with_g_main): fix to allow calling them more
9262         than once on the same args
9263         (dbus_bus_get_with_g_main): new function
9264
9265 2003-10-02  Havoc Pennington  <hp@redhat.com>
9266
9267         * doc/dbus-tutorial.xml: write some stuff
9268
9269 2003-09-29  Havoc Pennington  <hp@pobox.com>
9270
9271         * configure.in: split checks for Doxygen from XML docs, check for
9272         xmlto
9273
9274         * doc/Makefile.am: XML-ify all the docs, and add a blank
9275         dbus-tutorial.xml
9276
9277 2003-09-29  Havoc Pennington  <hp@pobox.com>
9278
9279         * Merge dbus-object-names branch. To see the entire patch 
9280         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9281         it's huuuuge though.
9282         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9283         
9284 2003-09-28  Havoc Pennington  <hp@pobox.com>
9285
9286         * HACKING: update to reflect new server
9287
9288 2003-09-26  Seth Nickell  <seth@gnome.org>
9289
9290         * python/dbus.py:
9291         * python/examples/example-signals.py:
9292
9293         Start implementing some notions of signals. The API
9294         is really terrible, but they sort of work (with the
9295         exception of being able to filter by service, and to
9296         transmit signals *as* a particular service). Need to
9297         figure out how to make messages come from the service
9298         we registered :-(
9299         
9300         * python/dbus_bindings.pyx.in:
9301
9302         Removed duplicate message_handler callbacks.
9303         
9304 2003-09-25  Havoc Pennington  <hp@redhat.com>
9305
9306         * bus/session.conf.in: fix my mess
9307
9308 2003-09-25  Havoc Pennington  <hp@pobox.com>
9309
9310         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9311
9312 2003-09-25  Seth Nickell  <seth@gnome.org>
9313
9314         * python/examples/example-service.py:
9315
9316         Johan notices complete wrong code in example-service, but
9317         completely wrong in a way that works exactly the same (!).
9318         Johan is confused, how could this possibly work? Example
9319         code fails to serve purpose of making things clear.
9320         Seth fixes.
9321
9322 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9323
9324         * doc/dbus-specification.sgml: don't require header fields
9325         to be 4-byte aligned and specify that fields should be
9326         distinguished from padding by the fact that zero is not
9327         a valid field name.
9328         
9329         * doc/TODO: remove re-alignment item and add item to doc
9330         the OBJECT_PATH type.
9331         
9332         * dbus/dbus-message.c:
9333         (HeaderField): rename the original member to value_offset
9334         and introduce a name_offset member to keep track of where
9335         the field actually begins.
9336         (adjust_field_offsets): remove.
9337         (append_int_field), (append_uint_field),
9338         (append_string_field): don't align the start of the header
9339         field to a 4-byte boundary.
9340         (get_next_field): impl finding the next marhsalled field
9341         after a given field.
9342         (re_align_field_recurse): impl re-aligning a number of
9343         already marshalled fields.
9344         (delete_field): impl deleting a field of any type and
9345         re-aligning any following fields.
9346         (delete_int_or_uint_field), (delete_string_field): remove.
9347         (set_int_field), (set_uint_field): no need to re-check
9348         that we have the correct type for the field.
9349         (set_string_field): ditto and impl re-aligning any
9350         following fields.
9351         (decode_header_data): update to take into account that
9352         the fields aren't 4-byte aligned any more and the new
9353         way to distinguish padding from header fields. Also,
9354         don't exit when there is too much header padding.
9355         (process_test_subdir): print the directory.
9356         (_dbus_message_test): add test to make sure a following
9357         field is re-aligned correctly after field deletion.
9358         
9359         * dbus/dbus-string.[ch]:
9360         (_dbus_string_insert_bytes): rename from insert_byte and
9361         allow the insert of multiple bytes.
9362         (_dbus_string_test): test inserting multiple bytes.
9363
9364         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9365         warning note to docs about having to re-align any
9366         marshalled values following the string.
9367         
9368         * dbus/dbus-message-builder.c:
9369         (append_string_field), (_dbus_message_data_load):
9370         don't align the header field.
9371         
9372         * dbus/dbus-auth.c: (process_test_subdir): print the
9373         directory.
9374         
9375         * test/break-loader.c: (randomly_add_one_byte): upd. for
9376         insert_byte change.
9377         
9378         * test/data/invalid-messages/bad-header-field-alignment.message:
9379         new test case.
9380         
9381         * test/data/valid-messages/unknown-header-field.message: shove
9382         a dict in the unknown field.
9383
9384 2003-09-25  Seth Nickell  <seth@gnome.org>
9385
9386         * python/dbus.py:
9387         * python/dbus_bindings.pyx.in:
9388
9389         Handle return values.
9390         
9391         * python/examples/example-client.py:
9392         * python/examples/example-service.py:
9393
9394         Pass back return values from the service to the client.
9395         
9396 2003-09-24  Seth Nickell  <seth@gnome.org>
9397
9398         * python/dbus.py:
9399
9400         Connect Object methods (when you are sharing an object) up... pass
9401         in a list of methods to be shared. Sharing all the methods just
9402         worked out too weird. You can now create nice Services over the
9403         DBus in Python. :-)
9404         
9405         * python/dbus_bindings.pyx.in:
9406
9407         Keep references to user_data tuples passed into C functions so 
9408         Python doesn't garbage collect on us.
9409
9410         Implement MethodReturn and Error subclasses of Message for creating
9411         DBusMessage's of those types.
9412         
9413         * python/examples/example-client.py:
9414         * python/examples/example-service.py:
9415
9416         Simple example code showing both how create DBus services and objects,
9417         and how to use them.
9418
9419 2003-09-23  Havoc Pennington  <hp@pobox.com>
9420
9421         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9422
9423 2003-09-23  Havoc Pennington  <hp@redhat.com>
9424
9425         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9426         (dbus_gproxy_disconnect_signal): implement
9427         (dbus_gproxy_manager_remove_signal_match): implement
9428         (dbus_gproxy_manager_add_signal_match): implement
9429         (dbus_gproxy_oneway_call): implement
9430
9431 2003-09-23  Havoc Pennington  <hp@pobox.com>
9432
9433         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9434         subclass. This means dropping the transparent thread safety of the
9435         proxy; you now need a separate proxy per-thread, or your own
9436         locking on the proxy. Probably right anyway.
9437         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9438
9439 2003-09-22  Havoc Pennington  <hp@redhat.com>
9440
9441         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9442
9443 2003-09-21  Seth Nickell  <seth@gnome.org>
9444
9445         First checkin of the Python bindings.
9446         
9447         * python/.cvsignore:
9448         * python/Makefile.am:
9449         * python/dbus_bindings.pyx.in:
9450         * python/dbus_h_wrapper.h:
9451
9452         Pieces for Pyrex to operate on, building a dbus_bindings.so
9453         python module for low-level access to the DBus APIs.
9454         
9455         * python/dbus.py:
9456
9457         High-level Python module for accessing DBus objects.
9458
9459         * configure.in:
9460         * Makefile.am:
9461
9462         Build stuff for the python bindings.
9463
9464         * acinclude.m4:
9465
9466         Extra macro needed for finding the Python C header files.
9467
9468 2003-09-21  Havoc Pennington  <hp@pobox.com>
9469
9470         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9471         implementing the proxy manager, didn't get very far.
9472
9473         * dbus/dbus-bus.c (dbus_bus_add_match): new
9474         (dbus_bus_remove_match): new
9475
9476         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9477         path_name argument; adjust the other not-yet-implemented 
9478         gproxy constructors to be what I think they should be.
9479
9480 2003-09-21  Havoc Pennington  <hp@pobox.com>
9481
9482         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9483         by default for message bus connections.
9484
9485         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9486         exit_on_disconnect flag is set and we process the disconnected
9487         signal.
9488         (dbus_connection_set_exit_on_disconnect): new function
9489
9490 2003-09-21  Havoc Pennington  <hp@pobox.com>
9491
9492         Get matching rules mostly working in the bus; only actually
9493         parsing the rule text remains. However, the client side of
9494         "signal connections" hasn't been started, this patch is only the
9495         bus side.
9496         
9497         * dbus/dispatch.c: fix for the matching rules changes
9498         
9499         * bus/driver.c (bus_driver_handle_remove_match)
9500         (bus_driver_handle_add_match): send an ack reply from these
9501         method calls
9502
9503         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9504         arguments, reported by Seth Nickell
9505
9506         * bus/config-parser.c (append_rule_from_element): support
9507         eavesdrop=true|false attribute on policies so match rules 
9508         can be prevented from snooping on the system bus.
9509
9510         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9511         and "destination" in attribute names; fix some docs bugs; 
9512         add eavesdrop=true|false attribute
9513
9514         * bus/driver.c (bus_driver_handle_add_match)
9515         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9516         messages
9517
9518         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9519         rid of broadcast service concept, signals are just always broadcast
9520
9521         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9522         mostly implement matching rules stuff (currently only exposed as signal
9523         connections)
9524
9525 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9526
9527         * doc/dbus-specification.sgml: Change the header field name
9528         to be an enum and update the rest of the spec to reference
9529         the fields using the conventinal name.
9530
9531         * dbus/dbus-protocol.h: update to reflect the spec.
9532
9533         * doc/TODO: add item to remove the 4 byte alignment requirement.
9534         
9535         * dbus/dbus-message.c: Remove the code to generalise the
9536         header/body length and serial number header fields as named
9537         header fields so we can reference field names using the 
9538         protocol values.
9539         (append_int_field), (append_uint_field), (append_string_field):
9540         Append the field name as a byte rather than four chars.
9541         (delete_int_or_uint_field), (delete_string_field): reflect the
9542         fact that the field name and typecode now occupy 4 bytes instead
9543         of 8.
9544         (decode_string_field), (decode_header_data): update to reflect
9545         protocol changes and move the field specific encoding from
9546         decode_string_field() back into decode_header_data().
9547         
9548         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9549         Add utility to aid debugging.
9550         
9551         * dbus/dbus-message-builder.c:
9552         (append_string_field), (_dbus_message_data_load): Update to
9553         reflect protocol changes; Change the FIELD_NAME directive
9554         to HEADER_FIELD and allow it to take the field's conventional
9555         name rather than the actual value.
9556         
9557         * test/data/*/*.message: Update to use HEADER_FIELD instead
9558         of FIELD_NAME; Always align the header on an 8 byte boundary
9559         *before* updating the header length.
9560
9561 2003-09-15  Havoc Pennington  <hp@pobox.com>
9562
9563         * dbus/dbus-pending-call.c: add the get/set object data
9564         boilerplate as for DBusConnection, etc. Use generic object data
9565         for the notify callback.
9566
9567         * glib/dbus-gparser.c (parse_node): parse child nodes
9568
9569         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9570         
9571         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9572         contain functions shared between the convenience lib and the
9573         installed lib
9574
9575         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9576         -export-symbols-regex to the GLib library
9577
9578         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9579         fix the locking in here, and add a default handler for
9580         Introspect() that just returns sub-nodes.
9581
9582 2003-09-14  Havoc Pennington  <hp@pobox.com>
9583
9584         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9585         rather than gfoo consistent
9586
9587         * glib/dbus-gproxy.h: delete for now, move contents to
9588         dbus-glib.h, because the include files don't work right since we
9589         aren't in the dbus/ subdir.
9590         
9591         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9592         (dbus_gproxy_end_call): finish
9593         (dbus_gproxy_begin_call): finish
9594
9595         * glib/dbus-gmain.c (dbus_set_g_error): new
9596
9597         * glib/dbus-gobject.c (handle_introspect): include information
9598         about child nodes in the introspection
9599
9600         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9601         function to help in implementation of introspection
9602
9603         * dbus/dbus-object-tree.c
9604         (_dbus_object_tree_list_registered_and_unlock): new function
9605
9606 2003-09-12  Havoc Pennington  <hp@pobox.com>
9607
9608         * glib/dbus-gidl.h: add common base class for all the foo_info
9609         types
9610
9611         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9612         similar to kdcop
9613
9614         * test/Makefile.am: try test srcdir -ef . in addition to test
9615         srcdir = ., one of them should work (yeah lame)
9616         
9617         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9618         library
9619         
9620         * glib/dbus-gparser.h: make description_load routines return
9621         NodeInfo* not Parser*
9622
9623         * Makefile.am (SUBDIRS): build test dir after all library dirs
9624
9625         * configure.in: add GTK+ detection
9626
9627 2003-09-07  Havoc Pennington  <hp@pobox.com>
9628
9629         * Make Doxygen contented.
9630
9631 2003-09-07  Havoc Pennington  <hp@pobox.com>
9632
9633         * doc/dbus-specification.sgml: more updates
9634
9635 2003-09-06  Havoc Pennington  <hp@pobox.com>
9636
9637         * doc/dbus-specification.sgml: partial updates
9638
9639         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9640         zillionth time; hopefully I edited the right file this time.
9641
9642         * bus/config-parser.c (append_rule_from_element): support
9643         send_type, send_path, receive_type, receive_path
9644
9645         * bus/policy.c: add message type and path to the list of things
9646         that can be "firewalled"
9647
9648 2003-09-06  Havoc Pennington  <hp@pobox.com>
9649
9650         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9651         (dbus_connection_register_object_path): make this not handle
9652         messages to paths below the given path
9653
9654 2003-09-03  Havoc Pennington  <hp@pobox.com>
9655
9656         * test/glib/Makefile.am: add this with random glib-linked test
9657         programs
9658
9659         * glib/Makefile.am: remove the random test programs from here,
9660         leave only the unit tests
9661
9662         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9663         uscore/javacaps conversion, and fix     
9664         (get_object_property, set_object_property): change to .NET
9665         convention for mapping props to methods, set_FooBar/get_FooBar, 
9666         since one language has such a convention we may as well copy it. 
9667         Plus real methods in either getFooBar or get_foo_bar style won't 
9668         collide with this convention.
9669
9670 2003-09-01  Havoc Pennington  <hp@pobox.com>
9671
9672         * glib/dbus-gparser.c: implement
9673
9674         * glib/dbus-gobject.c: start implementing skeletons support
9675
9676         * configure.in: when disabling checks/assert, also define
9677         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9678
9679 2003-09-01  Havoc Pennington  <hp@pobox.com>
9680
9681         * glib/Makefile.am: rearrange a bunch of files and get "make
9682         check" framework set up
9683
9684 2003-08-31  Havoc Pennington  <hp@pobox.com>
9685
9686         * fix build with --disable-tests
9687
9688 2003-08-30  Havoc Pennington  <hp@pobox.com>
9689
9690         * dbus/dbus-connection.c: purge DBusMessageHandler
9691
9692         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9693         use callbacks everywhere
9694
9695 2003-08-30  Havoc Pennington  <hp@pobox.com>
9696
9697         * test/data/valid-config-files/system.d/test.conf: change to 
9698         root for the user so warnings don't get printed
9699
9700         * dbus/dbus-message.c: add dbus_message_get_path,
9701         dbus_message_set_path
9702         
9703         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9704         dispatching to a path
9705
9706         * dbus/dbus-string.c (_dbus_string_validate_path): add
9707
9708         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9709         (_dbus_marshal_object_path): implement
9710
9711         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9712         to contain the path to the target object
9713         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9714         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9715
9716 2003-08-30  Havoc Pennington  <hp@pobox.com>
9717
9718         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9719
9720 2003-08-29  Havoc Pennington  <hp@pobox.com>
9721
9722         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9723         registered
9724         (struct DBusObjectSubtree): shrink this
9725         a lot, since we may have a lot of them
9726         (_dbus_object_tree_free_all_unlocked): implement
9727         (_dbus_object_tree_dispatch_and_unlock): implement
9728
9729 2003-08-29  Havoc Pennington  <hp@pobox.com>
9730
9731         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9732
9733 2003-08-28  Havoc Pennington  <hp@pobox.com>
9734
9735         purge DBusObjectID
9736         
9737         * dbus/dbus-connection.c: port to no ObjectID, create a
9738         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9739
9740         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9741         everything except UnregisterFunction and MessageFunction
9742         
9743         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9744         add DBUS_TYPE_OBJECT_PATH
9745         
9746         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9747         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9748         path-based object IDs
9749
9750 2003-08-25  Havoc Pennington  <hp@pobox.com>
9751
9752         Just noticed that dbus_message_test is hosed, I wonder when I
9753         broke that. I thought make check was passing earlier...
9754         
9755         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9756         container tree, will replace most of dbus-object-registry
9757
9758         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9759         screwup
9760
9761 2003-08-19  Havoc Pennington  <hp@pobox.com>
9762
9763         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9764         (dbus_message_is_error): fix this function
9765
9766         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9767         match
9768
9769         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9770         reflect clarified man page
9771         (bus_client_policy_check_can_send): ditto
9772         
9773         * bus/session.conf.in: fixup
9774
9775         * bus/system.conf.in: fixup
9776
9777 2003-08-18  Havoc Pennington  <hp@redhat.com>
9778
9779         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9780
9781         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9782         dumb bug created earlier (wrong order of args to
9783         decode_header_data())
9784         
9785         * tools/dbus-send.c: port
9786
9787         * tools/dbus-print-message.c (print_message): port
9788
9789         * test/data/*messages: port all messages over
9790         
9791         * dbus/dbus-message-builder.c: support including 
9792         message type
9793         
9794         * bus/driver.c: port over
9795         
9796         * bus/dispatch.c: port over to new stuff
9797
9798         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9799         rename disconnect signal to "Disconnected"
9800
9801 2003-08-17  Havoc Pennington  <hp@pobox.com>
9802
9803         This doesn't compile yet, but syncing up so I can hack on it from
9804         work. What are branches for if not broken code? ;-)
9805         
9806         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9807         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9808         DBUS_HEADER_FIELD_ERROR_NAME
9809         
9810         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9811         for the interface+member pairs
9812         (string_hash): change to use g_str_hash algorithm
9813         (find_direct_function, find_string_function): refactor these to
9814         share most code.
9815         
9816         * dbus/dbus-message.c: port all of this over to support 
9817         interface/member fields instead of name field
9818
9819         * dbus/dbus-object-registry.c: port over
9820         
9821         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9822         from _dbus_string_validate_name
9823
9824         * bus/dbus-daemon-1.1: change file format for the 
9825         <deny>/<allow> stuff to match new message naming scheme
9826
9827         * bus/policy.c: port over
9828
9829         * bus/config-parser.c: parse new format
9830         
9831 2003-08-16  Havoc Pennington  <hp@pobox.com>
9832
9833         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9834         broken assertion
9835
9836         * glib/dbus-gproxy.c: some hacking
9837
9838 2003-08-15  Havoc Pennington  <hp@redhat.com>
9839
9840         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9841
9842         * dbus/dbus-connection.c
9843         (dbus_connection_send_with_reply_and_block): factor out internals;
9844         change to convert any error replies to DBusError instead of 
9845         returning them as a message
9846
9847 2003-08-15  Havoc Pennington  <hp@pobox.com>
9848
9849         * dbus/dbus-connection.c, 
9850         dbus/dbus-pending-call.c: Finish the pending call stuff
9851
9852 2003-08-14  Havoc Pennington  <hp@redhat.com>
9853
9854         * dbus/dbus-pending-call.c: start on new object that will replace
9855         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9856         replies
9857
9858         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9859         with remote interfaces
9860
9861         * dbus/dbus-gidl.c: do the boring boilerplate in here
9862         
9863 2003-08-12  Havoc Pennington  <hp@pobox.com>
9864
9865         * bus/dispatch.c (bus_dispatch): make this return proper 
9866         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9867
9868         * dbus/dbus-errors.c (dbus_set_error): use
9869         _dbus_string_append_printf_valist
9870
9871         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9872         (_dbus_string_append_printf): new
9873
9874         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9875         UNKNOWN_METHOD
9876
9877         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9878         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9879         message is unhandled.
9880
9881 2003-08-11  Havoc Pennington  <hp@pobox.com>
9882
9883         * bus/test.c (client_disconnect_handler): change to return
9884         HANDLED (would have been REMOVE_MESSAGE)
9885
9886         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9887         HANDLED/NOT_YET_HANDLED instead of
9888         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9889         should be used.
9890
9891 2003-08-10  Havoc Pennington  <hp@pobox.com>
9892
9893         * tools/dbus-send.c (main): add --type argument, for now
9894         supporting only method_call and signal types.
9895
9896         * tools/dbus-print-message.c: print message type
9897
9898         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9899         init connection->objects
9900
9901         * doc/dbus-specification.sgml: fix sgml
9902
9903         * bus/*.c: port over to object-instance API changes
9904
9905         * test/test-service.c: ditto
9906         
9907         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9908         name, we will have to fix up the rest of the code to also handle
9909         this
9910         (dbus_message_new): generic message-creation call
9911         (set_string_field): allow appending name field
9912
9913 2003-08-06  Havoc Pennington  <hp@pobox.com>
9914
9915         * dbus/dbus-object-registry.c: implement signal connection 
9916         and dispatch
9917
9918         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9919
9920         * dbus/dbus-internals.c (_dbus_memdup): new function
9921
9922 2003-08-02  Havoc Pennington  <hp@pobox.com>
9923
9924         * dbus/dbus-message.c (dbus_message_get_no_reply)
9925         (dbus_message_set_no_reply): add these and remove
9926         set_is_error/get_is_error
9927
9928         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9929         remove the ERROR flag, since there's now an ERROR type
9930
9931 2003-08-01  Havoc Pennington  <hp@pobox.com>
9932
9933         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9934         implement
9935
9936         * dbus/dbus-message.c (dbus_message_get_type): new function
9937
9938         * doc/dbus-specification.sgml: add "type" byte to messages
9939
9940 2003-08-01  Havoc Pennington  <hp@pobox.com>
9941
9942         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9943         a message type enum to distinguish kinds of message
9944         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9945         that need not be replied to
9946
9947 2003-08-01  Havoc Pennington  <hp@pobox.com>
9948
9949         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9950         (unpack_8_octets): fix no-64-bit-int bug
9951
9952         * dbus/dbus-object-registry.c (validate_id): validate the 
9953         connection ID bits, not just the instance ID.
9954
9955         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9956         the connection-global 33 bits of the object ID
9957
9958         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9959         object ID in the new way
9960
9961         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9962         define server/client/instance bits.
9963
9964 2003-07-30  Havoc Pennington  <hp@pobox.com>
9965
9966         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9967         build
9968
9969 2003-07-13  Havoc Pennington  <hp@pobox.com>
9970
9971         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9972         fields to DBusObjectVTable and DBusObjectInfo
9973
9974 2003-07-12  Havoc Pennington  <hp@pobox.com>
9975
9976         * dbus/dbus-object-registry.c: implement unit test,
9977         fix bugs discovered in process
9978
9979         * dbus/dbus-connection.c: remove handler_table and
9980         register_handler(), add DBusObjectRegistry usage
9981
9982         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9983         (dbus_object_id_set_null): new functions
9984
9985 2003-07-08  Havoc Pennington  <hp@pobox.com>
9986
9987         * dbus/dbus-object.c: implement some of this
9988
9989         * dbus/dbus-object-registry.c
9990         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9991         param
9992         (_dbus_object_registry_new): handle OOM
9993
9994 2003-07-08  Havoc Pennington  <hp@pobox.com>
9995
9996         * dbus/dbus-object.h: sketch out an API for registering objects
9997         with a connection, that allows us to use as little as 24 bytes
9998         per object and lets application code represent an object in 
9999         any conceivable way.
10000
10001         * dbus/dbus-object-registry.c: implement the hard bits of the
10002         DBusConnection aspect of object API. Not yet wired up.
10003         
10004 2003-07-06  Havoc Pennington  <hp@pobox.com>
10005
10006         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10007         (_dbus_marshal_object_id): new
10008         (_dbus_demarshal_object_id): new
10009         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10010         consolidate identical switch cases. Don't conditionalize handling
10011         of DBUS_TYPE_UINT64, need to handle the type always.
10012         (_dbus_marshal_validate_arg): consolidate identical cases, and
10013         handle DBUS_TYPE_OBJECT_ID
10014
10015         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10016
10017         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10018
10019 2003-09-28  Havoc Pennington  <hp@pobox.com>
10020
10021         * real 0.13 release
10022
10023 2003-09-28  Havoc Pennington  <hp@pobox.com>
10024
10025         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10026         to work with Debian db2html
10027
10028 2003-09-28  Havoc Pennington  <hp@pobox.com>
10029
10030         * configure.in: 0.13
10031
10032         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10033         stylesheet-images for benefit of Debian
10034         
10035         Change back to using filesystem-linked sockets for the system
10036         bus, so only root can create the default system bus address.
10037         
10038         * bus/system.conf.in: change to use
10039         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10040
10041         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10042         from here.
10043
10044         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10045         here, and AC_DEFINE DBUS_SYSTEM_PATH
10046
10047 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10048
10049         * doc/TODO:
10050         * doc/busconfig.dtd:
10051         Add busconfig DTD.
10052         
10053 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10054
10055         * doc/dbus-specification.sgml:
10056         Add activation reply values.
10057         
10058 2003-08-05  Havoc Pennington  <hp@redhat.com>
10059
10060         * configure.in: 0.12
10061
10062 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10063
10064         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10065         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10066         (add_watch), (remove_watch), (create_source):
10067         Refcount fds, fixes some reentrancy issues.
10068         
10069 2003-07-30  Havoc Pennington  <hp@redhat.com>
10070
10071         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10072         bus address to be abstract if we have abstract sockets
10073
10074         * NEWS: update
10075
10076 2003-07-28  Havoc Pennington  <hp@redhat.com>
10077
10078         * bus/messagebus.in: fix to avoid processname/servicename 
10079         confusion, from Michael Kearey
10080         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10081         
10082 2003-07-23  Havoc Pennington  <hp@pobox.com>
10083
10084         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10085         fix from Andy Hanton to remove broken "+1"
10086
10087 2003-07-16  Havoc Pennington  <hp@pobox.com>
10088
10089         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10090         babysitter process, as suggested by Thomas Leonard, so 
10091         an "eval `dbus-launch --exit-with-session`" will actually 
10092         return
10093
10094 2003-07-16  Havoc Pennington  <hp@pobox.com>
10095
10096         * configure.in: print out EXPANDED_* variables in the summary at
10097         the end; clean up the code that computes EXPANDED_ variables and
10098         get the ones using exec_prefix right. Should make things work
10099         when you build without --prefix
10100
10101 2003-06-29  Havoc Pennington  <hp@pobox.com>
10102
10103         * mono/Test.cs (class Test): fire up a main loop and run it
10104
10105         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10106         done once, the app has to do it
10107
10108 2003-06-26  Havoc Pennington  <hp@pobox.com>
10109
10110         * mono/Connection.cs: set up connection with the glib main loop
10111
10112 2003-07-01  Havoc Pennington  <hp@redhat.com>
10113
10114         * doc/dbus-specification.sgml: clarify the format of a type code,
10115         change suggested by Jim Blandy
10116
10117 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10118
10119         * doc/Makefile.am:
10120         * tools/Makefile.am: Don't assume srcdir == builddir.
10121
10122         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10123         the allocated block.
10124         (_dbus_memory_test): New function.
10125         * dbus/dbus-test.h: Add _dbus_memory_test ().
10126         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10127
10128         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10129         of %c%c%c%c.
10130         (dbus_message_new): Remove obsolete @todo.
10131
10132         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10133         (_dbus_marshal_set_uint64): Fix comment.
10134
10135         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10136         hardcode FIELD_REPLY_SERIAL.
10137
10138         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10139         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10140
10141         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10142         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10143
10144 2003-06-24  Havoc Pennington  <hp@pobox.com>
10145
10146         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10147
10148 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10149
10150         * configure.in:
10151         * gcj/.cvsignore:
10152         * gcj/Hello.java:
10153         * gcj/Makefile.am:
10154         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10155         * gcj/org/.cvsignore:
10156         * gcj/org/Makefile.am:
10157         * gcj/org/freedesktop/.cvsignore:
10158         * gcj/org/freedesktop/Makefile.am:
10159         * gcj/org/freedesktop/dbus/.cvsignore:
10160         * gcj/org/freedesktop/dbus/Makefile.am:
10161         * gcj/org/freedesktop/dbus/Message.java: (Message),
10162         (Message.Message):
10163         * gcj/org/freedesktop/dbus/natMessage.cc:
10164         Fix the build system.
10165
10166 2003-06-22  Havoc Pennington  <hp@pobox.com>
10167
10168         * mono/Connection.cs: add more bindings
10169
10170         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10171         more than once.
10172
10173 2003-06-22  Havoc Pennington  <hp@pobox.com>
10174
10175         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10176         Start wrapping more stuff.
10177
10178 2003-06-22  Havoc Pennington  <hp@pobox.com>
10179
10180         * mono/Message.cs: implement Message.Wrap() that ensures we only
10181         have a single C# wrapper per DBusMessage, assuming it works which
10182         it probably doesn't.
10183
10184         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10185         (dbus_message_free_data_slot): new
10186         (dbus_message_set_data): new
10187         (dbus_message_get_data): new
10188
10189 2003-06-22  Havoc Pennington  <hp@pobox.com>
10190
10191         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10192         (_dbus_data_slot_allocator_alloc): rework these to keep a
10193         reference count on each slot and automatically manage a global
10194         slot ID variable passed in by address
10195
10196         * bus/bus.c: convert to new dataslot API
10197
10198         * dbus/dbus-bus.c: convert to new dataslot API
10199
10200         * dbus/dbus-connection.c: convert to new dataslot API
10201
10202         * dbus/dbus-server.c: convert to new dataslot API
10203
10204         * glib/dbus-gmain.c: ditto
10205
10206         * bus/test.c: ditto
10207
10208         * bus/connection.c: ditto
10209
10210 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10211
10212         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10213         after the gcj checks so that the correct configuration tags
10214         will be added to libtool.
10215
10216         * dbus-glib-1.pc.in: No need to specify any includes since
10217         dbus-1.pc.in has those.
10218
10219 2003-06-22  Havoc Pennington  <hp@pobox.com>
10220
10221         * mono/*, gcj/*, configure.in, Makefile.am:
10222         Check in makefiles and subdirs for mono and gcj bindings.
10223         Neither binding actually exists, just trying to get through
10224         all the build and other boring bits.
10225
10226 2003-06-21  Philip Blundell  <philb@gnu.org>
10227
10228         * tools/dbus-monitor.1: Updated.
10229
10230         * tools/dbus-send.1: Likewise.
10231
10232 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10233
10234         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10235         for hangup and error after checking read so we won't discard
10236         pending data if both hangup and read are set.
10237
10238 2003-06-19  Philip Blundell  <philb@gnu.org>
10239
10240         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10241
10242         * tools/dbus-send.c: Accept both --system and --session.
10243
10244         * tools/dbus-monitor.c: Same here.
10245
10246 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10247
10248         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10249         from C++ (Patch by Miloslav Trmac).
10250
10251 2003-06-15  Joe Shaw  <joe@assbarn.com>
10252
10253         * configure.in: Check for socklen_t.
10254
10255         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10256
10257         * test/test-segfault.c: Add #include <sys/time.h>
10258
10259         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10260         dbus-launch needs it.
10261
10262 2003-06-09  Havoc Pennington  <hp@redhat.com>
10263
10264         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10265         SUN_LEN, it breaks abstract socket usage
10266
10267         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10268         starts of lines.
10269
10270 2003-06-04  Havoc Pennington  <hp@pobox.com>
10271
10272         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10273         using unix:abstract=/foo, and when listening in a tmpdir
10274         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10275
10276         * dbus/dbus-transport.c (_dbus_transport_open): support
10277         unix:abstract=/foo
10278
10279         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10280         support abstract sockets
10281
10282         * dbus/dbus-transport-unix.c
10283         (_dbus_transport_new_for_domain_socket): support abstract sockets
10284
10285         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10286         toggle as an argument, implement abstract namespace support
10287         (_dbus_listen_unix_socket): ditto
10288
10289         * configure.in: add --enable-abstract-sockets and implement
10290         a configure check for autodetection of the right value.
10291
10292 2003-06-01  Havoc Pennington  <hp@pobox.com>
10293
10294         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10295         in /tmp (though on Linux this will end up being useless,
10296         when we add abstract namespace support)
10297
10298         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10299         subst'ing it
10300
10301 2003-05-28  Colin Walters  <walters@verbum.org>
10302
10303         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10304
10305 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10306
10307         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10308
10309 2003-05-17  Colin Walters  <walters@gnu.org>
10310
10311         * tools/dbus-send.c: Don't exit with an error code if --help was
10312         passed.  Default to using the session bus instead of the system
10313         one.
10314
10315         * tools/dbus-launch.c: Ditto.
10316
10317         * tools/dbus-monitor.c: Ditto.
10318
10319         * tools/dbus-send.1: Update with new arguments.
10320
10321         * tools/dbus-launch.c: Emit code to export variables.  New
10322         arguments -s and -c to specify shell syntax, and a bit of code to
10323         autodetect syntax.  Also, allow specifying a program to run.
10324
10325         * tools/dbus-launch.1: Update with new arguments.
10326
10327         * tools/dbus-send.1: Ditto.
10328
10329         * tools/dbus-monitor.1: Ditto.
10330
10331 2003-05-17  Havoc Pennington  <hp@pobox.com>
10332
10333         * bus/config-parser.c (merge_included): merge in policies from
10334         child configuration file.
10335
10336         * bus/policy.c (bus_policy_merge): function to merge two policies
10337         together
10338
10339 2003-05-16  Havoc Pennington  <hp@redhat.com>
10340
10341         * dbus/dbus-connection.c: disable verbose lock spew
10342
10343         * tools/dbus-send.c: add --print-reply command line option
10344
10345         * tools/dbus-print-message.h (print_message): new util function
10346         shared by dbus-send and dbus-monitor
10347
10348         * tools/dbus-monitor.c (handler_func): exit on disconnect
10349
10350         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10351         disconnected, don't try to use the read_watch
10352
10353         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10354         so we can find this bug more easily
10355
10356 2003-05-16  Havoc Pennington  <hp@redhat.com>
10357
10358         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10359         NULL as DBusHashTable is annoyingly likely to do.
10360
10361 2003-05-16  Colin Walters  <walters@verbum.org>
10362
10363         * tools/dbus-monitor.c: Add --session argument and usage()
10364         function.
10365
10366         * tools/dbus-monitor.1: Update with new --session arg.
10367
10368         * bus/Makefile.am (install-data-hook): Create
10369         $(libdir)/dbus-1.0/services so that the session bus is happy.
10370
10371 2003-05-15  Havoc Pennington  <hp@redhat.com>
10372
10373         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10374         on non-x86. ifdef's are evil.
10375
10376 2003-05-15  Havoc Pennington  <hp@redhat.com>
10377
10378         * configure.in: 0.11
10379
10380         * NEWS: update
10381
10382         * bus/Makefile.am (initddir): apparently we are supposed to put
10383         init scripts in /etc/rc.d/init.d not /etc/init.d
10384
10385         * bus/Makefile.am: remove the "you must --enable-tests to make
10386         check" as it broke distcheck
10387
10388         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10389
10390 2003-05-13  James Willcox  <jwillcox@gnome.org>
10391
10392         * configure.in:
10393         * bus/activation.c: (bus_activation_service_created),
10394         (bus_activation_activate_service):
10395         * bus/driver.c: (bus_driver_send_service_deleted),
10396         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10397         (bus_driver_send_service_acquired),
10398         (bus_driver_send_welcome_message),
10399         (bus_driver_handle_list_services):
10400         * bus/session.conf.in:
10401         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10402         (dbus_bus_service_exists), (dbus_bus_activate_service):
10403         * dbus/dbus-bus.h:
10404
10405         Add some convenience API which lets you activate a service, and did a
10406         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10407         and dbus_message_get_args()
10408
10409 2003-05-11  Havoc Pennington  <hp@pobox.com>
10410
10411         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10412         calling _dbus_marshal_validate_arg() for every byte in a byte
10413         array, etc.
10414
10415         * dbus/dbus-message-handler.c: use atomic reference counting to
10416         reduce number of locks slightly; the global lock in here sucks
10417
10418         * dbus/dbus-connection.c
10419         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10420         update_dispatch_status that can be called with lock held; then use
10421         in a couple places to reduce locking/unlocking
10422         (dbus_connection_send): hold the lock over the whole function
10423         instead of acquiring it twice.
10424
10425         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10426
10427         * bus/connection.c (bus_connections_setup_connection): fix access
10428         to already-freed memory.
10429
10430         * dbus/dbus-connection.c: keep a little cache of linked list
10431         nodes, to avoid using the global linked list alloc lock in the
10432         normal send-message case. Instead we just use the connection lock
10433         that we already have to take.
10434
10435         * dbus/dbus-list.c (_dbus_list_find_last): new function
10436
10437         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10438         change to use a struct for the atomic type; fix docs,
10439         they return value before increment, not after increment.
10440
10441         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10442         (_dbus_string_append_8_aligned): new functions to try to
10443         microoptimize this operation.
10444         (reallocate_for_length): break this out of set_length(), to
10445         improve profile info, and also so we can consider inlining the
10446         set_length() part.
10447
10448         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10449         strings with some preallocation, cuts down on our calls to realloc
10450         a fair bit. Though if we can get the "move entire string to empty
10451         string" optimization below to kick in here, it would be better.
10452
10453         * dbus/dbus-string.c (_dbus_string_move): just call
10454         _dbus_string_move_len
10455         (_dbus_string_move_len): add a special case for moving
10456         an entire string into an empty string; we can just
10457         swap the string data instead of doing any reallocs.
10458         (_dbus_string_init_preallocated): new function
10459
10460 2003-05-11  Havoc Pennington  <hp@pobox.com>
10461
10462         Write a "test-profile" that does echo client-server with threads;
10463         profile reveals lock contention, memcpy/realloc of buffers, and
10464         UTF-8 validation as hot spots. 20% of lock contention eliminated
10465         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10466         contention is global mempool locks for GList and DBusList.
10467
10468         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10469         x86 implementation
10470
10471         * dbus/dbus-connection.c (struct DBusConnection): use
10472         dbus_atomic_t for the reference count
10473
10474         * dbus/dbus-message.c (struct DBusMessage): declare
10475         dbus_atomic_t values as volatile
10476
10477         * configure.in: code to detect ability to use atomic integer
10478         operations in assembly, from GLib patch
10479
10480         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10481         time, tired of it being wrong in threads and forked processes
10482
10483         * glib/test-profile.c: a little program to bounce messages back
10484         and forth between threads and eat CPU
10485
10486         * dbus/dbus-connection.c: add debug spew macros for debugging
10487         thread locks; include config.h at top; fix deadlock in
10488         dbus_connection_flush()
10489
10490 2003-05-08  Havoc Pennington  <hp@pobox.com>
10491
10492         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10493         data from getting written, and there wasn't a good reason to
10494         use _exit really.
10495
10496         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10497         dbus_verbose lines in test coverage
10498         (main): add list of functions sorted by # of untested blocks
10499         to the coverage report
10500
10501         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10502
10503         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10504
10505         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10506         extend test coverage
10507
10508         * test/data/auth/cancel.auth-script: test canceling an
10509         authentication
10510
10511         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10512         aren't used. in CVS history if we end up needing them.
10513
10514 2003-05-04  Havoc Pennington  <hp@pobox.com>
10515
10516         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10517         unit test
10518
10519         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10520         function, which assumed length was in # of strings, not bytes
10521
10522         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10523         missing coverage
10524
10525         * dbus/dbus-connection.c
10526         (_dbus_connection_queue_received_message): disable function for
10527         now, we are only using it in test mode
10528
10529         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10530         remove a mistaken FIXME
10531
10532 2003-05-04  Havoc Pennington  <hp@pobox.com>
10533
10534         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10535         unlock mutex on successful return, patch from Anders Gustafsson
10536
10537 2003-05-04  Havoc Pennington  <hp@pobox.com>
10538
10539         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10540         Anders Gustafsson
10541
10542 2003-05-04  Havoc Pennington  <hp@pobox.com>
10543
10544         * tools/dbus-launch.c: implement
10545
10546         * bus/main.c (main), bus/bus.c (bus_context_new):
10547         implement --print-pid and --fork
10548
10549 2003-05-03  Havoc Pennington  <hp@redhat.com>
10550
10551         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10552         the address had no value, and add to test suite. Fix and
10553         regression test from Miloslav Trmac
10554
10555 2003-05-03  Havoc Pennington  <hp@pobox.com>
10556
10557         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10558         watch is invalid when handled
10559
10560         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10561         dbus-launch utility to launch the bus from a shell script.  Didn't
10562         actually implement dbus-launch yet, it's just a placeholder still.
10563
10564 2003-05-03  Havoc Pennington  <hp@pobox.com>
10565
10566         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10567         daemon; also documents daemon config file, so replaces
10568         doc/config-file.txt. Corrected some stuff from config-file.txt in
10569         the process of moving it.
10570
10571 2003-05-03  Havoc Pennington  <hp@pobox.com>
10572
10573         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10574         add some man pages
10575
10576 2003-05-03  Colin Walters  <walters@verbum.org>
10577
10578         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10579         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10580
10581         * Makefile.am: Update to use new .pc versioning scheme.
10582
10583 2003-05-02  Havoc Pennington  <hp@redhat.com>
10584
10585         * bus/system.conf.in: allow send/receive to/from message bus
10586         service
10587
10588 2003-04-30  Havoc Pennington  <hp@redhat.com>
10589
10590         * configure.in: print a note when building with unit tests and
10591         without assertions
10592
10593 2003-04-30  Havoc Pennington  <hp@redhat.com>
10594
10595         * Makefile.am: add a check-local that complains if you didn't
10596         configure with --enable-tests
10597
10598 2003-04-29  Havoc Pennington  <hp@redhat.com>
10599
10600         * glib/dbus-gmain.c: docs cleanups
10601
10602         * dbus/dbus-types.h: add docs on int64 types
10603
10604         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10605         public API docs section
10606
10607 2003-04-29  Havoc Pennington  <hp@redhat.com>
10608
10609         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10610         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10611         parallel install API version, not with the D-BUS package version.
10612
10613         * HACKING: move some of README over here
10614
10615         * README: updates, and document API/ABI policy
10616
10617         * configure.in: reindentation
10618
10619 2003-04-29  Havoc Pennington  <hp@redhat.com>
10620
10621         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10622         to use this library" to be sure people have the right
10623         expectations.
10624
10625 2003-04-28  Havoc Pennington  <hp@redhat.com>
10626
10627         * configure.in: add --enable-docs which by default is auto yes if
10628         doxygen and db2html found, no otherwise; but can be forced on/off
10629
10630         * doc/Makefile.am: conditionalize whether to build docs on
10631         --enable-docs
10632
10633 2003-04-28  Havoc Pennington  <hp@redhat.com>
10634
10635         * configure.in: 0.10
10636
10637         * NEWS: update
10638
10639         * bus/system.conf.in: add <includedir>system.d</includedir>
10640
10641         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10642         username was provided but not uid
10643
10644         * bus/config-parser.c (struct BusConfigParser): keep track of
10645         whether the parser is toplevel or was included; change some
10646         of the error handling if it's included.
10647
10648 2003-04-27  Havoc Pennington  <hp@pobox.com>
10649
10650         Unbreak my code...
10651
10652         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10653         report correct status if we finish processing authentication
10654         inside this function.
10655
10656         * bus/activation.c (try_send_activation_failure): use
10657         bus_transaction_send_error_reply
10658
10659         * bus/connection.c (bus_connection_get_groups): return an error
10660         explaining the problem
10661
10662         * bus/bus.c (bus_context_check_security_policy): implement
10663         restriction here that inactive connections can only send the
10664         hello message. Also, allow bus driver to send anything to
10665         any recipient.
10666
10667         * bus/connection.c (bus_connection_complete): create the
10668         BusClientPolicy here instead of on-demand.
10669         (bus_connection_get_policy): don't return an error
10670
10671         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10672         sender field in message being replied to
10673
10674         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10675         causing it to return FALSE always
10676
10677         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10678         we checked sender rather than destination
10679
10680 2003-04-25  Havoc Pennington  <hp@redhat.com>
10681
10682         test suite is slightly hosed at the moment, will fix soon
10683
10684         * bus/connection.c (bus_connections_expire_incomplete): fix to
10685         properly disable the timeout when required
10686         (bus_connection_set_name): check whether we can remove incomplete
10687         connections timeout after we complete each connection.
10688
10689         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10690         probably still broken.
10691
10692         * bus/services.c (bus_registry_acquire_service): implement max
10693         number of services owned, and honor allow/deny rules on which
10694         services a connection can own.
10695
10696         * bus/connection.c (bus_connection_get_policy): report errors here
10697
10698         * bus/activation.c: implement limit on number of pending
10699         activations
10700
10701 2003-04-25  Havoc Pennington  <hp@redhat.com>
10702
10703         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10704         where we used >= 0 instead of != DBUS_UID_UNSET.
10705
10706 2003-04-25  Havoc Pennington  <hp@redhat.com>
10707
10708         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10709         were toggled without add/remove, fix from Anders Gustafsson
10710
10711 2003-04-24  Havoc Pennington  <hp@redhat.com>
10712
10713         * test/data/valid-config-files/basic.conf: add <limit> tags to
10714         this test
10715
10716         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10717         <limit> tag in configuration file.
10718
10719 2003-04-24  Havoc Pennington  <hp@redhat.com>
10720
10721         * bus/dispatch.c: somehow missed some name_is
10722
10723         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10724         (_dbus_timeout_set_interval): new
10725
10726         * bus/connection.c (bus_connections_setup_connection): record time
10727         when each connection is first set up, and expire them after the
10728         auth timeout passes.
10729
10730 2003-04-24  Havoc Pennington  <hp@redhat.com>
10731
10732         * dbus/dbus-message.c (dbus_message_name_is): rename
10733         (dbus_message_service_is): rename
10734         (dbus_message_sender_is): rename
10735         (dbus_message_get_service): rename
10736
10737 2003-04-24  Havoc Pennington  <hp@redhat.com>
10738
10739         * configure.in: add --enable-checks
10740
10741         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10742
10743         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10744         to use thread locks.
10745         (_dbus_connection_handler_destroyed_locked): move some private
10746         functions into proper docs group
10747
10748         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10749         _dbus_return_val_if_fail
10750
10751         Throughout: use dbus_return_if_fail
10752
10753 2003-04-23  James Willcox  <jwillcox@gnome.org>
10754
10755         * glib/dbus-glib.h:
10756         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10757         (dbus_connection_setup_with_g_main),
10758         (dbus_server_setup_with_g_main):
10759         * glib/test-dbus-glib.c: (main):
10760         * glib/test-thread-client.c: (main):
10761         * glib/test-thread-server.c: (new_connection_callback), (main):
10762         * tools/dbus-monitor.c: (main):
10763
10764         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10765         and dbus_server_setup_with_g_main().
10766
10767 2003-04-20  Havoc Pennington  <hp@pobox.com>
10768
10769         * doc/dbus-specification.sgml: document the restrictions on
10770         message and service names
10771
10772 2003-04-22  Havoc Pennington  <hp@redhat.com>
10773
10774         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10775         support, and do some code cleanups to share more code and
10776         speed up array marshal/demarshal.
10777
10778         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10779
10780         * configure.in: generate dbus-arch-deps.h
10781
10782         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10783         64-bit typecodes
10784
10785 2003-04-22  Havoc Pennington  <hp@redhat.com>
10786
10787         * test/data/valid-messages/opposite-endian.message: fix test
10788         to use proper type for rply field
10789
10790         * test/data/invalid-messages: add tests for below validation
10791
10792         * dbus/dbus-message.c (decode_header_data): validate field types,
10793         and validate that named fields are valid names
10794         (decode_name_field): consider messages in the
10795         org.freedesktop.Local. namespace to be invalid.
10796
10797         * dbus/dbus-string.c (_dbus_string_validate_name): new
10798
10799 2003-04-19  Havoc Pennington  <hp@pobox.com>
10800
10801         * bus/driver.c (bus_driver_handle_hello): check limits and
10802         return an error if they are exceeded.
10803
10804         * bus/connection.c: maintain separate lists of active and inactive
10805         connections, and a count of each. Maintain count of completed
10806         connections per user. Implement code to check connection limits.
10807
10808         * dbus/dbus-list.c (_dbus_list_unlink): export
10809
10810         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10811         number of bytes in the message queue for a connection
10812
10813 2003-04-18  Havoc Pennington  <hp@pobox.com>
10814
10815         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10816
10817         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10818         memleaks
10819
10820         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10821         on realloc be sure to update the pointer in the keyring
10822
10823         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10824         offset to avoid writing to unallocated memory
10825
10826         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10827         try the next mechanism, so we properly handle OOM
10828
10829         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10830         on OOM.
10831         (_dbus_keyring_new): fix OOM bug
10832         (_dbus_keyring_new_homedir): always set error; impose a maximum
10833         number of keys we'll load from the file, mostly to speed up the
10834         test suite and make its OOM checks more useful, but also for
10835         general sanity.
10836
10837         * dbus/dbus-auth.c (process_error_server): reject authentication
10838         if we get an error from the client
10839         (process_cancel): on cancel, send REJECTED, per the spec
10840         (process_error_client): send CANCEL if we get an error from the
10841         server.
10842
10843 2003-04-18  Havoc Pennington  <hp@pobox.com>
10844
10845         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10846         debug spew
10847
10848         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10849         handling problem
10850
10851         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10852         about DBUS_TEST_HOMEDIR once
10853
10854         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10855         the environment
10856
10857         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10858         config file so we test the right thing
10859
10860         Throughout: assorted docs improvements
10861
10862 2003-04-18  Havoc Pennington  <hp@pobox.com>
10863
10864         * glib/dbus-gmain.c: adapt to watch changes
10865
10866         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10867
10868         * dbus/dbus-server.h: remove dbus_server_handle_watch
10869
10870         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10871
10872         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10873         like DBusTimeout, so we don't need dbus_connection_handle_watch
10874         etc.
10875
10876 2003-04-17  Havoc Pennington  <hp@redhat.com>
10877
10878         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10879         database usage so it all goes via the DBusUserDatabase cache.
10880
10881 2003-04-17  Havoc Pennington  <hp@redhat.com>
10882
10883         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10884         there was an OOM watch we skipped, we always return TRUE so we
10885         iterate again to have a look at it again. Fixes test suite hang.
10886         Code rearrangement also lets us lose some memset and only iterate
10887         over callbacks once.
10888
10889         * bus/driver.c (bus_driver_handle_message): sense of test for
10890         reply was backward
10891
10892 2003-04-16  Havoc Pennington  <hp@pobox.com>
10893
10894         * doc/dbus-specification.sgml: make spec say serials are unsigned
10895
10896         * dbus/dbus-message.h: change message serials to unsigned
10897
10898         * dbus/dbus-connection.c: adapt to message serials being unsigned
10899
10900 2003-04-15  Havoc Pennington  <hp@pobox.com>
10901
10902         * bus/bus.c: create and keep around a shared DBusUserDatabase
10903         object.
10904
10905         * bus/connection.c (bus_connection_get_groups): don't cache
10906         groups for user in the connection object, since user database
10907         object now does that.
10908
10909 2003-04-16  Havoc Pennington  <hp@redhat.com>
10910
10911         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10912         list of size counters
10913         (_dbus_message_loader_putback_message_link): put back a popped link
10914
10915         * dbus/dbus-connection.c
10916         (dbus_connection_set_max_live_messages_size): rename
10917         max_received_size
10918         (dbus_connection_get_outgoing_size): get size of outgoing
10919         queue
10920         (_dbus_connection_set_connection_counter): remove this cruft
10921
10922 2003-04-14  Havoc Pennington  <hp@redhat.com>
10923
10924         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10925         caching, but at some point we might want to be able to use a
10926         different database.
10927
10928         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10929         SHA1 conf file to test the sha1 auth mechanism, since the regular
10930         test always uses EXTERNAL when available.
10931
10932         * configure.in,
10933         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10934         add conf file that requires use of sha1 auth
10935
10936 2003-04-13  Havoc Pennington  <hp@pobox.com>
10937
10938         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10939         from Philip Blundell to send messages and monitor them.
10940
10941 2003-04-13  Havoc Pennington  <hp@pobox.com>
10942
10943         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10944         callbacks
10945
10946         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10947         users
10948
10949         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10950         fix to only recover unused bytes if we're already authenticated
10951         (_dbus_transport_get_is_authenticated): fix to still mark us
10952         authenticated if there are unused bytes.
10953
10954         * bus/dispatch.c: implement security policy checking
10955
10956         * bus/connection.c (bus_transaction_send_from_driver): new
10957
10958         * bus/bus.c (bus_context_check_security_policy): new
10959
10960         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10961         now we just set the DBusError and it gets converted to an error
10962         reply.
10963
10964         * bus/connection.c (allow_user_function): enable code using actual
10965         data from the config file
10966
10967         * bus/policy.c (list_allows_user): handle wildcard rules for
10968         user/group connection perms
10969
10970 2003-04-13  Havoc Pennington  <hp@pobox.com>
10971
10972         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10973
10974         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10975
10976         * bus/policy.c (bus_policy_append_mandatory_rule)
10977         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10978         (bus_policy_append_group_rule): new functions
10979
10980 2003-04-12  Havoc Pennington  <hp@pobox.com>
10981
10982         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10983
10984         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10985         the pid/gid/uid, just for paranoia.
10986
10987         * test/break-loader.c (randomly_do_n_things): find a byte
10988         containing a type code, and randomly change it to a different
10989         type code.
10990
10991 2003-04-12  Havoc Pennington  <hp@pobox.com>
10992
10993         * bus/policy.h: change BusPolicy to be the thing from the config
10994         file, and rename old BusPolicy to BusClientPolicy
10995
10996         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10997         match change in how policy works
10998
10999         * dbus/dbus-internals.h: mark assert_not_reached as
11000         __attribute((noreturn))__
11001
11002 2003-04-11  Havoc Pennington  <hp@redhat.com>
11003
11004         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11005         the broadcast service. Use boolean return for ServiceExists.
11006
11007 2003-04-11  Havoc Pennington  <hp@redhat.com>
11008
11009         * configure.in: add another directory to look for qt in.
11010
11011 2003-04-11  Havoc Pennington  <hp@redhat.com>
11012
11013         * AUTHORS: add Colin Walters
11014
11015 2003-04-11  Havoc Pennington  <hp@redhat.com>
11016
11017         * NEWS: update
11018
11019         * configure.in: 0.9
11020
11021 2003-04-11  Havoc Pennington  <hp@redhat.com>
11022
11023         * bus/messagebus.in: remove pid file when stopping the
11024         message bus, since the bus won't have privileges to remove it
11025         itself.
11026
11027 2003-04-11  Havoc Pennington  <hp@redhat.com>
11028
11029         * bus/bus.c (bus_context_new): move credentials change after
11030         creating pidfile
11031
11032 2003-04-11  Havoc Pennington  <hp@pobox.com>
11033
11034         * test/decode-gcov.c: add "below average functions" to the
11035         coverage report, and change how some of the code works.
11036
11037         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11038         not in the coverage stats.
11039
11040         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11041         couple places so running the test suite doesn't result in megaspam.
11042
11043 2003-04-11  Havoc Pennington  <hp@pobox.com>
11044
11045         * bus/dispatch.c (check_existent_service_activation): accept a no
11046         memory error in a place we didn't before
11047
11048         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11049         in case the first one failed," since the test suite is less
11050         broken now.
11051
11052 2003-04-10  Havoc Pennington  <hp@pobox.com>
11053
11054         * bus/dispatch.c (check_segfault_service_activation): add test
11055         for launching an executable that just crashes.
11056
11057         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11058         don't leave a million cores. We'll see how portable this is.
11059
11060 2003-04-10  Havoc Pennington  <hp@pobox.com>
11061
11062         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11063         the possible parent failures before we fork, so that we don't
11064         fail to create a babysitter after creating the child.
11065
11066         * bus/activation.c (bus_activation_activate_service): kill child
11067         if we don't successfully complete the activation.
11068
11069 2003-04-10  Havoc Pennington  <hp@redhat.com>
11070
11071         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11072         the connection if it's disconnected
11073
11074         * bus/activation.c (bus_activation_service_created): use new
11075         transaction features to roll back removal of pending activation if
11076         we don't successfully create the service after all. Don't remove
11077         pending activation if the function fails.
11078
11079         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11080         (_dbus_list_insert_after_link): new code to facilitate
11081         services.c fixes
11082
11083         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11084         new functionality, so we can preallocate the ability to insert
11085         into a hash table.
11086
11087         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11088         allowing us to put custom hooks in a transaction to be used for
11089         cancelling said transaction
11090
11091         * doc/dbus-specification.sgml: add some discussion of secondary
11092         service owners, and disallow zero-length service names
11093
11094         * bus/services.c (bus_registry_acquire_service): new function,
11095         splits out part of bus_driver_handle_acquire_service() and fixes
11096         a bug where we didn't remove the service doing the acquiring
11097         from the secondary queue if we failed to remove the current owner
11098         from the front of the queue.
11099
11100 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11101
11102         * doc/dbus-specification.sgml:
11103         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11104
11105 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11106
11107         * bus/.cvsignore:
11108         * glib/.cvsignore:
11109         * test/.cvsignore:
11110         Added files to cvsignore
11111
11112         * dbus/dbus-message.h:
11113         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11114         Make get_named() take two out argument and return a boolean.
11115         (dbus_message_iter_get_args_valist):
11116         Update usage of get_named().
11117         (dbus_message_iter_append_byte):
11118         Fix typo
11119         (dbus_message_iter_append_named)
11120         Fix typo
11121         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11122         More tests.
11123
11124 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11125
11126         * dbus/dbus-marshal.[ch]:
11127         Add array_type_pos argument to _dbus_marshal_validate_arg.
11128         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11129
11130         * dbus/dbus-message.[ch]:
11131         Multi-dimensional arrays have full type specification in the
11132         outermost array. Iter code re-arranged to handle this.
11133         Added some more iter tests.
11134
11135         * doc/dbus-specification.sgml:
11136         Add me to authors.
11137         Remove old FIXME.
11138         Update new array encoding description.
11139         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11140
11141         * test/data/invalid-messages/array-with-mixed-types.message:
11142         * test/data/valid-messages/array-of-array-of-uint32.message:
11143         Change to the new array format.
11144
11145         * test/data/invalid-messages/too-short-dict.message:
11146         Fix bug in test.
11147
11148         * test/data/valid-messages/recursive-types.message:
11149         Fix up and extend test.
11150
11151 2003-04-10  Havoc Pennington  <hp@pobox.com>
11152
11153         * bus/dispatch.c: lots of fixes
11154
11155         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11156         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11157         that was crack, broke the test service.
11158
11159         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11160         handling to avoid piling up errors if we get a failure on the
11161         first address.
11162
11163         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11164         pid in assertion failures.
11165
11166         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11167         to some fixed size of file descriptor array. Don't return TRUE
11168         anytime a timeout exists, that led to lots of busy loop silliness
11169         in the tests.
11170
11171 2003-04-09  Havoc Pennington  <hp@redhat.com>
11172
11173         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11174         I'd checked this in earlier but hadn't.
11175
11176 2003-04-09  Havoc Pennington  <hp@redhat.com>
11177
11178         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11179         the activation test (man this is getting old!)
11180
11181 2003-04-09  Havoc Pennington  <hp@redhat.com>
11182
11183         * test/test-utils.c: use dispatch status function to fix this up
11184
11185         * bus/connection.c (connection_watch_callback): don't dispatch
11186         from here
11187         (connection_timeout_callback): don't dispatch from here
11188         (bus_connections_setup_connection): set the dispatch status function
11189         (bus_connection_disconnected): unset it
11190
11191         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11192         used to add a connection to be dispatched
11193         (_dbus_loop_iterate): do the dispatching at the end of each
11194         iteration
11195
11196         * dbus/dbus-connection.c
11197         (dbus_connection_set_dispatch_status_function): new function
11198         allowing us to fix up main loop usage
11199         (_dbus_connection_last_unref): free all the various function
11200         user data
11201         (dbus_connection_dispatch): call the DispatchStatusFunction
11202         whenever this function returns
11203         (dbus_connection_handle_watch): call DispatchStatusFunction
11204         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11205         (reply_handler_timeout): call DispatchStatusFunction
11206         (dbus_connection_flush): call DispatchStatusFunction
11207
11208 2003-04-09  Havoc Pennington  <hp@redhat.com>
11209
11210         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11211         a memory leak
11212
11213         * bus/dispatch.c (check_service_activated): fix bug in test
11214
11215         * dbus/dbus-mainloop.c (check_timeout): fix this up
11216
11217         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11218         verbose output so we can sort out output from different processes,
11219         e.g. in the activation case.
11220
11221 2003-04-08  Colin Walters  <walters@gnu.org>
11222
11223         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11224         the pid file.
11225         (bus_context_new): Set it.
11226         (bus_context_unref): Use it to delete the pid file.
11227
11228 2003-04-08  Havoc Pennington  <hp@redhat.com>
11229
11230         * test/data/invalid-messages/array-with-mixed-types.message:
11231         regression test that fails for the moment
11232
11233         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11234         tests for convenience
11235
11236         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11237         array of nil, it broke things.
11238
11239         * test/data/invalid-messages/array-of-nil.message: regression test
11240
11241         * test/data/valid-messages/array-of-array-of-uint32.message:
11242         happened to write this so added it to suite
11243
11244 2003-04-08  Havoc Pennington  <hp@redhat.com>
11245
11246         * bus/driver.c (bus_driver_handle_acquire_service): init
11247         retval/reply before checking name
11248
11249         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11250         recursion depth argument
11251
11252         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11253         in the public struct for future extension
11254
11255         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11256         typo
11257
11258         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11259         message
11260
11261         * doc/dbus-specification.sgml: fix typo
11262
11263 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11264
11265         Implemented recursive types, named types and new-style iters
11266
11267         * bus/driver.c:
11268         * glib/test-thread-client.c: (thread_func):
11269         * glib/test-thread-server.c: (handle_test_message):
11270         * test/test-service.c: (handle_echo):
11271         Update to new api
11272
11273         * dbus/Makefile.am:
11274         * dbus/dbus-dict.c:
11275         * dbus/dbus-dict.h:
11276         * dbus/dbus.h
11277         Remove DBusDict
11278
11279         * dbus/dbus-internals.c: (_dbus_type_to_string):
11280         Update for new types.
11281
11282         * dbus/dbus-marshal.[ch]:
11283         Implement recursive types and the new marshalling format.
11284         Remove hardcoded dict marshalling.
11285         Marshal named types.
11286
11287         * dbus/dbus-message-builder.c:
11288         Add BYTE_ARRAY.
11289         Remove references to old types
11290
11291         * dbus/dbus-message.[ch]:
11292         New non-refcounted iter API that supports recursive iters.
11293         Use iters for appending, including support for recursive
11294         iters.
11295         Add byte and named type support.
11296         Update everything to new marshalling formats.
11297         Add tests for new API.
11298
11299         * dbus/dbus-protocol.h:
11300         Remove old array types.
11301         Add types: BYTE, ARRAY, DICT, NAMED
11302
11303         * dbus/dbus-string.c:
11304         * dbus/dbus-sysdeps.c:
11305         Make parse_double locale safe.
11306
11307         * dbus/dbus-test-main.c:
11308         Call setlocale.
11309
11310         * dbus/dbus-test.c:
11311         Kill dict test
11312
11313         * doc/dbus-specification.sgml:
11314         Update spec
11315
11316         * test/data/incomplete-messages/missing-body.message:
11317         * test/data/invalid-messages/bad-boolean.message:
11318         * test/data/invalid-messages/bad-boolean-array.message:
11319         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11320         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11321         * test/data/invalid-messages/too-short-dict.message:
11322         * test/data/valid-messages/dict-simple.message:
11323         * test/data/valid-messages/dict.message:
11324         * test/data/valid-messages/emptiness.message:
11325         * test/data/valid-messages/lots-of-arguments.message:
11326         * test/data/valid-messages/no-padding.message:
11327         * test/data/valid-messages/recursive-types.message:
11328         Add missing NAME fields
11329         Fix up dicts & arrays
11330
11331         * test/data/invalid-messages/dict-with-nil-value.message:
11332         Removed, this is not invalid anymore.
11333
11334         * test/data/valid-messages/recursive-types.message:
11335         Add new test for deeply recursive types.
11336
11337 2003-04-07  Havoc Pennington  <hp@pobox.com>
11338
11339         * bus/driver.c (bus_driver_handle_acquire_service): return an
11340         error if you try to acquire a service that starts with ':'
11341
11342 2003-04-07  Havoc Pennington  <hp@redhat.com>
11343
11344         * doc/dbus-specification.sgml: require that base service names
11345         start with ':' and that the base service is created/deleted
11346         as first and last things a connection does on the bus
11347
11348         * bus/dispatch.c (check_existent_service_activation): lots more
11349         work on the activation test; it doesn't fully pass yet...
11350
11351         * test/test-service.c (main): fix so we don't memleak the
11352         connection to the message bus
11353         (filter_func): accept a message asking us to exit
11354
11355 2003-04-06  Havoc Pennington  <hp@pobox.com>
11356
11357         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11358         from Colin Walters
11359
11360         * configure.in: fixes to Qt detection from Colin Walters
11361
11362         * doc/Makefile.am: Only remove generated docbook dirs if they
11363         exist, from Colin Walters
11364
11365         * dbus/dbus-bus.c: change how we set well-known connections to
11366         NULL, so that it works if a single connection is stored in
11367         two well-known array slots.
11368
11369         * test/Makefile.am: remove a lot of stuff that isn't immediately
11370         useful, it's in CVS history if we want it.
11371
11372         * test/test-service.c: use dbus-mainloop instead of that
11373         watch.[hc] crack
11374
11375 2003-04-06  Havoc Pennington  <hp@pobox.com>
11376
11377         * dbus/Makefile.am: split lists of sources into stuff that goes in
11378         the library, util functions that go in the lib and are also used
11379         elsewhere, and util functions that are used in tests/daemon but
11380         don't go in the lib.
11381
11382         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11383         here so it can be used in test binaries also
11384
11385 2003-04-06  Havoc Pennington  <hp@pobox.com>
11386
11387         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11388         here in the parent process, so we can return an error if it
11389         fails. Also, move some of the code into the child so the parent
11390         is less hosed if we fail midway through.
11391
11392         * bus/bus.c (bus_context_new): move pidfile detection further up
11393         in the function, before we start overwriting sockets and such.
11394
11395         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11396
11397         * configure.in: add --with-system-pid-file and --with-system-socket
11398
11399 2003-04-06  Colin Walters  <walters@verbum.org>
11400
11401         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11402
11403         * bus/system.conf.in: Declare a pidfile.
11404
11405         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11406         create one (if appropriate).
11407
11408         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11409         (struct BusConfigParser) [pidfile]: New.
11410         (element_type_to_name, merge_included, start_busconfig_child)
11411         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11412         (bus_config_parser_unref): Free it.
11413         (bus_config_parser_get_pidfile): New function.
11414
11415         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11416
11417         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11418
11419         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11420
11421         * dbus/dbus-sysdeps.h: Prototype it.
11422
11423 2003-04-06  Havoc Pennington  <hp@pobox.com>
11424
11425         * bus/bus.c (bus_context_new): print the address in here, rather
11426         than in main(), because we need to do it before forking the daemon
11427
11428         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11429         on the service nonexistent error
11430
11431         * bus/driver.c (bus_driver_handle_acquire_service): set the
11432         sender on the AcquireService reply
11433
11434         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11435         server also listen on a UNIX socket so services can connect to it.
11436
11437 2003-04-06  Havoc Pennington  <hp@pobox.com>
11438
11439         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11440         so it detects deadlocks and also we actually init threads when
11441         debugging.
11442
11443 2003-04-06  Havoc Pennington  <hp@pobox.com>
11444
11445         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11446         save the domain socket name, and unlink it when we disconnect the
11447         server. Means that at least when we exit normally, we won't leave
11448         a bunch of junk in /tmp
11449
11450         * dbus/dbus-transport-unix.c
11451         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11452         memory management). (I was making a real change here but then
11453         didn't)
11454
11455 2003-04-06  Havoc Pennington  <hp@pobox.com>
11456
11457         * bus/bus.c (bus_context_new): fix wrong handling of
11458         server_data_slot_unref() in the error case.
11459
11460         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11461         "(condition) != 0" to _dbus_real_assert so that
11462         "_dbus_assert (pointer)" doesn't cause a warning
11463
11464         * bus/main.c (main): accept --print-address option to print out
11465         the message bus address
11466
11467         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11468
11469         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11470         "tmpdir" option to unix: address on client side
11471
11472         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11473         to unix: address
11474
11475         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11476         we can use to create sockets in the test suite.
11477
11478         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11479         cleanly. To be used for testing.
11480
11481         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11482
11483         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11484
11485         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11486         handle trying to call this when there's no servers active
11487
11488 2003-04-05  Havoc Pennington  <hp@pobox.com>
11489
11490         * NEWS: update
11491
11492         * configure.in: 0.8
11493
11494 2003-04-05  Havoc Pennington  <hp@pobox.com>
11495
11496         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11497         crash on startup. Need to get "try starting the daemon"
11498         in the test suite I guess. ;-)
11499
11500         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11501         tracked the number of open connections; it's better done in
11502         application-specific code as you want it to span all servers etc.
11503
11504 2003-04-05  Havoc Pennington  <hp@pobox.com>
11505
11506         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11507         patch from Colin Walters
11508
11509 2003-04-05  Havoc Pennington  <hp@pobox.com>
11510
11511         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11512         reality; in fact multiple mechanisms are allowed.
11513
11514         * dbus/dbus-internals.c (_dbus_real_assert)
11515         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11516         _dbus_assert_not_reached() into functions, so that they don't show
11517         up in basic block counts for test coverage, and don't use up as
11518         much disk space. Does mean slower execution speed though, so
11519         assumes --disable-asserts is the normal production case.
11520
11521 2003-04-05  Havoc Pennington  <hp@pobox.com>
11522
11523         * test/Makefile.am (dist-hook): also dist *.in files
11524
11525         * NEWS: update
11526
11527         * configure.in: 0.7
11528
11529 2003-04-05  Havoc Pennington  <hp@pobox.com>
11530
11531         * dbus/dbus-string.c: docs warning
11532
11533         * dbus/dbus-spawn.c: missing docs
11534
11535         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11536
11537 2003-04-05  Havoc Pennington  <hp@pobox.com>
11538
11539         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11540         magic from GLib
11541
11542         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11543         to -1 once we've reaped the babysitter
11544         (_dbus_babysitter_handle_watch): do as much work as we can, not
11545         just one go of it
11546
11547         * bus/activation.c: add code using DBusBabysitter so that we
11548         handle it when a service fails to start up properly.
11549         (bus_activation_service_created): don't remove the activation
11550         entries as we go, just let them get removed when we free the pending
11551         activation. Unref reply messages after sending them.
11552
11553 2003-04-05  Havoc Pennington  <hp@pobox.com>
11554
11555         * test/decode-gcov.c (main): print per-directory stats in the report
11556
11557         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11558
11559 2003-04-05  Havoc Pennington  <hp@pobox.com>
11560
11561         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11562
11563         * test/decode-gcov.c: hack up a little program to suck data
11564         out of gcov files. Yes this is sort of silly.
11565
11566         * configure.in: define something in config.h and do an
11567         AM_CONDITIONAL when gcov is enabled
11568
11569 2003-04-04  Havoc Pennington  <hp@redhat.com>
11570
11571         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11572         return a "babysitter" object that is used to monitor the status of
11573         the spawned process and reap it when required.
11574
11575         * test/test-segfault.c, test/test-exit.c,
11576         test/test-sleep-forever.c: binaries that do various lame things,
11577         used in the test suite.
11578
11579         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11580
11581 2003-04-03  Havoc Pennington  <hp@pobox.com>
11582
11583         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11584         in preparation for modifying it, dbus-sysdeps is getting
11585         a bit unmanageable.
11586
11587 2003-04-03  Havoc Pennington  <hp@redhat.com>
11588
11589         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11590         have multiple ones
11591
11592         * bus/*.[hc]: adapt to mainloop change
11593
11594 2003-04-03  Havoc Pennington  <hp@redhat.com>
11595
11596         * bus/activation.c (load_directory): fix up memleaks
11597         (bus_activation_entry_free): free the entry
11598
11599         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11600         we get one from the message bus; fix memleaks.
11601
11602         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11603
11604 2003-04-03  Havoc Pennington  <hp@pobox.com>
11605
11606         * bus/config-parser.c (bus_config_parser_unref): free
11607         list of mechanisms, bug discovered by test suite enhancements
11608         (putting system.conf and session.conf into suite)
11609
11610         * test/Makefile.am, test/test-service.c: add placeholder for a
11611         test service that we'll activate as part of test suite. Doesn't
11612         do anything yet.
11613
11614         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11615         setting NULL value, and use system malloc not dbus_malloc()
11616         when we have unavoidable memleakage.
11617
11618         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11619         didn't work, and support DBUS_BUS_ACTIVATION.
11620
11621         * bus/activation.c (child_setup): pass our well-known bus type to
11622         the child
11623
11624         * bus/config-parser.c: support <type> to specify well-known type
11625
11626         * doc/dbus-specification.sgml: document the env variables to
11627         locate well-known buses and find service activator
11628
11629 2003-04-02  Havoc Pennington  <hp@redhat.com>
11630
11631         * test/Makefile.am (all-local): add a rule to copy tests to
11632         builddir, so we can have generated tests. Use this to remove the
11633         silly hack for testing system.conf and session.conf. Will use this
11634         shortly to generate .service files pointing to test binaries.
11635
11636 2003-04-02  Havoc Pennington  <hp@redhat.com>
11637
11638         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11639         current alloc and needed new length, not max of the doubled
11640         allocation and needed new length. Also, when building tests,
11641         don't do the double-allocation stuff, just realloc every time.
11642
11643 2003-04-02  Havoc Pennington  <hp@redhat.com>
11644
11645         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11646         in error messages
11647         (_dbus_string_get_dirname): new
11648         (_dbus_sysdeps_test): new
11649         (_dbus_directory_open): include dirnames in error messages
11650
11651         * bus/config-parser.c: interpret <include> and <includedir> and
11652         <servicedir> relative to config file location if the given
11653         filename is not absolute.
11654
11655         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11656
11657 2003-04-02  Havoc Pennington  <hp@redhat.com>
11658
11659         * bus/connection.c (bus_transaction_send_error_reply): set sender
11660         service for the error, and unref the reply on success
11661
11662         * bus/activation.c: convert to use BusTransaction so OOM can be
11663         handled correctly
11664         (bus_activation_service_created): set sender of the message
11665
11666 2003-04-01  Havoc Pennington  <hp@redhat.com>
11667
11668         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11669         <includedir> (at least mostly)
11670
11671         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11672         first, then the user ID
11673
11674 2003-04-01  Havoc Pennington  <hp@pobox.com>
11675
11676         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11677         function
11678
11679         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11680
11681         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11682
11683         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11684         socket 0777, and unlink any existing socket.
11685
11686         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11687         the configuration file so specifies; set up auth mechanism
11688         restrictions
11689
11690         * bus/config-parser.c (bus_config_parser_content): add support
11691         for <fork> option and fill in code for <auth>
11692
11693         * bus/system.conf.in: add <fork/> to default configuration,
11694         and limit auth mechanisms to EXTERNAL
11695
11696         * doc/config-file.txt (Elements): add <fork>
11697
11698         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11699         (_dbus_change_identity): new function
11700
11701 2003-03-31  Havoc Pennington  <hp@redhat.com>
11702
11703         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11704         (_dbus_listen_unix_socket): fix off-by-one error in null
11705         termination spotted by Nalin
11706
11707 2003-03-31  Havoc Pennington  <hp@redhat.com>
11708
11709         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11710         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11711         having a real home directory available.
11712
11713 2003-03-31  Havoc Pennington  <hp@redhat.com>
11714
11715         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11716
11717         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11718
11719         * configure.in: add support for specifying a style of init script
11720         to install
11721
11722 2003-03-31  Havoc Pennington  <hp@redhat.com>
11723
11724         Fix some annoying DBusString API and fix all affected code.
11725
11726         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11727         max_length argument
11728         (_dbus_string_get_data): change to return string instead of using
11729         an out param
11730         (_dbus_string_get_const_data): ditto
11731         (_dbus_string_get_data_len): ditto
11732         (_dbus_string_get_const_data_len): ditto
11733
11734 2003-03-31  Havoc Pennington  <hp@redhat.com>
11735
11736         * bus/main.c (main): fix up the command line arguments to be nicer
11737
11738 2003-03-31  Havoc Pennington  <hp@redhat.com>
11739
11740         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11741         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11742         final location that lands in the config file
11743
11744         * bus/config-loader-expat.c (bus_config_load): fix type of
11745         XML_Parser variable
11746
11747         * doc/TODO: remove TODO item for dbus_bus_get()
11748
11749         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11750
11751 2003-03-31  Havoc Pennington  <hp@pobox.com>
11752
11753         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11754         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11755         argument since they are always client side
11756
11757         * dbus/dbus-server.c (dbus_server_get_address): new function
11758
11759         * bus/main.c (main): take the configuration file as an argument.
11760
11761         * test/data/valid-config-files/debug-allow-all.conf: new file to
11762         use with dispatch.c tests for example
11763
11764         * bus/test-main.c (main): require test data dir
11765
11766         * bus/bus.c (bus_context_new): change this to take a
11767         configuration file name as argument
11768
11769         * doc/config-file.txt (Elements): add <servicedir>
11770
11771         * bus/system.conf, bus/session.conf: new files
11772
11773         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11774         well-known socket if none set
11775
11776         * configure.in: create system.conf and session.conf
11777
11778 2003-03-30  Havoc Pennington  <hp@pobox.com>
11779
11780         * bus/config-parser.c: hacking
11781
11782         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11783         to shut down, since it could cause weirdness with the DBusList
11784         lock
11785
11786         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11787         link-oriented stack routines
11788         (alloc_link): free the mempool if the first alloc from it fails
11789
11790         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11791
11792         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11793         from GLib
11794         (_dbus_string_skip_white): new
11795
11796         * doc/config-file.txt (Elements): add <includedir>
11797
11798 2003-03-28  Havoc Pennington  <hp@pobox.com>
11799
11800         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11801         (_dbus_string_copy_data): new functions
11802
11803 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11804
11805         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11806         * dbus/dbus-bus.h:
11807         Add dbus_bus_get.
11808
11809         * dbus/dbus-memory.c:
11810         Fix a doc comment.
11811
11812 2003-03-28  Havoc Pennington  <hp@pobox.com>
11813
11814         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11815         I think it may have just been superstition. Not sure.
11816
11817         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11818         failures that were not being handled.
11819
11820         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11821
11822         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11823         row that will fail on out-of-memory.
11824
11825         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11826         function for testing out-of-memory handling.
11827
11828         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11829         allocation functions, they do map exactly to the expat ones.
11830
11831 2003-03-27  Havoc Pennington  <hp@redhat.com>
11832
11833         * bus/config-loader-libxml.c (bus_config_load): add another error
11834         check
11835
11836 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11837
11838         * doc/TODO:
11839         Add note about automatic service activation.
11840
11841         * doc/dbus-specification.sgml:
11842         Rename the specification and clarify a few things.
11843
11844 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11845
11846         * Doxyfile.in:
11847         * dbus/dbus-address.c:
11848         * dbus/dbus-dict.c:
11849         * dbus/dbus-marshal.c:
11850         * dbus/dbus-server-debug-pipe.c:
11851         * dbus/dbus-transport-unix.c:
11852         Fix documentation warnings.
11853
11854 2003-03-26  Havoc Pennington  <hp@pobox.com>
11855
11856         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11857         after every test so it's quick and easy to see which leaked, and
11858         so we test multiple dbus_shutdown() calls
11859
11860         * configure.in: change configure.in XML stuff to also support
11861         expat
11862
11863         * config-loader-libxml.c: some hacking
11864
11865         * config-loader-expat.c: some hacking
11866
11867         * config-parser.c: some hacking, plus tests
11868
11869 2003-03-25  Havoc Pennington  <hp@redhat.com>
11870
11871         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11872
11873         * configure.in: add --with-xml option to specify XML library,
11874         right now only libxml is supported.
11875
11876         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11877         nonworking code between home and work, still just stubs
11878
11879 2003-03-24  Havoc Pennington  <hp@redhat.com>
11880
11881         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11882         file
11883
11884         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11885         NULL argument for "message" if the error is a well-known one,
11886         fill in a generic message in this case.
11887
11888         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11889         favor of DBusError
11890
11891         * bus/test.c (bus_test_flush_bus): add
11892
11893         * bus/policy.c (bus_policy_test): test code stub
11894
11895 2003-03-24  Havoc Pennington  <hp@pobox.com>
11896
11897         * bus/connection.c (bus_connections_setup_connection): set up
11898         the "can this user connect" function, but it always returns
11899         TRUE until we have a config file parser so we can have a config
11900         file that allows connections.
11901
11902 2003-03-23  Havoc Pennington  <hp@pobox.com>
11903
11904         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11905         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11906         the mutex, so we can check for proper memory management
11907         and OOM handling.
11908
11909         * dbus/dbus-dataslot.c: remove the mutex from
11910         DBusDataSlotAllocator and lock it manually when using it,
11911         to simplify fitting it into the global slots framework.
11912
11913         * dbus/dbus-threads.c (init_static_locks): rework how we're
11914         handling global locks so they are easily shut down.
11915
11916         * bus/policy.c (bus_policy_append_rule): fix
11917
11918         * bus/test-main.c (main): check for memleaks
11919
11920         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11921         test suite check for memleaks
11922
11923         * dbus/dbus-memory.c: add support in test mode for tracking
11924         number of outstanding blocks
11925
11926 2003-03-23  Havoc Pennington  <hp@pobox.com>
11927
11928         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11929         policies code
11930
11931         * dbus/dbus-hash.h: add ULONG hash keys
11932
11933         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11934         (_dbus_get_group_id): new function
11935
11936 2003-03-20  Havoc Pennington  <hp@redhat.com>
11937
11938         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11939         new function
11940         (dbus_connection_get_unix_user): new function
11941
11942 2003-03-20  Havoc Pennington  <hp@pobox.com>
11943
11944         * bus/connection.c (bus_connection_send_oom_error): assert that
11945         message has a sender
11946         (connection_execute_transaction): ditto
11947         (bus_connection_preallocate_oom_error): fix to set the sender, and
11948         set recipient to the destination service, not the bus driver
11949
11950         * bus/policy.c: hacking
11951
11952         * dbus/dbus-message.c (dbus_message_service_is): new function
11953         (dbus_message_sender_is): new
11954
11955 2003-03-19  Havoc Pennington  <hp@redhat.com>
11956
11957         * bus/policy.c: start sketching code for policy restrictions on
11958         what connections can do.
11959
11960 2003-03-18  Havoc Pennington  <hp@redhat.com>
11961
11962         * doc/TODO: some notes on high-level todo items. Little nitpick
11963         stuff is all in @todo, so no need to add it here.
11964
11965         * doc/config-file.txt: some notes on how config file might look
11966
11967 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11968
11969         * configure.in: 0.6
11970
11971         * NEWS: Update.
11972
11973 2003-03-17  Havoc Pennington  <hp@redhat.com>
11974
11975         * dbus/dbus-internals.h: add gcc attributes so that
11976         our printf-style functions warn on bad arguments to
11977         format
11978
11979         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11980         format bug
11981
11982         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11983         printf format bug
11984
11985 2003-03-17  Havoc Pennington  <hp@redhat.com>
11986
11987         * bus/test-main.c (main): make it print something as it runs
11988         so make check doesn't look stuck
11989
11990         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11991         from CVS, now obsolete
11992
11993 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11994
11995         * bus/dispatch.c: (bus_dispatch):
11996         Refetch the service name since it may have been reallocated
11997         when dbus_message_set_sender was called.
11998
11999         * dbus/dbus-sysdeps.c: (_dbus_accept):
12000         Add address and address length variables and use them to stop
12001         valgrind from complaining.
12002
12003 2003-03-17  Havoc Pennington  <hp@pobox.com>
12004
12005         All tests pass, no memleaks, no valgrind complaints.
12006
12007         * bus/test.c: refcount handler_slot
12008
12009         * bus/connection.c (bus_connections_new): refcount
12010         connection_data_slot
12011
12012         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12013         bytes so that auth scripts pass.
12014
12015         * bus/dispatch.c: init message_handler_slot so it gets allocated
12016         properly
12017
12018         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12019
12020         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12021         dealloc server_pipe_hash when no longer used for benefit of
12022         leak checking
12023
12024         * dbus/dbus-auth.c (process_command): memleak fix
12025
12026         * bus/dispatch.c (check_hello_message): memleak fix
12027
12028 2003-03-16  Havoc Pennington  <hp@pobox.com>
12029
12030         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12031
12032 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12033
12034         * bus/activation.c (bus_activation_activate_service): Append
12035         the pending activation entry to the list of pending activations.
12036
12037 2003-03-16  Havoc Pennington  <hp@pobox.com>
12038
12039         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12040         connections
12041
12042         * dbus/dbus-address.c (create_entry): fix OOM handling when
12043         failing to alloc entry->method
12044
12045 2003-03-16  Havoc Pennington  <hp@pobox.com>
12046
12047         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12048         the watch
12049
12050         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12051         add some missing dbus_set_result
12052
12053         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12054         alloc the DBusMessageHandler
12055
12056         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12057         the transport here, since we call this from the finalizer; it
12058         resulted in a double-finalize.
12059
12060         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12061         where we tried to use transport->connection that was NULL,
12062         happened when transport was disconnected early on due to OOM
12063
12064         * bus/*.c: adapt to handle OOM for watches/timeouts
12065
12066         * dbus/dbus-transport-unix.c: port to handle OOM during
12067         watch handling
12068
12069         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12070         reference to unused bytes instead of a copy
12071
12072         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12073         out of memory
12074
12075         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12076         FALSE on OOM
12077
12078         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12079         of memory
12080
12081 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12082
12083         * doc/dbus-specification.sgml:
12084         Document reply message for ActivateService.
12085
12086 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12087
12088         * bus/activation.c: (bus_pending_activation_entry_free),
12089         (bus_pending_activation_free), (bus_activation_new),
12090         (bus_activation_unref), (bus_activation_service_created),
12091         (bus_activation_activate_service):
12092         * bus/activation.h:
12093         * bus/bus.c: (bus_context_new):
12094         * bus/desktop-file.c: (new_section):
12095         * bus/driver.c: (bus_driver_send_service_deleted),
12096         (bus_driver_handle_activate_service):
12097         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12098         * bus/services.h:
12099         * dbus/dbus-connection.c:
12100         (dbus_connection_send_with_reply_and_block):
12101         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12102         * dbus/dbus-protocol.h:
12103         Make activation work better. Now pending activations will be queued
12104         and the daemon won't try to activate services that are already registered.
12105
12106 2003-03-16  Havoc Pennington  <hp@pobox.com>
12107
12108         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12109         connection data
12110
12111         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12112         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12113
12114 2003-03-16  Havoc Pennington  <hp@pobox.com>
12115
12116         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12117         this. always run the test suite before commit...
12118
12119         * bus/*: adapt to DBusConnection API changes
12120
12121         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12122         requires renaming stuff to avoid dbus_connection_dispatch name
12123         conflict.
12124
12125         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12126         function
12127
12128         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12129         separate from _dbus_message_loader_return_buffer()
12130
12131         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12132         this, because it's now always broken to use; the number of
12133         messages in queue vs. the number still buffered by the message
12134         loader is undefined/meaningless. Should use
12135         dbus_connection_get_dispatch_state().
12136         (dbus_connection_dispatch): rename from
12137         dbus_connection_dispatch_message
12138
12139 2003-03-16  Havoc Pennington  <hp@pobox.com>
12140
12141         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12142         implementation
12143
12144 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12145
12146         * dbus/dbus-connection.c:
12147         (dbus_connection_send_with_reply_and_block):
12148         Decrease connection->n_incoming when removing an entry
12149         from the list.
12150         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12151         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12152         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12153         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12154         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12155         (dbus_dict_get_byte_array):
12156         Handle NULL arrays and strings. Also add support for byte arrays.
12157
12158         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12159         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12160         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12161         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12162         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12163         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12164         * dbus/dbus-marshal.h:
12165         Add support for marshalling and demarshalling empty arrays and strings.
12166
12167         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12168         (dbus_message_append_string_array),
12169         (dbus_message_iter_get_boolean),
12170         (dbus_message_iter_get_boolean_array),
12171         (dbus_message_iter_get_int32_array),
12172         (dbus_message_iter_get_uint32_array),
12173         (dbus_message_iter_get_double_array),
12174         (dbus_message_iter_get_byte_array),
12175         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12176         (check_message_handling):
12177         Add support for getting empty arrays and dicts.
12178
12179         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12180         Don't do any validation at all for now, that's better than just checking
12181         for ASCII.
12182
12183         * test/data/valid-messages/emptiness.message:
12184         New test message with lots of empty arrays.
12185
12186 2003-03-16  Havoc Pennington  <hp@pobox.com>
12187
12188         * dbus/dbus-connection.c
12189         (_dbus_connection_queue_received_message_link): new function that
12190         can't fail due to OOM
12191
12192         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12193         new function pops a message together with a list link
12194         containing it.
12195
12196         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12197         message queuing functions to avoid needing to alloc memory
12198
12199 2003-03-16  Havoc Pennington  <hp@pobox.com>
12200
12201         Oops - test code was only testing failure of around 30 of the
12202         mallocs in the test path, but it turns out there are 500+
12203         mallocs. I believe this was due to misguided linking setup such
12204         that there was one copy of dbus_malloc etc. in the daemon and one
12205         in the shared lib, and only daemon mallocs were tested. In any
12206         case, the test case now tests all 500+ mallocs, and doesn't pass
12207         yet, though there are lots of fixes in this patch.
12208
12209         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12210         this so that it doesn't need to allocate memory, since it
12211         has no way of indicating failure due to OOM (and would be
12212         annoying if it did).
12213
12214         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12215
12216         * bus/Makefile.am: rearrange to create two self-contained
12217         libraries, to avoid having libraries with overlapping symbols.
12218         that was resulting in weirdness, e.g. I'm pretty sure there
12219         were two copies of global static variables.
12220
12221         * dbus/dbus-internals.c: move the malloc debug stuff to
12222         dbus-memory.c
12223
12224         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12225         empty.
12226
12227         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12228
12229         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12230         on failure.
12231
12232         * bus/dispatch.c (bus_dispatch_add_connection): free
12233         message_handler_slot when no longer using it, so
12234         memory leak checkers are happy for the test suite.
12235
12236         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12237
12238         * bus/bus.c (new_connection_callback): disconnect in here if
12239         bus_connections_setup_connection fails.
12240
12241         * bus/connection.c (bus_connections_unref): fix to free the
12242         connections
12243         (bus_connections_setup_connection): if this fails, don't
12244         disconnect the connection, just be sure there are no side
12245         effects.
12246
12247         * dbus/dbus-string.c (undo_alignment): unbreak this
12248
12249         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12250         leaking
12251         (_dbus_auth_new): fix the order in which we free strings
12252         on OOM failure
12253
12254         * bus/connection.c (bus_connection_disconnected): fix to
12255         not send ServiceDeleted multiple times in case of memory
12256         allocation failure
12257
12258         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12259         get the base service name
12260         (dbus_bus_register_client): don't return base service name,
12261         instead store it on the DBusConnection and have an accessor
12262         function for it.
12263         (dbus_bus_register_client): rename dbus_bus_register()
12264
12265         * bus/dispatch.c (check_hello_message): verify that other
12266         connections on the bus also got the correct results, not
12267         just the one sending hello
12268
12269 2003-03-15  Havoc Pennington  <hp@pobox.com>
12270
12271         Make it pass the Hello handling test including all OOM codepaths.
12272         Now to do other messages...
12273
12274         * bus/services.c (bus_service_remove_owner): fix crash when
12275         removing owner from an empty list of owners
12276         (bus_registry_ensure): don't leave service in the list of
12277         a connection's owned services if we fail to put the service
12278         in the hash table.
12279
12280         * bus/connection.c (bus_connection_preallocate_oom_error): set
12281         error flag on the OOM error.
12282
12283         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12284         handle _dbus_transport_set_connection failure
12285
12286         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12287         to create watches up front and simply enable/disable them as
12288         needed.
12289         (unix_connection_set): this can now fail on OOM
12290
12291         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12292         of enabling/disabling a watch or timeout.
12293
12294         * bus/loop.c (bus_loop_iterate): don't touch disabled
12295         watches/timeouts
12296
12297         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12298
12299 2003-03-15  Havoc Pennington  <hp@pobox.com>
12300
12301         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12302         write useful test code, after all that futzing around ;-)
12303
12304         Test does not yet pass because we can't handle OOM in
12305         _dbus_transport_messages_pending (basically,
12306         dbus_connection_preallocate_send() does not prealloc the write
12307         watch). To fix this, I think we need to add new stuff to
12308         set_watch_functions, namely a SetEnabled function so we can alloc
12309         the watch earlier, then enable it later.
12310
12311         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12312         dbus-memory.c to the convenience lib
12313
12314         * bus/test.c: rename some static functions to keep them clearly
12315         distinct from stuff in connection.c. Handle client disconnection.
12316
12317 2003-03-14  Havoc Pennington  <hp@pobox.com>
12318
12319         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12320         transport, tests more of the real codepath. Set up clients
12321         with bus_setup_debug_client.
12322
12323         * bus/test.c (bus_setup_debug_client): function to set up debug
12324         "clients" on the main loop
12325
12326         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12327         support
12328
12329         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12330         server type
12331
12332         * dbus/dbus-server-debug.c: support a debug server based on pipes
12333
12334         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12335         (_dbus_close): new function
12336
12337         * configure.in: check for socketpair
12338
12339 2003-03-14  Havoc Pennington  <hp@redhat.com>
12340
12341         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12342         cheesy hack
12343
12344         * dbus/dbus-transport-debug.c: rework this a good bit to be
12345         less complicated. hopefully still works.
12346
12347         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12348         manually
12349
12350         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12351         after running it
12352
12353         * dbus/dbus-message.c (dbus_message_copy): rename from
12354         dbus_message_new_from_message, fix it up to copy
12355         all the message fields, add test case
12356
12357         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12358         not quite passing yet
12359
12360 2003-03-14  Havoc Pennington  <hp@pobox.com>
12361
12362         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12363         until no work remains" in test code. (the large diff here
12364         is just code movement, no actual changes)
12365
12366         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12367         1, no point waiting around for test code.
12368         (_dbus_server_debug_accept_transport): unref the timeout
12369         after adding it (right?)
12370
12371         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12372
12373 2003-03-13  Havoc Pennington  <hp@redhat.com>
12374
12375         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12376         out of memory
12377
12378         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12379         of memory
12380
12381         * dbus/dbus-connection.h: Make AddWatchFunction and
12382         AddTimeoutFunction return a bool so they can fail on out-of-memory
12383
12384         * bus/bus.c (bus_context_new): set up timeout handlers
12385
12386         * bus/connection.c (bus_connections_setup_connection): set up
12387         timeout handlers
12388
12389         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12390         can fail
12391
12392         * bus/bus.c (bus_context_new): adapt to changes
12393
12394         * bus/connection.c: adapt to changes
12395
12396         * test/watch.c: adapt to DBusWatch changes
12397
12398         * bus/dispatch.c (bus_dispatch_test): started adding this but
12399         didn't finish
12400
12401 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12402
12403         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12404
12405 2003-03-13  Havoc Pennington  <hp@pobox.com>
12406
12407         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12408         set up a test framework as for the library
12409
12410 2003-03-12  Havoc Pennington  <hp@pobox.com>
12411
12412         Throughout: purge global variables, introduce BusActivation,
12413         BusConnections, BusRegistry, etc. objects instead.
12414
12415         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12416         message bus object
12417
12418         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12419         going to redo this a bit differently I think
12420
12421 2003-03-12  Havoc Pennington  <hp@redhat.com>
12422
12423         Mega-patch that gets the message bus daemon initially handling
12424         out-of-memory. Work still needed. Also lots of random
12425         moving stuff to DBusError instead of ResultCode.
12426
12427         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12428
12429         * dbus/dbus-connection.c
12430         (dbus_connection_send_with_reply_and_block): use DBusError
12431
12432         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12433         DBusResultCode
12434
12435         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12436         code here, as the only failure possible is OOM.
12437
12438         * bus/connection.c (bus_connection_disconnect):
12439         rename bus_connection_disconnected as it's a notification only
12440
12441         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12442         "name" on get_args failure, should be done by get_args;
12443         don't disconnect client for bad args, just return an error.
12444         (bus_driver_handle_service_exists): ditto
12445
12446         * bus/services.c (bus_services_list): NULL-terminate returned array
12447
12448         * bus/driver.c (bus_driver_send_service_lost)
12449         (bus_driver_send_service_acquired): send messages from driver to a
12450         specific client to the client's unique name, not to the broadcast
12451         service.
12452
12453         * dbus/dbus-message.c (decode_header_data): reject messages that
12454         contain no name field
12455         (_dbus_message_get_client_serial): rename to
12456         dbus_message_get_serial and make public
12457         (_dbus_message_set_serial): rename from set_client_serial
12458         (_dbus_message_set_reply_serial): make public
12459         (_dbus_message_get_reply_serial): make public
12460
12461         * bus/connection.c (bus_connection_foreach): allow stopping
12462         iteration by returning FALSE from foreach function.
12463
12464         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12465         (dbus_connection_free_preallocated_send)
12466         (dbus_connection_preallocate_send): new API for sending a message
12467         without possibility of malloc failure.
12468         (dbus_connection_send_message): rename to just
12469         dbus_connection_send (and same for whole function family)
12470
12471         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12472
12473         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12474
12475         * bus/activation.c: handle/return errors
12476
12477         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12478
12479         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12480         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12481         (_dbus_result_from_errno): move to this file
12482
12483 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12484
12485         * dbus/dbus-marshal.c:
12486         (_dbus_marshal_set_string):
12487         Take a length argument so we can marshal the correct string
12488         length.
12489
12490         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12491         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12492         (_dbus_marshal_test):
12493         * dbus/dbus-marshal.h:
12494         Add support for marshalling and demarshalling dicts.
12495
12496         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12497         Add support for TYPE DICT.
12498
12499         * dbus/dbus-message.c: (set_string_field):
12500         Adjust header padding.
12501
12502         (dbus_message_append_args_valist), (dbus_message_append_dict),
12503         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12504         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12505         (check_message_handling), (check_have_valid_message):
12506         * dbus/dbus-message.h:
12507         Add functions for setting and getting dicts.
12508
12509         * dbus/dbus-protocol.h:
12510         Add DBUS_TYPE_DICT.
12511
12512         * dbus/dbus.h:
12513         Add dbus-dict.h
12514
12515         * doc/dbus-specification.sgml:
12516         Add information about how dicts are marshalled.
12517
12518         * test/data/invalid-messages/dict-with-nil-value.message:
12519         * test/data/invalid-messages/too-short-dict.message:
12520         * test/data/valid-messages/dict-simple.message:
12521         * test/data/valid-messages/dict.message:
12522         Add sample messages containing dicts.
12523
12524 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12525
12526         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12527
12528 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12529
12530         * dbus/Makefile.am:
12531         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12532         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12533         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12534         (dbus_dict_set_double), (dbus_dict_set_string),
12535         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12536         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12537         (dbus_dict_set_string_array), (_dbus_dict_test):
12538         * dbus/dbus-dict.h:
12539         Fix according to comments from Havoc.
12540
12541 2003-03-06  Michael Meeks  <michael@server.home>
12542
12543         * configure.in: if we don't have kde-config, disable have_qt.
12544
12545 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12546
12547         * dbus/Makefile.am:
12548         Add dbus-dict.[ch]
12549
12550         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12551         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12552         (dbus_dict_remove), (dbus_dict_get_value_type),
12553         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12554         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12555         (dbus_dict_put_double), (dbus_dict_put_string),
12556         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12557         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12558         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12559         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12560         (dbus_dict_get_double), (dbus_dict_get_string),
12561         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12562         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12563         (dbus_dict_get_string_array), (_dbus_dict_test):
12564         * dbus/dbus-dict.h:
12565         Add DBusDict implementation
12566
12567         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12568         * dbus/dbus-test.h:
12569         Add _dbus_dict_test
12570
12571 2003-03-04  Havoc Pennington  <hp@pobox.com>
12572
12573         * test/data/auth/*: adapt to changes
12574
12575         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12576         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12577         userid
12578
12579         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12580         more stuff from being in a context name, to make the protocol
12581         simpler to deal with
12582
12583         * dbus/dbus-errors.c (dbus_error_has_name): new function
12584         (dbus_error_is_set): new function
12585
12586         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12587         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12588
12589         * dbus/dbus-connection.c (dbus_connection_flush): also read
12590         messages during a flush operation
12591
12592         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12593
12594 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12595
12596         * configure.in: Check for gethostbyname on Solaris.
12597
12598         * dbus/dbus-transport.c: (_dbus_transport_open):
12599         Remove duplicate "tcp" entry.
12600
12601         * doc/dbus-specification.sgml:
12602         Clarify some things.
12603
12604 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12605
12606         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12607         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12608         (_dbus_keyring_test):
12609         * dbus/dbus-md5.c: (_dbus_md5_compute):
12610         * dbus/dbus-sha.c: (_dbus_sha_compute):
12611         Plug memory leaks.
12612
12613 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12614
12615         * README: Add some things.
12616
12617 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12618
12619         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12620         after case DBUS_TYPE_BOOELAN.
12621
12622 2003-03-02  Havoc Pennington  <hp@pobox.com>
12623
12624         * test/break-loader.c (randomly_set_extreme_ints): add test that
12625         sets really huge and small integers
12626
12627         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12628         that length of boolean array fits in the string, and that
12629         string has room for boolean value in single-bool case.
12630
12631         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12632         optional value to "ALIGN" command which is what to fill the
12633         alignment with.
12634
12635         * test/data/valid-messages/no-padding.message: add regression
12636         test for the message padding problem
12637
12638 2003-03-02  Havoc Pennington  <hp@pobox.com>
12639
12640         * dbus/dbus-message.c (decode_header_data): fix to always init
12641         message_padding, from Benjamin Dauvergne
12642
12643 2003-03-02  Havoc Pennington  <hp@pobox.com>
12644
12645         * configure.in: 0.5
12646
12647         * NEWS: Update.
12648
12649 2003-03-01  Joe Shaw  <joe@assbarn.com>
12650
12651         * configure.in: Check for "struct cmsgcred" and try to access its
12652         members for BSD-like unices.
12653
12654         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12655         _dbus_read_credentials_unix_socket().
12656         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12657         read() for reading the credential byte off the unix socket.  Use
12658         struct cmsgcred on systems that support it.
12659
12660 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12661
12662         * glib/Makefile.am:
12663         * configure.in:
12664         Make gthreads-2.0 dependency optional. Don't build thread test if
12665         its not found.
12666
12667 2003-02-27  Havoc Pennington  <hp@pobox.com>
12668
12669         * dbus/dbus-connection.c
12670         (dbus_connection_send_message_with_reply_and_block): fix doh!
12671         doh! doh! bug that resulted in never removing a reply from the
12672         queue, no wonder we called get_reply_serial so much ;-)
12673
12674         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12675         and client serial instead of demarshaling them every time
12676
12677 2003-02-27  Havoc Pennington  <hp@pobox.com>
12678
12679         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12680         more inlined, using dbus-string-private.h, speeds things up
12681         substantially
12682
12683         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12684         when freeing the string
12685         (_dbus_string_steal_data): fix for align offset
12686         (undo_alignment): new function
12687
12688 2003-02-26  Havoc Pennington  <hp@redhat.com>
12689
12690         All kinds of audit fixes from Owen, plus initial attempt to
12691         handle unaligned memory returned from malloc.
12692
12693         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12694         leave room for align_offset and nul byte
12695         (fixup_alignment): function to track an align_offset and
12696         ensure real->str is aligned
12697         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12698         to allow a nul byte plus align offset
12699         (_dbus_string_lock): fix overflow issue
12700         (_dbus_string_init_const_len): add assertions on sanity of len,
12701         assign allocated to be ALLOCATION_PADDING larger than len
12702         (set_length): fixup the overflow handling
12703         (_dbus_string_get_data_len): fix overflow in assertion
12704         (open_gap): detect overflow in size of gap to be opened
12705         (_dbus_string_lengthen): add overflow check
12706         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12707         (_dbus_string_append): add overflow check
12708         (_dbus_string_append_unichar): overflow
12709         (_dbus_string_delete): fix overflow in assertion
12710         (_dbus_string_copy_len): overflow in assertion
12711         (_dbus_string_replace_len): overflows in assertions
12712         (_dbus_string_find): change to implement in terms of
12713         _dbus_string_find_to
12714         (_dbus_string_find_to): assorted fixage
12715         (_dbus_string_equal_c_str): assert c_str != NULL,
12716         fix logic so the function works
12717         (_dbus_string_ends_with_c_str): fix overflow thingy
12718         (_dbus_string_base64_encode): overflow fix
12719         (_dbus_string_validate_ascii): overflow
12720         (_dbus_string_validate_nul): overflow
12721
12722 2003-02-26  Havoc Pennington  <hp@redhat.com>
12723
12724         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12725
12726 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12727
12728         * configure.in:
12729         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12730
12731         * dbus/dbus-connection.c:
12732         * dbus/dbus-connection.h:
12733         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12734         Add dbus_connection_set_wakeup_main_function and use it when queueing
12735         incoming and outgoing messages.
12736
12737
12738         * dbus/dbus-dataslot.c:
12739         Threadsafe usage of DBusDataSlotAllocator
12740
12741         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12742         dbus_new can fail.
12743
12744         * dbus/dbus-server-unix.c:
12745         Add todo comment
12746
12747         * glib/dbus-gmain.c:
12748         Implement the new wakeup functions for glib.
12749
12750         * glib/Makefile.am:
12751         * glib/test-thread-client.c:
12752         * glib/test-thread-server.c:
12753         * glib/test-thread.h:
12754         Initial cut at some thread test code. Not really done yet.
12755
12756 2003-02-26  Havoc Pennington  <hp@pobox.com>
12757
12758         * dbus/dbus-connection.c
12759         (dbus_connection_send_message_with_reply_and_block): fix crash
12760         where we ref'd the outgoing message instead of the returned reply
12761
12762         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12763         at the end of this function, so if we didn't need to read for
12764         authentication, we reinstall it for receiving messages
12765
12766         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12767         a NULL sender for peer-to-peer case
12768
12769         * dbus/dbus-transport-unix.c (check_read_watch): handle
12770         !authenticated case correctly
12771
12772         * glib/dbus-gmain.c: add support for DBusServer
12773
12774         * dbus/dbus-server.c: add data slot support
12775
12776         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12777         return values and handle errors
12778
12779         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12780         DBusConnection
12781
12782         * Doxyfile.in (INPUT): add glib subdir
12783
12784         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12785         setup_with_g_main instead of hookup_with_g_main; write docs
12786
12787 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12788
12789         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12790         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12791         * dbus/dbus-message.c: (dbus_message_append_boolean),
12792         (dbus_message_append_boolean_array),
12793         (dbus_message_get_args_valist), (_dbus_message_test):
12794         * dbus/dbus-message.h:
12795         * doc/dbus-specification.sgml:
12796         Various fixes as pointed out by Havoc.
12797
12798         * test/data/invalid-messages/bad-boolean-array.message:
12799         * test/data/invalid-messages/bad-boolean.message:
12800         Add invalid boolean value test cases.
12801
12802 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12803
12804         * dbus/dbus-internals.c: (_dbus_type_to_string):
12805         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12806         (_dbus_marshal_validate_arg):
12807         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12808         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12809         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12810         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12811         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12812         (dbus_message_iter_get_double),
12813         (dbus_message_iter_get_boolean_array), (message_iter_test):
12814         * dbus/dbus-message.h:
12815         * dbus/dbus-protocol.h:
12816         * doc/dbus-specification.sgml:
12817         * test/data/valid-messages/lots-of-arguments.message:
12818         Add support for boolean and boolean array types.
12819
12820 2003-02-23  Havoc Pennington  <hp@pobox.com>
12821
12822         * dbus/dbus-keyring.c: finish most of this implementation and
12823         simple unit test
12824
12825         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12826         these barf if the error isn't cleared to NULL
12827
12828         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12829         (_dbus_create_directory): new function
12830
12831         * dbus/dbus-errors.c (dbus_set_error): fix warning
12832
12833         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12834         (_dbus_string_hex_decode): new function
12835         (test_hex_roundtrip): test code
12836
12837         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12838
12839         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12840
12841         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12842         the save-to-temp/rename trick to atomically write the new file
12843         (_dbus_string_parse_uint): new function
12844
12845 2003-02-22  Havoc Pennington  <hp@pobox.com>
12846
12847         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12848
12849 2003-02-22  Havoc Pennington  <hp@pobox.com>
12850
12851         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12852         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12853
12854         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12855
12856         * dbus/test/data/sha-1: add US government test suite for SHA-1
12857
12858 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12859
12860         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12861         Make string arrays NULL-terminated.
12862
12863         * dbus/dbus-memory.c: (dbus_free_string_array):
12864         * dbus/dbus-memory.h:
12865         New function for freeing NULL-terminated string arrays.
12866
12867         * dbus/dbus-message-builder.c: (append_quoted_string),
12868         (_dbus_message_data_load):
12869         Add support for array types.
12870
12871         * dbus/dbus-message.c: (check_message_handling):
12872         Add more types as test cases.
12873
12874         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12875         (_dbus_string_parse_double):
12876         Add the start offset to the end offset.
12877
12878         * test/data/valid-messages/lots-of-arguments.message:
12879         New test message with lots of arguments.
12880
12881 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12882
12883         * dbus/dbus-message.c: (dbus_message_append_nil),
12884         (dbus_message_append_int32), (dbus_message_append_uint32),
12885         (dbus_message_append_double), (dbus_message_append_string),
12886         (dbus_message_append_int32_array),
12887         (dbus_message_append_uint32_array),
12888         (dbus_message_append_double_array),
12889         (dbus_message_append_byte_array),
12890         (dbus_message_append_string_array):
12891         Fix all out-of-memory handling in these functions.
12892
12893 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12894
12895         * dbus/dbus-message.c: (dbus_message_append_nil):
12896         Fix a silly.
12897
12898 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12899
12900         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12901         (dbus_message_append_nil), (dbus_message_append_int32_array),
12902         (dbus_message_append_uint32_array),
12903         (dbus_message_append_double_array),
12904         (dbus_message_append_byte_array),
12905         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12906         (dbus_message_iter_get_int32_array),
12907         (dbus_message_iter_get_uint32_array),
12908         (dbus_message_iter_get_double_array),
12909         (dbus_message_iter_get_byte_array),
12910         (dbus_message_iter_get_string_array):
12911
12912         * dbus/dbus-message.h:
12913         Add functions for appending and getting arrays.
12914
12915 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12916
12917         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12918         element size at least 8 bytes, fixes mempool tests on
12919         64-bit machines.
12920
12921 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12922
12923         * dbus/dbus-transport-unix.c (unix_do_iteration):
12924         Unlock the connection mutex during a blocking select call.
12925         Add todo about how we need a way to wake up the select.
12926
12927         * dbus/dbus-connection-internal.h:
12928         * dbus/dbus-connection.c:
12929         Add _dbus_connection_lock and _dbus_connection_unlock.
12930
12931 2003-02-19  Havoc Pennington  <hp@pobox.com>
12932
12933         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12934         Doxyfile.in, not Doxyfile
12935
12936         * dbus/dbus-keyring.c: do some hacking on this
12937
12938         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12939
12940         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12941         dbus_error_init
12942         (dbus_set_error): remove dbus_error_init, check for message ==
12943         NULL *before* we sprintf into it, and add @todo about including
12944         system headers in this file
12945
12946         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12947
12948         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12949
12950         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12951         get various bits of user information based on either username
12952         or user ID
12953         (_dbus_homedir_from_username): new function
12954
12955 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12956
12957         * configure.in:
12958         Add check for nonposix getpwnam_r
12959
12960         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12961         Align the pool element size to a sizeof (void *) boundary.
12962
12963         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12964         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12965         General Solaris fixes.
12966
12967         * test/data/valid-messages/simplest-manual.message:
12968         Explicitly state that we want little-endian packing.
12969
12970 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12971
12972         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12973
12974         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12975         Added to create a transport connecting using a tcp/ip socket.
12976
12977         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12978         to a tcp socket at given host and port.
12979         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12980         hostname and port.
12981
12982         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12983
12984         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12985         Added to create a server listening on a TCP/IP socket.
12986
12987 2003-02-19  Havoc Pennington  <hp@pobox.com>
12988
12989         Throughout: mop up all the Doxygen warnings and undocumented
12990         stuff.
12991
12992         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12993         to search any paths.
12994
12995         * dbus/dbus-threads.c: move global mutex initializers to
12996         dbus-internals.h, multiple prototypes was confusing doxygen
12997         besides being kind of ugly
12998
12999         * Doxyfile (PREDEFINED): have Doxygen define
13000         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13001         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13002         (do not abuse the feature! it's for stuff like the autogenerated
13003         macros in dbus-md5.c, not just for things you don't feel like
13004         documenting...)
13005
13006 2003-02-18  Havoc Pennington  <hp@pobox.com>
13007
13008         * dbus/dbus-string.c (_dbus_string_zero): new function
13009
13010         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13011         wrap it in some dbus-friendly API
13012
13013         * dbus/dbus-types.h: add 16-bit types
13014
13015 2003-02-18  Joe Shaw  <joe@assbarn.com>
13016
13017         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13018         credentials from our currently running process.
13019         (get_word): Fix a buglet where we were copying the entire length
13020         instead of relative to our position.
13021
13022         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13023         keys on the stack... it's 640k of data.
13024
13025         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13026         read the credentials byte off the socket, even if we don't have
13027         SO_PEERCRED.
13028         (_dbus_poll): Implement poll() using select() for systems which
13029         don't have it.
13030
13031         * glib/test-dbus-glib.c (main): Print out an error if no
13032         parameters are given.
13033
13034         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13035         can fallback to a secondary auth mechanism if the first fails.
13036
13037 2003-02-18  Havoc Pennington  <hp@pobox.com>
13038
13039         * AUTHORS: add Alex
13040
13041 2003-02-17  Havoc Pennington  <hp@pobox.com>
13042
13043         * doc/dbus-specification.sgml: lots of cosmetic
13044         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13045         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13046         s/server/bus/ (except in authentication section). Add a section
13047         "Message Bus Message Routing"
13048
13049 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13050
13051         Release 0.4
13052
13053         * NEWS: Update
13054
13055 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13056
13057         * doc/dbus-specification.sgml:
13058         Specification updates.
13059
13060 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13061
13062         * bus/activation.c: (bus_activation_init), (child_setup),
13063         (bus_activation_activate_service):
13064         * bus/activation.h:
13065         * bus/main.c: (main):
13066         Set DBUS_ADDRESS environment variable.
13067
13068         * dbus/dbus-errors.c: (dbus_set_error):
13069         Don't use va_copy since that's a C99 feature.
13070
13071         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13072         (_dbus_spawn_async):
13073         * dbus/dbus-sysdeps.h:
13074         Add child_setup_func to _dbus_spawn_async.
13075
13076         * doc/dbus-specification.sgml:
13077         Update specification.
13078
13079         * test/spawn-test.c: (setup_func), (main):
13080         Fix test.
13081
13082 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13083
13084         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13085         Added todo.
13086
13087 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13088
13089         * doc/.cvsignore:
13090         * doc/Makefile.am:
13091         * doc/dbus-test-plan.sgml:
13092         Add test plan document.
13093
13094         * test/Makefile.am:
13095         Fix distcheck.
13096
13097 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13098
13099         * dbus/dbus-message.c: (decode_header_data),
13100         (_dbus_message_loader_return_buffer):
13101         Set the header padding amount when loading a message.
13102
13103 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13104
13105         * bus/dispatch.c: (send_one_message):
13106         Only send broadcast messages to registered connections.
13107
13108         * dbus/dbus-message.c: (dbus_message_name_is):
13109         * dbus/dbus-message.h:
13110         New convenience function.
13111
13112         * dbus/dbus-transport-debug.c: (do_reading):
13113         Only dispatch one message per run.
13114
13115         * test/Makefile.am:
13116         * test/bus-test.c: (new_connection_callback), (die),
13117         (test_hello_client1_handler), (test_hello_client2_handler),
13118         (test_hello_replies), (main):
13119
13120         * test/bus-test-loop.[ch]:
13121         Add these.
13122
13123 2003-02-16  Havoc Pennington  <hp@pobox.com>
13124
13125         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13126         backward conditional
13127
13128 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13129
13130         * dbus/dbus-connection.c:
13131         Implement sent_message_with_reply. (with_reply_and block is still
13132         busted).
13133         Made dispatch_message not lose message if OOM.
13134
13135         * dbus/dbus-errors.h:
13136         Add NoReply error (for reply timeouts).
13137
13138 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13139
13140         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13141         Actually free keys and values when destroying hashtable.
13142
13143 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13144
13145         * dbus/dbus-auth.c: (client_try_next_mechanism):
13146         Plug a leak.
13147
13148         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13149         Return TRUE if there's no thread implementation around.
13150
13151         * glib/dbus-gmain.c: (free_source),
13152         (dbus_connection_hookup_with_g_main):
13153         Make sure to remove the GSource when the connection is finalized.
13154
13155 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13156
13157         * bus/dispatch.c: (bus_dispatch_message_handler):
13158         * dbus/dbus-errors.h:
13159         Return an error if someone tries to send a message to a service
13160         that doesn't exist.
13161
13162 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13163
13164         * bus/activation.c: (load_directory), (bus_activation_init),
13165         (bus_activation_activate_service):
13166         * bus/activation.h:
13167         * bus/driver.c:
13168         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13169         More work on the activation handling.
13170
13171         * dbus/dbus-errors.h:
13172         Add some error messages
13173
13174         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13175         * dbus/dbus-message.h:
13176         New function that creates an error message.
13177
13178         * dbus/dbus-protocol.h:
13179         Add ACTIVATE_SERVER message.
13180
13181         * dbus/dbus-server-unix.c: (unix_handle_watch),
13182         (_dbus_server_new_for_domain_socket):
13183         Call _dbus_fd_set_close_on_exec.
13184
13185         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13186         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13187         (_dbus_fd_set_close_on_exec):
13188         * dbus/dbus-sysdeps.h:
13189         Add _dbus_fd_set_close_on exec function. Also add function that checks
13190         that all open fds are set to close-on-exec and warns otherwise.
13191
13192         * dbus/dbus-transport-unix.c:
13193         (_dbus_transport_new_for_domain_socket):
13194         Call _dbus_fd_set_close_on_exec.
13195
13196 2003-02-16  Havoc Pennington  <hp@pobox.com>
13197
13198         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13199         allow people to avoid setting SIGPIPE to SIG_IGN
13200         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13201         we've been asked not to
13202
13203 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13204
13205         * dbus/dbus-list.c: (_dbus_list_append_link),
13206         (_dbus_list_prepend_link):
13207         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13208         (dbus_realloc):
13209         Warning fixes.
13210
13211 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13212
13213         * bus/Makefile.am:
13214         * bus/activation.c: (bus_activation_entry_free),
13215         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13216         * bus/activation.h:
13217         * bus/main.c: (main):
13218         Add simple activation support, doesn't work yet though.
13219
13220 2003-02-15   Zack Rusin  <zack@kde.org>
13221
13222         * qt/dbus-qthread.cpp:  small casting fix
13223
13224 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13225
13226         * dbus/dbus-errors.c: (dbus_set_error):
13227         * dbus/dbus-errors.h:
13228         Add a few errors and make dbus_set_error void.
13229
13230         * dbus/dbus-sysdeps.c:
13231         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13232         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13233         * dbus/dbus-sysdeps.h:
13234         Add _dbus_spawn_async.
13235
13236         * test/spawn-test.c: (main):
13237         Test for _dbus_spawn_async.
13238
13239 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13240
13241         * dbus/dbus-internals.h:
13242         Fix build without tests.
13243
13244         * dbus/dbus-list.c: (alloc_link):
13245         Fix a segfault when a malloc fails.
13246
13247         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13248         (dbus_malloc0), (dbus_realloc):
13249         Add support for malloc debugging.
13250
13251 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13252
13253         * dbus/dbus-threads.c:
13254         * dbus/dbus-threads.h:
13255         Add condvars. Remove static mutext from API.
13256         Implement static mutexes by initializing them from threads_init.
13257
13258         * glib/dbus-gthread.c:
13259         * qt/dbus-qthread.cpp:
13260         Update with the thread api changes.
13261
13262
13263         * dbus/dbus-list.c:
13264         * dbus/dbus-list.h:
13265         Turn StaticMutex into normal mutex + init function.
13266         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13267         _dbus_list_append_link, _dbus_list_prepend_link
13268
13269
13270         * dbus/dbus-sysdeps.c:
13271         * dbus/dbus-sysdeps.h:
13272         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13273         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13274
13275         * dbus/dbus-protocol.h:
13276         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13277
13278         * dbus/dbus-message.c:
13279         Make ref/unref atomic.
13280         Fix some docs.
13281
13282         * dbus/dbus-connection-internal.h:
13283         * dbus/dbus-connection.c:
13284         * dbus/dbus-connection.h:
13285         Make threadsafe.
13286         Change _peek to _borrow,_return & _steal_borrowed.
13287         Change disconnect callback to event.
13288         Make dbus_connection_dispatch_messages reentrant.
13289
13290         * dbus/dbus-transport.c:
13291         Don't ref the connection on calls to the transport
13292         implementation.
13293
13294         * dbus/dbus-message-handler.c:
13295         Make threadsafe.
13296
13297         * glib/dbus-gmain.c:
13298         Don't use peek_message anymore
13299
13300         * test/Makefile.am:
13301         * test/debug-thread.c:
13302         * test/debug-thread.h:
13303         Simple thread implementation that asserts() on deadlocks in
13304         single-threaded code.
13305
13306         * test/bus-test.c:
13307         (main) Call debug_threads_init.
13308
13309         * test/watch.c:
13310         Use disconnect message instead of disconnect callback.
13311
13312         * bus/connection.c:
13313         * bus/connection.h:
13314         Don't call dbus_connection_set_disconnect_function. Instead export
13315         bus_connection_disconnect.
13316
13317         * bus/dispatch.c:
13318         Call bus_connection_disconnect when we get a disconnected message.
13319
13320 2003-02-15  Havoc Pennington  <hp@pobox.com>
13321
13322         * dbus/dbus-message.c (dbus_message_new): fool around with the
13323         docs
13324
13325 2003-02-14  Havoc Pennington  <hp@pobox.com>
13326
13327         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13328
13329         * dbus/dbus-memory.c: fail if the debug functions indicate we
13330         should
13331
13332         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13333         (_dbus_decrement_fail_alloc_counter): debug functions to
13334         simulate memory allocation failures
13335
13336 2003-02-14  Havoc Pennington  <hp@pobox.com>
13337
13338         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13339         to DBusError
13340
13341 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13342
13343         * bus/driver.c: (bus_driver_handle_hello):
13344         * bus/driver.h:
13345         * bus/services.c: (bus_service_lookup):
13346         Reorder message sending so we get a more sane order.
13347
13348         * test/bus-test.c: (message_handler):
13349         Fix tyop.
13350
13351 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13352
13353         * bus/driver.c: (bus_driver_send_service_deleted),
13354         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13355         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13356         (bus_driver_send_welcome_message),
13357         (bus_driver_handle_list_services),
13358         (bus_driver_handle_acquire_service),
13359         (bus_driver_handle_service_exists):
13360         * dbus/dbus-bus.c: (dbus_bus_register_client),
13361         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13362         * dbus/dbus-errors.c: (dbus_result_to_string):
13363         * dbus/dbus-errors.h:
13364         * dbus/dbus-message.c: (dbus_message_append_args),
13365         (dbus_message_append_args_valist), (dbus_message_get_args),
13366         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13367         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13368         (dbus_message_iter_get_byte_array),
13369         (dbus_message_iter_get_string_array), (message_iter_test),
13370         (check_message_handling), (_dbus_message_test):
13371         * dbus/dbus-message.h:
13372         * test/bus-test.c: (main):
13373         Change fields to arguments in messages, so that they won't be
13374         confused with header fields.
13375
13376         * glib/test-dbus-glib.c: (main):
13377         Remove append_fields from hello message.
13378
13379 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13380
13381         * dbus/dbus-errors.c:
13382         * dbus/dbus-message.c:
13383         * dbus/dbus-string.c:
13384         Documentation fixes.
13385
13386 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13387
13388         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13389         (remove_timeout):
13390         Implement support for timeouts in dbus-glib.
13391
13392 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13393
13394         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13395         * dbus/dbus-message.c: (process_test_subdir):
13396         * test/break-loader.c: (find_breaks_based_on):
13397         Plug some memory leaks.
13398
13399 2003-02-13  Richard Hult  <rhult@codefactory.se>
13400
13401         * bus/main.c: Fix build.
13402
13403         * dbus/dbus-errors.h:
13404         * dbus/dbus-errors.c: Fix copyright for Anders.
13405
13406 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13407
13408         * bus/Makefile.am:
13409         Add utils.[ch]
13410
13411         * bus/connection.c: (bus_connection_foreach):
13412         Fix a warning.
13413
13414         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13415         (unescape_string), (new_section), (parse_section_start),
13416         (parse_key_value), (report_error), (bus_desktop_file_load),
13417         (bus_desktop_file_get_string):
13418         * bus/desktop-file.h:
13419         Use DBusError for error reporting.
13420
13421         * bus/dispatch.c: (send_one_message),
13422         (bus_dispatch_message_handler):
13423         * bus/driver.c: (bus_driver_send_service_deleted),
13424         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13425         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13426         (bus_driver_send_welcome_message),
13427         (bus_driver_handle_list_services),
13428         (bus_driver_handle_acquire_service),
13429         (bus_driver_handle_service_exists):
13430         * bus/loop.c: (bus_loop_run):
13431         * bus/main.c:
13432         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13433
13434         * bus/utils.c: (bus_wait_for_memory):
13435         * bus/utils.h:
13436         New files with general utility functions.
13437
13438         * dbus/dbus-internals.h:
13439         Remove _DBUS_HANDLE_OOM.
13440
13441 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13442
13443         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13444         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13445         * dbus/dbus-errors.h:
13446         Add DBusError structure.
13447
13448 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13449
13450         * test/data/valid-messages/standard-acquire-service.message:
13451         * test/data/valid-messages/standard-hello.message:
13452         * test/data/valid-messages/standard-list-services.message:
13453         * test/data/valid-messages/standard-service-exists.message:
13454         Add some standard messages.
13455
13456 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13457
13458         * bus/driver.c: (bus_driver_send_welcome_message),
13459         (bus_driver_handle_list_services),
13460         (bus_driver_handle_acquire_service),
13461         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13462         Update for API changes in libdbus.
13463
13464         * dbus/dbus-message.c: (dbus_message_new_reply):
13465         * dbus/dbus-message.h:
13466         Remove the name argument. The spec states that replies shouldn't
13467         have a name.
13468
13469 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13470
13471         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13472         (report_error), (bus_desktop_file_load), (lookup_section),
13473         (lookup_line), (bus_desktop_file_get_raw),
13474         (bus_desktop_file_get_string):
13475         * bus/desktop-file.h:
13476         Some fixes, and new functions for getting a key value from a section.
13477
13478 2003-02-13  Havoc Pennington  <hp@pobox.com>
13479
13480         * test/data/auth/fail-after-n-attempts.auth-script: new test
13481
13482         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13483         reject the client.
13484
13485 2003-02-13  Havoc Pennington  <hp@pobox.com>
13486
13487         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13488         dbus_credentials_match were backward
13489
13490         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13491         NO_CREDENTIALS and ROOT_CREDENTIALS
13492
13493         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13494         into here. Never process more commands after we've reached an
13495         end state; store further data as unused bytes.
13496
13497         * test/data/auth/*: add more auth tests
13498
13499         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13500         command to match exact string and EXPECT_UNUSED to match unused
13501         bytes
13502
13503         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13504
13505 2003-02-12  Havoc Pennington  <hp@pobox.com>
13506
13507         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13508         \r off of popped lines
13509
13510         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13511         scripts
13512
13513         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13514         SEND, append \r\n
13515
13516 2003-02-12  Havoc Pennington  <hp@pobox.com>
13517
13518         * dbus/Makefile.am: remove break-loader from the build, since it
13519         moved.
13520
13521         * configure.in: add --enable-gcov to turn on coverage profiling
13522         flags and disable optimization
13523
13524 2003-02-10  Havoc Pennington  <hp@pobox.com>
13525
13526         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13527         initial cut at test framework for DBusAuth from laptop.
13528         Doesn't quite work yet but it compiles and I need to get
13529         it off the 266mhz laptop. ;-)
13530
13531         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13532         fix a memleak in error case
13533
13534 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13535
13536         * bus/Makefile.am:
13537         * bus/desktop-file.c:
13538         * bus/desktop-file.h:
13539         Add a desktop file parser.
13540
13541 2003-02-11  Zack Rusin  <zack@kde.org>
13542
13543         * qt/message.[h|cpp]: sample implementation
13544         of the KDE wrapper for DBusMessage
13545
13546 2003-02-09  Zack Rusin  <zack@kde.org>
13547
13548         * test/bus-test.c: make_it_compile
13549         * doc/dbus-specification.sgml: minimal semantic fix
13550
13551 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13552
13553         Release 0.3
13554
13555         * NEWS: Update
13556
13557 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13558
13559         * dbus/Makefile.am:
13560         * dbus/dbus-break-loader.c:
13561         * test/Makefile.am:
13562         * test/break-loader.c:
13563         Move dbus-break-loader to test/ and rename it to break-loader.
13564
13565 2003-02-02  Havoc Pennington  <hp@pobox.com>
13566
13567         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13568         for code to manage cookies in your home directory
13569
13570         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13571
13572         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13573         to authenticate, then disconnect the client.
13574
13575 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13576
13577         * dbus/dbus-message.c (dbus_message_append_fields):
13578         Correct docs.
13579
13580 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13581
13582         * doc/dbus-specification.sgml:
13583         Update address format section.
13584
13585 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13586
13587         * test/Makefile.am:
13588         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13589         (message_handler), (new_connection_callback), (loop_quit),
13590         (loop_run), (main):
13591         Add bus test.
13592
13593 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13594
13595         * bus/driver.c: (bus_driver_handle_service_exists):
13596         Simplify the code a bit.
13597
13598         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13599         Fix a silly.
13600
13601 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13602
13603         * bus/Makefile.am:
13604         Add libdbus-daemon.la and link to it.
13605
13606 2003-02-01  James Willcox  <jwillcox@gnome.org>
13607
13608         * bus/driver.c: (bus_driver_handle_own_service):
13609         Actually include the service reply code in the message.
13610
13611 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13612
13613         * bus/driver.c: (bus_driver_handle_service_exists):
13614         Don't unref the incoming message.
13615
13616 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13617
13618         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13619
13620 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13621
13622         * dbus/dbus-server.c: (dbus_server_listen):
13623         * dbus/dbus-transport.c: (_dbus_transport_open):
13624         ifdef out the calls to the debug transport and server.
13625
13626 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13627
13628         * dbus/dbus-watch.c (dbus_watch_get_flags):
13629         Add note in the docs that ERROR or HANGUP won't be returned
13630         and are assumed always on.
13631
13632         * glib/dbus-gmain.c (add_watch):
13633         Always add IO_ERR | IO_HUP
13634
13635         * dbus/dbus-message.h:
13636         Add semicolon after dbus_message_iter_get_string_array().
13637         Makes qt code build again
13638
13639 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13640
13641         * bus/driver.c: (create_unique_client_name),
13642         (bus_driver_handle_hello):
13643         Don't take a name, just use a numeric id to identify
13644         each client.
13645
13646         * dbus/Makefile.am:
13647         * dbus/dbus-bus.c: (dbus_bus_register_client),
13648         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13649         * dbus/dbus-bus.h:
13650         Add new convenience functions for communicating with the bus.
13651
13652         * dbus/dbus-message.h:
13653
13654         * dbus/dbus-protocol.h:
13655         Fix a typo.
13656
13657 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13658
13659         * dbus/dbus-message.c (dbus_message_append_fields):
13660         Add some more doc comments.
13661
13662 2003-02-01  Havoc Pennington  <hp@pobox.com>
13663
13664         * dbus/dbus-break-loader.c (randomly_modify_length): change
13665         a 4-byte value in the message as if it were a length
13666
13667         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13668         execute bit on saved files
13669
13670 2003-02-01  Havoc Pennington  <hp@pobox.com>
13671
13672         * dbus/dbus-break-loader.c (main): new program to find messages
13673         that break the loader.
13674
13675         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13676         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13677
13678         * dbus/dbus-string.c (_dbus_string_set_byte): new
13679
13680 2003-01-31  Havoc Pennington  <hp@pobox.com>
13681
13682         * dbus/dbus-message.c: refactor the test code to be more general,
13683         in preparation for writing a "randomly permute test cases to
13684         try to break the loader" program.
13685
13686 2003-01-31  Havoc Pennington  <hp@pobox.com>
13687
13688         * doc/dbus-specification.sgml: work on the specification
13689
13690         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13691         the protocol version of the message.
13692
13693         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13694         no longer specifies that.
13695         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13696         1/2/3/4)
13697
13698         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13699         "break" for DBUS_TYPE_NIL, remove @todo
13700
13701 2003-01-31  Havoc Pennington  <hp@pobox.com>
13702
13703         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13704         just set_is_error/get_is_error as this is a commonly-used
13705         function, and write docs.
13706
13707 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13708
13709         * dbus/dbus-address.c: (dbus_address_entry_free):
13710         Free key and value lists.
13711
13712         * dbus/dbus-internals.c: (_dbus_type_to_string):
13713         Add the types we didn't have.
13714
13715         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13716         (_dbus_marshal_validate_arg):
13717         Add NIL types.
13718
13719         * dbus/dbus-message.c: (dbus_message_set_sender):
13720         Remove todo about being able to set sender to NULL.
13721
13722         (dbus_message_set_is_error_reply),
13723         (dbus_message_get_is_error_reply):
13724         * dbus/dbus-message.h:
13725         New functions.
13726
13727         * dbus/dbus-protocol.h:
13728         Add error reply flag.
13729
13730         * test/data/valid-messages/opposite-endian.message:
13731         Add NIL type to test.
13732
13733 2003-01-31  Havoc Pennington  <hp@pobox.com>
13734
13735         * doc/dbus-specification.sgml: fully specify the header.  Add
13736         flags and major protocol version, and change header/body len to
13737         unsigned.
13738
13739         * dbus/dbus-message-builder.c (append_saved_length): append length
13740         as uint32
13741
13742         * dbus/dbus-message.c (dbus_message_create_header): change header
13743         length and body length to unsigned. Add the new fields from the
13744         spec
13745         (_dbus_message_loader_return_buffer): unsigned header/body len
13746
13747 2003-01-30  Havoc Pennington  <hp@pobox.com>
13748
13749         * dbus/dbus-auth.c: rework to use only REJECTED, no
13750         MECHANISMS
13751
13752         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13753         use REJECTED, suggested by Mark McLoughlin
13754
13755 2003-01-30  Havoc Pennington  <hp@pobox.com>
13756
13757         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13758         a better way to report errors here. e.g.  "unix address lacks
13759         path" or something. also "no such file" when the path doesn't
13760         exist, etc.
13761
13762         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13763         leaking list nodes
13764         (dbus_parse_address): add @todo about documenting address format,
13765         and allowing , and ; to be escaped
13766
13767 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13768
13769         * dbus/Makefile.am:
13770         Add dbus-address.[ch]
13771
13772         * dbus/dbus-address.c: (dbus_address_entry_free),
13773         (dbus_address_entries_free), (create_entry),
13774         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13775         (dbus_parse_address), (_dbus_address_test):
13776         * dbus/dbus-address.h:
13777         New files for dealing with address parsing.
13778
13779         * dbus/dbus-connection.c:
13780         Document timeout functions.
13781
13782         * dbus/dbus-message.c:
13783         Document dbus_message_new_from_message.
13784
13785         * dbus/dbus-server-debug.c:
13786         Document.
13787
13788         * dbus/dbus-server.c: (dbus_server_listen):
13789         Parse address and use correct server implementation.
13790
13791         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13792         * dbus/dbus-string.h:
13793         New function with test.
13794
13795         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13796         * dbus/dbus-test.h:
13797         Add address tests.
13798
13799         * dbus/dbus-transport-debug.c:
13800         Document.
13801
13802         * dbus/dbus-transport.c: (_dbus_transport_open):
13803         Parse address and use correct transport implementation.
13804
13805 2003-01-30  Havoc Pennington  <hp@pobox.com>
13806
13807         * dbus/dbus-message.c: use message->byte_order instead of
13808         DBUS_COMPILER_BYTE_ORDER throughout.
13809         (dbus_message_create_header): pad header to align the
13810         start of the body of the message to 8-byte boundary
13811
13812         * dbus/dbus-marshal.h: make all the demarshalers take const
13813         DBusString arguments.
13814
13815         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13816         validate message args here, so we don't have to do slow validation
13817         later, and so we catch bad messages as they are incoming. Also add
13818         better checks on header_len and body_len. Also fill in
13819         message->byte_order
13820
13821         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13822         implemented properly)
13823         (_dbus_string_validate_nul): new function to check all-nul
13824
13825         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13826         get_arg_end_pos and remove all validation
13827         (_dbus_marshal_validate_arg): actually do validation here.
13828
13829 2003-01-29  Havoc Pennington  <hp@pobox.com>
13830
13831         * dbus/dbus-message.c (check_message_handling): fix assertion
13832         failure on set_client_serial
13833
13834 2003-01-28  Havoc Pennington  <hp@pobox.com>
13835
13836         * dbus/dbus-server-debug.c: Add doc section comments
13837
13838         * dbus/dbus-transport-debug.c: add doc section comments
13839
13840 2003-01-28  Havoc Pennington  <hp@redhat.com>
13841
13842         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13843         the reverse order from how I had it
13844         (_dbus_string_base64_encode): reverse encoding order. I was
13845         basically byteswapping everything during encoding.
13846
13847 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13848
13849         * dbus/dbus-connection-internal.h:
13850         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13851         (_dbus_connection_remove_timeout):
13852         Add functions for adding and removing timeouts.
13853
13854         * dbus/dbus-message.c: (dbus_message_new_from_message):
13855         Add new function that takes a message and creates an exact
13856         copy of it, but with the refcount set to 1.
13857         (check_message_handling):
13858         Fix build error.
13859
13860         * dbus/dbus-server-protected.h:
13861         * dbus/dbus-server.c: (_dbus_server_init_base),
13862         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13863         (dbus_server_set_timeout_functions):
13864         (_dbus_server_remove_timeout):
13865         New functions so that a server can add and remove timeouts.
13866
13867         (dbus_server_listen):
13868         Add commented out call to dbus_server_debug_new.
13869
13870         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13871         Actually set the handler, doh.
13872
13873         * dbus/dbus-transport.c: (_dbus_transport_open):
13874         Add commented out call to dbus_transport_debug_client_new.
13875
13876         * dbus/Makefile.am:
13877         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13878
13879 2003-01-28  Havoc Pennington  <hp@pobox.com>
13880
13881         * dbus/dbus-message.c (check_message_handling): function to check
13882         on the loaded message, iterates over it etc.
13883
13884 2003-01-28  Havoc Pennington  <hp@pobox.com>
13885
13886         * test/Makefile.am (dist-hook): fix make distdir
13887
13888         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13889
13890 2003-01-27  Havoc Pennington  <hp@pobox.com>
13891
13892         * dbus/dbus-mempool.c (time_for_size): replace printf with
13893         _dbus_verbose
13894
13895         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13896         empty lines; fix the SAVE_LENGTH stuff to be
13897         START_LENGTH/END_LENGTH so it actually works; couple other
13898         bugfixes
13899
13900         * test/Makefile.am (dist-hook): add dist-hook for .message files
13901
13902         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13903         can be constant or locked.
13904         (_dbus_string_free): allow freeing a const string as
13905         documented/intended
13906
13907         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13908
13909         * dbus/dbus-test-main.c (main): take an argument which is the
13910         directory containing test data
13911
13912         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13913         argument to this and load all the messages in test/data/
13914         checking that they can be loaded or not loaded as appropriate.
13915
13916 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13917
13918         * bus/dispatch.c: (bus_dispatch_message_handler):
13919         Dispatch messages sent to services.
13920
13921         * bus/driver.c: (bus_driver_send_service_deleted),
13922         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13923         (bus_driver_send_service_acquired):
13924         Add helper functions for sending service related messages.
13925
13926         (bus_driver_send_welcome_message):
13927         Send HELLO_REPLY instead of WELCOME.
13928
13929         (bus_driver_handle_list_services):
13930         Send LIST_SERVICES_REPLY instead of SERVICES.
13931
13932         (bus_driver_handle_own_service),
13933         (bus_driver_handle_service_exists):
13934         New message handlers.
13935
13936         (bus_driver_handle_message):
13937         Invoke new message handlers.
13938
13939         (bus_driver_remove_connection):
13940         Don't remove any services here since that's done automatically
13941         by bus_service_remove_owner now.
13942
13943         * bus/driver.h:
13944         New function signatures.
13945
13946         * bus/services.c: (bus_service_add_owner):
13947         Send ServiceAcquired message if we're the only primary owner.
13948
13949         (bus_service_remove_owner):
13950         Send ServiceAcquired/ServiceLost messages.
13951
13952         (bus_service_set_prohibit_replacement),
13953         (bus_service_get_prohibit_replacement):
13954         Functions for setting prohibit replacement.
13955
13956         (bus_service_has_owner):
13957         New function that checks if a connection is in the owner queue of
13958         a certain service.
13959
13960         * bus/services.h:
13961         Add new function signatures.
13962
13963         * dbus/dbus-list.c: (_dbus_list_test):
13964         Add tests for _dbus_list_remove_last and traversing the list backwards.
13965
13966         * dbus/dbus-list.h:
13967         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13968         go any further, so return NULL then.
13969
13970         * dbus/dbus-protocol.h:
13971         Add new messages, service flags and service replies.
13972
13973 2003-01-26  Havoc Pennington  <hp@pobox.com>
13974
13975         * dbus/dbus-message-builder.c: implement, completely untested.
13976
13977         * test/data/*: add data to be used in testing.
13978         ".message" files are our simple loadable text format.
13979         ".message-raw" will be binary dumps of messages.
13980
13981         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13982
13983 2003-01-26  Havoc Pennington  <hp@pobox.com>
13984
13985         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13986
13987         * dbus/dbus-errors.c (dbus_result_to_string): add
13988         file errors
13989
13990         * dbus/dbus-message-builder.c: new file, will contain code to load
13991         up messages from files. Not implemented yet.
13992
13993 2003-01-26  Havoc Pennington  <hp@pobox.com>
13994
13995         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13996         the sender by setting to NULL
13997
13998 2003-01-26  Havoc Pennington  <hp@pobox.com>
13999
14000         The unit tests pass, but otherwise untested.  If it breaks, the
14001         tests should have been better. ;-)
14002
14003         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14004         the connection.
14005
14006         * dbus/dbus-message.c: redo everything so we maintain
14007         message->header as the only copy of the various fields.
14008         This avoids the possibility of out-of-memory in some cases,
14009         for example dbus_message_lock() can't run out of memory anymore,
14010         and avoids extra copying. Figured I may as well go ahead and do
14011         this since it was busted for dbus_message_lock to not return
14012         failure on OOM, and dbus_message_write_header was totally
14013         unchecked for OOM. Also fixed some random other bugs.
14014
14015         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14016         that strings are nul-terminated. Also, end_pos can be equal
14017         to string length just not greater than, I think.
14018         (_dbus_marshal_set_int32): new function
14019         (_dbus_marshal_set_uint32): new function
14020         (_dbus_marshal_set_string): new function
14021
14022         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14023         a warning, init timeout_list to NULL
14024         (dbus_connection_send_message): don't use uninitialized variable
14025         "serial"
14026
14027         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14028
14029 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14030
14031         * bus/driver.c: (bus_driver_handle_hello),
14032         (bus_driver_send_welcome_message):
14033         Plug leaks
14034
14035 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14036
14037         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14038         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14039         (dbus_connection_unref):
14040         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14041         * dbus/dbus-message.c: (dbus_message_unref),
14042         Plug memory leaks.
14043
14044         (dbus_message_get_fields):
14045         Remove debugging printout.
14046
14047         (_dbus_message_loader_return_buffer):
14048         Don't store the header string.
14049
14050         (_dbus_message_test):
14051         Plug leaks.
14052
14053 2003-01-26  Richard Hult  <rhult@codefactory.se>
14054
14055         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14056         the file descriptor list, since it can change under us.
14057
14058 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14059
14060         * glib/dbus-gmain.c: (dbus_connection_prepare),
14061         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14062         (remove_watch), (dbus_connection_hookup_with_g_main):
14063         Rewrite the glib handling to use its own GSource instead of a
14064         GIOChannel so we can catch messages put in the queue while waiting
14065         for a reply.
14066
14067 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14068
14069         * bus/Makefile.am:
14070         * bus/connection.c: (connection_disconnect_handler),
14071         (connection_watch_callback), (bus_connection_setup):
14072         * bus/dispatch.c: (send_one_message),
14073         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14074         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14075         * bus/dispatch.h:
14076         * bus/driver.c: (bus_driver_send_service_deleted),
14077         (bus_driver_send_service_created), (bus_driver_handle_hello),
14078         (bus_driver_send_welcome_message),
14079         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14080         (bus_driver_handle_message):
14081         * bus/driver.h:
14082         Refactor code, put the message dispatching in its own file. Use
14083         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14084         is disconnected.
14085
14086 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14087
14088         * dbus/dbus-internals.h:
14089         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14090
14091         * dbus/dbus-message.c: (dbus_message_get_sender):
14092         * dbus/dbus-message.h:
14093         Implement dbus_message_get_sender.
14094
14095         * dbus/dbus-protocol.h:
14096         Add message and service defines.
14097
14098 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14099
14100         * dbus/dbus-connection.c: (dbus_connection_send_message):
14101         * dbus/dbus-message-internal.h:
14102         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14103         (dbus_message_write_header):
14104         Remove _dbus_messag_unlock and don't set the client serial on a
14105         message if one already exists.
14106
14107 2003-01-24  Havoc Pennington  <hp@pobox.com>
14108
14109         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14110         list_pool
14111
14112         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14113         on OOM
14114
14115 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14116
14117         * dbus/dbus-list.c: (alloc_link), (free_link):
14118         Use a memory pool for the links.
14119
14120 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14121
14122         * bus/connection.c: (bus_connection_foreach):
14123         * bus/connection.h:
14124         Add new bus_connection_foreach function.
14125
14126         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14127         Add function that broadcasts a message to all clients.
14128
14129         (bus_driver_send_service_created), (bus_driver_handle_hello),
14130         (bus_driver_send_welcome_message),
14131         (bus_driver_handle_list_services), (bus_driver_message_handler):
14132         Implement functions that take care of listing services, and notifying
14133         clients when new services are created.
14134
14135         * bus/services.c: (bus_services_list):
14136         * bus/services.h:
14137         Add new function that returns an array of strings with the currently
14138         registered services.
14139
14140         * glib/dbus-glib.h:
14141         * glib/dbus-gmain.c:
14142         Update copyright year.
14143
14144 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14145
14146         * dbus/dbus-connection.c: (dbus_connection_send_message):
14147         Unlock the message in case it was sent earlier.
14148
14149         (dbus_connection_send_message_with_reply_and_block):
14150         Remove the reply message from the list.
14151
14152         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14153         Set array_len and new_pos correctly.
14154
14155         (_dbus_marshal_test):
14156         Remove debug output.
14157
14158         * dbus/dbus-message-internal.h:
14159         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14160         New function that returns the reply serial.
14161
14162         (_dbus_message_unlock):
14163         New function that unlocks a message and resets its header.
14164
14165         (dbus_message_append_string_array),
14166         (dbus_message_get_fields_valist),
14167         (dbus_message_iter_get_field_type),
14168         (dbus_message_iter_get_string_array),
14169         (dbus_message_get_fields),
14170         (dbus_message_append_fields_valist):
14171         Handle string arrays.
14172
14173         (dbus_message_set_sender):
14174         Make this function public since the bus daemon needs it.
14175
14176         (decode_header_data):
14177         Set the reply serial to -1 initially.
14178
14179         * dbus/dbus-message.h:
14180         Add dbus_message_set_sender.
14181
14182 2003-01-24  Havoc Pennington  <hp@pobox.com>
14183
14184         * doc/dbus-specification.sgml: add some stuff
14185
14186 2003-01-22  Havoc Pennington  <hp@pobox.com>
14187
14188         * doc/dbus-specification.sgml: Start to document the protocol.
14189
14190 2003-01-22  Havoc Pennington  <hp@pobox.com>
14191
14192         * dbus/dbus-connection.c
14193         (dbus_connection_send_message_with_reply_and_block): add some @todo
14194
14195         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14196
14197 2003-01-21  Havoc Pennington  <hp@pobox.com>
14198
14199         (patch untested because can't compile)
14200
14201         * bus/driver.c (create_unique_client_name): make this function
14202         never recycle client names. Also, caller should initialize
14203         the DBusString.
14204
14205         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14206
14207 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14208
14209         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14210         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14211         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14212         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14213         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14214         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14215         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14216         * dbus/dbus-marshal.h:
14217         * dbus/dbus-protocol.h:
14218         Add support for marshalling and demarshalling integer, double
14219         and string arrays.
14220
14221 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14222
14223         * bus/Makefile.am:
14224         Add driver.[ch]
14225
14226         * bus/connection.c: (connection_disconnect_handler):
14227         Remove the connection from the bus driver's list.
14228
14229         (connection_watch_callback): Dispatch messages.
14230
14231         (free_connection_data): Free connection name.
14232
14233         (bus_connection_setup): Add connection to the bus driver's list.
14234         (bus_connection_remove_owned_service):
14235         (bus_connection_set_name), (bus_connection_get_name):
14236         Add functions for setting and getting the connection's name.
14237
14238         * bus/connection.h:
14239         Add function headers.
14240
14241         * bus/driver.c: (create_unique_client_name),
14242         (bus_driver_handle_hello_message),
14243         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14244         (bus_driver_add_connection), (bus_driver_remove_connection):
14245         * bus/driver.h:
14246         * bus/main.c:
14247         * bus/services.c: (bus_service_free):
14248         * bus/services.h:
14249         New file that handles communication and registreation with the bus
14250         itself.
14251
14252 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14253
14254         * dbus/dbus-connection.c: (dbus_connection_send_message):
14255         Add a new client_serial parameter.
14256
14257         (dbus_connection_send_message_with_reply):
14258         Remove a @todo since we've implemented the blocking function.
14259
14260         (dbus_connection_send_message_with_reply_and_block):
14261         New function that sends a message and waits for a reply and
14262         then returns the reply.
14263
14264         * dbus/dbus-connection.h:
14265         Add new functions.
14266
14267         * dbus/dbus-errors.c: (dbus_result_to_string):
14268         * dbus/dbus-errors.h:
14269         Add new DBUS_RESULT.
14270
14271         * dbus/dbus-message-internal.h:
14272         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14273         (_dbus_message_set_sender), (dbus_message_write_header),
14274         (dbus_message_new_reply), (decode_header_data),
14275         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14276         * dbus/dbus-message.h:
14277         Add new functions that set the reply serial and sender.
14278         Also marshal and demarshal them correctly and add test.
14279
14280         * dbus/dbus-protocol.h:
14281         Add new DBUS_MESSAGE_TYPE_SENDER.
14282
14283         * glib/dbus-glib.h:
14284         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14285         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14286         (dbus_connection_hookup_with_g_main):
14287         * glib/test-dbus-glib.c: (main):
14288         Rewrite to use GIOChannel and remove the GSource crack.
14289
14290         * test/echo-client.c: (main):
14291         * test/watch.c: (check_messages):
14292         Update for changed APIs
14293
14294 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14295
14296         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14297
14298         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14299         Create a DBusTimeoutList.
14300         (dbus_connection_set_timeout_functions): Add new function to
14301         set timeout callbacks
14302
14303         * dbus/dbus-connection.h: Add public DBusTimeout API.
14304
14305         * dbus/dbus-message.c: (dbus_message_get_service):
14306         * dbus/dbus-message.h:  New function.
14307
14308         * dbus/dbus-server.c: Fix small doc typo.
14309
14310         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14311
14312 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14313
14314         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14315         of the string, just as long as specified.
14316
14317 2003-01-19  Havoc Pennington  <hp@pobox.com>
14318
14319         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14320         new function
14321
14322         * dbus/dbus-server.c (dbus_server_set_max_connections)
14323         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14324         keep track of current number of connections, and add API for
14325         setting a max (but haven't implemented enforcing the max yet)
14326
14327 2003-01-18  Havoc Pennington  <hp@pobox.com>
14328
14329         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14330         reading/writing if read_watch != NULL or write_watch != NULL.
14331
14332         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14333         the message loader code to actually load message->header and
14334         message->body into the newly-created message.
14335
14336         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14337         in OOM case
14338
14339         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14340         (dbus_connection_get_max_message_size)
14341         (dbus_connection_set_max_live_messages_size)
14342         (dbus_connection_get_max_live_messages_size): implement some
14343         resource limitation functions
14344
14345         * dbus/dbus-resources.c: new file implementing some of the
14346         resource limits stuff
14347
14348         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14349         missing docs, add @todo to handle OOM etc.
14350
14351         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14352         docs
14353
14354 2003-01-18  Havoc Pennington  <hp@pobox.com>
14355
14356         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14357         connection if it hasn't been already.
14358
14359         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14360         replace with DisconnectFunction.
14361
14362 2003-01-18  Havoc Pennington  <hp@pobox.com>
14363
14364         Building --disable-verbose-mode --disable-asserts --disable-tests
14365         cuts the library from 112K to 45K or so
14366
14367         * configure.in: check for varargs macro support,
14368         add --enable-verbose-mode, --enable-asserts.
14369
14370         * dbus/dbus-internals.h (_dbus_assert): support
14371         DBUS_DISABLE_ASSERT
14372         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14373
14374 2003-01-18  Havoc Pennington  <hp@pobox.com>
14375
14376         * dbus/dbus-test.c: include config.h so that tests actually run
14377
14378         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14379         so the failure mode when that assumption fails will be plenty
14380         obvious.
14381
14382 2003-01-18  Havoc Pennington  <hp@pobox.com>
14383
14384         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14385
14386         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14387         the distribution
14388
14389         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14390         since we don't want to use those in make check
14391
14392 2003-01-15  Havoc Pennington  <hp@redhat.com>
14393
14394         Release 0.2
14395
14396         * NEWS: update
14397
14398 2003-01-15  Havoc Pennington  <hp@redhat.com>
14399
14400         * test/Makefile.am: fix so that test source code ends up in the
14401         distribution on make distcheck
14402
14403 2003-01-15  Havoc Pennington  <hp@redhat.com>
14404
14405         Release 0.1.
14406
14407         * NEWS: update
14408
14409 2003-01-15  Havoc Pennington  <hp@redhat.com>
14410
14411         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14412         fix build when --disable-tests
14413
14414         * Makefile.am (EXTRA_DIST): put HACKING in here
14415
14416         * HACKING: document procedure for making a tarball release.
14417
14418 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14419
14420         * bus/connection.c: (connection_error_handler),
14421         (bus_connection_setup):
14422         * bus/main.c: (main):
14423         Make sure that the DBusConnectionData struct is NULLed
14424         out to prevent a segfault.
14425
14426         * dbus/dbus-errors.c: (dbus_result_to_string):
14427         * dbus/dbus-errors.h:
14428         * dbus/dbus-message.c: (dbus_message_get_fields),
14429         (dbus_message_get_fields_valist), (_dbus_message_test):
14430         * dbus/dbus-message.h:
14431         Make dbus_message_get_fields return a result code so we can
14432         track invalid fields as well as oom.
14433
14434 2003-01-11  Havoc Pennington  <hp@pobox.com>
14435
14436         * configure.in: change --enable-test/--enable-ansi action-if-given
14437         to enable_foo=$enableval instead of enable_foo=yes
14438
14439 2003-01-08  Havoc Pennington  <hp@pobox.com>
14440
14441         * dbus/dbus-string.c (_dbus_string_align_length): new function
14442
14443         * dbus/dbus-test-main.c: move main() for test app here
14444         * dbus/dbus-test.c
14445         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14446         symbol to run tests, because dbus-test isn't in the main
14447         library
14448
14449         Code review nitpicks.
14450
14451         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14452         for people with narrow emacs ;-). Assert client_serial was filled
14453         in. Assert message->name != NULL.
14454         (dbus_message_append_fields): have "first_field_type" arg separate
14455         from va list, needed for C++ binding that also uses varargs IIRC
14456         and helps with type safety
14457         (dbus_message_new): add @todo about using DBusString to store
14458         service/name internally
14459         (dbus_message_new): don't leak ->service and ->name on OOM later
14460         in the function
14461         (dbus_message_unref): free the service name
14462         (dbus_message_get_fields): same change to varargs
14463         i.e. first_field_type
14464         (_dbus_message_loader_return_buffer): assert that the message data
14465         is aligned (if not it's a bug in our code). Put in verbose griping
14466         about why we set corrupted = TRUE.
14467         (decode_header_data): add FIXME that char* is evil.  Was going to
14468         add FIXME about evil locale-specific string.h strncmp, but just
14469         switched to wacky string-as-uint32 optimization. Move check for
14470         "no room for field name" above get_const_data_len() to avoid
14471         assertion failure in get_const_data_len if we have trailing 2
14472         bytes or the like. Check for service and name fields being
14473         provided twice. Don't leak service/name on error. Require field
14474         names to be aligned to 4 bytes.
14475
14476         * dbus/dbus-marshal.c: move byte swap stuff to header
14477         (_dbus_pack_int32): uscore-prefix
14478         (_dbus_unpack_int32): uscore-prefix
14479         (_dbus_unpack_uint32): export
14480         (_dbus_demarshal_string): add @todo complaining about use of
14481         memcpy()
14482         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14483         handling allowing corrupt data to go unchecked
14484
14485 2003-01-08  Havoc Pennington  <hp@redhat.com>
14486
14487         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14488         to the select() as needed for authentication. (should be using
14489         _dbus_poll() not select, but for another day)
14490
14491         * dbus/dbus.h: include dbus/dbus-protocol.h
14492
14493 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14494
14495         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14496         dbus-connection.h
14497
14498 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14499
14500         * dbus/dbus-internals.c: (_dbus_type_to_string):
14501         New function that returns a string describing a type.
14502
14503         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14504         * dbus/dbus-marshal.h:
14505         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14506         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14507         (dbus_message_iter_get_byte_array):
14508         * dbus/dbus-message.h:
14509         Add new convenience functions for appending and getting message fields.
14510         Also add demarshalling routines for byte arrays.
14511
14512 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14513
14514         * dbus/dbus-connection-internal.h:
14515         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14516         (_dbus_connection_get_next_client_serial),
14517         (dbus_connection_send_message):
14518         * dbus/dbus-internals.h:
14519         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14520         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14521         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14522         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14523         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14524         (_dbus_verbose_bytes), (_dbus_marshal_test):
14525         * dbus/dbus-marshal.h:
14526         * dbus/dbus-message-internal.h:
14527         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14528         (dbus_message_write_header), (_dbus_message_lock),
14529         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14530         (dbus_message_get_name), (dbus_message_append_int32),
14531         (dbus_message_append_uint32), (dbus_message_append_double),
14532         (dbus_message_append_string), (dbus_message_append_byte_array),
14533         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14534         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14535         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14536         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14537         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14538         (decode_header_data), (_dbus_message_loader_return_buffer),
14539         (message_iter_test), (_dbus_message_test):
14540         * dbus/dbus-message.h:
14541         * dbus/dbus-protocol.h:
14542         * dbus/dbus-test.c: (main):
14543         * dbus/dbus-test.h:
14544         * glib/test-dbus-glib.c: (message_handler), (main):
14545         * test/echo-client.c: (main):
14546         * test/watch.c: (check_messages):
14547         Make messages sendable and receivable for real.
14548
14549 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14550
14551         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14552         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14553         * dbus/dbus-message.c: (dbus_message_append_int32),
14554         (dbus_message_append_uint32), (dbus_message_append_double),
14555         (dbus_message_append_string), (dbus_message_append_byte_array):
14556         Handle OOM restoration.
14557
14558 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14559
14560         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14561         (_dbus_demarshal_string), (_dbus_marshal_test):
14562         * dbus/dbus-marshal.h:
14563         * dbus/dbus-message.c: (dbus_message_get_name),
14564         Document these functions.
14565
14566         (dbus_message_append_int32), (dbus_message_append_uint32),
14567         (dbus_message_append_double), (dbus_message_append_string),
14568         (dbus_message_append_byte_array):
14569         * dbus/dbus-message.h:
14570         Add functions for adding message fields of different types.
14571
14572         * dbus/dbus-protocol.h:
14573         Add the different types.
14574
14575 2003-01-05  Havoc Pennington  <hp@pobox.com>
14576
14577         * bus/connection.c: implement routines for handling connections,
14578         first thing is keeping a list of owned services on each connection
14579         and setting up watches etc.
14580
14581         * bus/services.c: implement a mapping from service names to lists
14582         of connections
14583
14584         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14585
14586         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14587         to use static mutexes for global data
14588
14589         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14590         collection of functions to set/get application-specific data
14591         on the DBusConnection.
14592
14593 2003-01-04  Havoc Pennington  <hp@pobox.com>
14594
14595         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14596         (_dbus_poll): new function
14597
14598         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14599         copied from GLib
14600
14601         * bus/loop.c: initial code for the daemon main loop
14602
14603 2003-01-04  Havoc Pennington  <hp@pobox.com>
14604
14605         * test/watch.c (error_handler): make it safe if the error handler
14606         is called multiple times (if we s/error handler/disconnect
14607         handler/ we should just guarantee it's called only once)
14608
14609         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14610         error handler on disconnect (it's quite possible we should
14611         just change the error handler to a "disconnect handler," I'm
14612         not sure we have any other meaningful errors)
14613
14614         * configure.in: check for getpwnam_r
14615
14616         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14617         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14618         mechanism as in SASL spec, using socket credentials
14619
14620         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14621         (_dbus_send_credentials_unix_socket): new function
14622
14623         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14624         dbus_accept()
14625         (_dbus_write): only check errno if <0 returned
14626         (_dbus_write_two): ditto
14627
14628 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14629
14630         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14631         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14632         (_dbus_marshal_test):
14633         * dbus/dbus-marshal.h:
14634         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14635         to _dbus_marshal_utf8_string. Also fix some tests.
14636
14637 2002-12-28  Harri Porten  <porten@kde.org>
14638
14639         * configure.in: added check for C++ compiler and a very cheesy
14640         check for the Qt integration
14641
14642         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14643
14644         * qt/Makefile.am: added
14645
14646         * qt/.cvsignore: added
14647
14648         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14649         latter, added #ifdef QT_THREAD_SUPPORT guard.
14650
14651         * dbus/Makefile.am: added missing headers for make dist
14652
14653 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14654
14655         * dbus/Makefile.am: fixup export-symbols-regex.
14656
14657 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14658
14659         * acinclude.m4: Add this file and put the
14660         PKG_CHECK_MODULE macro in it.
14661
14662 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14663
14664         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14665         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14666         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14667         (_dbus_marshal_test):
14668         Make the demarshalling routines align the pos argument.
14669         Add string marshalling tests and fix the obvious bugs
14670         discovered.
14671
14672 2002-12-26  Havoc Pennington  <hp@pobox.com>
14673
14674         * dbus/dbus-auth.c: fixes fixes fixes
14675
14676         * dbus/dbus-transport-unix.c: wire up support for
14677         encoding/decoding data on the wire
14678
14679         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14680         (_dbus_auth_decode_data): append to target string
14681         instead of nuking it.
14682
14683 2002-12-26  Havoc Pennington  <hp@pobox.com>
14684
14685         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14686         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14687         doh
14688
14689         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14690         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14691         now). Main point is because I wanted unpack_uint32 to implement
14692         _dbus_verbose_bytes
14693         (_dbus_verbose_bytes): new function
14694
14695         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14696
14697         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14698         mechanism to handle a corrupt message stream
14699         (_dbus_message_loader_new): fix preallocation to only prealloc,
14700         not prelengthen
14701
14702         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14703         (_dbus_string_test): enhance tests for copy/move and fix the
14704         functions
14705
14706         * dbus/dbus-transport-unix.c: Hold references in more places to
14707         avoid reentrancy problems
14708
14709         * dbus/dbus-transport.c: ditto
14710
14711         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14712         leak reference count in no-message case
14713
14714         * test/watch.c (do_mainloop): handle adding/removing watches
14715         during iteration over the watches. Also, ref the connection/server
14716         stored on a watch, so we don't try to mangle a destroyed one.
14717
14718         * dbus/dbus-transport-unix.c (do_authentication): perform
14719         authentication
14720
14721         * dbus/dbus-auth.c (get_state): add a state
14722         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14723         (_dbus_auth_get_unused_bytes): append the unused bytes
14724         to the passed in string, rather than prepend
14725
14726         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14727         the auth conversation DBusAuth
14728
14729         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14730         (_dbus_transport_new_for_domain_socket): when creating a
14731         transport, pass in whether it's a client-side or server-side
14732         transport so we know which DBusAuth to create
14733
14734 2002-12-03  Havoc Pennington  <hp@pobox.com>
14735
14736         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14737         _after_ finalizing the derived members
14738         (unix_connection_set): unref watch if we fail to add it
14739
14740         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14741         transport first, so that the connection owned by the
14742         transport will be valid as the transport finalizes.
14743
14744         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14745         if necessary, and remove watches from the connection.
14746
14747         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14748
14749 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14750
14751         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14752         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14753         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14754         (_dbus_marshal_test):
14755         * dbus/dbus-marshal.h:
14756         Add string marshal functions and have the demarshal functions
14757         return the new position.
14758
14759 2002-12-25  Havoc Pennington  <hp@pobox.com>
14760
14761         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14762         it is a simple protocol that just maps directly to SASL.
14763
14764         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14765         initial implementation, not actually used yet.
14766
14767         * dbus/dbus-string.c (_dbus_string_find): new function
14768         (_dbus_string_equal): new function
14769         (_dbus_string_base64_encode): new function
14770         (_dbus_string_base64_decode): new function
14771
14772 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14773
14774         * dbus/Makefile.am:
14775         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14776         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14777         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14778         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14779         * dbus/dbus-marshal.h:
14780         * dbus/dbus-protocol.h:
14781         * dbus/dbus-test.c: (main):
14782         * dbus/dbus-test.h:
14783         Add un-optimized marshalling/demarshalling routines.
14784
14785 2002-12-25  Harri Porten  <porten@kde.org>
14786
14787         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14788
14789 2002-12-24  Zack Rusin  <zack@kde.org>
14790
14791         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14792         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14793         main loop stuff
14794
14795 2002-12-24  Havoc Pennington  <hp@pobox.com>
14796
14797         * glib/dbus-gthread.c: fix include
14798
14799         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14800         I think glib API needs to change, though, as you don't
14801         want to use DBusMessageFunction, you want to use the
14802         DBusMessageHandler object. Probably
14803         dbus_connection_open_with_g_main_loop()
14804         and dbus_connection_setup_g_main_loop() or something like that
14805         (but think of better names...) that just create a connection
14806         that has watch/timeout functions etc. already set up.
14807
14808         * dbus/dbus-connection.c
14809         (dbus_connection_send_message_with_reply): new function just to
14810         show how the message handler helps us deal with replies.
14811
14812         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14813
14814         * dbus/dbus-string.c (_dbus_string_test): free a string that
14815         wasn't
14816
14817         * dbus/dbus-hash.c: use memory pools for the hash entries
14818         (rebuild_table): be more paranoid about overflow, and
14819         shrink table when we can
14820         (_dbus_hash_test): reduce number of sprintfs and write
14821         valid C89. Add tests for case where we grow and then
14822         shrink the hash table.
14823
14824         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14825
14826         * dbus/dbus-connection.c (dbus_connection_register_handler)
14827         (dbus_connection_unregister_handler): new functions
14828
14829         * dbus/dbus-message.c (dbus_message_get_name): new
14830
14831         * dbus/dbus-list.c: fix docs typo
14832
14833         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14834         an object representing a handler for messages.
14835
14836 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14837
14838         * glib/dbus-glib.h:
14839         * glib/dbus-gthread.c: (dbus_gthread_init):
14840         Don't use the gdbus prefix for public functions.
14841
14842 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14843
14844         * Makefile.am:
14845         * configure.in:
14846         Add GLib checks and fixup .pc files
14847
14848         * glib/Makefile.am:
14849         * glib/dbus-glib.h:
14850         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14851         (gdbus_connection_check), (gdbus_connection_dispatch),
14852         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14853         (dbus_connection_gsource_new):
14854         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14855         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14856         * glib/test-dbus-glib.c: (message_handler), (main):
14857         Add GLib support.
14858
14859 2002-12-15  Harri Porten  <porten@kde.org>
14860
14861         * autogen.sh: check for libtoolize before attempting to use it
14862
14863         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14864         struct.
14865
14866         * .cvsignore: ignore more stamp files
14867
14868         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14869
14870         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14871         without make install.
14872
14873 2002-12-15  Havoc Pennington  <hp@pobox.com>
14874
14875         * dbus/dbus-threads.c: add thread stubs that a higher library
14876         layer can fill in. e.g. the GLib wrapper might fill them in with
14877         GThread stuff. We still need to use this thread API to
14878         thread-safe-ize the library.
14879
14880 2002-12-12  Havoc Pennington  <hp@pobox.com>
14881
14882         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14883         below new interfaces and include fewer system headers.
14884
14885         * dbus/dbus-sysdeps.c (_dbus_read): new function
14886         (_dbus_write): new function
14887         (_dbus_write_two): new function
14888         (_dbus_connect_unix_socket): new function
14889         (_dbus_listen_unix_socket): new function
14890
14891         * dbus/dbus-message-internal.h: change interfaces to use
14892         DBusString
14893
14894 2002-12-11  Havoc Pennington  <hp@pobox.com>
14895
14896         * dbus/dbus-types.h: add dbus_unichar
14897
14898         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14899
14900         * dbus/dbus-connection.c (dbus_connection_send_message): return
14901         TRUE on success
14902
14903         * dbus/dbus-transport.c: include dbus-watch.h
14904
14905         * dbus/dbus-connection.c: include dbus-message-internal.h
14906
14907         * HACKING: add file with coding guidelines stuff.
14908
14909         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14910         handling here, for security purposes (as in vsftpd). Not actually
14911         using this class yet.
14912
14913         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14914         system/libc usage here, as in vsftpd, for ease of auditing (and
14915         should also simplify portability). Haven't actually moved all the
14916         system/libc usage into here yet.
14917
14918 2002-11-25  Havoc Pennington  <hp@pobox.com>
14919
14920         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14921         always print the first verbose message.
14922
14923 2002-11-24  Havoc Pennington  <hp@pobox.com>
14924
14925         * test/echo-client.c, test/echo-server.c: cheesy test
14926         clients.
14927
14928         * configure.in (AC_CHECK_FUNCS): check for writev
14929
14930         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14931         function
14932
14933         * dbus/dbus-list.c (_dbus_list_foreach): new function
14934
14935         * dbus/dbus-internals.c (_dbus_verbose): new function
14936
14937         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14938         representing a server that listens for connections.
14939
14940         * dbus/.cvsignore: create
14941
14942         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14943         public API for reporting errors
14944
14945         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14946         public object representing a connection that
14947         sends/receives messages. (Same object used for
14948         both client and server.)
14949
14950         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14951         Basic abstraction for different kinds of stream
14952         that we might read/write messages from.
14953
14954 2002-11-23  Havoc Pennington  <hp@pobox.com>
14955
14956         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14957         _DBUS_INT_MAX
14958
14959         * dbus/dbus-test.c (main): add list test, and include
14960         dbus-test.h as intended
14961
14962         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14963         (_dbus_hash_table_remove_int): return value indicates
14964         whether the entry existed to remove
14965
14966         * dbus/dbus-list.c: add linked list utility class,
14967         with docs and tests
14968
14969         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14970         array sometimes.
14971
14972 2002-11-23  Havoc Pennington  <hp@pobox.com>
14973
14974         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14975         DBUS_END_DECLS to nothing, that should fix this once and for all
14976
14977         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14978
14979         * dbus/dbus-message.c, dbus/dbus-hash.c:
14980         add some missing @brief
14981
14982 2002-11-23  Havoc Pennington  <hp@pobox.com>
14983
14984         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14985         to avoid confusing Doxygen
14986
14987         * dbus/dbus-hash.c: @} not }@
14988
14989         * dbus/dbus-message.c (struct DBusMessage): split out
14990         internals docs
14991
14992 2002-11-23  Havoc Pennington  <hp@pobox.com>
14993
14994         * configure.in: pile on more warning flags if using gcc
14995
14996         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14997         to document static functions
14998
14999         * configure.in: add summary to end of configure so it
15000         looks nice and attractive
15001
15002         * dbus/dbus-hash.c: finish implementation and write unit
15003         tests and docs
15004
15005         * configure.in: add --enable-tests to enable unit tests
15006
15007         * dbus/dbus-test.c: test program to run unit tests
15008         for all files in dbus/*, initially runs a test for
15009         dbus-hash.c
15010
15011         * dbus/dbus-internals.h: file to hold some internal utility stuff
15012
15013 2002-11-22  Havoc Pennington  <hp@redhat.com>
15014
15015         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15016         "ported" away from Tcl
15017
15018         * dbus/dbus-types.h: header for types such as dbus_bool_t
15019
15020 2002-11-22  Havoc Pennington  <hp@redhat.com>
15021
15022         * dbus/dbus.h: fixups for doc warnings
15023
15024         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15025         macros
15026         (QUIET): make it quiet so we can see warnings
15027
15028         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15029
15030 2002-11-22  Havoc Pennington  <hp@redhat.com>
15031
15032         * Makefile.am: include "Doxyfile" target in all-local
15033
15034         * configure.in: generate the Doxyfile
15035
15036         * Doxyfile.in: move Doxyfile here, so we can use
15037         configure to generate a Doxyfile with the right
15038         version number etc.
15039
15040 2002-11-22  Havoc Pennington  <hp@redhat.com>
15041
15042         * dbus/dbus-message.c: move inline docs into .c file
15043
15044         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15045         so all docs are under doc/
15046         (MAN_EXTENSION): generate man pages. Use extension
15047         ".3dbus" which matches ".3qt" on my system,
15048         I guess this is OK, I don't know really.
15049         (FILE_PATTERNS): look for .c files not .h, makes sense
15050         for plain C I think
15051
15052 2002-11-22  Havoc Pennington  <hp@pobox.com>
15053
15054         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15055         because any app can be a server, and any app can be a client,
15056         the bus is a special kind of server.
15057
15058 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15059
15060         * Doxyfile : adding. Still needs Makefile rules to be generated
15061         automatically (just run "doxygen" in the toplevel dir for now to
15062         generate docs)
15063
15064         * dbus/dbus-message.h : Adding sample docs (javadoc since
15065         resembles gtk-doc a little more)
15066
15067         * dbus/dbus.h : Adding sample docs
15068
15069 2002-11-21  Havoc Pennington  <hp@redhat.com>
15070
15071         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15072         so we can allow ourselves to include files directly,
15073         instead of having to use dbus.h
15074
15075         * dbus/dbus.h: fill in
15076
15077         * dbus/dbus-message.h: sketch out a sample header file.
15078         Include griping if you include it directly instead of
15079         via dbus.h
15080
15081         * dbus/dbus-macros.h: new file with macros for extern "C",
15082         TRUE/FALSE, NULL, etc.
15083
15084         * doc/file-boilerplate.c: put include guards in here
15085
15086 2002-11-21  Havoc Pennington  <hp@redhat.com>
15087
15088         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15089
15090         * COPYING: include the GPL as well, and license code
15091         under both AFL and GPL.
15092
15093 2002-11-21  Havoc Pennington  <hp@redhat.com>
15094
15095         * acconfig.h: get rid of this
15096
15097         * autogen.sh (run_configure): add --no-configure option
15098
15099         * configure.in: remove AC_ARG_PROGRAM to make
15100         autoconf complain less. add AC_PREREQ.
15101         add AC_DEFINE third arg.
15102
15103 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15104
15105         * doc/Makefile.am:
15106         Fix references so we can distcheck.
15107
15108 2002-11-21  Havoc Pennington  <hp@redhat.com>
15109
15110         * Initial module creation
15111