* bus/signal.c: Fix match_rule_equal errata
[platform/upstream/dbus.git] / ChangeLog
1 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
2
3         * bus/signal.c: Fix match_rule_equal errata
4         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
5         <kimmo.hamalainen@nokia.com>)
6
7 2006-11-19  Thiago Macieira  <thiago@kde.org>
8
9         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
10         _dbus_pthread_condvar_wait,
11         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
12         pthread_self() after coming back from a conditional variable
13         wait as well as in one codepath where it was forgotten.
14         Approved by: Havoc Pennington.
15
16 2006-11-17  Havoc Pennington  <hp@redhat.com>
17
18         * update-dbus-docs.sh: allow setting fd.org username via env
19         variable. Make it run autogen with --enable-xml-docs=yes
20         --enable-doxygen-docs=yes so configure will fail if the required
21         tools are missing.
22
23 2006-11-17  Havoc Pennington  <hp@redhat.com>
24
25         * doc/dbus-faq.xml: minor FAQ tweaks
26
27 2006-11-14  Havoc Pennington  <hp@redhat.com>
28         
29         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
30         dbus_get_local_machine_id() to its own file, no substantive
31         changes. There are a couple other things we might want to add that
32         are "misc" so moving out of dbus-connection.[hc] which is big
33         enough already.
34         
35 2006-11-14  Havoc Pennington  <hp@redhat.com>
36
37         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
38         UUID had the timestamp last, but the implementation had it first;
39         move it to last since I think it's a tiny bit nicer (easier to
40         compare at a glance, faster to sort, less code), and will not
41         cause any practical compatibility problems. Also, always convert
42         the timestamp to big endian.
43
44         * doc/dbus-specification.xml: Clean up the docs on the UUID.
45
46         * tools/dbus-uuidgen.1: more prominently say it is not suitable
47         as a replacement for regular uuidgen/RFC4122.
48
49 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
50
51         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
52         the correct value so we don't assert when initalizing recursive threads
53
54         * test/name-test/test-thread-init.c: call dbus_threads_init_default
55         instead of _dbus_threads_init_debug since it is more of a real world
56         test
57
58 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
59
60         * Released 1.0.0
61
62 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
63
64         * AUTHORS: added Peter and Tor of windows porting fame
65
66 2006-11-08  Havoc Pennington  <hp@redhat.com>
67
68         * doc/dbus-specification.xml: add a note about protocol stability
69
70         * doc/TODO: Remove "important for 1.0" section, replace with
71         "important for 1.2" section
72         
73 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
74
75         * README: remove some of the out of date flags
76
77         * doc/TODO: Remove todo items which are done
78
79 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
80
81         * tools/dbus-monitor.c: Handle sigint so we flush stdout
82         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
83
84 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
85
86         * tools/dbus-monitor.1: update the manpage for dbus-monitor
87         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
88
89 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
90
91         * AUTHORS: Update with all people listed in the ChangeLog
92
93 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
94
95         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
96         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
97
98 2006-11-07  Havoc Pennington  <hp@redhat.com>
99
100         * HACKING: Update release instructions to include stuff about
101         stable releases, branching, etc. May not be totally correct,
102         please fix if needed, but keep instructions up-to-date so we do
103         each stable release consistently in the future.
104
105 2006-11-07  Havoc Pennington  <hp@redhat.com>
106
107         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
108         documentation updates. Bump faq/spec versions (not to 1.0; I don't
109         think the spec will be "finished"/1.0 when we ship the 1.0 library).
110
111 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
112
113         * bus/bus.c: Missed patch - pass in the context to the directory watch
114
115 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
116
117         * Released D-Bus 1.0 RC 3(0.95)
118
119 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
120
121         * bus/activation.c (bus_activation_new): don't fail if we can not read
122         the directory as it may not exist
123
124 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
125
126         * bus/config-parser.c (service_dirs_find_dir): use 
127         _dbus_list_get_next_link so we don't get stuck in an infinite loop
128         (start_busconfig_child): move processing of standard_session_servicedirs
129         tags here because they have no content
130         (bus_config_parser_content): check we don't have content in 
131         standard_session_servicedirs tag
132
133 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
134
135         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
136         Packagers need to own this directory
137
138 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
139
140         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
141         <standard_session_servicedirs> tag with a <sevicedir> tag that
142         points to the test service directory
143
144 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
145
146         * configure.in: Add a check for DIR *dirp->dd_fd
147
148         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
149         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
150         of both Solaris and Irix
151
152 2006-11-01  Havoc Pennington  <hp@redhat.com>
153
154         * bus/dbus-daemon.1.in: document standard_session_servicedirs
155
156 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
157
158         * configure.in: expose DBUS_DATADIR
159         
160         * bus/config-parser.c: add the standard_session_servicedirs element
161         to the parser
162         (bus_config_parser_content): process the standard_session_servicedirs
163         element by getting the standard directories from sysdeps and merging
164         them into the service directory list
165         (test_default_session_servicedirs): make sure we get what we expect
166
167         * bus/session.conf.in: replace the servicedir tag with the 
168         standard_session_servicedirs tag
169
170         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
171         dbus-sysdeps.h to avoid circular header dependencies
172
173         * dbus/dbus-sysdeps.h: add the typedef of DBusList
174
175         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
176         which takes a string of directories delimited by colons, parses them 
177         out, appends a suffix and puts them in a list ignoring empty elements
178         (_dbus_get_standard_session_servicedirs): returns the standard 
179         directories for a session bus to look for service activation files
180         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
181         DBUS_DATADIR directories
182
183         * test/data/valid-config-files/many-rules.conf: add the 
184         standard_session_servicedirs tag to the valid config file tests
185
186 2006-10-30  Havoc Pennington  <hp@redhat.com>
187
188         * tools/dbus-launch.1, doc/TODO: capture intent to change the
189         command line options of dbus-launch a bit post 1.0
190
191 2006-10-27  Havoc Pennington  <hp@redhat.com>
192         
193         * dbus/dbus-connection.c (dbus_connection_open_private): document
194         how to choose shared vs. private connections
195
196 2006-10-27  Havoc Pennington  <hp@redhat.com>
197
198         * dbus/dbus-test.c: enclose more of the file in the
199         DBUS_BUILD_TESTS check.
200
201         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
202         DBUS_DISABLE_ASSERT case.
203
204         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
205         that it only works on the server side
206
207         * dbus/dbus-bus.c: add a global lock covering the BusData we
208         attach to each connection
209         (internal_bus_get): lock our access to the BusData
210         (dbus_bus_register): lock the entire registration process
211         with _DBUS_LOCK(bus_datas). If we get the lock and 
212         registration is already complete, silently return (vs. previous
213         behavior of aborting).
214         (dbus_bus_set_unique_name): lock the BusData
215         (dbus_bus_get_unique_name): lock the BusData
216
217 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
218
219         * bus/config-parser.c (service_dirs_find_dir, 
220         service_dirs_append_unique_or_free, 
221         service_dirs_append_link_unique_or_free): New static methods
222         for only appending unique service directory names into
223         the service directory list
224         (merge_included, bus_config_parser_content): Only add unique
225         service directory names into the list
226
227 2006-10-27  Havoc Pennington  <hp@redhat.com>
228
229         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
230         variables volatile, suggested by Thiago. Document struct fields.
231         (PTHREAD_CHECK): remove pthread error checking if assertions are
232         disabled, should reduce the no-assertions case to the bare
233         minimum code.
234
235 2006-10-26  Havoc Pennington  <hp@redhat.com>
236         
237         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
238         to be recursive
239         (_dbus_pthread_mutex_unlock): make it recursive
240         (_dbus_pthread_condvar_wait): save/restore the recursion count
241         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
242
243 2006-10-26  Havoc Pennington  <hp@redhat.com>
244
245         * doc/dbus-specification.xml: clarify the UUID text slightly
246
247         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
248         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
249         in preparation for being able to extend them for e.g. recursive
250         mutexes.
251
252 2006-10-26  Havoc Pennington  <hp@redhat.com>
253
254         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
255         condition variables relate to recursive mutexes.
256         
257         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
258         dbus/dbus-threads.c: Split the platforms-specific thread 
259         implementations into their own files.
260         
261         * dbus/dbus-sysdeps-pthread.c
262         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
263         was backward. Not that anything uses it.
264
265 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
266
267         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
268         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
269         needs to be cleaned up more.
270
271         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
272         up the CREDS issue.
273
274 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
275
276         * configure.in, dbus-1.pc.in: Check to see if thread methods 
277         are in glibc or libpthread and add -lpthread to the link stage 
278         if it is the latter
279
280 2006-10-26  Thiago Macieira  <thiago@kde.org>
281
282         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
283         bug 8780: the connection lock is only required while recording
284         the shared connection, so protect only that code
285         section. Don't require connection_lookup_shared to return a
286         locked connection.
287
288 2006-10-26  Thiago Macieira  <thiago@kde.org>
289
290         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
291         check if get_machine_uuid() returns NULL before proceeding any
292         further: we can't init the X atoms or create a session file
293         name if there is no machine ID.
294         This solves a crash reported by some users if
295         --exit-with-session was used without --autolaunch=<machine-id>
296
297 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
298
299         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
300         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
301
302         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
303         before we run dbus-launch
304
305         * configure.in: define TEST_BUS_BINARY to be the full path to 
306         dbus-daemon in the build root 
307
308 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
309
310         * dbus/Makefile.am:
311         * tools/Makefile.am:
312         * toos/dbus-uuidgen.1:
313                 Move the machine-id file to /var/lib/dbus 
314
315 2006-10-24  David Zeuthen  <davidz@redhat.com>
316
317         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
318         _dbus_assert (thread_init_generation != _dbus_current_generation)
319         not _dbus_assert (thread_init_generation == _dbus_current_generation)
320
321 2006-10-24  Thiago Macieira  <thiago@kde.org>
322
323         * dbus/dbus-sysdeps.h:
324         * dbus/dbus-sysdeps-unix.c: Add function
325         _dbus_make_file_world_readable that chmods a file to 0644.
326
327         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
328         Avoid writing to the static "argv" array, thereby avoiding a
329         COW on the child process.
330
331         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
332         call _dbus_make_file_world_readable on the created file.
333
334 2006-10-23  David Zeuthen  <davidz@redhat.com>
335
336         * dbus/dbus-memory.c: Use atomic variable to protect
337         n_blocks_outstanding otherwise OOM will be reported using SMP on
338         some arches
339         
340         * bus/dispatch.c: Add missing end of line characters
341
342         * bus/desktop-file.c (parse_section_start, parse_key_value) 
343         (bus_desktop_file_load): Propertly handle OOM
344
345         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
346         thread_init_generation equals _dbus_current_generation, not 0
347
348 2006-10-22  Havoc Pennington  <hp@redhat.com>
349
350         * dbus/dbus-connection-internal.h: move prototype of
351         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
352         it isn't in a public header and doesn't end up in the DBusBus
353         group in Doxygen
354
355 2006-10-21  Havoc Pennington  <hp@redhat.com>
356
357         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
358         the tarball if packagers want to run it
359
360         * cleanup-man-pages.sh: Add a script which munges all the internal
361         API man pages out of the Doxygen output. This reduces the size of
362         the installed man pages from 7 to 2 megs, and avoids
363         namespace-polluting pages. Right now (like Doxygen) this script
364         isn't in the build, it's something packagers can do manually.
365
366 2006-10-21  Havoc Pennington  <hp@redhat.com>
367
368         * dbus/dbus-connection.h: don't include the watch/timeout
369         functions in connection section
370
371 2006-10-21  Havoc Pennington  <hp@redhat.com>
372
373         * Documentation! Whee! Doxygen now 100% silent. If you make it
374         angry again, you will be punished.
375         
376 2006-10-21  Havoc Pennington  <hp@redhat.com>
377
378         * More documentation - all public API now documented according to
379         Doxygen
380
381 2006-10-21  Havoc Pennington  <hp@redhat.com>
382
383         * Document a bunch of undocumented stuff
384         
385 2006-10-21  Havoc Pennington  <hp@redhat.com>
386
387         * Clean up Doxygen group markers for public API so Doxygen finds
388         everything (not comprehensively fixed for private API).
389         Means all remaining Doxygen warnings are just about missing docs
390         and thus pretty simple to resolve.
391         
392 2006-10-21  Havoc Pennington  <hp@redhat.com>
393         
394         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
395
396         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
397         as DBUS_GNUC_DEPRECATED
398
399 2006-10-21  Havoc Pennington  <hp@redhat.com>
400
401         * Move all private API into the private Doxygen group sections of
402         the files, so they don't show up in the public API docs
403         
404 2006-10-21  Havoc Pennington  <hp@redhat.com>
405
406         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
407         dbus_message_iter_get_array_len().
408
409         * throughout: documentation improvements.
410
411 2006-10-20  Havoc Pennington  <hp@redhat.com>
412
413         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
414         matter, and the message-loader-breaker thing since nobody is going
415         to do it.  Add an item to 1.0 about supporting recursive locks
416         in dbus_threads_init_default() though, since it should be easy.
417
418         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
419         Fix this in the !dispatch case to avoid busy-looping after
420         disconnection
421
422         * More misc docs improvements
423
424 2006-10-19  Havoc Pennington  <hp@redhat.com>
425
426         * more Doxygen-related fixes (lots of moving things from the
427         public to internal section in dbus-connection.c)
428
429 2006-10-19  Havoc Pennington  <hp@redhat.com>
430
431         * Fix a pile of Doxygen warnings and missing docs
432
433 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
434
435         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
436         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
437         instead of a void *.  kqueue uses this to get the context's loop
438         while the other modules ignore the parameter.  This allows us to
439         avoid platform conditionals
440
441         * bus/bus.c (process_config_postinit): Pass in the context to the 
442         watch
443
444 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
445
446         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
447         when starting the system bus
448
449 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
450
451         * configure.in: More fixups for cross compile (Patch from 
452         Marco Pracucci <development at pracucci dot com>)
453
454 2006-10-17  Havoc Pennington  <hp@redhat.com>
455
456         * tools/dbus-send.c (main): don't close shared connection, fix
457         from Timo Hoenig
458
459 2006-10-17  Havoc Pennington  <hp@redhat.com>
460
461         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
462
463         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
464         since realistically it doesn't look like we'll be changing it
465         anymore.
466
467 2006-10-17  Havoc Pennington  <hp@redhat.com>
468
469         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
470         be used for return_if_fail type warnings; prefixes the pid, and
471         fatal by default.
472
473 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
474
475         * configure.in: Released 1.0 RC 2(0.94)
476         Add check for -fPIC and enable it if available
477
478 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
479
480         * doc/TODO: Remove the check TODO item
481
482 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
483
484         * dbus-transport-socket.c (exchange_credentials):
485         Print out more detailed errors if reading or sending
486         credentials fail (Patch from Julio M. Merino Vidal 
487         <jmmv at NetBSD dot org>)
488
489 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
490
491         * configure.in: when checking for posix getpwnam_r assume true
492         for cross compiles
493
494 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
495
496         * configure.in: Check for gethostbyname first before we check for it
497         in libnsl.  On gnu systems it is implemeneted 
498
499 2006-10-13  Havoc Pennington  <hp@redhat.com>
500
501         * dbus/dbus-connection.c
502         (dbus_connection_send_with_reply_and_block): fix to handle closed
503         connections, from Tambet Ingo bug #8631
504
505 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
506
507         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
508
509 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
510
511         * test/name-test/Makefile.am: don't link against both libdbus and
512         libdbus-convenience
513
514 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
515
516         * configure.in: check for dirfd even if it is a macro
517         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
518
519 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
520
521         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
522         avoid using dirfd on systems that don't have dirfd 
523         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
524
525 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
526
527         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
528         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
529
530         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
531         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
532         macro because _dbus_abort calls it
533
534         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
535         works
536
537 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
538
539         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
540         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
541
542 2006-10-02  Thiago Macieira  <thiago@kde.org>
543
544         * tools/dbus-launch.c (main): make it complain and abort
545         execution in case an unknown option is given. Also, process
546         the '--' argument as the end of arguments.
547
548 2006-10-01  Havoc Pennington  <hp@redhat.com>
549
550         * tools/dbus-launch.c (print_variables): if no syntax is given,
551         don't print something that's sort-of-half-sh-syntax, just print
552         a plain key-value pairs thing.
553
554         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
555         the local machine representation (but still have the hostname in
556         the display). Remove the hostname from the display if it is
557         localhost. Change session files to be named
558         ~/.dbus/session-bus/machine-display. Change X atoms to be
559         underscore-prefixed so nobody whines about ICCCM compliance.
560         Otherwise name them the same as the env variables.
561         Change session file format to include key-value pairs and an
562         explanatory comment. Keys are the same as the env variables.
563         (set_address_in_x11): X property format can't depend on
564         sizeof(pid_t) on a particular machine, fix to always be 32 bits
565
566         * tools/dbus-launch.c: make --autolaunch take a machine id
567         argument. If --autolaunch is used with a program to run, complain
568         for now (but add a FIXME). Also, don't look for existing bus if 
569         there's a program to run (but add a FIXME).
570
571         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
572         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
573         just to get this, and avoids duplicating uuid-reading code).
574
575         * tools/dbus-launch.1: clarify various things
576         
577 2006-10-01  Havoc Pennington  <hp@redhat.com>
578
579         * test/test-service.c (path_message_func): remove broken extra
580         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
581
582         * test/test-shell-service.c (path_message_func): same fix
583         
584         * dbus/dbus-connection.c
585         (_dbus_connection_get_dispatch_status_unlocked): break up the
586         function a little for clarity and fix the notification of
587         dbus-bus.c to not require dispatch to be complete
588
589         * dbus/dbus-connection.c (dbus_connection_unref): improve the
590         warning when you try to finalize an open connection.
591         
592 2006-10-01  Havoc Pennington  <hp@redhat.com>
593
594         * dbus/dbus-bus.c
595         (internal_bus_get): only weak ref the connection; this means 
596         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
597         called safely in any context
598         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
599         unref
600
601         * dbus/dbus-connection.c
602         (_dbus_connection_get_dispatch_status_unlocked): move
603         _dbus_bus_notify_shared_connection_disconnected_unlocked here
604         when queuing Disconnected instead of when the Disconnected message
605         arrives, so dbus_bus_get() won't return closed connections.
606         
607 2006-10-01  Havoc Pennington  <hp@redhat.com>
608
609         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
610         Add a hack to make DBusNewConnectionFunction work right.
611
612         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
613         the hack here. Also, fix the todo about refcount leak.
614         
615         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
616         and use the hack here
617         
618         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
619         "shareable" flag; this was completely broken, since it meant 
620         dbus_connection_open() returned a connection of unknown
621         shared-ness. Now, we always hold a ref on anything opened 
622         as shareable.
623
624         Move the call to notify dbus-bus.c into
625         connection_forget_shared_unlocked, so libdbus consistently forgets
626         all its knowledge of a connection at once. This exposed numerous
627         places where things were totally broken if we dropped a ref inside
628         get_dispatch_status_unlocked where
629         connection_forget_shared_unlocked was previously, so move
630         connection_forget_shared_unlocked into
631         _dbus_connection_update_dispatch_status_and_unlock. Also move the
632         exit_on_disconnect here.
633
634         (shared_connections_shutdown): this assumed weak refs to the
635         shared connections; since we have strong refs now, the assertion 
636         was failing and stuff was left in the hash. Fix it to close
637         still-open shared connections.
638         
639         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
640         debug pipe connections
641         
642         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
643         dbus-bus.c if the closed connection is in fact shared
644         (_dbus_connection_close_possibly_shared): rename from 
645         _dbus_connection_close_internal
646         (dbus_connection_close, dbus_connection_open,
647         dbus_connection_open_private): Improve docs to explain the deal
648         with when you should close or unref or both
649
650         * dbus/dbus-bus.c
651         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
652         from _dbus_bus_check_connection_and_unref_unlocked and modify to
653         loop over all connections
654
655         * test/test-utils.c (test_connection_shutdown): don't try to close
656         shared connections.
657
658         * test/name-test/test-threads-init.c (main): fix warnings in here
659
660         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
661         env variable to cause blocking waiting for gdb; drop
662         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
663         unconditionally.
664
665         * configure.in: add -export-dynamic to libtool flags if assertions enabled
666         so _dbus_print_backtrace works.
667
668         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
669         instead of _dbus_verbose to print the backtrace, and diagnose lack 
670         of -rdynamic/-export-dynamic
671         
672 2006-09-30  Havoc Pennington  <hp@redhat.com>
673
674         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
675         (internal_bus_get): fix screwy code formatting. whoever committed
676         that was not paying attention!
677
678 2006-09-30  Havoc Pennington  <hp@redhat.com>
679
680         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
681         reflect addition of interfaces.
682
683         * doc/dbus-specification.xml: describe a new
684         org.freedesktop.DBus.Peer.GetMachineId method
685
686         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
687         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
688         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
689         at end of skip_white
690         (_dbus_string_chop_white): new function
691
692         * bus/connection.c (bus_connections_setup_connection): call
693         dbus_connection_set_route_peer_messages.
694
695         * dbus/dbus-connection.c
696         (_dbus_connection_peer_filter_unlocked_no_update): modify to
697         support a GetMachineId method.
698
699         Also, support a new flag to let the bus pass peer methods through
700         to apps on the bus, which can be set with
701         dbus_connection_set_route_peer_messages.
702
703         Finally, handle and return an error for anything unknown on the
704         Peer interface, which will allow us to extend the Peer interface
705         in the future without fear that we're now intercepting something
706         apps were wanting to see.
707         
708         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
709         dbus/dbus-uuidgen.c
710
711         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
712         binary here, since most of the code is already in libdbus
713
714         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
715         uuid from the system config file
716
717         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
718         (_dbus_read_uuid_file_without_creating) 
719         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
720         uuid-related functions, partly factored out from dbus-server.c
721
722         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
723         DBUS_ERROR_FILE_EXISTS instead of EEXIST
724
725         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
726
727         * tools/dbus-cleanup-sockets.1: explain what the point of this
728         thing is a bit more
729
730         * autogen.sh (run_configure): add --config-cache to default
731         configure args
732
733         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
734         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
735
736         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
737         don't try to save address, fixes crash in make check
738         
739 2006-09-30  Thiago Macieira  <thiago@kde.org>
740
741         * configure.in: add DBUS_BINDIR as a #define to C source code.
742
743         * tools/dbus-launch.c
744         * tools/dbus-launch.h
745         * tools/dbus-launch-x11.c:
746         * tools/dbus-launch.1: Add the --autolaunch option to
747         dbus-launch, which makes it scan for an existing session
748         started with --autolaunch. With that option, it also creates
749         an X11 window and saves the bus address and PID to it.
750
751         * dbus/dbus-sysdeps.h:
752         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
753         a function that runs "dbus-launch --autolaunch" to retrieve
754         the running D-Bus session address (or start one if none was running)
755
756         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
757         address protocol, which tries to get the running session from
758         dbus-launch.
759
760         * dbus/dbus-bus.c:
761         * dbus/dbus-internals.h: Make "autolaunch:" be the default
762         D-Bus session bus address.
763
764         * dbus/dbus-connection.c: Fix horrible typo in error message.
765
766 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
767
768         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
769
770 2006-09-17  Havoc Pennington  <hp@redhat.com>
771
772         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
773         fix so that if unix_user_function is set on windows, we still
774         do the default check that the auth identity matches the bus identity
775
776 2006-09-16  Havoc Pennington  <hp@redhat.com>
777
778         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
779         to _dbus_transport_open_platform_specific,
780         _dbus_transport_open_socket,
781         and _dbus_transport_open_debug_pipe
782
783         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
784
785 2006-09-16  Havoc Pennington  <hp@redhat.com>
786
787         Attempt auditing public API to remove all cases where a Unix
788         function returns weird emulated goo to Windows. This probably 
789         breaks the bus daemon on Windows, to fix it again we may 
790         need to stop processing unix-specific config options on Windows,
791         and may need to add Windows-specific public API or config options.
792         
793         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
794         to reflect added interfaces; should not break soname.
795         
796         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
797         not invoke unix user function on Windows. Kind of a hacky fix, but 
798         we don't want a "unix uid" leaking out on Windows.
799
800         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
801         to get the socket fd on Windows or UNIX
802         (dbus_connection_get_unix_fd): make this always fail on Windows
803
804 2006-09-16  Havoc Pennington  <hp@redhat.com>
805
806         * dbus/dbus-server.c (dbus_server_listen): change how this works
807         to be able to delegate to a set of handlers that can succeed,
808         fail, or choose not to handle. Allows us to have 
809         dbus_server_listen_platform_specific.
810
811         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
812         factor out the tcp socket stuff to be used on windows, leaving
813         unix domain socket only in dbus-socket-unix.c
814
815         * dbus/dbus-transport-socket.c
816         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
817         stuff to be used on windows, leaving unix domain socket only 
818         in dbus-transport-unix.c
819
820         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
821         temporary hack to be sure this fails on windows
822         (dbus_connection_get_unix_process_id): ditto
823
824 2006-09-16  Havoc Pennington  <hp@redhat.com>
825
826         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
827         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
828         _dbus_open_socket so the domain/type/protocol from system headers
829         are not required. This is kind of pointless though unless we move
830         part of _dbus_connect_tcp_socket into sysdeps.c instead of
831         sysdeps-unix.c, which would mean adding a wrapper around
832         bind/listen/etc.
833         Also, add DBusError to the socket-opening functions so they 
834         don't require use of errno.
835
836 2006-09-16  Havoc Pennington  <hp@redhat.com>
837
838         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
839         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
840
841         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
842         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
843         functions specifically for sockets only, and move generic 
844         read/write/open/close into unix-specific code.
845
846 2006-09-14  Havoc Pennington  <hp@redhat.com>
847
848         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
849         complaint about accessing revents when poll returns 0, from Julian Seward.
850
851 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
852
853         * Released 1.0 RC 1 (0.93) 
854
855 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
856
857         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
858         use _dbus_close instead of close
859
860 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
861
862         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
863         credentials.  Fixes "external" authentication under e.g. NetBSD
864         which does not support any other socket credentials mechanism.
865         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
866
867 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
868
869         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
870         dbus_threads_init and be used by the dbus mutex functions to
871         avoid deadlocks.
872
873         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
874
875 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
876
877         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
878         use threadsafe readdir_r instead of readdir
879
880 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
881
882         * dbus-threads.c (dbus_threads_init_default): New method for
883         initializing the internal thread implementation (Patch from
884         Alexander Larsson <alexl at redhat dot com>)
885
886 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
887
888         * remove a bunch of todo items from the 1.0 list
889
890 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
891
892         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
893         key not found
894
895 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
896
897         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
898         complex debugging code
899
900         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
901         between the test suite ifdefs
902         (_dbus_verbose_bytes): return if verbosity is not enabled 
903
904 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
905
906         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
907         remove DBusMark
908
909 2006-09-10  Havoc Pennington  <hp@redhat.com>
910
911        patch mostly by Peter Kümmel, bug #8211
912         
913         * dbus/dbus-sysdeps-unix.c: new file, which splits out
914         unix-specific stuff in dbus-sysdeps.c
915
916         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
917         and move unix-specific stuff to dbus-sysdeps-unix.c
918
919         * configure.in: check HAVE_ERRNO_H
920         
921 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
922
923         * bus/test-main.c (main): Initialize threading during tests
924
925         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
926         Unlock connection on error
927         (generate_local_error_message): static method for generating
928         an error message when we don't have a message to reply to
929         (_dbus_connection_block_pending_call): Send a disconnect error
930         instead of just a timeout (NULL) when the bus gets disconnected
931         while blocking for a reply.
932         
933 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
934
935         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
936         filters (Patch from Kimmo Hämäläinen 
937         <kimmo dot hamalainen at nokia dot com>)
938
939 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
940
941         * dbus/dbus-connection-internal.h: Add prototype for 
942         _dbus_connection_test_get_locks to remove warning
943
944 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
945
946         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
947         close child_err_report_pipe[WRITE_END] on exec (Patch from 
948         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
949
950 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
951
952         * Clean up close calls to use _dbus_close (Patch from 
953         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
954
955 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
956
957         * doc/TODO:
958         - Remove pending call locking todo item
959         - dbus_connection_open now holds hard ref.  Remove todo item
960         - do proper locking on _dbus_bus_check_connection_and_unref
961           and handle DBUS_BUS_STARTER. Remove todo item
962         - Warn on closing of a shared connection.  Remove todo item
963
964         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
965         dbus/dbus-connection.c: Use the dbus_connection_close_internal
966         so we don't get the warning when closing shared connections
967
968         * test/test-service.c, test/test-shell-service.c: Applications
969         don't close shared connections themselves so we unref instead of
970         close
971
972         * test/test-utils.c (test_connection_shutdown): Close the connection
973
974         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
975         _dbus_bus_check_connection_and_unref_unlocked since we only call this
976         method on a locked connection.  
977         Make sure we call _dbus_connection_unref_unlocked instead of 
978         dbus_connection_unref also.
979         Handle DBUS_BUS_STARTER correctly
980
981         * dbus/dbus-connection.c (connection_record_shared_unlocked):
982         Mark as shared and hard ref the connection
983         (connection_forget_shared_unlocked): Remove the hard ref from the 
984         connection
985         (_dbus_connection_close_internal_and_unlock):  New internal function
986         which takes a locked connection and unlocks it after closing it
987         (_dbus_connection_close_internal): New internal function which acts
988         like the origonal dbus_connection_close method by grabbing a connection
989         lock and calling _dbus_connection_close_internal_and_unlock
990         (dbus_connection_close): Public close method, warns when the app
991         trys to close a shared connection
992
993 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
994
995         * bus/driver.c:
996         (bus_driver_generate_introspect_string): New method for populating
997         a DBusString with the introspect data
998         (bus_driver_handle_introspect): Move introspect generation code to 
999         bus_driver_generate_introspect_string
1000
1001         * bus/main.c:
1002         (introspect): New function which prints out the intropect data and
1003         exits
1004         (main): Add a --introspect switch
1005
1006 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1007
1008         * doc/TODO: Removed dtd publishing item.  
1009         It seems the dtd has already been added at
1010         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1011
1012 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * doc/TODO, various source files: Audited todo's and FIXME's and
1015         prepended the ones we should be looking at with 1.0.  Those
1016         prepended with 1.0? need clerification or might not be needed
1017         for 1.0
1018
1019 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1020
1021         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1022         NULL in the public API (Patch from Kimmo Hämäläinen 
1023         <kimmo dot hamalainen at nokia dot com>)
1024
1025 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1026
1027         * configure.in: Fix for OS-X compile time endian issues (patch from
1028         Benjamin Reed <ranger at befunk dot com>)
1029
1030 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1031
1032         * configure.in: Check for no-common compiler flag (OS-X fix from
1033         Benjamin Reed <ranger at befunk dot com>)
1034
1035 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1036
1037         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1038         <fcrozat at mandriva dot com>)
1039
1040 2006-08-29  Havoc Pennington  <hp@redhat.com>
1041
1042         * test/test-service.c (path_message_func): fix lack of return value
1043
1044         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1045         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1046         any more sense than on anything else in this file.
1047         (_dbus_get_tmpdir): add const to return value, and keep the
1048         results of the various getenv around in a static variable.
1049
1050 2006-08-29  Havoc Pennington  <hp@redhat.com>
1051
1052         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1053         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1054
1055 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1056
1057         * test/Makefile.am: change find to use syntax that works with non
1058         gnu versions of find
1059
1060 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1061
1062         * dbus/dbus-transport.c: fix invalid deref when checking if
1063         a vtable method exists (Patch from Christian Ehrlicher 
1064         <ch dot ehrlicher at gmx dot de>)
1065
1066 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1067
1068         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1069         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1070         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1071         <bernard at brenda-arkle dot demon dot co dot uk>)
1072
1073 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1074
1075         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1076         default case
1077
1078 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1079
1080         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1081         it works on any system providing this interface, not only FreeBSD.
1082         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1083
1084 2006-08-20  Havoc Pennington  <hp@redhat.com>
1085
1086         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1087         the docs
1088
1089 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1090
1091         * Released 0.92 
1092
1093 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1094
1095         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1096         to reflect the init late change
1097
1098         * bus/bus.c (bus_context_new): Check user before we fork so we can
1099         print out an error message a user will be able to see
1100
1101 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1102
1103         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1104
1105         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1106         Add two more global locks for use on windows platforms.  These are
1107         unused on non-windows platforms but are not ifdefed out to avoid
1108         potential bugs (i.e. the few bytes lost does not warrent the extra
1109         maintanence and complexity that having seperate sets of locks would
1110         cause)
1111
1112 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1113
1114         * bus/services.c (bus_registry_acquire_service): Return an error
1115         when an application tries to register the org.freedesktop.DBus Bus Name
1116
1117         * bus/services.c (bus_registry_release_service): Return an error
1118         when an application tries to release the org.freedesktop.DBus Bus Name
1119
1120 2006-08-17  Alp Toker  <alp@atoker.com>
1121
1122         * doc/dbus-specification.xml: Fix some minor typos.
1123
1124 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1125
1126         * configure.in: use $with_init_scripts instead of $operating_system
1127         to determine where to store the pid since the init scripts manipulate 
1128         the pid file (patch from Marcelo Ricardo Leitner 
1129         <marcelo dot leitner at terra dot com dot br>.  
1130
1131 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1132
1133         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1134         static DBusList *uninitialized_condvar_list to support new late 
1135         initialization threading model.  In this model threads can be initialized
1136         even after the D-Bus API has been used but still needs to be initialized 
1137         before the second thread has been started.  Mutexes and condvar addresses
1138         are stored in the two static lists and are replaced with actuall locks
1139         when threads are initalized.
1140         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1141         the location into the static list
1142         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1143         from the static list and freeing the mutex
1144         (_dbus_condvar_new_at_location): New method for creating a conditional 
1145         variable and placing the location into the static list
1146         (_dbus_condvar_free_at_location): New method for removing a conditional
1147         variable location from the static list and freeing the conditional variable 
1148         (init_uninitialized_locks): Atomic method which goes through the static 
1149         lists of mutex and condvar location and updates them with actuall locks
1150         (init_global_locks): changed to init_locks
1151         
1152         * dbus/dbus-connection.c:
1153         (_dbus_connection_test_get_locks): New method for tests to check connections
1154         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1155         condvar API
1156         (dbus_connection_allocate_data_slot): Pass in the global lock address
1157         to _dbus_data_slot_allocator_alloc
1158
1159         * dbus/dbus-dataslot.c:
1160         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1161         instead of the mutex itself
1162
1163         * dbus/dbus-message.c:
1164         (dbus_message_allocate_data_slot): Pass in the global lock address
1165         to _dbus_data_slot_allocator_alloc
1166
1167         * dbus/dbus-pending-call.c:
1168         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1169         to _dbus_data_slot_allocator_alloc
1170
1171         * dbus/dbus-server.c:
1172         (_dbus_server_init_base): Use the new at_location mutex API
1173         (dbus_server_allocate_data_slot): Pass in the global lock address
1174         to _dbus_data_slot_allocator_alloc
1175
1176         * test/name-test/test-threads-init.c: New test case for late thread
1177         initialization
1178
1179 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1180
1181         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1182         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1183         causes compile problems when asserts are turned off
1184         Keeping _dbus_warn for printing out the message so even if
1185         asserts are turned off the user gets the messages that something is 
1186         wrong 
1187
1188 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1189
1190         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1191
1192         * bus/services.c (bus_service_list_queued_owners):
1193         Add a pointer cast to fix compiler warning
1194
1195         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1196         return a NULL instead of FALSE since the return type
1197         is not expecting a boolean
1198
1199         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1200         Remove unused variable
1201
1202         * dbus/dbus-marshal-recursive-util.c (node_new):
1203         return a NULL instead of FALSE since the return type
1204         is not expecting a boolean
1205
1206         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1207         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1208         because we are expecting a pointer not a boolean
1209
1210         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1211         add void as the parameter so some compilers
1212         don't complain
1213
1214         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1215           _dbus_transport_new_for_tcp_socket):
1216         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1217         because we are expecting a pointer not a boolean
1218
1219         * test/shell-test.c (test_command_line):
1220         cast the second argument to _dbus_list_append to avoid compiler
1221         warnings
1222
1223         * test/test-names.c (main): remove unused variable
1224
1225         * test/test-service.c (check_hello_from_self_reply):
1226         Initialize echo_message and echo_reply to NULL
1227         
1228         * test/test-shell-service.c (handle_echo):
1229         Remove unused variable and cast the third parameter passed to
1230         dbus_connection_get_object_path_data to avoid compiler warrnings
1231
1232         * test/name-test/test-names.c (clear_message_queue):
1233         Remove unused function
1234
1235         * test/name-test/test-pending-call-dispatch.c:
1236         Fix format string in printf
1237
1238
1239 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1240
1241         * dbus/dbus-bus.c:
1242         * test/name-test/test-names.c:
1243         Remove test method dbus_bus_connection_get_unique_name because 
1244         we already have public method dbus_bus_get_unique_name that 
1245         does the exact same thing
1246
1247 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1248
1249         * dbus/dbus-signature.c:
1250         fix typos in Julio's previous patch which cause make check to fail
1251
1252 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1253
1254         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1255         In any case it was wrong since this is a test checking to see if
1256         address parsing is correct.  There was no need to get the true
1257         tmp directory.  
1258
1259 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1260
1261         * dbus/dbus-macros.h: Revert the addition of stddef.h
1262         as we should not be adding it to library headers 
1263
1264 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1265
1266         * dbus/dbus-signature.c:
1267         Fix the unit tests so that they work if assertions are not enabled.
1268         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1269
1270 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1271
1272         * tools/run-with-tmp-session-bus.sh:
1273         * test/name-test/run-test.sh:
1274         Remove bashisms (patch from Julio M. Merino Vidal
1275         <jmmv at NetBSD dot org>)
1276
1277 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1278
1279         * configure.in: add a version (>= 2.6.0) check for libxml2
1280
1281 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1282
1283         * configure.in: make sure the compiler supports -Wfloat-equal
1284         
1285         * bus/dir-watch-dnotify.c: move functional code after 
1286         variable declerations (C99 fix)  (patches from Jens Granseuer
1287         <jensgr at gmx dot net>
1288
1289 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * dbus/dbus-macros.h:
1292         add #include <stddef.h> so that Sun compilers don't complain about
1293         the defining NULL
1294
1295 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1296
1297         * dbus/dbus-sysdeps.c:
1298         * dbus/dbus-address.c:
1299         * bus/activation.c:
1300         * test/shell-test.c:
1301         don't hardcode tmp directory (patch from Dave Meikle 
1302         <dmk at davemeikle dot co dot uk>)
1303
1304 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1305
1306         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1307         Change an assert to a detailed warning and abort.  
1308         When allocator->lock != mutex it indicates that the user has failed
1309         to initalize threads before using the D-Bus library.  This warning
1310         helps the user identify the issue and fix their app.
1311
1312 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1313
1314         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1315         with cleanups of bugs found from Coverity reports:
1316
1317         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1318         close the file on error to avoid a leak
1319
1320         * bus/expirelist.c (bus_expire_list_test):
1321         Check for NULL on dbus_new0
1322
1323         * bus/activation.c (update_directory):
1324         remove dead code
1325
1326         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1327         Fix some leaks
1328
1329         * bus/bus.c (process_config_every_time):
1330         Fixed a leak
1331
1332         * bus/desktop-file.c (parse_key_value):
1333         Fixed leak
1334
1335         * bus/selinux.c (bus_selinux_id_table_insert):
1336         Fixed leak
1337
1338 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1339
1340         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1341         remove dead code
1342
1343 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1346         #!/bin/bash
1347
1348 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1349
1350         * Doxyfile.in: fix the INPUT line so we can generate docs 
1351         when sourcedir != builddir (patch from Cygwin Ports maintainer
1352         <yselkowitz at users dot sourceforge dot net>
1353
1354 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * dbus/dbus-sysdeps.h:
1357         * dbus/dbus-sysdeps.c: 
1358         * dbus/dbus-string.c: 
1359         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1360         GLib's function which does the same thing
1361
1362         * configure.in:
1363         * bus/Makefile.am:
1364         * bus/dir-watch-default.c:
1365         * bus/dir-watch-dnotify.c:
1366         * bus/dir-watch-kqueue.c:
1367         Add kqueue directory watching for freebsd and split the directory
1368         watching code into seperate files per method/arch
1369         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1370
1371 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1372
1373         * configure.in:
1374         * tools/Makefile.am:
1375         * tools/dbus-launch.c:
1376         * bus/Makefile.am:
1377         allow --with-dbus-daemondir switch to be used to make the
1378         daemon install to a seperate bindir like /usr/libexec
1379         (patch from Brian Cameron <brian dot cameron at sun dot com)
1380
1381 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1382
1383         * bus/Makefile.am (install-data-hook): removed the slash after 
1384         $(DESTDIR) so we don't get the double slash which does not work
1385         in windows (patch from Andras Porjesz 
1386         <andras dot porjesz at siemens dot com>)
1387
1388 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1389
1390         * dbus/dbus-sysdeps.h:
1391         * dbus/dbus-sysdeps.c: 
1392           add _dbus_printf_length (patch from Peter Kümmel 
1393           <syntheticpp at gmx dot net>)
1394
1395 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1396
1397         * dbus/dbus-internals.c: unistd.h is not used 
1398         (_dbus_verbose_real): only enable verbose printing 
1399         if DBUS_VERBOSE environment var is set to '1'
1400         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1401
1402 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1405         so we still compile on older gcc (patch from Frederic Peters 
1406         <fpeters at 0d dot be>
1407
1408 2006-08-04  Havoc Pennington  <hp@redhat.com>
1409
1410         * configure.in: add -Wdeclaration-after-statement
1411
1412         * dbus/dbus-connection.c: change all the pending call stuff to
1413         reflect the fact that pending call operations use the connection
1414         lock
1415
1416         * dbus/dbus-pending-call.c: add locking here
1417
1418         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1419         field const consistent with how message field is done
1420
1421 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * s/D-BUS/D-Bus/g
1424
1425 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1428         <in7y118 at public.uni-hamburg dot de> - fix invalid
1429         read/write reported by valgrind
1430
1431 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1432
1433         * Released 0.91
1434
1435 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1436
1437         * dbus/dbus-connection.c:
1438         (_dbus_connection_attach_pending_call_unlocked):
1439         (connection_timeout_and_complete_all_pending_calls_unlocked):
1440         Make sure we set timeout_added on pending calls to FALSE when
1441         we remove the timeout from the connection
1442
1443 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1444
1445         * Removed some extra bindings stuff lingering around (thanks timo)
1446         * dbus-pendingcall.c (_dbus_pending_call_new): 
1447         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1448         when we tried to take a lock on an already locked connection
1449
1450 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1451
1452         * Released 0.90
1453
1454 2006-07-17  Havoc Pennington  <hp@redhat.com>
1455
1456         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1457         ints, reported by Owen Taylor
1458
1459 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1460
1461         * doc/TODO:
1462         * dbus/dbus-bus.c:
1463         * dbus-errors.c:
1464         * dbus/dbus-marshal-validate.c:
1465           Removed TODO items which were fixed or are no longer relevent
1466
1467 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1468
1469         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1470         Remove stray files from the stripped bindings
1471
1472 2006-07-16  Havoc Pennington  <hp@redhat.com>
1473
1474         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1475         Improve the error message on reply timeout
1476
1477 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1478
1479         * Remove all bindings
1480
1481 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1484         and set pending_reply out arg to NULL is connection is disconnected
1485         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1486         static method for cleaning up pending calls on disconnect
1487         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1488         calls queued timeouts on disconnect 
1489
1490          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1491         Remove 
1492
1493 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1494
1495         * bus/activation.[ch] (bus_activation_list_services): new function to 
1496         get the list of services that can be activated
1497
1498         * bus/dispatch.c: test coverage for the new bus method
1499         ListActivatableNames
1500
1501         * bus/driver.c: new bus method ListActivatableNames to get the list of
1502         services that can be activated
1503
1504         * doc/dbus-specification.xml: ListActivatableNames method documentation
1505
1506 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1507         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1508         source files
1509
1510 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1511         * dbus/dbus-message-factory.c:
1512         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1513
1514 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1515         * dbus/dbus-connection-internal.h:
1516         * dbus/dbus-connection.c:
1517         * file dbus/dbus-pending-call.c:
1518         * dbus/dbus-pending-call.h:
1519         Make DBusPendingCall an opaque type even to D-Bus internals
1520
1521 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1522
1523         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1524         connection_close
1525
1526         * dbus/dbus-connection.c: include dbus-bus.h
1527         (_dbus_connection_read_write_dispatch): make static
1528
1529 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1530
1531         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1532         function
1533         (dbus_connection_dispatch): On disconnect unref any shared connections
1534
1535         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1536         for cleaning up shared connections on disconnect
1537         (internal_bus_get): get a hard refrence to shared connections when
1538         they are created
1539         
1540         * doc/TODO: Remove items which are no longer relevent or have been fixed
1541         Split 1.0 todo items with a 0.90 freeze todo list
1542  
1543 2006-06-14  Ross Burton  <ross@openedhand.com>
1544
1545         * glib/dbus-gobject.c:
1546         Free a leaking GArray (surely not!) in dbus_g_method_return.
1547
1548 2006-06-14  Ross Burton  <ross@openedhand.com>
1549
1550         * tools/Makefile.am:
1551         * tools/dbus-monitor.c:
1552         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1553         Habacker).
1554         
1555 2006-06-14  Ross Burton  <ross@openedhand.com>
1556
1557         * tools/dbus-print-message.c:
1558         Also print the object path when outputting signals or method calls.
1559
1560 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1561
1562         * qt/src/Makefile.am: install the qdbus.h header.
1563         This allows people to actually use the installed code.
1564
1565 2006-06-12  Ross Burton  <ross@openedhand.com>
1566
1567         * glib/dbus-gproxy.c:
1568         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1569
1570 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1571
1572         * Released 0.62
1573
1574 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1575
1576         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1577         break pedantic builds. Closes bug 6043 (patch approved by
1578         Havoc back in February).
1579
1580 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1581
1582         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1583         that took a QDBusMessage parameter.
1584         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1585         * qt/tools/dbus.cpp: Don't use automatic call because we might
1586         be calling an async method: request a reply.
1587
1588 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1589
1590         * test/qt/*: Update the testcases, including testing the new
1591         functionality of sending null QByteArray and QString over the
1592         bus. Add new headertest test and restore the old
1593         qdbusxmlparser test.
1594
1595 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1596
1597         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1598         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1599
1600         * qt/examples/Makefile.am:
1601         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1602         form.
1603
1604         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1605         QByteArray() (nulls) over the bus.
1606         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1607         the one that has the signature suffix stripped.
1608         * qt/src/qdbusreply.h: Make some methods const.
1609
1610 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1611
1612         Patch from Timo Hoenig <thoenig@suse.de>.
1613
1614         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1615         required during build to EXTRA_DIST.
1616         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1617         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1618         * configure.in: Fix "make dist", take care that the Makefile for
1619         qt/dbus is being generated.
1620
1621 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1622
1623         * bus/bus.c: Fix eavesdropping on method calls
1624
1625 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1626
1627         * configure.in:
1628         * dbus/dbus-userdb-util.c:
1629         Add Solaris console owner patch from Artem Kachitchkine
1630
1631 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1632
1633         * qt/Makfile.am:
1634         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1635         reorganisation. Thanks to Timo Hoenig for pointing this out.
1636
1637 2006-06-06  Robert McQueen  <robot101@debian.org>
1638
1639         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1640           call to dbus_g_type_get_struct.
1641
1642 2006-06-06  Robert McQueen  <robot101@debian.org>
1643
1644         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1645           pointers were put into a GPtrArray-based specialised collection, and
1646           then freed along with the array. GValues which you add into
1647           collections or maps which have the NOCOPY flag set are assumed to not
1648           belong to the caller, so rather than the existing pointer-stealing
1649           semantics, they are copied instead. Given that the main consumers of
1650           this abstraction are the bindings themselves, I don't think this is
1651           too bad, but others should watch their choice of take vs set_static.
1652
1653 2006-06-06  Robert McQueen  <robot101@debian.org>
1654
1655         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1656           of g_slist_prepend not being used. Fixed copying of slist-based
1657           specialised collections, then wrote a test case and found that it was
1658           all broken. Went on to fix iterating and appending too. Good thing
1659           nobody uses this code yet.
1660
1661 2006-06-06  Robert McQueen  <robot101@debian.org>
1662
1663         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1664           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1665           are discarded without unsetting, so it makes no difference whether
1666           we take or set_static). Remove cases for G_TYPE_POINTER because
1667           there really is nothing useful we can do with them in our
1668           specialised types - we *need* boxed copy/free functions at the very
1669           least.
1670
1671 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1672
1673         * qt/dbus: Add directory. I had forgotten to add this
1674         yesterday after the move...
1675
1676         * qt/examples/Makefile.am:
1677         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1678
1679         * qt/tools/Makefile.am:
1680         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1681         Added feature to get and set properties.
1682         Added validation of service, object path and interface names.
1683
1684         * qt/tools/dbusidl2cpp.cpp: Two new features:
1685         1) Allow specifying both the header and the source file names,
1686         by separating them with a colon.
1687         2) Don't write an interface output if the -p switch wasn't
1688         given, but the -a was.
1689
1690         * qt/src/*: Fix usage of Iterators and ConstIterators.
1691         Fix shadowing of variables by other variables (-Wshadow).
1692         Fix keyword-cleanliness in headers.
1693         Fix ASCII-cast (QLatin1String, QLatin1Char).
1694         Fix validation of member names.
1695         Add extra checking of introspection data during XML parsing.
1696         Various bug fixes.
1697
1698 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1699
1700         * dbus/Makefile.am:
1701         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1702         qt/dbus/qdbus.h now.
1703
1704 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1705
1706         * configure.in: Make --disable-qt actually do
1707           something. Patch inspired by Zack Rusin.
1708
1709 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1710
1711         * qt/: Update to Subversion r548032.
1712         This includes a big reorganisation of the files inside the
1713         subdir.
1714
1715 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1716
1717         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1718         clear:  
1719         "Failed to connect to socket <host>:<port> <error>" instead of
1720         "Failed to connect to socket <host>: <error>:<port>"
1721
1722         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1723         for a tcp transport. 
1724
1725 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1726
1727         * qt/*: Update the QtDBus bindings up to revision 546310 in
1728         Subversion.
1729         This adds the dbuscpp2xml tool, that parses a C++ header and
1730         outputs a D-BUS Introspection XML.
1731
1732 2006-05-21  Havoc Pennington  <hp@redhat.com>
1733
1734         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1735         is not NULL when it shouldn't be. Also a couple of possible fixes
1736         for #4637 though I don't understand why the bug happens, to be
1737         honest... also the object constructor has an assert name != NULL
1738         and the name is only currently NULL for peer-to-peer proxies that 
1739         I don't think anyone uses? So it should be asserting.
1740         Anyway, for now at least see if we get an earlier assertion failure.
1741
1742         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1743         apparently broken code to be sure the tests fail and someone 
1744         will fix them...
1745
1746 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1747
1748         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1749         and arrays when they had a single element: has_next returns
1750         false, even before you read the element. So, instead, check
1751         the array length.
1752
1753 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1754
1755         * qt/qdbusmessage.cpp:
1756         * qt/qdbustypehelper_p.h:
1757         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1758         the list is a const-reference
1759
1760 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1761
1762         * Adding old doc patch that never got applied
1763         
1764         * dbus/bus.c (dbus_bus_add_match): Add documentation
1765
1766         * doc/dbus-specification.xml: Add documentation for the match rules
1767           and the AddMatch and RemoveMatch methods
1768
1769 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1770
1771         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1772         call (r535506)
1773
1774         * qt/dbusidl2cpp.cpp:
1775         * qt/qdbusabstractadaptor.cpp:
1776         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1777         sibling of the QDBusAbstractAdaptor objects instead of the
1778         parent. (r535848)
1779
1780         * qt/dbusidl2cpp.cpp:
1781         * qt/qdbusabstractinterface.cpp:
1782         * qt/qdbusabstractinterface.h:
1783         * qt/qdbusabstractinterface_p.h:
1784         * qt/qdbusinterface.cpp: Make properties in interfaces
1785         actually work. The code that was generated would not compile,
1786         due to moc calls to functions that did not exist. They now
1787         shall. (r536571)
1788
1789 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1790
1791         * Makefile.am:
1792         * configure.in:
1793         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1794         Thanks to Brad Hards for providing the patch
1795
1796 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1797
1798         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1799         call. (r535506)
1800
1801 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1802
1803         * qt/examples/dbus.cpp: Enhance error messages and use
1804         QDBusInterfacePtr.
1805
1806 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1807
1808         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1809         and disable the copy operators. (r533772, r534746)
1810
1811         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1812
1813         * qt/qdbusabstractinterface.cpp:
1814         * qt/qdbusabstractinterface.h: Change the default call mode to
1815         not use the event loop. Add convenience call() methods that
1816         take a CallMode parameter. (r534042)
1817
1818         * qt/qdbusconnection.h: Change the default call mode to not
1819         use the event loop. (r534042)
1820
1821         * qt/qdbusinterface.cpp:
1822         * qt/qdbusinterface.h: Add a method to tell us if the
1823         interface is valid (since we don't return a null pointer
1824         anymore) (r534099)
1825
1826         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1827         (r534101)
1828
1829         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1830         function in two so taht we get the chance to introspect
1831         without having a QDBusMessage (r534102)
1832
1833         * qt/qdbusbus.h:
1834         * qt/qdbusconnection.cpp:
1835         * qt/qdbusconnection_p.h:
1836         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1837         avoid a round-trip to the server when attempting to introspect
1838         one of our own objects. Also make sure the filter functions
1839         match the empty interface as well. (r534108)
1840         Don't keep the connection names. Instead, trust the unique
1841         connection name (r534111)
1842         Remove event loop usage (r534112)
1843
1844 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1845
1846         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1847         Brad Hards.
1848
1849 2006-04-28  Robert McQueen  <robot101@debian.org>
1850
1851         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1852         any order, making it easier for people who inherit from this
1853         object.
1854
1855 2006-04-28  Robert McQueen  <robot101@debian.org>
1856
1857         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1858         of memory from within pointer arrays and lists. Fixes bug #6300.
1859
1860 2006-04-28  Robert McQueen  <robot101@debian.org>
1861
1862         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1863         generating struct signatures. Fixes bug #6083.
1864
1865 2006-04-28  Robert McQueen  <robot101@debian.org>
1866
1867         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1868         to qdbusconnection_p.moc.
1869
1870 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1871
1872         * README, INSTALL: Doc fixes
1873         Patch from Brad Hards <bradh at frogmouth.net>
1874
1875 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1876
1877         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1878         the dynamic meta object. No need to guess which interface to
1879         call.
1880
1881 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1882
1883         * qt/qdbusconnection_p.h:
1884         * qt/qdbusmetaobject.cpp:
1885         * qt/qdbusmetaobject_p.h:
1886         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1887         for the dynamic meta object. No need to guess which
1888         interface to call.
1889         * qt/qdbusabstractinterface_p.h:
1890         * qt/qdbusconnection.cpp:
1891         * qt/qdbusintegrator.cpp:
1892         * qt/qdbusinterface.cpp:
1893         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1894         Add a QDBusRef that looks and behaves like DCOPRef.
1895
1896 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1897
1898         * dbus/dbus-connection.c: Interfaces are optional in method
1899         calls, so don't give up if the interface parameter is NULL.
1900         Patch reviewed by Havoc Pennington.
1901
1902 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1903
1904         * qt/qdbusreply.h: Add default constructor and operator=
1905           (r532625)
1906         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1907           in public headers (r532952)
1908         * qt/qdbusabstractinterface.cpp:
1909         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1910           make it the default (r532951)
1911
1912 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1913
1914         * dbus/dbus-connection.c: Fix asserts
1915         Patch from Tim Moloney <t.moloney at verizon.net>
1916
1917 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1918
1919         * mono/Connection.cs, mono/Message.cs: Check Target type
1920         Patch from Aaron Bockover (abockover at novell.com)
1921
1922 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1923
1924         * INSTALL: fine-tune the requirements for the Qt4 binding.
1925
1926 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1927
1928         * tools/dbus-print-message.c: Added support for printing of all 
1929           remaining data types. Fixed logic for indentation of compound
1930           data types.
1931         
1932 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1933
1934         * INSTALL: fill out content of file providing DBus specific
1935           build installations, followed by generic Auto* INSTALL file
1936           content
1937         
1938 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1939
1940         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1941           Patch by Stefan Eilers. (r529537)
1942
1943 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1944
1945         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1946           contents (r528208)
1947
1948 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1949
1950         * qt/Makefile.am: fix the dependency for
1951           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1952           not in qdbusconnection.cpp.
1953           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1954           spotting this.
1955
1956 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1957
1958         * qt/examples/listnames.cpp:
1959         * qt/examples/Makefile.am: Three ways to list the names on the
1960           bus.
1961
1962 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1963
1964         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1965           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1966
1967 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1968
1969         Merge from Subversion:
1970         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1971           something that exists (r526315)
1972         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1973           slots/signals (r526316)
1974         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1975           also return an unknown-method error if the parameters don't
1976           match for org.freedesktop.DBus.Properties. (r526842)
1977         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1978         * qt/qdbusintegrator.cpp: Restore the proper order of
1979           delivery: don't make method returns be delivered on priority
1980           (r528150)
1981
1982 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1983
1984         * configure.in qt/Makefile.am: add qt/examples
1985         * qt/examples: Add QtDBus example programs:
1986           - hello: Hello, World
1987           - ping: Simple method-calling program
1988           - pong: Simple object-exporting program (not using adaptors)
1989           - complexping: Interactive method-calling program 
1990                 (also gets and sets properties).
1991           - complexpong: Sample program exporting methods, signals and
1992                 properties, using adaptors.
1993           - dbus: Simple implementation of a generic method-calling
1994                 program, similar to 'dbus-send', but with semantics
1995                 similar to 'dcop'.
1996           - chat: Simplistic chat program, implemented using signals
1997                 and the system bus. Looks like IRC.
1998
1999 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2000
2001         * configure.in: Detect QtGui (necessary for one of the
2002           example programs). Note: this increases the minimum required
2003           version of Qt to 4.1.3.
2004
2005 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2006
2007         * test/qt/*: Sync with KDE Subversion revision 523647.
2008         Update the testcases to the new API. Remove testcases for
2009         classes that are no longer public or have been removed.
2010
2011 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2012
2013         * qt/*: 
2014         * dbus/qdbus.h: Sync with KDE Subversion revision
2015         523647. Hopefully, this will be the last of the
2016         source-incompatible changes. Documentation has been improved;
2017         support for QList<basic-types> has been added; QDBusObject is
2018         gone; QDBus(Abstract)Interface is now a QObject with
2019         auto-generated meta-object; QDBusIntrospection is marked
2020         private, since QMetaObject can be used now; lots of bugfixes.
2021
2022 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2023
2024         Patch from Milosz Derezynski <internalerror at gmail.com>
2025         
2026         * configure.in:
2027         Output the service directory in the configure summary
2028
2029         * dbus-1.pc.in:
2030         Add session_bus_services_dir
2031
2032 2006-03-10  Ross Burton  <ross@openedhand.com>
2033
2034         * tools/dbus-print-message.c:
2035         Add support for object paths and signatures.
2036
2037 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2038
2039         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2040         config reload.
2041         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2042         information caches
2043         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2044         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2045         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2046         * dbus/dbus-userdb.h: Add function to flush all user/group information
2047         caches.
2048
2049 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2050
2051         * qt/dbusidl2cpp.cpp:
2052         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2053         for dcopidl2cpp, found in the KDE installations (or the more
2054         modern kalyptus): generate Qt4 C++ code for the input XML
2055         introspection. Currently no IDL parsing.
2056
2057 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2058
2059         * test/qt/*: Update the self-tests.
2060
2061 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2062
2063         * qt/*: 
2064         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2065         represents the first feature-complete version of the Qt4
2066         bindings since I took ove maintainership.
2067
2068 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2069
2070         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2071         dir. This is C++, so we can't use the DBus ones.
2072
2073 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2074
2075         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2076         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2077
2078 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2079
2080         * dbus/dbus-connection.c: 
2081         (_dbus_connection_block_pending_call):
2082         Check to see if our data has already been read off the connection
2083         by another blocking pending call before we block in poll.
2084         (check_for_reply_and_update_dispatch_unlocked):
2085         Code taken from _dbus_connection_block_pending_call - checks for
2086         an already read reply and updates the dispatch if there is one.
2087
2088         * test/name-test/test-pending-call-dispatch.c:
2089         New test for making sure we don't get stuck polling a 
2090         dbus connection which has no data on the socket when
2091         blocking out of order on two or more pending calls.
2092
2093 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2094
2095         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2096         make/automake don't detect that we're talking about the same
2097         .lo file if I specify the full path to the source files.
2098
2099 2006-02-26  Havoc Pennington  <hp@redhat.com>
2100
2101         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2102
2103         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2104         session bus variable is unset, suggest "man dbus-launch" and "man
2105         dbus-daemon" to figure out how to fix the problem
2106
2107 2006-02-25  Havoc Pennington  <hp@redhat.com>
2108
2109         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2110         should make this thing use the new glib options parser
2111
2112 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2113
2114         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2115         .lo files taking moc sources.
2116
2117 2006-02-25  Havoc Pennington  <hp@redhat.com>
2118
2119         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2120         and install it as a public header
2121
2122 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2123
2124         * Released 0.61
2125
2126 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2127         
2128         * proxies.py: Fix the callchain
2129
2130 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2131         
2132         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2133
2134         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2135         dbus/dbus-sysdeps.c
2136
2137         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2138         call _dbus_group_info_free_allocated which causes infinite loop,
2139         correctly call _dbus_group_info_free
2140
2141 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2142
2143         * qt/qdbusinterface_p.h:
2144         * qt/qdbusinterface.cpp: Use the standard
2145         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2146         calls instead of creating one for us.
2147
2148         * qt/qdbusconnection_p.h:
2149         * qt/qdbusintegrator.cpp: Remove debugging code.
2150
2151         * qt/qdbusintegrator.cpp:
2152         * qt/qdbusmessage.cpp:
2153         * qt/qdbusmessage_p.h:
2154         * qt/qdbusmessage.h: Change the behaviour of automatic
2155         reply-sending: now a reply is always sent, unless the caller
2156         didn't request one or if the user slot has already sent one.
2157
2158 2006-02-16  Robert McQueen  <robot101@debian.org>
2159
2160         * configure.in: Patch from Debian packages by Sjoerd Simons
2161         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2162         arguments so it's possible to build both bindings in the
2163         same tree.
2164
2165         * qt/Makefile.am: Fix truncated value so that make dist works.
2166
2167 2006-02-16  Robert McQueen  <robot101@debian.org>
2168
2169         * acinclude.m4, configure.in: Patch from Brad Hards
2170         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2171         improving quoting, re-ordering a few checks, and a few other
2172         aesthetic tidy-ups.
2173
2174 2006-02-16  Robert McQueen  <robot101@debian.org>
2175
2176         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2177         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2178         assertion that the next element to read from the iter is fixed in
2179         size. This is not the case when you are at the end of the iter,
2180         because the next element type is INVALID.
2181
2182         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2183         a bogus assert which means that you may not initialise a 0-length
2184         string unless you provide a non-NULL pointer. This prevented
2185         you from marshalling messages containing zero-length arrays in
2186         some cases.
2187
2188         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2189         from Rob to correct bogus asserts when trying to demarshal an
2190         array and get_fixed_array got you 0 elements. Append nothing to
2191         the GArray in this case.
2192
2193         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2194         an empty array via the glib bindings. Without all of the above
2195         patches, this new test fails.
2196
2197 2006-02-16  Robert McQueen  <robot101@debian.org>
2198
2199         * glib/dbus-gmain.c: Make the previous commit compile.
2200
2201         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2202         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2203         specify sender_keyword="foo", path_keyword="bar" when adding
2204         a signal listener, so that you can bind to signals generically
2205         but still do something useful in your callback.
2206
2207         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2208         chars so that they're not cast to chars and made negative. Thanks
2209         to Jakub Stachowski for reporting this and testing the fix.
2210
2211 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2212
2213         * dbus/dbus-glib.h:
2214         * glib/dbus-gmain.h:
2215         (dbus_g_connection_open): new method for openning
2216         a connection to an arbitrary address in the glib bindings
2217
2218         * ChangeLog: checkin last entry which doesn't seem to be commited
2219
2220 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2221
2222         * tools/dbus-launch.c: Fixed sh syntax output
2223
2224 2006-02-13  Robert McQueen  <robot101@debian.org>
2225
2226         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2227         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2228         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2229         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2230         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2231         missing piece of the glib bindings jigsaw puzzle. This modifies
2232         the existing specialised types to have N type parameters (rather
2233         than the current 1 or 2 for arrays and dictionaries respectively).
2234         You can then use this to get a glib type to represent any arbitrary
2235         D-Bus struct type using dbus_g_type_get_struct. The only
2236         implementation of these types is with GValueArrays as before,
2237         but it's now possible to store these in arrays, emit them in
2238         signals, etc.
2239
2240 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2241
2242         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2243         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2244         <thiago.macieira at trolltech.com>
2245
2246 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2247
2248         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2249         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2250
2251 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2252
2253         * bus/connection.c (bus_connections_expect_reply): Make
2254         pending reply limit not common to all connections (Bug #5416)
2255         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2256
2257 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2258
2259         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2260
2261 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2262
2263         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2264         patch from Doug Goldstein <cardoe at gentoo.org>
2265
2266 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2267
2268         * mono/Arguments.cs: Fix a magic number in the mono bindings
2269         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2270
2271 2006-01-27  Robert McQueen  <robot101@debian.org>
2272
2273         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2274         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2275         when generating the client-side methods, instead of overloading
2276         CSymbol which broke everything horribly. My apologies.
2277
2278 2006-01-27  Robert McQueen  <robot101@debian.org>
2279
2280         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2281         by me and Rob Taylor to add a simple_free function to D-Bus map
2282         and collection types, which allows those types which can be freed
2283         with a GDestroyNotify (such as GHashTables and GArrays, but not
2284         GPtrArrays) to be stored as the values in hashtables.
2285
2286         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2287         Patch by Rob Taylor to add nested dicts to the glib tests to check
2288         the above code works, and appears not to leak when called repeatedly.
2289
2290 2006-01-27  Robert McQueen  <robot101@debian.org>
2291
2292         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2293         to free a D-Bus allocated string with dbus_free () instead of
2294         g_free ().
2295
2296 2006-01-27  Iain Holmes  <iain@openedhand.com>
2297
2298         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2299         method from being called multiple times.
2300
2301 2006-01-19  Robert McQueen  <robot101@debian.org>
2302
2303         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2304         <rob.taylor@collabora.co.uk> to add support for generating bindings
2305         to arrays that are represented as GPtrArrays rather than GArrays (ie
2306         size-variable things, such as strings, objects, structs, etc).
2307
2308 2006-01-05  Robert McQueen  <robot101@debian.org>
2309
2310         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2311         <ricardo.kekki@movial.fi> to make it possible to inherit from
2312         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2313         a private part, and moving the setting of the DBusGProxyManager into a
2314         connection property, allowing proper GObject construction.
2315
2316 2006-01-05  Robert McQueen  <robot101@debian.org>
2317
2318         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2319         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2320         annotations when generating glib client bindings.
2321
2322 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2323
2324         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2325
2326         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2327
2328 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2329
2330         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2331
2332 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2333
2334         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2335
2336 2005-12-19  Ross Burton  <ross@openedhand.com>
2337
2338         * doc/dbus-tutorial.xml:
2339         Document the Glib client-side bindings, and list all possible annotations.
2340
2341 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2342
2343         * dbus/bus.c (dbus_bus_release_name): Add documentation
2344
2345 2005-12-06  Robert McQueen  <robot101@debian.org>
2346
2347         * python/service.py: s/sucessful/successful/ so we're allocating to
2348         and reading from the same variable. Oops.
2349
2350 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2351
2352         * Released 0.60
2353
2354 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2355
2356         * test/qt/Makefile.am: build from srcdir
2357
2358         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2359         Note - this code is wrong and needs to be fixed by the Qt binding
2360         developers.  The flags should be treated as bitfields and not enums.
2361
2362         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2363
2364 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2365
2366         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2367           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2368           in production code
2369
2370 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2371
2372         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2373         method for getting messages off the bus in the absence of a
2374         mainloop.  This method is much like 
2375         dbus_connection_read_write_dispatch except it does not dispatch
2376         the messages to a registered filter function.  Instead it
2377         allows a developer to process messages by directly popping
2378         them off the bus.
2379
2380 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2381
2382         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2383         the parser to continue instead of returning error
2384         (bus_desktop_file_load): Do not free parser data when
2385         parse_section_start or parse_key_value fails because it was 
2386         already freed by parser_free (patch from Carlos Garcia Campos  
2387         <carlosgc at gnome.org>)
2388
2389 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2390
2391         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2392         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2393         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2394         test/test-segfault.c, test/test-utils.c,
2395         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2396         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2397         Various cleanup of dead code and compiler warnings (patch from
2398         Kjartan Maraas <kmaraas at gnome.org>) 
2399
2400 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2401
2402         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2403         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2404
2405 2005-11-27  Robert McQueen  <robot101@debian.org>
2406
2407         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2408         part of the preceding one. Oops. Merge patch by Johan Hedberg
2409         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2410         on big-endian platforms.
2411
2412         * test/python/test-client.py: Add some 16-bit integers to the test
2413         values.
2414
2415 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2416
2417         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2418         method return message for property getters
2419
2420 2005-11-27  Robert McQueen  <robot101@debian.org>
2421
2422         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2423         with type v of an instance of dbus.Variant(foo, type='x') caused
2424         it to be boxed twice before sending over the bus.
2425
2426         * python/dbus_bindings.pyx, python/service.py,
2427         test/python/test-client.py: Update the constants for the new
2428         request_name flags, and update comments/test cases now that queueing
2429         is the default action.
2430
2431 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2432
2433         * configure.in:
2434         - Change version to 0.60 for impending release
2435         - upped the sonames because of ABI and API breakage
2436
2437 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2438
2439         * configure.in: Add test/name-test/Makefile to the generated
2440         Makefile list
2441
2442         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2443         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2444         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2445         not to queue an ower if it can't be the primary owner
2446
2447         * bus/bus.h: Add new internal BusOwner struct
2448
2449         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2450         to bus_registry_ensure and don't set the prohibit_replacement flag
2451         since they are now set per BusOwner and not per name.
2452         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2453         that returns the list of connections in a name's connection queue
2454         
2455         * bus/services.c (struct BusService): remove prohibit_replacement field
2456         (struct BusOwner): new struct for keeping track of queued connections
2457         and their associated flags for the queue
2458         (struct BusRegistry): add a BusOwner memory pool
2459         (bus_registry_new): initialize the BusOwner memory pool
2460         (bus_registry_unref): free the BusOwner memory pool
2461         (_bus_service_find_owner_link): new internal method for
2462         searching the queue for a specific connection
2463         (bus_owner_set_flags): new method for adding setting the flags on a
2464         bus owner
2465         (bus_owner_new): new method that creates a BusOwner object from the
2466         pool and sets its flags
2467         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2468         (bus_registry_ensure): Add the flags parameter
2469         (bus_registry_acquire_service): Switch from using raw connections to
2470         using the BusOwner struct
2471         Add new state machine for dealing with the new set of flags
2472         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2473         cancel_ownership, free_ownership_cancel_data, 
2474         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2475         restore_ownership, free_ownership_restore_data, 
2476         add_restore_ownership_to_transaction): Switch to using BusOwner 
2477         instead of raw connections
2478         (bus_service_add_owner): Add flags parameter
2479         Switch to using BusOwner instead of raw connections
2480         Add state machine for dealing with the new set of flags
2481         (bus_service_swap_owner): Swaps the first and second owners in the
2482         queue.  Used to make sure proper signals are sent when a service looses 
2483         or gains primary ownership.  We never insert an owner at the top of the
2484         queue.  Instead we insert it in the second position and then swap.
2485         (bus_service_remove_owner): Remove the owner from the queue sending
2486         out the NameLost and NameOwnerChanged signals if the we were the 
2487         primary owner
2488         (bus_service_get_primary_owners_connection): New method that extracts
2489         the connection from the primary owner
2490         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2491         connection
2492         (bus_service_get_allow_replacement): Changed from the old 
2493         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2494         primary owner and returns if it can be replaced or not
2495         (bus_service_set_prohibit_replacement): removed
2496         (bus_service_has_owner): returns TRUE if and owner with
2497         the specified connection exists in the queue
2498         
2499         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2500         method that only compiles if tests are enabled.  Allows us to get the 
2501         unique name of a connection so we can check it against the queue when
2502         doing regression tests
2503
2504         * bus/activation.c (bus_activation_send_pending_auto_activate),
2505         bus/dispatch.c (bus_dispatch),  
2506         bus/driver.c (bus_driver_handle_get_service_owner, 
2507         bus_driver_handle_get_connection_unix_user, 
2508         bus_driver_handle_get_connection_unix_process_id,
2509         bus_driver_handle_get_connection_selinux_security_context),
2510         bus/signals.c (connection_is_primary_owner): 
2511         use bus_service_get_primary_owners_connection instead of
2512         bus_service_get_primary_owner
2513
2514         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2515         _dbus_listen_unix_socket): Calculate the length of the socket
2516         path and use that instead of using a fixed length which was
2517         causing socket names to contain many trailing Nul bytes.
2518
2519         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2520         (dbus_g_method_get_sender): New method for extracting the sender 
2521         from a DBusGMethodInvocation
2522         (dbus_g_method_return_get_reply): changed name to 
2523         dbus_g_method_get_reply
2524         (dbus_g_method_return_send_reply): changed name to
2525         dbus_g_method_send reply
2526
2527         * doc/dbus-specification.xml: New docs that describe how the new
2528         queueing system works and talks about the changes to the how
2529         we specify socket names
2530
2531         * glib/examples/example-service.c, 
2532         glib/examples/example-signal-emitter.c,
2533         glib/examples/statemachine/statemachine-server.c:
2534         Changed the RequestName flags to the new system
2535
2536         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2537         regression test suite for testing various states of the new
2538         queueing system
2539         
2540 2005-11-15  Robert McQueen  <robot101@debian.org>
2541
2542         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2543         Taylor to add two methods, dbus_g_method_return_get_reply and
2544         dbus_g_method_return_send_reply, to allow you to get the reply
2545         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2546         and send it. The GLib bindings can't marshal a return value of
2547         something like a(s) if the array is empty - ultimately they should be
2548         made to heed the signature of the out arguments as the Python bindings
2549         now can, but this is a workable interim solution which might have
2550         other applications.
2551
2552 2005-11-15  Robert McQueen  <robot101@debian.org>
2553
2554         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2555         method to org.freedesktop.DBus to release a bus name or give up
2556         waiting in the queue for it.
2557
2558         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2559         dbus_bus_release_name method to send the ReleaseName method calls.
2560         Add constants for the return values to dbus/dbus-shared.h.
2561
2562         * doc/dbus-specification.xml: Document the new ReleaseName method
2563         in the specification.
2564
2565         * python/dbus_bindings.pyx: Add a low-level python binding for the
2566         release name method.
2567
2568         * python/exceptions.py, python/service.py: Make freeing BusName
2569         objects release the name. Add a NameExistsException, and fix a
2570         bug with creating UnknownMethodException.
2571
2572         * test/python/test-client.py: Add tests for freeing BusName
2573         objects causing names to be released.
2574
2575 2005-11-14  Robert McQueen  <robot101@debian.org>
2576
2577         * python/service.py: Include the traceback in the error reply when we
2578         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2579
2580 2005-11-14  David Zeuthen  <davidz@redhat.com>
2581
2582         Patch from Timo Hoenig <thoenig@suse.de>.
2583
2584         * bus/bus.c: I've recently investigated why the automatic reload
2585         of configuration files does not work as expected.
2586
2587         Currently, reloading configuration files does only work when
2588         running dbus-daemon with --nodaemon.  If we are running as daemon
2589         we're hitting a dnotify bug once we fork the process.
2590
2591         We're initializing the dnotify fds before calling fork().  Once
2592         the child process forked it does still have the fds (and they
2593         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2594         getting SIGIO as changes are made to the configuration files.
2595
2596         The attached patch moves the initialization of the dnotify fds to
2597         process_config_postinit().  This is safe for all current code
2598         paths and solves the dnotify disfunction.  If we're running
2599         dbus-daemon as daemon the fds for dnotify are now being
2600         initialized after fork() for the child process.
2601
2602         * configure.in: The current configure.in check for dnotify probes
2603         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2604         match for 'xlinux', too. Additionally I have adapted the configure
2605         option's style to match with the others.
2606
2607 2005-11-14  Robert McQueen  <robot101@debian.org>
2608
2609         * python/decorators.py, python/service.py: Add a new argument to the
2610         dbus.service.method decorator called sender_keyword, which if set,
2611         specifies the name of an argument which will be provided the bus
2612         name of the method caller.
2613
2614         * test/python/test-client.py, test/python/test-service.py: Add a
2615         method and test to check the sender_keyword functionality.
2616
2617 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2618
2619         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2620         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2621         Simons <sjoerd at luon.net>)
2622
2623         * AUTHORS: Add Robert McQueen for his work on the Python
2624         Bindings and other parts of D-Bus
2625
2626 2005-11-07  Robert McQueen  <robot101@debian.org>
2627
2628         * python/decorators.py: Change emit_signal function to use the
2629         signature annotation of the signal when marhsalling the arguments from
2630         the service. Fix a bug where the code checking signature length
2631         against argument length referenced the wrong variable.
2632
2633         * python/introspect_parser.py: Avoid adding the type signature of
2634         signal arguments to any methods which occur after them in the
2635         introspection data (!) by making the parser a little more careful
2636         about its current state.
2637
2638         * python/service.py: Remove debug prints from last commit (again :D).
2639
2640         * test/python/test-client.py, test/python/test-service.py: Add test
2641         signals with signature decorators to test the strict marshalling code
2642         gives errors at the right time. Could do with checking the signals
2643         actually get emitted too, given that the test does nothing with
2644         signals at the moment...
2645
2646 2005-11-07  Robert McQueen  <robot101@debian.org>
2647
2648         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2649         instances to stop madness of creating new instances representing
2650         the same bus connection all the time, rendering any tracking of
2651         match rules and bus names quite meaningless. Caught a bug where
2652         the private argument to SessionBus() and friends was being passed
2653         in as use_default_mainloop by mistake. Still some problems with
2654         multiple dbus_binding.Connection instances representing the same
2655         low-level connection (eg when you use both SessionBus() and
2656         StarterBus() in same process), but it's a lot better now than it
2657         was.
2658
2659         * python/dbus_bindings.pyx: Add constants with the return values
2660         for bus_request_name().
2661
2662         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2663         and retrieve the same instances for the same name, so deletion can be
2664         done with refcounting. Also now throws some kind of error if you
2665         don't actually get the name you requested, unlike previously...
2666
2667         * test/python/test-client.py: Add tests for instance caching of buses
2668         and bus name objects.
2669
2670 2005-11-04  Robert McQueen  <robot101@debian.org>
2671
2672         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2673         marshalling of boolean values. Add some booleans to the values in
2674         the test client.
2675
2676         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2677         argument to the dbus.service.method decorator, which allows you to
2678         name arguments to take two callback functions for replying with
2679         return values or an exception.
2680
2681         * test/python/test-client.py, test/python/test-service.py: Add test
2682         case using asynchronous method reply functions, both return values and
2683         errors, and from within both the function itself and from a mainloop
2684         callback.
2685
2686         * python/decorators.py, python/service.py: Perform checking that the
2687         number of method/signal arguments matches the number of types in the
2688         signature at class loading time, not when you first introspect the
2689         class.
2690
2691         * python/service.py: Remove debug print left by the last commit.
2692
2693 2005-11-03  Robert McQueen  <robot101@debian.org>
2694
2695         * python/service.py: Heavy refactoring of method invocation, with
2696         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2697         in favour of a new _message_cb that uses seperate functions for
2698         looking up the method to call, marshalling the return values, and
2699         sending exceptions as errors, and is easier to follow as a
2700         consequence.  Fixes some corner cases about returning things that
2701         don't match your declared out_signature, allows exceptions to define
2702         _dbus_error_name and have it be sent over the bus as the error name,
2703         and paves the way for cool stuff like heeding the message no reply
2704         flag, asynchronous method implementations, informing the method of the
2705         sender, and including backtraces in the error messages.
2706
2707         * test/python/test-client.py: Catch and print exceptions thrown in the
2708         async callback tests, rather than passing them to the low-level
2709         bindings to be ignored in a noisy and frustrating manner.
2710
2711 2005-11-03  Robert McQueen  <robot101@debian.org>
2712
2713         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2714         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2715         tweak others to be consistent.
2716
2717         * test/python/test-client.py: Tweak output of testInheritance.
2718
2719 2005-10-29  Robert McQueen  <robot101@debian.org>
2720
2721         * python/service.py: Major changes to allow multiple inheritance
2722         from classes that define D-Bus interfaces:
2723         
2724          1. Create a new Interface class which is the parent class of
2725             Object, and make the ObjectType metaclass into InterfaceType.
2726         
2727          2. Patch written with Rob Taylor to replace use of method_vtable
2728             with code that walks the class's __MRO__ (method resolution order)
2729             to behave like Python does when invoking methods and allow
2730             overriding as you'd expect. Code is quite tricky because
2731             we have to find two methods, the one to invoke which has the
2732             right name and isn't decorated with the /wrong/ interface,
2733             and the one to pick up the signatures from which is decorated
2734             with the right interface.
2735         
2736             The same caveats apply as to normal multiple inheritance -
2737             this has undefined behaviour if you try and inherit from two
2738             classes that define a method with the same name but are
2739             decorated with different interfaces. You should decorate
2740             your overriding method with the interface you want.
2741         
2742          3. Replace grungy introspection XML generation code in the metaclass
2743             with dictionaries that cope correctly with multiple inheritance
2744             and the overriding of methods. This also uses the signature
2745             decorations to provide correct introspection data, including
2746             the debut appearance of the types of your return values. :D
2747
2748         * test/python/test-client.py, test/python/test-service.py: Add a test
2749         case to try invoking an method that overrides one inherited from a
2750         D-Bus interface class.
2751
2752 2005-10-29  Robert McQueen  <robot101@debian.org>
2753
2754         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2755         Add checking for the end of struct character when marshalling a
2756         struct in MessageIter.append_strict.
2757
2758         * python/examples/example-service.py,
2759         python/examples/gconf-proxy-service.py,
2760         python/examples/gconf-proxy-service2.py: Update to use gobject
2761         mainloop directly rather than appearing to depend on gtk.
2762
2763         * python/test/test-client.py, python/test/test-server.py: Remove
2764         obsolete and broken test scripts for old bindings. We have up to date
2765         and working tests in test/python/.
2766
2767 2005-10-29  Robert McQueen  <robot101@debian.org>
2768
2769         * python/decorators.py: Add optional arguments to the method and
2770         signal decorators to allow you to specify the signature of arguments
2771         and return values. Preserve the doc strings of signal functions in the
2772         decorated version, for pydoc and friends.
2773
2774         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2775         parse_signature_block function with an iterable dbus.Signature()
2776         type. Fix a bug in MessageIter.append_strict where you could append
2777         anything by claiming it was a string.
2778
2779         * python/service.py: Use the out_signature decoration on methods to
2780         marshal return values, meaning you no longer require dbus.Array()
2781         or dbus.Dictionary() to indicate the type when returning empty
2782         arrays or dictionaries. Fix a bug where exceptions which are defined
2783         in __main__ are not turned into error replies.
2784
2785         * test/python/test-client.py, test/python/test-service.py: Add test
2786         for correct marshalling of return values according to out_signature.
2787         Fix a bug in the async call test where the error_handler is missing a
2788         self argument.
2789
2790 2005-10-29  Robert McQueen  <robot101@debian.org>
2791
2792         * glib/Makefile.am, glib/examples/Makefile.am,
2793         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2794         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2795
2796         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2797
2798         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2799         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2800         the command line.
2801
2802 2005-10-27  Ross Burton  <ross@openedhand.com>
2803
2804         * dbus/dbus-marshal-header.c:
2805         Remove dead code.
2806
2807         * glib/dbus-gobject.c:
2808         Stop compiler warning.
2809
2810 2005-10-25  Ross Burton  <ross@openedhand.com>
2811
2812         * dbus/dbus-auth.c:
2813         * dbus/dbus-server-unix.c:
2814         * dbus/dbus-transport-unix.c:
2815         * glib/dbus-gmain.c:
2816         * glib/dbus-gobject.c:
2817         Add some const keywords.
2818
2819 2005-10-25  Ross Burton  <ross@openedhand.com>
2820
2821         * doc/dbus-specification.xml:
2822         Document the NoReply annotation.
2823
2824         * glib/dbus-binding-tool-glib.h:
2825         * glib/dbus-binding-tool-glib.c:
2826         Respect the NoReply annotation.
2827
2828 2005-10-24  Robert McQueen <robot101@debian.org>
2829
2830         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2831         derive from unicode instead of str, and encode/decode UTF-8 when
2832         marshalling/unmarshalling bus messages
2833
2834         * python/introspect_parser.py: encode introspection data as UTF-8
2835         before passing the buffer into libxml2
2836
2837         * test/python/test-client.py: add unicode test strings
2838
2839         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2840         ignore generated python test files
2841
2842 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2843
2844         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2845         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2846         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2847
2848         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2849         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2850         when constructing struct signatures
2851
2852         * python/_dbus.py (Bus): handle private connections using the
2853         private keyword in the constructor. defaults to private=False
2854         (Bus::close): new method to close a connection to the bus
2855
2856         * python/dbus_bindings.pyx (Connection::close): renamed method
2857         was previously called disconnect
2858         (bus_get): now supports getting a private connection
2859
2860         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2861         keyword is set to True.  if it is, execute the method without waiting
2862         for a reply
2863         (ProxyObject::_introspect_execute_queue): new method for executing
2864         all the pending methods that were waiting for the introspect to
2865         finish.  this is called when introspect either succeeds or fails
2866         (ProxyObject::_introspect_error_handler): call queued methods
2867
2868 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2869
2870         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2871         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2872
2873         * python/service.py (Object::_message_cb): handle exceptions correctly
2874         by sending them over the wire to the calling app.  This makes sure
2875         the client returns immediately instead of waiting the 15 seconds to
2876         timeout.
2877
2878         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2879         Add a test to benchmark how long it takes to introspect a service and 
2880         call a method which returns a large element (pretty fast)
2881
2882         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2883         method which pushes a lot of data
2884
2885 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2886
2887         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2888         reclaim memory outside of the loop and use del istead of just setting
2889         the key to None
2890
2891 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2892
2893         * python/service.py (ObjectType::_reflect_on_signal): Always close
2894         signal tag even when there are no arguments
2895
2896 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2897
2898         * configure.in: Set mono, mono-docs and Qt3 to default
2899         to no instead of auto when building.  These bindings do not
2900         have full time maintainers and will not be supported for the
2901         1.0 release.
2902
2903 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2904
2905         patches from Michael Krivoruchko <misha at sun.com>: 
2906         
2907         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2908         _dbus_connection_message_sent, 
2909         _dbus_connection_send_preallocated_unlocked_no_update, 
2910         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2911         is NULL when calling _dbus_verbose
2912
2913         * configure.in: check for functions getpeerucred and getpeereid
2914
2915         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2916         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2917         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2918         Patch was only tested on Solaris 10 x86 so it might be issues
2919         with other platforms (i.e. BSDs and MacOSX)
2920         
2921
2922 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2923
2924         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2925         instead of marshal basic so we can handle recursive types in a variant
2926
2927         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2928         in variants
2929
2930         * test/glib/test-service-glib.c, test-service-glib.xml
2931         (my_object_echo_variant [EchoVariant], 
2932         my_object_process_variant_of_array_of_ints123
2933         [ProcessVariantOfArrayOfInts123]): 
2934         Add two test methods
2935
2936         * python/introspect_parser.py: New module for parsing introspect
2937         data.
2938
2939         * python/dbus_bindings.pyx:
2940         (various places): when throwing errors fix to use errormsg instead 
2941         of message local variable because Pyrex can get confused with other 
2942         message variables (initial patch by Robert McQueen 
2943         <robert.mcqueen at collabora.co.uk>)
2944         (MessageIter::parse_signature_block): new method for getting the next
2945         block in a signiture.
2946         (MessageIter::append_strict): new method for appending values strictly
2947         using the passed in signature instead of guessing at the type
2948         (MessageItter:: append_dict, append_struct, append_array): use 
2949         signatures to marshal children if the signature is available
2950         
2951         * python/exceptions.py (IntrospectionParserException): new exception
2952
2953         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2954         introspected signatures if available, else we fall back to the
2955         old way of doing things.
2956         (ProxyObject::_introspect_reply_handler ): parse introspection data
2957         
2958         * python/service.py (ObjectType::_reflect_on_method): Properly
2959         terminate <method> if there are no args in the reflection data
2960
2961         * test/python/test-client.py: add tests for talking with the GLib
2962         test server.  This gives us better coverage for introspection since
2963         python to python will always generate arguments as variants.  It also
2964         allows us to test the robustness of the GLib bindings and interlanguage
2965         communications.
2966
2967         
2968 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2969
2970         * bus/driver.c (bus_driver_handle_introspect): Add signals
2971         to the introspect data. (patch from Daniel P. Berrange 
2972         <dan at berrange.com>)
2973
2974         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2975         
2976         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2977         _dbus_connection_run_builtin_filters): Changed these to
2978         be unlock_no_update functions and call 
2979         _dbus_connection_send_unlocked_no_update instead of
2980         dbus_connection_send to avoid locking errors.
2981         
2982         * doc/TODO: Removed the make Ping test TODO
2983         
2984 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2985
2986         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2987         We now copy the message from a DBusError and then free 
2988         the error object befor throwing the error
2989
2990         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2991         DBusBindingOutputMode enum which was causing a warning.
2992         #include <time.h> so using time_t is explicitly defined
2993
2994 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2995
2996         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2997         - dbus/dbus-bus.c
2998         (internal_bus_get): new method that take over the heavy lifting
2999         of dbus_bus_get and adds the ability to get a private connection
3000         to the bus
3001         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3002         interface as in previous versions
3003         (dbus_bus_get_private): new method that is a wrapper to 
3004         internal_bus_get to get a private connection to the bus
3005
3006         - dbus/dbus-bus.h
3007         (dbus_bus_get_private): add as a public libdbus interface
3008
3009         - dbus-1.pc.in: output system_bus_default_address and 
3010         sysconfdir variables so apps can use them when compiling
3011
3012 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3013         * dbus/qt: New Qt bindings
3014
3015 2005-09-12  Waldo Bastian  <bastian@kde.org>
3016
3017         * dbus/dbus-marshal-validate.c,
3018         doc/dbus-specification.xml, test/Makefile.am,
3019         test/test-names.c: allow hyphens in bus names.
3020
3021 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3022
3023         * test/data/auth/fallback.auth-script: we don't
3024         retry the EXTERNAL method when we know its going
3025         to fail anymore.
3026
3027 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3028
3029         * dbus/dbus-connection-internal.h: rename
3030         (add|remove|toggle)_(watch|timeout) to unlocked()
3031         
3032         * dbus/dbus-connection.c: ditto.
3033         
3034         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3035         Update some callers for the renaming.
3036
3037 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3038
3039         * dbus/dbus-auth.c: (record_mechanisms): don't
3040         retry the first auth mechanism because we know
3041         we're just going to get rejected again.
3042         
3043         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3044         Fix thinko ... and what a nasty little bugger to
3045         track down you were ...
3046
3047         * dbus/dbus-connection.c:
3048         (_dbus_connection_add_watch),
3049         (_dbus_connection_remove_watch): add note about
3050         these needing the connection to be locked.
3051         (_dbus_connection_get_dispatch_status_unlocked):
3052         set status to DATA_REMAINS when we queue the
3053         disconnected message.
3054         
3055         * bus/dispatch.c:
3056         (bus_dispatch): fix warning.
3057         (check_existent_service_no_auto_start):
3058         Expect ChildSignaled error too.
3059         (check_existent_hello_from_self): fix another
3060         couple of warnings.
3061         
3062 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3063
3064         Patches from James Willcox <snorp@snorp.net>
3065
3066         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3067
3068         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3069         support array "out" parameters.
3070
3071         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3072         for 16-bit int support.
3073
3074 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3075
3076         * Released 0.50
3077
3078         * Patch from Steve Grubb:
3079         - bus/activation.c (bus_activation_service_reload_test): clean up
3080         some indentation
3081         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3082         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3083         buffer overflows in the test suite.  This is non critical because
3084         it can not be exploited and this code is only run when doing a 
3085         make check.
3086
3087         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3088         - configure.in: Don't check and link against kdecore, only qt headers
3089         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3090         - gcj/org/freedesktop/dbus/Makefile.am:
3091         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3092         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3093         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3094         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3095         - tools/Makefile.am: Add platform extentions to binaries 
3096         (i.e. .exe on windows)
3097
3098         * configure.in: 
3099         - Make it so if no suitable version of python is found we only 
3100         disable building python instead of exiting the configure script
3101         - Require version 2.4 of glib for glib bindings
3102         - Up version to 0.50
3103
3104         * python/__init__.py: Sync version with libdbus to (0,50,0)
3105         
3106 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3107
3108         * dbus/dbus-object-tree.c (find_subtree_recurse):
3109         a couple of optimizations (bug #710):
3110         - do a binary search in the tree
3111         - insert a new child at the right place directly, no need for
3112           qsort anymore
3113         - do the "double alloc" thing when allocating children
3114
3115 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3116
3117         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3118
3119         * python/dbus_bindings.pyx: Memory management foo
3120         (global): remove hacky _user_data_references global list
3121         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3122         tuples. Unref user_data
3123         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3124         (Connection::__del__): Remove and replace with __dealloc__ method
3125         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3126         to keep tuple from being deallocated instead of the global var hack
3127         (Connection::register_object_path): Stuff user_data into a tuple.
3128         Use Py_INCREF to keep tuple from being deallocated instead of the 
3129         global var hack
3130         (Connection::register_fallback): Stuff user_data into a tuple.
3131         Use Py_INCREF to keep tuple from being deallocated instead of the 
3132         global var hack
3133         (GIL_safe_pending_call_notification): Don't unref the message
3134         because it gets unreffed when going out of scope.  Py_XDECREF
3135         the user_data
3136         (PendingCall::__del__): Remove and replace with __dealloc__ method
3137         (PendingCall::set_notify): ref the pending call because we will
3138         need it to stick around for when the notify callback gets called
3139         (Message::__del__): Remove and replace with __dealloc__ method
3140
3141         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3142         gthreads_init to match up with the dbus call
3143
3144         * python/glib.py (init_threads): Changed to threads_init to match
3145         up with gobject.threads_init().  init_threads is kept for backwards
3146         compat but will most likely be deprecated in the future
3147
3148         * test/python/test-client.py: 
3149         - revamp to use Python's unittest functionality
3150         - add async call tests
3151         - setup threads in glib and dbus so we make sure locks are working
3152         
3153 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3154
3155         * python/dbus_bindings.pyx 
3156         (_pending_call_notification, cunregister_function_handler, 
3157         cmessage_function_handler): All callback functions have been rearranged 
3158         to workaround a bug in Pyrex when working with the GIL which is Python's 
3159         global lock when dealing with threads.  They have been split into
3160         a wrapper function (which assumes the name of the old function) and
3161         a _GIL_safe_<function name> function which contains the functionality
3162         of the old function.  This ensures that Pyrex does not write code
3163         the lock is released.
3164         
3165
3166 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3167
3168         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3169         GIL global lock when calling back into Python
3170
3171 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3172
3173         * Release 0.36.2
3174
3175         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3176
3177         * bus/policy.c (bus_policy_allow_user): change default "user is
3178         allowed" to be "user has same uid as the bus itself"; any
3179         allow/deny rules will override.
3180
3181         * bus/session.conf.in: don't allow all users, since now by default
3182         the user that ran the bus can connect.
3183
3184 2005-08-26  Colin Walters  <walters@verbum.org>
3185
3186         * tools/dbus-print-message.c (print_message): Flush stdout
3187         after printing a message, so that redirecting to a file, then
3188         hitting Ctrl-C works.
3189
3190 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3191
3192         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3193         (EmptyMessage): new class that subclasses Message.  This is a workaround
3194         to a Pyrex bug that fails to call __del__ when the Message object goes out
3195         of scope.  For some reason subclassing Message fixes this bug
3196         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3197         - s/Message(_create=0)/EmptyMessage everywhere else
3198         
3199         * test/python/test-{server|client}.py: add the python/.libs directory
3200         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3201         get picked up from the system
3202
3203 2005-08-25  Colin Walters  <walters@verbum.org>
3204
3205         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3206         to Ryan Lortie for the suggestion.
3207
3208 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3209
3210         * test/python: Add python regression test
3211
3212         * configure.in: Add test/python/Makefile
3213
3214         * test/Makefile.am: Add the python directory to SUBDIRS
3215
3216 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3217
3218         * Release 0.36.1
3219
3220         * python/_dbus.py: 
3221         (Interface::connect_to_signal): propigate keywords for match on args
3222         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3223
3224         * python/proxies.py (ProxyObject::connect_to_signal):
3225         propigate keywords for match on args
3226
3227         * Makefile.am: point everything to pyexecdir since python borks
3228         on multilib
3229
3230 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3231
3232         * Release 0.36
3233
3234 2005-08-23  Colin Walters  <walters@verbum.org>
3235
3236         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3237
3238 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3239
3240         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3241         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3242         of defining DBusConnection ourselves.
3243
3244 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3245
3246         * python/dbus.pth: New path file to fix up problems when installing
3247         c libraries to lib64 and python files to lib.
3248
3249         * python/Makefile.am: install dbus.pth in the correct spot
3250
3251 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3252         * ChangeLog: clean up my last entry a bit
3253
3254         * doc/introspect.xsl: New stylesheet for converting introspection data
3255         into browser renderable xhtml. Contributed by Lennart Poettering.
3256
3257         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3258         Poettering.
3259
3260         * doc/dbus-tutorial.xml: 
3261         - Add Colin Walter to the Authors section for authoring the GLib
3262         section
3263         - Add descriptions of the new signature and type functionality
3264         in the Python complex type mapping section
3265         - Add a sidenote on the new args matching functionality in 
3266         the Python bindings
3267         - Fixed up some of the examples to use the gobject.MainLoop
3268         instead of gtk.main
3269         
3270         * python/_dbus.py:
3271         (Bus::_create_args_dict): New. Converts a hash of arg matches
3272         to a more useable format
3273         (Bus::add_signal_receiver): add a **keywords parameter for catching
3274         arg match parameters
3275         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3276         arg match parameters
3277         
3278         * python/matchrules.py:
3279         (MatchTree::exec_matches): Check for arg matches
3280         (SignalMatchRule::add_args_match): New method
3281         (SignalMatchRule::execute): Added args_list parameter as an optimization
3282         so we don't have to marshal the args more than once
3283         (SignalMatchRule::match_args_from_list): New method that checks to see
3284         if the rule's arg matches match an argument list.  Only arguments
3285         set in the rule are checked.
3286         (SignalMatchRule::match_args_from_rule): New method that checks to see
3287         if the rule's arg matches match another rule's.  All args have to match
3288         in order for this method to return true.  If either rule has more args
3289         then it is not a match.
3290         (SignalMatchRule::is_match): Add args match
3291         (SignalMatchRule::repr): Add args to the final output if they exist
3292
3293 2005-08-17  Ross Burton  <ross@burtonini.com>
3294
3295         * glib/dbus-gproxy.c:
3296         (dbus_g_proxy_call_no_reply): unref the message once sent.
3297         (dbus_g_proxy_call): protect against NULL proxy.
3298
3299 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3300
3301         * python/__init__.py: Version updated (0, 43, 0)
3302         
3303         * python/dbus_bindings.pyx: 
3304         - Fixed type objects to have self passed into __init__
3305         - Added the Variant type
3306         - Add the ability to specify types or signatures for Array, Variant 
3307         and Dictionary
3308         (Connection::send_with_reply_handlers): return a PendingCall object
3309         (_pending_call_notification): handle the case when an error is returned 
3310         without an error message in the body
3311         (MessageIter::get_boolean): return True or False instead of an integer
3312         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3313         and add checks for objects with embeded signatures or types (Array, 
3314         Variant and Dictionary)
3315         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3316         (MessageIter::append_dict): handle embeded types or signatures
3317         (MessageIter::append_array): handle embeded types or signatures
3318         (MessageIter::append_variant): new method
3319         
3320         * python/proxies.py:
3321         (DeferedMethod): New. Dummy executable object used when queuing calls 
3322         blocking on introspection data
3323         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3324         or shorter timeouts for method calls
3325         (ProxyObject): Add first pass at an introspection state machine
3326         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3327         introspection. 
3328         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3329         the usual mechanisms for sending messages.  This is to avoid a deadlock
3330         where the Intospect call would be queued waiting for the Introspect 
3331         call to finish ;-)
3332         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3333         when introspection returns with no error
3334         (ProxyObject::_introspect_error_handler): New.  This method is called 
3335         when introspection encounters an error
3336         (ProxyObject::__getattr__): Code to handle different introspection 
3337         states.  Queue async calls or block blocking calls if we are 
3338         introspecting.  Pass through as normal if we are not or are done with 
3339         introspecting.
3340         
3341         * python/service.py: Import signal and method from decorators.py
3342
3343         * python/types.py: Add Variant type
3344
3345 2005-08-16  Colin Walters  <walters@verbum.org>
3346
3347         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3348         DBusError message is NULL.
3349
3350 2005-08-09  Havoc Pennington  <hp@redhat.com>
3351
3352         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3353         malloc'd copy of the name parameter
3354
3355 2005-08-09  Havoc Pennington  <hp@redhat.com>
3356
3357         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3358         warning if the reply serial is set to 0
3359
3360 2005-08-04  Colin Walters  <walters@verbum.org>
3361
3362         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3363         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3364         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3365         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3366         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3367         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3368         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3369         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3370         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3371         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3372         
3373         Prefix name with _ to ensure they're not exported.  All callers
3374         updated.
3375
3376         * glib/dbus-gvalue.c (typecode_to_gtype)
3377         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3378         (signature_iter_to_g_type_dict)
3379         (signature_iter_to_g_type_array)
3380         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3381         (dbus_gtypes_from_arg_signature):
3382         Move to dbus-gsignature.c.
3383
3384         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3385         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3386         (dbus_binding_tool_output_glib_client): Ditto.
3387
3388         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3389         and dbus-gsignature.h
3390
3391         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3392         unused variable.
3393
3394 2005-08-03  Colin Walters  <walters@verbum.org>
3395
3396         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3397         catch any incompatible changes accidentally made.
3398
3399 2005-08-03  Havoc Pennington  <hp@redhat.com>
3400
3401         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3402         typo, from Julien Puydt
3403
3404         * bus/connection.c (bus_connection_disconnected): we were always
3405         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3406
3407 2005-08-01  Colin Walters  <walters@verbum.org>
3408
3409         Patch from Joe Markus Clarke:   
3410         
3411         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3412         use-after-free.
3413
3414 2005-08-01  Colin Walters  <walters@verbum.org>
3415         
3416         Patch from Joe Markus Clarke:   
3417         
3418         * tools/dbus-send.c (main): 
3419         
3420         Don't use C99 style initializers (bug #3933).
3421         
3422 2005-08-01  Colin Walters  <walters@verbum.org>
3423
3424         Patch from Joe Markus Clarke:   
3425
3426         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3427         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3428         * glib/dbus-gobject.c (write_interface):
3429
3430         Don't use C99 style initializers (bug #3933).
3431
3432 2005-07-31  Havoc Pennington  <hp@redhat.com>
3433
3434         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3435         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3436
3437 2005-07-30  Havoc Pennington  <hp@redhat.com>
3438
3439         * fix a bunch of Doxygen warnings and mistakes
3440
3441 2005-07-30  Havoc Pennington  <hp@redhat.com>
3442
3443         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3444         DBUS_BUILD_TESTS since it's now used in production code
3445
3446 2005-07-29  Havoc Pennington  <hp@redhat.com>
3447
3448         * test/glib/test-profile.c (write_junk): initialize the junk
3449         buffer so valgrind doesn't have a breakdown
3450
3451 2005-07-29  Havoc Pennington  <hp@redhat.com>
3452
3453         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3454         (match_rule_matches): remove unused arg
3455         (test_matching): add tests for match_rule_matches()
3456
3457         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3458         do arg0='foo' arg5='bar' in the match rules
3459         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3460
3461         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3462
3463 2005-07-29  Ross Burton  <ross@openedhand.com>
3464
3465         * dbus/dbus-connection.c:
3466         Don't create a DBusCondVar which is never used.
3467
3468 2005-07-27  Ross Burton  <ross@openedhand.com>
3469
3470         * dbus/dbus-message.c:
3471         Reduce the size of the maximum cached message to 10K.
3472
3473 2005-07-25  Ross Burton  <ross@openedhand.com>
3474
3475         * glib/dbus-gproxy.c:
3476         Remove matches when all proxies are unregistered.
3477
3478 2005-07-24  Colin Walters  <walters@verbum.org>
3479
3480         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3481         typedata; recursive arrays won't have it.
3482
3483         * test/glib/test-dbus-glib.c:
3484         * test/glib/test-service-glib.c:
3485         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3486         
3487 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3488
3489         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3490         proxies.py, service.py: Cleanup of code after running it through the
3491         pyflakes code checker mostly dealing with undefined names.  
3492         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3493
3494 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3495
3496         * NEWS: Update to 0.35.2
3497
3498 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3499
3500         * python/_dbus.py: Remove import of the dbus.services
3501         module as it no longer exists (patch from Dimitur Kirov)
3502
3503         * python/service.py (Object::__init__): Fixed typo
3504         s/name/bus_name (patch from Dimitur Kirov)
3505
3506         * python/examples/example-signal-emitter.py: import dbus.glib
3507         to get the main loop and use glib mainloop instead of gtk so
3508         X doesn't have to be running.
3509
3510         * python/examples/example-signal-recipient.py: import dbus.glib
3511         to get the main loop and use glib mainloop instead of gtk so
3512         X doesn't have to be running. Import the decorators module
3513         directly.
3514
3515         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3516         didn't pick up on but are needed to build
3517
3518         * configure.in: upped version to 0.35.2
3519
3520         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3521         added Colin Walters' SELinux API rename patch from head 
3522         s/unix sercurity context/selinux security context/
3523
3524 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3525
3526         * python/Makefile.am: dbus_binding.pxd.in should be included 
3527         in EXTRA_DIST not dbus_binding.pxd
3528         fix up $(srcdir) hopefully for the last time
3529
3530         * NEWS: Update to 0.35.1
3531
3532 2005-07-16  Colin Walters  <walters@verbum.org>
3533
3534         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3535         from bus_driver_handle_get_connection_unix_security_context.  Update for
3536         error usage.
3537         (message_handlers): Update for renames.
3538
3539         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3540         _dbus_string_init failure correctly.
3541         (bus_selinux_append_context): Convert SID to context.  Append it
3542         as a byte array.
3543         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3544         hasn't been called.
3545
3546         * bus/selinux.h: Update prototype.
3547
3548         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3549         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3550
3551 2005-07-15  Colin Walters  <walters@verbum.org>
3552
3553         * doc/TODO: Add note about convenience wrappers.
3554
3555 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3556
3557         * NEWS: Update to 0.35
3558
3559 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3560
3561         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3562         so distcheck doesn't fail
3563
3564         * glib/examples/Makefile.am: Add example-service.xml and 
3565         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3566
3567         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3568         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3569
3570         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3571         compiler looks in the right places during distcheck
3572
3573 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3574
3575         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3576         to fail
3577
3578 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3579
3580         * python/examples/example-service.py,
3581         python/examples/example-signal-emitter.py: Fixed up examples
3582         for API changes
3583
3584 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3585
3586         * python/__init__.py: Upped to version (0,42,0) because of
3587         the API change
3588
3589 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3590
3591         * ChangeLog: fix date in last entry
3592
3593         * configure.in, bus/system.conf.in: add the ability to configure 
3594         the system bus user at compiletime with the --with-dbus-user flag
3595         (patch from Kristof Vansant)
3596
3597 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3598
3599         * bus/dispatch.c, test/test-service.c: Add testcase
3600         for sending messages to oneself (TODO item).
3601
3602         * python/service.py (class Object): Swap ordering of bus_name 
3603         and object_path parameters to better support inheritance.
3604
3605         * doc/dbus-tutorial.xml: change Python docs to reflect change
3606         in parameter ordering and fix the inheritance section.
3607
3608         * doc/TODO: remove sending message to oneself TODO item
3609
3610 2005-07-15  Ross Burton  <ross@openedhand.com>
3611
3612         * glib/dbus-gproxy.c:
3613         Fix a leak when calling methods via the proxy.
3614
3615 2005-07-15  Colin Walters  <walters@verbum.org>
3616
3617         * bus/selinux.c (bus_selinux_append_context): Wrap in
3618         HAVE_SELINUX.
3619
3620 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3621
3622         * python/_dbus.py (Bus::remove_signal_receiver):
3623         don't add a callback to the match if none has been passed in
3624         
3625         * python/matchrules.py (SignalMatchTree::remove): if the rule
3626         being matched does not have a callback treat it as a wildcard
3627         fix matching logic
3628
3629         * doc/dbus-tutorial.xml: Add Python tutorial
3630
3631 2005-07-14  Colin Walters  <walters@verbum.org>
3632
3633         * bus/driver.c
3634         (bus_driver_handle_get_connection_unix_security_context): New function.
3635         (message_handlers): Add.
3636
3637         * bus/selinux.c (bus_selinux_append_context): New function; appends
3638         security context to message.
3639
3640         * bus/selinux.h: Prototype.
3641
3642         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3643
3644 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3645
3646         * bus/activation.c: clean up all tabs to be 8 spaces 
3647         (bus_activation_activate_service): make sure we clean up
3648         if activation fails
3649
3650         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3651         (check_shell_fail_service_auto_start): New function
3652         tests to make sure we get fail properly when trying to auto start a service
3653         with a faulty command line
3654         (check_shell_service_success_auto_start): New function tests to make sure
3655         auto started services get the arguments on the command line
3656
3657         * test/test-shell-service.c: Added service for testing auto-starting with 
3658         command line arguments
3659
3660         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3661         test/data/valid-service-files/debug-shell-echo-success.service.in:
3662         Added service files for testing auto-starting with command line arguments
3663
3664         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3665
3666 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3667
3668         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3669         
3670         * dbus/Makefile.am: added new files to build.
3671
3672         * bus/activation.c (bus_activation_activate_service): support
3673         activation commands with parameters.
3674
3675         * test/shell-test.c: added test program for the shell parsing
3676         code.
3677
3678 2005-07-13  David Zeuthen  <davidz@redhat.com>
3679
3680         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3681         64 bit signed and unsigned parameters
3682
3683 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3684
3685         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3686
3687         * python/service.py (class Name): renamed BusName to make it clearer
3688         what the object is for (a name on the bus)
3689
3690         * python/examples/example-service.py,
3691         python/examples/example-signal-emitter.py: change the Name object to
3692         BusName
3693
3694 2005-07-12  Colin Walters  <walters@verbum.org>
3695
3696         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3697
3698         * tools/dbus-launch.c: Include sys/select.h.
3699
3700 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3701         * python/dbus_bindings.pyx.in: removed
3702
3703         * python/dbus_bindings.pyx: Added.
3704         - Fixed some memleaks (patch from 
3705         Sean Meiners <sean.meiners@linspireinc.com>)
3706         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3707         own pxd file (Pyrex definition)
3708         - Broke out glib dependancies into its own pyx module
3709         
3710         * python/dbus_bindings.pdx: Added.
3711         - Defines C class Connection for exporting to other modules
3712
3713         * python/dbus_glib_bindings.pyx: Added.
3714         - New module to handle lowlevel dbus-glib mainloop integration
3715
3716         * python/glib.py: Added.
3717         - Registers the glib mainloop when you import this module
3718
3719         * python/services.py: Removed (renamed to service.py)
3720         
3721         * python/service.py: Added.
3722         - (class Server): renamed Name
3723
3724         * python/__init__.py: Bump ro version (0,41,0)
3725         -don't import the decorators or service module
3726         by default.  These now reside in the dbus.service namespace
3727
3728         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3729         setup function on creation 
3730
3731         * python/examples/example-service.py,
3732         python/examples/example-signal-emitter.py: update examples
3733
3734         * python/examples/gconf-proxy-service.py,
3735         python/examples/gconf-proxy-service2.py: TODO fix these up
3736
3737         * doc/TODO: Addition
3738         - Added a Python Bindings 1.0 section
3739         - added "Add match on args or match on details to match rules"
3740
3741
3742 2005-07-12  Colin Walters  <walters@verbum.org>
3743
3744         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3745         (statemachine-glue.h): 
3746         * glib/examples/Makefile.am (example-service-glue.h) 
3747         (example-signal-emitter-glue.h): 
3748         * glib/Makefile.am (dbus-glib-error-switch.h): 
3749         Add libtool --mode=execute so we use the built library instead
3750         of any installed one.
3751
3752 2005-07-11  Colin Walters  <walters@verbum.org>
3753
3754         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3755         (dbus_g_value_types_init): Remove assertion.
3756         (dbus_g_value_get_g_type, dbus_g_value_open)
3757         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3758         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3759         functions related to DBusGValue.  Now we marshal/demarshal
3760         structures as GValueArray.
3761         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3762         structures.
3763         (signature_iter_to_g_type_array): Don't call
3764         signature_iter_to_g_type_struct.
3765         (signature_iter_to_g_type_struct): Delete.
3766         (dbus_gvalue_to_signature): Delete.
3767         (dbus_gvalue_to_signature): New function with same name as other
3768         one; we can convert structures to signatures.
3769         (demarshal_valuearray): New function.
3770         (get_type_demarshaller): Use it.
3771         (demarshal_recurse): Delete.
3772         (marshal_proxy): New function.
3773         (marshal_map): Warn if we can't determine signature from type.
3774         (marshal_collection_ptrarray): Ditto.
3775         (marshal_collection_array): Ditto.
3776         (get_type_marshaller): Use marshal_valuearray.
3777         (marshal_recurse): Delete.
3778         (_dbus_gvalue_test): Add some tests.
3779
3780         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3781         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3782         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3783         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3784         (dbus_g_value_free): Remove prototypes.
3785
3786         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3787         G_TYPE_VALUE_ARRAY.
3788
3789         * glib/examples/example-service.c:
3790         * glib/examples/example-client.c: Implement GetTuple.
3791
3792         * test/glib/test-dbus-glib.c:
3793         * test/glib/test-service-glib.c:
3794         * test/glib/test-service-glib.xml: Add structure tests.
3795
3796 2005-07-10  Colin Walters  <walters@verbum.org>
3797
3798         * doc/TODO: Knock off some GLib items with this patch.
3799
3800         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3801         (_dbus_gvalue_signals_error): New functions.
3802
3803         * glib/dbus-gvalue-utils.h: Prototype them.
3804
3805         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3806         and change to not output const/retval flags for input args.  All
3807         callers updated.
3808         (invoke_object_method): Refactor to handle return values.  Add
3809         some more comments in various places.  Remove debug g_print.
3810
3811         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3812
3813         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3814         Handle G_TYPE_NONE.
3815         (compute_gsignature): New function; refactored from code from
3816         compute_marshaller and compute_marshaller_name.  Enhance to
3817         handle return values and async ops more cleanly.  Update for
3818         async ops returning NONE instead of BOOLEAN.
3819         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3820         and output appropriate string.
3821         (generate_glue): Handle return value annotation.  Also don't dump
3822         constness flag for input arguments.
3823
3824         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3825         files shared between installed library and utilities.
3826         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3827         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3828         binding tool can access gtype utility functions.
3829
3830         * test/glib/test-service-glib.c: 
3831         * test/glib/test-service-glib.xml: 
3832         * test/glib/test-dbus-glib.c: Add some tests for return values.
3833
3834 2005-07-09  Colin Walters  <walters@verbum.org>
3835
3836         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3837         argument if available, not method.
3838
3839         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3840         (invoke_object_method): First, remove some redundant
3841         GValues (object_value, error_value) in favor of working on
3842         array directly.  Second, rework constness to be less buggy.
3843         Now we iterate directly over the argument metadata instead
3844         of parallel iterating over output signature and metadata.
3845
3846         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3847
3848         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3849         annotation on input args.
3850         
3851 2005-07-09  Colin Walters  <walters@verbum.org>
3852
3853         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3854         Define.
3855
3856         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3857         annotation.
3858
3859         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3860         (method_dir_signature_from_object_info): Handle arg_iterate change.
3861         (write_interface): Ditto.
3862         (lookup_object_info): Don't barf if format_version is > 0.
3863         (invoke_object_method): Handle arg constness.
3864
3865         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3866         (arg_info_new): Create.
3867         (arg_info_unref): Destroy.
3868         (arg_info_get_annotations, arg_info_get_annotation) 
3869         (arg_info_add_annotation): New functions.
3870
3871         * glib/dbus-gidl.h: Prototype them.
3872
3873         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3874         args, disallow them in properties.
3875         (parse_annotation): Handle arg annotations.
3876
3877         * test/glib/test-service-glib.xml: 
3878         * test/glib/test-service-glib.c: Update to make some methods
3879         const.
3880
3881 2005-07-08  Colin Walters  <walters@verbum.org>
3882
3883         * test/glib/test-service-glib.xml: 
3884         * test/glib/test-service-glib.c:
3885         * test/glib/test-dbus-glib.c: Test a{sv}.
3886
3887         * glib/examples/statemachine/statemachine.c:
3888         * glib/examples/statemachine/statemachine-server.c:
3889         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3890         add progress bar, etc.
3891
3892         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3893         needed anymore due to generic array/map marshalling.
3894         (dbus_g_value_types_init): Don't register basic arrays or the
3895         string/string hash.
3896         (dbus_gtype_from_signature_iter): Don't try to recurse into
3897         variants.
3898         (dbus_gtype_to_signature): Check collection/map before type
3899         metadata.
3900         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3901         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3902         generic map creation/append functions instead of hash table
3903         specifically.
3904         (get_type_demarshaller): Handle maps.
3905         (demarshal_collection): Dispatch on collection type to either
3906         demarshal_collection_ptrarray or demarshal_collection_array.
3907         (get_type_marshaller): Handle maps.
3908         (marshal_collection): Dispatch collection type to either
3909         marshal_collection_ptrarray or marshal_collection_array.
3910         (_dbus_gvalue_test): New test.
3911
3912         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3913         (hash_free_from_gtype): Use it to free GValues.
3914         (hashtable_append): New function.
3915         (ptrarray_append): Fix prototype.
3916         (slist_append): Ditto.
3917         (_dbus_gvalue_utils_test): Extend tests.
3918
3919         * glib/dbus-gtype-specialized.c
3920         (dbus_g_type_specialized_init_append): Renamed from
3921         dbus_g_type_specialized_collection_init_append.  Remove const from
3922         value, since we steal it.
3923         (dbus_g_type_specialized_map_append): New function.
3924
3925         * glib/dbus-gtype-specialized.h: Update prototypes.
3926         Add DBusGTypeSpecializedMapAppendFunc.
3927
3928         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3929         _dbus_gvalue_test.
3930         
3931         * glib/dbus-gtest.h: Prototype it.
3932
3933 2005-07-08  Ross Burton  <ross@openedhand.com>
3934
3935         * dbus/dbus-glib.h:
3936         Add DBysGAsyncData for the async bindings.
3937
3938         * glib/dbus-binding-tool-glib.c:
3939         Re-enable the async bindings.
3940
3941         * test/glib/test-dbus-glib.c:
3942         Add a test for the generated async bindings.
3943
3944 2005-07-08  Colin Walters  <walters@verbum.org>
3945
3946         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3947         connection concept.
3948         
3949 2005-07-08  Colin Walters  <walters@verbum.org>
3950         
3951         * tools/Makefile.am: Kill of print-introspect in favor of using
3952         dbus-send --print-reply=literal.
3953
3954         * test/glib/test-service-glib.xml: 
3955         * test/glib/test-service-glib.c (my_object_get_objs): New test
3956         for "ao".
3957
3958         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3959         (main): Test GetObjs.
3960
3961         * glib/examples/statemachine/Makefile.am:
3962         * glib/examples/statemachine/sm-marshal.list:
3963         * glib/examples/statemachine/statemachine-client.c:
3964         * glib/examples/statemachine/statemachine-server.c:
3965         * glib/examples/statemachine/statemachine-server.xml:
3966         * glib/examples/statemachine/statemachine.c:
3967         * glib/examples/statemachine/statemachine.h:
3968         * glib/examples/statemachine/statemachine.xml:
3969
3970         New example.
3971
3972         * glib/examples/example-service.c (main): Move invocation
3973         of dbus_g_object_type_install_info earlier, to emphasize it
3974         should only be done once.
3975
3976         * glib/examples/example-signal-emitter.c (main): Ditto.
3977
3978         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3979
3980         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3981         (dbus_gvalue_marshal): Update prototypes.
3982
3983         * glib/dbus-gvalue.c: Update all marshalling functions to take
3984         const GValue instead of GValue.
3985         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3986         types.
3987         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3988         change.
3989         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3990         Return a newly-allocated string.
3991         (demarshal_proxy, demarshal_object_path, demarshal_object)
3992         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3993         we get the wrong types from message.
3994         (get_type_demarshaller): New function, extracted from
3995         dbus_gvalue_demarshal.
3996         (demarshal_collection): New function, demarshals generic
3997         collection.
3998         (dbus_gvalue_demarshal): Just invoke result of
3999         get_type_demarshaller.  Throw error if we don't have one.
4000         (marshal_garray_basic): Abort on OOM.
4001         (get_type_marshaller): New function, extracted from
4002         dbus_gvalue_marshal.
4003         (collection_marshal_iterator, marshal_collection): New functions;
4004         implements generic marshalling for an iteratable specialized
4005         collection.
4006         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4007
4008         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4009         G_TYPE_STRING.
4010         (ptrarray_value_from_gvalue): Ditto.
4011         (ptrarray_append, ptrarray_free): New functions.
4012         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4013         (slist_append, slist_end_append, slist_free): New functions.
4014         (dbus_g_type_specialized_builtins_init): Add append fuctions
4015         for GPtrArray and GSList.  Register GSList.
4016         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4017
4018         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4019         New.
4020         (dbus_g_type_specialized_collection_init_append)
4021         (dbus_g_type_specialized_collection_append)
4022         (dbus_g_type_specialized_collection_end_append): Prototype.
4023         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4024         end_append_func.
4025
4026         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4027         (dbus_g_type_specialized_collection_append) 
4028         (dbus_g_type_specialized_collection_end_append): New functions.
4029         (dbus_g_type_map_value_iterate): Take const GValue.
4030         (dbus_g_type_collection_value_iterate): Ditto.
4031
4032         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4033         _dbus_gvalue_utils_test.
4034         
4035         * glib/dbus-gtest.h: Prototype it.
4036
4037         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4038         using uninitialized owner_list.
4039         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4040         public API.
4041         (dbus_g_proxy_end_call_internal): Update to use error set
4042         from dbus_gvalue_demarshal instead of setting it here.
4043         (dbus_g_proxy_begin_call): Move return_if_fail here.
4044
4045         * glib/dbus-gobject.c (write_interface): Update for
4046         dbus_gtype_to_signature returning new string.
4047
4048         * configure.in: Add glib/examples/statemachine.
4049
4050 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4051
4052         * configure.in: Add a configure option, --with-console-auth-dir
4053         
4054         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4055         new setting.  Patch from Kay Sievers.
4056
4057 2005-07-06  Colin Walters  <walters@verbum.org>
4058
4059         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4060         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4061         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4062         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4063         Delete in favor of dbus_g_proxy_begin_call and
4064         dbus_g_proxy_cancel_call.
4065         (DBusGProxyCall, DBusGProxyCallNotify): New.
4066         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4067         data, and destroy function.  This replaces
4068         dbus_g_pending_call_set_notify.
4069         (dbus_g_proxy_cancel_call): Prototype.
4070         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4071
4072         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4073         pending_calls map.
4074         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4075         internal proxy for calls to the bus. Remove
4076         pending_nameowner_calls, now the internal proxy keeps track.
4077         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4078         pending_nameowner_calls.
4079         (got_name_owner_cb): Update prototype, and use
4080         dbus_g_proxy_end_call.
4081         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4082         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4083         favor of using internal proxy.
4084         (dbus_g_proxy_manager_unregister): Update to use
4085         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4086         (dbus_g_proxy_init): Initialize pending calls map.
4087         (dbus_g_proxy_constructor): New.
4088         (dbus_g_proxy_class_init): Add get/set property functions,
4089         constructor, and add NAME, PATH, and INTERFACE properties.
4090         (cancel_pending_call): New function.
4091         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4092         cancel them.
4093         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4094         (GPendingNotifyClosure): New structure.
4095         (d_pending_call_notify, d_pending_call_free): Moved here from
4096         dbus-glib.c.
4097         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4098         ordering.
4099         (manager_begin_bus_call): New internal function for talking to
4100         internal bus proxy.
4101         (dbus_g_proxy_new): Construct object using GObjet properties.
4102         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4103         Create closure of same, and insert call into map of pending calls.
4104         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4105         call.  Look up pending call in current set.  Remove it when we've
4106         completed.
4107         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4108         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4109         and destroy function directly.
4110         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4111         (dbus_g_proxy_call): Invoke with NULL callback.
4112         (dbus_g_proxy_cancel_call): New function, replaces
4113         dbus_g_pending_call_cancel.
4114
4115         * glib/dbus-gparser.c (validate_signature): Fix call to
4116         dbus_set_g_error.
4117
4118         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4119         New quark for attaching metadata to GType.
4120         (info_hash): Delete.
4121         (lookup_object_info): Look up using quark.
4122         (dbus_g_object_type_install_info): Check that a type is classed,
4123         not that it's an object.  Also just install type data using quark
4124         instead of using global hash.
4125
4126         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4127         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4128         (GPendingNotifyClosure): Delete.
4129         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4130         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4131
4132         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4133         client method generation until we can fix it...
4134         
4135         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4136         (load_from_service_thread_func): Ditto.
4137
4138         * tools/dbus-names-model.c (struct NamesModel): Hold
4139         DBusGProxyCall.
4140         (have_names_notify): Update prototype, use
4141         dbus_g_proxy_cancel_call.
4142         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4143
4144         * tools/dbus-monitor.c (filter_func): Update for print_message
4145         API change.
4146
4147         * test/glib/test-dbus-glib.c: Add more tests for async
4148         invocations.  Update many begin_call/end_call pairs to just use
4149         dbus_g_proxy_call.
4150
4151         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4152         allows us to dump print-introspect.c.
4153
4154         * tools/dbus-print-message.h (print_message): Add literal argument
4155         to print_message which is intended to allow printing arguments without
4156         metadata like "string=".
4157
4158         * tools/dbus-print-message.c (print_iter): Add literal argument.
4159         (print_message): Allow printing string messages literally.
4160
4161 2005-07-05  Colin Walters  <walters@verbum.org>
4162
4163         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4164         Remove value refcount leak, original patch from Jorn Baayen
4165         <jorn@openedhand.com>.  Also remove useless extra value in favor
4166         of prepending to value array directly.
4167
4168 2005-07-02  Colin Walters  <walters@verbum.org>
4169
4170         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4171
4172 2005-07-01  Colin Walters  <walters@verbum.org>
4173
4174         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4175         
4176         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4177         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4178         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4179         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4180
4181 2005-06-30  Colin Walters  <walters@verbum.org>
4182
4183         * test/glib/test-dbus-glib.c:
4184         * test/glib/test-service-glib.c:
4185         * test/glib/test-service-glib.xml: Update tests for new error
4186         setting bits, also add async tests (patch from Ross Burton).
4187
4188         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4189         DBUS_GLIB_THREADS_LIBS.
4190
4191         * glib/dbus-gproxy.c (get_name_owner)
4192         (dbus_g_pending_call_end_valist): Ditto.
4193
4194         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4195         domain (GQuark) to DBusGErrorInfo.  
4196         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4197         quark in error_metadata.  Take message interface as default
4198         error message interface.
4199         (gerror_to_dbus_error_message): Pass message interface.
4200         (dbus_set_g_error): Resurrected.
4201         (dbus_g_error_info_free): New function.
4202         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4203         of _peek to actually create the object class if it hasn't been
4204         created yet.
4205         (dbus_g_error_domain_register): New function.
4206
4207         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4208
4209         * glib/dbus-gparser.c (validate_signature): Ditto.
4210
4211         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4212         (dbus_g_error_domain_register): Prototype.
4213
4214         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4215         Update tests.
4216
4217 2005-06-29  Colin Walters  <walters@verbum.org>
4218
4219         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4220         DBUS_TYPE_G_OBJECT_PATH.
4221
4222         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4223         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4224         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4225         (dbus_g_object_path_get_g_type): New function.
4226         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4227         to DBUS_TYPE_G_OBJECT_PATH by default.
4228         (demarshal_proxy): Remove unused name variable.
4229         (demarshal_object_path, marshal_object_path): New functions.
4230         (demarshal_proxy_array, marshal_proxy_array): Delete.
4231         
4232         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4233         DBUS_TYPE_G_OBJECT_PATH to char *.
4234         (dbus_g_type_get_lookup_function): Map builtin
4235         DBUS_TYPE_G_OBJECT_PATH.
4236
4237         * test/glib/test-dbus-glib.c
4238         * test/glib/test-service-glib.c (my_object_objpath): 
4239         Adapt tests to new object path marshalling.
4240
4241 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4242
4243         * configure.in: force check for Python >= 2.4
4244
4245 2005-06-29  Colin Walters  <walters@verbum.org>
4246         
4247         Patch from Ross Burton <ross@openedhand.com>
4248         
4249         * glib/dbus-gobject.c (invoke_object_method): Unset object
4250         value in all cases, not only in async case.
4251
4252 2005-06-29  Colin Walters  <walters@verbum.org>
4253
4254         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4255         name_call for keeping track of any outgoing GetNameOwner call.
4256         Also add for_owner and associated.
4257         (struct _DBusGProxyManager): Add owner_names, which is hash table
4258         that maps a base name to a list of names it owns (that we're
4259         interested in).  Add pending_nameowner_calls which is a list of
4260         all outstanding GetNameOwner; avoids us having to iterate over
4261         every proxy.  Add unassociated_proxies which keeps track of name
4262         proxies with no associated name owner.
4263         (dbus_g_proxy_manager_unref): Destroy owner_names.
4264         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4265         name refcounts.
4266         (find_name_in_info, name_owner_foreach)
4267         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4268         (dbus_g_proxy_manager_monitor_name_owner)
4269         (dbus_g_proxy_manager_unmonitor_name_owner)
4270         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4271         New functions; they manipulate the owner_names mapping.
4272         (got_name_owner_cb): New function.
4273         (get_name_owner): New function, extracted from
4274         dbus_g_proxy_new_for_name_owner.
4275         (dbus_g_proxy_manager_register): For now we need to keep track of
4276         all NameOwnerChanged.  Also if the proxy is for a name, if we
4277         don't already know the name owner, queue a new GetNameOwner
4278         request and add it to our list of unassociated proxies.  Otherwise
4279         inc the refcount.
4280         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4281         cancel any pending GetNameOwner call, etc.
4282         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4283         the owner_names mapping to look up the current names for the
4284         signal source, and dispatch to any proxies for that name.
4285         (dbus_g_proxy_new): Initialize new members.
4286         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4287         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4288         (dbus_g_pending_call_end_valist): New function, extracted from
4289         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4290         but want to use the GLib infrastructure.  Also note how many
4291         arguments in reply were over.
4292         (dbus_g_pending_call_end): New function, just call
4293         dbus_g_pending_call_end_valist.
4294         (dbus_g_proxy_end_call_internal): Just call
4295         dbus_g_pending_call_end_valist.
4296
4297         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4298         of builtin marshaller for STRING_STRING_STRING.
4299
4300         * test/glib/test-dbus-glib.c: 
4301         * test/glib/test-service-glib.c:
4302         * test/glib/test-service-glib.xml:
4303         Extend tests to cover name proxies, destruction of owner proxies,
4304         etc.
4305         
4306         * glib/examples/example-signal-recipient.c
4307         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4308         
4309         * tools/dbus-send.c (main): Print D-BUS error name in addition
4310         to message.
4311
4312 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4313
4314         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4315         cmessage_function_handler): Patch from 
4316         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4317         by using the Py_GILState_Ensure/Release to synchronize with the
4318         python runtime.
4319         
4320 2005-06-28  Ray Strode  <rstrode@redhat.com>
4321
4322         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4323         babysitter helper process on last unref, bug #2813.
4324
4325 2005-06-27  Colin Walters  <walters@verbum.org>
4326
4327         * test/glib/test-dbus-glib.c: 
4328         * test/glib/test-service-glib.c:
4329         * test/glib/test-service-glib.xml:
4330         Test hash table signal emitting.
4331
4332         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4333         types to their fundamental basis types, since this is what
4334         marshallers operate on.  Also add an entry for VOID__BOXED.
4335         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4336
4337 2005-06-26  Havoc Pennington  <hp@redhat.com>
4338
4339         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4340         from Don Park
4341
4342 2005-06-26  Colin Walters  <walters@verbum.org>
4343
4344         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4345         (dbus_g_error_set): New public function from its ashes; used by
4346         both service-side method implementation and GLib bindings
4347         internals.
4348         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4349         (_dbus_glib_test): Add some tests.
4350
4351         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4352
4353         * test/glib/test-service-glib.c (my_object_throw_error): Use
4354         dbus_g_error_set.
4355
4356         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4357         errors thrown by dbus_g_error_set.
4358
4359         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4360
4361         * glib/dbus-gparser.c (validate_signature): Ditto.
4362
4363         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4364         (dbus_g_proxy_end_call_internal): Ditto.
4365
4366         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4367         converts DBUS_ERROR_x to DBUS_GERROR_x.
4368         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4369
4370         * doc/TODO: Remove error TODO.
4371
4372         * doc/dbus-tutorial.xml: Update with documentation about error
4373         handling.
4374
4375         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4376         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4377         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4378
4379 2005-06-22  Colin Walters  <walters@verbum.org>
4380         
4381         Patch from Ross Burton <ross@openedhand.com>
4382
4383         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4384
4385 2005-06-20  Colin Walters  <walters@verbum.org>
4386
4387         * configure.in: Add glib/examples.
4388
4389         * glib/Makefile.am: Add examples/
4390
4391         * glib/examples/.cvsignore
4392         * glib/examples/Makefile.am
4393         * glib/examples/example-client.c
4394         * glib/examples/example-service.c
4395         * glib/examples/example-service.xml
4396         * glib/examples/example-signal-emitter.c
4397         * glib/examples/example-signal-emitter.xml
4398         * glib/examples/example-signal-recipient.c:
4399         New files; GLib binding examples, ported from
4400         python/examples.
4401
4402 2005-06-20  Colin Walters  <walters@verbum.org>
4403
4404         * dbus/dbus-glib.h: 
4405         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4406         dbus_g_proxy_call.
4407
4408         * glib/dbus-binding-tool-glib.c: 
4409         * doc/dbus-tutorial.xml: 
4410         * test/glib/test-dbus-glib.c: Update for rename.
4411         
4412 2005-06-20  Colin Walters  <walters@verbum.org>
4413
4414         Patch suggested by Ross Burton <ross@openedhand.com>
4415
4416         * glib/dbus-gobject.c (export_signals): Free signal name.
4417         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4418         memory leak.  Add a bit of documentation.
4419         (dbus_g_method_return_error): Free context, and note we do
4420         so.
4421
4422 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4423
4424         * dbus/dbus-glib.h:
4425         * glib/dbus-gobject.c:
4426         * glib/dbus-gproxy.c:
4427         * glib/dbus-gvalue.c: Predeclare structs as 
4428         typedef struct _Something Something instead of 
4429         typedef struct Something Something, so we can 
4430         redeclare the prototypes. Other GNOME libraries 
4431         do this already.
4432
4433 2005-06-17  Colin Walters  <walters@verbum.org>
4434
4435         * tools/dbus-names-model.c (have_names_notify): Fix call
4436         to dbus_g_proxy_end_call.
4437         
4438 2005-06-17  Colin Walters  <walters@verbum.org>
4439
4440         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4441         spew warnings if we get malformed remote signals.
4442
4443         * glib/dbus-gobject.c (propsig_iterate): New function.
4444         (lookup_object_info): New function, extracted from
4445         lookup_object_and_method.
4446         (introspect_properties, introspect_signals): Delete; these
4447         are merged into write_interface.
4448         (write_interface): Write out signals and properties here;
4449         dump the org.gtk.object stuff and use the interface given
4450         in the introspection data blob.  Also fix up property XML.
4451         (lookup_values): New function.
4452         (introspect_interfaces): Gather a mapping from interface to a
4453         list of its methods, signals, and properties, then write out
4454         each interface.
4455         (lookup_object_and_method): Use lookup_object_info.
4456         (struct DBusGSignalClosure): Add interface.
4457         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4458         we can just use the constant data.
4459         (dbus_g_signal_closure_finalize): Don't free signal name.
4460         (signal_emitter_marshaller): Use interface from signal closure.
4461         (export_signals): Only export signals mentioned in introspection
4462         blob.
4463         (dbus_g_connection_register_g_object): Warn if we have no
4464         introspection data for an object.
4465         (funcsig_equal): Remove unused variable.
4466         (dbus_g_object_register_marshaller): Take varargs instead of
4467         list.
4468         (dbus_g_object_register_marshaller_array): New function,
4469         extracted from old dbus_g_object_register_marshaller.
4470
4471         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4472         signals and property data.
4473         (write_quoted_string): New function, extracted from generate_glue.
4474         (generate_glue): Write signals and properties to introspection
4475         blob.
4476
4477         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4478         exported_signals and exported_properties.
4479         (dbus_g_object_register_marshaller): Update prototype.
4480         (dbus_g_object_register_marshaller_array): Prototype.
4481         
4482         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4483
4484         * test/glib/test-service-glib.c: Add new test signals and method
4485         to emit them.
4486
4487         * test/glib/test-service-glib.xml: Add some test signals.
4488
4489         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4490         and my-object-marshal.h
4491         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4492         my-object-marshal.c.
4493         (my-object-marshal.c, my-object-marshal.h): Implement.
4494
4495         * test/glib/.cvsignore: Update.
4496
4497         * doc/TODO: Remove two GLib TODO items fixed by this
4498         patch.
4499
4500 2005-06-16  Colin Walters  <walters@verbum.org>
4501
4502         * doc/TODO: Update for GLib bindings.
4503         
4504 2005-06-16  Colin Walters  <walters@verbum.org>
4505
4506         * glib/dbus-binding-tool-glib.c:
4507         * glib/dbus-gobject.c:
4508         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4509         from Ross Burton, for his GLib bindings work.
4510
4511 2005-06-16  Colin Walters  <walters@verbum.org>
4512
4513         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4514         to iterate instead of walking to G_TYPE_INVALID.
4515
4516         Patch based on a patch from Ryan Gammon.
4517
4518 2005-06-16  Colin Walters  <walters@verbum.org>
4519
4520         * bus/bus.c (bus_context_new): Set parser to NULL
4521         after we unref it (Patch from Chris Boscolo, #2174).
4522         
4523 2005-06-16  Colin Walters  <walters@verbum.org>
4524
4525         * python/dbus_bindings.pyx.in: Import size_t,
4526         __int64_t, __uint64_t, and __signed.
4527
4528         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4529         Define cmsg struct, output it.
4530         (_dbus_read_credentials_unix_socket):
4531         Use cmsg struct.
4532         
4533         Patch from Joe Markus Clarke for FreeBSD support.
4534         
4535 2005-06-16  Colin Walters  <walters@verbum.org>
4536
4537         * tools/dbus-send.c (append_array): Use strtok.
4538         (append_dict): New function.
4539         (type_from_name): New function, extracted from main.
4540         (main): Handle sending dicts.
4541
4542         * tools/dbus-print-message.c (print_iter): Print dict
4543         entries.
4544         
4545 2005-06-16  Colin Walters  <walters@verbum.org>
4546
4547         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4548         values as the empty string (#2948).
4549         
4550 2005-06-16  Colin Walters  <walters@verbum.org>
4551
4552         * dbus/Makefile.am:
4553         * mono/doc/Makefile.am:
4554         * test/glib/Makefile.am:
4555
4556         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4557
4558 2005-06-16  Colin Walters  <walters@verbum.org>
4559
4560         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4561         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4562
4563         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4564         Increment pointer after swapping fixed array.  Add assertion
4565         for array length.
4566                 
4567 2005-06-15  Colin Walters  <walters@verbum.org>
4568
4569         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4570         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4571         
4572 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4573
4574         * NEWS: Update to 0.34
4575
4576 2005-06-15  David Zeuthen  <davidz@redhat.com>
4577
4578         * configure.in (LT_CURRENT): Revert back to 1 as the library
4579         hasn't changed and we've certainly not committed to protocol
4580         stability yet.  All this does is to break ABI. See commit note
4581         from hp@redhat.com 2005-05-05 for details.
4582         
4583 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4584
4585         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4586         (_dbus_connection_run_builtin_filters): New method
4587         (dbus_connection_dispatch): Run the builtin filters which in turn
4588         runs the peer filter which handles Ping messages.
4589
4590         * doc/TODO: 
4591          - Ping isn't handled: This patch fixes it
4592          
4593          - Add a test case for the Ping message: added TODO item
4594
4595 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4596
4597         * dbus/dbus-message.c:
4598         (dbus_message_has_path): New method
4599         (dbus_message_has_interface): New method
4600         (dbus_message_has_member): New method
4601
4602         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4603         New method
4604
4605         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4606         the keyring directory is private to the user
4607
4608         * doc/TODO:
4609          - The convenience functions in dbus-bus.h should perhaps have
4610          the signatures that they would have if they were autogenerated
4611          stubs. e.g. the acquire service function. We should also evaluate
4612          which of these functions to include, in light of the fact that
4613          GLib/Qt native stubs will probably also exist.: Punted
4614
4615          - add dbus_message_has_path(), maybe has_member/interface:
4616          fixed in this patch
4617
4618          - in dbus-keyring.c, enforce that the keyring dir is not
4619          world readable/writable: Fixed in this patch
4620
4621 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4622
4623         * dbus/dbus-marshal-validate.h: Added a new validation
4624         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4625         out of memory errors when validating signitures
4626
4627         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4628         in places where we previously used DBUS_VALID and a FALSE return 
4629         value to indicate OOM
4630         
4631         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4632         Use a stack to track the number of elements inside containers.  The 
4633         stack values are then used to validate that dict entries have only two
4634         elements within them.
4635         (validate_body_helper): check the reason for failure when validating
4636         varients
4637         
4638         * dbus/dbus-message.c (load_message): use 
4639         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4640         DBUS_VALID and a FALSE return value to indicate OOM
4641
4642         * doc/TODO: remove "- validate dict entry number of fields" as this
4643         patch fixes it
4644
4645 2005-06-14  David Zeuthen  <davidz@redhat.com>
4646
4647         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4648         watches (if applicable) and add new watches
4649
4650         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4651         (main): Setup SIGIO signal handler if using D_NOTIFY
4652
4653         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4654
4655         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4656         (merge_included): Also merge conf_dirs list
4657         (bus_config_parser_unref): Clear conf_dirs list
4658         (include_dir): Add directory to conf_dirs list
4659         (bus_config_parser_get_conf_dirs): New function
4660
4661         * bus/dir-watch.[ch]: New files
4662
4663         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4664
4665         * configure.in: Add checks for D_NOTIFY on Linux
4666
4667 2005-06-14  Colin Walters  <walters@verbum.org>
4668
4669         * glib/dbus-binding-tool-glib.c:
4670         * glib/dbus-gobject.c:
4671         * glib/dbus-gvalue.c: Fix indentation and brace style.
4672         
4673 2005-06-14  Ross Burton <ross@openedhand.com>.
4674
4675         * glib/dbus-glib.h: Make DBusGMethodInvocation
4676         a private structure.  Rearrange prototypes a bit.
4677         
4678         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4679         documentation for first_arg_type.
4680         
4681         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4682         here, add documentation.  Move dbus_g_method_return
4683         and dbus_g_method_return_error into public API
4684         section.
4685
4686 2005-06-14  Colin Walters  <walters@verbum.org>
4687
4688         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4689         Add missing return statements, noticed by Ross Burton.
4690         
4691 2005-06-13  Ross Burton <ross@openedhand.com>.
4692
4693         * glib/dbus-gobject.c: Handle errors on message
4694         demarshalling by sending error message back.
4695         * glib/dbus-gvalue.c: Initialize return variables.
4696
4697 2005-06-13  Colin Walters  <walters@verbum.org>
4698
4699         * glib/Makefile.am: Fix thinko in last patch.
4700
4701 2005-06-13  Colin Walters  <walters@verbum.org>
4702
4703         * glib/Makefile.am: Move dbus-gtype-specialized.c
4704         and dbus-gtype-specialized.h into a _HEADERS variable,
4705         install them.
4706
4707 2005-06-12  Colin Walters  <walters@verbum.org>
4708
4709         Async signals and various bugfixes and testing by
4710         Ross Burton <ross@openedhand.com>.
4711
4712         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4713         (dbus_gvalue_genmarshal_name_from_type)
4714         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4715         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4716         (dbus_g_value_types_init, dbus_gtype_from_signature)
4717         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4718         (dbus_gtypes_from_arg_signature): New function prototypes.
4719         (dbus_gvalue_demarshal): Take context and error arguments.
4720         (dbus_gvalue_demarshal_variant): New function.
4721         (dbus_gvalue_demarshal_message): New function.
4722         (dbus_gvalue_store): Delete.
4723
4724         * glib/dbus-gvalue.c:
4725
4726         File has been almost entirely rewritten; now we special-case
4727         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4728         hash tables correctly, etc.  Full support for recursive values
4729         is not yet complete.
4730
4731         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4732         argument of signal to G_TYPE_POINTER since we now pass a
4733         structure.
4734         (lookup_g_marshaller): Delete in favor of
4735         _dbus_gobject_lookup_marshaller.
4736         (marshal_dbus_message_to_g_marshaller): Use
4737         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4738         to handle remote signal callbacks.
4739         (dbus_g_proxy_new_from_proxy): New function; creates a new
4740         DBusGProxy by copying an existing one.
4741         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4742         (dbus_g_proxy_get_path): New functions.
4743         (dbus_g_proxy_marshal_args_to_message): New function;
4744         factored out of existing code.
4745         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4746         from a varargs array.
4747         (dbus_g_proxy_begin_call_internal): New function.
4748         (dbus_g_proxy_end_call_internal): New function.
4749         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4750         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4751         after collecting args into value array.
4752         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4753         invoke dbus_g_proxy_end_call_internal.
4754         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4755         end_call_internal.
4756         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4757         types.
4758         (array_free_all): New function.
4759         (dbus_g_proxy_add_signal): Take GTypes.
4760
4761         * glib/dbus-gobject.h:
4762         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4763         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4764         Prototype.
4765
4766         * glib/dbus-gobject.c: Add a global marshal_table hash which
4767         stores mappings from type signatures to marshallers.  Change lots
4768         of invocations of dbus_gtype_to_dbus_type to
4769         dbus_gtype_to_signature.
4770         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4771         (introspect_signals): Fix test for query.return_type.
4772         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4773         (invoke_object_method): Many changes.  Handle asynchronous
4774         invocations.  Convert arguments with
4775         dbus_gvalue_demarshal_message.  Handle errors.  Use
4776         DBusSignatureIter instead of strlen on args. Handle all arguments
4777         generically.  Special-case variants.
4778         (dbus_g_method_return, dbus_g_method_return_error): New function.
4779         (DBusGSignalClosure): New structure, closes over signal
4780         information.
4781         (dbus_g_signal_closure_new): New function.
4782         (dbus_g_signal_closure_finalize): New function.
4783         (signal_emitter_marshaller): New function; is special marshaller
4784         which emits signals on bus.
4785         (export_signals): New function; introspects object signals and
4786         connects to them.
4787         (dbus_g_object_type_install_info): Take GType instead of
4788         GObjectClass.
4789         (dbus_g_connection_register_g_object): Invoke export_signals.
4790         (dbus_g_connection_lookup_g_object): New function.
4791         (DBusGFuncSignature) New structure; used for mapping type
4792         signatures to marshallers.
4793         (funcsig_hash): New function; hashes DBusGFuncSignature.
4794         (funcsig_equal): New function; compares DBusGFuncSignature.
4795         (_dbus_gobject_lookup_marshaller): New function.
4796         (dbus_g_object_register_marshaller): New function; used to
4797         register a marshaller at runtime for a particular signature.
4798
4799         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4800
4801         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4802         which notes a server method implementation should be
4803         asynchronous.
4804
4805         * glib/dbus-binding-tool-glib.c
4806         (dbus_binding_tool_output_glib_server): Call
4807         dbus_g_value_types_init.
4808         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4809         variants specially.
4810         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4811         of a lookup function.
4812         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4813         (write_untyped_out_args): New method; write output arguments.
4814         (write_formal_declarations_for_direction): Function for
4815         writing prototypes.
4816         (write_formal_parameters_for_direction): Function for
4817         writing implementations.
4818         (write_typed_args_for_direction): Function for writing
4819         arguments prefixed with GTypes.
4820         (write_async_method_client): Write out async version
4821         of method.
4822
4823         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4824         (dbus_g_type_get_marshal_name): Move mapping from GType
4825         to marshal name into here.
4826         (dbus_g_type_get_c_name): Move into here.
4827         (compute_marshaller): Convert signature to type with
4828         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4829         (compute_marshaller_name): Ditto.
4830         (compute_marshaller): Handle async signal annotations.
4831         (gather_marshallers): Return if we don't have a known
4832         prefix.
4833         (generate_glue): Collect introspection blob here, and
4834         write all of the blob at the end.  This allows an object
4835         with multiple interfaces to work.
4836         Mark async methods in introspection blob.
4837
4838         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4839         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4840         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4841
4842         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4843         avoids people accidentally using DBUS_TYPE_* which should
4844         not be necessary anymore.
4845         Do include dbus-gtype-specialized.h, which are utilities
4846         for GLib container types.
4847         Add various #defines for types such as
4848         DBUS_TYPE_G_BOOLEAN_ARRAY.
4849         (DBusGValueIterator, DBusGValue): Define, not fully used
4850         yet.
4851         (dbus_g_value_get_g_type): Type for recursive value.
4852         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4853         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4854         (dbus_g_value_free): Prototypes.
4855         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4856         (dbus_g_proxy_set_interface): Prototype.
4857         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4858         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4859         types.
4860         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4861         Accessors.
4862         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4863         doing async invocations.
4864         (dbus_g_method_return, dbus_g_method_return_error):
4865         Prototypes.
4866         * doc/dbus-tutorial.xml: Update GLib section.
4867         
4868         * tools/dbus-viewer.c (load_child_nodes): Update
4869         for new invocation type of dbus_g_proxy_end_call.
4870         (load_from_service_thread_func): Ditto.
4871
4872         * tools/print-introspect.c (main): Ditto.
4873
4874         * tools/dbus-names-model.c (have_names_notify)
4875         (names_model_reload, names_model_set_connection)
4876         Use GTypes.
4877
4878         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4879         needed since Python bindings use GLib bindings.
4880
4881         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4882         Add --prefix argument.
4883
4884         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4885         unneeded --ignore-unsupported arg.
4886         
4887         * test/glib/test-service-glib.c: 
4888         * test/glib/test-service-glib.xml:
4889         * test/glib/test-dbus-glib.c: Add many more tests.
4890
4891 2005-06-06  David Zeuthen  <davidz@redhat.com>
4892
4893         * doc/TODO: Add item about need to remove deprecated functions.
4894
4895         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4896
4897         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4898         to repair the ABI which was broken with the last commit.
4899
4900 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4901
4902         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4903         (dbus_connection_disconnect): renamed to dbus_connection_close 
4904         for API symmetry with dbus_connection_open
4905         (_dbus_connection_open_internal): 
4906         s/dbus_connection_disconnect/dbus_connection_close
4907
4908         * dbus/dbus-bus.c (dbus_bus_get):
4909         s/dbus_connection_disconnect/dbus_connection_close
4910
4911         * bus/connection.c (bus_connections_unref, 
4912         bus_connections_setup_connection, bus_connections_expire_incomplete):
4913         s/dbus_connection_disconnect/dbus_connection_close
4914
4915         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4916         kill_client_connection_unchecked, check_hello_connection):
4917         s/dbus_connection_disconnect/dbus_connection_close
4918
4919         * bus/bus.c (new_connection_callback):
4920         s/dbus_connection_disconnect/dbus_connection_close
4921
4922         * tools/dbus-send.c (main):
4923         s/dbus_connection_disconnect/dbus_connection_close
4924
4925         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4926         s/dbus_connection_disconnect/dbus_connection_close
4927         
4928         * test/test-service.c (path_message_func, filter_func):
4929         s/dbus_connection_disconnect/dbus_connection_close
4930         
4931         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4932         
4933 2005-05-25  Colin Walters  <walters@verbum.org>
4934
4935         * dbus/dbus-protocol.h: Move various bus service #defines such
4936           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4937           dbus/dbus-shared.h.
4938         * dbus/dbus-shared.h: Various defines moved here.
4939         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4940
4941 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4942
4943         * python/__init__.py: Python bindings deserve a minor version
4944         update.  Upped to (0, 40, 2)
4945
4946 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4947
4948         * python/decorators.py: add explicitly_pass_message decorator
4949         for passing in the dbus message as keyword for edge case signal
4950         handling
4951
4952         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4953         to conform with what dbus expects for match rules
4954         (SignalMatchRule.execute): add the dbus message as a keyword
4955         if the signal handler has requested it
4956
4957         * python/examples/example/signal-recipient.py: added some more
4958         examples on how to hook up to signals
4959
4960 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4961
4962         * python/decorators.py: import dbus_bindings
4963
4964         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4965         SignalMatchNode): new classes that implement wildcard signal
4966         callback matching using a tree lookup. Heavily modified from a
4967         patch sent by Celso Pinto (fd.o bug #3241)
4968
4969         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4970         use new match classes to handle signals.
4971
4972 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4973         
4974         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4975
4976 2005-05-18  Havoc Pennington  <hp@redhat.com>
4977
4978         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4979         gettext. Not really worth requiring yet perhaps, but any
4980         production quality 1.0 would require it so we should go ahead and
4981         get things set up. We do have a couple token calls to
4982         bindtextdomain in the code already.
4983
4984 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4985
4986         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4987         when using recursive g_main_loops
4988
4989         * python/_dbus.py (class Bus): add the ProxyObjectClass
4990         alias for ProxyObject to make it easier for the Twisted 
4991         networking framework to integrate dbus.
4992
4993         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4994         alias for ProxyMethod to make it easier for the Twisted 
4995         networking framework to integrate dbus. 
4996
4997 2005-05-11  Ross Burton  <ross@openedhand.com>
4998
4999         * glib/dbus-glib-tool.c: Add --prefix argument.
5000         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5001         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5002         Add prefix argument.
5003         (generate_glue): Pass prefix argument down.
5004         (dbus_binding_tool_output_glib_server): Pass prefix to
5005         glib-genmarshal.
5006         
5007 2005-05-11  Colin Walters  <walters@verbum.org>
5008
5009         * tools/dbus-send.c (append_array): New function.
5010         (append_arg): Broken out from main.
5011         (main): Add cheesy hack to send arrays and variants.
5012         (usage): Update.
5013         * tools/dbus-print-message.c (print_iter): Broken out
5014         from main.
5015
5016 2005-05-11  Colin Walters  <walters@verbum.org>
5017
5018         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5019         New function, returns signature string for signature iter.
5020         * dbus/dbus-signature.h: Prototype it.
5021         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5022         New function, returns signature string for message iter.
5023         (dbus_message_iter_get_array_len): New function, returns
5024         length of array.
5025         (dbus_message_iter_get_fixed_array): Fix assertion; this
5026         function should be used when the iter is pointing to the
5027         contents of an array
5028         * dbus/dbus-message.h: Prototypes.
5029         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5030         New function; returns length of an array.
5031         * dbus/dbus-marshal-recursive.h: Prototype it.
5032         
5033 2005-05-11  Colin Walters  <walters@verbum.org>
5034
5035         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5036         compilation error.
5037         
5038 2005-05-08  Havoc Pennington  <hp@redhat.com>
5039
5040         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5041         daemon's pid, not the parent's pid, to the file descriptor.
5042         Reported by Taj Morton.
5043
5044 2005-05-05  Havoc Pennington  <hp@redhat.com>
5045
5046         * configure.in (LT_*): add notes on how the libtool versioning
5047         works to save thinking. Increment soname to indicate protocol
5048         breakage (though really the library interface hasn't changed I
5049         guess)
5050
5051         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5052         verify the GUID received from server matches what we were
5053         expecting, if we had an expectation
5054
5055         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5056         (_dbus_auth_get_guid_from_server): new function
5057         (send_begin): parse the OK args
5058
5059         * doc/dbus-specification.xml: add GUID to the auth protocol
5060
5061 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5062
5063         * Fix my name in previous changelog ;)
5064
5065         * python/proxies.py (ProxyObject.__getattr__): add further patch
5066         from Anthony Baxter to throw an AttributeError when python 
5067         __special__ functions are called instead of marshling them over 
5068         the bus (Bug#1685 comment 3).
5069
5070 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5071
5072         * python/Makefile.am: changed to use pyexecdir for the binding
5073         shared libraries (Bug#2494)
5074
5075         * python/exceptions.py: bring exceptions over from the bindings
5076         so they can be used in applications (Bug#2036)
5077         Make all exceptions derive from DBusException
5078
5079         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5080         of classes so that print obj doesn't throw an exception (Bug #1685)
5081
5082 2005-05-03  Ross Burton  <ross@openedhand.com>
5083
5084         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5085         Return if we get an error during registration.  Set up a
5086         weak reference on object to unregister if object is destroyed.
5087         (unregister_gobject): New function.
5088         
5089 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5090
5091         * python/dbus_bindings.pyx.in: 
5092         - added new type classes for hinting to the marashaler what type 
5093         to send over the wire
5094         - added int16 and uint16 marshalers
5095         - Fixed a bug in the type constants that caused int32 to go out
5096         as uint16 over the wire
5097         * python/dbus.py: split up into different files and renamed _dbus.py
5098         * python/__init__.py, python/_util.py, python/decorators.py, 
5099         python/exceptions.py, python/proxies.py, python/services.py,
5100         python/types.py: new files split off from dbus.py
5101         * python/Makefile.am: Add new files, remove dbus.py and 
5102         install all python files to <python module dir>/dbus
5103         * python/examples/*: Added #!/usr/bin/env python to the top of
5104         every example.  Patch provided by Tatavarty Kalyan
5105
5106 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5107
5108         * NEWS: Update to 0.33
5109
5110 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5111
5112         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5113         method for doing async calls
5114         (_pending_call_notification): New C function for handling pendning call
5115         callbacks
5116         (set_notify): New method for setting pending call notification
5117         
5118         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5119         Async capabilities added to remote method calls
5120         (Sender): class removed
5121         (RemoteService): class removed
5122         (ObjectTree): class removed for now
5123         (RemoteObject): Renamed to ProxyObject
5124         (RemoteMethod): Renamed to ProxyMethod
5125         (method): Decorator added for decorating python methods as dbus methods
5126         (signal): Decorator added for decorating python methods as signal emitters
5127         (ObjectType): Metaclass added for generating introspection data and the
5128         method callback vtable
5129         (Interface): Wrapper class added to wrap objects in a dbus interface
5130         (Object): Uses ObjectType as its metaclass and exports Introspect
5131         of the org.freedesktop.DBus.Introspectable interface
5132         (ValidationException, UnknownMethodException): new exceptions
5133
5134         * python/examples/*: Modified to fit with the new bindings
5135
5136 2005-04-23  Havoc Pennington  <hp@redhat.com>
5137
5138         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5139         reported by Tony Houghton
5140
5141         * test/test-service.c (main): test
5142         dbus_connection_get_object_path_data()
5143
5144         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5145         the exact_match
5146         (_dbus_object_tree_get_user_data_unlocked): new function used by
5147         dbus_connection_get_object_path_data()
5148         (do_register): add assertion test for get_user_data_unlocked
5149         (object_tree_test_iteration): more tests
5150
5151         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5152         new function from Dan Reed to let you get the user data from 
5153         dbus_connection_register_object_path()
5154
5155 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5156
5157         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5158         in numerous places that did not account for the NULL terminator
5159         (signature_from_seed): changed the manual string copy loop to 
5160         just use strcpy instead
5161         make check should now pass
5162
5163 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5164
5165         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5166         so that it allows messages that are not signals to pass in 
5167         NULL as the interface.
5168
5169 2005-04-18  David Zeuthen  <davidz@redhat.com>
5170
5171         * glib/dbus-gmain.c (io_handler_destroy_source): 
5172         (timeout_handler_destroy_source, connection_setup_free): 
5173         Also unref the source to avoid memory leaks.
5174
5175 2005-04-13  David Zeuthen  <davidz@redhat.com>
5176
5177         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5178         more reasonable, yet still totally arbitrary, value :-). 
5179
5180 2005-04-13  David Zeuthen  <davidz@redhat.com>
5181
5182         * doc/TODO: Added an "important for 1.0" item about selinux
5183         allow/deny messages
5184
5185 2005-04-13  David Zeuthen  <davidz@redhat.com>
5186
5187         * bus/selinux.c: Add c-file-style to top of file
5188         (log_audit_callback): Don't free the data here anymore
5189         (bus_selinux_check): Don't take spid and tpid since appending
5190         that to auxdata may OOM.
5191         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5192         to the caller if we are OOM by taking an error object.
5193         (bus_selinux_allows_send): -do-
5194
5195         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5196         and bus_selinux_allows_send
5197
5198         * bus/bus.c (bus_context_check_security_policy): Pass error and
5199         pass on OOM thrown by bus_selinux_allows_send()
5200
5201         * bus/services.c (bus_registry_acquire_service): Pass error and
5202         pass on OOM thrown by bus_selinux_allows_acquire_service()
5203
5204 2005-04-13  Havoc Pennington  <hp@redhat.com>
5205
5206         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5207         message at a time to avoid monopolizing the main loop, bug 
5208         #2953 from Benjamin Otte
5209
5210 2005-04-09  Havoc Pennington  <hp@redhat.com>
5211
5212         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5213         possible overlap, fix from Daniel Reed
5214         (fixup_alignment): fix signedness warnings
5215         (_dbus_string_append_unichar): ditto
5216
5217 2005-04-09  Havoc Pennington  <hp@redhat.com>
5218
5219         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5220
5221         * glib/dbus-glib-tool.c (main): fix warning
5222
5223         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5224
5225         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5226         add a new function that can be used in simple applications that
5227         don't have a main loop and are willing to block
5228
5229 2005-04-05  David Zeuthen  <davidz@redhat.com>
5230
5231         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5232
5233         * glib/dbus-gmain.c:
5234         (io_handler_destroy_source): Remove from list of IO handlers
5235         of the ConnectionSetup object
5236         (timeout_handler_destroy_source): -do- for timeout handlers
5237         (io_handler_source_finalized): Don't remove from list since
5238         we now do that in io_handler_destroy_source(). Renamed from
5239         io_handler_source_destroyed
5240         (timeout_handler_source_destroyed): -do- for timeout handlers
5241         (connection_setup_free): It is now safe to iterate over all
5242         IO and timeout handlers as the _destroy_source removes them
5243         from the list synchronously
5244
5245 2005-03-30  Havoc Pennington  <hp@redhat.com>
5246
5247         * configure.in: change check to gtk 2.4
5248
5249         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5250         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5251         to 2.4
5252
5253 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5254
5255         * News: Update 0.32
5256
5257         * HACKING: Fixed realease instructions.  configure.in should be updated to
5258           the next release by the person who made the last release.
5259
5260 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5261
5262         * python/lvalue_cast_post_process.py - removed.  Patch has been
5263           submitted to Pyrex maintainers that fixes gcc4.0 errors
5264
5265         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5266
5267 2005-03-24  Daniel Reed  <n@ml.org>
5268
5269         * tools/Makefile.am: Make print-introspect and
5270         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5271
5272 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5273
5274         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5275
5276         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5277           had in Red Hat packages for a while but for some reason never 
5278           got merged upstream
5279           (_dbus_is_a_number): New checks if a string
5280           can be converted to a number and does the conversion if it can
5281           (_dbus_user_database_lookup): Add check to see if the given username
5282           is a udi.  This allows udi's to be used instead of usernames in the
5283           config file.
5284           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5285           is a gdi.  This allows gdi's to be used instead of groupnames in the
5286           config file.
5287
5288 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5289
5290         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5291           code so that it compiles with gcc4.0
5292
5293         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5294           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5295           results back to dbus_binding.c
5296
5297 2005-03-20  Colin Walters  <walters@verbum.org>
5298
5299         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5300
5301         * configure.in: Require GTK+ 2.6.
5302         
5303 2005-03-20  Colin Walters  <walters@verbum.org>
5304
5305         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5306
5307 2005-03-17  Tom Parker  <palfrey@tevp.net>
5308
5309         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5310         print DBUS_UID_UNSET; instead print passed username.  Also
5311         be sure to actually use gid looked up in cache.
5312         
5313         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5314         for DBUS_GID_UNSET and groupname.
5315
5316 2005-03-17  Colin Walters  <walters@verbum.org>
5317
5318         * bus/print-introspect.c: Move to tools/.
5319         * bus/run-with-tmp-session-bus.sh: Ditto.
5320         
5321         * glib/Makefile.am (dbus-glib-bindings.h): Move
5322         generation to tools/Makefile.am.
5323
5324         * test/glib/run-test.sh: Update to handle move
5325         of run-with-tmp-session-bus.sh.
5326
5327         * test/glib/test-service-glib.c: Update to handle
5328         move of dbus-glib-bindings.h.
5329
5330         * tools/print-introspect.c: Moved here
5331         from bus/, and ported to GLib bindings.
5332
5333         * tools/run-with-tmp-session-bus.sh: Moved here
5334         from bus/.
5335
5336         * tools/Makefile.am: Generate dbus-glib-bindings.h
5337         and dbus-bus-introspect.xml here.
5338
5339         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5340         Update.
5341
5342 2005-03-17  Colin Walters  <walters@verbum.org>
5343
5344         * bus/driver.c (write_args_for_direction): Use
5345         _dbus_string_get_const_data to retrieve string;
5346         _dbus_string_get_const_data_len doesn't actually return
5347         a NULL-terminated substring.
5348
5349         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5350         (main): Change to use org_freedesktop_DBus_request_name
5351         instead of using g_proxy_begin_call/end_call.
5352
5353 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5354
5355         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5356         generating the finalizer.  Fixes from Ben Maurer.
5357
5358 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5359
5360         * mono/BusDriver.cs: Update method names: ListServices
5361         becomes ListNames; GetOwner becomes GetNameOwner.
5362
5363         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5364         onto the eval stack when removing the delegate.
5365
5366 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5367
5368         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5369         LT_CURRENT.  Set it to the autoconf variable.
5370                                                                                 
5371         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5372         classes that disconnects the signal handler delegate from the
5373         service object.  Fixes a big leak of proxy objects on the
5374         client side of things.  Patch from Ben Maurer
5375         <bmaurer@ximian.com>
5376
5377 2005-03-12  Colin Walters  <walters@verbum.org>
5378
5379         * bus/driver.c (write_args_for_direction): New function,
5380         parses a type signature into arguments and outputs to
5381         XML.
5382         (bus_driver_handle_introspect): Use it instead of
5383         hardcoding XML for certain signatures.
5384         
5385         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5386         dependency on dbus-daemon.
5387
5388         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5389         argument, pass it to dbus_binding_tool_output_glib_client.
5390
5391         * glib/dbus-binding-tool-glib.c
5392         (generate_client_glue): Protect against multiple inclusion.
5393         (dbus_binding_tool_output_glib_client): Add
5394         G_BEGIN_DECLS/G_END_DECLS.
5395
5396         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5397         Change to just take iface prefix directly.
5398         (write_formal_parameters): Clarify error message.
5399         (check_supported_parameters): New function; checks to see type
5400         signatures of method parameters are supported.
5401         (generate_client_glue): Handle ignore_unsupported flag.
5402         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5403         parameter.
5404
5405         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5406         --ignore-unsupported by default until glib bindings
5407         support arrays.
5408
5409 2005-03-11  Colin Walters  <walters@verbum.org>
5410
5411         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5412         install it.
5413
5414         * bus/print-introspect.c: New file; prints introspection
5415         data for a given name and object path.
5416
5417         * bus/run-with-tmp-session-bus.sh: New file, refactored
5418         from test/glib/run-test.sh.  Creates a temporary session
5419         bus and runs another program.
5420
5421         * test/glib/run-test.sh: Refactor to invoke
5422         run-with-tmp-session-bus.sh.
5423
5424         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5425         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5426         macros instead of hardcoding.
5427
5428         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5429
5430 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5431
5432         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5433         this unref; it doesn't match up evenly in some codepaths.
5434         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5435         this evenly matches with the ref near the top of this function.
5436
5437 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5438
5439         * dbus/dbus-object-tree.c
5440         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5441         and we try to unregister a path that's not registered, still go
5442         through the process of unlocking and don't just return.
5443
5444 2005-03-09  Colin Walters  <walters@verbum.org>
5445
5446         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5447         to this are generated for client-side wrappers.  Invokes a
5448         D-BUS method and returns reply values.  
5449
5450         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5451         function; writes signature string for argument direction.
5452         (write_args_for_direction): Change to pass input values directly
5453         instead of via address, and fix indentation.
5454         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5455         make generated wrappers inlineable.
5456
5457         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5458         note about using dbus_type_is_fixed.
5459
5460         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5461         dbus/dbus-signature.c as dbus_type_is_fixed.
5462
5463         All callers updated.
5464
5465         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5466         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5467
5468         * dbus/dbus-signature.h: Prototype.
5469
5470         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5471         error printf code.
5472
5473         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5474         appropriate instead of just freeing it.
5475         (main): Free returned strings using g_free.
5476
5477         * test/glib/Makefile.am (test-service-glib-glue.h)
5478         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5479
5480         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5481         simply maps a simple D-BUS type to GType.
5482         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5483         GType.
5484         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5485         initialize the value with it.
5486         (dbus_gvalue_binding_type_from_type): Unused, delete.
5487         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5488         various types instead of unmarshalling to value data directly.
5489         Remove can_convert boolean.
5490         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5491         returning directly instead of using can_convert boolean.
5492         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5493         Stores a GValue in a pointer to a value of its corresponding C
5494         type.
5495
5496         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5497         add dbus_gvalue_store.
5498
5499 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5500
5501         Fix a bunch of lifecycle and memory management problems
5502         in the mono bindings.
5503
5504         * mono/Arguments.cs (Arguments): Implement IDisposable
5505
5506         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5507         strictly a static class.
5508
5509         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5510         delegates into this file.
5511         (Connection): Implement IDisposable.
5512         (Dispose): Disconnect the connection and set the raw connection
5513         pointer to IntPtr.Zero.
5514         (~Connection): Call Dispose().
5515         (RegisterObjectPath): Added.  Manages the registration of object
5516         paths so we can cleanly disconnect them at dispose/finalize time.
5517         (UnregisterObjectPath): Ditto.
5518         (set_RawConnection): Unregister all of the object paths when
5519         changing the underlying DBusConnection.  Add them back onto the
5520         new connection, if any.
5521
5522         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5523         more unmanaged resources anymore, so it's not necessary.  Move all
5524         the DBusObjectPathVTable stuff out of here.
5525         (Handler): Save references to our delegates so that they don't get
5526         finalized.  Call Connection.RegisterObjectPath() instead of
5527         dbus_connection_register_object_path() directly.
5528         (Message_Called): Dispose the message after we're finished with
5529         it.
5530
5531         * mono/Message.cs (Message): Implement IDisposable.
5532         (Dispose): Dispose the Arguments, and set the RawMessage to
5533         IntPtr.Zero.
5534         (SendWithReplyAndBlock): We own the ref to the reply that comes
5535         back from dbus_connection_send_with_reply_and_block() so add a
5536         comment about that and unref it after we've constructed a managed
5537         MethodReturn class around it.  Fixes a big, big leak.
5538
5539         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5540         method.
5541         (BuildSignalHandler): After we've sent the Signal message, dispose
5542         of it.
5543         (BuildMethod): Dispose of the method call and reply messages after
5544         we've sent the message and extracted the data we want from the
5545         reply.
5546
5547         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5548         anymore.
5549         (Service_FilterCalled): Dispose of the message after we're
5550         finished with it.
5551
5552 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5553
5554         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5555         After we attach our pending call to the connection, unref
5556         it.  Fixes a leak.
5557  
5558         * mono/Connection.cs (set_RawConnection): Disconnect our
5559         filter and match callbacks from the old connection and
5560         reconnect them to the new connection, if any.
5561
5562         * mono/DBusType/Array.cs: "Code" is a static member, so
5563         don't use "this" to refer to it.  Fix for stricter checking
5564         in Mono 1.1.4.
5565  
5566         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5567         object path that we pass into unmanaged code.
5568  
5569         * mono/DBusType/String.cs (Append): Don't leak the string
5570         that we pass into unmanged code.
5571
5572 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5573         * NEWS: Update for 0.31
5574
5575         * configure.in: Release 0.31
5576         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5577
5578         * qt/Makefile.am: fixed build
5579
5580         * dbus/Makefile.am: soname bump for libdbus
5581
5582         * glib/Makefile.am: soname bump for libdbus-glib
5583
5584 2005-03-05  Havoc Pennington  <hp@redhat.com>
5585
5586         * dbus/dbus-sysdeps.c:
5587         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5588         value
5589         (_dbus_generate_random_bytes_buffer): fix return value
5590
5591         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5592         checks actually work, from Tom Parker <fdo@tevp.net>
5593
5594 2005-03-01  Colin Walters  <walters@verbum.org>
5595
5596         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5597         functions copied from dbus-glib-tool.c.
5598         (main): Convert lots of error code to use them.
5599         Also add some testing for introspection bits.
5600
5601 2005-03-01  Colin Walters  <walters@verbum.org>
5602         
5603         * doc/TODO: Remove introspection signature TODO.
5604
5605 2005-02-27  Colin Walters  <walters@verbum.org>
5606
5607         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5608         Change return value to const char * instead of int so we can do
5609         full signatures.
5610         (struct PropertyInfo, struct ArgInfo): Store char *.
5611         (property_info_new, arg_info_new): Update parameters, strdup.
5612         (property_info_unref, arg_info_unref): Free.
5613
5614         * glib/dbus-gidl.h: Update prototypes.
5615
5616         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5617         (validate_signature): New function, just validates signature and
5618         sets GError.
5619         (parse_property, parse_arg): Invoke validate_signature.  Store
5620         signature instead of just type code.
5621
5622         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5623         function to return a primary type for a signature, dropping
5624         information about types in container types.
5625         (dbus_gvalue_genmarshal_name_from_type)
5626         (dbus_gvalue_binding_type_from_type)
5627         (dbus_gvalue_ctype_from_type): Update to take full signature
5628          instead of type code.
5629         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5630
5631         * glib/dbus-gvalue.h: Update prototypes for above.
5632
5633         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5634         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5635         (introspect_properties, introspect_signals, write_interface):
5636         Update to handle signatures, and remove usage of
5637         _dbus_gutils_type_to_string.
5638         (handle_introspect): Print out type codes instead of e.g. "string"
5639         in hardcoded introspection XML; also use x_AS_STRING constants
5640         instead of hardcoding in string.
5641
5642         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5643         to string.  Remove usage of _dbus_gutils_type_to_string.
5644
5645         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5646
5647         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5648         deletion.
5649         
5650         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5651         (compute_marshaller_name, generate_glue): Handle signature change
5652         to string.
5653         (write_formal_parameters, write_args_for_direction): Ditto, and
5654         remove FIXME.
5655
5656         * tools/dbus-tree-view.c (type_to_string): Delete.
5657         (info_set_func_text): Update to print full signatures.
5658
5659         * test/glib/test-service-glib.xml: Change types to new
5660         introspection format.
5661
5662 2005-02-26  Havoc Pennington  <hp@redhat.com>
5663
5664         * doc/TODO: remove the "guid" item
5665
5666         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5667         (with_bus_thread_func): use open_private
5668
5669         * dbus/dbus-connection.c (dbus_connection_open_private): new
5670         function that works like the old dbus_connection_open()
5671         (dbus_connection_open): now returns an existing connection if
5672         possible
5673
5674         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5675         through the GUID to the transport
5676
5677         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5678         GUID in hex-encoded form.
5679
5680         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5681         pass GUID argument in to the transport
5682
5683         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5684         guid argument
5685
5686         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5687
5688         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5689
5690 2005-02-25  Havoc Pennington  <hp@redhat.com>
5691
5692         * doc/dbus-specification.xml: document the GUID thing
5693
5694         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5695         globally unique ID for the server, and put a "guid=hexencoded"
5696         field in the address
5697
5698         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5699
5700         * dbus/dbus-message.c: ditto
5701
5702         * dbus/dbus-dataslot.c: ditto
5703
5704         * dbus/dbus-list.c: ditto
5705
5706         * dbus/dbus-internals.h: wait, just include
5707         dbus-threads-internal.h here
5708         
5709         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5710         use in main library
5711
5712         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5713
5714 2005-02-24  Colin Walters  <walters@verbum.org>
5715
5716         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5717
5718 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5719
5720         * glib/Makefile.am: added dbus-gobject.h to sources list
5721         so distcheck doesn't fail
5722         
5723 2005-02-24  Havoc Pennington  <hp@redhat.com>
5724
5725         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5726         you must disconnect before unref, since locking and other things
5727         are screwed up otherwise. Fix assorted other locking stuff.
5728
5729         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5730         fix compilation
5731
5732         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5733         into a private header and don't export from the library
5734
5735         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5736
5737 2005-02-24  Colin Walters  <walters@verbum.org>
5738         
5739         * dbus/dbus-signature.c: New file; implements various functions
5740         related to type signatures.  Includes an interator for parsing,
5741         validation functions.
5742         (dbus_type_is_basic): Moved here from
5743         dbus-marshal-basic.c:_dbus_type_is_basic.
5744         (dbus_type_is_container): Moved here from
5745         dbus-marshal-basic.c:_dbus_type_is_container.
5746
5747         All callers of _dbus_type_is_container and _dbus_type_is_basic
5748         updated, and include dbus-signature.h.
5749
5750         * dbus/dbus-signature.h: New file; prototypes for the above.
5751
5752         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5753         dbus-signature.h.
5754
5755         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5756         function factored out of _dbus_first_type_in_signature.
5757         (_dbus_first_type_in_signature_c_str): New function; returns first
5758         type code for a type signature character.
5759
5760         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5761         handle function moves.
5762
5763         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5764
5765         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5766         function; skips to next complete type in type signature.
5767         Implemented using previous skip_one_complete_type.  Now
5768         skip_one_complete_type just delegates to
5769         _dbus_type_signature_next.
5770
5771         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5772         to dbus-signature.c
5773         (_dbus_type_is_container): Ditto.
5774
5775         * doc/dbus-specification.xml: Update introspection sample to
5776         use real type signatures.
5777
5778         * dbus/dbus-test.h: Prototype signature test.
5779
5780         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5781         signature tests.
5782
5783         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5784
5785 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5786
5787         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5788         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5789
5790 2005-02-21  Colin Walters  <walters@verbum.org>
5791
5792         * dbus/dbus-test-main.c (main): Take optional specific test
5793         argument.
5794
5795         * dbus/dbus-test.c (run_test): New function, runs a test function
5796         with no data directory.
5797         (run_data_test): Like above, but takes data directory.
5798         (dbus_internal_do_not_use_run_tests): Take
5799         specific test argument.  Replace lots of cut n' paste code
5800         with run_test and run_data_test.
5801
5802         * dbus/dbus-test.h: Update prototype for
5803         dbus_internal_do_not_use_run_tests.
5804
5805 2005-02-20  Havoc Pennington  <hp@redhat.com>
5806
5807         Fix bugs reported by Daniel P. Berrange
5808         
5809         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5810         (protected_change_watch): new function
5811         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5812         (_dbus_server_add_watch): change to work like the
5813         dbus-connection.c equivalents; like those, probably kind of
5814         busted, but should at least mostly work for now
5815         (dbus_server_disconnect): drop the lock if we were already
5816         disconnected, patch from Daniel P. Berrange
5817
5818         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5819         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5820         same stuff
5821
5822         * doc/TODO: todo about unscrewing this mess
5823
5824 2005-02-19  Colin Walters  <walters@verbum.org>
5825
5826         * glib/dbus-binding-tool-glib.c
5827         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5828
5829         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5830         as errno.h and sys/stat.h.
5831         (lose): New function, prints error with
5832         newline and exits.
5833         (lose_gerror): Similar, but takes GError for message.
5834         (main): Add --output argument to specify output file to write to,
5835         instead of always printing to stdout.  In this mode, determine
5836         timestamps on source files to see whether any are newer than the
5837         target file.  If not, exit.  Also convert a number of error
5838         messages to use lose (since it's shorter), and switch to using
5839         g_io_channel_shutdown.
5840
5841 2005-02-19  Havoc Pennington  <hp@redhat.com>
5842
5843         * glib/dbus-gobject.c
5844         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5845
5846         * glib/dbus-glib.c: fix doxygen warnings
5847
5848         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5849         is found on an <arg>
5850
5851 2005-02-17  Colin Walters  <walters@verbum.org>
5852
5853         * glib/dbus-gobject.h: Don't export
5854         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5855         
5856         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5857         (invoke_object_method): Handle it.
5858
5859         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5860         Handle rename.
5861         
5862 2005-02-17  Colin Walters  <walters@verbum.org>
5863
5864         * bus/.cvsignore, doc/.cvsignore
5865         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5866         Update.
5867
5868 2005-02-17  Colin Walters  <walters@verbum.org>
5869         
5870         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5871         Rename to DBUS_SERVICE_DBUS.
5872         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5873         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5874         Change the value from "org.freedesktop.Local"
5875         to "org.freedesktop.DBus.Local".
5876         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5877         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5878         DBUS_INTERFACE_INTROSPECTABLE.
5879         Change the value from "org.freedesktop.Introspectable"
5880         to "org.freedesktop.DBus.Introspectable".
5881         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5882         DBUS_INTERFACE_PROPERTIES.
5883         Change the value from "org.freedesktop.Properties"
5884         to "org.freedesktop.DBus.Properties".
5885         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5886         DBUS_INTERFACE_PEER.
5887         Change the value from "org.freedesktop.Peer"
5888         to "org.freedesktop.DBus.Peer".
5889         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5890         DBUS_INTERFACE_LOCAL.
5891         Change the value from "org.freedesktop.Local"
5892         to "org.freedesktop.DBus.Local".
5893
5894         All other users of those constants have been changed.
5895
5896         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5897
5898         * glib/dbus-gobject.c (handle_introspect): Use constants.
5899
5900         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5901
5902 2005-02-17  Colin Walters  <walters@verbum.org>
5903
5904         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5905         (parse_node, parse_interface, parse_method, parse_signal)
5906         (parse_property, parse_annotation): Lose if we're currently in an
5907         annotation.
5908         (parse_annotation): New function.
5909         (parser_start_element, parser_end_element): Handle annotation.
5910         (parse_method, parse_interface): Remove support for c_name attribute,
5911         switch to annotations.
5912
5913         * glib/dbus-gidl.h (interface_info_get_binding_names)
5914         (method_info_get_binding_names)
5915         (interface_info_get_binding_name, method_info_get_binding_name)
5916         (interface_info_set_binding_name, method_info_set_binding_name):
5917         Remove.
5918         (interface_info_get_annotations, method_info_get_annotations)
5919         (interface_info_get_annotation, method_info_get_annotation)
5920         (interface_info_add_annotation, method_info_add_annotation):
5921         Prototype.
5922
5923         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5924         for "bindings".
5925         (struct MethodInfo): Ditto.
5926         Straightfoward conversion of binding methods into annotation methods
5927         as prototyped.
5928
5929         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5930
5931         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5932
5933         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5934         Use new annotation API.
5935
5936         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5937         annotation element.
5938         
5939         * doc/dbus-specification.xml: Discuss introspection annotations,
5940         include list of well-known annotations.
5941
5942         * test/glib/test-service-glib.xml: Make validate against new DTD.
5943
5944 2005-02-17  Colin Walters  <walters@verbum.org>
5945
5946         This patch is based on initial work from
5947         Paul Kuliniewicz <kuliniew@purdue.edu>.
5948
5949         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5950         initialization of GValue from dbus type to here.
5951         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5952         for the "glib-genmarshal" program from a DBus type.
5953         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5954         into the C name for it we use in the glib bindings.
5955         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5956         glib C type (not GValue).
5957         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5958
5959         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5960         from dbus-gobject.c.
5961
5962         * glib/dbus-gutils.h: Prototype it.
5963
5964         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5965         (marshal_dbus_message_to_g_marshaller): Use new shared function
5966         dbus_glib_marshal_dbus_message_to_gvalue_array.
5967
5968         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5969         Will be changed once we have annotations.
5970
5971         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5972         GStaticRWLock.  Callers updated.
5973         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5974         (string_table_next): New function for iterating over zero-terminated
5975         string value array.
5976         (string_table_lookup): New function; retrieves specific entry in
5977         array.
5978         (get_method_data): New function; look up method data in object data chunk.
5979         (object_error_domain_prefix_from_object_info)
5980         (object_error_code_from_object_info): New functions, but not implemented yet.
5981         (method_interface_from_object_info): New function; retrieve interface name.
5982         (method_name_from_object_info): New function; retrieve method name.
5983         (method_arg_info_from_object_info): New function; retrieve argument data.
5984         (arg_iterate): New function; iterates over serialized argument data.
5985         (method_dir_signature_from_object_info): New function; returns a
5986         GString holding type signature for arguments for just one
5987         direction (input or output).
5988         (method_input_signature_from_object_info)
5989         (method_output_signature_from_object_info): New functions.
5990         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5991         converts dbus message arguments into a GValue array.  Used for both
5992         signal handling and method invocation.
5993         (struct DBusGlibWriteIterfaceData): New utility structure.
5994         (write_interface): New function; generate introspection XML for
5995         an interface.
5996         (introspect_interfaces): New function; gathers all interface->methods,
5997         generates introspection XML for them.
5998         (handle_introspect): Invoke introspect_interfaces.
5999         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6000         (lookup_object_and_method): New function; examines an incoming message
6001         and attempts to match it up (via interface, method name, and argument
6002         signature) with a known object and method.
6003         (gerror_domaincode_to_dbus_error_name): New function; converts a
6004         GError domain and code into a DBus error name.  Needs GError data
6005         added to object introspection to work well.
6006         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6007         GError.
6008         (invoke_object_method): New function to invoke an object method
6009         looked up via lookup_object_and_method.  Parses the incoming
6010         message, turns it into a GValue array, then invokes the marshaller
6011         specified in the DBusGMethodInfo.  Creates a new message with
6012         either return values or error message as appropriate.
6013         (gobject_message_function): Invoke lookup_object_and_method and
6014         invoke_object_method.
6015
6016         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6017         (enum DBusBindingOutputMode): New enum for binding output modes.
6018         (pretty_print): Print binding names.
6019         (dbus_binding_tool_error_quark): GError bits.
6020         (version): Fix typo.
6021         (main): Create GIOChannel for output.  Parse new --mode argument,
6022         possible values are "pretty-print", "glib-server", "glib-client".
6023         Use mode to invoke appropriate function.
6024         
6025         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6026
6027         * glib/dbus-glib-tool.h: New header, just includes GError bits
6028         for now.
6029
6030         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6031         maps binding style to name.
6032         (struct MethodInfo): Ditto.
6033         (get_hash_keys, get_hash_key): Utility function, returns keys for
6034         a GHashTable.
6035         (interface_info_new, method_info_new): Initialize bindings.
6036         (interface_info_unref, method_info_unref): Destroy bindings.
6037         (method_info_get_binding_names, method_info_get_binding_name)
6038         (interface_info_get_binding_names, interface_info_get_binding_name):
6039         Functions for retrieving binding names.
6040         (method_info_set_binding_name, interface_info_set_binding_name):
6041         Functions for setting binding names.
6042
6043         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6044         for glib binding generation.
6045
6046         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6047         and client-side glib glue generation.
6048
6049         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6050         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6051         dbus-glib-tool.h.
6052
6053         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6054         of using GClosureMarshal directly.
6055         (struct DBusGObjectInfo): Add n_infos member.
6056
6057         * test/glib/test-service-glib.xml: New file; contains introspection data
6058         for MyTestObject used in test-service-glib.c.
6059
6060         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6061         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6062         (my_object_uppercase, my_object_many_args): New test methods.
6063         (main): Use dbus_g_object_class_install_info to include generated object
6064         info.
6065
6066         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6067         as well as client-side bindings.
6068
6069         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6070         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6071         using both the dbus_gproxy stuff directly as well as the generated bindings.
6072
6073 2005-02-15  Havoc Pennington  <hp@redhat.com>
6074
6075         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6076         complete a pending call, don't run filters first.
6077
6078         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6079         dbus_pending_call_steal_reply
6080
6081         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6082         _dbus_connection_block_pending_call
6083         (dbus_pending_call_get_reply): change to steal_reply and return a
6084         ref
6085
6086         * dbus/dbus-connection.c
6087         (dbus_connection_send_with_reply_and_block): port to work in terms
6088         of DBusPendingCall
6089         (_dbus_connection_block_pending_call): replace block_for_reply
6090         with this
6091
6092 2005-02-14  Havoc Pennington  <hp@redhat.com>
6093
6094         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6095         properly handle looking up group information by name; fix 
6096         from j@bootlab.org
6097
6098 2005-02-13  Havoc Pennington  <hp@redhat.com>
6099
6100         * dbus/dbus-connection.c (dbus_connection_return_message) 
6101         (dbus_connection_borrow_message): hold dispatch lock while message
6102         is outstanding
6103         (_dbus_connection_block_for_reply): hold dispatch lock while we
6104         block for the reply, so nobody steals our reply
6105         (dbus_connection_pop_message): hold the dispatch lock while we
6106         pluck the message
6107
6108 2005-02-13  Havoc Pennington  <hp@redhat.com>
6109
6110         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6111         (_dbus_connection_release_dispatch)
6112         (_dbus_connection_acquire_io_path)
6113         (_dbus_connection_release_io_path): make the mutex and condvar
6114         control access to the "acquired" flag. Drop the connection lock
6115         while waiting on the condvar. Hopefully these are baby steps in
6116         roughly the right direction.
6117
6118 2005-02-13  Havoc Pennington  <hp@redhat.com>
6119
6120         * dbus/dbus-connection.c: use separate mutexes for the condition
6121         variables; this is some kind of baseline for sanity, but the
6122         condition variables still aren't used correctly afaict
6123
6124 2005-02-13  Havoc Pennington  <hp@redhat.com>
6125
6126         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6127         fix a double-unlock
6128
6129         * dbus/dbus-connection.c
6130         (_dbus_connection_detach_pending_call_unlocked): add this
6131
6132         Initial semi-correct pass through to fix thread locking; there are
6133         still some issues with the condition variable paths I'm pretty
6134         sure
6135         
6136         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6137         lock/unlock calls
6138
6139         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6140         rename to add _unlocked
6141         (struct DBusConnection): move "dispatch_acquired" and
6142         "io_path_acquired" to use only one bit each.
6143         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6144         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6145         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6146         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6147         (_dbus_connection_remove_timeout) 
6148         (_dbus_connection_toggle_timeout): drop lock when calling out to
6149         user functions; done in a hacky/bad way.
6150         (_dbus_connection_send_and_unlock): add a missing unlock
6151         (_dbus_connection_block_for_reply): add a missing unlock
6152
6153         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6154         drop lock in a hacky probably unsafe way to call out to user
6155         function
6156
6157 2005-02-12  Havoc Pennington  <hp@redhat.com>
6158
6159         * tools/dbus-tree-view.c (info_set_func_text): display more
6160         details on args
6161
6162         * bus/driver.c (bus_driver_handle_list_services): list the bus
6163         driver
6164
6165         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6166
6167         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6168         (method_info_get_n_args): new function
6169
6170 2005-02-12  Havoc Pennington  <hp@redhat.com>
6171
6172         * bus/driver.c (bus_driver_handle_introspect): add introspection
6173         for bus driver
6174
6175 2005-02-12  Havoc Pennington  <hp@redhat.com>
6176
6177         * bus/driver.c: put the signature of each bus driver method in the
6178         table of handlers and check it on incoming calls; this isn't
6179         really useful, but going to add introspect support in a minute.
6180
6181 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6182
6183         * mono/Connection.cs: The unpredictability of finalizers in mono
6184         prevents us from deterministically disconnecting the filters from
6185         the Service class's finalizer, so move tracking of filters and
6186         matches here.  Add API for that.
6187
6188         * mono/Service.cs: Remove the code, add code which calls the
6189         methods now on the Connection class.
6190
6191 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6192
6193         * python/dbus.py (class Sender): added to support dbus signals better
6194         (Bus::add_signal_receiver): added expand_args parameter which defaults
6195         to True.  When expand args is True the signal handler will pass the 
6196         message arguments as parameters to the signal handler.  If False
6197         revert to previous behavior where the signal handler must get the
6198         argument list from the message.  This is to help port applications
6199         like HAL that have a tendancy to send variable length argument lists.
6200         self._match_rule_to_receivers is now a dict of dicts.
6201         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6202         removing it from a list
6203         (Bus::_signal_func): change signal handlers so that interface,
6204         signal_name, service, path and message are packed into a Sender
6205         object and that is passed to the handler.  If expand_args is True
6206         extract the args list from the message and append it to the parameter
6207         list
6208         
6209         * python/dbus_bindings.pyx.in (class Signature): added to support 
6210         signiature types
6211         (MessageIter::__init__): changed iteration limit to match D-BUS
6212         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6213         STRUCT and VARIENT type support
6214         (MessageIter::python_value_to_dbus_sig): made recursive to support
6215         recursive types
6216         (MessageIter::append*): added Signature, dict, tuple 
6217         support
6218
6219         * python/examples/example-client.py: added examples of getting tuples
6220         and dicts
6221
6222         * python/examples/example-service.py: added examples of sending tuples
6223         and dicts
6224
6225         * python/examples/example-signal-recipient.py: Fixed to handle new
6226         signal callback format
6227
6228 2005-02-10  Havoc Pennington  <hp@redhat.com>
6229
6230         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6231         (call dbus_g_proxy_add_signal)
6232
6233         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6234         escape the hostname
6235         (_dbus_server_new_for_domain_socket): escape the path
6236
6237         * dbus/dbus-address.c (dbus_address_escape_value): new
6238         (dbus_address_unescape_value): new
6239         (dbus_parse_address): unescape values
6240
6241         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6242
6243         * doc/dbus-specification.xml: explain how to escape values in
6244         addresses
6245
6246 2005-02-10  Havoc Pennington  <hp@redhat.com>
6247
6248         * dbus/dbus-message-factory.c (generate_special): modify test to
6249         avoid using a non-basic dict key
6250
6251         * dbus/dbus-marshal-validate-util.c: add test for the below
6252
6253         * doc/dbus-specification.xml: require that dict keys are a basic
6254         type
6255
6256         * dbus/dbus-marshal-validate.c
6257         (_dbus_validate_signature_with_reason): require that dict key is a
6258         basic type
6259
6260 2005-02-10  Havoc Pennington  <hp@redhat.com>
6261
6262         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6263         change to be _and_unlock instead of _unlocked
6264
6265         * dbus/dbus-connection.c
6266         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6267         have no_update so we can find this bug quickly in future
6268
6269 2005-02-10  Havoc Pennington  <hp@redhat.com>
6270
6271         * dbus/dbus-message-util.c (verify_test_message): tests for string
6272         array
6273
6274         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6275         support for arrays of string/signature/path
6276
6277 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6278
6279         * dbus/dbus-connection.c
6280         (_dbus_connection_queue_received_message_link,
6281         _dbus_connection_message_sent): Add the path to
6282         the verbose output.
6283         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6284         _dbus_connection_send_preallocated_unlocked(), updated the
6285         dispatch status, and unlocks.  Fixes a bug where certain
6286         situations (like a broken pipe) could cause a Disconnect message
6287         to not be sent, tricking the bus into thinking a service was still
6288         there when the process had quit.
6289         (_dbus_connection_send_preallocated): Call
6290         _dbus_connection_send_preallocated_and_unlock().
6291         (_dbus_connection_send_and_unlock): Added.  Calls
6292         _dbus_connection_send_preallocated_and_unlock().
6293         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6294         (dbus_connection_send_with_reply): Update the dispatch status and
6295         unlock.
6296
6297         * mono/Service.cs (~Service): Added.  Removes the filter so that
6298         we don't get unmanaged code calling back into a GCed delegate.
6299         (RemoveFilter); Added.
6300
6301 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6302
6303         * dbus/dbus-message.c (dbus_message_iter_open_container):
6304         - Removed check for iterator type being an array because
6305         get_arg_type does not work with writer iterators
6306         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6307
6308 2005-02-07  Havoc Pennington  <hp@redhat.com>
6309
6310         * doc/dbus-specification.xml: some more language cleanups; add
6311         stuff about how to deal with invalid protocol and extension
6312         points; add _ to allowed chars in auth commands; add EXTENSION_
6313         auth command prefix
6314
6315 2005-02-06  Havoc Pennington  <hp@redhat.com>
6316
6317         * s/expected/required/ in a couple places for clarity
6318
6319 2005-02-07  Colin Walters  <walters@verbum.org>
6320
6321         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6322         sender or proposed_recipient.
6323
6324 2005-02-06  Havoc Pennington  <hp@redhat.com>
6325
6326         * dbus/dbus-message-factory.c (generate_special): more tests
6327
6328         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6329         array length that exceeds the maximum
6330
6331 2005-02-05  Havoc Pennington  <hp@redhat.com>
6332
6333         * dbus/dbus-message-factory.c (generate_special): more test cases,
6334         increasing coverage
6335
6336         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6337         reason why a signature was invalid
6338
6339         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6340         skip the length of the string before we look at it in validation
6341
6342         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6343         equal_substring
6344
6345         * dbus/dbus-message.c (_dbus_message_loader_new): default
6346         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6347
6348 2005-02-05  Havoc Pennington  <hp@redhat.com>
6349
6350         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6351         if the signature of a variant was empty
6352         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6353         struct with no element type)
6354
6355         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6356         mangled messages to break things
6357
6358 2005-02-04  Havoc Pennington  <hp@redhat.com>
6359
6360         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6361         g_quark_try_string() so it actually can return 0
6362         (dbus_g_proxy_connect_signal): ditto
6363
6364 2005-02-04  Havoc Pennington  <hp@redhat.com>
6365
6366         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6367         bogus warning
6368         (tristring_from_message): assert cleanly on null path/interface
6369         (should not be possible though I decided later)
6370         (dbus_g_proxy_dispose): move proxy manager unregistration here
6371         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6372         g_return_if_fail() checks
6373
6374 2005-02-04  Havoc Pennington  <hp@redhat.com>
6375
6376         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6377
6378         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6379         (with some minor changes)
6380
6381         * doc/dbus-specification.xml: add deprecated attribute to
6382         introspection format
6383
6384 2005-01-31  Havoc Pennington  <hp@redhat.com>
6385
6386         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6387         think it's sort of right
6388
6389 2005-01-30  Havoc Pennington  <hp@redhat.com>
6390
6391         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6392
6393 2005-01-30  Havoc Pennington  <hp@redhat.com>
6394
6395         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6396
6397         * autogen.sh: change to autotools 1.9
6398
6399         * glib/dbus-gproxy.c: completely change how signals work
6400         (dbus_g_proxy_add_signal): new function to specify signature of a
6401         signal
6402         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6403         and g_warning if the incoming message has the wrong signature.
6404
6405 2005-01-30  Havoc Pennington  <hp@redhat.com>
6406
6407         * tools/dbus-names-model.c (have_names_notify): fix this
6408
6409         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6410         up the string array handling a bit 
6411
6412 2005-01-30  Havoc Pennington  <hp@redhat.com>
6413
6414         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6415         (dbus_g_pending_call_cancel): new function
6416
6417         * dbus/dbus-glib.h: move GType decls for connection/message here;
6418         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6419         here, just kind of rationalizing how we handle all that
6420
6421         * tools/dbus-names-model.c: new file for a tree model listing the
6422         services on a bus
6423
6424         * tools/dbus-tree-view.c (model_new): use proper typing on the
6425         model rows
6426
6427 2005-01-30  Havoc Pennington  <hp@redhat.com>
6428
6429         * glib/dbus-gmain.c: add a custom GSource back that just checks
6430         whether the message queue has anything in it; otherwise, there are 
6431         cases where we won't see messages in the queue since there was no 
6432         IO visible to the glib main loop
6433
6434         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6435         increase default message timeout to 25 seconds
6436
6437 2005-01-30  Havoc Pennington  <hp@redhat.com>
6438
6439         * test/glib/test-profile.c (no_bus_stop_server): remove the
6440         warning about the g_warning that I just fixed
6441
6442         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6443         custom source, seems to be a lot easier to understand and work
6444         better.
6445
6446 2005-01-30  Havoc Pennington  <hp@redhat.com>
6447
6448         I think this main loop thing is conceptually broken, but here are 
6449         some band aids. I'll maybe rewrite it in a minute.
6450         
6451         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6452         custom GSource, so don't pass it in; confusing
6453         (gsource_server_finalize, gsource_connection_finalize): add
6454         finalize handlers that remove all the watches.  
6455
6456 2005-01-30  Havoc Pennington  <hp@redhat.com>
6457
6458         * glib/dbus-gobject.c (introspect_properties): fix the XML
6459         generated
6460
6461         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6462         which effectively detects the use of freed messages
6463
6464         * glib/dbus-gobject.c (handle_introspect): modify and return the
6465         reply message instead of the incoming message
6466
6467         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6468         gee, maybe it should SEND THE XML instead of just making a string
6469         and freeing it again ;-)
6470
6471         * tools/dbus-print-message.c (print_message): improve printing of
6472         messages
6473
6474         * configure.in: add debug-glib.service to the output
6475
6476 2005-01-30  Havoc Pennington  <hp@redhat.com>
6477
6478         dbus-viewer introspected and displayed the bus driver
6479         
6480         * dbus/dbus-object-tree.c 
6481         (object_tree_test_iteration): add tests for a handler registered on "/"
6482
6483         * dbus/dbus-object-tree.c
6484         (_dbus_decompose_path): fix to handle path "/" properly
6485         (run_decompose_tests): add tests for path decomposition
6486         
6487         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6488         properly
6489
6490         * glib/dbus-gobject.c (handle_introspect): fix quotes
6491
6492         * test/glib/run-test.sh: support launching the bus, then running
6493         dbus-viewer
6494
6495         * test/glib/test-service-glib.c (main): put in a trivial gobject
6496         subclass and register it on the connection
6497
6498         * bus/driver.c (bus_driver_handle_introspect): implement
6499         introspection of the bus driver service
6500
6501         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6502         identifiers, doctype decl
6503
6504         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6505         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6506         returning the service unchanged.
6507         (bus_driver_handle_message): remove old check for reply_serial in
6508         method calls, now the message type deals with that
6509         (bus_driver_handle_message): handle NULL interface
6510
6511         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6512
6513         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6514         -1 for len
6515
6516         * tools/dbus-viewer.c: add support for introspecting a service on
6517         a bus
6518
6519         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6520         (dbus_g_pending_call_unref): add
6521
6522 2005-01-29  Havoc Pennington  <hp@redhat.com>
6523
6524         * tools/dbus-tree-view.c: add support for displaying properties.
6525         (run dbus-viewer with an introspect xml file as arg, then resize
6526         the window so the tree elements show up, not sure what that is)
6527
6528         * glib/dbus-gobject.c (handle_introspect): return
6529         org.freedesktop.Properties and org.freedesktop.Introspectable
6530         interfaces when we are introspected.
6531
6532         * doc/dbus-specification.xml: allow empty interface name when 
6533         Get/Set a property
6534
6535 2005-01-29  Havoc Pennington  <hp@redhat.com>
6536
6537         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6538         though it uses glib, it could be extended for any binding in
6539         principle
6540
6541         * glib/dbus-gobject.c (gobject_message_function): change to the
6542         new way properties work
6543
6544         * dbus/dbus-protocol.h: add the new interfaces
6545
6546         * doc/dbus-specification.xml: document the introspection format,
6547         Introspectable interface, and add an org.freedesktop.Properties
6548         interface.
6549
6550         * glib/dbus-gparser.c: add support for a <property> element
6551
6552         * glib/dbus-gidl.c: add PropertyInfo
6553
6554         * glib/dbus-gobject.c (handle_introspect): put the outermost
6555         <node> outside the signal and property descriptions.
6556         (introspect_properties): export properties as <property> rather
6557         than as method calls
6558
6559 2005-01-28  Havoc Pennington  <hp@redhat.com>
6560
6561         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6562         related to authentication protocol
6563
6564 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6565
6566         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6567                 - BUS_ACTIVATION -> BUS_STARTER
6568                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6569                 - class MessageIter (__init__): Added recursion checking 
6570                 so we throw a nice error instead of just disconnecting from the
6571                 bus.
6572                 (get): Added arg_type parameter for recursion.
6573                 Removed the nil type
6574                 Added signiture type placeholder (not implemented)
6575                 Added struct type placeholder (not implemented)
6576                 Added varient type placeholder (not implemented)
6577                 Commented out dict type for now     
6578                 (get_element_type): renamed from get_array_type
6579                 (get_*): changed to use the dbus_message_iter_get_basic API
6580                 (get_*_array): removed in favor of recursive get_array method
6581                 (get_array): new recursive method which calls get to marshal
6582                 the elements of the array
6583                 (value_to_dbus_sig): New method returns the corrasponding
6584                 dbus signiture to a python value
6585                 (append): Comment out dict handling for now
6586                 Handle lists with the new recursive API
6587                 Comment out None handling for now
6588                 (append_nil): removed
6589                 (append_*): changed to use dbus_message_iter_append_basic API
6590                 (append_*_array): removed in favor of recursive append_array 
6591                 method
6592                 (__str__): Make it easier to print out recursive iterators
6593                 for debugging
6594                 - class Message (__str__): moved type inspection to the
6595                 MessageIter class' __str__ method
6596                 (get_iter): Added an append parameter wich defaults to False
6597                 If True use the new API's to create an append iterator
6598
6599         * python/dbus.py: Update to use new bindings API
6600                 - TYPE_ACTIVATION -> TYPE_STARTER
6601                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6602                 - class ActivationBus -> class StarterBus
6603                 - class RemoteObject (__call__): get an append iterator
6604                 - (_dispatch_dbus_method_call): get an append iterator
6605                 - class Object (emit_signal): get an append iterator
6606
6607         * python/examples/: Fixed up the examples to work with the new API
6608                 
6609 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6610
6611         * configure.in: Bump version up to 0.30.
6612
6613         * HACKING: Add a release item to bump the version number up after 
6614         a release.
6615
6616 2005-01-28  Havoc Pennington  <hp@redhat.com>
6617
6618         * doc/dbus-specification.xml: update to describe 16-bit types and
6619         dict entries
6620
6621         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6622         assertion
6623
6624         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6625         type
6626
6627         * dbus/dbus-marshal-recursive.c: implement
6628
6629 2005-01-27  Havoc Pennington  <hp@redhat.com>
6630
6631         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6632
6633         * configure.in: find the right type for 16 and 32 bit ints as well
6634         as 64
6635
6636         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6637         the 16-bit types so people don't have to stuff them in 32-bit or
6638         byte arrays.
6639
6640 2005-01-27  Havoc Pennington  <hp@redhat.com>
6641
6642         * dbus/dbus-message.c: byteswap the message if you init an
6643         iterator to read/write from it
6644         
6645         * dbus/dbus-marshal-byteswap.c: new file implementing 
6646         _dbus_marshal_byteswap()
6647
6648         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6649
6650 2005-01-26  Havoc Pennington  <hp@redhat.com>
6651         
6652         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6653         build, apparently - nobody noticed?)
6654         
6655 2005-01-26  Havoc Pennington  <hp@redhat.com>
6656
6657         * dbus/dbus-marshal-recursive.h: remove todo comment
6658
6659 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6660
6661         * Land the mono binding changes to conform to the new APIs.
6662
6663         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6664         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6665
6666         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6667         type code as a string.
6668         (InitAppending): Rename dbus_message_append_iter_init() to
6669         dbus_message_iter_init_append().
6670
6671         * mono/BusDriver.cs: Rename ServiceEventHandler to
6672         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6673         Rename ServiceOwnerChanged to NameOwnerChanged.
6674
6675         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6676         underlying C call.
6677
6678         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6679
6680         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6681         dbus_bus_acquire_service() to dbus_bus_request_name().
6682
6683         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6684         of Type.UnderlyingSystemType to get the correct element type for
6685         the array.
6686         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6687         dbus_message_get_{element|arg}_type() instead of
6688         dbus_message_iter_init_array_iterator().
6689         (Append): Replace dbus_message_iter_append_array() with
6690         dbus_message_iter_open_container() and
6691         dbus_message_iter_close_container().
6692
6693         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6694         types have been removed.
6695         
6696         * mono/DBusType/*.cs: Replace calls of
6697         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6698         but specify the type in the DllImport extern declaration.  Ditto
6699         for dbus_message_iter_append_[type]() ->
6700         dbus_message_iter_append_basic().
6701
6702         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6703         NameOwnerChangedHandler.
6704
6705 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6706
6707         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6708                 - get_base_service -> get_unique_name
6709                 - bus_get_base_service -> bus_get_unique_name
6710                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6711                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6712                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6713                 - bus_activate_service -> bus_start_service_by_name
6714                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6715                 - bus_acquire_service -> bus_request_name
6716                 - dbus_bus_acquire_service -> dbus_bus_request_name
6717                 - bus_service_exists -> bus_name_has_owner
6718                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6719
6720         * python/dbus.py: Rename of methods
6721                 - activate_service -> start_service_by_name
6722                 - bus_acquire_service -> bus_request_name
6723                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6724                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6725
6726         
6727 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6728
6729         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6730         signature for the method that can't be found.
6731
6732         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6733         the message has any arguments, we need to call
6734         _dbus_type_reader_get_current_type(), not
6735         _dbus_type_reader_has_next().
6736
6737 2005-01-24  Havoc Pennington  <hp@redhat.com>
6738
6739         * dbus/dbus-message-factory.c: more testing of message validation
6740
6741         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6742         header
6743
6744 2005-01-23  Havoc Pennington  <hp@redhat.com>
6745
6746         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6747         get this all working, not many tests in the framework yet though
6748
6749 2005-01-22  Havoc Pennington  <hp@redhat.com>
6750
6751         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6752         tutorial, based on work from David Wheeler.
6753
6754 2005-01-21  Havoc Pennington  <hp@redhat.com>
6755
6756         * dbus/dbus-bus.c: add more return_if_fail checks
6757
6758         * dbus/dbus-message.c (load_message): have the "no validation"
6759         mode (have to edit the code to toggle the mode for now though)
6760
6761         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6762         skips all validation; I want to use this at least for benchmark
6763         baseline, I'm not sure if it should be a publicly-available switch.
6764
6765 2005-01-21  Havoc Pennington  <hp@redhat.com>
6766
6767         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6768         toplevel doxygen group as the low-level API stuff
6769
6770         * dbus/dbus.h: note that libdbus is the low-level API
6771
6772 2005-01-20  Havoc Pennington  <hp@redhat.com>
6773
6774         * update-dbus-docs.sh: script to update docs on the web site, only
6775         works for me though. neener.
6776
6777 2005-01-20  Havoc Pennington  <hp@redhat.com>
6778
6779         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6780         code can reveal bugs in it
6781
6782 2005-01-20  Havoc Pennington  <hp@redhat.com>
6783
6784         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6785         select() version, patches from Tor Lillqvist
6786
6787 2005-01-20  Havoc Pennington  <hp@redhat.com>
6788
6789         * doc/dbus-tutorial.xml: replace > with &gt;
6790
6791         * bus/services.c (bus_registry_acquire_service): validate the name
6792         and return a better error if it's no good.
6793
6794         * doc/dbus-specification.xml: note NO_AUTO_START change
6795
6796         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6797         from AUTO_START, we're toggling the default
6798
6799         * bus/dispatch.c: adapt the tests to change of auto-start default
6800
6801 2005-01-18  Havoc Pennington  <hp@redhat.com>
6802
6803         * rename dbus-daemon-1 to dbus-daemon throughout
6804
6805 2005-01-18  Havoc Pennington  <hp@redhat.com>
6806
6807         * Throughout, grand renaming to strip out the use of "service",
6808         just say "name" instead (or "bus name" when ambiguous).  Did not
6809         change the internal code of the message bus itself, only the
6810         programmer-facing API and messages.
6811         
6812         * doc/dbus-specification.xml: further update the message bus section
6813         
6814         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6815         in error case
6816
6817 2005-01-17  Havoc Pennington  <hp@redhat.com>
6818
6819         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6820         ever
6821
6822         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6823         "invalid name character" not only non-ASCII
6824
6825         * doc/dbus-specification.xml: further update spec, message bus 
6826         parts are still out-of-date but the marshaling etc. stuff is now
6827         accurate-ish
6828
6829 2005-01-17  Havoc Pennington  <hp@redhat.com>
6830
6831         * doc/dbus-specification.xml: partially update spec
6832
6833 2005-01-17  Havoc Pennington  <hp@redhat.com>
6834
6835         * Throughout, align variant bodies according to the contained
6836         type, rather than always to 8. Should save a fair bit of space in
6837         message headers.
6838         
6839         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6840         fix handling of case where p == end
6841
6842         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6843
6844 2005-01-17  Havoc Pennington  <hp@redhat.com>
6845
6846         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6847
6848         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6849         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6850         are marshaling/unmarshaling a boolean.
6851
6852 2005-01-16  Havoc Pennington  <hp@redhat.com>
6853
6854         This is about it on what can be disabled/deleted from libdbus
6855         easily, back below 150K anyhow. Deeper cuts are more work than 
6856         just turning the code off as I've done here.
6857         
6858         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6859         signed int convenience funcs
6860
6861         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6862         verbose mode
6863
6864         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6865         things out of libdbus
6866
6867         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6868         
6869         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6870         tests-enabled-only, though it should probably be deleted)
6871
6872         * dbus/dbus-message-util.c: same stuff
6873
6874         * dbus/dbus-auth-util.c: same stuff
6875
6876 2005-01-16  Havoc Pennington  <hp@redhat.com>
6877
6878         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6879
6880         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6881         way for stripping down dbus-userdb.c stuff included in libdbus.
6882         Rename _dbus_parse_uid for consistency.
6883
6884 2005-01-16  Havoc Pennington  <hp@redhat.com>
6885
6886         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6887         name the assertion failed in
6888
6889         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6890         (_dbus_return_val_if_fail): assert that the name of the function
6891         containing the check doesn't start with '_', since we only want to 
6892         use checks on public functions
6893         
6894         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6895         checks to assertions
6896
6897         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6898         change checks to asserts for private function
6899
6900         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6901         to asserts for private function
6902
6903         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6904         broken assertion that was breaking make check
6905         (_dbus_type_reader_array_is_empty): remove this rather than fix
6906         it, was only used in assertions
6907
6908 2005-01-16  Havoc Pennington  <hp@redhat.com>
6909
6910         * test/unused-code-gc.py: hacky script to find code that's used
6911         only by the bus (not libdbus) or used only by tests or not used at
6912         all. It has some false alarms, but looks like we can clean up a
6913         lot of size from libdbus.
6914
6915         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6916         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6917         
6918 2005-01-16  Havoc Pennington  <hp@redhat.com>
6919
6920         * Add and fix docs according to Doxygen warnings throughout
6921         source.
6922         
6923         * dbus/dbus-marshal-recursive.c
6924         (_dbus_type_reader_array_is_empty): change this to just call
6925         array_reader_get_array_len() and make it static
6926
6927         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6928         from get_array_type
6929         (dbus_message_iter_init_append): rename from append_iter_init
6930
6931         * dbus/dbus-marshal-recursive.c
6932         (_dbus_type_reader_get_element_type): rename from
6933         _dbus_type_reader_get_array_type
6934
6935 2005-01-15  Havoc Pennington  <hp@redhat.com>
6936
6937         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6938
6939         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6940         when DBUS_DISABLE_ASSERT
6941         (_dbus_marshal_set_basic): be sure we align for the string length
6942
6943         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6944         this look faster
6945
6946         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6947         inline macro version
6948         (_dbus_string_set_byte): provide inline macro version
6949
6950 2005-01-15  Havoc Pennington  <hp@redhat.com>
6951
6952         * Land the new message args API and type system.
6953
6954         This patch is huge, but the public API change is not 
6955         really large. The set of D-BUS types has changed somewhat, 
6956         and the arg "getters" are more geared toward language bindings;
6957         they don't make a copy, etc.
6958
6959         There are also some known issues. See these emails for details
6960         on this huge patch:
6961         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6962         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6963         
6964         * dbus/dbus-marshal-*: all the new stuff
6965
6966         * dbus/dbus-message.c: basically rewritten
6967
6968         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6969         freed blocks to be all non-nul bytes so using freed memory is less
6970         likely to work right
6971
6972         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6973         DBUS_FAIL_MALLOC=N environment variable, so you can do
6974         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6975         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6976         thorough.
6977
6978         * qt/message.cpp: port to the new message args API
6979         (operator<<): use str.utf8() rather than str.unicode()
6980         (pretty sure this is right from the Qt docs?)
6981
6982         * glib/dbus-gvalue.c: port to the new message args API
6983
6984         * bus/dispatch.c, bus/driver.c: port to the new message args API
6985
6986         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6987         "locked" flag to TRUE and align_offset to 0; I guess we never
6988         looked at these anyhow, but seems cleaner.
6989
6990         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6991         move allocation padding macro to this header; use it to implement
6992         (_DBUS_STRING_STATIC): ability to declare a static string.
6993
6994         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6995         change to return TRUE if the interface is not set.
6996
6997         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6998         to dbus-marshal-validate.[hc]
6999
7000         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7001         dbus-internals.c
7002
7003         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7004         to dbus-marshal-*.[hc]
7005
7006         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7007         function here from dbus-marshal.c
7008
7009 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7010
7011         * NEWS: Update for 0.23.
7012
7013         * configure.in: Release 0.23.
7014
7015 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7016
7017         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7018         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7019         behind.
7020
7021         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7022         uninstall"
7023
7024         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7025         is an enum, get the enum's underlying type.  Another mono
7026         1.1.3 fix.
7027
7028 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7029
7030         Patch from Sjoerd Simons <sjoerd@luon.net>
7031
7032         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7033         DESTDIR.  It breaks stuff.
7034
7035 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7036
7037         Patch from Tambet Ingo <tambet@ximian.com>
7038
7039         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7040         calling type.GetElementType().  The code previously depended on
7041         broken Mono behavior, which was fixed in Mono 1.1.3.
7042
7043         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7044         Activator.CreateInstance() so that the class's constructor is
7045         called with the right parameters.
7046
7047 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7048
7049         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7050
7051         * dbus/dbus-connection.c
7052         (_dbus_connection_queue_received_message_link): Call
7053         _dbus_connection_remove_timeout() instead of the _locked()
7054         variant, since it's always called from
7055         _dbus_connection_handle_watch(), which handles the locking.
7056         Removed the _locked() variant since it's no longer used.
7057
7058 2005-01-03  Havoc Pennington  <hp@redhat.com>
7059
7060         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7061         return
7062         
7063 2004-12-26  Havoc Pennington  <hp@redhat.com>
7064
7065         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7066
7067 2005-01-03  Havoc Pennington  <hp@redhat.com>
7068
7069         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7070         floating point
7071
7072         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7073
7074 2005-01-02  Havoc Pennington  <hp@redhat.com>
7075
7076         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7077
7078 2005-01-01  Havoc Pennington  <hp@redhat.com>
7079
7080         * configure.in: add -Wfloat-equal
7081
7082 2005-01-01  Havoc Pennington  <hp@redhat.com>
7083
7084         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7085         for a variety of reasons '==' doesn't do this.
7086
7087 2004-12-31  Havoc Pennington  <hp@redhat.com>
7088
7089         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7090         I keep wishing I had
7091
7092 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7093
7094         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7095
7096 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7097
7098         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7099         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7100         dbus-protocol.h.  Because they are defines and not enums they are not
7101         autogenerated.
7102
7103 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7104
7105         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7106         dbus_bus_activate_service
7107
7108         * python/dbus.py (Bus.activate_service): activate a service on the
7109         bus.
7110
7111 2004-12-24  Havoc Pennington  <hp@redhat.com>
7112
7113         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7114         file format has also changed and I haven't adapted to that yet
7115         
7116         * Makefile.am: load .gcno files from latest gcc
7117
7118 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7119         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7120
7121         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7122         lowlevel binding
7123
7124         * python/dbus.py (get_unix_user): Added binding to 
7125         call dbus_bindings.bus_get_unix_user
7126
7127         * python/extract.py: Modified the proto_pat regex to
7128         handle unsigned long
7129
7130 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7131
7132         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7133         better POSIX compliance.
7134
7135 2004-12-19  Havoc Pennington  <hp@redhat.com>
7136
7137         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7138         (_dbus_string_insert_8_aligned): new functions
7139
7140         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7141
7142 2004-12-18  Havoc Pennington  <hp@redhat.com>
7143
7144         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7145         macro
7146
7147         * dbus/dbus-message.c: fix a comment, and add a still-unused
7148         not-implemented function
7149
7150         * dbus/dbus-marshal.h: fix comment
7151
7152         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7153
7154 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7155
7156         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7157         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7158         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7159         Type.UnderlyingSystemType to get the actual system type
7160         underneath.  This code previously depended on the broken Mono
7161         behavior, which was fixed in 1.1.3.
7162
7163 2004-11-27  Havoc Pennington  <hp@redhat.com>
7164
7165         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7166         are disabled
7167         (_dbus_string_get_const_data): inline when asserts are disabled
7168
7169         * dbus/dbus-message.c: record the _dbus_current_generation of
7170         creation so we can complain if dbus_shutdown() is used improperly.
7171         Do this only if checks are enabled.
7172
7173         * dbus/dbus-connection.c: ditto
7174         
7175 2004-11-26  Havoc Pennington  <hp@redhat.com>
7176
7177         * test/glib/test-profile.c: add with_bus mode to profile echoes
7178         that go through the bus.
7179
7180         * test/glib/run-test.sh: add ability to run test-profile
7181
7182         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7183         config file reload.
7184
7185 2004-11-26  Havoc Pennington  <hp@redhat.com>
7186
7187         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7188         thing was implemented
7189
7190 2004-11-26  Havoc Pennington  <hp@redhat.com>
7191
7192         * test/glib/test-profile.c: tweak a bit, add support for some
7193         made-up minimal malloc overhead with plain sockets, since in 
7194         real life some sort of buffers are unavoidable thus we could 
7195         count them in the theoretical best case
7196
7197 2004-11-26  Havoc Pennington  <hp@redhat.com>
7198
7199         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7200         where I was trying to cache one too many messages
7201
7202 2004-11-26  Havoc Pennington  <hp@redhat.com>
7203
7204         * dbus/dbus-message.c: reimplement message cache as an array which 
7205         makes the cache about twice as fast and saves maybe 1.5% overall
7206
7207 2004-11-26  Havoc Pennington  <hp@redhat.com>
7208
7209         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7210         message cache lock here
7211
7212 2004-11-26  Havoc Pennington  <hp@redhat.com>
7213
7214         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7215         the "char byte_order" next to each other to save 4 bytes
7216         (dbus_message_new_empty_header): reduce preallocation, since the
7217         message cache should achieve a similar effect
7218         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7219         message cache that keeps a few DBusMessage around in a pool,
7220         another 8% speedup or so.
7221
7222         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7223
7224 2004-11-25  Havoc Pennington  <hp@redhat.com>
7225
7226         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7227         to write, without reading or blocking, try it before the poll()
7228         and skip the poll() if nothing remains to write. This is about a
7229         3% speedup in the echo client/server
7230
7231 2004-11-25  Havoc Pennington  <hp@redhat.com>
7232
7233         The primary change here is to always write() once before adding
7234         the write watch, which gives us about a 10% performance increase.
7235         
7236         * dbus/dbus-transport-unix.c: a number of modifications to cope
7237         with removing messages_pending
7238         (check_write_watch): properly handle
7239         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7240         messages_pending stuff
7241         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7242         AUTHENTICATED cases
7243         (unix_handle_watch): after writing, see if the write watch can be
7244         removed
7245         (unix_do_iteration): assert that write_watch/read_watch are
7246         non-NULL rather than testing that they aren't, since they 
7247         aren't allowed to be NULL. check_write_watch() at the end so 
7248         we add the watch if we did not finish writing (e.g. got EAGAIN)
7249
7250         * dbus/dbus-transport-protected.h: remove messages_pending call,
7251         since it resulted in too much inefficient watch adding/removing; 
7252         instead we now require that the transport user does an iteration 
7253         after queueing outgoing messages, and after trying the first
7254         write() we add a write watch if we got EAGAIN or exceeded our 
7255         max bytes to write per iteration setting
7256
7257         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7258         function
7259
7260         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7261         freed and then accessed, valgrind flagged this bug, fix it
7262
7263         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7264         as the last valid field plus 1, where really it is equal to the
7265         last valid field. Corrects some message corruption issues.
7266
7267         * dbus/dbus-mainloop.c: verbosity changes
7268
7269         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7270         instead of aborting in one of the test codepaths
7271
7272         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7273         caused not printing the pid ever again if a verbose was missing
7274         the newline at the end
7275         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7276
7277         * dbus/dbus-connection.c: verbosity changes; 
7278         (dbus_connection_has_messages_to_send): new function
7279         (_dbus_connection_message_sent): no longer call transport->messages_pending
7280         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7281         try to write() immediately, so we can avoid the write watch. This
7282         is the core purpose of this patchset
7283         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7284         dump the outgoing message queue, so nobody will get confused
7285         trying to send them or thinking stuff is pending to be sent
7286
7287         * bus/test.c: verbosity changes
7288
7289         * bus/driver.c: verbosity/assertion changes
7290
7291         * bus/dispatch.c: a bunch of little tweaks to get it working again
7292         because this patchset changes when/where you need to block.
7293
7294 2004-11-23  Havoc Pennington  <hp@redhat.com>
7295
7296         * test/glib/test-profile.c: modify to accept a plain_sockets
7297         argument in which case it will bench plain sockets instead of
7298         libdbus, for comparison purposes.
7299
7300 2004-11-22  Havoc Pennington  <hp@redhat.com>
7301
7302         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7303         threads for more time, so sysprof can get a grip on it.
7304
7305         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7306         pointless variable
7307
7308 2004-11-13  Havoc Pennington  <hp@redhat.com>
7309
7310         * test/glib/test-profile.c: fix this thing up a bit
7311
7312         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7313         preallocation sizes by a fair bit; not sure if this will be an
7314         overall performance win or not, but it does reduce reallocs.
7315
7316         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7317         the test hack that forced constant realloc if asserts are
7318         disabled, so we can profile sanely. Sprinkle in some
7319         _DBUS_UNLIKELY() which are probably pointless, but before I
7320         noticed the real performance problem I put them in.
7321         (_dbus_string_validate_utf8): micro-optimize this thing a little
7322         bit, though callgrind says it didn't help; then special-case
7323         ascii, which did help a lot; then be sure we detect nul bytes as
7324         invalid, which is a bugfix.
7325         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7326         superstition; use memset to nul the padding instead of a manual
7327         loop.
7328         (_dbus_string_get_length): inline this as a
7329         macro; it showed up in the profile because it's used for loop
7330         tests and so forth
7331
7332 2004-11-10  Colin Walters  <walters@verbum.org>
7333
7334         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7335         for extra paranoia.
7336
7337 2004-11-09  Colin Walters  <walters@verbum.org>
7338
7339         * dbus/dbus-string.c (_dbus_string_get_length): New
7340         function, writes DBusString to C buffer.
7341
7342         * dbus/dbus-string.h: Prototype it.
7343
7344         * dbus/dbus-message.c (dbus_message_type_to_string): New
7345         function, converts message type into C string.
7346
7347         * dbus/dbus-message.h: Prototype it.
7348
7349         * bus/selinux.c (bus_selinux_check): Take source pid,
7350         target pid, and audit data.  Pass audit data to
7351         avc_has_perm.
7352         (log_audit_callback): New function, appends extra
7353         audit information.
7354         (bus_selinux_allows_acquire_service): Also take
7355         service name, add it to audit data.
7356         (bus_selinux_allows_send): Also take message
7357         type, interface, method member, error name,
7358         and destination, and add them to audit data.
7359         (log_cb): Initialize func_audit.
7360         
7361         * bus/selinux.h (bus_selinux_allows_acquire_service)
7362         (bus_selinux_allows_send): Update prototypes 
7363
7364         * bus/services.c (bus_registry_acquire_service): Pass
7365         service name to bus_selinux_allows_acquire_service.
7366
7367         * bus/bus.c (bus_context_check_security_policy): Pass
7368         additional audit data.  Move assignment of dest
7369         to its own line.
7370
7371 2004-11-07  Colin Walters  <walters@verbum.org>
7372
7373         * dbus/dbus-transport-unix.c (do_authentication): Always
7374         initialize auth_completed.
7375         
7376 2004-11-07  Colin Walters  <walters@verbum.org>
7377
7378         * bus/bus.c (load_config): Break into three
7379         separate functions: process_config_first_time_only,
7380         process_config_every_time, and process_config_postinit.
7381         (process_config_every_time): Move call of
7382         bus_registry_set_service_context_table into
7383         process_config_postinit.
7384         (process_config_postinit): New function, does
7385         any processing that needs to happen late
7386         in initialization (and also on reload).
7387         (bus_context_new): Instead of calling load_config,
7388         open config parser here and call process_config_first_time_only
7389         and process_config_every_time directly.  Later, after
7390         we have forked but before changing UID,
7391         invoke bus_selinux_full_init, and then call
7392         process_config_postinit.
7393         (bus_context_reload_config): As in bus_context_new,
7394         load parse file inside here, and call process_config_every_time
7395         and process_config_postinit.
7396
7397         * bus/services.h, bus/services.c
7398         (bus_registry_set_service_context_table): Rename
7399         from bus_registry_set_sid_table.  Take string hash from config
7400         parser, and convert them here into SIDs.
7401
7402         * bus/config-parser.c (struct BusConfigParser): Have
7403         config parser only store a mapping of service->context
7404         string.
7405         (merge_service_context_hash): New function.
7406         (merge_included): Merge context string hashes instead
7407         of using bus_selinux_id_table_union.
7408         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7409         simply create a new string hash.
7410         (bus_config_parser_unref): Unref it.
7411         (start_selinux_child): Simply insert strings into hash,
7412         don't call bus_selinux_id_table_copy_over.
7413
7414         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7415         (bus_selinux_id_table_copy_over): Delete.
7416
7417 2004-11-03  Colin Walters  <walters@verbum.org>
7418
7419         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7420         variables.
7421         
7422 2004-11-03  Colin Walters  <walters@verbum.org>
7423
7424         * bus/test-main.c (test_pre_hook): Fix test logic,
7425         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7426
7427 2004-11-02  Colin Walters  <walters@redhat.com>
7428
7429         * bus/selinux.c (bus_selinux_init): Split into two functions,
7430         bus_selinux_pre_init and bus_selinux_post_init.
7431         (bus_selinux_pre_init): Just determine whether SELinux is
7432         enabled.
7433         (bus_selinux_post_init): Do everything else.
7434
7435         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7436         config file, and bus_selinux_post_init after.  This ensures that
7437         we don't lose the policyreload notification thread that
7438         bus_selinux_init created before forking previously.
7439         
7440         * bus/test-main.c (test_pre_hook): Update for split.
7441
7442 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7443
7444         Patch from Johan Fischer <linux@fischaz.com>
7445         
7446         * mono/doc/Makefile.am (install-data-local): Added directory
7447         install for DESTDIR
7448
7449 2004-10-29  Colin Walters  <walters@redhat.com>
7450
7451         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7452         parameter for fd to write pid to.       
7453
7454         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7455         
7456         * bus/bus.c (bus_context_new): Pass print_pid_fd
7457         to _dbus_become_daemon (bug #1720)
7458
7459 2004-10-29  Colin Walters  <walters@redhat.com>
7460
7461         Patch from Ed Catmur <ed@catmur.co.uk>
7462
7463         * mono/doc/Makefile.am (install-data-local): Handle
7464         DESTDIR.
7465
7466 2004-10-29  Colin Walters  <walters@redhat.com>
7467
7468         * bus/.cvsignore, qt/.cvsignore: Update.
7469
7470 2004-10-29  Colin Walters  <walters@redhat.com>
7471
7472         Patch from Kristof Vansant <de_lupus@pandora.be>
7473
7474         * configure.in: Detect Slackware.
7475         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7476         * bus/rc.messagebus.in: New file.
7477
7478 2004-10-29  Colin Walters  <walters@redhat.com>
7479
7480         * tools/dbus-monitor.c (filter_func): Return
7481         DBUS_HANDLER_RESULT_HANDLED in filter function
7482         for now.  See:
7483         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7484
7485 2004-10-29  Colin Walters  <walters@redhat.com>
7486
7487         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7488
7489         * bus/services.c (bus_registry_acquire_service): 
7490         Correctly retrieve service name from DBusString
7491         for printing.
7492
7493 2004-10-29  Colin Walters  <walters@redhat.com>
7494
7495         * dbus/dbus-glib.h: Update documentation to not
7496         refer to internal APIs.
7497
7498 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7499
7500         * mono/Arguments.cs (GetDBusTypeConstructor):
7501         type.UnderlyingSystemType will return "System.Byte" if you do it
7502         on "byte[]", which is not what we want.  So check the type.IsArray
7503         property and use System.Array instead.
7504
7505 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7506
7507         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7508         the DBusUserInfo structure since this is passed into the function.
7509         This would cause a double free when the function that allocated
7510         the structure would try to free it when an error occured.
7511
7512         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7513         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7514         for service activation to avoid 32bit/64bit parallel install issues
7515
7516 2004-10-21  Colin Walters  <walters@verbum.org>
7517
7518         * AUTHORS: Fix my email address, the @gnu.org one
7519         has been bouncing for some time.  Also add J5.
7520         
7521 2004-10-21  Colin Walters  <walters@verbum.org>
7522
7523         * dbus/dbus-transport-unix.c (do_authentication): Return
7524         authentication status to callers.
7525         (unix_handle_watch): If we completed authentication this round,
7526         don't do another read.  Instead wait until the next iteration,
7527         after we've read any pending data in the auth buffer.
7528         (unix_do_iteration): Ditto.
7529         (unix_handle_watch): Updated for new do_authentication prototype.
7530
7531 2004-10-18  Colin Walters  <walters@verbum.org>
7532
7533         * bus/selinux.c (bus_selinux_enabled): Handle
7534         --disable-selinux case.
7535         
7536 2004-10-18  Colin Walters  <walters@verbum.org>
7537
7538         * bus/selinux.h: Add bus_selinux_enabled.
7539         
7540         * bus/selinux.c (bus_selinux_enabled): Implement it.
7541         
7542         * bus/config-parser.c (struct include): Add
7543         if_selinux_enabled member.
7544         (start_busconfig_child): Parse if_selinux_enabled
7545         attribute for include.
7546         (bus_config_parser_content): Handle it.
7547
7548         * bus/session.conf.in, bus/system.conf.in: Add
7549         inclusion of context mapping to default config files;
7550         conditional on SELinux being enabled.
7551         
7552         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7553         
7554         * test/data/invalid-config-files/badselinux-1.conf, 
7555         test/data/invalid-config-files/badselinux-2.conf:
7556         Test files for bad syntax.
7557         
7558 2004-10-17  Colin Walters  <walters@verbum.org>
7559
7560         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7561         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7562         format specifier mismatches.
7563
7564 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7565
7566         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7567         format string.
7568
7569         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7570         pointer (bug #1540, Leonardo Boiko).
7571
7572 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7573
7574         * mono/BusDriver.cs: Changed BusDriver struct to remove
7575         the ServiceCreated and ServiceDeleted events and replace them
7576         with the new ServiceOwnerChanged event.
7577
7578         * mono/example/BusListener.cs: Added a new example program,
7579         which listens for and reports any ServiceOwnerChanged events
7580         on the bus driver.
7581
7582         * mono/example/Makefile.am (DESTDIR): Build changes for the
7583         new BusListener.cs example.
7584
7585 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7586
7587         * bus/signals.c (bus_match_rule_parse): validate the components of
7588         match rules (bug #1439).
7589
7590         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7591
7592 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7593
7594         * doc/dbus-specification.xml: document ServiceOwnerChanged
7595         signal.
7596         
7597         * bus/driver.c, bus/driver.h, bus/services.c: Use
7598         ServiceOwnerChanged signal instead of ServiceCreated and
7599         ServiceDeleted.
7600         
7601         * bus/dispatch.c: update testcase for the new signal.
7602
7603 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7604
7605         Patch from Nat Friedman <nat@novell.com>
7606
7607         * mono/Makefile.am: A number of small build fixes to allow "make
7608         distcheck" to succeed.
7609
7610         * mono/example/Makefile.am: "make distcheck" fixes.
7611
7612         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7613         key in @srcdir@.
7614
7615         * test/Makefile.am: "make distcheck" fixes.
7616
7617 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7618
7619         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7620
7621         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7622
7623         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7624         messages after the first one (bug #1389).
7625         
7626         * bus/dispatch.c (check_double_hello_message): add a test case for
7627         the double hello message bug.
7628         (check_existent_service_activation): fix check of spawning error.
7629         
7630 2004-09-16  David Zeuthen  <david@fubar.dk>
7631
7632         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7633
7634 2004-09-12  David Zeuthen  <david@fubar.dk>
7635
7636         Patch from Kay Sievers <kay.sievers@vrfy.org>
7637
7638         * bus/bus.c (bus_context_new):
7639         * bus/bus.h:
7640         * bus/main.c (usage)
7641         (main):
7642         Add commandline option --nofork to override configuration file
7643         setting.
7644
7645 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7646
7647         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7648         compilers don't like it (bug #974).
7649
7650 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7651
7652         * qt/connection.*: Applied patch by Jérôme Lodewyck
7653         <lodewyck@clipper.ens.fr> to integrate an existing
7654         connection into the Qt eventloop
7655
7656 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7657
7658         * mono/BusDriver.cs: Added.  This is a class for interacting with
7659         the org.freedesktop.DBus service.
7660
7661         * mono/Message.cs: Added a mechanism to expose the message that is
7662         currently being dispatched via the static Message.Current
7663         property.  Added Message.Sender and Message.Destination
7664         properties.
7665
7666         * mono/Handler.cs: Expose the dispatched message via
7667         Message.Current when handling method calls.
7668
7669         * mono/Service.cs: Expose the dispatched message via
7670         Message.Current when handling signal emissions.
7671         
7672         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7673         Connection.BaseService property.
7674
7675 2004-08-28  Havoc Pennington  <hp@redhat.com>
7676
7677         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7678
7679         More fixes from Steve Grubb
7680         
7681         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7682         (_dbus_listen_tcp_socket): fix fd leak
7683
7684         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7685         EINTR to a bit lower in the code
7686
7687 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7688
7689         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7690         TRUE if we are inquiring about the existence of the built-in
7691         org.freedesktop.DBus service.
7692
7693 2004-08-25  John Palmieri  <johnp@redhat.com>
7694         * bus/config-parser.c:
7695         (struct PolicyType): Add POLICY_CONSOLE
7696         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7697         (start_busconfig_child): Sets up console element when
7698         <policy at_console=""> is encountered in a policy file
7699         (append_rule_from_element): Convert console elements to console
7700         rules.
7701
7702         * bus/policy.c: 
7703         (bus_policy_create_client_policy): Add console rules to the client
7704         policy based on if the client is at the console
7705         (bus_policy_append_console_rule): New function for adding a
7706         console rule to a policy
7707         (bus_policy_merge): Handle console rule merging
7708
7709         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7710         where we check for console user files
7711         
7712         * dbus/dbus-sysdeps.c:
7713         (_dbus_file_exists): New function which checks if the given
7714         file exists
7715         (_dbus_user_at_console): New function which does the system
7716         specific process of checking if the user is at the console
7717
7718         * dbus/dbus-userdb.c:
7719         (_dbus_is_console_user): New function converts a UID to user name
7720         and then calls the system specific _dbus_user_at_console to 
7721         see if the user is at the console and therefor a console user
7722
7723 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7724
7725         * bus/config-parser.c (set_limit):
7726         * bus/dbus-daemon-1.1.in:
7727         * test/data/valid-config-files/many-rules.conf: set the
7728         max_match_rules_per_connection limt from the config file. 
7729
7730         * doc/busconfig.dtd: update the DTD.
7731
7732         * bus/driver.c: remove some unused variables.
7733
7734 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7735
7736         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7737         it's been replaced by dbus_g_bus_get
7738
7739 2004-08-23  Colin Walters  <walters@redhat.com>
7740
7741         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7742
7743         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7744
7745         * bus/selinux.c: Create a thread for policy reload notification.
7746         (bus_selinux_get_policy_root): Implement.
7747
7748         * bus/config-parser.c (start_busconfig_child)
7749         (bus_config_parser_content): Support SELinux-root relative
7750         inclusion.
7751
7752         * configure.in <HAVE_SELINUX>: Add -lpthread.
7753         
7754         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7755         (test_post_hook): Move memory checking into here.
7756         (test_pre_hook, test_post_hook): Move SELinux checks in
7757         here, but conditional on a DBUS_TEST_SELINUX environment
7758         variable.  Unfortunately we can't run the SELinux checks
7759         as a normal user, since they won't have any permissions
7760         for /selinux.  So this will have to be tested manually
7761         for now, until we have virtualization for most of
7762         libselinux.
7763         
7764 2004-08-23  Havoc Pennington  <hp@redhat.com>
7765
7766         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7767         drop supplementary groups, suggested by Steve Grubb
7768
7769 2004-08-20  Colin Walters  <walters@redhat.com>
7770
7771         * bus/config-parser.c (start_busconfig_child): Remove some unused
7772         variables.
7773         
7774         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7775         warning.
7776
7777 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7778
7779         * configure.in: If --enable-mono is passed in, if we can't find
7780         mono error out.
7781
7782         * mono/Makefile.am: Use /gacutil to install assemblies into the
7783         GAC and not /root.
7784
7785 2004-08-12  Havoc Pennington  <hp@redhat.com>
7786
7787         * NEWS: update for 0.22
7788
7789         * configure.in: release 0.22
7790
7791 2004-08-11  Colin Walters  <walters@redhat.com>
7792
7793         * tools/dbus-send.c (main, usage): Add --reply-timeout
7794         argument.
7795
7796 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7797
7798         * bus/bus.c (process_config_first_time_only): get rid of an unused
7799         DBusError that was causing a memoy leak (bug #989).
7800
7801         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7802         fix compilation on Solaris/Forte C (bug #974)
7803
7804         * bus/main.c (main): plug two minuscule memleaks.
7805
7806 2004-08-10  Havoc Pennington  <hp@redhat.com>
7807
7808         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7809
7810 2004-08-09  Havoc Pennington  <hp@redhat.com>
7811
7812         * COPYING: switch to Academic Free License version 2.1 instead of
7813         2.0, to resolve complaints about patent termination clause.
7814
7815 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7816
7817         * README: added documentation for the --enable-python 
7818         configure switch.
7819
7820 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7821
7822         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7823         _unref in the SELinux support.
7824
7825         * doc/busconfig.dtd: update DTD for SELinux support.
7826
7827         * bus/config-loader-libxml.c: fix error handler and parser
7828         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7829
7830         * configure.in: remove the warning about libxml2.
7831
7832         * dbus/dbus-bus.c: silence doxygen warning.
7833
7834 2004-07-31  Colin Walters  <walters@redhat.com>
7835
7836         * configure.in: Move #error in SELinux check to its own line.
7837
7838 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7839
7840         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7841         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7842         dbus_error_set.
7843
7844         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7845         broken by the change in the _SET_OOM macros.
7846
7847 2004-07-31  Colin Walters  <walters@redhat.com>
7848
7849         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7850         BUS_SET_OOM.
7851
7852 2004-07-31  Colin Walters  <walters@redhat.com>
7853
7854         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7855         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7856         AC_MSG_CHECKING.
7857
7858 2004-07-24  Havoc Pennington  <hp@redhat.com>
7859
7860         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7861
7862         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7863         functionality
7864
7865         * configure.in: add --enable-selinux
7866         
7867         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7868
7869         * bus/main.c (main): initialize and shut down selinux
7870
7871         * bus/connection.c: store SELinux ID on each connection, to avoid 
7872         repeated getting of the string context and converting it into 
7873         an ID
7874
7875         * bus/bus.c (bus_context_get_policy): new accessor, though it
7876         isn't used
7877         (bus_context_check_security_policy): check whether the security
7878         context of sender connection can send to the security context of
7879         recipient connection
7880
7881         * bus/config-parser.c: add parsing for <selinux> and <associate>
7882         
7883         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7884         implement dbus_connection_get_unix_fd()
7885
7886         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7887         function, used by the selinux stuff
7888         
7889 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7890
7891         * bus/config-loader-libxml.c: complete the implementation of
7892         libxml backend for config file loader. Doesn't work with full OOM
7893         test yet. 
7894         
7895         * configure.in: change error when selecting libxml into a warning.
7896         
7897         * test/data/invalid-config-files: add two non-well-formed XML
7898         files. 
7899         
7900         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7901         
7902         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7903         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7904         be necessary to read all the buffer. (bug #894)
7905
7906         * bus/activation.c (bus_activation_activate_service): fix a
7907         potential assertion failure (bug #896). Small optimization in the
7908         case of auto-activation messages.
7909
7910         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7911         add test case for byte-through-vararg bug (#901). patch by Kimmo
7912         Hämäläinen. 
7913
7914 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7915
7916         * python/dbus.py:
7917         * python/dbus_bindings.pyx.in:
7918         Add dbus.init_gthreads (), allow emit_signal to pass
7919         arguments to the signal.
7920         
7921 2004-07-24  Havoc Pennington  <hp@redhat.com>
7922
7923         * AUTHORS: add some people, not really comprehensively, let me
7924         know if I missed you
7925
7926 2004-07-24  Havoc Pennington  <hp@redhat.com>
7927
7928         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7929         Owen
7930
7931         * test/Makefile.am (DIST_SUBDIRS): here also
7932
7933 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7934
7935         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7936         breaking build on Solaris, reported by Farhad Saberi on the ML.
7937
7938         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7939         va_arg invocation to account for integer promotion in the case of
7940         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7941
7942         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7943         _dbus_list_get_first_link, not _dbus_list_get_first.
7944
7945         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7946
7947         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7948         handler functions so that the asserts in _dbus_object_subtree_unref
7949         do not fail.
7950
7951         * dbus/dbus-transport-unix.c (do_reading):
7952         _dbus_transport_queue_messages return value is of type
7953         dbus_bool_t, not DBusDispatchStatus.
7954         
7955 2004-07-19  David Zeuthen  <david@fubar.dk>
7956
7957         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7958
7959         * bus/dispatch.c:
7960         (check_get_connection_unix_user): Debug says GetProperty; but the
7961         method is called GetConnectionUnixUser
7962         (check_get_connection_unix_process_id): New function
7963         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7964         also call check_get_connection_unix_process_id()
7965         
7966         * bus/driver.c:
7967         (bus_driver_handle_get_connection_unix_process_id): New function,
7968         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7969         interface
7970         
7971         * dbus/dbus-auth.c:
7972         (handle_server_data_external_mech): Set pid from the credentials
7973         obtained from the socket
7974         
7975         * dbus/dbus-connection.c:
7976         (dbus_connection_get_unix_process_id): New function
7977         
7978         * dbus/dbus-connection.h: 
7979         Add prototype for dbus_connection_get_unix_process_id
7980         
7981         * dbus/dbus-transport.c:
7982         (_dbus_transport_get_unix_process_id): New function
7983         
7984         * dbus/dbus-transport.h:
7985         Add prototype for _dbus_transport_get_unix_process_id
7986         
7987 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7988
7989         * dbus/dbus-message.c: Message counter fix, patch by Christian
7990         Hammond <chipx86@gnupdate.org>
7991
7992 2004-07-18  Seth Nickell  <seth@gnome.org>
7993
7994         * python/dbus.py:
7995         * python/dbus_bindings.pyx.in:
7996         * python/tests/test-client.py:
7997
7998         Add dbus.ByteArray and dbus_bindings.ByteArray
7999         types so that byte streams can be passed back.
8000
8001         Give jdahlin the heaps of credit that are so
8002         rightfully his.
8003         
8004 2004-07-12  Seth Nickell  <seth@gnome.org>
8005
8006         * python/dbus.py:
8007
8008         Add message argument to the default object_method_handler
8009         function.
8010         
8011         * python/dbus_bindings.pyx.in:
8012
8013         Automatically return NIL when passed an empty list
8014         (we can't pass back a list since lists are typed
8015         and we don't have any idea what type the the client
8016         intended the list to be... :-( )
8017         
8018 2004-07-10  Seth Nickell  <seth@gnome.org>
8019
8020         * python/examples/Makefile.am:
8021
8022         Fix distcheck breakage caused by new examples.
8023
8024 2004-07-10  Seth Nickell  <seth@gnome.org>
8025
8026         * python/dbus.py:
8027
8028         Add "message" argument to service-side dbus.Object
8029         methods. This will break existing services written
8030         using the python bindings, but will allow extraction
8031         of all the message information (e.g. who its from).
8032
8033         Add improved "object oriented" signal handling/emission.
8034         
8035         * python/examples/example-service.py:
8036
8037         Nix this example.
8038         
8039         * python/examples/example-signal-emitter.py:
8040         * python/examples/example-signal-recipient.py:
8041
8042         Two new examples that show how to emit and receive
8043         signals using the new APIs.
8044         
8045         * python/examples/example-signals.py:
8046         * python/examples/gconf-proxy-service.py:
8047         * python/examples/gconf-proxy-service2.py:
8048
8049         Add "message" argument to service methods.
8050
8051 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8052
8053         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8054         * dbus/bus.c (dbus_bus_get_unix_user)
8055         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8056         method of org.freedesktop.DBus interface.
8057
8058         * bus/dispatch.c: test case
8059
8060 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8061
8062         * python/Makefile.am: switched include directory from glib/ to dbus/
8063         since dbus-glib.h moved
8064  
8065 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8066
8067         * configure.in: prevent building the gcj stuff and libxml loader
8068         since they are broken.
8069
8070 2004-06-20  Havoc Pennington  <hp@redhat.com>
8071
8072         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8073         codes from the dbus error names
8074         
8075         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8076         as dbus/dbus-glib.h and that breakage is now visible due to 
8077         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8078         
8079         * glib/dbus-glib.h: s/gproxy/g_proxy/
8080
8081         * dbus/dbus-shared.h: new header to hold stuff shared with
8082         binding APIs
8083         
8084         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8085         than dbus-errors.h
8086
8087         * glib/dbus-glib.h (dbus_set_g_error): move to
8088         dbus-glib-lowlevel.h
8089
8090         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8091         of stuff to enable this
8092
8093         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8094
8095         * a bunch of other changes with the same basic "separate glib 
8096         bindings from dbus.h" theme
8097         
8098 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8099
8100         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8101
8102         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8103
8104 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8105
8106         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8107         the reply value of the ServiceExists message.
8108
8109 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8110
8111         * python/dbus_bindings.pyx.in: No longer need to parse path
8112         elements and pass them as arrays of strings.  The C API now
8113         accepts plain path strings.
8114         (_build_parsed_path): removed 
8115
8116 2004-06-07  Havoc Pennington  <hp@redhat.com>
8117
8118         * doc/TODO: remove auto-activation item since it's done; sort
8119         items by importance/milestone
8120
8121 2004-06-07  Havoc Pennington  <hp@redhat.com>
8122
8123         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8124         random signature when using REQUIRED_FIELDS (this hack won't work
8125         in the long term)
8126
8127         * dbus/dbus-message.c: change the signature to be a header field,
8128         instead of message->signature special-case string. Incremental
8129         step forward. Then we can fix up code to send the signature in the
8130         message, then fix up code to validate said signature, then fix up
8131         code to not put the typecodes inline, etc.
8132         (load_one_message): don't make up the signature after the fact
8133         (decode_header_data): require signature field for the known
8134         message types
8135
8136         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8137
8138         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8139
8140 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8141
8142         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8143
8144         * mono/Handler.cs: Updated to follow new path argument for
8145         (un-)registering objects.
8146
8147         * mono/example/Makefile.am:
8148         * mono/Makefile.am:
8149         * configure.in: Bumped required version for mono and use new -pkg
8150         syntax for deps
8151
8152 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8153
8154         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8155         registration functions take the path argument as char* instead of
8156         char**.
8157
8158         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8159         split off the path decompostion part of
8160         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8161         warnings. 
8162
8163         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8164         
8165 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8166  
8167         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8168         machine approach.  A state is implemented as a function that
8169         handles incoming events as specified for that state.
8170         
8171         * doc/dbus-specification.xml: Update auth protocol state machine
8172         specification to match implementation.  Remove some leftover
8173         base64 examples.
8174
8175 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8176
8177         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8178         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8179         quiet doxygen.
8180
8181         * Doxyfile.in: remove deprecated options.
8182
8183         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8184         glib/test-thread.h, glib/test-thread-client.c,
8185         glib/test-thread-server.c, glib/test-profile.c,
8186         glib/test-dbus-glib.c: remove these unused files.
8187
8188 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8189
8190         * dbus/dbus-object-tree.c
8191         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8192         non-fallback handlers (bug #684).
8193         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8194         (find_subtree_recurse): report wether the returned subtree is an
8195         exact match or a "fallback" match higher up in the tree.
8196         (object_tree_test_iteration): update test case.
8197
8198 2004-06-01  Seth Nickell  <seth@gnome.org>
8199
8200         * python/dbus_bindings.pyx.in:
8201         * python/tests/test-client.py:
8202
8203         Round off basic type support. Add dicts (yay!), and 
8204         remaining array types.
8205
8206         Make MessageIter more general so it works for dicts too.
8207
8208         Mark all loop variables as C integers.
8209         
8210 2004-05-31  Havoc Pennington  <hp@redhat.com>
8211
8212         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8213         "in" before "out"
8214
8215         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8216
8217         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8218         option that runs the tests, and start filling in some code
8219         including for starters just dumping the interfaces to stdout
8220
8221         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8222
8223         * test/data/valid-introspection-files/lots-of-types.xml: test of
8224         an example introspection file
8225
8226         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8227         "node" (I think...)
8228
8229 2004-05-31  Seth Nickell  <seth@gnome.org>
8230
8231         * python/dbus_bindings.pyx.in:
8232         * python/tests/test-client.py:
8233
8234         Test Suite: 1
8235         Python Bindings: 0
8236
8237         Fix string array memory trashing bug... oops...
8238
8239 2004-05-30  Seth Nickell  <seth@gnome.org>
8240
8241         * python/dbus.py:
8242
8243         Add a nicer-but-less-flexible alternate API for handling 
8244         calls to virtual objects in dbus.ObjectTree.
8245
8246         Screw up the argument order to the dbus.Object constructor
8247         for consistency with dbus.ObjectTree (and to make dbus_methods
8248         optional for future extension)
8249         
8250         * python/examples/Makefile.am:
8251         * python/examples/gconf-proxy-service.py:
8252         * python/examples/gconf-proxy-service2.py:
8253
8254         Alternate implementation of gconf-proxy-service using the
8255         nicer dbus.ObjectTree API.
8256         
8257         * python/examples/example-service.py:
8258         * python/tests/test-server.py
8259
8260         Reverse the argument order to deal with dbus.Object constructor
8261         changes.
8262         
8263 2004-05-30  Seth Nickell  <seth@gnome.org>
8264
8265         * python/examples/example-client.py:
8266         * python/examples/example-service.py:
8267
8268         Take it back. Lists seem to work but they're broken
8269         in the test suite. Make the base examples use
8270         lists (works fine).
8271
8272 2004-05-30  Seth Nickell  <seth@gnome.org>
8273
8274         * python/dbus_bindings.pyx.in:
8275         * python/tests/test-client.py:
8276
8277         Add some more tests and fix errors that crop up.
8278         Unfortunately, currently it seems like marshalling
8279         and unmarshalling of lists is completely broken :-(
8280
8281 2004-05-30  Seth Nickell  <seth@gnome.org>
8282
8283         * python/dbus_bindings.pyx.in:
8284
8285         Add support for ObjectPath type.
8286
8287         * python/dbus.py:
8288
8289         Refactor message handling code to a common function.
8290         
8291         * python/tests/test-client.py:
8292         * python/tests/test-server.py:
8293
8294         Add tests that check to make sure values of all types
8295         can be echoed from a service w/o mangling.
8296         
8297 2004-05-29  Seth Nickell  <seth@gnome.org>
8298
8299         * python/dbus.py:
8300
8301         Add ObjectTree class which allows implementation
8302         of trees of "virtual" objects. Basically the python
8303         wrapper for "register_fallback".
8304         
8305         * python/examples/Makefile.am
8306         * python/examples/gconf-proxy-client.py:
8307         * python/examples/gconf-proxy-service.py:
8308
8309         Implement a simple GConf proxy service that supports
8310         get/set on string and int GConf keys using the ObjectTree.
8311         
8312 2004-05-29  Seth Nickell  <seth@gnome.org>
8313
8314         * python/dbus.py:
8315         * python/examples/example-client.py:
8316         * python/examples/example-service.py:
8317         * python/examples/list-system-services.py:
8318
8319         Add SessionBus, SystemBus and ActivationBus classes
8320         so you don't need to know the special little BUS_TYPE
8321         flag.
8322         
8323 2004-05-29  Havoc Pennington  <hp@redhat.com>
8324
8325         * bus/config-parser.c (process_test_valid_subdir): temporarily
8326         stop testing config parser OOM handling, since expat has issues
8327         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8328
8329         * bus/dbus-daemon-1.1.in: change requested_reply to
8330         send_requested_reply/receive_requested_reply so we can send the
8331         replies, not just receive them.
8332
8333         * bus/config-parser.c: parse the new
8334         send_requested_reply/receive_requested_reply
8335
8336         * bus/policy.c (bus_client_policy_check_can_send): add
8337         requested_reply argument and use it
8338
8339         * bus/bus.c (bus_context_check_security_policy): pass through
8340         requested_reply status to message send check
8341
8342         * bus/system.conf.in: adapt to requested_reply change
8343         
8344 2004-05-28  Havoc Pennington  <hp@redhat.com>
8345
8346         * test/glib/test-service-glib.c (main): remove unused variable
8347
8348         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8349
8350         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8351         from the enum, no longer in use.
8352
8353         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8354         works right.
8355
8356         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8357         whether error_name passed in is a valid error name.
8358
8359 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8360
8361         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8362         OBJECT_PATH and OBJECT_PATH_ARRAY
8363
8364 2004-05-28  Seth Nickell  <seth@gnome.org>
8365
8366         * python/examples/Makefile.am:
8367
8368         Forget to add Makefile.am. Do not pass go.
8369
8370 2004-05-28  Michael Meeks  <michael@ximian.com>
8371
8372         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8373         fix no int64 case.
8374
8375         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8376
8377         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8378         (_dbus_message_iter_get_basic_type_array): impl.
8379         drastically simplify ~all relevant _get methods to use these.
8380         (_dbus_message_iter_append_basic_array),
8381         (dbus_message_iter_append_basic): impl
8382         drastically simplify ~all relevant _append methods to use these.
8383
8384         * dbus/dbus-message-builder.c (parse_basic_type) 
8385         (parse_basic_array, lookup_basic_type): impl.
8386         (_dbus_message_data_load): prune scads of duplicate /
8387         cut & paste coding.
8388
8389         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8390         (_dbus_demarshal_basic_type): implement,
8391         (demarshal_and_validate_len/arg): beef up debug.
8392         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8393
8394 2004-05-27  Seth Nickell  <seth@gnome.org>
8395
8396         * configure.in:
8397         * python/Makefile.am:
8398
8399         Include the example python apps in the tarball.
8400         
8401         * python/examples/list-system-services.py
8402
8403         Add a python new example that fetches the list of services
8404         from the system bus.
8405         
8406 2004-05-27  Seth Nickell  <seth@gnome.org>
8407
8408         * python/dbus.py:
8409         * python/dbus_bindings.pyx.in:
8410
8411         Fix failure to notify that a signal was not handled,
8412         resulted in hung functions.
8413         
8414 2004-05-25  Colin Walters  <walters@redhat.com>
8415
8416         * tools/dbus-monitor.c (main): Monitor all types of messages.
8417
8418 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8419
8420         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8421         which unregisters the object path and disposes the handler.
8422
8423 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8424  
8425         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8426          
8427         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8428         operands to && so we call dbus_message_iter_next () for the last
8429         argument also.
8430
8431 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8432
8433         * dbus/dbus-object-tree.c
8434         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8435         children even if the requested path isn't registered.
8436         (object_tree_test_iteration): test object_tree_list_registered.
8437
8438         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8439         it to 0.
8440         
8441 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8442
8443         * doc/TODO: Remove resolved items.
8444
8445         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8446         field.
8447         
8448         * bus/connection.c (bus_connections_expect_reply): Enforce the
8449         per-connection limit on pending replies.
8450         
8451         Patch from Jon Trowbridge <trow@ximian.com>:
8452  
8453         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8454         up a watch that triggers a config reload when one end of the pipe
8455         becomes readable.
8456         (signal_handler): Instead of doing the config reload in our SIGHUP
8457         handler, just write to the reload pipe and let the associated
8458         watch handle the reload when control returns to the main loop.
8459  
8460         * bus/driver.c (bus_driver_handle_reload_config): Added.
8461         Implements a ReloadConfig method for requesting a configuration
8462         file reload via the bus driver.
8463  
8464 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8465
8466         * HACKING: Updated release instructions concerning the wiki page.
8467
8468 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8469
8470         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8471         filter against auth->allowed_mechs; we only add allowed mechs in
8472         record_mechanisms().
8473  
8474         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8475         ALLOWED_MECHS to auth-script format so we can set the list of
8476         allowed mechanisms.
8477  
8478         * data/auth/client-out-of-mechanisms.auth-script: New test to
8479         check client disconnects when it is out of mechanisms to try.
8480  
8481         * dbus/dbus-auth.c (process_command): Remove check for lines
8482         longer that 1 MB; we only buffer up maximum 16 kB.
8483  
8484         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8485         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8486         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8487         assume there might be unused bytes.
8488  
8489         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8490         client-out-of-mechs, it is handled in process_reject(). Move check
8491         for max failures to send_rejected(), as it's a server-only thing.
8492
8493         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8494         send_auth(), send_data(), send_rejected(), send_error(),
8495         send_ok(), send_begin() and send_cancel().
8496
8497 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8498
8499         Remove base64 encoding, replace with hex encoding. Original patch
8500         from trow@ximian.com, added error handling.
8501
8502         * dbus/dbus-string.c (_dbus_string_base64_encode)
8503         (_dbus_string_base64_decode): Remove.
8504         (_dbus_string_hex_decode): Add end_return argument so we can
8505         distinguish between OOM and invalid hex encoding.
8506         (_dbus_string_test): Remove base64 tests and add test case for
8507         invalid hex.
8508
8509         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8510         Replace base64 with hex.
8511
8512         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8513         for invalid hex encoded data in auth protocol.
8514
8515 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8516
8517         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8518         leak.
8519
8520 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8521
8522         * mono/dbus-sharp.dll.config.in: Added for GAC
8523         * mono/dbus-sharp.snk: Added for GAC
8524         * mono/Assembly.cs.in: Added for GAC
8525         * mono/Makefile.am: Changes for GAC installation        
8526         * configure.in: Added refs for dbus-sharp.dll.config.in and
8527         Assembly.cs.in. More fixes for mono testing
8528         * mono/example/Makefile.am: Changed var to CSC
8529         * Makefile.am: Changed flag name to DBUS_USE_CSC
8530
8531 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8532
8533         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8534         * mono/doc/*: Added documentation framework
8535         * configure.in: Added monodoc check
8536         * README: Added description of mono configure flags
8537
8538 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8539
8540         * doc/dbus-specification.xml: Added a "Required" column to the 
8541         header fields table and changed the "zero or more" verbage in
8542         the above paragraph to read "The header must contain the required 
8543         named header fields and zero or more of the optional named header 
8544         fields".
8545         * test/data/invalid-messages/*.message: Added the required PATH 
8546         named header field to the tests so that they don't fail on 
8547         'Missing path field'
8548
8549 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8550
8551         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8552         the stack by implicitly defining variable and parameter types and
8553         removing the hack of defining C pointers as python objects and later
8554         casting them.
8555
8556 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8557
8558         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8559
8560 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8561
8562         * mono/DBusType/Dict.cs: Handle empty dicts
8563         * mono/DBusType/Array.cs: Handle empty arrays
8564         * mono/Arguments.cs: Handle empty arguments
8565
8566 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8567
8568         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8569         field
8570
8571 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8572
8573         * test/data/valid-messages/standard-*.message: Update message
8574         test scripts to new header field names.
8575
8576 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8577
8578         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8579         overflow to times_we_did_each_thing array which would chop off the
8580         first character of the failure_dir string. Increased the size of
8581         the array to 7 to reflect the number of random mutation functions
8582         we have.
8583
8584 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8585
8586         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8587         unix_server->watch here, it is unreffed in disconnect.
8588         (_dbus_server_new_for_tcp_socket): convert NULL host to
8589         "localhost" here so we don't append NULL to address.
8590         
8591         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8592         various addresses, including tcp with no explicit host.
8593
8594 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8595
8596         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8597         fix incorrect setting of .name_offset in the HeaderField (it was
8598         off by two bytes, positioned right after the name and typecode)
8599
8600         * bus/bus.c (bus_context_new, bus_context_unref): test before
8601         calling dbus_server_free_data_slot and _dbus_user_database_unref
8602         in case of an error.
8603
8604         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8605         by libdbus-gtool.
8606
8607 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8608
8609         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8610         _dbus_poll() instead of select().
8611
8612 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8613
8614         * bus/main.c (signal_handler): Reload the configuration files
8615         on SIGHUP.
8616         (main): Set up our SIGHUP handler.
8617
8618         * bus/bus.c (struct BusContext): Store the config file, user and
8619         fork flag in the BusContext.
8620         (process_config_first_time_only): Added.  Contains the code
8621         (previously in bus_context_new) for setting up the BusContext from
8622         the BusConfigParser that should only be run the first time the
8623         config files are read.
8624         (process_config_every_time): Added.  Contains the code (previously
8625         in bus_context_new) for setting up the BusContext from the
8626         BusConfigParser that should be run every time the config files are
8627         read.
8628         (load_config): Added.  Builds a BusConfigParser from the config
8629         files and passes the resulting structure off to
8630         process_config_first_time_only (assuming this is the first time)
8631         and process_config_every_time.
8632         (bus_context_new): All of the config-related code has been moved
8633         to process_config_first_time_only and process_config_every_time.
8634         Now this function just does the non-config-related initializations
8635         and calls load_config.
8636         (bus_context_reload_config): Added.
8637
8638 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8639
8640         * bus/driver.c (bus_driver_handle_get_service_owner):
8641         implement a GetServiceOwner method.
8642         * doc/dbus-specification.xml: document it.
8643         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8644         
8645         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8646         implement, using the bus GetServiceOwner method.
8647
8648         * test/glib/test-dbus-glib.c:
8649         use dbus_gproxy_new_for_service_owner so that we can receive the
8650         signal. 
8651
8652 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8653
8654         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8655         dbus/dbus-message.c, dbus/dbus-protocol.h
8656         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8657
8658         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8659         dbus/dbus-message.c, dbus/dbus-protocol.h
8660         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8661
8662         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8663         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8664         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8665
8666         * doc/dbus-specification.xml (Header Fields Table):
8667         s/SERVICE/DESTINATION
8668         s/SENDER_SERVICE/SENDER
8669
8670
8671 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8672
8673         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8674         a few seconds.
8675
8676 2004-04-13  Michael Meeks  <michael@ximian.com>
8677
8678         * glib/dbus-gobject.c (handle_introspect): split out
8679         (introspect_properties): this.
8680         (handle_introspect): implement this.
8681
8682         * test/glib/Makefile.am: use the absolute path so the bus
8683         daemon's chdir ("/") doesn't kill us dead.
8684
8685         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8686
8687 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8688
8689         * bus/config-parser.c (struct BusConfigParser): Added
8690         included_files field.
8691         (seen_include): Added.  Checks whether or not a file has already
8692         been included by any parent BusConfigParser.
8693         (bus_config_parser_new): Copy the parent's included_files.
8694         (include_file): Track which files have been included, and fail on
8695         circular inclusions.
8696         (process_test_valid_subdir): Changed printf to report if we are
8697         testing valid or invalid conf files.
8698         (all_are_equiv): Changed printf to be a bit clearer about
8699         what we are actually doing.
8700         (bus_config_parser_test): Test invalid configuration files.
8701
8702 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8703
8704         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8705         argument.  If non-null, the newly-constructed BusConfigParser will
8706         be initialized with the parent's BusLimits instead of the default
8707         values.
8708         (include_file): When including a config file, pass in
8709         the current parser as the parent and then copy the BusLimits
8710         from the included BusConfigParser pack to the current parser.
8711         (process_test_valid_subdir): Renamed from process_test_subdir.
8712         (process_test_equiv_subdir): Added.  Walks through a directory,
8713         descending into each subdirectory and loading the config files
8714         it finds there.  If any subdirectory contains two config files
8715         that don't produce identical BusConfigParser structs, fail.
8716         For now, the BusConfigParser's BusPolicies are not compared.
8717         (bus_config_parser_test): Call both process_test_valid_subdir and
8718         process_test_equiv_subdir.
8719
8720         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8721         argument and pass it along to the call to bus_config_parser_new.
8722         Also made a few small changes to allow this code to compile.
8723
8724         * bus/config-loader-expat.c (bus_config_load): Take a parent
8725         argument and pass it along to the call to bus_config_parser_new.
8726
8727         * bus/bus.c (bus_context_new): Load the config file
8728         with a NULL parent argument.
8729
8730 2004-03-29  Michael Meeks  <michael@ximian.com>
8731
8732         * glib/dbus-gobject.c (introspect_properties): split
8733         out, fix mangled 'while' flow control.
8734         (introspect_signals): implement.
8735         (handle_introspect): update.
8736
8737 2004-03-29  Michael Meeks  <michael@ximian.com>
8738
8739         * glib/dbus-gobject.c (set_object_property): split out / 
8740         re-work, use the property type, and not the message type(!)
8741         (get_object_property): ditto.
8742
8743         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8744         (dbus_gvalue_marshal): make this code re-usable, needed
8745         for signals too, also on both proxy and server side.
8746         Re-write for more efficiency / readability.
8747
8748 2004-03-29  Michael Meeks  <michael@ximian.com>
8749
8750         * dbus/dbus-message.c
8751         (dbus_message_new_error_printf): impl.
8752
8753         * dbus/dbus-connection.c
8754         (dbus_connection_unregister_object_path): fix warning.
8755
8756         * configure.in: fix no-mono-installed situation.
8757
8758 2004-03-27  Havoc Pennington  <hp@redhat.com>
8759
8760         Patch from Timo Teräs:
8761         
8762         * tools/dbus-send.c (main): if --print-reply, assume type is
8763         method call; support boolean type args
8764         
8765         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8766         bunch of memleak and logic bugs
8767         
8768 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8769
8770         * mono/Arguments.cs:
8771         * mono/Introspector.cs:
8772         * mono/Handler.cs:
8773         * mono/InterfaceProxy.cs:
8774         * mono/Message.cs
8775         * mono/ProxyBuilder.cs:
8776         * mono/Service.cs:
8777         Added InterfaceProxy class to avoid building proxies for every
8778         object.
8779
8780         * dbus-message.h:
8781         * dbus-message.c (dbus_message_append_args_valist)
8782         (dbus_message_iter_get_object_path)
8783         (dbus_message_iter_get_object_path_array)
8784         (dbus_message_iter_append_object_path)
8785         (dbus_message_iter_append_object_path_array):
8786         Added object_path iter functions to handle OBJECT_PATH arguments
8787         
8788 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8789
8790         First checkin of mono bindings.
8791         * configure.in:
8792         * Makefile.am:
8793         Build stuff for the bindings
8794         * dbus-sharp.pc.in: Added for pkgconfig
8795         
8796 2004-03-21  Havoc Pennington  <hp@redhat.com>
8797
8798         * test/test-service.c (main): remove debug spew
8799
8800 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8801
8802         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8803         arrays
8804
8805         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8806         (dbus_message_iter_init_array_iterator)
8807         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8808         indicate whether the iterator is empty
8809
8810         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8811         warnings
8812
8813 2004-03-19  Havoc Pennington  <hp@redhat.com>
8814
8815         * NEWS: 0.21 updates
8816
8817         * configure.in: 0.21
8818
8819         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8820         
8821         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8822         you don't need pyrex to make dist
8823
8824         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8825         sources; run moc
8826         
8827 2004-03-18  Richard Hult  <richard@imendio.com>
8828
8829         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8830         (dbus_message_set_auto_activation): Add doxygen docs.
8831
8832 2004-03-16  Richard Hult  <richard@imendio.com>
8833
8834         * bus/activation.c: (bus_activation_service_created),
8835         (bus_activation_send_pending_auto_activation_messages),
8836         (bus_activation_activate_service):
8837         * bus/activation.h:
8838         * bus/dispatch.c: (bus_dispatch),
8839         (check_nonexistent_service_auto_activation),
8840         (check_service_auto_activated),
8841         (check_segfault_service_auto_activation),
8842         (check_existent_service_auto_activation), (bus_dispatch_test):
8843         * bus/driver.c: (bus_driver_handle_activate_service):
8844         * bus/services.c: (bus_registry_acquire_service):
8845         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8846         (dbus_message_get_auto_activation):
8847         * dbus/dbus-message.h:
8848         * dbus/dbus-protocol.h: Implement auto-activation.
8849         
8850         * doc/dbus-specification.xml: Add auto-activation to the spec.
8851
8852 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8853
8854         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8855         fix a bug with CUSTOM types.
8856
8857         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8858         a unit test for this bug (used to fail).
8859
8860 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8861
8862         * bus/activation.c:
8863         (babysitter_watch_callback): notify all pending activations waiting for
8864           the same exec that the activation failed.
8865         (bus_activation_activate_service): shortcut the activation if we 
8866           already waiting for the same executable to start up.
8867
8868 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8869
8870         * bus/activation.c: 
8871         - Added service file reloading. 
8872           Each service files directory is kept in an hash table in 
8873           BusActivation and each BusActivationEntry knows what .service-file it
8874           was read from. So when you try to activate a service the bus will 
8875           check if it's been updated, removed or if new .service-files has 
8876           been installed.
8877         - Test code at the bottom for the service file reloading.
8878         * bus/test-main.c: (main):
8879         * bus/test.h:
8880         - added service reloading test.
8881         * dbus/dbus-sysdeps.c: 
8882         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8883
8884 2004-03-08  Michael Meeks  <michael@ximian.com>
8885
8886         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8887         bail immediately if disconnected, to avoid busy loop.
8888
8889         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8890         cleanup cut/paste/inefficiency.
8891
8892 2004-03-01  David Zeuthen  <david@fubar.dk>
8893
8894         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8895         bug where args were used twice. This bug resulted in a segfault
8896         on a Debian/PPC system when starting the messagebus daemon. Include
8897         dbus-sysdeps.h for DBUS_VA_COPY
8898
8899         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8900
8901         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8902         appropriate va_copy implementation. From GLib
8903         
8904 2004-02-24  Joe Shaw  <joe@ximian.com>
8905
8906         * bus/services.c (bus_registry_acquire_service): We need to pass
8907         in the service name to dbus_set_error() to prevent a crash.
8908
8909 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8910
8911         * AUTHORS: Reveal my True identity.
8912
8913 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8914
8915         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8916         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8917
8918 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8919
8920         * doc/TODO: Added not about better error check of configuration files.
8921
8922 2003-12-02  Richard Hult  <richard@imendio.com>
8923
8924         * Update AFL version to 2.0 throughout the source files to reflect
8925         the update that was done a while ago.
8926
8927 2003-12-02  Richard Hult  <richard@imendio.com>
8928
8929         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8930         wrote_dict_key to FALSE on the iter that the dict is appended to,
8931         just like when appending other types. Fixes a bug where a dict
8932         couldn't be put inside a dict.
8933         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8934         (message_iter_test, _dbus_message_test): Add test case for dict
8935         inside dict.
8936
8937 2003-12-01  David Zeuthen  <david@fubar.dk>
8938
8939         * python/dbus.py: Add the actual message when calling the reciever
8940         of a signal such that parameters can be inspected. Add the method
8941         remove_signal_receiver
8942         
8943 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8944
8945         * bus/*.[ch]:
8946         * dbus/*.[ch]:
8947         * glib/*.[ch]: Made ref functions return the pointer
8948
8949 2003-11-25  Zack Rusin  <zack@kde.org>
8950
8951         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8952
8953         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8954         wrappers,
8955
8956         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8957         the Integrator and to better fit with the server,
8958
8959 2003-11-24  Zack Rusin  <zack@kde.org>
8960
8961         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8962         the integrator handles it now
8963
8964         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8965         since QTimer wasn't really meant to be used the way DBusTimeout is
8966
8967 2003-11-24  Zack Rusin  <zack@kde.org>
8968
8969         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8970         Integrator class which integrates D-BUS with the Qt event loop,
8971
8972         * qt/connection.h, qt/connection.cpp: Move all the code which
8973         was dealing with D-BUS integration to the Integrator class,
8974         and start using Integrator,
8975
8976 2003-11-23  Zack Rusin  <zack@kde.org>
8977
8978         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8979         wrapper
8980
8981         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8982         switching namespaces to DBusQt, reworking the class,
8983
8984         * Makefile.cvs: switching dependencies so that it matches KDE 
8985         schematics,
8986         
8987         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8988         the library
8989
8990 2003-11-19  Havoc Pennington  <hp@redhat.com>
8991
8992         * NEWS: update
8993
8994         * configure.in: bump version to 0.20
8995
8996         * configure.in (have_qt): add yet another place to look for qt
8997         (someone hand trolltech a .pc file...)
8998
8999 2003-11-01  Havoc Pennington  <hp@redhat.com>
9000
9001         * doc/dbus-specification.xml: add state machine docs on the auth
9002         protocol; just a first draft, I'm sure it's wrong.      
9003
9004 2003-10-28  David Zeuthen  <david@fubar.dk>
9005
9006         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9007         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9008         
9009 2003-10-28  Havoc Pennington  <hp@redhat.com>
9010
9011         * dbus/dbus-message.c (get_next_field): delete unused function
9012
9013 2003-10-28  Havoc Pennington  <hp@redhat.com>
9014
9015         * bus/expirelist.c (do_expiration_with_current_time): detect
9016         failure of the expire_func due to OOM
9017
9018         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9019
9020         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9021         NoReply error that's now created by the bus when the service exits
9022
9023 2003-10-28  Havoc Pennington  <hp@redhat.com>
9024
9025         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9026         tests for set_path, set_interface, set_member, etc.
9027
9028         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9029
9030         * dbus/dbus-message.c (set_string_field): always just delete and
9031         re-append the field; accept NULL for deletion
9032         (re_align_fields_recurse): reimplement
9033         
9034 2003-10-26  Havoc Pennington  <hp@redhat.com>
9035
9036         * dbus/dbus-connection.c: fix docs to properly describe the
9037         disconnected message
9038         (_dbus_connection_notify_disconnected): remove this function; 
9039         we can't synchronously add the disconnected message, we have to 
9040         do it after we've queued any remaining real messages
9041         (_dbus_connection_get_dispatch_status_unlocked): queue the
9042         disconnect message only if the transport has finished queueing all
9043         its real messages and is disconnected.
9044         (dbus_connection_disconnect): update the dispatch status here
9045
9046 2003-10-22  Havoc Pennington  <hp@redhat.com>
9047
9048         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9049
9050         * bus/connection.c (bus_transaction_send_from_driver): set the
9051         destination to the connection's base service
9052
9053 2003-10-20  Havoc Pennington  <hp@redhat.com>
9054
9055         hmm, make check is currently not passing.
9056         
9057         * doc/dbus-specification.xml: add requirement that custom type
9058         names follow the same rules as interface names.
9059
9060         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9061         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9062         'map'
9063
9064         * doc/dbus-specification.xml: update type codes to match
9065         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9066         CUSTOM. Add type OBJECT_PATH to the spec.
9067
9068 2003-10-17  Havoc Pennington  <hp@redhat.com>
9069
9070         * bus/driver.c (create_unique_client_name): use "." as separator
9071         in base service names instead of '-'
9072
9073         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9074         byte at the end of the string
9075
9076         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9077         optimization macros since string validation seems to be a slow
9078         point.
9079         
9080         * doc/dbus-specification.xml: restrict valid
9081         service/interface/member/error names. Add test suite code for the
9082         name validation.
9083
9084         * dbus/dbus-string.c: limit service/interface/member/error names 
9085         to [0-9][A-Z][a-z]_
9086
9087         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9088         format arg to verbose spew
9089
9090         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9091         memory, return instead of g_error
9092
9093         * test/test-service.c (path_message_func): support emitting a
9094         signal on request
9095
9096         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9097         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9098         assuming the activation bus was the session bus so that services
9099         started manually will still register.
9100         (init_connections_unlocked): fix so that in OOM situation we get
9101         the same semantics when retrying the function
9102         
9103         * test/test-service.c (main): change to use path registration, to
9104         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9105         than DBUS_BUS_SESSION
9106
9107 2003-10-16  Havoc Pennington  <hp@redhat.com>
9108
9109         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9110
9111         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9112         coverage of the tests
9113         (coverage-report.txt): don't move the .da and .bbg files around
9114
9115 2003-10-16  Havoc Pennington  <hp@redhat.com>
9116
9117         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9118         to put there
9119
9120 2003-10-16  Havoc Pennington  <hp@redhat.com>
9121
9122         * bus/connection.c (bus_pending_reply_expired): either cancel or
9123         execute, not both
9124         (bus_connections_check_reply): use unlink, not remove_link, as we
9125         don't want to free the link; fixes double free mess
9126
9127         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9128         where no reply was received
9129
9130         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9131         fix a refcount leak
9132
9133         * bus/signals.c (match_rule_matches): add special cases for the
9134         bus driver, so you can match on sender/destination for it.
9135
9136         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9137         DBUS_PRINT_BACKTRACE is set
9138
9139         * dbus/dbus-internals.c: add pid to assertion failure messages
9140
9141         * dbus/dbus-connection.c: add message type code to the debug spew
9142
9143         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9144         sender=foo not service=foo
9145
9146         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9147         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9148         DBUS_ACTIVATION_ADDRESS instead
9149
9150         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9151         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9152
9153         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9154         context struct
9155
9156         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9157         (dbus_message_iter_get_object_path_array): new function (half
9158         finished, disabled for the moment)
9159         
9160         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9161         DBUS_MESSAGE_TYPE_ERROR
9162
9163         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9164         avoid redirecting stderr to /dev/null
9165         (babysit): close stdin if not doing the "exit_with_session" thing
9166
9167         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9168         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9169         stdout/stdin, so things don't get confused
9170         
9171         * bus/system.conf.in: fix to allow replies, I modified .conf
9172         instead of .conf.in again.
9173
9174 2003-10-14  David Zeuthen  <david@fubar.dk>
9175
9176         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9177         argtype to arg_type when raising unknown arg type exception.
9178         Changed type list to reflect the changes in dbus-protocol.h so 
9179         the bindings actually work.
9180
9181 2003-10-14  Havoc Pennington  <hp@redhat.com>
9182
9183         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9184         to have a bug keeping it from outputting the .da files sometimes
9185         (string_get_string): don't append garbage nul bytes to the string.
9186
9187 2003-10-15  Seth Nickell  <seth@gnome.org>
9188
9189         * python/Makefile.am:
9190
9191         Include dbus_h_wrapper.h in the dist tarball.
9192
9193 2003-10-14  Havoc Pennington  <hp@redhat.com>
9194
9195         * bus/bus.c (bus_context_check_security_policy): revamp this to
9196         work more sanely with new policy-based requested reply setup
9197
9198         * bus/connection.c (bus_transaction_send_from_driver): set bus
9199         driver messages as no reply
9200
9201         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9202         requested_reply attribute on allow/deny rules
9203
9204         * bus/system.conf: add <allow requested_reply="true"/>
9205
9206         * bus/driver.c (bus_driver_handle_message): fix check for replies
9207         sent to the bus driver, which was backward. How did this ever work
9208         at all though? I think I'm missing something.
9209
9210         * dbus/dbus-message.c (decode_header_data): require error and
9211         method return messages to have a reply serial field to be valid
9212         (_dbus_message_loader_queue_messages): break up this function;
9213         validate that reply serial and plain serial are nonzero; 
9214         clean up the OOM/error handling.
9215         (get_uint_field): don't return -1 from this
9216         (dbus_message_create_header): fix signed/unsigned bug
9217
9218         * bus/connection.c (bus_connections_expect_reply): save serial of
9219         the incoming message, not reply serial
9220
9221 2003-10-14  Havoc Pennington  <hp@redhat.com>
9222
9223         * bus/connection.c: implement pending reply tracking using
9224         BusExpireList
9225
9226         * bus/bus.c (bus_context_check_security_policy): verify that a
9227         reply is pending in order to allow a reply to be sent. Deny 
9228         messages of unknown type.
9229
9230         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9231
9232         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9233         (bus_context_get_reply_timeout): new
9234
9235 2003-10-13  Seth Nickell  <seth@gnome.org>
9236
9237         * python/Makefile.am:
9238
9239         Pass "make distcheck": remove a couple files from DIST_FILES
9240         that weren't included in the final version.
9241
9242 2003-10-12  Havoc Pennington  <hp@pobox.com>
9243
9244         Added test code that 1) starts an actual bus daemon and 2) uses
9245         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9246         more testing possible, but this is the basic framework.
9247         
9248         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9249         empty proxy lists from the proxy list hash
9250
9251         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9252         couple of return_if_fail checks
9253
9254         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9255         to allocate, so everything is cleared to NULL as it should be.
9256
9257         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9258         source as data to dbus_connection_set_timeout_functions() as the 
9259         timeout functions expected
9260
9261         * test/glib/run-test.sh: add a little script to start up a message
9262         bus and run tests using it
9263
9264         * tools/dbus-launch.1: updates
9265
9266         * tools/dbus-launch.c (main): add --config-file option
9267
9268         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9269         that could never be reached.
9270
9271         * dbus/dbus-message.c (dbus_message_new_method_return) 
9272         (dbus_message_new_error, dbus_message_new_signal): set the
9273         no-reply-expected flag on all these. Redundant, but may
9274         as well be consistent.
9275
9276 2003-10-11  Havoc Pennington  <hp@pobox.com>
9277
9278         * test/decode-gcov.c (function_solve_graph): make broken block
9279         graph a nonfatal error since it seems to be broken. Need to debug
9280         this.
9281
9282         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9283         can't just check type > INVALID < LAST anymore
9284
9285         * dbus/dbus-message.c (dbus_message_get_signature): new function
9286         (dbus_message_has_signature): new function
9287         (struct DBusMessage): add signature field (right now it isn't sent
9288         over the wire, just generated on the fly)
9289         (dbus_message_copy): copy the signature, and init strings to
9290         proper length to avoid some reallocs
9291         (dbus_message_iter_init_array_iterator): return void, since it
9292         can't fail
9293         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9294         (_dbus_message_loader_queue_messages): add silly temporary hack to
9295         fill in message->signature on load
9296
9297         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9298         characters, so they are relatively human-readable.
9299
9300 2003-10-11  Havoc Pennington  <hp@pobox.com>
9301
9302         * dbus/dbus-message.c (_dbus_message_test): add more test
9303         coverage, but #if 0 for now since they uncover a bug 
9304         not fixed yet; I think in re_align_field_recurse()
9305         (re_align_field_recurse): add FIXME about broken assertion
9306
9307         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9308
9309         * bus/connection.c: share a couple code bits with expirelist.c
9310
9311         * bus/expirelist.h, bus/expirelist.c: implement a generic
9312         expire-items-after-N-seconds facility, was going to share between
9313         expiring connections and replies, decided not to use for expiring
9314         connections for now.
9315
9316         * COPYING: include AFL 2.0 (still need to change all the file headers)
9317
9318 2003-10-09  Havoc Pennington  <hp@redhat.com>
9319
9320         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9321         gcc 3.3. Not that we do anything about it yet.
9322
9323         * bus/signals.c (bus_match_rule_parse): impose max length on the
9324         match rule text
9325
9326         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9327
9328 2003-10-09  Havoc Pennington  <hp@redhat.com>
9329
9330         Make matching rules theoretically work (add parser).
9331         
9332         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9333         the case where destination is explicitly specified as bus driver
9334         and someone else is eavesdropping.
9335         
9336         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9337         definition of eavesdropping and assertion
9338
9339         * tools/dbus-send.c (main): use dbus_message_type_from_string
9340
9341         * bus/signals.c (bus_match_rule_parse): implement
9342
9343         * dbus/dbus-message.c (dbus_message_type_from_string): new
9344
9345         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9346
9347 2003-10-02  Havoc Pennington  <hp@pobox.com>
9348
9349         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9350         dbus_gproxy_oneway_call
9351
9352         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9353         (dbus_server_setup_with_g_main): fix to allow calling them more
9354         than once on the same args
9355         (dbus_bus_get_with_g_main): new function
9356
9357 2003-10-02  Havoc Pennington  <hp@redhat.com>
9358
9359         * doc/dbus-tutorial.xml: write some stuff
9360
9361 2003-09-29  Havoc Pennington  <hp@pobox.com>
9362
9363         * configure.in: split checks for Doxygen from XML docs, check for
9364         xmlto
9365
9366         * doc/Makefile.am: XML-ify all the docs, and add a blank
9367         dbus-tutorial.xml
9368
9369 2003-09-29  Havoc Pennington  <hp@pobox.com>
9370
9371         * Merge dbus-object-names branch. To see the entire patch 
9372         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9373         it's huuuuge though.
9374         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9375         
9376 2003-09-28  Havoc Pennington  <hp@pobox.com>
9377
9378         * HACKING: update to reflect new server
9379
9380 2003-09-26  Seth Nickell  <seth@gnome.org>
9381
9382         * python/dbus.py:
9383         * python/examples/example-signals.py:
9384
9385         Start implementing some notions of signals. The API
9386         is really terrible, but they sort of work (with the
9387         exception of being able to filter by service, and to
9388         transmit signals *as* a particular service). Need to
9389         figure out how to make messages come from the service
9390         we registered :-(
9391         
9392         * python/dbus_bindings.pyx.in:
9393
9394         Removed duplicate message_handler callbacks.
9395         
9396 2003-09-25  Havoc Pennington  <hp@redhat.com>
9397
9398         * bus/session.conf.in: fix my mess
9399
9400 2003-09-25  Havoc Pennington  <hp@pobox.com>
9401
9402         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9403
9404 2003-09-25  Seth Nickell  <seth@gnome.org>
9405
9406         * python/examples/example-service.py:
9407
9408         Johan notices complete wrong code in example-service, but
9409         completely wrong in a way that works exactly the same (!).
9410         Johan is confused, how could this possibly work? Example
9411         code fails to serve purpose of making things clear.
9412         Seth fixes.
9413
9414 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9415
9416         * doc/dbus-specification.sgml: don't require header fields
9417         to be 4-byte aligned and specify that fields should be
9418         distinguished from padding by the fact that zero is not
9419         a valid field name.
9420         
9421         * doc/TODO: remove re-alignment item and add item to doc
9422         the OBJECT_PATH type.
9423         
9424         * dbus/dbus-message.c:
9425         (HeaderField): rename the original member to value_offset
9426         and introduce a name_offset member to keep track of where
9427         the field actually begins.
9428         (adjust_field_offsets): remove.
9429         (append_int_field), (append_uint_field),
9430         (append_string_field): don't align the start of the header
9431         field to a 4-byte boundary.
9432         (get_next_field): impl finding the next marhsalled field
9433         after a given field.
9434         (re_align_field_recurse): impl re-aligning a number of
9435         already marshalled fields.
9436         (delete_field): impl deleting a field of any type and
9437         re-aligning any following fields.
9438         (delete_int_or_uint_field), (delete_string_field): remove.
9439         (set_int_field), (set_uint_field): no need to re-check
9440         that we have the correct type for the field.
9441         (set_string_field): ditto and impl re-aligning any
9442         following fields.
9443         (decode_header_data): update to take into account that
9444         the fields aren't 4-byte aligned any more and the new
9445         way to distinguish padding from header fields. Also,
9446         don't exit when there is too much header padding.
9447         (process_test_subdir): print the directory.
9448         (_dbus_message_test): add test to make sure a following
9449         field is re-aligned correctly after field deletion.
9450         
9451         * dbus/dbus-string.[ch]:
9452         (_dbus_string_insert_bytes): rename from insert_byte and
9453         allow the insert of multiple bytes.
9454         (_dbus_string_test): test inserting multiple bytes.
9455
9456         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9457         warning note to docs about having to re-align any
9458         marshalled values following the string.
9459         
9460         * dbus/dbus-message-builder.c:
9461         (append_string_field), (_dbus_message_data_load):
9462         don't align the header field.
9463         
9464         * dbus/dbus-auth.c: (process_test_subdir): print the
9465         directory.
9466         
9467         * test/break-loader.c: (randomly_add_one_byte): upd. for
9468         insert_byte change.
9469         
9470         * test/data/invalid-messages/bad-header-field-alignment.message:
9471         new test case.
9472         
9473         * test/data/valid-messages/unknown-header-field.message: shove
9474         a dict in the unknown field.
9475
9476 2003-09-25  Seth Nickell  <seth@gnome.org>
9477
9478         * python/dbus.py:
9479         * python/dbus_bindings.pyx.in:
9480
9481         Handle return values.
9482         
9483         * python/examples/example-client.py:
9484         * python/examples/example-service.py:
9485
9486         Pass back return values from the service to the client.
9487         
9488 2003-09-24  Seth Nickell  <seth@gnome.org>
9489
9490         * python/dbus.py:
9491
9492         Connect Object methods (when you are sharing an object) up... pass
9493         in a list of methods to be shared. Sharing all the methods just
9494         worked out too weird. You can now create nice Services over the
9495         DBus in Python. :-)
9496         
9497         * python/dbus_bindings.pyx.in:
9498
9499         Keep references to user_data tuples passed into C functions so 
9500         Python doesn't garbage collect on us.
9501
9502         Implement MethodReturn and Error subclasses of Message for creating
9503         DBusMessage's of those types.
9504         
9505         * python/examples/example-client.py:
9506         * python/examples/example-service.py:
9507
9508         Simple example code showing both how create DBus services and objects,
9509         and how to use them.
9510
9511 2003-09-23  Havoc Pennington  <hp@pobox.com>
9512
9513         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9514
9515 2003-09-23  Havoc Pennington  <hp@redhat.com>
9516
9517         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9518         (dbus_gproxy_disconnect_signal): implement
9519         (dbus_gproxy_manager_remove_signal_match): implement
9520         (dbus_gproxy_manager_add_signal_match): implement
9521         (dbus_gproxy_oneway_call): implement
9522
9523 2003-09-23  Havoc Pennington  <hp@pobox.com>
9524
9525         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9526         subclass. This means dropping the transparent thread safety of the
9527         proxy; you now need a separate proxy per-thread, or your own
9528         locking on the proxy. Probably right anyway.
9529         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9530
9531 2003-09-22  Havoc Pennington  <hp@redhat.com>
9532
9533         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9534
9535 2003-09-21  Seth Nickell  <seth@gnome.org>
9536
9537         First checkin of the Python bindings.
9538         
9539         * python/.cvsignore:
9540         * python/Makefile.am:
9541         * python/dbus_bindings.pyx.in:
9542         * python/dbus_h_wrapper.h:
9543
9544         Pieces for Pyrex to operate on, building a dbus_bindings.so
9545         python module for low-level access to the DBus APIs.
9546         
9547         * python/dbus.py:
9548
9549         High-level Python module for accessing DBus objects.
9550
9551         * configure.in:
9552         * Makefile.am:
9553
9554         Build stuff for the python bindings.
9555
9556         * acinclude.m4:
9557
9558         Extra macro needed for finding the Python C header files.
9559
9560 2003-09-21  Havoc Pennington  <hp@pobox.com>
9561
9562         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9563         implementing the proxy manager, didn't get very far.
9564
9565         * dbus/dbus-bus.c (dbus_bus_add_match): new
9566         (dbus_bus_remove_match): new
9567
9568         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9569         path_name argument; adjust the other not-yet-implemented 
9570         gproxy constructors to be what I think they should be.
9571
9572 2003-09-21  Havoc Pennington  <hp@pobox.com>
9573
9574         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9575         by default for message bus connections.
9576
9577         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9578         exit_on_disconnect flag is set and we process the disconnected
9579         signal.
9580         (dbus_connection_set_exit_on_disconnect): new function
9581
9582 2003-09-21  Havoc Pennington  <hp@pobox.com>
9583
9584         Get matching rules mostly working in the bus; only actually
9585         parsing the rule text remains. However, the client side of
9586         "signal connections" hasn't been started, this patch is only the
9587         bus side.
9588         
9589         * dbus/dispatch.c: fix for the matching rules changes
9590         
9591         * bus/driver.c (bus_driver_handle_remove_match)
9592         (bus_driver_handle_add_match): send an ack reply from these
9593         method calls
9594
9595         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9596         arguments, reported by Seth Nickell
9597
9598         * bus/config-parser.c (append_rule_from_element): support
9599         eavesdrop=true|false attribute on policies so match rules 
9600         can be prevented from snooping on the system bus.
9601
9602         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9603         and "destination" in attribute names; fix some docs bugs; 
9604         add eavesdrop=true|false attribute
9605
9606         * bus/driver.c (bus_driver_handle_add_match)
9607         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9608         messages
9609
9610         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9611         rid of broadcast service concept, signals are just always broadcast
9612
9613         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9614         mostly implement matching rules stuff (currently only exposed as signal
9615         connections)
9616
9617 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9618
9619         * doc/dbus-specification.sgml: Change the header field name
9620         to be an enum and update the rest of the spec to reference
9621         the fields using the conventinal name.
9622
9623         * dbus/dbus-protocol.h: update to reflect the spec.
9624
9625         * doc/TODO: add item to remove the 4 byte alignment requirement.
9626         
9627         * dbus/dbus-message.c: Remove the code to generalise the
9628         header/body length and serial number header fields as named
9629         header fields so we can reference field names using the 
9630         protocol values.
9631         (append_int_field), (append_uint_field), (append_string_field):
9632         Append the field name as a byte rather than four chars.
9633         (delete_int_or_uint_field), (delete_string_field): reflect the
9634         fact that the field name and typecode now occupy 4 bytes instead
9635         of 8.
9636         (decode_string_field), (decode_header_data): update to reflect
9637         protocol changes and move the field specific encoding from
9638         decode_string_field() back into decode_header_data().
9639         
9640         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9641         Add utility to aid debugging.
9642         
9643         * dbus/dbus-message-builder.c:
9644         (append_string_field), (_dbus_message_data_load): Update to
9645         reflect protocol changes; Change the FIELD_NAME directive
9646         to HEADER_FIELD and allow it to take the field's conventional
9647         name rather than the actual value.
9648         
9649         * test/data/*/*.message: Update to use HEADER_FIELD instead
9650         of FIELD_NAME; Always align the header on an 8 byte boundary
9651         *before* updating the header length.
9652
9653 2003-09-15  Havoc Pennington  <hp@pobox.com>
9654
9655         * dbus/dbus-pending-call.c: add the get/set object data
9656         boilerplate as for DBusConnection, etc. Use generic object data
9657         for the notify callback.
9658
9659         * glib/dbus-gparser.c (parse_node): parse child nodes
9660
9661         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9662         
9663         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9664         contain functions shared between the convenience lib and the
9665         installed lib
9666
9667         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9668         -export-symbols-regex to the GLib library
9669
9670         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9671         fix the locking in here, and add a default handler for
9672         Introspect() that just returns sub-nodes.
9673
9674 2003-09-14  Havoc Pennington  <hp@pobox.com>
9675
9676         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9677         rather than gfoo consistent
9678
9679         * glib/dbus-gproxy.h: delete for now, move contents to
9680         dbus-glib.h, because the include files don't work right since we
9681         aren't in the dbus/ subdir.
9682         
9683         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9684         (dbus_gproxy_end_call): finish
9685         (dbus_gproxy_begin_call): finish
9686
9687         * glib/dbus-gmain.c (dbus_set_g_error): new
9688
9689         * glib/dbus-gobject.c (handle_introspect): include information
9690         about child nodes in the introspection
9691
9692         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9693         function to help in implementation of introspection
9694
9695         * dbus/dbus-object-tree.c
9696         (_dbus_object_tree_list_registered_and_unlock): new function
9697
9698 2003-09-12  Havoc Pennington  <hp@pobox.com>
9699
9700         * glib/dbus-gidl.h: add common base class for all the foo_info
9701         types
9702
9703         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9704         similar to kdcop
9705
9706         * test/Makefile.am: try test srcdir -ef . in addition to test
9707         srcdir = ., one of them should work (yeah lame)
9708         
9709         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9710         library
9711         
9712         * glib/dbus-gparser.h: make description_load routines return
9713         NodeInfo* not Parser*
9714
9715         * Makefile.am (SUBDIRS): build test dir after all library dirs
9716
9717         * configure.in: add GTK+ detection
9718
9719 2003-09-07  Havoc Pennington  <hp@pobox.com>
9720
9721         * Make Doxygen contented.
9722
9723 2003-09-07  Havoc Pennington  <hp@pobox.com>
9724
9725         * doc/dbus-specification.sgml: more updates
9726
9727 2003-09-06  Havoc Pennington  <hp@pobox.com>
9728
9729         * doc/dbus-specification.sgml: partial updates
9730
9731         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9732         zillionth time; hopefully I edited the right file this time.
9733
9734         * bus/config-parser.c (append_rule_from_element): support
9735         send_type, send_path, receive_type, receive_path
9736
9737         * bus/policy.c: add message type and path to the list of things
9738         that can be "firewalled"
9739
9740 2003-09-06  Havoc Pennington  <hp@pobox.com>
9741
9742         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9743         (dbus_connection_register_object_path): make this not handle
9744         messages to paths below the given path
9745
9746 2003-09-03  Havoc Pennington  <hp@pobox.com>
9747
9748         * test/glib/Makefile.am: add this with random glib-linked test
9749         programs
9750
9751         * glib/Makefile.am: remove the random test programs from here,
9752         leave only the unit tests
9753
9754         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9755         uscore/javacaps conversion, and fix     
9756         (get_object_property, set_object_property): change to .NET
9757         convention for mapping props to methods, set_FooBar/get_FooBar, 
9758         since one language has such a convention we may as well copy it. 
9759         Plus real methods in either getFooBar or get_foo_bar style won't 
9760         collide with this convention.
9761
9762 2003-09-01  Havoc Pennington  <hp@pobox.com>
9763
9764         * glib/dbus-gparser.c: implement
9765
9766         * glib/dbus-gobject.c: start implementing skeletons support
9767
9768         * configure.in: when disabling checks/assert, also define
9769         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9770
9771 2003-09-01  Havoc Pennington  <hp@pobox.com>
9772
9773         * glib/Makefile.am: rearrange a bunch of files and get "make
9774         check" framework set up
9775
9776 2003-08-31  Havoc Pennington  <hp@pobox.com>
9777
9778         * fix build with --disable-tests
9779
9780 2003-08-30  Havoc Pennington  <hp@pobox.com>
9781
9782         * dbus/dbus-connection.c: purge DBusMessageHandler
9783
9784         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9785         use callbacks everywhere
9786
9787 2003-08-30  Havoc Pennington  <hp@pobox.com>
9788
9789         * test/data/valid-config-files/system.d/test.conf: change to 
9790         root for the user so warnings don't get printed
9791
9792         * dbus/dbus-message.c: add dbus_message_get_path,
9793         dbus_message_set_path
9794         
9795         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9796         dispatching to a path
9797
9798         * dbus/dbus-string.c (_dbus_string_validate_path): add
9799
9800         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9801         (_dbus_marshal_object_path): implement
9802
9803         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9804         to contain the path to the target object
9805         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9806         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9807
9808 2003-08-30  Havoc Pennington  <hp@pobox.com>
9809
9810         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9811
9812 2003-08-29  Havoc Pennington  <hp@pobox.com>
9813
9814         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9815         registered
9816         (struct DBusObjectSubtree): shrink this
9817         a lot, since we may have a lot of them
9818         (_dbus_object_tree_free_all_unlocked): implement
9819         (_dbus_object_tree_dispatch_and_unlock): implement
9820
9821 2003-08-29  Havoc Pennington  <hp@pobox.com>
9822
9823         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9824
9825 2003-08-28  Havoc Pennington  <hp@pobox.com>
9826
9827         purge DBusObjectID
9828         
9829         * dbus/dbus-connection.c: port to no ObjectID, create a
9830         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9831
9832         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9833         everything except UnregisterFunction and MessageFunction
9834         
9835         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9836         add DBUS_TYPE_OBJECT_PATH
9837         
9838         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9839         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9840         path-based object IDs
9841
9842 2003-08-25  Havoc Pennington  <hp@pobox.com>
9843
9844         Just noticed that dbus_message_test is hosed, I wonder when I
9845         broke that. I thought make check was passing earlier...
9846         
9847         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9848         container tree, will replace most of dbus-object-registry
9849
9850         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9851         screwup
9852
9853 2003-08-19  Havoc Pennington  <hp@pobox.com>
9854
9855         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9856         (dbus_message_is_error): fix this function
9857
9858         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9859         match
9860
9861         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9862         reflect clarified man page
9863         (bus_client_policy_check_can_send): ditto
9864         
9865         * bus/session.conf.in: fixup
9866
9867         * bus/system.conf.in: fixup
9868
9869 2003-08-18  Havoc Pennington  <hp@redhat.com>
9870
9871         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9872
9873         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9874         dumb bug created earlier (wrong order of args to
9875         decode_header_data())
9876         
9877         * tools/dbus-send.c: port
9878
9879         * tools/dbus-print-message.c (print_message): port
9880
9881         * test/data/*messages: port all messages over
9882         
9883         * dbus/dbus-message-builder.c: support including 
9884         message type
9885         
9886         * bus/driver.c: port over
9887         
9888         * bus/dispatch.c: port over to new stuff
9889
9890         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9891         rename disconnect signal to "Disconnected"
9892
9893 2003-08-17  Havoc Pennington  <hp@pobox.com>
9894
9895         This doesn't compile yet, but syncing up so I can hack on it from
9896         work. What are branches for if not broken code? ;-)
9897         
9898         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9899         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9900         DBUS_HEADER_FIELD_ERROR_NAME
9901         
9902         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9903         for the interface+member pairs
9904         (string_hash): change to use g_str_hash algorithm
9905         (find_direct_function, find_string_function): refactor these to
9906         share most code.
9907         
9908         * dbus/dbus-message.c: port all of this over to support 
9909         interface/member fields instead of name field
9910
9911         * dbus/dbus-object-registry.c: port over
9912         
9913         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9914         from _dbus_string_validate_name
9915
9916         * bus/dbus-daemon-1.1: change file format for the 
9917         <deny>/<allow> stuff to match new message naming scheme
9918
9919         * bus/policy.c: port over
9920
9921         * bus/config-parser.c: parse new format
9922         
9923 2003-08-16  Havoc Pennington  <hp@pobox.com>
9924
9925         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9926         broken assertion
9927
9928         * glib/dbus-gproxy.c: some hacking
9929
9930 2003-08-15  Havoc Pennington  <hp@redhat.com>
9931
9932         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9933
9934         * dbus/dbus-connection.c
9935         (dbus_connection_send_with_reply_and_block): factor out internals;
9936         change to convert any error replies to DBusError instead of 
9937         returning them as a message
9938
9939 2003-08-15  Havoc Pennington  <hp@pobox.com>
9940
9941         * dbus/dbus-connection.c, 
9942         dbus/dbus-pending-call.c: Finish the pending call stuff
9943
9944 2003-08-14  Havoc Pennington  <hp@redhat.com>
9945
9946         * dbus/dbus-pending-call.c: start on new object that will replace
9947         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9948         replies
9949
9950         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9951         with remote interfaces
9952
9953         * dbus/dbus-gidl.c: do the boring boilerplate in here
9954         
9955 2003-08-12  Havoc Pennington  <hp@pobox.com>
9956
9957         * bus/dispatch.c (bus_dispatch): make this return proper 
9958         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9959
9960         * dbus/dbus-errors.c (dbus_set_error): use
9961         _dbus_string_append_printf_valist
9962
9963         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9964         (_dbus_string_append_printf): new
9965
9966         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9967         UNKNOWN_METHOD
9968
9969         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9970         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9971         message is unhandled.
9972
9973 2003-08-11  Havoc Pennington  <hp@pobox.com>
9974
9975         * bus/test.c (client_disconnect_handler): change to return
9976         HANDLED (would have been REMOVE_MESSAGE)
9977
9978         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9979         HANDLED/NOT_YET_HANDLED instead of
9980         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9981         should be used.
9982
9983 2003-08-10  Havoc Pennington  <hp@pobox.com>
9984
9985         * tools/dbus-send.c (main): add --type argument, for now
9986         supporting only method_call and signal types.
9987
9988         * tools/dbus-print-message.c: print message type
9989
9990         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9991         init connection->objects
9992
9993         * doc/dbus-specification.sgml: fix sgml
9994
9995         * bus/*.c: port over to object-instance API changes
9996
9997         * test/test-service.c: ditto
9998         
9999         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10000         name, we will have to fix up the rest of the code to also handle
10001         this
10002         (dbus_message_new): generic message-creation call
10003         (set_string_field): allow appending name field
10004
10005 2003-08-06  Havoc Pennington  <hp@pobox.com>
10006
10007         * dbus/dbus-object-registry.c: implement signal connection 
10008         and dispatch
10009
10010         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10011
10012         * dbus/dbus-internals.c (_dbus_memdup): new function
10013
10014 2003-08-02  Havoc Pennington  <hp@pobox.com>
10015
10016         * dbus/dbus-message.c (dbus_message_get_no_reply)
10017         (dbus_message_set_no_reply): add these and remove
10018         set_is_error/get_is_error
10019
10020         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10021         remove the ERROR flag, since there's now an ERROR type
10022
10023 2003-08-01  Havoc Pennington  <hp@pobox.com>
10024
10025         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10026         implement
10027
10028         * dbus/dbus-message.c (dbus_message_get_type): new function
10029
10030         * doc/dbus-specification.sgml: add "type" byte to messages
10031
10032 2003-08-01  Havoc Pennington  <hp@pobox.com>
10033
10034         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10035         a message type enum to distinguish kinds of message
10036         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10037         that need not be replied to
10038
10039 2003-08-01  Havoc Pennington  <hp@pobox.com>
10040
10041         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10042         (unpack_8_octets): fix no-64-bit-int bug
10043
10044         * dbus/dbus-object-registry.c (validate_id): validate the 
10045         connection ID bits, not just the instance ID.
10046
10047         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10048         the connection-global 33 bits of the object ID
10049
10050         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10051         object ID in the new way
10052
10053         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10054         define server/client/instance bits.
10055
10056 2003-07-30  Havoc Pennington  <hp@pobox.com>
10057
10058         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10059         build
10060
10061 2003-07-13  Havoc Pennington  <hp@pobox.com>
10062
10063         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10064         fields to DBusObjectVTable and DBusObjectInfo
10065
10066 2003-07-12  Havoc Pennington  <hp@pobox.com>
10067
10068         * dbus/dbus-object-registry.c: implement unit test,
10069         fix bugs discovered in process
10070
10071         * dbus/dbus-connection.c: remove handler_table and
10072         register_handler(), add DBusObjectRegistry usage
10073
10074         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10075         (dbus_object_id_set_null): new functions
10076
10077 2003-07-08  Havoc Pennington  <hp@pobox.com>
10078
10079         * dbus/dbus-object.c: implement some of this
10080
10081         * dbus/dbus-object-registry.c
10082         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10083         param
10084         (_dbus_object_registry_new): handle OOM
10085
10086 2003-07-08  Havoc Pennington  <hp@pobox.com>
10087
10088         * dbus/dbus-object.h: sketch out an API for registering objects
10089         with a connection, that allows us to use as little as 24 bytes
10090         per object and lets application code represent an object in 
10091         any conceivable way.
10092
10093         * dbus/dbus-object-registry.c: implement the hard bits of the
10094         DBusConnection aspect of object API. Not yet wired up.
10095         
10096 2003-07-06  Havoc Pennington  <hp@pobox.com>
10097
10098         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10099         (_dbus_marshal_object_id): new
10100         (_dbus_demarshal_object_id): new
10101         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10102         consolidate identical switch cases. Don't conditionalize handling
10103         of DBUS_TYPE_UINT64, need to handle the type always.
10104         (_dbus_marshal_validate_arg): consolidate identical cases, and
10105         handle DBUS_TYPE_OBJECT_ID
10106
10107         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10108
10109         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10110
10111 2003-09-28  Havoc Pennington  <hp@pobox.com>
10112
10113         * real 0.13 release
10114
10115 2003-09-28  Havoc Pennington  <hp@pobox.com>
10116
10117         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10118         to work with Debian db2html
10119
10120 2003-09-28  Havoc Pennington  <hp@pobox.com>
10121
10122         * configure.in: 0.13
10123
10124         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10125         stylesheet-images for benefit of Debian
10126         
10127         Change back to using filesystem-linked sockets for the system
10128         bus, so only root can create the default system bus address.
10129         
10130         * bus/system.conf.in: change to use
10131         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10132
10133         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10134         from here.
10135
10136         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10137         here, and AC_DEFINE DBUS_SYSTEM_PATH
10138
10139 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10140
10141         * doc/TODO:
10142         * doc/busconfig.dtd:
10143         Add busconfig DTD.
10144         
10145 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10146
10147         * doc/dbus-specification.sgml:
10148         Add activation reply values.
10149         
10150 2003-08-05  Havoc Pennington  <hp@redhat.com>
10151
10152         * configure.in: 0.12
10153
10154 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10155
10156         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10157         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10158         (add_watch), (remove_watch), (create_source):
10159         Refcount fds, fixes some reentrancy issues.
10160         
10161 2003-07-30  Havoc Pennington  <hp@redhat.com>
10162
10163         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10164         bus address to be abstract if we have abstract sockets
10165
10166         * NEWS: update
10167
10168 2003-07-28  Havoc Pennington  <hp@redhat.com>
10169
10170         * bus/messagebus.in: fix to avoid processname/servicename 
10171         confusion, from Michael Kearey
10172         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10173         
10174 2003-07-23  Havoc Pennington  <hp@pobox.com>
10175
10176         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10177         fix from Andy Hanton to remove broken "+1"
10178
10179 2003-07-16  Havoc Pennington  <hp@pobox.com>
10180
10181         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10182         babysitter process, as suggested by Thomas Leonard, so 
10183         an "eval `dbus-launch --exit-with-session`" will actually 
10184         return
10185
10186 2003-07-16  Havoc Pennington  <hp@pobox.com>
10187
10188         * configure.in: print out EXPANDED_* variables in the summary at
10189         the end; clean up the code that computes EXPANDED_ variables and
10190         get the ones using exec_prefix right. Should make things work
10191         when you build without --prefix
10192
10193 2003-06-29  Havoc Pennington  <hp@pobox.com>
10194
10195         * mono/Test.cs (class Test): fire up a main loop and run it
10196
10197         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10198         done once, the app has to do it
10199
10200 2003-06-26  Havoc Pennington  <hp@pobox.com>
10201
10202         * mono/Connection.cs: set up connection with the glib main loop
10203
10204 2003-07-01  Havoc Pennington  <hp@redhat.com>
10205
10206         * doc/dbus-specification.sgml: clarify the format of a type code,
10207         change suggested by Jim Blandy
10208
10209 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10210
10211         * doc/Makefile.am:
10212         * tools/Makefile.am: Don't assume srcdir == builddir.
10213
10214         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10215         the allocated block.
10216         (_dbus_memory_test): New function.
10217         * dbus/dbus-test.h: Add _dbus_memory_test ().
10218         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10219
10220         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10221         of %c%c%c%c.
10222         (dbus_message_new): Remove obsolete @todo.
10223
10224         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10225         (_dbus_marshal_set_uint64): Fix comment.
10226
10227         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10228         hardcode FIELD_REPLY_SERIAL.
10229
10230         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10231         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10232
10233         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10234         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10235
10236 2003-06-24  Havoc Pennington  <hp@pobox.com>
10237
10238         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10239
10240 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10241
10242         * configure.in:
10243         * gcj/.cvsignore:
10244         * gcj/Hello.java:
10245         * gcj/Makefile.am:
10246         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10247         * gcj/org/.cvsignore:
10248         * gcj/org/Makefile.am:
10249         * gcj/org/freedesktop/.cvsignore:
10250         * gcj/org/freedesktop/Makefile.am:
10251         * gcj/org/freedesktop/dbus/.cvsignore:
10252         * gcj/org/freedesktop/dbus/Makefile.am:
10253         * gcj/org/freedesktop/dbus/Message.java: (Message),
10254         (Message.Message):
10255         * gcj/org/freedesktop/dbus/natMessage.cc:
10256         Fix the build system.
10257
10258 2003-06-22  Havoc Pennington  <hp@pobox.com>
10259
10260         * mono/Connection.cs: add more bindings
10261
10262         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10263         more than once.
10264
10265 2003-06-22  Havoc Pennington  <hp@pobox.com>
10266
10267         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10268         Start wrapping more stuff.
10269
10270 2003-06-22  Havoc Pennington  <hp@pobox.com>
10271
10272         * mono/Message.cs: implement Message.Wrap() that ensures we only
10273         have a single C# wrapper per DBusMessage, assuming it works which
10274         it probably doesn't.
10275
10276         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10277         (dbus_message_free_data_slot): new
10278         (dbus_message_set_data): new
10279         (dbus_message_get_data): new
10280
10281 2003-06-22  Havoc Pennington  <hp@pobox.com>
10282
10283         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10284         (_dbus_data_slot_allocator_alloc): rework these to keep a
10285         reference count on each slot and automatically manage a global
10286         slot ID variable passed in by address
10287
10288         * bus/bus.c: convert to new dataslot API
10289
10290         * dbus/dbus-bus.c: convert to new dataslot API
10291
10292         * dbus/dbus-connection.c: convert to new dataslot API
10293
10294         * dbus/dbus-server.c: convert to new dataslot API
10295
10296         * glib/dbus-gmain.c: ditto
10297
10298         * bus/test.c: ditto
10299
10300         * bus/connection.c: ditto
10301
10302 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10303
10304         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10305         after the gcj checks so that the correct configuration tags
10306         will be added to libtool.
10307
10308         * dbus-glib-1.pc.in: No need to specify any includes since
10309         dbus-1.pc.in has those.
10310
10311 2003-06-22  Havoc Pennington  <hp@pobox.com>
10312
10313         * mono/*, gcj/*, configure.in, Makefile.am:
10314         Check in makefiles and subdirs for mono and gcj bindings.
10315         Neither binding actually exists, just trying to get through
10316         all the build and other boring bits.
10317
10318 2003-06-21  Philip Blundell  <philb@gnu.org>
10319
10320         * tools/dbus-monitor.1: Updated.
10321
10322         * tools/dbus-send.1: Likewise.
10323
10324 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10325
10326         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10327         for hangup and error after checking read so we won't discard
10328         pending data if both hangup and read are set.
10329
10330 2003-06-19  Philip Blundell  <philb@gnu.org>
10331
10332         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10333
10334         * tools/dbus-send.c: Accept both --system and --session.
10335
10336         * tools/dbus-monitor.c: Same here.
10337
10338 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10339
10340         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10341         from C++ (Patch by Miloslav Trmac).
10342
10343 2003-06-15  Joe Shaw  <joe@assbarn.com>
10344
10345         * configure.in: Check for socklen_t.
10346
10347         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10348
10349         * test/test-segfault.c: Add #include <sys/time.h>
10350
10351         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10352         dbus-launch needs it.
10353
10354 2003-06-09  Havoc Pennington  <hp@redhat.com>
10355
10356         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10357         SUN_LEN, it breaks abstract socket usage
10358
10359         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10360         starts of lines.
10361
10362 2003-06-04  Havoc Pennington  <hp@pobox.com>
10363
10364         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10365         using unix:abstract=/foo, and when listening in a tmpdir
10366         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10367
10368         * dbus/dbus-transport.c (_dbus_transport_open): support
10369         unix:abstract=/foo
10370
10371         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10372         support abstract sockets
10373
10374         * dbus/dbus-transport-unix.c
10375         (_dbus_transport_new_for_domain_socket): support abstract sockets
10376
10377         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10378         toggle as an argument, implement abstract namespace support
10379         (_dbus_listen_unix_socket): ditto
10380
10381         * configure.in: add --enable-abstract-sockets and implement
10382         a configure check for autodetection of the right value.
10383
10384 2003-06-01  Havoc Pennington  <hp@pobox.com>
10385
10386         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10387         in /tmp (though on Linux this will end up being useless,
10388         when we add abstract namespace support)
10389
10390         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10391         subst'ing it
10392
10393 2003-05-28  Colin Walters  <walters@verbum.org>
10394
10395         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10396
10397 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10398
10399         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10400
10401 2003-05-17  Colin Walters  <walters@gnu.org>
10402
10403         * tools/dbus-send.c: Don't exit with an error code if --help was
10404         passed.  Default to using the session bus instead of the system
10405         one.
10406
10407         * tools/dbus-launch.c: Ditto.
10408
10409         * tools/dbus-monitor.c: Ditto.
10410
10411         * tools/dbus-send.1: Update with new arguments.
10412
10413         * tools/dbus-launch.c: Emit code to export variables.  New
10414         arguments -s and -c to specify shell syntax, and a bit of code to
10415         autodetect syntax.  Also, allow specifying a program to run.
10416
10417         * tools/dbus-launch.1: Update with new arguments.
10418
10419         * tools/dbus-send.1: Ditto.
10420
10421         * tools/dbus-monitor.1: Ditto.
10422
10423 2003-05-17  Havoc Pennington  <hp@pobox.com>
10424
10425         * bus/config-parser.c (merge_included): merge in policies from
10426         child configuration file.
10427
10428         * bus/policy.c (bus_policy_merge): function to merge two policies
10429         together
10430
10431 2003-05-16  Havoc Pennington  <hp@redhat.com>
10432
10433         * dbus/dbus-connection.c: disable verbose lock spew
10434
10435         * tools/dbus-send.c: add --print-reply command line option
10436
10437         * tools/dbus-print-message.h (print_message): new util function
10438         shared by dbus-send and dbus-monitor
10439
10440         * tools/dbus-monitor.c (handler_func): exit on disconnect
10441
10442         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10443         disconnected, don't try to use the read_watch
10444
10445         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10446         so we can find this bug more easily
10447
10448 2003-05-16  Havoc Pennington  <hp@redhat.com>
10449
10450         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10451         NULL as DBusHashTable is annoyingly likely to do.
10452
10453 2003-05-16  Colin Walters  <walters@verbum.org>
10454
10455         * tools/dbus-monitor.c: Add --session argument and usage()
10456         function.
10457
10458         * tools/dbus-monitor.1: Update with new --session arg.
10459
10460         * bus/Makefile.am (install-data-hook): Create
10461         $(libdir)/dbus-1.0/services so that the session bus is happy.
10462
10463 2003-05-15  Havoc Pennington  <hp@redhat.com>
10464
10465         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10466         on non-x86. ifdef's are evil.
10467
10468 2003-05-15  Havoc Pennington  <hp@redhat.com>
10469
10470         * configure.in: 0.11
10471
10472         * NEWS: update
10473
10474         * bus/Makefile.am (initddir): apparently we are supposed to put
10475         init scripts in /etc/rc.d/init.d not /etc/init.d
10476
10477         * bus/Makefile.am: remove the "you must --enable-tests to make
10478         check" as it broke distcheck
10479
10480         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10481
10482 2003-05-13  James Willcox  <jwillcox@gnome.org>
10483
10484         * configure.in:
10485         * bus/activation.c: (bus_activation_service_created),
10486         (bus_activation_activate_service):
10487         * bus/driver.c: (bus_driver_send_service_deleted),
10488         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10489         (bus_driver_send_service_acquired),
10490         (bus_driver_send_welcome_message),
10491         (bus_driver_handle_list_services):
10492         * bus/session.conf.in:
10493         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10494         (dbus_bus_service_exists), (dbus_bus_activate_service):
10495         * dbus/dbus-bus.h:
10496
10497         Add some convenience API which lets you activate a service, and did a
10498         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10499         and dbus_message_get_args()
10500
10501 2003-05-11  Havoc Pennington  <hp@pobox.com>
10502
10503         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10504         calling _dbus_marshal_validate_arg() for every byte in a byte
10505         array, etc.
10506
10507         * dbus/dbus-message-handler.c: use atomic reference counting to
10508         reduce number of locks slightly; the global lock in here sucks
10509
10510         * dbus/dbus-connection.c
10511         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10512         update_dispatch_status that can be called with lock held; then use
10513         in a couple places to reduce locking/unlocking
10514         (dbus_connection_send): hold the lock over the whole function
10515         instead of acquiring it twice.
10516
10517         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10518
10519         * bus/connection.c (bus_connections_setup_connection): fix access
10520         to already-freed memory.
10521
10522         * dbus/dbus-connection.c: keep a little cache of linked list
10523         nodes, to avoid using the global linked list alloc lock in the
10524         normal send-message case. Instead we just use the connection lock
10525         that we already have to take.
10526
10527         * dbus/dbus-list.c (_dbus_list_find_last): new function
10528
10529         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10530         change to use a struct for the atomic type; fix docs,
10531         they return value before increment, not after increment.
10532
10533         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10534         (_dbus_string_append_8_aligned): new functions to try to
10535         microoptimize this operation.
10536         (reallocate_for_length): break this out of set_length(), to
10537         improve profile info, and also so we can consider inlining the
10538         set_length() part.
10539
10540         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10541         strings with some preallocation, cuts down on our calls to realloc
10542         a fair bit. Though if we can get the "move entire string to empty
10543         string" optimization below to kick in here, it would be better.
10544
10545         * dbus/dbus-string.c (_dbus_string_move): just call
10546         _dbus_string_move_len
10547         (_dbus_string_move_len): add a special case for moving
10548         an entire string into an empty string; we can just
10549         swap the string data instead of doing any reallocs.
10550         (_dbus_string_init_preallocated): new function
10551
10552 2003-05-11  Havoc Pennington  <hp@pobox.com>
10553
10554         Write a "test-profile" that does echo client-server with threads;
10555         profile reveals lock contention, memcpy/realloc of buffers, and
10556         UTF-8 validation as hot spots. 20% of lock contention eliminated
10557         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10558         contention is global mempool locks for GList and DBusList.
10559
10560         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10561         x86 implementation
10562
10563         * dbus/dbus-connection.c (struct DBusConnection): use
10564         dbus_atomic_t for the reference count
10565
10566         * dbus/dbus-message.c (struct DBusMessage): declare
10567         dbus_atomic_t values as volatile
10568
10569         * configure.in: code to detect ability to use atomic integer
10570         operations in assembly, from GLib patch
10571
10572         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10573         time, tired of it being wrong in threads and forked processes
10574
10575         * glib/test-profile.c: a little program to bounce messages back
10576         and forth between threads and eat CPU
10577
10578         * dbus/dbus-connection.c: add debug spew macros for debugging
10579         thread locks; include config.h at top; fix deadlock in
10580         dbus_connection_flush()
10581
10582 2003-05-08  Havoc Pennington  <hp@pobox.com>
10583
10584         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10585         data from getting written, and there wasn't a good reason to
10586         use _exit really.
10587
10588         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10589         dbus_verbose lines in test coverage
10590         (main): add list of functions sorted by # of untested blocks
10591         to the coverage report
10592
10593         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10594
10595         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10596
10597         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10598         extend test coverage
10599
10600         * test/data/auth/cancel.auth-script: test canceling an
10601         authentication
10602
10603         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10604         aren't used. in CVS history if we end up needing them.
10605
10606 2003-05-04  Havoc Pennington  <hp@pobox.com>
10607
10608         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10609         unit test
10610
10611         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10612         function, which assumed length was in # of strings, not bytes
10613
10614         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10615         missing coverage
10616
10617         * dbus/dbus-connection.c
10618         (_dbus_connection_queue_received_message): disable function for
10619         now, we are only using it in test mode
10620
10621         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10622         remove a mistaken FIXME
10623
10624 2003-05-04  Havoc Pennington  <hp@pobox.com>
10625
10626         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10627         unlock mutex on successful return, patch from Anders Gustafsson
10628
10629 2003-05-04  Havoc Pennington  <hp@pobox.com>
10630
10631         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10632         Anders Gustafsson
10633
10634 2003-05-04  Havoc Pennington  <hp@pobox.com>
10635
10636         * tools/dbus-launch.c: implement
10637
10638         * bus/main.c (main), bus/bus.c (bus_context_new):
10639         implement --print-pid and --fork
10640
10641 2003-05-03  Havoc Pennington  <hp@redhat.com>
10642
10643         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10644         the address had no value, and add to test suite. Fix and
10645         regression test from Miloslav Trmac
10646
10647 2003-05-03  Havoc Pennington  <hp@pobox.com>
10648
10649         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10650         watch is invalid when handled
10651
10652         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10653         dbus-launch utility to launch the bus from a shell script.  Didn't
10654         actually implement dbus-launch yet, it's just a placeholder still.
10655
10656 2003-05-03  Havoc Pennington  <hp@pobox.com>
10657
10658         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10659         daemon; also documents daemon config file, so replaces
10660         doc/config-file.txt. Corrected some stuff from config-file.txt in
10661         the process of moving it.
10662
10663 2003-05-03  Havoc Pennington  <hp@pobox.com>
10664
10665         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10666         add some man pages
10667
10668 2003-05-03  Colin Walters  <walters@verbum.org>
10669
10670         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10671         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10672
10673         * Makefile.am: Update to use new .pc versioning scheme.
10674
10675 2003-05-02  Havoc Pennington  <hp@redhat.com>
10676
10677         * bus/system.conf.in: allow send/receive to/from message bus
10678         service
10679
10680 2003-04-30  Havoc Pennington  <hp@redhat.com>
10681
10682         * configure.in: print a note when building with unit tests and
10683         without assertions
10684
10685 2003-04-30  Havoc Pennington  <hp@redhat.com>
10686
10687         * Makefile.am: add a check-local that complains if you didn't
10688         configure with --enable-tests
10689
10690 2003-04-29  Havoc Pennington  <hp@redhat.com>
10691
10692         * glib/dbus-gmain.c: docs cleanups
10693
10694         * dbus/dbus-types.h: add docs on int64 types
10695
10696         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10697         public API docs section
10698
10699 2003-04-29  Havoc Pennington  <hp@redhat.com>
10700
10701         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10702         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10703         parallel install API version, not with the D-BUS package version.
10704
10705         * HACKING: move some of README over here
10706
10707         * README: updates, and document API/ABI policy
10708
10709         * configure.in: reindentation
10710
10711 2003-04-29  Havoc Pennington  <hp@redhat.com>
10712
10713         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10714         to use this library" to be sure people have the right
10715         expectations.
10716
10717 2003-04-28  Havoc Pennington  <hp@redhat.com>
10718
10719         * configure.in: add --enable-docs which by default is auto yes if
10720         doxygen and db2html found, no otherwise; but can be forced on/off
10721
10722         * doc/Makefile.am: conditionalize whether to build docs on
10723         --enable-docs
10724
10725 2003-04-28  Havoc Pennington  <hp@redhat.com>
10726
10727         * configure.in: 0.10
10728
10729         * NEWS: update
10730
10731         * bus/system.conf.in: add <includedir>system.d</includedir>
10732
10733         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10734         username was provided but not uid
10735
10736         * bus/config-parser.c (struct BusConfigParser): keep track of
10737         whether the parser is toplevel or was included; change some
10738         of the error handling if it's included.
10739
10740 2003-04-27  Havoc Pennington  <hp@pobox.com>
10741
10742         Unbreak my code...
10743
10744         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10745         report correct status if we finish processing authentication
10746         inside this function.
10747
10748         * bus/activation.c (try_send_activation_failure): use
10749         bus_transaction_send_error_reply
10750
10751         * bus/connection.c (bus_connection_get_groups): return an error
10752         explaining the problem
10753
10754         * bus/bus.c (bus_context_check_security_policy): implement
10755         restriction here that inactive connections can only send the
10756         hello message. Also, allow bus driver to send anything to
10757         any recipient.
10758
10759         * bus/connection.c (bus_connection_complete): create the
10760         BusClientPolicy here instead of on-demand.
10761         (bus_connection_get_policy): don't return an error
10762
10763         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10764         sender field in message being replied to
10765
10766         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10767         causing it to return FALSE always
10768
10769         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10770         we checked sender rather than destination
10771
10772 2003-04-25  Havoc Pennington  <hp@redhat.com>
10773
10774         test suite is slightly hosed at the moment, will fix soon
10775
10776         * bus/connection.c (bus_connections_expire_incomplete): fix to
10777         properly disable the timeout when required
10778         (bus_connection_set_name): check whether we can remove incomplete
10779         connections timeout after we complete each connection.
10780
10781         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10782         probably still broken.
10783
10784         * bus/services.c (bus_registry_acquire_service): implement max
10785         number of services owned, and honor allow/deny rules on which
10786         services a connection can own.
10787
10788         * bus/connection.c (bus_connection_get_policy): report errors here
10789
10790         * bus/activation.c: implement limit on number of pending
10791         activations
10792
10793 2003-04-25  Havoc Pennington  <hp@redhat.com>
10794
10795         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10796         where we used >= 0 instead of != DBUS_UID_UNSET.
10797
10798 2003-04-25  Havoc Pennington  <hp@redhat.com>
10799
10800         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10801         were toggled without add/remove, fix from Anders Gustafsson
10802
10803 2003-04-24  Havoc Pennington  <hp@redhat.com>
10804
10805         * test/data/valid-config-files/basic.conf: add <limit> tags to
10806         this test
10807
10808         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10809         <limit> tag in configuration file.
10810
10811 2003-04-24  Havoc Pennington  <hp@redhat.com>
10812
10813         * bus/dispatch.c: somehow missed some name_is
10814
10815         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10816         (_dbus_timeout_set_interval): new
10817
10818         * bus/connection.c (bus_connections_setup_connection): record time
10819         when each connection is first set up, and expire them after the
10820         auth timeout passes.
10821
10822 2003-04-24  Havoc Pennington  <hp@redhat.com>
10823
10824         * dbus/dbus-message.c (dbus_message_name_is): rename
10825         (dbus_message_service_is): rename
10826         (dbus_message_sender_is): rename
10827         (dbus_message_get_service): rename
10828
10829 2003-04-24  Havoc Pennington  <hp@redhat.com>
10830
10831         * configure.in: add --enable-checks
10832
10833         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10834
10835         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10836         to use thread locks.
10837         (_dbus_connection_handler_destroyed_locked): move some private
10838         functions into proper docs group
10839
10840         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10841         _dbus_return_val_if_fail
10842
10843         Throughout: use dbus_return_if_fail
10844
10845 2003-04-23  James Willcox  <jwillcox@gnome.org>
10846
10847         * glib/dbus-glib.h:
10848         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10849         (dbus_connection_setup_with_g_main),
10850         (dbus_server_setup_with_g_main):
10851         * glib/test-dbus-glib.c: (main):
10852         * glib/test-thread-client.c: (main):
10853         * glib/test-thread-server.c: (new_connection_callback), (main):
10854         * tools/dbus-monitor.c: (main):
10855
10856         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10857         and dbus_server_setup_with_g_main().
10858
10859 2003-04-20  Havoc Pennington  <hp@pobox.com>
10860
10861         * doc/dbus-specification.sgml: document the restrictions on
10862         message and service names
10863
10864 2003-04-22  Havoc Pennington  <hp@redhat.com>
10865
10866         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10867         support, and do some code cleanups to share more code and
10868         speed up array marshal/demarshal.
10869
10870         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10871
10872         * configure.in: generate dbus-arch-deps.h
10873
10874         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10875         64-bit typecodes
10876
10877 2003-04-22  Havoc Pennington  <hp@redhat.com>
10878
10879         * test/data/valid-messages/opposite-endian.message: fix test
10880         to use proper type for rply field
10881
10882         * test/data/invalid-messages: add tests for below validation
10883
10884         * dbus/dbus-message.c (decode_header_data): validate field types,
10885         and validate that named fields are valid names
10886         (decode_name_field): consider messages in the
10887         org.freedesktop.Local. namespace to be invalid.
10888
10889         * dbus/dbus-string.c (_dbus_string_validate_name): new
10890
10891 2003-04-19  Havoc Pennington  <hp@pobox.com>
10892
10893         * bus/driver.c (bus_driver_handle_hello): check limits and
10894         return an error if they are exceeded.
10895
10896         * bus/connection.c: maintain separate lists of active and inactive
10897         connections, and a count of each. Maintain count of completed
10898         connections per user. Implement code to check connection limits.
10899
10900         * dbus/dbus-list.c (_dbus_list_unlink): export
10901
10902         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10903         number of bytes in the message queue for a connection
10904
10905 2003-04-18  Havoc Pennington  <hp@pobox.com>
10906
10907         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10908
10909         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10910         memleaks
10911
10912         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10913         on realloc be sure to update the pointer in the keyring
10914
10915         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10916         offset to avoid writing to unallocated memory
10917
10918         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10919         try the next mechanism, so we properly handle OOM
10920
10921         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10922         on OOM.
10923         (_dbus_keyring_new): fix OOM bug
10924         (_dbus_keyring_new_homedir): always set error; impose a maximum
10925         number of keys we'll load from the file, mostly to speed up the
10926         test suite and make its OOM checks more useful, but also for
10927         general sanity.
10928
10929         * dbus/dbus-auth.c (process_error_server): reject authentication
10930         if we get an error from the client
10931         (process_cancel): on cancel, send REJECTED, per the spec
10932         (process_error_client): send CANCEL if we get an error from the
10933         server.
10934
10935 2003-04-18  Havoc Pennington  <hp@pobox.com>
10936
10937         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10938         debug spew
10939
10940         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10941         handling problem
10942
10943         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10944         about DBUS_TEST_HOMEDIR once
10945
10946         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10947         the environment
10948
10949         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10950         config file so we test the right thing
10951
10952         Throughout: assorted docs improvements
10953
10954 2003-04-18  Havoc Pennington  <hp@pobox.com>
10955
10956         * glib/dbus-gmain.c: adapt to watch changes
10957
10958         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10959
10960         * dbus/dbus-server.h: remove dbus_server_handle_watch
10961
10962         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10963
10964         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10965         like DBusTimeout, so we don't need dbus_connection_handle_watch
10966         etc.
10967
10968 2003-04-17  Havoc Pennington  <hp@redhat.com>
10969
10970         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10971         database usage so it all goes via the DBusUserDatabase cache.
10972
10973 2003-04-17  Havoc Pennington  <hp@redhat.com>
10974
10975         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10976         there was an OOM watch we skipped, we always return TRUE so we
10977         iterate again to have a look at it again. Fixes test suite hang.
10978         Code rearrangement also lets us lose some memset and only iterate
10979         over callbacks once.
10980
10981         * bus/driver.c (bus_driver_handle_message): sense of test for
10982         reply was backward
10983
10984 2003-04-16  Havoc Pennington  <hp@pobox.com>
10985
10986         * doc/dbus-specification.sgml: make spec say serials are unsigned
10987
10988         * dbus/dbus-message.h: change message serials to unsigned
10989
10990         * dbus/dbus-connection.c: adapt to message serials being unsigned
10991
10992 2003-04-15  Havoc Pennington  <hp@pobox.com>
10993
10994         * bus/bus.c: create and keep around a shared DBusUserDatabase
10995         object.
10996
10997         * bus/connection.c (bus_connection_get_groups): don't cache
10998         groups for user in the connection object, since user database
10999         object now does that.
11000
11001 2003-04-16  Havoc Pennington  <hp@redhat.com>
11002
11003         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11004         list of size counters
11005         (_dbus_message_loader_putback_message_link): put back a popped link
11006
11007         * dbus/dbus-connection.c
11008         (dbus_connection_set_max_live_messages_size): rename
11009         max_received_size
11010         (dbus_connection_get_outgoing_size): get size of outgoing
11011         queue
11012         (_dbus_connection_set_connection_counter): remove this cruft
11013
11014 2003-04-14  Havoc Pennington  <hp@redhat.com>
11015
11016         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11017         caching, but at some point we might want to be able to use a
11018         different database.
11019
11020         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11021         SHA1 conf file to test the sha1 auth mechanism, since the regular
11022         test always uses EXTERNAL when available.
11023
11024         * configure.in,
11025         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11026         add conf file that requires use of sha1 auth
11027
11028 2003-04-13  Havoc Pennington  <hp@pobox.com>
11029
11030         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11031         from Philip Blundell to send messages and monitor them.
11032
11033 2003-04-13  Havoc Pennington  <hp@pobox.com>
11034
11035         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11036         callbacks
11037
11038         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11039         users
11040
11041         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11042         fix to only recover unused bytes if we're already authenticated
11043         (_dbus_transport_get_is_authenticated): fix to still mark us
11044         authenticated if there are unused bytes.
11045
11046         * bus/dispatch.c: implement security policy checking
11047
11048         * bus/connection.c (bus_transaction_send_from_driver): new
11049
11050         * bus/bus.c (bus_context_check_security_policy): new
11051
11052         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11053         now we just set the DBusError and it gets converted to an error
11054         reply.
11055
11056         * bus/connection.c (allow_user_function): enable code using actual
11057         data from the config file
11058
11059         * bus/policy.c (list_allows_user): handle wildcard rules for
11060         user/group connection perms
11061
11062 2003-04-13  Havoc Pennington  <hp@pobox.com>
11063
11064         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11065
11066         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11067
11068         * bus/policy.c (bus_policy_append_mandatory_rule)
11069         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11070         (bus_policy_append_group_rule): new functions
11071
11072 2003-04-12  Havoc Pennington  <hp@pobox.com>
11073
11074         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11075
11076         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11077         the pid/gid/uid, just for paranoia.
11078
11079         * test/break-loader.c (randomly_do_n_things): find a byte
11080         containing a type code, and randomly change it to a different
11081         type code.
11082
11083 2003-04-12  Havoc Pennington  <hp@pobox.com>
11084
11085         * bus/policy.h: change BusPolicy to be the thing from the config
11086         file, and rename old BusPolicy to BusClientPolicy
11087
11088         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11089         match change in how policy works
11090
11091         * dbus/dbus-internals.h: mark assert_not_reached as
11092         __attribute((noreturn))__
11093
11094 2003-04-11  Havoc Pennington  <hp@redhat.com>
11095
11096         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11097         the broadcast service. Use boolean return for ServiceExists.
11098
11099 2003-04-11  Havoc Pennington  <hp@redhat.com>
11100
11101         * configure.in: add another directory to look for qt in.
11102
11103 2003-04-11  Havoc Pennington  <hp@redhat.com>
11104
11105         * AUTHORS: add Colin Walters
11106
11107 2003-04-11  Havoc Pennington  <hp@redhat.com>
11108
11109         * NEWS: update
11110
11111         * configure.in: 0.9
11112
11113 2003-04-11  Havoc Pennington  <hp@redhat.com>
11114
11115         * bus/messagebus.in: remove pid file when stopping the
11116         message bus, since the bus won't have privileges to remove it
11117         itself.
11118
11119 2003-04-11  Havoc Pennington  <hp@redhat.com>
11120
11121         * bus/bus.c (bus_context_new): move credentials change after
11122         creating pidfile
11123
11124 2003-04-11  Havoc Pennington  <hp@pobox.com>
11125
11126         * test/decode-gcov.c: add "below average functions" to the
11127         coverage report, and change how some of the code works.
11128
11129         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11130         not in the coverage stats.
11131
11132         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11133         couple places so running the test suite doesn't result in megaspam.
11134
11135 2003-04-11  Havoc Pennington  <hp@pobox.com>
11136
11137         * bus/dispatch.c (check_existent_service_activation): accept a no
11138         memory error in a place we didn't before
11139
11140         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11141         in case the first one failed," since the test suite is less
11142         broken now.
11143
11144 2003-04-10  Havoc Pennington  <hp@pobox.com>
11145
11146         * bus/dispatch.c (check_segfault_service_activation): add test
11147         for launching an executable that just crashes.
11148
11149         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11150         don't leave a million cores. We'll see how portable this is.
11151
11152 2003-04-10  Havoc Pennington  <hp@pobox.com>
11153
11154         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11155         the possible parent failures before we fork, so that we don't
11156         fail to create a babysitter after creating the child.
11157
11158         * bus/activation.c (bus_activation_activate_service): kill child
11159         if we don't successfully complete the activation.
11160
11161 2003-04-10  Havoc Pennington  <hp@redhat.com>
11162
11163         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11164         the connection if it's disconnected
11165
11166         * bus/activation.c (bus_activation_service_created): use new
11167         transaction features to roll back removal of pending activation if
11168         we don't successfully create the service after all. Don't remove
11169         pending activation if the function fails.
11170
11171         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11172         (_dbus_list_insert_after_link): new code to facilitate
11173         services.c fixes
11174
11175         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11176         new functionality, so we can preallocate the ability to insert
11177         into a hash table.
11178
11179         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11180         allowing us to put custom hooks in a transaction to be used for
11181         cancelling said transaction
11182
11183         * doc/dbus-specification.sgml: add some discussion of secondary
11184         service owners, and disallow zero-length service names
11185
11186         * bus/services.c (bus_registry_acquire_service): new function,
11187         splits out part of bus_driver_handle_acquire_service() and fixes
11188         a bug where we didn't remove the service doing the acquiring
11189         from the secondary queue if we failed to remove the current owner
11190         from the front of the queue.
11191
11192 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11193
11194         * doc/dbus-specification.sgml:
11195         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11196
11197 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11198
11199         * bus/.cvsignore:
11200         * glib/.cvsignore:
11201         * test/.cvsignore:
11202         Added files to cvsignore
11203
11204         * dbus/dbus-message.h:
11205         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11206         Make get_named() take two out argument and return a boolean.
11207         (dbus_message_iter_get_args_valist):
11208         Update usage of get_named().
11209         (dbus_message_iter_append_byte):
11210         Fix typo
11211         (dbus_message_iter_append_named)
11212         Fix typo
11213         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11214         More tests.
11215
11216 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11217
11218         * dbus/dbus-marshal.[ch]:
11219         Add array_type_pos argument to _dbus_marshal_validate_arg.
11220         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11221
11222         * dbus/dbus-message.[ch]:
11223         Multi-dimensional arrays have full type specification in the
11224         outermost array. Iter code re-arranged to handle this.
11225         Added some more iter tests.
11226
11227         * doc/dbus-specification.sgml:
11228         Add me to authors.
11229         Remove old FIXME.
11230         Update new array encoding description.
11231         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11232
11233         * test/data/invalid-messages/array-with-mixed-types.message:
11234         * test/data/valid-messages/array-of-array-of-uint32.message:
11235         Change to the new array format.
11236
11237         * test/data/invalid-messages/too-short-dict.message:
11238         Fix bug in test.
11239
11240         * test/data/valid-messages/recursive-types.message:
11241         Fix up and extend test.
11242
11243 2003-04-10  Havoc Pennington  <hp@pobox.com>
11244
11245         * bus/dispatch.c: lots of fixes
11246
11247         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11248         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11249         that was crack, broke the test service.
11250
11251         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11252         handling to avoid piling up errors if we get a failure on the
11253         first address.
11254
11255         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11256         pid in assertion failures.
11257
11258         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11259         to some fixed size of file descriptor array. Don't return TRUE
11260         anytime a timeout exists, that led to lots of busy loop silliness
11261         in the tests.
11262
11263 2003-04-09  Havoc Pennington  <hp@redhat.com>
11264
11265         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11266         I'd checked this in earlier but hadn't.
11267
11268 2003-04-09  Havoc Pennington  <hp@redhat.com>
11269
11270         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11271         the activation test (man this is getting old!)
11272
11273 2003-04-09  Havoc Pennington  <hp@redhat.com>
11274
11275         * test/test-utils.c: use dispatch status function to fix this up
11276
11277         * bus/connection.c (connection_watch_callback): don't dispatch
11278         from here
11279         (connection_timeout_callback): don't dispatch from here
11280         (bus_connections_setup_connection): set the dispatch status function
11281         (bus_connection_disconnected): unset it
11282
11283         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11284         used to add a connection to be dispatched
11285         (_dbus_loop_iterate): do the dispatching at the end of each
11286         iteration
11287
11288         * dbus/dbus-connection.c
11289         (dbus_connection_set_dispatch_status_function): new function
11290         allowing us to fix up main loop usage
11291         (_dbus_connection_last_unref): free all the various function
11292         user data
11293         (dbus_connection_dispatch): call the DispatchStatusFunction
11294         whenever this function returns
11295         (dbus_connection_handle_watch): call DispatchStatusFunction
11296         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11297         (reply_handler_timeout): call DispatchStatusFunction
11298         (dbus_connection_flush): call DispatchStatusFunction
11299
11300 2003-04-09  Havoc Pennington  <hp@redhat.com>
11301
11302         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11303         a memory leak
11304
11305         * bus/dispatch.c (check_service_activated): fix bug in test
11306
11307         * dbus/dbus-mainloop.c (check_timeout): fix this up
11308
11309         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11310         verbose output so we can sort out output from different processes,
11311         e.g. in the activation case.
11312
11313 2003-04-08  Colin Walters  <walters@gnu.org>
11314
11315         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11316         the pid file.
11317         (bus_context_new): Set it.
11318         (bus_context_unref): Use it to delete the pid file.
11319
11320 2003-04-08  Havoc Pennington  <hp@redhat.com>
11321
11322         * test/data/invalid-messages/array-with-mixed-types.message:
11323         regression test that fails for the moment
11324
11325         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11326         tests for convenience
11327
11328         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11329         array of nil, it broke things.
11330
11331         * test/data/invalid-messages/array-of-nil.message: regression test
11332
11333         * test/data/valid-messages/array-of-array-of-uint32.message:
11334         happened to write this so added it to suite
11335
11336 2003-04-08  Havoc Pennington  <hp@redhat.com>
11337
11338         * bus/driver.c (bus_driver_handle_acquire_service): init
11339         retval/reply before checking name
11340
11341         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11342         recursion depth argument
11343
11344         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11345         in the public struct for future extension
11346
11347         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11348         typo
11349
11350         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11351         message
11352
11353         * doc/dbus-specification.sgml: fix typo
11354
11355 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11356
11357         Implemented recursive types, named types and new-style iters
11358
11359         * bus/driver.c:
11360         * glib/test-thread-client.c: (thread_func):
11361         * glib/test-thread-server.c: (handle_test_message):
11362         * test/test-service.c: (handle_echo):
11363         Update to new api
11364
11365         * dbus/Makefile.am:
11366         * dbus/dbus-dict.c:
11367         * dbus/dbus-dict.h:
11368         * dbus/dbus.h
11369         Remove DBusDict
11370
11371         * dbus/dbus-internals.c: (_dbus_type_to_string):
11372         Update for new types.
11373
11374         * dbus/dbus-marshal.[ch]:
11375         Implement recursive types and the new marshalling format.
11376         Remove hardcoded dict marshalling.
11377         Marshal named types.
11378
11379         * dbus/dbus-message-builder.c:
11380         Add BYTE_ARRAY.
11381         Remove references to old types
11382
11383         * dbus/dbus-message.[ch]:
11384         New non-refcounted iter API that supports recursive iters.
11385         Use iters for appending, including support for recursive
11386         iters.
11387         Add byte and named type support.
11388         Update everything to new marshalling formats.
11389         Add tests for new API.
11390
11391         * dbus/dbus-protocol.h:
11392         Remove old array types.
11393         Add types: BYTE, ARRAY, DICT, NAMED
11394
11395         * dbus/dbus-string.c:
11396         * dbus/dbus-sysdeps.c:
11397         Make parse_double locale safe.
11398
11399         * dbus/dbus-test-main.c:
11400         Call setlocale.
11401
11402         * dbus/dbus-test.c:
11403         Kill dict test
11404
11405         * doc/dbus-specification.sgml:
11406         Update spec
11407
11408         * test/data/incomplete-messages/missing-body.message:
11409         * test/data/invalid-messages/bad-boolean.message:
11410         * test/data/invalid-messages/bad-boolean-array.message:
11411         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11412         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11413         * test/data/invalid-messages/too-short-dict.message:
11414         * test/data/valid-messages/dict-simple.message:
11415         * test/data/valid-messages/dict.message:
11416         * test/data/valid-messages/emptiness.message:
11417         * test/data/valid-messages/lots-of-arguments.message:
11418         * test/data/valid-messages/no-padding.message:
11419         * test/data/valid-messages/recursive-types.message:
11420         Add missing NAME fields
11421         Fix up dicts & arrays
11422
11423         * test/data/invalid-messages/dict-with-nil-value.message:
11424         Removed, this is not invalid anymore.
11425
11426         * test/data/valid-messages/recursive-types.message:
11427         Add new test for deeply recursive types.
11428
11429 2003-04-07  Havoc Pennington  <hp@pobox.com>
11430
11431         * bus/driver.c (bus_driver_handle_acquire_service): return an
11432         error if you try to acquire a service that starts with ':'
11433
11434 2003-04-07  Havoc Pennington  <hp@redhat.com>
11435
11436         * doc/dbus-specification.sgml: require that base service names
11437         start with ':' and that the base service is created/deleted
11438         as first and last things a connection does on the bus
11439
11440         * bus/dispatch.c (check_existent_service_activation): lots more
11441         work on the activation test; it doesn't fully pass yet...
11442
11443         * test/test-service.c (main): fix so we don't memleak the
11444         connection to the message bus
11445         (filter_func): accept a message asking us to exit
11446
11447 2003-04-06  Havoc Pennington  <hp@pobox.com>
11448
11449         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11450         from Colin Walters
11451
11452         * configure.in: fixes to Qt detection from Colin Walters
11453
11454         * doc/Makefile.am: Only remove generated docbook dirs if they
11455         exist, from Colin Walters
11456
11457         * dbus/dbus-bus.c: change how we set well-known connections to
11458         NULL, so that it works if a single connection is stored in
11459         two well-known array slots.
11460
11461         * test/Makefile.am: remove a lot of stuff that isn't immediately
11462         useful, it's in CVS history if we want it.
11463
11464         * test/test-service.c: use dbus-mainloop instead of that
11465         watch.[hc] crack
11466
11467 2003-04-06  Havoc Pennington  <hp@pobox.com>
11468
11469         * dbus/Makefile.am: split lists of sources into stuff that goes in
11470         the library, util functions that go in the lib and are also used
11471         elsewhere, and util functions that are used in tests/daemon but
11472         don't go in the lib.
11473
11474         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11475         here so it can be used in test binaries also
11476
11477 2003-04-06  Havoc Pennington  <hp@pobox.com>
11478
11479         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11480         here in the parent process, so we can return an error if it
11481         fails. Also, move some of the code into the child so the parent
11482         is less hosed if we fail midway through.
11483
11484         * bus/bus.c (bus_context_new): move pidfile detection further up
11485         in the function, before we start overwriting sockets and such.
11486
11487         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11488
11489         * configure.in: add --with-system-pid-file and --with-system-socket
11490
11491 2003-04-06  Colin Walters  <walters@verbum.org>
11492
11493         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11494
11495         * bus/system.conf.in: Declare a pidfile.
11496
11497         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11498         create one (if appropriate).
11499
11500         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11501         (struct BusConfigParser) [pidfile]: New.
11502         (element_type_to_name, merge_included, start_busconfig_child)
11503         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11504         (bus_config_parser_unref): Free it.
11505         (bus_config_parser_get_pidfile): New function.
11506
11507         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11508
11509         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11510
11511         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11512
11513         * dbus/dbus-sysdeps.h: Prototype it.
11514
11515 2003-04-06  Havoc Pennington  <hp@pobox.com>
11516
11517         * bus/bus.c (bus_context_new): print the address in here, rather
11518         than in main(), because we need to do it before forking the daemon
11519
11520         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11521         on the service nonexistent error
11522
11523         * bus/driver.c (bus_driver_handle_acquire_service): set the
11524         sender on the AcquireService reply
11525
11526         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11527         server also listen on a UNIX socket so services can connect to it.
11528
11529 2003-04-06  Havoc Pennington  <hp@pobox.com>
11530
11531         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11532         so it detects deadlocks and also we actually init threads when
11533         debugging.
11534
11535 2003-04-06  Havoc Pennington  <hp@pobox.com>
11536
11537         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11538         save the domain socket name, and unlink it when we disconnect the
11539         server. Means that at least when we exit normally, we won't leave
11540         a bunch of junk in /tmp
11541
11542         * dbus/dbus-transport-unix.c
11543         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11544         memory management). (I was making a real change here but then
11545         didn't)
11546
11547 2003-04-06  Havoc Pennington  <hp@pobox.com>
11548
11549         * bus/bus.c (bus_context_new): fix wrong handling of
11550         server_data_slot_unref() in the error case.
11551
11552         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11553         "(condition) != 0" to _dbus_real_assert so that
11554         "_dbus_assert (pointer)" doesn't cause a warning
11555
11556         * bus/main.c (main): accept --print-address option to print out
11557         the message bus address
11558
11559         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11560
11561         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11562         "tmpdir" option to unix: address on client side
11563
11564         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11565         to unix: address
11566
11567         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11568         we can use to create sockets in the test suite.
11569
11570         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11571         cleanly. To be used for testing.
11572
11573         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11574
11575         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11576
11577         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11578         handle trying to call this when there's no servers active
11579
11580 2003-04-05  Havoc Pennington  <hp@pobox.com>
11581
11582         * NEWS: update
11583
11584         * configure.in: 0.8
11585
11586 2003-04-05  Havoc Pennington  <hp@pobox.com>
11587
11588         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11589         crash on startup. Need to get "try starting the daemon"
11590         in the test suite I guess. ;-)
11591
11592         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11593         tracked the number of open connections; it's better done in
11594         application-specific code as you want it to span all servers etc.
11595
11596 2003-04-05  Havoc Pennington  <hp@pobox.com>
11597
11598         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11599         patch from Colin Walters
11600
11601 2003-04-05  Havoc Pennington  <hp@pobox.com>
11602
11603         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11604         reality; in fact multiple mechanisms are allowed.
11605
11606         * dbus/dbus-internals.c (_dbus_real_assert)
11607         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11608         _dbus_assert_not_reached() into functions, so that they don't show
11609         up in basic block counts for test coverage, and don't use up as
11610         much disk space. Does mean slower execution speed though, so
11611         assumes --disable-asserts is the normal production case.
11612
11613 2003-04-05  Havoc Pennington  <hp@pobox.com>
11614
11615         * test/Makefile.am (dist-hook): also dist *.in files
11616
11617         * NEWS: update
11618
11619         * configure.in: 0.7
11620
11621 2003-04-05  Havoc Pennington  <hp@pobox.com>
11622
11623         * dbus/dbus-string.c: docs warning
11624
11625         * dbus/dbus-spawn.c: missing docs
11626
11627         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11628
11629 2003-04-05  Havoc Pennington  <hp@pobox.com>
11630
11631         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11632         magic from GLib
11633
11634         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11635         to -1 once we've reaped the babysitter
11636         (_dbus_babysitter_handle_watch): do as much work as we can, not
11637         just one go of it
11638
11639         * bus/activation.c: add code using DBusBabysitter so that we
11640         handle it when a service fails to start up properly.
11641         (bus_activation_service_created): don't remove the activation
11642         entries as we go, just let them get removed when we free the pending
11643         activation. Unref reply messages after sending them.
11644
11645 2003-04-05  Havoc Pennington  <hp@pobox.com>
11646
11647         * test/decode-gcov.c (main): print per-directory stats in the report
11648
11649         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11650
11651 2003-04-05  Havoc Pennington  <hp@pobox.com>
11652
11653         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11654
11655         * test/decode-gcov.c: hack up a little program to suck data
11656         out of gcov files. Yes this is sort of silly.
11657
11658         * configure.in: define something in config.h and do an
11659         AM_CONDITIONAL when gcov is enabled
11660
11661 2003-04-04  Havoc Pennington  <hp@redhat.com>
11662
11663         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11664         return a "babysitter" object that is used to monitor the status of
11665         the spawned process and reap it when required.
11666
11667         * test/test-segfault.c, test/test-exit.c,
11668         test/test-sleep-forever.c: binaries that do various lame things,
11669         used in the test suite.
11670
11671         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11672
11673 2003-04-03  Havoc Pennington  <hp@pobox.com>
11674
11675         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11676         in preparation for modifying it, dbus-sysdeps is getting
11677         a bit unmanageable.
11678
11679 2003-04-03  Havoc Pennington  <hp@redhat.com>
11680
11681         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11682         have multiple ones
11683
11684         * bus/*.[hc]: adapt to mainloop change
11685
11686 2003-04-03  Havoc Pennington  <hp@redhat.com>
11687
11688         * bus/activation.c (load_directory): fix up memleaks
11689         (bus_activation_entry_free): free the entry
11690
11691         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11692         we get one from the message bus; fix memleaks.
11693
11694         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11695
11696 2003-04-03  Havoc Pennington  <hp@pobox.com>
11697
11698         * bus/config-parser.c (bus_config_parser_unref): free
11699         list of mechanisms, bug discovered by test suite enhancements
11700         (putting system.conf and session.conf into suite)
11701
11702         * test/Makefile.am, test/test-service.c: add placeholder for a
11703         test service that we'll activate as part of test suite. Doesn't
11704         do anything yet.
11705
11706         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11707         setting NULL value, and use system malloc not dbus_malloc()
11708         when we have unavoidable memleakage.
11709
11710         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11711         didn't work, and support DBUS_BUS_ACTIVATION.
11712
11713         * bus/activation.c (child_setup): pass our well-known bus type to
11714         the child
11715
11716         * bus/config-parser.c: support <type> to specify well-known type
11717
11718         * doc/dbus-specification.sgml: document the env variables to
11719         locate well-known buses and find service activator
11720
11721 2003-04-02  Havoc Pennington  <hp@redhat.com>
11722
11723         * test/Makefile.am (all-local): add a rule to copy tests to
11724         builddir, so we can have generated tests. Use this to remove the
11725         silly hack for testing system.conf and session.conf. Will use this
11726         shortly to generate .service files pointing to test binaries.
11727
11728 2003-04-02  Havoc Pennington  <hp@redhat.com>
11729
11730         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11731         current alloc and needed new length, not max of the doubled
11732         allocation and needed new length. Also, when building tests,
11733         don't do the double-allocation stuff, just realloc every time.
11734
11735 2003-04-02  Havoc Pennington  <hp@redhat.com>
11736
11737         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11738         in error messages
11739         (_dbus_string_get_dirname): new
11740         (_dbus_sysdeps_test): new
11741         (_dbus_directory_open): include dirnames in error messages
11742
11743         * bus/config-parser.c: interpret <include> and <includedir> and
11744         <servicedir> relative to config file location if the given
11745         filename is not absolute.
11746
11747         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11748
11749 2003-04-02  Havoc Pennington  <hp@redhat.com>
11750
11751         * bus/connection.c (bus_transaction_send_error_reply): set sender
11752         service for the error, and unref the reply on success
11753
11754         * bus/activation.c: convert to use BusTransaction so OOM can be
11755         handled correctly
11756         (bus_activation_service_created): set sender of the message
11757
11758 2003-04-01  Havoc Pennington  <hp@redhat.com>
11759
11760         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11761         <includedir> (at least mostly)
11762
11763         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11764         first, then the user ID
11765
11766 2003-04-01  Havoc Pennington  <hp@pobox.com>
11767
11768         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11769         function
11770
11771         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11772
11773         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11774
11775         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11776         socket 0777, and unlink any existing socket.
11777
11778         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11779         the configuration file so specifies; set up auth mechanism
11780         restrictions
11781
11782         * bus/config-parser.c (bus_config_parser_content): add support
11783         for <fork> option and fill in code for <auth>
11784
11785         * bus/system.conf.in: add <fork/> to default configuration,
11786         and limit auth mechanisms to EXTERNAL
11787
11788         * doc/config-file.txt (Elements): add <fork>
11789
11790         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11791         (_dbus_change_identity): new function
11792
11793 2003-03-31  Havoc Pennington  <hp@redhat.com>
11794
11795         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11796         (_dbus_listen_unix_socket): fix off-by-one error in null
11797         termination spotted by Nalin
11798
11799 2003-03-31  Havoc Pennington  <hp@redhat.com>
11800
11801         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11802         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11803         having a real home directory available.
11804
11805 2003-03-31  Havoc Pennington  <hp@redhat.com>
11806
11807         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11808
11809         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11810
11811         * configure.in: add support for specifying a style of init script
11812         to install
11813
11814 2003-03-31  Havoc Pennington  <hp@redhat.com>
11815
11816         Fix some annoying DBusString API and fix all affected code.
11817
11818         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11819         max_length argument
11820         (_dbus_string_get_data): change to return string instead of using
11821         an out param
11822         (_dbus_string_get_const_data): ditto
11823         (_dbus_string_get_data_len): ditto
11824         (_dbus_string_get_const_data_len): ditto
11825
11826 2003-03-31  Havoc Pennington  <hp@redhat.com>
11827
11828         * bus/main.c (main): fix up the command line arguments to be nicer
11829
11830 2003-03-31  Havoc Pennington  <hp@redhat.com>
11831
11832         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11833         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11834         final location that lands in the config file
11835
11836         * bus/config-loader-expat.c (bus_config_load): fix type of
11837         XML_Parser variable
11838
11839         * doc/TODO: remove TODO item for dbus_bus_get()
11840
11841         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11842
11843 2003-03-31  Havoc Pennington  <hp@pobox.com>
11844
11845         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11846         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11847         argument since they are always client side
11848
11849         * dbus/dbus-server.c (dbus_server_get_address): new function
11850
11851         * bus/main.c (main): take the configuration file as an argument.
11852
11853         * test/data/valid-config-files/debug-allow-all.conf: new file to
11854         use with dispatch.c tests for example
11855
11856         * bus/test-main.c (main): require test data dir
11857
11858         * bus/bus.c (bus_context_new): change this to take a
11859         configuration file name as argument
11860
11861         * doc/config-file.txt (Elements): add <servicedir>
11862
11863         * bus/system.conf, bus/session.conf: new files
11864
11865         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11866         well-known socket if none set
11867
11868         * configure.in: create system.conf and session.conf
11869
11870 2003-03-30  Havoc Pennington  <hp@pobox.com>
11871
11872         * bus/config-parser.c: hacking
11873
11874         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11875         to shut down, since it could cause weirdness with the DBusList
11876         lock
11877
11878         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11879         link-oriented stack routines
11880         (alloc_link): free the mempool if the first alloc from it fails
11881
11882         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11883
11884         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11885         from GLib
11886         (_dbus_string_skip_white): new
11887
11888         * doc/config-file.txt (Elements): add <includedir>
11889
11890 2003-03-28  Havoc Pennington  <hp@pobox.com>
11891
11892         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11893         (_dbus_string_copy_data): new functions
11894
11895 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11896
11897         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11898         * dbus/dbus-bus.h:
11899         Add dbus_bus_get.
11900
11901         * dbus/dbus-memory.c:
11902         Fix a doc comment.
11903
11904 2003-03-28  Havoc Pennington  <hp@pobox.com>
11905
11906         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11907         I think it may have just been superstition. Not sure.
11908
11909         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11910         failures that were not being handled.
11911
11912         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11913
11914         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11915         row that will fail on out-of-memory.
11916
11917         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11918         function for testing out-of-memory handling.
11919
11920         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11921         allocation functions, they do map exactly to the expat ones.
11922
11923 2003-03-27  Havoc Pennington  <hp@redhat.com>
11924
11925         * bus/config-loader-libxml.c (bus_config_load): add another error
11926         check
11927
11928 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11929
11930         * doc/TODO:
11931         Add note about automatic service activation.
11932
11933         * doc/dbus-specification.sgml:
11934         Rename the specification and clarify a few things.
11935
11936 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11937
11938         * Doxyfile.in:
11939         * dbus/dbus-address.c:
11940         * dbus/dbus-dict.c:
11941         * dbus/dbus-marshal.c:
11942         * dbus/dbus-server-debug-pipe.c:
11943         * dbus/dbus-transport-unix.c:
11944         Fix documentation warnings.
11945
11946 2003-03-26  Havoc Pennington  <hp@pobox.com>
11947
11948         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11949         after every test so it's quick and easy to see which leaked, and
11950         so we test multiple dbus_shutdown() calls
11951
11952         * configure.in: change configure.in XML stuff to also support
11953         expat
11954
11955         * config-loader-libxml.c: some hacking
11956
11957         * config-loader-expat.c: some hacking
11958
11959         * config-parser.c: some hacking, plus tests
11960
11961 2003-03-25  Havoc Pennington  <hp@redhat.com>
11962
11963         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11964
11965         * configure.in: add --with-xml option to specify XML library,
11966         right now only libxml is supported.
11967
11968         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11969         nonworking code between home and work, still just stubs
11970
11971 2003-03-24  Havoc Pennington  <hp@redhat.com>
11972
11973         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11974         file
11975
11976         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11977         NULL argument for "message" if the error is a well-known one,
11978         fill in a generic message in this case.
11979
11980         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11981         favor of DBusError
11982
11983         * bus/test.c (bus_test_flush_bus): add
11984
11985         * bus/policy.c (bus_policy_test): test code stub
11986
11987 2003-03-24  Havoc Pennington  <hp@pobox.com>
11988
11989         * bus/connection.c (bus_connections_setup_connection): set up
11990         the "can this user connect" function, but it always returns
11991         TRUE until we have a config file parser so we can have a config
11992         file that allows connections.
11993
11994 2003-03-23  Havoc Pennington  <hp@pobox.com>
11995
11996         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11997         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11998         the mutex, so we can check for proper memory management
11999         and OOM handling.
12000
12001         * dbus/dbus-dataslot.c: remove the mutex from
12002         DBusDataSlotAllocator and lock it manually when using it,
12003         to simplify fitting it into the global slots framework.
12004
12005         * dbus/dbus-threads.c (init_static_locks): rework how we're
12006         handling global locks so they are easily shut down.
12007
12008         * bus/policy.c (bus_policy_append_rule): fix
12009
12010         * bus/test-main.c (main): check for memleaks
12011
12012         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12013         test suite check for memleaks
12014
12015         * dbus/dbus-memory.c: add support in test mode for tracking
12016         number of outstanding blocks
12017
12018 2003-03-23  Havoc Pennington  <hp@pobox.com>
12019
12020         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12021         policies code
12022
12023         * dbus/dbus-hash.h: add ULONG hash keys
12024
12025         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12026         (_dbus_get_group_id): new function
12027
12028 2003-03-20  Havoc Pennington  <hp@redhat.com>
12029
12030         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12031         new function
12032         (dbus_connection_get_unix_user): new function
12033
12034 2003-03-20  Havoc Pennington  <hp@pobox.com>
12035
12036         * bus/connection.c (bus_connection_send_oom_error): assert that
12037         message has a sender
12038         (connection_execute_transaction): ditto
12039         (bus_connection_preallocate_oom_error): fix to set the sender, and
12040         set recipient to the destination service, not the bus driver
12041
12042         * bus/policy.c: hacking
12043
12044         * dbus/dbus-message.c (dbus_message_service_is): new function
12045         (dbus_message_sender_is): new
12046
12047 2003-03-19  Havoc Pennington  <hp@redhat.com>
12048
12049         * bus/policy.c: start sketching code for policy restrictions on
12050         what connections can do.
12051
12052 2003-03-18  Havoc Pennington  <hp@redhat.com>
12053
12054         * doc/TODO: some notes on high-level todo items. Little nitpick
12055         stuff is all in @todo, so no need to add it here.
12056
12057         * doc/config-file.txt: some notes on how config file might look
12058
12059 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12060
12061         * configure.in: 0.6
12062
12063         * NEWS: Update.
12064
12065 2003-03-17  Havoc Pennington  <hp@redhat.com>
12066
12067         * dbus/dbus-internals.h: add gcc attributes so that
12068         our printf-style functions warn on bad arguments to
12069         format
12070
12071         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12072         format bug
12073
12074         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12075         printf format bug
12076
12077 2003-03-17  Havoc Pennington  <hp@redhat.com>
12078
12079         * bus/test-main.c (main): make it print something as it runs
12080         so make check doesn't look stuck
12081
12082         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12083         from CVS, now obsolete
12084
12085 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12086
12087         * bus/dispatch.c: (bus_dispatch):
12088         Refetch the service name since it may have been reallocated
12089         when dbus_message_set_sender was called.
12090
12091         * dbus/dbus-sysdeps.c: (_dbus_accept):
12092         Add address and address length variables and use them to stop
12093         valgrind from complaining.
12094
12095 2003-03-17  Havoc Pennington  <hp@pobox.com>
12096
12097         All tests pass, no memleaks, no valgrind complaints.
12098
12099         * bus/test.c: refcount handler_slot
12100
12101         * bus/connection.c (bus_connections_new): refcount
12102         connection_data_slot
12103
12104         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12105         bytes so that auth scripts pass.
12106
12107         * bus/dispatch.c: init message_handler_slot so it gets allocated
12108         properly
12109
12110         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12111
12112         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12113         dealloc server_pipe_hash when no longer used for benefit of
12114         leak checking
12115
12116         * dbus/dbus-auth.c (process_command): memleak fix
12117
12118         * bus/dispatch.c (check_hello_message): memleak fix
12119
12120 2003-03-16  Havoc Pennington  <hp@pobox.com>
12121
12122         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12123
12124 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12125
12126         * bus/activation.c (bus_activation_activate_service): Append
12127         the pending activation entry to the list of pending activations.
12128
12129 2003-03-16  Havoc Pennington  <hp@pobox.com>
12130
12131         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12132         connections
12133
12134         * dbus/dbus-address.c (create_entry): fix OOM handling when
12135         failing to alloc entry->method
12136
12137 2003-03-16  Havoc Pennington  <hp@pobox.com>
12138
12139         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12140         the watch
12141
12142         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12143         add some missing dbus_set_result
12144
12145         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12146         alloc the DBusMessageHandler
12147
12148         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12149         the transport here, since we call this from the finalizer; it
12150         resulted in a double-finalize.
12151
12152         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12153         where we tried to use transport->connection that was NULL,
12154         happened when transport was disconnected early on due to OOM
12155
12156         * bus/*.c: adapt to handle OOM for watches/timeouts
12157
12158         * dbus/dbus-transport-unix.c: port to handle OOM during
12159         watch handling
12160
12161         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12162         reference to unused bytes instead of a copy
12163
12164         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12165         out of memory
12166
12167         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12168         FALSE on OOM
12169
12170         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12171         of memory
12172
12173 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12174
12175         * doc/dbus-specification.sgml:
12176         Document reply message for ActivateService.
12177
12178 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12179
12180         * bus/activation.c: (bus_pending_activation_entry_free),
12181         (bus_pending_activation_free), (bus_activation_new),
12182         (bus_activation_unref), (bus_activation_service_created),
12183         (bus_activation_activate_service):
12184         * bus/activation.h:
12185         * bus/bus.c: (bus_context_new):
12186         * bus/desktop-file.c: (new_section):
12187         * bus/driver.c: (bus_driver_send_service_deleted),
12188         (bus_driver_handle_activate_service):
12189         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12190         * bus/services.h:
12191         * dbus/dbus-connection.c:
12192         (dbus_connection_send_with_reply_and_block):
12193         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12194         * dbus/dbus-protocol.h:
12195         Make activation work better. Now pending activations will be queued
12196         and the daemon won't try to activate services that are already registered.
12197
12198 2003-03-16  Havoc Pennington  <hp@pobox.com>
12199
12200         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12201         connection data
12202
12203         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12204         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12205
12206 2003-03-16  Havoc Pennington  <hp@pobox.com>
12207
12208         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12209         this. always run the test suite before commit...
12210
12211         * bus/*: adapt to DBusConnection API changes
12212
12213         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12214         requires renaming stuff to avoid dbus_connection_dispatch name
12215         conflict.
12216
12217         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12218         function
12219
12220         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12221         separate from _dbus_message_loader_return_buffer()
12222
12223         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12224         this, because it's now always broken to use; the number of
12225         messages in queue vs. the number still buffered by the message
12226         loader is undefined/meaningless. Should use
12227         dbus_connection_get_dispatch_state().
12228         (dbus_connection_dispatch): rename from
12229         dbus_connection_dispatch_message
12230
12231 2003-03-16  Havoc Pennington  <hp@pobox.com>
12232
12233         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12234         implementation
12235
12236 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12237
12238         * dbus/dbus-connection.c:
12239         (dbus_connection_send_with_reply_and_block):
12240         Decrease connection->n_incoming when removing an entry
12241         from the list.
12242         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12243         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12244         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12245         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12246         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12247         (dbus_dict_get_byte_array):
12248         Handle NULL arrays and strings. Also add support for byte arrays.
12249
12250         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12251         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12252         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12253         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12254         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12255         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12256         * dbus/dbus-marshal.h:
12257         Add support for marshalling and demarshalling empty arrays and strings.
12258
12259         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12260         (dbus_message_append_string_array),
12261         (dbus_message_iter_get_boolean),
12262         (dbus_message_iter_get_boolean_array),
12263         (dbus_message_iter_get_int32_array),
12264         (dbus_message_iter_get_uint32_array),
12265         (dbus_message_iter_get_double_array),
12266         (dbus_message_iter_get_byte_array),
12267         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12268         (check_message_handling):
12269         Add support for getting empty arrays and dicts.
12270
12271         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12272         Don't do any validation at all for now, that's better than just checking
12273         for ASCII.
12274
12275         * test/data/valid-messages/emptiness.message:
12276         New test message with lots of empty arrays.
12277
12278 2003-03-16  Havoc Pennington  <hp@pobox.com>
12279
12280         * dbus/dbus-connection.c
12281         (_dbus_connection_queue_received_message_link): new function that
12282         can't fail due to OOM
12283
12284         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12285         new function pops a message together with a list link
12286         containing it.
12287
12288         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12289         message queuing functions to avoid needing to alloc memory
12290
12291 2003-03-16  Havoc Pennington  <hp@pobox.com>
12292
12293         Oops - test code was only testing failure of around 30 of the
12294         mallocs in the test path, but it turns out there are 500+
12295         mallocs. I believe this was due to misguided linking setup such
12296         that there was one copy of dbus_malloc etc. in the daemon and one
12297         in the shared lib, and only daemon mallocs were tested. In any
12298         case, the test case now tests all 500+ mallocs, and doesn't pass
12299         yet, though there are lots of fixes in this patch.
12300
12301         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12302         this so that it doesn't need to allocate memory, since it
12303         has no way of indicating failure due to OOM (and would be
12304         annoying if it did).
12305
12306         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12307
12308         * bus/Makefile.am: rearrange to create two self-contained
12309         libraries, to avoid having libraries with overlapping symbols.
12310         that was resulting in weirdness, e.g. I'm pretty sure there
12311         were two copies of global static variables.
12312
12313         * dbus/dbus-internals.c: move the malloc debug stuff to
12314         dbus-memory.c
12315
12316         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12317         empty.
12318
12319         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12320
12321         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12322         on failure.
12323
12324         * bus/dispatch.c (bus_dispatch_add_connection): free
12325         message_handler_slot when no longer using it, so
12326         memory leak checkers are happy for the test suite.
12327
12328         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12329
12330         * bus/bus.c (new_connection_callback): disconnect in here if
12331         bus_connections_setup_connection fails.
12332
12333         * bus/connection.c (bus_connections_unref): fix to free the
12334         connections
12335         (bus_connections_setup_connection): if this fails, don't
12336         disconnect the connection, just be sure there are no side
12337         effects.
12338
12339         * dbus/dbus-string.c (undo_alignment): unbreak this
12340
12341         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12342         leaking
12343         (_dbus_auth_new): fix the order in which we free strings
12344         on OOM failure
12345
12346         * bus/connection.c (bus_connection_disconnected): fix to
12347         not send ServiceDeleted multiple times in case of memory
12348         allocation failure
12349
12350         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12351         get the base service name
12352         (dbus_bus_register_client): don't return base service name,
12353         instead store it on the DBusConnection and have an accessor
12354         function for it.
12355         (dbus_bus_register_client): rename dbus_bus_register()
12356
12357         * bus/dispatch.c (check_hello_message): verify that other
12358         connections on the bus also got the correct results, not
12359         just the one sending hello
12360
12361 2003-03-15  Havoc Pennington  <hp@pobox.com>
12362
12363         Make it pass the Hello handling test including all OOM codepaths.
12364         Now to do other messages...
12365
12366         * bus/services.c (bus_service_remove_owner): fix crash when
12367         removing owner from an empty list of owners
12368         (bus_registry_ensure): don't leave service in the list of
12369         a connection's owned services if we fail to put the service
12370         in the hash table.
12371
12372         * bus/connection.c (bus_connection_preallocate_oom_error): set
12373         error flag on the OOM error.
12374
12375         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12376         handle _dbus_transport_set_connection failure
12377
12378         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12379         to create watches up front and simply enable/disable them as
12380         needed.
12381         (unix_connection_set): this can now fail on OOM
12382
12383         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12384         of enabling/disabling a watch or timeout.
12385
12386         * bus/loop.c (bus_loop_iterate): don't touch disabled
12387         watches/timeouts
12388
12389         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12390
12391 2003-03-15  Havoc Pennington  <hp@pobox.com>
12392
12393         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12394         write useful test code, after all that futzing around ;-)
12395
12396         Test does not yet pass because we can't handle OOM in
12397         _dbus_transport_messages_pending (basically,
12398         dbus_connection_preallocate_send() does not prealloc the write
12399         watch). To fix this, I think we need to add new stuff to
12400         set_watch_functions, namely a SetEnabled function so we can alloc
12401         the watch earlier, then enable it later.
12402
12403         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12404         dbus-memory.c to the convenience lib
12405
12406         * bus/test.c: rename some static functions to keep them clearly
12407         distinct from stuff in connection.c. Handle client disconnection.
12408
12409 2003-03-14  Havoc Pennington  <hp@pobox.com>
12410
12411         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12412         transport, tests more of the real codepath. Set up clients
12413         with bus_setup_debug_client.
12414
12415         * bus/test.c (bus_setup_debug_client): function to set up debug
12416         "clients" on the main loop
12417
12418         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12419         support
12420
12421         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12422         server type
12423
12424         * dbus/dbus-server-debug.c: support a debug server based on pipes
12425
12426         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12427         (_dbus_close): new function
12428
12429         * configure.in: check for socketpair
12430
12431 2003-03-14  Havoc Pennington  <hp@redhat.com>
12432
12433         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12434         cheesy hack
12435
12436         * dbus/dbus-transport-debug.c: rework this a good bit to be
12437         less complicated. hopefully still works.
12438
12439         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12440         manually
12441
12442         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12443         after running it
12444
12445         * dbus/dbus-message.c (dbus_message_copy): rename from
12446         dbus_message_new_from_message, fix it up to copy
12447         all the message fields, add test case
12448
12449         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12450         not quite passing yet
12451
12452 2003-03-14  Havoc Pennington  <hp@pobox.com>
12453
12454         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12455         until no work remains" in test code. (the large diff here
12456         is just code movement, no actual changes)
12457
12458         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12459         1, no point waiting around for test code.
12460         (_dbus_server_debug_accept_transport): unref the timeout
12461         after adding it (right?)
12462
12463         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12464
12465 2003-03-13  Havoc Pennington  <hp@redhat.com>
12466
12467         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12468         out of memory
12469
12470         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12471         of memory
12472
12473         * dbus/dbus-connection.h: Make AddWatchFunction and
12474         AddTimeoutFunction return a bool so they can fail on out-of-memory
12475
12476         * bus/bus.c (bus_context_new): set up timeout handlers
12477
12478         * bus/connection.c (bus_connections_setup_connection): set up
12479         timeout handlers
12480
12481         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12482         can fail
12483
12484         * bus/bus.c (bus_context_new): adapt to changes
12485
12486         * bus/connection.c: adapt to changes
12487
12488         * test/watch.c: adapt to DBusWatch changes
12489
12490         * bus/dispatch.c (bus_dispatch_test): started adding this but
12491         didn't finish
12492
12493 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12494
12495         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12496
12497 2003-03-13  Havoc Pennington  <hp@pobox.com>
12498
12499         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12500         set up a test framework as for the library
12501
12502 2003-03-12  Havoc Pennington  <hp@pobox.com>
12503
12504         Throughout: purge global variables, introduce BusActivation,
12505         BusConnections, BusRegistry, etc. objects instead.
12506
12507         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12508         message bus object
12509
12510         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12511         going to redo this a bit differently I think
12512
12513 2003-03-12  Havoc Pennington  <hp@redhat.com>
12514
12515         Mega-patch that gets the message bus daemon initially handling
12516         out-of-memory. Work still needed. Also lots of random
12517         moving stuff to DBusError instead of ResultCode.
12518
12519         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12520
12521         * dbus/dbus-connection.c
12522         (dbus_connection_send_with_reply_and_block): use DBusError
12523
12524         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12525         DBusResultCode
12526
12527         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12528         code here, as the only failure possible is OOM.
12529
12530         * bus/connection.c (bus_connection_disconnect):
12531         rename bus_connection_disconnected as it's a notification only
12532
12533         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12534         "name" on get_args failure, should be done by get_args;
12535         don't disconnect client for bad args, just return an error.
12536         (bus_driver_handle_service_exists): ditto
12537
12538         * bus/services.c (bus_services_list): NULL-terminate returned array
12539
12540         * bus/driver.c (bus_driver_send_service_lost)
12541         (bus_driver_send_service_acquired): send messages from driver to a
12542         specific client to the client's unique name, not to the broadcast
12543         service.
12544
12545         * dbus/dbus-message.c (decode_header_data): reject messages that
12546         contain no name field
12547         (_dbus_message_get_client_serial): rename to
12548         dbus_message_get_serial and make public
12549         (_dbus_message_set_serial): rename from set_client_serial
12550         (_dbus_message_set_reply_serial): make public
12551         (_dbus_message_get_reply_serial): make public
12552
12553         * bus/connection.c (bus_connection_foreach): allow stopping
12554         iteration by returning FALSE from foreach function.
12555
12556         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12557         (dbus_connection_free_preallocated_send)
12558         (dbus_connection_preallocate_send): new API for sending a message
12559         without possibility of malloc failure.
12560         (dbus_connection_send_message): rename to just
12561         dbus_connection_send (and same for whole function family)
12562
12563         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12564
12565         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12566
12567         * bus/activation.c: handle/return errors
12568
12569         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12570
12571         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12572         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12573         (_dbus_result_from_errno): move to this file
12574
12575 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12576
12577         * dbus/dbus-marshal.c:
12578         (_dbus_marshal_set_string):
12579         Take a length argument so we can marshal the correct string
12580         length.
12581
12582         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12583         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12584         (_dbus_marshal_test):
12585         * dbus/dbus-marshal.h:
12586         Add support for marshalling and demarshalling dicts.
12587
12588         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12589         Add support for TYPE DICT.
12590
12591         * dbus/dbus-message.c: (set_string_field):
12592         Adjust header padding.
12593
12594         (dbus_message_append_args_valist), (dbus_message_append_dict),
12595         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12596         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12597         (check_message_handling), (check_have_valid_message):
12598         * dbus/dbus-message.h:
12599         Add functions for setting and getting dicts.
12600
12601         * dbus/dbus-protocol.h:
12602         Add DBUS_TYPE_DICT.
12603
12604         * dbus/dbus.h:
12605         Add dbus-dict.h
12606
12607         * doc/dbus-specification.sgml:
12608         Add information about how dicts are marshalled.
12609
12610         * test/data/invalid-messages/dict-with-nil-value.message:
12611         * test/data/invalid-messages/too-short-dict.message:
12612         * test/data/valid-messages/dict-simple.message:
12613         * test/data/valid-messages/dict.message:
12614         Add sample messages containing dicts.
12615
12616 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12617
12618         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12619
12620 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12621
12622         * dbus/Makefile.am:
12623         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12624         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12625         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12626         (dbus_dict_set_double), (dbus_dict_set_string),
12627         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12628         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12629         (dbus_dict_set_string_array), (_dbus_dict_test):
12630         * dbus/dbus-dict.h:
12631         Fix according to comments from Havoc.
12632
12633 2003-03-06  Michael Meeks  <michael@server.home>
12634
12635         * configure.in: if we don't have kde-config, disable have_qt.
12636
12637 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12638
12639         * dbus/Makefile.am:
12640         Add dbus-dict.[ch]
12641
12642         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12643         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12644         (dbus_dict_remove), (dbus_dict_get_value_type),
12645         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12646         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12647         (dbus_dict_put_double), (dbus_dict_put_string),
12648         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12649         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12650         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12651         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12652         (dbus_dict_get_double), (dbus_dict_get_string),
12653         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12654         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12655         (dbus_dict_get_string_array), (_dbus_dict_test):
12656         * dbus/dbus-dict.h:
12657         Add DBusDict implementation
12658
12659         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12660         * dbus/dbus-test.h:
12661         Add _dbus_dict_test
12662
12663 2003-03-04  Havoc Pennington  <hp@pobox.com>
12664
12665         * test/data/auth/*: adapt to changes
12666
12667         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12668         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12669         userid
12670
12671         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12672         more stuff from being in a context name, to make the protocol
12673         simpler to deal with
12674
12675         * dbus/dbus-errors.c (dbus_error_has_name): new function
12676         (dbus_error_is_set): new function
12677
12678         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12679         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12680
12681         * dbus/dbus-connection.c (dbus_connection_flush): also read
12682         messages during a flush operation
12683
12684         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12685
12686 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12687
12688         * configure.in: Check for gethostbyname on Solaris.
12689
12690         * dbus/dbus-transport.c: (_dbus_transport_open):
12691         Remove duplicate "tcp" entry.
12692
12693         * doc/dbus-specification.sgml:
12694         Clarify some things.
12695
12696 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12697
12698         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12699         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12700         (_dbus_keyring_test):
12701         * dbus/dbus-md5.c: (_dbus_md5_compute):
12702         * dbus/dbus-sha.c: (_dbus_sha_compute):
12703         Plug memory leaks.
12704
12705 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12706
12707         * README: Add some things.
12708
12709 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12710
12711         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12712         after case DBUS_TYPE_BOOELAN.
12713
12714 2003-03-02  Havoc Pennington  <hp@pobox.com>
12715
12716         * test/break-loader.c (randomly_set_extreme_ints): add test that
12717         sets really huge and small integers
12718
12719         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12720         that length of boolean array fits in the string, and that
12721         string has room for boolean value in single-bool case.
12722
12723         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12724         optional value to "ALIGN" command which is what to fill the
12725         alignment with.
12726
12727         * test/data/valid-messages/no-padding.message: add regression
12728         test for the message padding problem
12729
12730 2003-03-02  Havoc Pennington  <hp@pobox.com>
12731
12732         * dbus/dbus-message.c (decode_header_data): fix to always init
12733         message_padding, from Benjamin Dauvergne
12734
12735 2003-03-02  Havoc Pennington  <hp@pobox.com>
12736
12737         * configure.in: 0.5
12738
12739         * NEWS: Update.
12740
12741 2003-03-01  Joe Shaw  <joe@assbarn.com>
12742
12743         * configure.in: Check for "struct cmsgcred" and try to access its
12744         members for BSD-like unices.
12745
12746         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12747         _dbus_read_credentials_unix_socket().
12748         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12749         read() for reading the credential byte off the unix socket.  Use
12750         struct cmsgcred on systems that support it.
12751
12752 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12753
12754         * glib/Makefile.am:
12755         * configure.in:
12756         Make gthreads-2.0 dependency optional. Don't build thread test if
12757         its not found.
12758
12759 2003-02-27  Havoc Pennington  <hp@pobox.com>
12760
12761         * dbus/dbus-connection.c
12762         (dbus_connection_send_message_with_reply_and_block): fix doh!
12763         doh! doh! bug that resulted in never removing a reply from the
12764         queue, no wonder we called get_reply_serial so much ;-)
12765
12766         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12767         and client serial instead of demarshaling them every time
12768
12769 2003-02-27  Havoc Pennington  <hp@pobox.com>
12770
12771         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12772         more inlined, using dbus-string-private.h, speeds things up
12773         substantially
12774
12775         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12776         when freeing the string
12777         (_dbus_string_steal_data): fix for align offset
12778         (undo_alignment): new function
12779
12780 2003-02-26  Havoc Pennington  <hp@redhat.com>
12781
12782         All kinds of audit fixes from Owen, plus initial attempt to
12783         handle unaligned memory returned from malloc.
12784
12785         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12786         leave room for align_offset and nul byte
12787         (fixup_alignment): function to track an align_offset and
12788         ensure real->str is aligned
12789         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12790         to allow a nul byte plus align offset
12791         (_dbus_string_lock): fix overflow issue
12792         (_dbus_string_init_const_len): add assertions on sanity of len,
12793         assign allocated to be ALLOCATION_PADDING larger than len
12794         (set_length): fixup the overflow handling
12795         (_dbus_string_get_data_len): fix overflow in assertion
12796         (open_gap): detect overflow in size of gap to be opened
12797         (_dbus_string_lengthen): add overflow check
12798         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12799         (_dbus_string_append): add overflow check
12800         (_dbus_string_append_unichar): overflow
12801         (_dbus_string_delete): fix overflow in assertion
12802         (_dbus_string_copy_len): overflow in assertion
12803         (_dbus_string_replace_len): overflows in assertions
12804         (_dbus_string_find): change to implement in terms of
12805         _dbus_string_find_to
12806         (_dbus_string_find_to): assorted fixage
12807         (_dbus_string_equal_c_str): assert c_str != NULL,
12808         fix logic so the function works
12809         (_dbus_string_ends_with_c_str): fix overflow thingy
12810         (_dbus_string_base64_encode): overflow fix
12811         (_dbus_string_validate_ascii): overflow
12812         (_dbus_string_validate_nul): overflow
12813
12814 2003-02-26  Havoc Pennington  <hp@redhat.com>
12815
12816         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12817
12818 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12819
12820         * configure.in:
12821         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12822
12823         * dbus/dbus-connection.c:
12824         * dbus/dbus-connection.h:
12825         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12826         Add dbus_connection_set_wakeup_main_function and use it when queueing
12827         incoming and outgoing messages.
12828
12829
12830         * dbus/dbus-dataslot.c:
12831         Threadsafe usage of DBusDataSlotAllocator
12832
12833         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12834         dbus_new can fail.
12835
12836         * dbus/dbus-server-unix.c:
12837         Add todo comment
12838
12839         * glib/dbus-gmain.c:
12840         Implement the new wakeup functions for glib.
12841
12842         * glib/Makefile.am:
12843         * glib/test-thread-client.c:
12844         * glib/test-thread-server.c:
12845         * glib/test-thread.h:
12846         Initial cut at some thread test code. Not really done yet.
12847
12848 2003-02-26  Havoc Pennington  <hp@pobox.com>
12849
12850         * dbus/dbus-connection.c
12851         (dbus_connection_send_message_with_reply_and_block): fix crash
12852         where we ref'd the outgoing message instead of the returned reply
12853
12854         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12855         at the end of this function, so if we didn't need to read for
12856         authentication, we reinstall it for receiving messages
12857
12858         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12859         a NULL sender for peer-to-peer case
12860
12861         * dbus/dbus-transport-unix.c (check_read_watch): handle
12862         !authenticated case correctly
12863
12864         * glib/dbus-gmain.c: add support for DBusServer
12865
12866         * dbus/dbus-server.c: add data slot support
12867
12868         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12869         return values and handle errors
12870
12871         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12872         DBusConnection
12873
12874         * Doxyfile.in (INPUT): add glib subdir
12875
12876         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12877         setup_with_g_main instead of hookup_with_g_main; write docs
12878
12879 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12880
12881         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12882         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12883         * dbus/dbus-message.c: (dbus_message_append_boolean),
12884         (dbus_message_append_boolean_array),
12885         (dbus_message_get_args_valist), (_dbus_message_test):
12886         * dbus/dbus-message.h:
12887         * doc/dbus-specification.sgml:
12888         Various fixes as pointed out by Havoc.
12889
12890         * test/data/invalid-messages/bad-boolean-array.message:
12891         * test/data/invalid-messages/bad-boolean.message:
12892         Add invalid boolean value test cases.
12893
12894 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12895
12896         * dbus/dbus-internals.c: (_dbus_type_to_string):
12897         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12898         (_dbus_marshal_validate_arg):
12899         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12900         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12901         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12902         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12903         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12904         (dbus_message_iter_get_double),
12905         (dbus_message_iter_get_boolean_array), (message_iter_test):
12906         * dbus/dbus-message.h:
12907         * dbus/dbus-protocol.h:
12908         * doc/dbus-specification.sgml:
12909         * test/data/valid-messages/lots-of-arguments.message:
12910         Add support for boolean and boolean array types.
12911
12912 2003-02-23  Havoc Pennington  <hp@pobox.com>
12913
12914         * dbus/dbus-keyring.c: finish most of this implementation and
12915         simple unit test
12916
12917         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12918         these barf if the error isn't cleared to NULL
12919
12920         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12921         (_dbus_create_directory): new function
12922
12923         * dbus/dbus-errors.c (dbus_set_error): fix warning
12924
12925         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12926         (_dbus_string_hex_decode): new function
12927         (test_hex_roundtrip): test code
12928
12929         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12930
12931         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12932
12933         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12934         the save-to-temp/rename trick to atomically write the new file
12935         (_dbus_string_parse_uint): new function
12936
12937 2003-02-22  Havoc Pennington  <hp@pobox.com>
12938
12939         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12940
12941 2003-02-22  Havoc Pennington  <hp@pobox.com>
12942
12943         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12944         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12945
12946         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12947
12948         * dbus/test/data/sha-1: add US government test suite for SHA-1
12949
12950 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12951
12952         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12953         Make string arrays NULL-terminated.
12954
12955         * dbus/dbus-memory.c: (dbus_free_string_array):
12956         * dbus/dbus-memory.h:
12957         New function for freeing NULL-terminated string arrays.
12958
12959         * dbus/dbus-message-builder.c: (append_quoted_string),
12960         (_dbus_message_data_load):
12961         Add support for array types.
12962
12963         * dbus/dbus-message.c: (check_message_handling):
12964         Add more types as test cases.
12965
12966         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12967         (_dbus_string_parse_double):
12968         Add the start offset to the end offset.
12969
12970         * test/data/valid-messages/lots-of-arguments.message:
12971         New test message with lots of arguments.
12972
12973 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12974
12975         * dbus/dbus-message.c: (dbus_message_append_nil),
12976         (dbus_message_append_int32), (dbus_message_append_uint32),
12977         (dbus_message_append_double), (dbus_message_append_string),
12978         (dbus_message_append_int32_array),
12979         (dbus_message_append_uint32_array),
12980         (dbus_message_append_double_array),
12981         (dbus_message_append_byte_array),
12982         (dbus_message_append_string_array):
12983         Fix all out-of-memory handling in these functions.
12984
12985 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12986
12987         * dbus/dbus-message.c: (dbus_message_append_nil):
12988         Fix a silly.
12989
12990 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12991
12992         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12993         (dbus_message_append_nil), (dbus_message_append_int32_array),
12994         (dbus_message_append_uint32_array),
12995         (dbus_message_append_double_array),
12996         (dbus_message_append_byte_array),
12997         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12998         (dbus_message_iter_get_int32_array),
12999         (dbus_message_iter_get_uint32_array),
13000         (dbus_message_iter_get_double_array),
13001         (dbus_message_iter_get_byte_array),
13002         (dbus_message_iter_get_string_array):
13003
13004         * dbus/dbus-message.h:
13005         Add functions for appending and getting arrays.
13006
13007 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13008
13009         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13010         element size at least 8 bytes, fixes mempool tests on
13011         64-bit machines.
13012
13013 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13014
13015         * dbus/dbus-transport-unix.c (unix_do_iteration):
13016         Unlock the connection mutex during a blocking select call.
13017         Add todo about how we need a way to wake up the select.
13018
13019         * dbus/dbus-connection-internal.h:
13020         * dbus/dbus-connection.c:
13021         Add _dbus_connection_lock and _dbus_connection_unlock.
13022
13023 2003-02-19  Havoc Pennington  <hp@pobox.com>
13024
13025         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13026         Doxyfile.in, not Doxyfile
13027
13028         * dbus/dbus-keyring.c: do some hacking on this
13029
13030         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13031
13032         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13033         dbus_error_init
13034         (dbus_set_error): remove dbus_error_init, check for message ==
13035         NULL *before* we sprintf into it, and add @todo about including
13036         system headers in this file
13037
13038         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13039
13040         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13041
13042         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13043         get various bits of user information based on either username
13044         or user ID
13045         (_dbus_homedir_from_username): new function
13046
13047 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13048
13049         * configure.in:
13050         Add check for nonposix getpwnam_r
13051
13052         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13053         Align the pool element size to a sizeof (void *) boundary.
13054
13055         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13056         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13057         General Solaris fixes.
13058
13059         * test/data/valid-messages/simplest-manual.message:
13060         Explicitly state that we want little-endian packing.
13061
13062 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13063
13064         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13065
13066         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13067         Added to create a transport connecting using a tcp/ip socket.
13068
13069         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13070         to a tcp socket at given host and port.
13071         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13072         hostname and port.
13073
13074         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13075
13076         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13077         Added to create a server listening on a TCP/IP socket.
13078
13079 2003-02-19  Havoc Pennington  <hp@pobox.com>
13080
13081         Throughout: mop up all the Doxygen warnings and undocumented
13082         stuff.
13083
13084         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13085         to search any paths.
13086
13087         * dbus/dbus-threads.c: move global mutex initializers to
13088         dbus-internals.h, multiple prototypes was confusing doxygen
13089         besides being kind of ugly
13090
13091         * Doxyfile (PREDEFINED): have Doxygen define
13092         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13093         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13094         (do not abuse the feature! it's for stuff like the autogenerated
13095         macros in dbus-md5.c, not just for things you don't feel like
13096         documenting...)
13097
13098 2003-02-18  Havoc Pennington  <hp@pobox.com>
13099
13100         * dbus/dbus-string.c (_dbus_string_zero): new function
13101
13102         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13103         wrap it in some dbus-friendly API
13104
13105         * dbus/dbus-types.h: add 16-bit types
13106
13107 2003-02-18  Joe Shaw  <joe@assbarn.com>
13108
13109         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13110         credentials from our currently running process.
13111         (get_word): Fix a buglet where we were copying the entire length
13112         instead of relative to our position.
13113
13114         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13115         keys on the stack... it's 640k of data.
13116
13117         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13118         read the credentials byte off the socket, even if we don't have
13119         SO_PEERCRED.
13120         (_dbus_poll): Implement poll() using select() for systems which
13121         don't have it.
13122
13123         * glib/test-dbus-glib.c (main): Print out an error if no
13124         parameters are given.
13125
13126         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13127         can fallback to a secondary auth mechanism if the first fails.
13128
13129 2003-02-18  Havoc Pennington  <hp@pobox.com>
13130
13131         * AUTHORS: add Alex
13132
13133 2003-02-17  Havoc Pennington  <hp@pobox.com>
13134
13135         * doc/dbus-specification.sgml: lots of cosmetic
13136         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13137         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13138         s/server/bus/ (except in authentication section). Add a section
13139         "Message Bus Message Routing"
13140
13141 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13142
13143         Release 0.4
13144
13145         * NEWS: Update
13146
13147 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13148
13149         * doc/dbus-specification.sgml:
13150         Specification updates.
13151
13152 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13153
13154         * bus/activation.c: (bus_activation_init), (child_setup),
13155         (bus_activation_activate_service):
13156         * bus/activation.h:
13157         * bus/main.c: (main):
13158         Set DBUS_ADDRESS environment variable.
13159
13160         * dbus/dbus-errors.c: (dbus_set_error):
13161         Don't use va_copy since that's a C99 feature.
13162
13163         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13164         (_dbus_spawn_async):
13165         * dbus/dbus-sysdeps.h:
13166         Add child_setup_func to _dbus_spawn_async.
13167
13168         * doc/dbus-specification.sgml:
13169         Update specification.
13170
13171         * test/spawn-test.c: (setup_func), (main):
13172         Fix test.
13173
13174 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13175
13176         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13177         Added todo.
13178
13179 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13180
13181         * doc/.cvsignore:
13182         * doc/Makefile.am:
13183         * doc/dbus-test-plan.sgml:
13184         Add test plan document.
13185
13186         * test/Makefile.am:
13187         Fix distcheck.
13188
13189 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13190
13191         * dbus/dbus-message.c: (decode_header_data),
13192         (_dbus_message_loader_return_buffer):
13193         Set the header padding amount when loading a message.
13194
13195 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13196
13197         * bus/dispatch.c: (send_one_message):
13198         Only send broadcast messages to registered connections.
13199
13200         * dbus/dbus-message.c: (dbus_message_name_is):
13201         * dbus/dbus-message.h:
13202         New convenience function.
13203
13204         * dbus/dbus-transport-debug.c: (do_reading):
13205         Only dispatch one message per run.
13206
13207         * test/Makefile.am:
13208         * test/bus-test.c: (new_connection_callback), (die),
13209         (test_hello_client1_handler), (test_hello_client2_handler),
13210         (test_hello_replies), (main):
13211
13212         * test/bus-test-loop.[ch]:
13213         Add these.
13214
13215 2003-02-16  Havoc Pennington  <hp@pobox.com>
13216
13217         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13218         backward conditional
13219
13220 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13221
13222         * dbus/dbus-connection.c:
13223         Implement sent_message_with_reply. (with_reply_and block is still
13224         busted).
13225         Made dispatch_message not lose message if OOM.
13226
13227         * dbus/dbus-errors.h:
13228         Add NoReply error (for reply timeouts).
13229
13230 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13231
13232         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13233         Actually free keys and values when destroying hashtable.
13234
13235 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13236
13237         * dbus/dbus-auth.c: (client_try_next_mechanism):
13238         Plug a leak.
13239
13240         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13241         Return TRUE if there's no thread implementation around.
13242
13243         * glib/dbus-gmain.c: (free_source),
13244         (dbus_connection_hookup_with_g_main):
13245         Make sure to remove the GSource when the connection is finalized.
13246
13247 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13248
13249         * bus/dispatch.c: (bus_dispatch_message_handler):
13250         * dbus/dbus-errors.h:
13251         Return an error if someone tries to send a message to a service
13252         that doesn't exist.
13253
13254 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13255
13256         * bus/activation.c: (load_directory), (bus_activation_init),
13257         (bus_activation_activate_service):
13258         * bus/activation.h:
13259         * bus/driver.c:
13260         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13261         More work on the activation handling.
13262
13263         * dbus/dbus-errors.h:
13264         Add some error messages
13265
13266         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13267         * dbus/dbus-message.h:
13268         New function that creates an error message.
13269
13270         * dbus/dbus-protocol.h:
13271         Add ACTIVATE_SERVER message.
13272
13273         * dbus/dbus-server-unix.c: (unix_handle_watch),
13274         (_dbus_server_new_for_domain_socket):
13275         Call _dbus_fd_set_close_on_exec.
13276
13277         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13278         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13279         (_dbus_fd_set_close_on_exec):
13280         * dbus/dbus-sysdeps.h:
13281         Add _dbus_fd_set_close_on exec function. Also add function that checks
13282         that all open fds are set to close-on-exec and warns otherwise.
13283
13284         * dbus/dbus-transport-unix.c:
13285         (_dbus_transport_new_for_domain_socket):
13286         Call _dbus_fd_set_close_on_exec.
13287
13288 2003-02-16  Havoc Pennington  <hp@pobox.com>
13289
13290         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13291         allow people to avoid setting SIGPIPE to SIG_IGN
13292         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13293         we've been asked not to
13294
13295 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13296
13297         * dbus/dbus-list.c: (_dbus_list_append_link),
13298         (_dbus_list_prepend_link):
13299         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13300         (dbus_realloc):
13301         Warning fixes.
13302
13303 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13304
13305         * bus/Makefile.am:
13306         * bus/activation.c: (bus_activation_entry_free),
13307         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13308         * bus/activation.h:
13309         * bus/main.c: (main):
13310         Add simple activation support, doesn't work yet though.
13311
13312 2003-02-15   Zack Rusin  <zack@kde.org>
13313
13314         * qt/dbus-qthread.cpp:  small casting fix
13315
13316 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13317
13318         * dbus/dbus-errors.c: (dbus_set_error):
13319         * dbus/dbus-errors.h:
13320         Add a few errors and make dbus_set_error void.
13321
13322         * dbus/dbus-sysdeps.c:
13323         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13324         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13325         * dbus/dbus-sysdeps.h:
13326         Add _dbus_spawn_async.
13327
13328         * test/spawn-test.c: (main):
13329         Test for _dbus_spawn_async.
13330
13331 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13332
13333         * dbus/dbus-internals.h:
13334         Fix build without tests.
13335
13336         * dbus/dbus-list.c: (alloc_link):
13337         Fix a segfault when a malloc fails.
13338
13339         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13340         (dbus_malloc0), (dbus_realloc):
13341         Add support for malloc debugging.
13342
13343 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13344
13345         * dbus/dbus-threads.c:
13346         * dbus/dbus-threads.h:
13347         Add condvars. Remove static mutext from API.
13348         Implement static mutexes by initializing them from threads_init.
13349
13350         * glib/dbus-gthread.c:
13351         * qt/dbus-qthread.cpp:
13352         Update with the thread api changes.
13353
13354
13355         * dbus/dbus-list.c:
13356         * dbus/dbus-list.h:
13357         Turn StaticMutex into normal mutex + init function.
13358         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13359         _dbus_list_append_link, _dbus_list_prepend_link
13360
13361
13362         * dbus/dbus-sysdeps.c:
13363         * dbus/dbus-sysdeps.h:
13364         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13365         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13366
13367         * dbus/dbus-protocol.h:
13368         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13369
13370         * dbus/dbus-message.c:
13371         Make ref/unref atomic.
13372         Fix some docs.
13373
13374         * dbus/dbus-connection-internal.h:
13375         * dbus/dbus-connection.c:
13376         * dbus/dbus-connection.h:
13377         Make threadsafe.
13378         Change _peek to _borrow,_return & _steal_borrowed.
13379         Change disconnect callback to event.
13380         Make dbus_connection_dispatch_messages reentrant.
13381
13382         * dbus/dbus-transport.c:
13383         Don't ref the connection on calls to the transport
13384         implementation.
13385
13386         * dbus/dbus-message-handler.c:
13387         Make threadsafe.
13388
13389         * glib/dbus-gmain.c:
13390         Don't use peek_message anymore
13391
13392         * test/Makefile.am:
13393         * test/debug-thread.c:
13394         * test/debug-thread.h:
13395         Simple thread implementation that asserts() on deadlocks in
13396         single-threaded code.
13397
13398         * test/bus-test.c:
13399         (main) Call debug_threads_init.
13400
13401         * test/watch.c:
13402         Use disconnect message instead of disconnect callback.
13403
13404         * bus/connection.c:
13405         * bus/connection.h:
13406         Don't call dbus_connection_set_disconnect_function. Instead export
13407         bus_connection_disconnect.
13408
13409         * bus/dispatch.c:
13410         Call bus_connection_disconnect when we get a disconnected message.
13411
13412 2003-02-15  Havoc Pennington  <hp@pobox.com>
13413
13414         * dbus/dbus-message.c (dbus_message_new): fool around with the
13415         docs
13416
13417 2003-02-14  Havoc Pennington  <hp@pobox.com>
13418
13419         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13420
13421         * dbus/dbus-memory.c: fail if the debug functions indicate we
13422         should
13423
13424         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13425         (_dbus_decrement_fail_alloc_counter): debug functions to
13426         simulate memory allocation failures
13427
13428 2003-02-14  Havoc Pennington  <hp@pobox.com>
13429
13430         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13431         to DBusError
13432
13433 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13434
13435         * bus/driver.c: (bus_driver_handle_hello):
13436         * bus/driver.h:
13437         * bus/services.c: (bus_service_lookup):
13438         Reorder message sending so we get a more sane order.
13439
13440         * test/bus-test.c: (message_handler):
13441         Fix tyop.
13442
13443 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13444
13445         * bus/driver.c: (bus_driver_send_service_deleted),
13446         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13447         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13448         (bus_driver_send_welcome_message),
13449         (bus_driver_handle_list_services),
13450         (bus_driver_handle_acquire_service),
13451         (bus_driver_handle_service_exists):
13452         * dbus/dbus-bus.c: (dbus_bus_register_client),
13453         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13454         * dbus/dbus-errors.c: (dbus_result_to_string):
13455         * dbus/dbus-errors.h:
13456         * dbus/dbus-message.c: (dbus_message_append_args),
13457         (dbus_message_append_args_valist), (dbus_message_get_args),
13458         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13459         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13460         (dbus_message_iter_get_byte_array),
13461         (dbus_message_iter_get_string_array), (message_iter_test),
13462         (check_message_handling), (_dbus_message_test):
13463         * dbus/dbus-message.h:
13464         * test/bus-test.c: (main):
13465         Change fields to arguments in messages, so that they won't be
13466         confused with header fields.
13467
13468         * glib/test-dbus-glib.c: (main):
13469         Remove append_fields from hello message.
13470
13471 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13472
13473         * dbus/dbus-errors.c:
13474         * dbus/dbus-message.c:
13475         * dbus/dbus-string.c:
13476         Documentation fixes.
13477
13478 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13479
13480         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13481         (remove_timeout):
13482         Implement support for timeouts in dbus-glib.
13483
13484 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13485
13486         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13487         * dbus/dbus-message.c: (process_test_subdir):
13488         * test/break-loader.c: (find_breaks_based_on):
13489         Plug some memory leaks.
13490
13491 2003-02-13  Richard Hult  <rhult@codefactory.se>
13492
13493         * bus/main.c: Fix build.
13494
13495         * dbus/dbus-errors.h:
13496         * dbus/dbus-errors.c: Fix copyright for Anders.
13497
13498 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13499
13500         * bus/Makefile.am:
13501         Add utils.[ch]
13502
13503         * bus/connection.c: (bus_connection_foreach):
13504         Fix a warning.
13505
13506         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13507         (unescape_string), (new_section), (parse_section_start),
13508         (parse_key_value), (report_error), (bus_desktop_file_load),
13509         (bus_desktop_file_get_string):
13510         * bus/desktop-file.h:
13511         Use DBusError for error reporting.
13512
13513         * bus/dispatch.c: (send_one_message),
13514         (bus_dispatch_message_handler):
13515         * bus/driver.c: (bus_driver_send_service_deleted),
13516         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13517         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13518         (bus_driver_send_welcome_message),
13519         (bus_driver_handle_list_services),
13520         (bus_driver_handle_acquire_service),
13521         (bus_driver_handle_service_exists):
13522         * bus/loop.c: (bus_loop_run):
13523         * bus/main.c:
13524         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13525
13526         * bus/utils.c: (bus_wait_for_memory):
13527         * bus/utils.h:
13528         New files with general utility functions.
13529
13530         * dbus/dbus-internals.h:
13531         Remove _DBUS_HANDLE_OOM.
13532
13533 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13534
13535         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13536         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13537         * dbus/dbus-errors.h:
13538         Add DBusError structure.
13539
13540 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13541
13542         * test/data/valid-messages/standard-acquire-service.message:
13543         * test/data/valid-messages/standard-hello.message:
13544         * test/data/valid-messages/standard-list-services.message:
13545         * test/data/valid-messages/standard-service-exists.message:
13546         Add some standard messages.
13547
13548 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13549
13550         * bus/driver.c: (bus_driver_send_welcome_message),
13551         (bus_driver_handle_list_services),
13552         (bus_driver_handle_acquire_service),
13553         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13554         Update for API changes in libdbus.
13555
13556         * dbus/dbus-message.c: (dbus_message_new_reply):
13557         * dbus/dbus-message.h:
13558         Remove the name argument. The spec states that replies shouldn't
13559         have a name.
13560
13561 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13562
13563         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13564         (report_error), (bus_desktop_file_load), (lookup_section),
13565         (lookup_line), (bus_desktop_file_get_raw),
13566         (bus_desktop_file_get_string):
13567         * bus/desktop-file.h:
13568         Some fixes, and new functions for getting a key value from a section.
13569
13570 2003-02-13  Havoc Pennington  <hp@pobox.com>
13571
13572         * test/data/auth/fail-after-n-attempts.auth-script: new test
13573
13574         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13575         reject the client.
13576
13577 2003-02-13  Havoc Pennington  <hp@pobox.com>
13578
13579         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13580         dbus_credentials_match were backward
13581
13582         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13583         NO_CREDENTIALS and ROOT_CREDENTIALS
13584
13585         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13586         into here. Never process more commands after we've reached an
13587         end state; store further data as unused bytes.
13588
13589         * test/data/auth/*: add more auth tests
13590
13591         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13592         command to match exact string and EXPECT_UNUSED to match unused
13593         bytes
13594
13595         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13596
13597 2003-02-12  Havoc Pennington  <hp@pobox.com>
13598
13599         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13600         \r off of popped lines
13601
13602         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13603         scripts
13604
13605         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13606         SEND, append \r\n
13607
13608 2003-02-12  Havoc Pennington  <hp@pobox.com>
13609
13610         * dbus/Makefile.am: remove break-loader from the build, since it
13611         moved.
13612
13613         * configure.in: add --enable-gcov to turn on coverage profiling
13614         flags and disable optimization
13615
13616 2003-02-10  Havoc Pennington  <hp@pobox.com>
13617
13618         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13619         initial cut at test framework for DBusAuth from laptop.
13620         Doesn't quite work yet but it compiles and I need to get
13621         it off the 266mhz laptop. ;-)
13622
13623         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13624         fix a memleak in error case
13625
13626 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13627
13628         * bus/Makefile.am:
13629         * bus/desktop-file.c:
13630         * bus/desktop-file.h:
13631         Add a desktop file parser.
13632
13633 2003-02-11  Zack Rusin  <zack@kde.org>
13634
13635         * qt/message.[h|cpp]: sample implementation
13636         of the KDE wrapper for DBusMessage
13637
13638 2003-02-09  Zack Rusin  <zack@kde.org>
13639
13640         * test/bus-test.c: make_it_compile
13641         * doc/dbus-specification.sgml: minimal semantic fix
13642
13643 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13644
13645         Release 0.3
13646
13647         * NEWS: Update
13648
13649 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13650
13651         * dbus/Makefile.am:
13652         * dbus/dbus-break-loader.c:
13653         * test/Makefile.am:
13654         * test/break-loader.c:
13655         Move dbus-break-loader to test/ and rename it to break-loader.
13656
13657 2003-02-02  Havoc Pennington  <hp@pobox.com>
13658
13659         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13660         for code to manage cookies in your home directory
13661
13662         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13663
13664         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13665         to authenticate, then disconnect the client.
13666
13667 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13668
13669         * dbus/dbus-message.c (dbus_message_append_fields):
13670         Correct docs.
13671
13672 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13673
13674         * doc/dbus-specification.sgml:
13675         Update address format section.
13676
13677 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13678
13679         * test/Makefile.am:
13680         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13681         (message_handler), (new_connection_callback), (loop_quit),
13682         (loop_run), (main):
13683         Add bus test.
13684
13685 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13686
13687         * bus/driver.c: (bus_driver_handle_service_exists):
13688         Simplify the code a bit.
13689
13690         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13691         Fix a silly.
13692
13693 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13694
13695         * bus/Makefile.am:
13696         Add libdbus-daemon.la and link to it.
13697
13698 2003-02-01  James Willcox  <jwillcox@gnome.org>
13699
13700         * bus/driver.c: (bus_driver_handle_own_service):
13701         Actually include the service reply code in the message.
13702
13703 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13704
13705         * bus/driver.c: (bus_driver_handle_service_exists):
13706         Don't unref the incoming message.
13707
13708 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13709
13710         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13711
13712 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13713
13714         * dbus/dbus-server.c: (dbus_server_listen):
13715         * dbus/dbus-transport.c: (_dbus_transport_open):
13716         ifdef out the calls to the debug transport and server.
13717
13718 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13719
13720         * dbus/dbus-watch.c (dbus_watch_get_flags):
13721         Add note in the docs that ERROR or HANGUP won't be returned
13722         and are assumed always on.
13723
13724         * glib/dbus-gmain.c (add_watch):
13725         Always add IO_ERR | IO_HUP
13726
13727         * dbus/dbus-message.h:
13728         Add semicolon after dbus_message_iter_get_string_array().
13729         Makes qt code build again
13730
13731 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13732
13733         * bus/driver.c: (create_unique_client_name),
13734         (bus_driver_handle_hello):
13735         Don't take a name, just use a numeric id to identify
13736         each client.
13737
13738         * dbus/Makefile.am:
13739         * dbus/dbus-bus.c: (dbus_bus_register_client),
13740         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13741         * dbus/dbus-bus.h:
13742         Add new convenience functions for communicating with the bus.
13743
13744         * dbus/dbus-message.h:
13745
13746         * dbus/dbus-protocol.h:
13747         Fix a typo.
13748
13749 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13750
13751         * dbus/dbus-message.c (dbus_message_append_fields):
13752         Add some more doc comments.
13753
13754 2003-02-01  Havoc Pennington  <hp@pobox.com>
13755
13756         * dbus/dbus-break-loader.c (randomly_modify_length): change
13757         a 4-byte value in the message as if it were a length
13758
13759         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13760         execute bit on saved files
13761
13762 2003-02-01  Havoc Pennington  <hp@pobox.com>
13763
13764         * dbus/dbus-break-loader.c (main): new program to find messages
13765         that break the loader.
13766
13767         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13768         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13769
13770         * dbus/dbus-string.c (_dbus_string_set_byte): new
13771
13772 2003-01-31  Havoc Pennington  <hp@pobox.com>
13773
13774         * dbus/dbus-message.c: refactor the test code to be more general,
13775         in preparation for writing a "randomly permute test cases to
13776         try to break the loader" program.
13777
13778 2003-01-31  Havoc Pennington  <hp@pobox.com>
13779
13780         * doc/dbus-specification.sgml: work on the specification
13781
13782         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13783         the protocol version of the message.
13784
13785         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13786         no longer specifies that.
13787         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13788         1/2/3/4)
13789
13790         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13791         "break" for DBUS_TYPE_NIL, remove @todo
13792
13793 2003-01-31  Havoc Pennington  <hp@pobox.com>
13794
13795         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13796         just set_is_error/get_is_error as this is a commonly-used
13797         function, and write docs.
13798
13799 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13800
13801         * dbus/dbus-address.c: (dbus_address_entry_free):
13802         Free key and value lists.
13803
13804         * dbus/dbus-internals.c: (_dbus_type_to_string):
13805         Add the types we didn't have.
13806
13807         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13808         (_dbus_marshal_validate_arg):
13809         Add NIL types.
13810
13811         * dbus/dbus-message.c: (dbus_message_set_sender):
13812         Remove todo about being able to set sender to NULL.
13813
13814         (dbus_message_set_is_error_reply),
13815         (dbus_message_get_is_error_reply):
13816         * dbus/dbus-message.h:
13817         New functions.
13818
13819         * dbus/dbus-protocol.h:
13820         Add error reply flag.
13821
13822         * test/data/valid-messages/opposite-endian.message:
13823         Add NIL type to test.
13824
13825 2003-01-31  Havoc Pennington  <hp@pobox.com>
13826
13827         * doc/dbus-specification.sgml: fully specify the header.  Add
13828         flags and major protocol version, and change header/body len to
13829         unsigned.
13830
13831         * dbus/dbus-message-builder.c (append_saved_length): append length
13832         as uint32
13833
13834         * dbus/dbus-message.c (dbus_message_create_header): change header
13835         length and body length to unsigned. Add the new fields from the
13836         spec
13837         (_dbus_message_loader_return_buffer): unsigned header/body len
13838
13839 2003-01-30  Havoc Pennington  <hp@pobox.com>
13840
13841         * dbus/dbus-auth.c: rework to use only REJECTED, no
13842         MECHANISMS
13843
13844         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13845         use REJECTED, suggested by Mark McLoughlin
13846
13847 2003-01-30  Havoc Pennington  <hp@pobox.com>
13848
13849         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13850         a better way to report errors here. e.g.  "unix address lacks
13851         path" or something. also "no such file" when the path doesn't
13852         exist, etc.
13853
13854         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13855         leaking list nodes
13856         (dbus_parse_address): add @todo about documenting address format,
13857         and allowing , and ; to be escaped
13858
13859 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13860
13861         * dbus/Makefile.am:
13862         Add dbus-address.[ch]
13863
13864         * dbus/dbus-address.c: (dbus_address_entry_free),
13865         (dbus_address_entries_free), (create_entry),
13866         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13867         (dbus_parse_address), (_dbus_address_test):
13868         * dbus/dbus-address.h:
13869         New files for dealing with address parsing.
13870
13871         * dbus/dbus-connection.c:
13872         Document timeout functions.
13873
13874         * dbus/dbus-message.c:
13875         Document dbus_message_new_from_message.
13876
13877         * dbus/dbus-server-debug.c:
13878         Document.
13879
13880         * dbus/dbus-server.c: (dbus_server_listen):
13881         Parse address and use correct server implementation.
13882
13883         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13884         * dbus/dbus-string.h:
13885         New function with test.
13886
13887         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13888         * dbus/dbus-test.h:
13889         Add address tests.
13890
13891         * dbus/dbus-transport-debug.c:
13892         Document.
13893
13894         * dbus/dbus-transport.c: (_dbus_transport_open):
13895         Parse address and use correct transport implementation.
13896
13897 2003-01-30  Havoc Pennington  <hp@pobox.com>
13898
13899         * dbus/dbus-message.c: use message->byte_order instead of
13900         DBUS_COMPILER_BYTE_ORDER throughout.
13901         (dbus_message_create_header): pad header to align the
13902         start of the body of the message to 8-byte boundary
13903
13904         * dbus/dbus-marshal.h: make all the demarshalers take const
13905         DBusString arguments.
13906
13907         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13908         validate message args here, so we don't have to do slow validation
13909         later, and so we catch bad messages as they are incoming. Also add
13910         better checks on header_len and body_len. Also fill in
13911         message->byte_order
13912
13913         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13914         implemented properly)
13915         (_dbus_string_validate_nul): new function to check all-nul
13916
13917         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13918         get_arg_end_pos and remove all validation
13919         (_dbus_marshal_validate_arg): actually do validation here.
13920
13921 2003-01-29  Havoc Pennington  <hp@pobox.com>
13922
13923         * dbus/dbus-message.c (check_message_handling): fix assertion
13924         failure on set_client_serial
13925
13926 2003-01-28  Havoc Pennington  <hp@pobox.com>
13927
13928         * dbus/dbus-server-debug.c: Add doc section comments
13929
13930         * dbus/dbus-transport-debug.c: add doc section comments
13931
13932 2003-01-28  Havoc Pennington  <hp@redhat.com>
13933
13934         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13935         the reverse order from how I had it
13936         (_dbus_string_base64_encode): reverse encoding order. I was
13937         basically byteswapping everything during encoding.
13938
13939 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13940
13941         * dbus/dbus-connection-internal.h:
13942         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13943         (_dbus_connection_remove_timeout):
13944         Add functions for adding and removing timeouts.
13945
13946         * dbus/dbus-message.c: (dbus_message_new_from_message):
13947         Add new function that takes a message and creates an exact
13948         copy of it, but with the refcount set to 1.
13949         (check_message_handling):
13950         Fix build error.
13951
13952         * dbus/dbus-server-protected.h:
13953         * dbus/dbus-server.c: (_dbus_server_init_base),
13954         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13955         (dbus_server_set_timeout_functions):
13956         (_dbus_server_remove_timeout):
13957         New functions so that a server can add and remove timeouts.
13958
13959         (dbus_server_listen):
13960         Add commented out call to dbus_server_debug_new.
13961
13962         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13963         Actually set the handler, doh.
13964
13965         * dbus/dbus-transport.c: (_dbus_transport_open):
13966         Add commented out call to dbus_transport_debug_client_new.
13967
13968         * dbus/Makefile.am:
13969         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13970
13971 2003-01-28  Havoc Pennington  <hp@pobox.com>
13972
13973         * dbus/dbus-message.c (check_message_handling): function to check
13974         on the loaded message, iterates over it etc.
13975
13976 2003-01-28  Havoc Pennington  <hp@pobox.com>
13977
13978         * test/Makefile.am (dist-hook): fix make distdir
13979
13980         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13981
13982 2003-01-27  Havoc Pennington  <hp@pobox.com>
13983
13984         * dbus/dbus-mempool.c (time_for_size): replace printf with
13985         _dbus_verbose
13986
13987         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13988         empty lines; fix the SAVE_LENGTH stuff to be
13989         START_LENGTH/END_LENGTH so it actually works; couple other
13990         bugfixes
13991
13992         * test/Makefile.am (dist-hook): add dist-hook for .message files
13993
13994         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13995         can be constant or locked.
13996         (_dbus_string_free): allow freeing a const string as
13997         documented/intended
13998
13999         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14000
14001         * dbus/dbus-test-main.c (main): take an argument which is the
14002         directory containing test data
14003
14004         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14005         argument to this and load all the messages in test/data/
14006         checking that they can be loaded or not loaded as appropriate.
14007
14008 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14009
14010         * bus/dispatch.c: (bus_dispatch_message_handler):
14011         Dispatch messages sent to services.
14012
14013         * bus/driver.c: (bus_driver_send_service_deleted),
14014         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14015         (bus_driver_send_service_acquired):
14016         Add helper functions for sending service related messages.
14017
14018         (bus_driver_send_welcome_message):
14019         Send HELLO_REPLY instead of WELCOME.
14020
14021         (bus_driver_handle_list_services):
14022         Send LIST_SERVICES_REPLY instead of SERVICES.
14023
14024         (bus_driver_handle_own_service),
14025         (bus_driver_handle_service_exists):
14026         New message handlers.
14027
14028         (bus_driver_handle_message):
14029         Invoke new message handlers.
14030
14031         (bus_driver_remove_connection):
14032         Don't remove any services here since that's done automatically
14033         by bus_service_remove_owner now.
14034
14035         * bus/driver.h:
14036         New function signatures.
14037
14038         * bus/services.c: (bus_service_add_owner):
14039         Send ServiceAcquired message if we're the only primary owner.
14040
14041         (bus_service_remove_owner):
14042         Send ServiceAcquired/ServiceLost messages.
14043
14044         (bus_service_set_prohibit_replacement),
14045         (bus_service_get_prohibit_replacement):
14046         Functions for setting prohibit replacement.
14047
14048         (bus_service_has_owner):
14049         New function that checks if a connection is in the owner queue of
14050         a certain service.
14051
14052         * bus/services.h:
14053         Add new function signatures.
14054
14055         * dbus/dbus-list.c: (_dbus_list_test):
14056         Add tests for _dbus_list_remove_last and traversing the list backwards.
14057
14058         * dbus/dbus-list.h:
14059         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14060         go any further, so return NULL then.
14061
14062         * dbus/dbus-protocol.h:
14063         Add new messages, service flags and service replies.
14064
14065 2003-01-26  Havoc Pennington  <hp@pobox.com>
14066
14067         * dbus/dbus-message-builder.c: implement, completely untested.
14068
14069         * test/data/*: add data to be used in testing.
14070         ".message" files are our simple loadable text format.
14071         ".message-raw" will be binary dumps of messages.
14072
14073         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14074
14075 2003-01-26  Havoc Pennington  <hp@pobox.com>
14076
14077         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14078
14079         * dbus/dbus-errors.c (dbus_result_to_string): add
14080         file errors
14081
14082         * dbus/dbus-message-builder.c: new file, will contain code to load
14083         up messages from files. Not implemented yet.
14084
14085 2003-01-26  Havoc Pennington  <hp@pobox.com>
14086
14087         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14088         the sender by setting to NULL
14089
14090 2003-01-26  Havoc Pennington  <hp@pobox.com>
14091
14092         The unit tests pass, but otherwise untested.  If it breaks, the
14093         tests should have been better. ;-)
14094
14095         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14096         the connection.
14097
14098         * dbus/dbus-message.c: redo everything so we maintain
14099         message->header as the only copy of the various fields.
14100         This avoids the possibility of out-of-memory in some cases,
14101         for example dbus_message_lock() can't run out of memory anymore,
14102         and avoids extra copying. Figured I may as well go ahead and do
14103         this since it was busted for dbus_message_lock to not return
14104         failure on OOM, and dbus_message_write_header was totally
14105         unchecked for OOM. Also fixed some random other bugs.
14106
14107         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14108         that strings are nul-terminated. Also, end_pos can be equal
14109         to string length just not greater than, I think.
14110         (_dbus_marshal_set_int32): new function
14111         (_dbus_marshal_set_uint32): new function
14112         (_dbus_marshal_set_string): new function
14113
14114         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14115         a warning, init timeout_list to NULL
14116         (dbus_connection_send_message): don't use uninitialized variable
14117         "serial"
14118
14119         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14120
14121 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14122
14123         * bus/driver.c: (bus_driver_handle_hello),
14124         (bus_driver_send_welcome_message):
14125         Plug leaks
14126
14127 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14128
14129         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14130         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14131         (dbus_connection_unref):
14132         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14133         * dbus/dbus-message.c: (dbus_message_unref),
14134         Plug memory leaks.
14135
14136         (dbus_message_get_fields):
14137         Remove debugging printout.
14138
14139         (_dbus_message_loader_return_buffer):
14140         Don't store the header string.
14141
14142         (_dbus_message_test):
14143         Plug leaks.
14144
14145 2003-01-26  Richard Hult  <rhult@codefactory.se>
14146
14147         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14148         the file descriptor list, since it can change under us.
14149
14150 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14151
14152         * glib/dbus-gmain.c: (dbus_connection_prepare),
14153         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14154         (remove_watch), (dbus_connection_hookup_with_g_main):
14155         Rewrite the glib handling to use its own GSource instead of a
14156         GIOChannel so we can catch messages put in the queue while waiting
14157         for a reply.
14158
14159 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14160
14161         * bus/Makefile.am:
14162         * bus/connection.c: (connection_disconnect_handler),
14163         (connection_watch_callback), (bus_connection_setup):
14164         * bus/dispatch.c: (send_one_message),
14165         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14166         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14167         * bus/dispatch.h:
14168         * bus/driver.c: (bus_driver_send_service_deleted),
14169         (bus_driver_send_service_created), (bus_driver_handle_hello),
14170         (bus_driver_send_welcome_message),
14171         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14172         (bus_driver_handle_message):
14173         * bus/driver.h:
14174         Refactor code, put the message dispatching in its own file. Use
14175         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14176         is disconnected.
14177
14178 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14179
14180         * dbus/dbus-internals.h:
14181         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14182
14183         * dbus/dbus-message.c: (dbus_message_get_sender):
14184         * dbus/dbus-message.h:
14185         Implement dbus_message_get_sender.
14186
14187         * dbus/dbus-protocol.h:
14188         Add message and service defines.
14189
14190 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14191
14192         * dbus/dbus-connection.c: (dbus_connection_send_message):
14193         * dbus/dbus-message-internal.h:
14194         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14195         (dbus_message_write_header):
14196         Remove _dbus_messag_unlock and don't set the client serial on a
14197         message if one already exists.
14198
14199 2003-01-24  Havoc Pennington  <hp@pobox.com>
14200
14201         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14202         list_pool
14203
14204         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14205         on OOM
14206
14207 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14208
14209         * dbus/dbus-list.c: (alloc_link), (free_link):
14210         Use a memory pool for the links.
14211
14212 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14213
14214         * bus/connection.c: (bus_connection_foreach):
14215         * bus/connection.h:
14216         Add new bus_connection_foreach function.
14217
14218         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14219         Add function that broadcasts a message to all clients.
14220
14221         (bus_driver_send_service_created), (bus_driver_handle_hello),
14222         (bus_driver_send_welcome_message),
14223         (bus_driver_handle_list_services), (bus_driver_message_handler):
14224         Implement functions that take care of listing services, and notifying
14225         clients when new services are created.
14226
14227         * bus/services.c: (bus_services_list):
14228         * bus/services.h:
14229         Add new function that returns an array of strings with the currently
14230         registered services.
14231
14232         * glib/dbus-glib.h:
14233         * glib/dbus-gmain.c:
14234         Update copyright year.
14235
14236 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14237
14238         * dbus/dbus-connection.c: (dbus_connection_send_message):
14239         Unlock the message in case it was sent earlier.
14240
14241         (dbus_connection_send_message_with_reply_and_block):
14242         Remove the reply message from the list.
14243
14244         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14245         Set array_len and new_pos correctly.
14246
14247         (_dbus_marshal_test):
14248         Remove debug output.
14249
14250         * dbus/dbus-message-internal.h:
14251         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14252         New function that returns the reply serial.
14253
14254         (_dbus_message_unlock):
14255         New function that unlocks a message and resets its header.
14256
14257         (dbus_message_append_string_array),
14258         (dbus_message_get_fields_valist),
14259         (dbus_message_iter_get_field_type),
14260         (dbus_message_iter_get_string_array),
14261         (dbus_message_get_fields),
14262         (dbus_message_append_fields_valist):
14263         Handle string arrays.
14264
14265         (dbus_message_set_sender):
14266         Make this function public since the bus daemon needs it.
14267
14268         (decode_header_data):
14269         Set the reply serial to -1 initially.
14270
14271         * dbus/dbus-message.h:
14272         Add dbus_message_set_sender.
14273
14274 2003-01-24  Havoc Pennington  <hp@pobox.com>
14275
14276         * doc/dbus-specification.sgml: add some stuff
14277
14278 2003-01-22  Havoc Pennington  <hp@pobox.com>
14279
14280         * doc/dbus-specification.sgml: Start to document the protocol.
14281
14282 2003-01-22  Havoc Pennington  <hp@pobox.com>
14283
14284         * dbus/dbus-connection.c
14285         (dbus_connection_send_message_with_reply_and_block): add some @todo
14286
14287         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14288
14289 2003-01-21  Havoc Pennington  <hp@pobox.com>
14290
14291         (patch untested because can't compile)
14292
14293         * bus/driver.c (create_unique_client_name): make this function
14294         never recycle client names. Also, caller should initialize
14295         the DBusString.
14296
14297         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14298
14299 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14300
14301         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14302         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14303         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14304         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14305         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14306         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14307         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14308         * dbus/dbus-marshal.h:
14309         * dbus/dbus-protocol.h:
14310         Add support for marshalling and demarshalling integer, double
14311         and string arrays.
14312
14313 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14314
14315         * bus/Makefile.am:
14316         Add driver.[ch]
14317
14318         * bus/connection.c: (connection_disconnect_handler):
14319         Remove the connection from the bus driver's list.
14320
14321         (connection_watch_callback): Dispatch messages.
14322
14323         (free_connection_data): Free connection name.
14324
14325         (bus_connection_setup): Add connection to the bus driver's list.
14326         (bus_connection_remove_owned_service):
14327         (bus_connection_set_name), (bus_connection_get_name):
14328         Add functions for setting and getting the connection's name.
14329
14330         * bus/connection.h:
14331         Add function headers.
14332
14333         * bus/driver.c: (create_unique_client_name),
14334         (bus_driver_handle_hello_message),
14335         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14336         (bus_driver_add_connection), (bus_driver_remove_connection):
14337         * bus/driver.h:
14338         * bus/main.c:
14339         * bus/services.c: (bus_service_free):
14340         * bus/services.h:
14341         New file that handles communication and registreation with the bus
14342         itself.
14343
14344 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14345
14346         * dbus/dbus-connection.c: (dbus_connection_send_message):
14347         Add a new client_serial parameter.
14348
14349         (dbus_connection_send_message_with_reply):
14350         Remove a @todo since we've implemented the blocking function.
14351
14352         (dbus_connection_send_message_with_reply_and_block):
14353         New function that sends a message and waits for a reply and
14354         then returns the reply.
14355
14356         * dbus/dbus-connection.h:
14357         Add new functions.
14358
14359         * dbus/dbus-errors.c: (dbus_result_to_string):
14360         * dbus/dbus-errors.h:
14361         Add new DBUS_RESULT.
14362
14363         * dbus/dbus-message-internal.h:
14364         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14365         (_dbus_message_set_sender), (dbus_message_write_header),
14366         (dbus_message_new_reply), (decode_header_data),
14367         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14368         * dbus/dbus-message.h:
14369         Add new functions that set the reply serial and sender.
14370         Also marshal and demarshal them correctly and add test.
14371
14372         * dbus/dbus-protocol.h:
14373         Add new DBUS_MESSAGE_TYPE_SENDER.
14374
14375         * glib/dbus-glib.h:
14376         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14377         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14378         (dbus_connection_hookup_with_g_main):
14379         * glib/test-dbus-glib.c: (main):
14380         Rewrite to use GIOChannel and remove the GSource crack.
14381
14382         * test/echo-client.c: (main):
14383         * test/watch.c: (check_messages):
14384         Update for changed APIs
14385
14386 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14387
14388         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14389
14390         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14391         Create a DBusTimeoutList.
14392         (dbus_connection_set_timeout_functions): Add new function to
14393         set timeout callbacks
14394
14395         * dbus/dbus-connection.h: Add public DBusTimeout API.
14396
14397         * dbus/dbus-message.c: (dbus_message_get_service):
14398         * dbus/dbus-message.h:  New function.
14399
14400         * dbus/dbus-server.c: Fix small doc typo.
14401
14402         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14403
14404 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14405
14406         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14407         of the string, just as long as specified.
14408
14409 2003-01-19  Havoc Pennington  <hp@pobox.com>
14410
14411         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14412         new function
14413
14414         * dbus/dbus-server.c (dbus_server_set_max_connections)
14415         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14416         keep track of current number of connections, and add API for
14417         setting a max (but haven't implemented enforcing the max yet)
14418
14419 2003-01-18  Havoc Pennington  <hp@pobox.com>
14420
14421         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14422         reading/writing if read_watch != NULL or write_watch != NULL.
14423
14424         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14425         the message loader code to actually load message->header and
14426         message->body into the newly-created message.
14427
14428         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14429         in OOM case
14430
14431         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14432         (dbus_connection_get_max_message_size)
14433         (dbus_connection_set_max_live_messages_size)
14434         (dbus_connection_get_max_live_messages_size): implement some
14435         resource limitation functions
14436
14437         * dbus/dbus-resources.c: new file implementing some of the
14438         resource limits stuff
14439
14440         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14441         missing docs, add @todo to handle OOM etc.
14442
14443         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14444         docs
14445
14446 2003-01-18  Havoc Pennington  <hp@pobox.com>
14447
14448         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14449         connection if it hasn't been already.
14450
14451         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14452         replace with DisconnectFunction.
14453
14454 2003-01-18  Havoc Pennington  <hp@pobox.com>
14455
14456         Building --disable-verbose-mode --disable-asserts --disable-tests
14457         cuts the library from 112K to 45K or so
14458
14459         * configure.in: check for varargs macro support,
14460         add --enable-verbose-mode, --enable-asserts.
14461
14462         * dbus/dbus-internals.h (_dbus_assert): support
14463         DBUS_DISABLE_ASSERT
14464         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14465
14466 2003-01-18  Havoc Pennington  <hp@pobox.com>
14467
14468         * dbus/dbus-test.c: include config.h so that tests actually run
14469
14470         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14471         so the failure mode when that assumption fails will be plenty
14472         obvious.
14473
14474 2003-01-18  Havoc Pennington  <hp@pobox.com>
14475
14476         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14477
14478         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14479         the distribution
14480
14481         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14482         since we don't want to use those in make check
14483
14484 2003-01-15  Havoc Pennington  <hp@redhat.com>
14485
14486         Release 0.2
14487
14488         * NEWS: update
14489
14490 2003-01-15  Havoc Pennington  <hp@redhat.com>
14491
14492         * test/Makefile.am: fix so that test source code ends up in the
14493         distribution on make distcheck
14494
14495 2003-01-15  Havoc Pennington  <hp@redhat.com>
14496
14497         Release 0.1.
14498
14499         * NEWS: update
14500
14501 2003-01-15  Havoc Pennington  <hp@redhat.com>
14502
14503         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14504         fix build when --disable-tests
14505
14506         * Makefile.am (EXTRA_DIST): put HACKING in here
14507
14508         * HACKING: document procedure for making a tarball release.
14509
14510 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14511
14512         * bus/connection.c: (connection_error_handler),
14513         (bus_connection_setup):
14514         * bus/main.c: (main):
14515         Make sure that the DBusConnectionData struct is NULLed
14516         out to prevent a segfault.
14517
14518         * dbus/dbus-errors.c: (dbus_result_to_string):
14519         * dbus/dbus-errors.h:
14520         * dbus/dbus-message.c: (dbus_message_get_fields),
14521         (dbus_message_get_fields_valist), (_dbus_message_test):
14522         * dbus/dbus-message.h:
14523         Make dbus_message_get_fields return a result code so we can
14524         track invalid fields as well as oom.
14525
14526 2003-01-11  Havoc Pennington  <hp@pobox.com>
14527
14528         * configure.in: change --enable-test/--enable-ansi action-if-given
14529         to enable_foo=$enableval instead of enable_foo=yes
14530
14531 2003-01-08  Havoc Pennington  <hp@pobox.com>
14532
14533         * dbus/dbus-string.c (_dbus_string_align_length): new function
14534
14535         * dbus/dbus-test-main.c: move main() for test app here
14536         * dbus/dbus-test.c
14537         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14538         symbol to run tests, because dbus-test isn't in the main
14539         library
14540
14541         Code review nitpicks.
14542
14543         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14544         for people with narrow emacs ;-). Assert client_serial was filled
14545         in. Assert message->name != NULL.
14546         (dbus_message_append_fields): have "first_field_type" arg separate
14547         from va list, needed for C++ binding that also uses varargs IIRC
14548         and helps with type safety
14549         (dbus_message_new): add @todo about using DBusString to store
14550         service/name internally
14551         (dbus_message_new): don't leak ->service and ->name on OOM later
14552         in the function
14553         (dbus_message_unref): free the service name
14554         (dbus_message_get_fields): same change to varargs
14555         i.e. first_field_type
14556         (_dbus_message_loader_return_buffer): assert that the message data
14557         is aligned (if not it's a bug in our code). Put in verbose griping
14558         about why we set corrupted = TRUE.
14559         (decode_header_data): add FIXME that char* is evil.  Was going to
14560         add FIXME about evil locale-specific string.h strncmp, but just
14561         switched to wacky string-as-uint32 optimization. Move check for
14562         "no room for field name" above get_const_data_len() to avoid
14563         assertion failure in get_const_data_len if we have trailing 2
14564         bytes or the like. Check for service and name fields being
14565         provided twice. Don't leak service/name on error. Require field
14566         names to be aligned to 4 bytes.
14567
14568         * dbus/dbus-marshal.c: move byte swap stuff to header
14569         (_dbus_pack_int32): uscore-prefix
14570         (_dbus_unpack_int32): uscore-prefix
14571         (_dbus_unpack_uint32): export
14572         (_dbus_demarshal_string): add @todo complaining about use of
14573         memcpy()
14574         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14575         handling allowing corrupt data to go unchecked
14576
14577 2003-01-08  Havoc Pennington  <hp@redhat.com>
14578
14579         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14580         to the select() as needed for authentication. (should be using
14581         _dbus_poll() not select, but for another day)
14582
14583         * dbus/dbus.h: include dbus/dbus-protocol.h
14584
14585 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14586
14587         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14588         dbus-connection.h
14589
14590 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14591
14592         * dbus/dbus-internals.c: (_dbus_type_to_string):
14593         New function that returns a string describing a type.
14594
14595         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14596         * dbus/dbus-marshal.h:
14597         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14598         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14599         (dbus_message_iter_get_byte_array):
14600         * dbus/dbus-message.h:
14601         Add new convenience functions for appending and getting message fields.
14602         Also add demarshalling routines for byte arrays.
14603
14604 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14605
14606         * dbus/dbus-connection-internal.h:
14607         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14608         (_dbus_connection_get_next_client_serial),
14609         (dbus_connection_send_message):
14610         * dbus/dbus-internals.h:
14611         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14612         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14613         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14614         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14615         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14616         (_dbus_verbose_bytes), (_dbus_marshal_test):
14617         * dbus/dbus-marshal.h:
14618         * dbus/dbus-message-internal.h:
14619         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14620         (dbus_message_write_header), (_dbus_message_lock),
14621         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14622         (dbus_message_get_name), (dbus_message_append_int32),
14623         (dbus_message_append_uint32), (dbus_message_append_double),
14624         (dbus_message_append_string), (dbus_message_append_byte_array),
14625         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14626         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14627         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14628         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14629         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14630         (decode_header_data), (_dbus_message_loader_return_buffer),
14631         (message_iter_test), (_dbus_message_test):
14632         * dbus/dbus-message.h:
14633         * dbus/dbus-protocol.h:
14634         * dbus/dbus-test.c: (main):
14635         * dbus/dbus-test.h:
14636         * glib/test-dbus-glib.c: (message_handler), (main):
14637         * test/echo-client.c: (main):
14638         * test/watch.c: (check_messages):
14639         Make messages sendable and receivable for real.
14640
14641 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14642
14643         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14644         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14645         * dbus/dbus-message.c: (dbus_message_append_int32),
14646         (dbus_message_append_uint32), (dbus_message_append_double),
14647         (dbus_message_append_string), (dbus_message_append_byte_array):
14648         Handle OOM restoration.
14649
14650 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14651
14652         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14653         (_dbus_demarshal_string), (_dbus_marshal_test):
14654         * dbus/dbus-marshal.h:
14655         * dbus/dbus-message.c: (dbus_message_get_name),
14656         Document these functions.
14657
14658         (dbus_message_append_int32), (dbus_message_append_uint32),
14659         (dbus_message_append_double), (dbus_message_append_string),
14660         (dbus_message_append_byte_array):
14661         * dbus/dbus-message.h:
14662         Add functions for adding message fields of different types.
14663
14664         * dbus/dbus-protocol.h:
14665         Add the different types.
14666
14667 2003-01-05  Havoc Pennington  <hp@pobox.com>
14668
14669         * bus/connection.c: implement routines for handling connections,
14670         first thing is keeping a list of owned services on each connection
14671         and setting up watches etc.
14672
14673         * bus/services.c: implement a mapping from service names to lists
14674         of connections
14675
14676         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14677
14678         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14679         to use static mutexes for global data
14680
14681         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14682         collection of functions to set/get application-specific data
14683         on the DBusConnection.
14684
14685 2003-01-04  Havoc Pennington  <hp@pobox.com>
14686
14687         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14688         (_dbus_poll): new function
14689
14690         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14691         copied from GLib
14692
14693         * bus/loop.c: initial code for the daemon main loop
14694
14695 2003-01-04  Havoc Pennington  <hp@pobox.com>
14696
14697         * test/watch.c (error_handler): make it safe if the error handler
14698         is called multiple times (if we s/error handler/disconnect
14699         handler/ we should just guarantee it's called only once)
14700
14701         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14702         error handler on disconnect (it's quite possible we should
14703         just change the error handler to a "disconnect handler," I'm
14704         not sure we have any other meaningful errors)
14705
14706         * configure.in: check for getpwnam_r
14707
14708         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14709         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14710         mechanism as in SASL spec, using socket credentials
14711
14712         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14713         (_dbus_send_credentials_unix_socket): new function
14714
14715         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14716         dbus_accept()
14717         (_dbus_write): only check errno if <0 returned
14718         (_dbus_write_two): ditto
14719
14720 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14721
14722         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14723         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14724         (_dbus_marshal_test):
14725         * dbus/dbus-marshal.h:
14726         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14727         to _dbus_marshal_utf8_string. Also fix some tests.
14728
14729 2002-12-28  Harri Porten  <porten@kde.org>
14730
14731         * configure.in: added check for C++ compiler and a very cheesy
14732         check for the Qt integration
14733
14734         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14735
14736         * qt/Makefile.am: added
14737
14738         * qt/.cvsignore: added
14739
14740         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14741         latter, added #ifdef QT_THREAD_SUPPORT guard.
14742
14743         * dbus/Makefile.am: added missing headers for make dist
14744
14745 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14746
14747         * dbus/Makefile.am: fixup export-symbols-regex.
14748
14749 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14750
14751         * acinclude.m4: Add this file and put the
14752         PKG_CHECK_MODULE macro in it.
14753
14754 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14755
14756         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14757         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14758         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14759         (_dbus_marshal_test):
14760         Make the demarshalling routines align the pos argument.
14761         Add string marshalling tests and fix the obvious bugs
14762         discovered.
14763
14764 2002-12-26  Havoc Pennington  <hp@pobox.com>
14765
14766         * dbus/dbus-auth.c: fixes fixes fixes
14767
14768         * dbus/dbus-transport-unix.c: wire up support for
14769         encoding/decoding data on the wire
14770
14771         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14772         (_dbus_auth_decode_data): append to target string
14773         instead of nuking it.
14774
14775 2002-12-26  Havoc Pennington  <hp@pobox.com>
14776
14777         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14778         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14779         doh
14780
14781         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14782         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14783         now). Main point is because I wanted unpack_uint32 to implement
14784         _dbus_verbose_bytes
14785         (_dbus_verbose_bytes): new function
14786
14787         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14788
14789         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14790         mechanism to handle a corrupt message stream
14791         (_dbus_message_loader_new): fix preallocation to only prealloc,
14792         not prelengthen
14793
14794         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14795         (_dbus_string_test): enhance tests for copy/move and fix the
14796         functions
14797
14798         * dbus/dbus-transport-unix.c: Hold references in more places to
14799         avoid reentrancy problems
14800
14801         * dbus/dbus-transport.c: ditto
14802
14803         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14804         leak reference count in no-message case
14805
14806         * test/watch.c (do_mainloop): handle adding/removing watches
14807         during iteration over the watches. Also, ref the connection/server
14808         stored on a watch, so we don't try to mangle a destroyed one.
14809
14810         * dbus/dbus-transport-unix.c (do_authentication): perform
14811         authentication
14812
14813         * dbus/dbus-auth.c (get_state): add a state
14814         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14815         (_dbus_auth_get_unused_bytes): append the unused bytes
14816         to the passed in string, rather than prepend
14817
14818         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14819         the auth conversation DBusAuth
14820
14821         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14822         (_dbus_transport_new_for_domain_socket): when creating a
14823         transport, pass in whether it's a client-side or server-side
14824         transport so we know which DBusAuth to create
14825
14826 2002-12-03  Havoc Pennington  <hp@pobox.com>
14827
14828         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14829         _after_ finalizing the derived members
14830         (unix_connection_set): unref watch if we fail to add it
14831
14832         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14833         transport first, so that the connection owned by the
14834         transport will be valid as the transport finalizes.
14835
14836         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14837         if necessary, and remove watches from the connection.
14838
14839         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14840
14841 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14842
14843         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14844         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14845         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14846         (_dbus_marshal_test):
14847         * dbus/dbus-marshal.h:
14848         Add string marshal functions and have the demarshal functions
14849         return the new position.
14850
14851 2002-12-25  Havoc Pennington  <hp@pobox.com>
14852
14853         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14854         it is a simple protocol that just maps directly to SASL.
14855
14856         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14857         initial implementation, not actually used yet.
14858
14859         * dbus/dbus-string.c (_dbus_string_find): new function
14860         (_dbus_string_equal): new function
14861         (_dbus_string_base64_encode): new function
14862         (_dbus_string_base64_decode): new function
14863
14864 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14865
14866         * dbus/Makefile.am:
14867         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14868         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14869         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14870         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14871         * dbus/dbus-marshal.h:
14872         * dbus/dbus-protocol.h:
14873         * dbus/dbus-test.c: (main):
14874         * dbus/dbus-test.h:
14875         Add un-optimized marshalling/demarshalling routines.
14876
14877 2002-12-25  Harri Porten  <porten@kde.org>
14878
14879         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14880
14881 2002-12-24  Zack Rusin  <zack@kde.org>
14882
14883         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14884         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14885         main loop stuff
14886
14887 2002-12-24  Havoc Pennington  <hp@pobox.com>
14888
14889         * glib/dbus-gthread.c: fix include
14890
14891         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14892         I think glib API needs to change, though, as you don't
14893         want to use DBusMessageFunction, you want to use the
14894         DBusMessageHandler object. Probably
14895         dbus_connection_open_with_g_main_loop()
14896         and dbus_connection_setup_g_main_loop() or something like that
14897         (but think of better names...) that just create a connection
14898         that has watch/timeout functions etc. already set up.
14899
14900         * dbus/dbus-connection.c
14901         (dbus_connection_send_message_with_reply): new function just to
14902         show how the message handler helps us deal with replies.
14903
14904         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14905
14906         * dbus/dbus-string.c (_dbus_string_test): free a string that
14907         wasn't
14908
14909         * dbus/dbus-hash.c: use memory pools for the hash entries
14910         (rebuild_table): be more paranoid about overflow, and
14911         shrink table when we can
14912         (_dbus_hash_test): reduce number of sprintfs and write
14913         valid C89. Add tests for case where we grow and then
14914         shrink the hash table.
14915
14916         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14917
14918         * dbus/dbus-connection.c (dbus_connection_register_handler)
14919         (dbus_connection_unregister_handler): new functions
14920
14921         * dbus/dbus-message.c (dbus_message_get_name): new
14922
14923         * dbus/dbus-list.c: fix docs typo
14924
14925         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14926         an object representing a handler for messages.
14927
14928 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14929
14930         * glib/dbus-glib.h:
14931         * glib/dbus-gthread.c: (dbus_gthread_init):
14932         Don't use the gdbus prefix for public functions.
14933
14934 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14935
14936         * Makefile.am:
14937         * configure.in:
14938         Add GLib checks and fixup .pc files
14939
14940         * glib/Makefile.am:
14941         * glib/dbus-glib.h:
14942         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14943         (gdbus_connection_check), (gdbus_connection_dispatch),
14944         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14945         (dbus_connection_gsource_new):
14946         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14947         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14948         * glib/test-dbus-glib.c: (message_handler), (main):
14949         Add GLib support.
14950
14951 2002-12-15  Harri Porten  <porten@kde.org>
14952
14953         * autogen.sh: check for libtoolize before attempting to use it
14954
14955         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14956         struct.
14957
14958         * .cvsignore: ignore more stamp files
14959
14960         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14961
14962         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14963         without make install.
14964
14965 2002-12-15  Havoc Pennington  <hp@pobox.com>
14966
14967         * dbus/dbus-threads.c: add thread stubs that a higher library
14968         layer can fill in. e.g. the GLib wrapper might fill them in with
14969         GThread stuff. We still need to use this thread API to
14970         thread-safe-ize the library.
14971
14972 2002-12-12  Havoc Pennington  <hp@pobox.com>
14973
14974         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14975         below new interfaces and include fewer system headers.
14976
14977         * dbus/dbus-sysdeps.c (_dbus_read): new function
14978         (_dbus_write): new function
14979         (_dbus_write_two): new function
14980         (_dbus_connect_unix_socket): new function
14981         (_dbus_listen_unix_socket): new function
14982
14983         * dbus/dbus-message-internal.h: change interfaces to use
14984         DBusString
14985
14986 2002-12-11  Havoc Pennington  <hp@pobox.com>
14987
14988         * dbus/dbus-types.h: add dbus_unichar
14989
14990         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14991
14992         * dbus/dbus-connection.c (dbus_connection_send_message): return
14993         TRUE on success
14994
14995         * dbus/dbus-transport.c: include dbus-watch.h
14996
14997         * dbus/dbus-connection.c: include dbus-message-internal.h
14998
14999         * HACKING: add file with coding guidelines stuff.
15000
15001         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15002         handling here, for security purposes (as in vsftpd). Not actually
15003         using this class yet.
15004
15005         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15006         system/libc usage here, as in vsftpd, for ease of auditing (and
15007         should also simplify portability). Haven't actually moved all the
15008         system/libc usage into here yet.
15009
15010 2002-11-25  Havoc Pennington  <hp@pobox.com>
15011
15012         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15013         always print the first verbose message.
15014
15015 2002-11-24  Havoc Pennington  <hp@pobox.com>
15016
15017         * test/echo-client.c, test/echo-server.c: cheesy test
15018         clients.
15019
15020         * configure.in (AC_CHECK_FUNCS): check for writev
15021
15022         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15023         function
15024
15025         * dbus/dbus-list.c (_dbus_list_foreach): new function
15026
15027         * dbus/dbus-internals.c (_dbus_verbose): new function
15028
15029         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15030         representing a server that listens for connections.
15031
15032         * dbus/.cvsignore: create
15033
15034         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15035         public API for reporting errors
15036
15037         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15038         public object representing a connection that
15039         sends/receives messages. (Same object used for
15040         both client and server.)
15041
15042         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15043         Basic abstraction for different kinds of stream
15044         that we might read/write messages from.
15045
15046 2002-11-23  Havoc Pennington  <hp@pobox.com>
15047
15048         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15049         _DBUS_INT_MAX
15050
15051         * dbus/dbus-test.c (main): add list test, and include
15052         dbus-test.h as intended
15053
15054         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15055         (_dbus_hash_table_remove_int): return value indicates
15056         whether the entry existed to remove
15057
15058         * dbus/dbus-list.c: add linked list utility class,
15059         with docs and tests
15060
15061         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15062         array sometimes.
15063
15064 2002-11-23  Havoc Pennington  <hp@pobox.com>
15065
15066         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15067         DBUS_END_DECLS to nothing, that should fix this once and for all
15068
15069         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15070
15071         * dbus/dbus-message.c, dbus/dbus-hash.c:
15072         add some missing @brief
15073
15074 2002-11-23  Havoc Pennington  <hp@pobox.com>
15075
15076         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15077         to avoid confusing Doxygen
15078
15079         * dbus/dbus-hash.c: @} not }@
15080
15081         * dbus/dbus-message.c (struct DBusMessage): split out
15082         internals docs
15083
15084 2002-11-23  Havoc Pennington  <hp@pobox.com>
15085
15086         * configure.in: pile on more warning flags if using gcc
15087
15088         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15089         to document static functions
15090
15091         * configure.in: add summary to end of configure so it
15092         looks nice and attractive
15093
15094         * dbus/dbus-hash.c: finish implementation and write unit
15095         tests and docs
15096
15097         * configure.in: add --enable-tests to enable unit tests
15098
15099         * dbus/dbus-test.c: test program to run unit tests
15100         for all files in dbus/*, initially runs a test for
15101         dbus-hash.c
15102
15103         * dbus/dbus-internals.h: file to hold some internal utility stuff
15104
15105 2002-11-22  Havoc Pennington  <hp@redhat.com>
15106
15107         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15108         "ported" away from Tcl
15109
15110         * dbus/dbus-types.h: header for types such as dbus_bool_t
15111
15112 2002-11-22  Havoc Pennington  <hp@redhat.com>
15113
15114         * dbus/dbus.h: fixups for doc warnings
15115
15116         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15117         macros
15118         (QUIET): make it quiet so we can see warnings
15119
15120         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15121
15122 2002-11-22  Havoc Pennington  <hp@redhat.com>
15123
15124         * Makefile.am: include "Doxyfile" target in all-local
15125
15126         * configure.in: generate the Doxyfile
15127
15128         * Doxyfile.in: move Doxyfile here, so we can use
15129         configure to generate a Doxyfile with the right
15130         version number etc.
15131
15132 2002-11-22  Havoc Pennington  <hp@redhat.com>
15133
15134         * dbus/dbus-message.c: move inline docs into .c file
15135
15136         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15137         so all docs are under doc/
15138         (MAN_EXTENSION): generate man pages. Use extension
15139         ".3dbus" which matches ".3qt" on my system,
15140         I guess this is OK, I don't know really.
15141         (FILE_PATTERNS): look for .c files not .h, makes sense
15142         for plain C I think
15143
15144 2002-11-22  Havoc Pennington  <hp@pobox.com>
15145
15146         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15147         because any app can be a server, and any app can be a client,
15148         the bus is a special kind of server.
15149
15150 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15151
15152         * Doxyfile : adding. Still needs Makefile rules to be generated
15153         automatically (just run "doxygen" in the toplevel dir for now to
15154         generate docs)
15155
15156         * dbus/dbus-message.h : Adding sample docs (javadoc since
15157         resembles gtk-doc a little more)
15158
15159         * dbus/dbus.h : Adding sample docs
15160
15161 2002-11-21  Havoc Pennington  <hp@redhat.com>
15162
15163         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15164         so we can allow ourselves to include files directly,
15165         instead of having to use dbus.h
15166
15167         * dbus/dbus.h: fill in
15168
15169         * dbus/dbus-message.h: sketch out a sample header file.
15170         Include griping if you include it directly instead of
15171         via dbus.h
15172
15173         * dbus/dbus-macros.h: new file with macros for extern "C",
15174         TRUE/FALSE, NULL, etc.
15175
15176         * doc/file-boilerplate.c: put include guards in here
15177
15178 2002-11-21  Havoc Pennington  <hp@redhat.com>
15179
15180         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15181
15182         * COPYING: include the GPL as well, and license code
15183         under both AFL and GPL.
15184
15185 2002-11-21  Havoc Pennington  <hp@redhat.com>
15186
15187         * acconfig.h: get rid of this
15188
15189         * autogen.sh (run_configure): add --no-configure option
15190
15191         * configure.in: remove AC_ARG_PROGRAM to make
15192         autoconf complain less. add AC_PREREQ.
15193         add AC_DEFINE third arg.
15194
15195 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15196
15197         * doc/Makefile.am:
15198         Fix references so we can distcheck.
15199
15200 2002-11-21  Havoc Pennington  <hp@redhat.com>
15201
15202         * Initial module creation
15203