* test/test-segfault.c: unix compile fix.
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * test/test-segfault.c: unix compile fix.
4         * dbus-win.patch: removed obsolate patches.
5
6 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
7
8         * bus/activation.c: removed obsolate include header.
9         * test/test-segfault.c: win32 compile fix, rlimit 
10         isn't available on win32.
11         * dbus-win.patch: removed some more patches, they
12         are applied or obsolate 
13
14 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
15
16         * bus-win.patch: fixes unix listen problems, dbus-test 
17         now runs.
18
19 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
20
21         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
22         cmake/CMakeLists.txt: win32 compile fix
23
24 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
25
26         * dbus-win.patch, README.win: added available win32 
27         patches from windbus project (http://sf.net/projects/windbus)
28
29 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
30
31         * bus/activation.c: (bus_activation_activate_service):
32         fixed call to _dbus_spawn_async_with_babysitter().
33
34 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
35
36         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
37         added environment pointer as function parameter, used on win32.
38
39         * test/spawn-test.c: fixed call to above mentioned function.
40
41 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
42
43         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
44         added configure check for unistd.h.
45
46 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
47
48         * test/Makefile.am: fixed test data copy problem in 
49         out of source build, when sources came from svn or cvs. 
50
51 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
52
53         * dbus/*-win.*,bus/*-win.*: added win32 platform related
54         files. These files are only added to the cmake build system.  
55         The missing dbus-win.patch file will be added later. 
56
57 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
58
59         * cmake: new directory, contains cmake build support.
60         See http://www.cmake.org for more informations.
61         Currently only unix will be buildable because some 
62         win32 required files are still missing. 
63
64 2007-03-03  Thiago Macieira  <thiago@kde.org>
65
66         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
67         output and add it to the DBusError message we return.
68
69         * tools/dbus-launch.1:
70         * tools/dbus-launch.c: Add option --close-stderr to, well,
71         close stderr before starting dbus-daemon.
72
73 2007-01-31  Havoc Pennington  <hp@redhat.com>
74
75         * bus/dbus-daemon.1.in: write a section in the man page on running
76         a test daemon for debugging purposes
77
78 2007-01-26  Havoc Pennington  <hp@redhat.com>
79
80         * bus/session.conf.in: override all the default limits with much
81         higher limits on the session bus, there is no reason the session
82         bus should have low limits
83
84         * bus/config-parser.c (bus_config_parser_new): increase default
85         limits so they are less likely to be hit; in particular the max
86         replies per connection was way too low
87
88 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
89
90         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
91         a pointer to the tutorial maintained as part of dbus-python
92
93 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
94
95         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
96         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
97         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
98
99 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
100
101         * tools/dbus-monitor.c: gettimeofday() is not available 
102         on windows so we have to provide our own. It's taken from 
103         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
104
105 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
106
107         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
108         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
109         is in dbus-sysdeps-win.c (not in this patch).
110
111         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
112         with InterlockedInc/Decrement. 
113         - Patches from Christian Ehrlicher
114         
115 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
116
117         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
118
119 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
120
121         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
122         fix mispaced const statement. - Patch from Peter Kümmel
123
124 2006-12-19  Ray Strode  <rstrode@redhat.com>
125
126         * bus/bus.c (process_config_every_time):
127         don't overwrite existing bus context activation object
128         until after we've checked that the new activation is
129         valid.
130
131         * bus/main.c 
132         (signal_handler), (handle_reload_watch):
133         don't call exit() on failure, instead make do and keep
134         going.
135         (close_reload_pipe): new function to turn off
136         hangup-causes-config-reload behavior if an unexpected
137         error occurs
138
139 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
140
141         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
142         correctness fix. - Patch from Christian Ehrlicher
143
144 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
145
146         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
147         we should also use it. - Patch from Christian Ehrlicher
148
149 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
150   
151         * dbus-sysdeps-util.c: added win32 related tests
152
153 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
154
155         * dbus/dbus-string.c (_dbus_string_pop_line),
156         bus/desktop-file.c (parse_section_start,
157         parse_comment_or_blank,parse_key_value,): uses
158         _dbus_string_find_eol() to support platform independent eol style.
159
160 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
161
162         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
163         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
164               _dbus_string_find_eol().
165         Approved by: Havoc Pennington.
166
167 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
168
169         * configure.in: Added switch to disable user_database caching.
170
171         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
172         be able disable user_dabase caching.
173
174 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
175
176         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
177         struct. It is unnecessary we have a global one already. Also remove 
178         bus_context_get_user_database function, it is no longer needed.
179         Flush the global database on reload.
180
181         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
182         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
183
184         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
185         Add _dbus_user_database_flush_system. 
186         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
187         Small unrelated change in _dbus_is_a_number: change 
188         _dbus_string_parse_int to _dbus_string_parse_uint. 
189
190         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
191         _dbus_groups_from_uid.
192
193         * bus/policy.c, bus/policy.h: Change call to 
194         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
195         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
196         needs it.
197
198 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
199
200         * bus/signal.c: Fix match_rule_equal errata
201         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
202         <kimmo.hamalainen@nokia.com>)
203
204 2006-11-19  Thiago Macieira  <thiago@kde.org>
205
206         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
207         _dbus_pthread_condvar_wait,
208         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
209         pthread_self() after coming back from a conditional variable
210         wait as well as in one codepath where it was forgotten.
211         Approved by: Havoc Pennington.
212
213 2006-11-17  Havoc Pennington  <hp@redhat.com>
214
215         * update-dbus-docs.sh: allow setting fd.org username via env
216         variable. Make it run autogen with --enable-xml-docs=yes
217         --enable-doxygen-docs=yes so configure will fail if the required
218         tools are missing.
219
220 2006-11-17  Havoc Pennington  <hp@redhat.com>
221
222         * doc/dbus-faq.xml: minor FAQ tweaks
223
224 2006-11-14  Havoc Pennington  <hp@redhat.com>
225         
226         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
227         dbus_get_local_machine_id() to its own file, no substantive
228         changes. There are a couple other things we might want to add that
229         are "misc" so moving out of dbus-connection.[hc] which is big
230         enough already.
231         
232 2006-11-14  Havoc Pennington  <hp@redhat.com>
233
234         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
235         UUID had the timestamp last, but the implementation had it first;
236         move it to last since I think it's a tiny bit nicer (easier to
237         compare at a glance, faster to sort, less code), and will not
238         cause any practical compatibility problems. Also, always convert
239         the timestamp to big endian.
240
241         * doc/dbus-specification.xml: Clean up the docs on the UUID.
242
243         * tools/dbus-uuidgen.1: more prominently say it is not suitable
244         as a replacement for regular uuidgen/RFC4122.
245
246 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
247
248         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
249         the correct value so we don't assert when initalizing recursive threads
250
251         * test/name-test/test-thread-init.c: call dbus_threads_init_default
252         instead of _dbus_threads_init_debug since it is more of a real world
253         test
254
255 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
256
257         * Released 1.0.0
258
259 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
260
261         * AUTHORS: added Peter and Tor of windows porting fame
262
263 2006-11-08  Havoc Pennington  <hp@redhat.com>
264
265         * doc/dbus-specification.xml: add a note about protocol stability
266
267         * doc/TODO: Remove "important for 1.0" section, replace with
268         "important for 1.2" section
269         
270 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
271
272         * README: remove some of the out of date flags
273
274         * doc/TODO: Remove todo items which are done
275
276 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
277
278         * tools/dbus-monitor.c: Handle sigint so we flush stdout
279         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
280
281 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
282
283         * tools/dbus-monitor.1: update the manpage for dbus-monitor
284         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
285
286 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
287
288         * AUTHORS: Update with all people listed in the ChangeLog
289
290 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
291
292         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
293         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
294
295 2006-11-07  Havoc Pennington  <hp@redhat.com>
296
297         * HACKING: Update release instructions to include stuff about
298         stable releases, branching, etc. May not be totally correct,
299         please fix if needed, but keep instructions up-to-date so we do
300         each stable release consistently in the future.
301
302 2006-11-07  Havoc Pennington  <hp@redhat.com>
303
304         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
305         documentation updates. Bump faq/spec versions (not to 1.0; I don't
306         think the spec will be "finished"/1.0 when we ship the 1.0 library).
307
308 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
309
310         * bus/bus.c: Missed patch - pass in the context to the directory watch
311
312 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
313
314         * Released D-Bus 1.0 RC 3(0.95)
315
316 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
317
318         * bus/activation.c (bus_activation_new): don't fail if we can not read
319         the directory as it may not exist
320
321 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
322
323         * bus/config-parser.c (service_dirs_find_dir): use 
324         _dbus_list_get_next_link so we don't get stuck in an infinite loop
325         (start_busconfig_child): move processing of standard_session_servicedirs
326         tags here because they have no content
327         (bus_config_parser_content): check we don't have content in 
328         standard_session_servicedirs tag
329
330 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
331
332         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
333         Packagers need to own this directory
334
335 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
336
337         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
338         <standard_session_servicedirs> tag with a <sevicedir> tag that
339         points to the test service directory
340
341 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
342
343         * configure.in: Add a check for DIR *dirp->dd_fd
344
345         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
346         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
347         of both Solaris and Irix
348
349 2006-11-01  Havoc Pennington  <hp@redhat.com>
350
351         * bus/dbus-daemon.1.in: document standard_session_servicedirs
352
353 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
354
355         * configure.in: expose DBUS_DATADIR
356         
357         * bus/config-parser.c: add the standard_session_servicedirs element
358         to the parser
359         (bus_config_parser_content): process the standard_session_servicedirs
360         element by getting the standard directories from sysdeps and merging
361         them into the service directory list
362         (test_default_session_servicedirs): make sure we get what we expect
363
364         * bus/session.conf.in: replace the servicedir tag with the 
365         standard_session_servicedirs tag
366
367         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
368         dbus-sysdeps.h to avoid circular header dependencies
369
370         * dbus/dbus-sysdeps.h: add the typedef of DBusList
371
372         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
373         which takes a string of directories delimited by colons, parses them 
374         out, appends a suffix and puts them in a list ignoring empty elements
375         (_dbus_get_standard_session_servicedirs): returns the standard 
376         directories for a session bus to look for service activation files
377         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
378         DBUS_DATADIR directories
379
380         * test/data/valid-config-files/many-rules.conf: add the 
381         standard_session_servicedirs tag to the valid config file tests
382
383 2006-10-30  Havoc Pennington  <hp@redhat.com>
384
385         * tools/dbus-launch.1, doc/TODO: capture intent to change the
386         command line options of dbus-launch a bit post 1.0
387
388 2006-10-27  Havoc Pennington  <hp@redhat.com>
389         
390         * dbus/dbus-connection.c (dbus_connection_open_private): document
391         how to choose shared vs. private connections
392
393 2006-10-27  Havoc Pennington  <hp@redhat.com>
394
395         * dbus/dbus-test.c: enclose more of the file in the
396         DBUS_BUILD_TESTS check.
397
398         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
399         DBUS_DISABLE_ASSERT case.
400
401         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
402         that it only works on the server side
403
404         * dbus/dbus-bus.c: add a global lock covering the BusData we
405         attach to each connection
406         (internal_bus_get): lock our access to the BusData
407         (dbus_bus_register): lock the entire registration process
408         with _DBUS_LOCK(bus_datas). If we get the lock and 
409         registration is already complete, silently return (vs. previous
410         behavior of aborting).
411         (dbus_bus_set_unique_name): lock the BusData
412         (dbus_bus_get_unique_name): lock the BusData
413
414 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
415
416         * bus/config-parser.c (service_dirs_find_dir, 
417         service_dirs_append_unique_or_free, 
418         service_dirs_append_link_unique_or_free): New static methods
419         for only appending unique service directory names into
420         the service directory list
421         (merge_included, bus_config_parser_content): Only add unique
422         service directory names into the list
423
424 2006-10-27  Havoc Pennington  <hp@redhat.com>
425
426         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
427         variables volatile, suggested by Thiago. Document struct fields.
428         (PTHREAD_CHECK): remove pthread error checking if assertions are
429         disabled, should reduce the no-assertions case to the bare
430         minimum code.
431
432 2006-10-26  Havoc Pennington  <hp@redhat.com>
433         
434         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
435         to be recursive
436         (_dbus_pthread_mutex_unlock): make it recursive
437         (_dbus_pthread_condvar_wait): save/restore the recursion count
438         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
439
440 2006-10-26  Havoc Pennington  <hp@redhat.com>
441
442         * doc/dbus-specification.xml: clarify the UUID text slightly
443
444         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
445         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
446         in preparation for being able to extend them for e.g. recursive
447         mutexes.
448
449 2006-10-26  Havoc Pennington  <hp@redhat.com>
450
451         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
452         condition variables relate to recursive mutexes.
453         
454         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
455         dbus/dbus-threads.c: Split the platforms-specific thread 
456         implementations into their own files.
457         
458         * dbus/dbus-sysdeps-pthread.c
459         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
460         was backward. Not that anything uses it.
461
462 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
463
464         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
465         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
466         needs to be cleaned up more.
467
468         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
469         up the CREDS issue.
470
471 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
472
473         * configure.in, dbus-1.pc.in: Check to see if thread methods 
474         are in glibc or libpthread and add -lpthread to the link stage 
475         if it is the latter
476
477 2006-10-26  Thiago Macieira  <thiago@kde.org>
478
479         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
480         bug 8780: the connection lock is only required while recording
481         the shared connection, so protect only that code
482         section. Don't require connection_lookup_shared to return a
483         locked connection.
484
485 2006-10-26  Thiago Macieira  <thiago@kde.org>
486
487         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
488         check if get_machine_uuid() returns NULL before proceeding any
489         further: we can't init the X atoms or create a session file
490         name if there is no machine ID.
491         This solves a crash reported by some users if
492         --exit-with-session was used without --autolaunch=<machine-id>
493
494 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
495
496         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
497         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
498
499         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
500         before we run dbus-launch
501
502         * configure.in: define TEST_BUS_BINARY to be the full path to 
503         dbus-daemon in the build root 
504
505 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
506
507         * dbus/Makefile.am:
508         * tools/Makefile.am:
509         * toos/dbus-uuidgen.1:
510                 Move the machine-id file to /var/lib/dbus 
511
512 2006-10-24  David Zeuthen  <davidz@redhat.com>
513
514         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
515         _dbus_assert (thread_init_generation != _dbus_current_generation)
516         not _dbus_assert (thread_init_generation == _dbus_current_generation)
517
518 2006-10-24  Thiago Macieira  <thiago@kde.org>
519
520         * dbus/dbus-sysdeps.h:
521         * dbus/dbus-sysdeps-unix.c: Add function
522         _dbus_make_file_world_readable that chmods a file to 0644.
523
524         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
525         Avoid writing to the static "argv" array, thereby avoiding a
526         COW on the child process.
527
528         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
529         call _dbus_make_file_world_readable on the created file.
530
531 2006-10-23  David Zeuthen  <davidz@redhat.com>
532
533         * dbus/dbus-memory.c: Use atomic variable to protect
534         n_blocks_outstanding otherwise OOM will be reported using SMP on
535         some arches
536         
537         * bus/dispatch.c: Add missing end of line characters
538
539         * bus/desktop-file.c (parse_section_start, parse_key_value) 
540         (bus_desktop_file_load): Propertly handle OOM
541
542         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
543         thread_init_generation equals _dbus_current_generation, not 0
544
545 2006-10-22  Havoc Pennington  <hp@redhat.com>
546
547         * dbus/dbus-connection-internal.h: move prototype of
548         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
549         it isn't in a public header and doesn't end up in the DBusBus
550         group in Doxygen
551
552 2006-10-21  Havoc Pennington  <hp@redhat.com>
553
554         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
555         the tarball if packagers want to run it
556
557         * cleanup-man-pages.sh: Add a script which munges all the internal
558         API man pages out of the Doxygen output. This reduces the size of
559         the installed man pages from 7 to 2 megs, and avoids
560         namespace-polluting pages. Right now (like Doxygen) this script
561         isn't in the build, it's something packagers can do manually.
562
563 2006-10-21  Havoc Pennington  <hp@redhat.com>
564
565         * dbus/dbus-connection.h: don't include the watch/timeout
566         functions in connection section
567
568 2006-10-21  Havoc Pennington  <hp@redhat.com>
569
570         * Documentation! Whee! Doxygen now 100% silent. If you make it
571         angry again, you will be punished.
572         
573 2006-10-21  Havoc Pennington  <hp@redhat.com>
574
575         * More documentation - all public API now documented according to
576         Doxygen
577
578 2006-10-21  Havoc Pennington  <hp@redhat.com>
579
580         * Document a bunch of undocumented stuff
581         
582 2006-10-21  Havoc Pennington  <hp@redhat.com>
583
584         * Clean up Doxygen group markers for public API so Doxygen finds
585         everything (not comprehensively fixed for private API).
586         Means all remaining Doxygen warnings are just about missing docs
587         and thus pretty simple to resolve.
588         
589 2006-10-21  Havoc Pennington  <hp@redhat.com>
590         
591         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
592
593         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
594         as DBUS_GNUC_DEPRECATED
595
596 2006-10-21  Havoc Pennington  <hp@redhat.com>
597
598         * Move all private API into the private Doxygen group sections of
599         the files, so they don't show up in the public API docs
600         
601 2006-10-21  Havoc Pennington  <hp@redhat.com>
602
603         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
604         dbus_message_iter_get_array_len().
605
606         * throughout: documentation improvements.
607
608 2006-10-20  Havoc Pennington  <hp@redhat.com>
609
610         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
611         matter, and the message-loader-breaker thing since nobody is going
612         to do it.  Add an item to 1.0 about supporting recursive locks
613         in dbus_threads_init_default() though, since it should be easy.
614
615         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
616         Fix this in the !dispatch case to avoid busy-looping after
617         disconnection
618
619         * More misc docs improvements
620
621 2006-10-19  Havoc Pennington  <hp@redhat.com>
622
623         * more Doxygen-related fixes (lots of moving things from the
624         public to internal section in dbus-connection.c)
625
626 2006-10-19  Havoc Pennington  <hp@redhat.com>
627
628         * Fix a pile of Doxygen warnings and missing docs
629
630 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
631
632         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
633         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
634         instead of a void *.  kqueue uses this to get the context's loop
635         while the other modules ignore the parameter.  This allows us to
636         avoid platform conditionals
637
638         * bus/bus.c (process_config_postinit): Pass in the context to the 
639         watch
640
641 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
642
643         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
644         when starting the system bus
645
646 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
647
648         * configure.in: More fixups for cross compile (Patch from 
649         Marco Pracucci <development at pracucci dot com>)
650
651 2006-10-17  Havoc Pennington  <hp@redhat.com>
652
653         * tools/dbus-send.c (main): don't close shared connection, fix
654         from Timo Hoenig
655
656 2006-10-17  Havoc Pennington  <hp@redhat.com>
657
658         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
659
660         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
661         since realistically it doesn't look like we'll be changing it
662         anymore.
663
664 2006-10-17  Havoc Pennington  <hp@redhat.com>
665
666         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
667         be used for return_if_fail type warnings; prefixes the pid, and
668         fatal by default.
669
670 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
671
672         * configure.in: Released 1.0 RC 2(0.94)
673         Add check for -fPIC and enable it if available
674
675 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
676
677         * doc/TODO: Remove the check TODO item
678
679 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
680
681         * dbus-transport-socket.c (exchange_credentials):
682         Print out more detailed errors if reading or sending
683         credentials fail (Patch from Julio M. Merino Vidal 
684         <jmmv at NetBSD dot org>)
685
686 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
687
688         * configure.in: when checking for posix getpwnam_r assume true
689         for cross compiles
690
691 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
692
693         * configure.in: Check for gethostbyname first before we check for it
694         in libnsl.  On gnu systems it is implemeneted 
695
696 2006-10-13  Havoc Pennington  <hp@redhat.com>
697
698         * dbus/dbus-connection.c
699         (dbus_connection_send_with_reply_and_block): fix to handle closed
700         connections, from Tambet Ingo bug #8631
701
702 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
703
704         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
705
706 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
707
708         * test/name-test/Makefile.am: don't link against both libdbus and
709         libdbus-convenience
710
711 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
712
713         * configure.in: check for dirfd even if it is a macro
714         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
715
716 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
717
718         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
719         avoid using dirfd on systems that don't have dirfd 
720         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
721
722 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
723
724         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
725         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
726
727         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
728         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
729         macro because _dbus_abort calls it
730
731         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
732         works
733
734 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
735
736         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
737         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
738
739 2006-10-02  Thiago Macieira  <thiago@kde.org>
740
741         * tools/dbus-launch.c (main): make it complain and abort
742         execution in case an unknown option is given. Also, process
743         the '--' argument as the end of arguments.
744
745 2006-10-01  Havoc Pennington  <hp@redhat.com>
746
747         * tools/dbus-launch.c (print_variables): if no syntax is given,
748         don't print something that's sort-of-half-sh-syntax, just print
749         a plain key-value pairs thing.
750
751         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
752         the local machine representation (but still have the hostname in
753         the display). Remove the hostname from the display if it is
754         localhost. Change session files to be named
755         ~/.dbus/session-bus/machine-display. Change X atoms to be
756         underscore-prefixed so nobody whines about ICCCM compliance.
757         Otherwise name them the same as the env variables.
758         Change session file format to include key-value pairs and an
759         explanatory comment. Keys are the same as the env variables.
760         (set_address_in_x11): X property format can't depend on
761         sizeof(pid_t) on a particular machine, fix to always be 32 bits
762
763         * tools/dbus-launch.c: make --autolaunch take a machine id
764         argument. If --autolaunch is used with a program to run, complain
765         for now (but add a FIXME). Also, don't look for existing bus if 
766         there's a program to run (but add a FIXME).
767
768         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
769         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
770         just to get this, and avoids duplicating uuid-reading code).
771
772         * tools/dbus-launch.1: clarify various things
773         
774 2006-10-01  Havoc Pennington  <hp@redhat.com>
775
776         * test/test-service.c (path_message_func): remove broken extra
777         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
778
779         * test/test-shell-service.c (path_message_func): same fix
780         
781         * dbus/dbus-connection.c
782         (_dbus_connection_get_dispatch_status_unlocked): break up the
783         function a little for clarity and fix the notification of
784         dbus-bus.c to not require dispatch to be complete
785
786         * dbus/dbus-connection.c (dbus_connection_unref): improve the
787         warning when you try to finalize an open connection.
788         
789 2006-10-01  Havoc Pennington  <hp@redhat.com>
790
791         * dbus/dbus-bus.c
792         (internal_bus_get): only weak ref the connection; this means 
793         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
794         called safely in any context
795         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
796         unref
797
798         * dbus/dbus-connection.c
799         (_dbus_connection_get_dispatch_status_unlocked): move
800         _dbus_bus_notify_shared_connection_disconnected_unlocked here
801         when queuing Disconnected instead of when the Disconnected message
802         arrives, so dbus_bus_get() won't return closed connections.
803         
804 2006-10-01  Havoc Pennington  <hp@redhat.com>
805
806         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
807         Add a hack to make DBusNewConnectionFunction work right.
808
809         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
810         the hack here. Also, fix the todo about refcount leak.
811         
812         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
813         and use the hack here
814         
815         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
816         "shareable" flag; this was completely broken, since it meant 
817         dbus_connection_open() returned a connection of unknown
818         shared-ness. Now, we always hold a ref on anything opened 
819         as shareable.
820
821         Move the call to notify dbus-bus.c into
822         connection_forget_shared_unlocked, so libdbus consistently forgets
823         all its knowledge of a connection at once. This exposed numerous
824         places where things were totally broken if we dropped a ref inside
825         get_dispatch_status_unlocked where
826         connection_forget_shared_unlocked was previously, so move
827         connection_forget_shared_unlocked into
828         _dbus_connection_update_dispatch_status_and_unlock. Also move the
829         exit_on_disconnect here.
830
831         (shared_connections_shutdown): this assumed weak refs to the
832         shared connections; since we have strong refs now, the assertion 
833         was failing and stuff was left in the hash. Fix it to close
834         still-open shared connections.
835         
836         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
837         debug pipe connections
838         
839         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
840         dbus-bus.c if the closed connection is in fact shared
841         (_dbus_connection_close_possibly_shared): rename from 
842         _dbus_connection_close_internal
843         (dbus_connection_close, dbus_connection_open,
844         dbus_connection_open_private): Improve docs to explain the deal
845         with when you should close or unref or both
846
847         * dbus/dbus-bus.c
848         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
849         from _dbus_bus_check_connection_and_unref_unlocked and modify to
850         loop over all connections
851
852         * test/test-utils.c (test_connection_shutdown): don't try to close
853         shared connections.
854
855         * test/name-test/test-threads-init.c (main): fix warnings in here
856
857         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
858         env variable to cause blocking waiting for gdb; drop
859         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
860         unconditionally.
861
862         * configure.in: add -export-dynamic to libtool flags if assertions enabled
863         so _dbus_print_backtrace works.
864
865         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
866         instead of _dbus_verbose to print the backtrace, and diagnose lack 
867         of -rdynamic/-export-dynamic
868         
869 2006-09-30  Havoc Pennington  <hp@redhat.com>
870
871         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
872         (internal_bus_get): fix screwy code formatting. whoever committed
873         that was not paying attention!
874
875 2006-09-30  Havoc Pennington  <hp@redhat.com>
876
877         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
878         reflect addition of interfaces.
879
880         * doc/dbus-specification.xml: describe a new
881         org.freedesktop.DBus.Peer.GetMachineId method
882
883         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
884         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
885         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
886         at end of skip_white
887         (_dbus_string_chop_white): new function
888
889         * bus/connection.c (bus_connections_setup_connection): call
890         dbus_connection_set_route_peer_messages.
891
892         * dbus/dbus-connection.c
893         (_dbus_connection_peer_filter_unlocked_no_update): modify to
894         support a GetMachineId method.
895
896         Also, support a new flag to let the bus pass peer methods through
897         to apps on the bus, which can be set with
898         dbus_connection_set_route_peer_messages.
899
900         Finally, handle and return an error for anything unknown on the
901         Peer interface, which will allow us to extend the Peer interface
902         in the future without fear that we're now intercepting something
903         apps were wanting to see.
904         
905         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
906         dbus/dbus-uuidgen.c
907
908         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
909         binary here, since most of the code is already in libdbus
910
911         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
912         uuid from the system config file
913
914         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
915         (_dbus_read_uuid_file_without_creating) 
916         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
917         uuid-related functions, partly factored out from dbus-server.c
918
919         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
920         DBUS_ERROR_FILE_EXISTS instead of EEXIST
921
922         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
923
924         * tools/dbus-cleanup-sockets.1: explain what the point of this
925         thing is a bit more
926
927         * autogen.sh (run_configure): add --config-cache to default
928         configure args
929
930         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
931         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
932
933         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
934         don't try to save address, fixes crash in make check
935         
936 2006-09-30  Thiago Macieira  <thiago@kde.org>
937
938         * configure.in: add DBUS_BINDIR as a #define to C source code.
939
940         * tools/dbus-launch.c
941         * tools/dbus-launch.h
942         * tools/dbus-launch-x11.c:
943         * tools/dbus-launch.1: Add the --autolaunch option to
944         dbus-launch, which makes it scan for an existing session
945         started with --autolaunch. With that option, it also creates
946         an X11 window and saves the bus address and PID to it.
947
948         * dbus/dbus-sysdeps.h:
949         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
950         a function that runs "dbus-launch --autolaunch" to retrieve
951         the running D-Bus session address (or start one if none was running)
952
953         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
954         address protocol, which tries to get the running session from
955         dbus-launch.
956
957         * dbus/dbus-bus.c:
958         * dbus/dbus-internals.h: Make "autolaunch:" be the default
959         D-Bus session bus address.
960
961         * dbus/dbus-connection.c: Fix horrible typo in error message.
962
963 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
964
965         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
966
967 2006-09-17  Havoc Pennington  <hp@redhat.com>
968
969         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
970         fix so that if unix_user_function is set on windows, we still
971         do the default check that the auth identity matches the bus identity
972
973 2006-09-16  Havoc Pennington  <hp@redhat.com>
974
975         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
976         to _dbus_transport_open_platform_specific,
977         _dbus_transport_open_socket,
978         and _dbus_transport_open_debug_pipe
979
980         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
981
982 2006-09-16  Havoc Pennington  <hp@redhat.com>
983
984         Attempt auditing public API to remove all cases where a Unix
985         function returns weird emulated goo to Windows. This probably 
986         breaks the bus daemon on Windows, to fix it again we may 
987         need to stop processing unix-specific config options on Windows,
988         and may need to add Windows-specific public API or config options.
989         
990         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
991         to reflect added interfaces; should not break soname.
992         
993         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
994         not invoke unix user function on Windows. Kind of a hacky fix, but 
995         we don't want a "unix uid" leaking out on Windows.
996
997         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
998         to get the socket fd on Windows or UNIX
999         (dbus_connection_get_unix_fd): make this always fail on Windows
1000
1001 2006-09-16  Havoc Pennington  <hp@redhat.com>
1002
1003         * dbus/dbus-server.c (dbus_server_listen): change how this works
1004         to be able to delegate to a set of handlers that can succeed,
1005         fail, or choose not to handle. Allows us to have 
1006         dbus_server_listen_platform_specific.
1007
1008         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1009         factor out the tcp socket stuff to be used on windows, leaving
1010         unix domain socket only in dbus-socket-unix.c
1011
1012         * dbus/dbus-transport-socket.c
1013         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1014         stuff to be used on windows, leaving unix domain socket only 
1015         in dbus-transport-unix.c
1016
1017         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1018         temporary hack to be sure this fails on windows
1019         (dbus_connection_get_unix_process_id): ditto
1020
1021 2006-09-16  Havoc Pennington  <hp@redhat.com>
1022
1023         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1024         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1025         _dbus_open_socket so the domain/type/protocol from system headers
1026         are not required. This is kind of pointless though unless we move
1027         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1028         sysdeps-unix.c, which would mean adding a wrapper around
1029         bind/listen/etc.
1030         Also, add DBusError to the socket-opening functions so they 
1031         don't require use of errno.
1032
1033 2006-09-16  Havoc Pennington  <hp@redhat.com>
1034
1035         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1036         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1037
1038         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1039         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1040         functions specifically for sockets only, and move generic 
1041         read/write/open/close into unix-specific code.
1042
1043 2006-09-14  Havoc Pennington  <hp@redhat.com>
1044
1045         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1046         complaint about accessing revents when poll returns 0, from Julian Seward.
1047
1048 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1049
1050         * Released 1.0 RC 1 (0.93) 
1051
1052 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1053
1054         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1055         use _dbus_close instead of close
1056
1057 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1058
1059         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1060         credentials.  Fixes "external" authentication under e.g. NetBSD
1061         which does not support any other socket credentials mechanism.
1062         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1063
1064 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1065
1066         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1067         dbus_threads_init and be used by the dbus mutex functions to
1068         avoid deadlocks.
1069
1070         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1071
1072 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1073
1074         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1075         use threadsafe readdir_r instead of readdir
1076
1077 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1078
1079         * dbus-threads.c (dbus_threads_init_default): New method for
1080         initializing the internal thread implementation (Patch from
1081         Alexander Larsson <alexl at redhat dot com>)
1082
1083 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1084
1085         * remove a bunch of todo items from the 1.0 list
1086
1087 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1088
1089         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1090         key not found
1091
1092 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1093
1094         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1095         complex debugging code
1096
1097         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1098         between the test suite ifdefs
1099         (_dbus_verbose_bytes): return if verbosity is not enabled 
1100
1101 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1102
1103         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1104         remove DBusMark
1105
1106 2006-09-10  Havoc Pennington  <hp@redhat.com>
1107
1108        patch mostly by Peter Kümmel, bug #8211
1109         
1110         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1111         unix-specific stuff in dbus-sysdeps.c
1112
1113         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1114         and move unix-specific stuff to dbus-sysdeps-unix.c
1115
1116         * configure.in: check HAVE_ERRNO_H
1117         
1118 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1119
1120         * bus/test-main.c (main): Initialize threading during tests
1121
1122         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1123         Unlock connection on error
1124         (generate_local_error_message): static method for generating
1125         an error message when we don't have a message to reply to
1126         (_dbus_connection_block_pending_call): Send a disconnect error
1127         instead of just a timeout (NULL) when the bus gets disconnected
1128         while blocking for a reply.
1129         
1130 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1131
1132         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1133         filters (Patch from Kimmo Hämäläinen 
1134         <kimmo dot hamalainen at nokia dot com>)
1135
1136 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1137
1138         * dbus/dbus-connection-internal.h: Add prototype for 
1139         _dbus_connection_test_get_locks to remove warning
1140
1141 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1142
1143         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1144         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1145         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1146
1147 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1148
1149         * Clean up close calls to use _dbus_close (Patch from 
1150         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1151
1152 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1153
1154         * doc/TODO:
1155         - Remove pending call locking todo item
1156         - dbus_connection_open now holds hard ref.  Remove todo item
1157         - do proper locking on _dbus_bus_check_connection_and_unref
1158           and handle DBUS_BUS_STARTER. Remove todo item
1159         - Warn on closing of a shared connection.  Remove todo item
1160
1161         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1162         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1163         so we don't get the warning when closing shared connections
1164
1165         * test/test-service.c, test/test-shell-service.c: Applications
1166         don't close shared connections themselves so we unref instead of
1167         close
1168
1169         * test/test-utils.c (test_connection_shutdown): Close the connection
1170
1171         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1172         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1173         method on a locked connection.  
1174         Make sure we call _dbus_connection_unref_unlocked instead of 
1175         dbus_connection_unref also.
1176         Handle DBUS_BUS_STARTER correctly
1177
1178         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1179         Mark as shared and hard ref the connection
1180         (connection_forget_shared_unlocked): Remove the hard ref from the 
1181         connection
1182         (_dbus_connection_close_internal_and_unlock):  New internal function
1183         which takes a locked connection and unlocks it after closing it
1184         (_dbus_connection_close_internal): New internal function which acts
1185         like the origonal dbus_connection_close method by grabbing a connection
1186         lock and calling _dbus_connection_close_internal_and_unlock
1187         (dbus_connection_close): Public close method, warns when the app
1188         trys to close a shared connection
1189
1190 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1191
1192         * bus/driver.c:
1193         (bus_driver_generate_introspect_string): New method for populating
1194         a DBusString with the introspect data
1195         (bus_driver_handle_introspect): Move introspect generation code to 
1196         bus_driver_generate_introspect_string
1197
1198         * bus/main.c:
1199         (introspect): New function which prints out the intropect data and
1200         exits
1201         (main): Add a --introspect switch
1202
1203 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1204
1205         * doc/TODO: Removed dtd publishing item.  
1206         It seems the dtd has already been added at
1207         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1208
1209 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1210
1211         * doc/TODO, various source files: Audited todo's and FIXME's and
1212         prepended the ones we should be looking at with 1.0.  Those
1213         prepended with 1.0? need clerification or might not be needed
1214         for 1.0
1215
1216 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1217
1218         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1219         NULL in the public API (Patch from Kimmo Hämäläinen 
1220         <kimmo dot hamalainen at nokia dot com>)
1221
1222 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1223
1224         * configure.in: Fix for OS-X compile time endian issues (patch from
1225         Benjamin Reed <ranger at befunk dot com>)
1226
1227 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1228
1229         * configure.in: Check for no-common compiler flag (OS-X fix from
1230         Benjamin Reed <ranger at befunk dot com>)
1231
1232 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1233
1234         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1235         <fcrozat at mandriva dot com>)
1236
1237 2006-08-29  Havoc Pennington  <hp@redhat.com>
1238
1239         * test/test-service.c (path_message_func): fix lack of return value
1240
1241         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1242         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1243         any more sense than on anything else in this file.
1244         (_dbus_get_tmpdir): add const to return value, and keep the
1245         results of the various getenv around in a static variable.
1246
1247 2006-08-29  Havoc Pennington  <hp@redhat.com>
1248
1249         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1250         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1251
1252 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1253
1254         * test/Makefile.am: change find to use syntax that works with non
1255         gnu versions of find
1256
1257 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1258
1259         * dbus/dbus-transport.c: fix invalid deref when checking if
1260         a vtable method exists (Patch from Christian Ehrlicher 
1261         <ch dot ehrlicher at gmx dot de>)
1262
1263 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1264
1265         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1266         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1267         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1268         <bernard at brenda-arkle dot demon dot co dot uk>)
1269
1270 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1271
1272         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1273         default case
1274
1275 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1276
1277         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1278         it works on any system providing this interface, not only FreeBSD.
1279         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1280
1281 2006-08-20  Havoc Pennington  <hp@redhat.com>
1282
1283         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1284         the docs
1285
1286 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1287
1288         * Released 0.92 
1289
1290 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1291
1292         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1293         to reflect the init late change
1294
1295         * bus/bus.c (bus_context_new): Check user before we fork so we can
1296         print out an error message a user will be able to see
1297
1298 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1299
1300         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1301
1302         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1303         Add two more global locks for use on windows platforms.  These are
1304         unused on non-windows platforms but are not ifdefed out to avoid
1305         potential bugs (i.e. the few bytes lost does not warrent the extra
1306         maintanence and complexity that having seperate sets of locks would
1307         cause)
1308
1309 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1310
1311         * bus/services.c (bus_registry_acquire_service): Return an error
1312         when an application tries to register the org.freedesktop.DBus Bus Name
1313
1314         * bus/services.c (bus_registry_release_service): Return an error
1315         when an application tries to release the org.freedesktop.DBus Bus Name
1316
1317 2006-08-17  Alp Toker  <alp@atoker.com>
1318
1319         * doc/dbus-specification.xml: Fix some minor typos.
1320
1321 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * configure.in: use $with_init_scripts instead of $operating_system
1324         to determine where to store the pid since the init scripts manipulate 
1325         the pid file (patch from Marcelo Ricardo Leitner 
1326         <marcelo dot leitner at terra dot com dot br>.  
1327
1328 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1329
1330         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1331         static DBusList *uninitialized_condvar_list to support new late 
1332         initialization threading model.  In this model threads can be initialized
1333         even after the D-Bus API has been used but still needs to be initialized 
1334         before the second thread has been started.  Mutexes and condvar addresses
1335         are stored in the two static lists and are replaced with actuall locks
1336         when threads are initalized.
1337         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1338         the location into the static list
1339         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1340         from the static list and freeing the mutex
1341         (_dbus_condvar_new_at_location): New method for creating a conditional 
1342         variable and placing the location into the static list
1343         (_dbus_condvar_free_at_location): New method for removing a conditional
1344         variable location from the static list and freeing the conditional variable 
1345         (init_uninitialized_locks): Atomic method which goes through the static 
1346         lists of mutex and condvar location and updates them with actuall locks
1347         (init_global_locks): changed to init_locks
1348         
1349         * dbus/dbus-connection.c:
1350         (_dbus_connection_test_get_locks): New method for tests to check connections
1351         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1352         condvar API
1353         (dbus_connection_allocate_data_slot): Pass in the global lock address
1354         to _dbus_data_slot_allocator_alloc
1355
1356         * dbus/dbus-dataslot.c:
1357         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1358         instead of the mutex itself
1359
1360         * dbus/dbus-message.c:
1361         (dbus_message_allocate_data_slot): Pass in the global lock address
1362         to _dbus_data_slot_allocator_alloc
1363
1364         * dbus/dbus-pending-call.c:
1365         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1366         to _dbus_data_slot_allocator_alloc
1367
1368         * dbus/dbus-server.c:
1369         (_dbus_server_init_base): Use the new at_location mutex API
1370         (dbus_server_allocate_data_slot): Pass in the global lock address
1371         to _dbus_data_slot_allocator_alloc
1372
1373         * test/name-test/test-threads-init.c: New test case for late thread
1374         initialization
1375
1376 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1377
1378         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1379         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1380         causes compile problems when asserts are turned off
1381         Keeping _dbus_warn for printing out the message so even if
1382         asserts are turned off the user gets the messages that something is 
1383         wrong 
1384
1385 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1386
1387         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1388
1389         * bus/services.c (bus_service_list_queued_owners):
1390         Add a pointer cast to fix compiler warning
1391
1392         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1393         return a NULL instead of FALSE since the return type
1394         is not expecting a boolean
1395
1396         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1397         Remove unused variable
1398
1399         * dbus/dbus-marshal-recursive-util.c (node_new):
1400         return a NULL instead of FALSE since the return type
1401         is not expecting a boolean
1402
1403         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1404         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1405         because we are expecting a pointer not a boolean
1406
1407         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1408         add void as the parameter so some compilers
1409         don't complain
1410
1411         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1412           _dbus_transport_new_for_tcp_socket):
1413         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1414         because we are expecting a pointer not a boolean
1415
1416         * test/shell-test.c (test_command_line):
1417         cast the second argument to _dbus_list_append to avoid compiler
1418         warnings
1419
1420         * test/test-names.c (main): remove unused variable
1421
1422         * test/test-service.c (check_hello_from_self_reply):
1423         Initialize echo_message and echo_reply to NULL
1424         
1425         * test/test-shell-service.c (handle_echo):
1426         Remove unused variable and cast the third parameter passed to
1427         dbus_connection_get_object_path_data to avoid compiler warrnings
1428
1429         * test/name-test/test-names.c (clear_message_queue):
1430         Remove unused function
1431
1432         * test/name-test/test-pending-call-dispatch.c:
1433         Fix format string in printf
1434
1435
1436 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1437
1438         * dbus/dbus-bus.c:
1439         * test/name-test/test-names.c:
1440         Remove test method dbus_bus_connection_get_unique_name because 
1441         we already have public method dbus_bus_get_unique_name that 
1442         does the exact same thing
1443
1444 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1445
1446         * dbus/dbus-signature.c:
1447         fix typos in Julio's previous patch which cause make check to fail
1448
1449 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1450
1451         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1452         In any case it was wrong since this is a test checking to see if
1453         address parsing is correct.  There was no need to get the true
1454         tmp directory.  
1455
1456 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1457
1458         * dbus/dbus-macros.h: Revert the addition of stddef.h
1459         as we should not be adding it to library headers 
1460
1461 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1462
1463         * dbus/dbus-signature.c:
1464         Fix the unit tests so that they work if assertions are not enabled.
1465         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1466
1467 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1468
1469         * tools/run-with-tmp-session-bus.sh:
1470         * test/name-test/run-test.sh:
1471         Remove bashisms (patch from Julio M. Merino Vidal
1472         <jmmv at NetBSD dot org>)
1473
1474 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1475
1476         * configure.in: add a version (>= 2.6.0) check for libxml2
1477
1478 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1479
1480         * configure.in: make sure the compiler supports -Wfloat-equal
1481         
1482         * bus/dir-watch-dnotify.c: move functional code after 
1483         variable declerations (C99 fix)  (patches from Jens Granseuer
1484         <jensgr at gmx dot net>
1485
1486 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1487
1488         * dbus/dbus-macros.h:
1489         add #include <stddef.h> so that Sun compilers don't complain about
1490         the defining NULL
1491
1492 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1493
1494         * dbus/dbus-sysdeps.c:
1495         * dbus/dbus-address.c:
1496         * bus/activation.c:
1497         * test/shell-test.c:
1498         don't hardcode tmp directory (patch from Dave Meikle 
1499         <dmk at davemeikle dot co dot uk>)
1500
1501 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1502
1503         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1504         Change an assert to a detailed warning and abort.  
1505         When allocator->lock != mutex it indicates that the user has failed
1506         to initalize threads before using the D-Bus library.  This warning
1507         helps the user identify the issue and fix their app.
1508
1509 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1510
1511         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1512         with cleanups of bugs found from Coverity reports:
1513
1514         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1515         close the file on error to avoid a leak
1516
1517         * bus/expirelist.c (bus_expire_list_test):
1518         Check for NULL on dbus_new0
1519
1520         * bus/activation.c (update_directory):
1521         remove dead code
1522
1523         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1524         Fix some leaks
1525
1526         * bus/bus.c (process_config_every_time):
1527         Fixed a leak
1528
1529         * bus/desktop-file.c (parse_key_value):
1530         Fixed leak
1531
1532         * bus/selinux.c (bus_selinux_id_table_insert):
1533         Fixed leak
1534
1535 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1536
1537         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1538         remove dead code
1539
1540 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1541
1542         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1543         #!/bin/bash
1544
1545 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1546
1547         * Doxyfile.in: fix the INPUT line so we can generate docs 
1548         when sourcedir != builddir (patch from Cygwin Ports maintainer
1549         <yselkowitz at users dot sourceforge dot net>
1550
1551 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1552
1553         * dbus/dbus-sysdeps.h:
1554         * dbus/dbus-sysdeps.c: 
1555         * dbus/dbus-string.c: 
1556         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1557         GLib's function which does the same thing
1558
1559         * configure.in:
1560         * bus/Makefile.am:
1561         * bus/dir-watch-default.c:
1562         * bus/dir-watch-dnotify.c:
1563         * bus/dir-watch-kqueue.c:
1564         Add kqueue directory watching for freebsd and split the directory
1565         watching code into seperate files per method/arch
1566         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1567
1568 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1569
1570         * configure.in:
1571         * tools/Makefile.am:
1572         * tools/dbus-launch.c:
1573         * bus/Makefile.am:
1574         allow --with-dbus-daemondir switch to be used to make the
1575         daemon install to a seperate bindir like /usr/libexec
1576         (patch from Brian Cameron <brian dot cameron at sun dot com)
1577
1578 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1579
1580         * bus/Makefile.am (install-data-hook): removed the slash after 
1581         $(DESTDIR) so we don't get the double slash which does not work
1582         in windows (patch from Andras Porjesz 
1583         <andras dot porjesz at siemens dot com>)
1584
1585 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * dbus/dbus-sysdeps.h:
1588         * dbus/dbus-sysdeps.c: 
1589           add _dbus_printf_length (patch from Peter Kümmel 
1590           <syntheticpp at gmx dot net>)
1591
1592 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1593
1594         * dbus/dbus-internals.c: unistd.h is not used 
1595         (_dbus_verbose_real): only enable verbose printing 
1596         if DBUS_VERBOSE environment var is set to '1'
1597         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1598
1599 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1600
1601         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1602         so we still compile on older gcc (patch from Frederic Peters 
1603         <fpeters at 0d dot be>
1604
1605 2006-08-04  Havoc Pennington  <hp@redhat.com>
1606
1607         * configure.in: add -Wdeclaration-after-statement
1608
1609         * dbus/dbus-connection.c: change all the pending call stuff to
1610         reflect the fact that pending call operations use the connection
1611         lock
1612
1613         * dbus/dbus-pending-call.c: add locking here
1614
1615         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1616         field const consistent with how message field is done
1617
1618 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1619
1620         * s/D-BUS/D-Bus/g
1621
1622 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1623
1624         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1625         <in7y118 at public.uni-hamburg dot de> - fix invalid
1626         read/write reported by valgrind
1627
1628 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1629
1630         * Released 0.91
1631
1632 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1633
1634         * dbus/dbus-connection.c:
1635         (_dbus_connection_attach_pending_call_unlocked):
1636         (connection_timeout_and_complete_all_pending_calls_unlocked):
1637         Make sure we set timeout_added on pending calls to FALSE when
1638         we remove the timeout from the connection
1639
1640 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1641
1642         * Removed some extra bindings stuff lingering around (thanks timo)
1643         * dbus-pendingcall.c (_dbus_pending_call_new): 
1644         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1645         when we tried to take a lock on an already locked connection
1646
1647 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1648
1649         * Released 0.90
1650
1651 2006-07-17  Havoc Pennington  <hp@redhat.com>
1652
1653         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1654         ints, reported by Owen Taylor
1655
1656 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1657
1658         * doc/TODO:
1659         * dbus/dbus-bus.c:
1660         * dbus-errors.c:
1661         * dbus/dbus-marshal-validate.c:
1662           Removed TODO items which were fixed or are no longer relevent
1663
1664 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1665
1666         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1667         Remove stray files from the stripped bindings
1668
1669 2006-07-16  Havoc Pennington  <hp@redhat.com>
1670
1671         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1672         Improve the error message on reply timeout
1673
1674 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1675
1676         * Remove all bindings
1677
1678 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1679
1680         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1681         and set pending_reply out arg to NULL is connection is disconnected
1682         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1683         static method for cleaning up pending calls on disconnect
1684         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1685         calls queued timeouts on disconnect 
1686
1687          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1688         Remove 
1689
1690 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1691
1692         * bus/activation.[ch] (bus_activation_list_services): new function to 
1693         get the list of services that can be activated
1694
1695         * bus/dispatch.c: test coverage for the new bus method
1696         ListActivatableNames
1697
1698         * bus/driver.c: new bus method ListActivatableNames to get the list of
1699         services that can be activated
1700
1701         * doc/dbus-specification.xml: ListActivatableNames method documentation
1702
1703 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1704         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1705         source files
1706
1707 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1708         * dbus/dbus-message-factory.c:
1709         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1710
1711 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1712         * dbus/dbus-connection-internal.h:
1713         * dbus/dbus-connection.c:
1714         * file dbus/dbus-pending-call.c:
1715         * dbus/dbus-pending-call.h:
1716         Make DBusPendingCall an opaque type even to D-Bus internals
1717
1718 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1719
1720         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1721         connection_close
1722
1723         * dbus/dbus-connection.c: include dbus-bus.h
1724         (_dbus_connection_read_write_dispatch): make static
1725
1726 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1727
1728         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1729         function
1730         (dbus_connection_dispatch): On disconnect unref any shared connections
1731
1732         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1733         for cleaning up shared connections on disconnect
1734         (internal_bus_get): get a hard refrence to shared connections when
1735         they are created
1736         
1737         * doc/TODO: Remove items which are no longer relevent or have been fixed
1738         Split 1.0 todo items with a 0.90 freeze todo list
1739  
1740 2006-06-14  Ross Burton  <ross@openedhand.com>
1741
1742         * glib/dbus-gobject.c:
1743         Free a leaking GArray (surely not!) in dbus_g_method_return.
1744
1745 2006-06-14  Ross Burton  <ross@openedhand.com>
1746
1747         * tools/Makefile.am:
1748         * tools/dbus-monitor.c:
1749         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1750         Habacker).
1751         
1752 2006-06-14  Ross Burton  <ross@openedhand.com>
1753
1754         * tools/dbus-print-message.c:
1755         Also print the object path when outputting signals or method calls.
1756
1757 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1758
1759         * qt/src/Makefile.am: install the qdbus.h header.
1760         This allows people to actually use the installed code.
1761
1762 2006-06-12  Ross Burton  <ross@openedhand.com>
1763
1764         * glib/dbus-gproxy.c:
1765         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1766
1767 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1768
1769         * Released 0.62
1770
1771 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1772
1773         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1774         break pedantic builds. Closes bug 6043 (patch approved by
1775         Havoc back in February).
1776
1777 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1778
1779         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1780         that took a QDBusMessage parameter.
1781         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1782         * qt/tools/dbus.cpp: Don't use automatic call because we might
1783         be calling an async method: request a reply.
1784
1785 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1786
1787         * test/qt/*: Update the testcases, including testing the new
1788         functionality of sending null QByteArray and QString over the
1789         bus. Add new headertest test and restore the old
1790         qdbusxmlparser test.
1791
1792 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1793
1794         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1795         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1796
1797         * qt/examples/Makefile.am:
1798         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1799         form.
1800
1801         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1802         QByteArray() (nulls) over the bus.
1803         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1804         the one that has the signature suffix stripped.
1805         * qt/src/qdbusreply.h: Make some methods const.
1806
1807 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1808
1809         Patch from Timo Hoenig <thoenig@suse.de>.
1810
1811         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1812         required during build to EXTRA_DIST.
1813         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1814         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1815         * configure.in: Fix "make dist", take care that the Makefile for
1816         qt/dbus is being generated.
1817
1818 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1819
1820         * bus/bus.c: Fix eavesdropping on method calls
1821
1822 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1823
1824         * configure.in:
1825         * dbus/dbus-userdb-util.c:
1826         Add Solaris console owner patch from Artem Kachitchkine
1827
1828 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1829
1830         * qt/Makfile.am:
1831         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1832         reorganisation. Thanks to Timo Hoenig for pointing this out.
1833
1834 2006-06-06  Robert McQueen  <robot101@debian.org>
1835
1836         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1837           call to dbus_g_type_get_struct.
1838
1839 2006-06-06  Robert McQueen  <robot101@debian.org>
1840
1841         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1842           pointers were put into a GPtrArray-based specialised collection, and
1843           then freed along with the array. GValues which you add into
1844           collections or maps which have the NOCOPY flag set are assumed to not
1845           belong to the caller, so rather than the existing pointer-stealing
1846           semantics, they are copied instead. Given that the main consumers of
1847           this abstraction are the bindings themselves, I don't think this is
1848           too bad, but others should watch their choice of take vs set_static.
1849
1850 2006-06-06  Robert McQueen  <robot101@debian.org>
1851
1852         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1853           of g_slist_prepend not being used. Fixed copying of slist-based
1854           specialised collections, then wrote a test case and found that it was
1855           all broken. Went on to fix iterating and appending too. Good thing
1856           nobody uses this code yet.
1857
1858 2006-06-06  Robert McQueen  <robot101@debian.org>
1859
1860         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1861           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1862           are discarded without unsetting, so it makes no difference whether
1863           we take or set_static). Remove cases for G_TYPE_POINTER because
1864           there really is nothing useful we can do with them in our
1865           specialised types - we *need* boxed copy/free functions at the very
1866           least.
1867
1868 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1869
1870         * qt/dbus: Add directory. I had forgotten to add this
1871         yesterday after the move...
1872
1873         * qt/examples/Makefile.am:
1874         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1875
1876         * qt/tools/Makefile.am:
1877         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1878         Added feature to get and set properties.
1879         Added validation of service, object path and interface names.
1880
1881         * qt/tools/dbusidl2cpp.cpp: Two new features:
1882         1) Allow specifying both the header and the source file names,
1883         by separating them with a colon.
1884         2) Don't write an interface output if the -p switch wasn't
1885         given, but the -a was.
1886
1887         * qt/src/*: Fix usage of Iterators and ConstIterators.
1888         Fix shadowing of variables by other variables (-Wshadow).
1889         Fix keyword-cleanliness in headers.
1890         Fix ASCII-cast (QLatin1String, QLatin1Char).
1891         Fix validation of member names.
1892         Add extra checking of introspection data during XML parsing.
1893         Various bug fixes.
1894
1895 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1896
1897         * dbus/Makefile.am:
1898         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1899         qt/dbus/qdbus.h now.
1900
1901 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1902
1903         * configure.in: Make --disable-qt actually do
1904           something. Patch inspired by Zack Rusin.
1905
1906 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1907
1908         * qt/: Update to Subversion r548032.
1909         This includes a big reorganisation of the files inside the
1910         subdir.
1911
1912 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1913
1914         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1915         clear:  
1916         "Failed to connect to socket <host>:<port> <error>" instead of
1917         "Failed to connect to socket <host>: <error>:<port>"
1918
1919         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1920         for a tcp transport. 
1921
1922 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1923
1924         * qt/*: Update the QtDBus bindings up to revision 546310 in
1925         Subversion.
1926         This adds the dbuscpp2xml tool, that parses a C++ header and
1927         outputs a D-BUS Introspection XML.
1928
1929 2006-05-21  Havoc Pennington  <hp@redhat.com>
1930
1931         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1932         is not NULL when it shouldn't be. Also a couple of possible fixes
1933         for #4637 though I don't understand why the bug happens, to be
1934         honest... also the object constructor has an assert name != NULL
1935         and the name is only currently NULL for peer-to-peer proxies that 
1936         I don't think anyone uses? So it should be asserting.
1937         Anyway, for now at least see if we get an earlier assertion failure.
1938
1939         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1940         apparently broken code to be sure the tests fail and someone 
1941         will fix them...
1942
1943 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1944
1945         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1946         and arrays when they had a single element: has_next returns
1947         false, even before you read the element. So, instead, check
1948         the array length.
1949
1950 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1951
1952         * qt/qdbusmessage.cpp:
1953         * qt/qdbustypehelper_p.h:
1954         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1955         the list is a const-reference
1956
1957 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1958
1959         * Adding old doc patch that never got applied
1960         
1961         * dbus/bus.c (dbus_bus_add_match): Add documentation
1962
1963         * doc/dbus-specification.xml: Add documentation for the match rules
1964           and the AddMatch and RemoveMatch methods
1965
1966 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1967
1968         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1969         call (r535506)
1970
1971         * qt/dbusidl2cpp.cpp:
1972         * qt/qdbusabstractadaptor.cpp:
1973         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1974         sibling of the QDBusAbstractAdaptor objects instead of the
1975         parent. (r535848)
1976
1977         * qt/dbusidl2cpp.cpp:
1978         * qt/qdbusabstractinterface.cpp:
1979         * qt/qdbusabstractinterface.h:
1980         * qt/qdbusabstractinterface_p.h:
1981         * qt/qdbusinterface.cpp: Make properties in interfaces
1982         actually work. The code that was generated would not compile,
1983         due to moc calls to functions that did not exist. They now
1984         shall. (r536571)
1985
1986 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1987
1988         * Makefile.am:
1989         * configure.in:
1990         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1991         Thanks to Brad Hards for providing the patch
1992
1993 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1994
1995         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1996         call. (r535506)
1997
1998 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1999
2000         * qt/examples/dbus.cpp: Enhance error messages and use
2001         QDBusInterfacePtr.
2002
2003 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2004
2005         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2006         and disable the copy operators. (r533772, r534746)
2007
2008         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2009
2010         * qt/qdbusabstractinterface.cpp:
2011         * qt/qdbusabstractinterface.h: Change the default call mode to
2012         not use the event loop. Add convenience call() methods that
2013         take a CallMode parameter. (r534042)
2014
2015         * qt/qdbusconnection.h: Change the default call mode to not
2016         use the event loop. (r534042)
2017
2018         * qt/qdbusinterface.cpp:
2019         * qt/qdbusinterface.h: Add a method to tell us if the
2020         interface is valid (since we don't return a null pointer
2021         anymore) (r534099)
2022
2023         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2024         (r534101)
2025
2026         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2027         function in two so taht we get the chance to introspect
2028         without having a QDBusMessage (r534102)
2029
2030         * qt/qdbusbus.h:
2031         * qt/qdbusconnection.cpp:
2032         * qt/qdbusconnection_p.h:
2033         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2034         avoid a round-trip to the server when attempting to introspect
2035         one of our own objects. Also make sure the filter functions
2036         match the empty interface as well. (r534108)
2037         Don't keep the connection names. Instead, trust the unique
2038         connection name (r534111)
2039         Remove event loop usage (r534112)
2040
2041 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2042
2043         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2044         Brad Hards.
2045
2046 2006-04-28  Robert McQueen  <robot101@debian.org>
2047
2048         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2049         any order, making it easier for people who inherit from this
2050         object.
2051
2052 2006-04-28  Robert McQueen  <robot101@debian.org>
2053
2054         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2055         of memory from within pointer arrays and lists. Fixes bug #6300.
2056
2057 2006-04-28  Robert McQueen  <robot101@debian.org>
2058
2059         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2060         generating struct signatures. Fixes bug #6083.
2061
2062 2006-04-28  Robert McQueen  <robot101@debian.org>
2063
2064         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2065         to qdbusconnection_p.moc.
2066
2067 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2068
2069         * README, INSTALL: Doc fixes
2070         Patch from Brad Hards <bradh at frogmouth.net>
2071
2072 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2073
2074         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2075         the dynamic meta object. No need to guess which interface to
2076         call.
2077
2078 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2079
2080         * qt/qdbusconnection_p.h:
2081         * qt/qdbusmetaobject.cpp:
2082         * qt/qdbusmetaobject_p.h:
2083         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2084         for the dynamic meta object. No need to guess which
2085         interface to call.
2086         * qt/qdbusabstractinterface_p.h:
2087         * qt/qdbusconnection.cpp:
2088         * qt/qdbusintegrator.cpp:
2089         * qt/qdbusinterface.cpp:
2090         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2091         Add a QDBusRef that looks and behaves like DCOPRef.
2092
2093 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2094
2095         * dbus/dbus-connection.c: Interfaces are optional in method
2096         calls, so don't give up if the interface parameter is NULL.
2097         Patch reviewed by Havoc Pennington.
2098
2099 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2100
2101         * qt/qdbusreply.h: Add default constructor and operator=
2102           (r532625)
2103         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2104           in public headers (r532952)
2105         * qt/qdbusabstractinterface.cpp:
2106         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2107           make it the default (r532951)
2108
2109 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2110
2111         * dbus/dbus-connection.c: Fix asserts
2112         Patch from Tim Moloney <t.moloney at verizon.net>
2113
2114 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2115
2116         * mono/Connection.cs, mono/Message.cs: Check Target type
2117         Patch from Aaron Bockover (abockover at novell.com)
2118
2119 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2120
2121         * INSTALL: fine-tune the requirements for the Qt4 binding.
2122
2123 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2124
2125         * tools/dbus-print-message.c: Added support for printing of all 
2126           remaining data types. Fixed logic for indentation of compound
2127           data types.
2128         
2129 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2130
2131         * INSTALL: fill out content of file providing DBus specific
2132           build installations, followed by generic Auto* INSTALL file
2133           content
2134         
2135 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2136
2137         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2138           Patch by Stefan Eilers. (r529537)
2139
2140 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2141
2142         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2143           contents (r528208)
2144
2145 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2146
2147         * qt/Makefile.am: fix the dependency for
2148           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2149           not in qdbusconnection.cpp.
2150           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2151           spotting this.
2152
2153 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2154
2155         * qt/examples/listnames.cpp:
2156         * qt/examples/Makefile.am: Three ways to list the names on the
2157           bus.
2158
2159 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2160
2161         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2162           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2163
2164 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2165
2166         Merge from Subversion:
2167         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2168           something that exists (r526315)
2169         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2170           slots/signals (r526316)
2171         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2172           also return an unknown-method error if the parameters don't
2173           match for org.freedesktop.DBus.Properties. (r526842)
2174         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2175         * qt/qdbusintegrator.cpp: Restore the proper order of
2176           delivery: don't make method returns be delivered on priority
2177           (r528150)
2178
2179 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2180
2181         * configure.in qt/Makefile.am: add qt/examples
2182         * qt/examples: Add QtDBus example programs:
2183           - hello: Hello, World
2184           - ping: Simple method-calling program
2185           - pong: Simple object-exporting program (not using adaptors)
2186           - complexping: Interactive method-calling program 
2187                 (also gets and sets properties).
2188           - complexpong: Sample program exporting methods, signals and
2189                 properties, using adaptors.
2190           - dbus: Simple implementation of a generic method-calling
2191                 program, similar to 'dbus-send', but with semantics
2192                 similar to 'dcop'.
2193           - chat: Simplistic chat program, implemented using signals
2194                 and the system bus. Looks like IRC.
2195
2196 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2197
2198         * configure.in: Detect QtGui (necessary for one of the
2199           example programs). Note: this increases the minimum required
2200           version of Qt to 4.1.3.
2201
2202 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2203
2204         * test/qt/*: Sync with KDE Subversion revision 523647.
2205         Update the testcases to the new API. Remove testcases for
2206         classes that are no longer public or have been removed.
2207
2208 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2209
2210         * qt/*: 
2211         * dbus/qdbus.h: Sync with KDE Subversion revision
2212         523647. Hopefully, this will be the last of the
2213         source-incompatible changes. Documentation has been improved;
2214         support for QList<basic-types> has been added; QDBusObject is
2215         gone; QDBus(Abstract)Interface is now a QObject with
2216         auto-generated meta-object; QDBusIntrospection is marked
2217         private, since QMetaObject can be used now; lots of bugfixes.
2218
2219 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2220
2221         Patch from Milosz Derezynski <internalerror at gmail.com>
2222         
2223         * configure.in:
2224         Output the service directory in the configure summary
2225
2226         * dbus-1.pc.in:
2227         Add session_bus_services_dir
2228
2229 2006-03-10  Ross Burton  <ross@openedhand.com>
2230
2231         * tools/dbus-print-message.c:
2232         Add support for object paths and signatures.
2233
2234 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2235
2236         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2237         config reload.
2238         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2239         information caches
2240         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2241         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2242         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2243         * dbus/dbus-userdb.h: Add function to flush all user/group information
2244         caches.
2245
2246 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2247
2248         * qt/dbusidl2cpp.cpp:
2249         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2250         for dcopidl2cpp, found in the KDE installations (or the more
2251         modern kalyptus): generate Qt4 C++ code for the input XML
2252         introspection. Currently no IDL parsing.
2253
2254 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2255
2256         * test/qt/*: Update the self-tests.
2257
2258 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2259
2260         * qt/*: 
2261         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2262         represents the first feature-complete version of the Qt4
2263         bindings since I took ove maintainership.
2264
2265 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2266
2267         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2268         dir. This is C++, so we can't use the DBus ones.
2269
2270 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2271
2272         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2273         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2274
2275 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2276
2277         * dbus/dbus-connection.c: 
2278         (_dbus_connection_block_pending_call):
2279         Check to see if our data has already been read off the connection
2280         by another blocking pending call before we block in poll.
2281         (check_for_reply_and_update_dispatch_unlocked):
2282         Code taken from _dbus_connection_block_pending_call - checks for
2283         an already read reply and updates the dispatch if there is one.
2284
2285         * test/name-test/test-pending-call-dispatch.c:
2286         New test for making sure we don't get stuck polling a 
2287         dbus connection which has no data on the socket when
2288         blocking out of order on two or more pending calls.
2289
2290 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2291
2292         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2293         make/automake don't detect that we're talking about the same
2294         .lo file if I specify the full path to the source files.
2295
2296 2006-02-26  Havoc Pennington  <hp@redhat.com>
2297
2298         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2299
2300         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2301         session bus variable is unset, suggest "man dbus-launch" and "man
2302         dbus-daemon" to figure out how to fix the problem
2303
2304 2006-02-25  Havoc Pennington  <hp@redhat.com>
2305
2306         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2307         should make this thing use the new glib options parser
2308
2309 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2310
2311         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2312         .lo files taking moc sources.
2313
2314 2006-02-25  Havoc Pennington  <hp@redhat.com>
2315
2316         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2317         and install it as a public header
2318
2319 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2320
2321         * Released 0.61
2322
2323 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2324         
2325         * proxies.py: Fix the callchain
2326
2327 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2328         
2329         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2330
2331         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2332         dbus/dbus-sysdeps.c
2333
2334         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2335         call _dbus_group_info_free_allocated which causes infinite loop,
2336         correctly call _dbus_group_info_free
2337
2338 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2339
2340         * qt/qdbusinterface_p.h:
2341         * qt/qdbusinterface.cpp: Use the standard
2342         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2343         calls instead of creating one for us.
2344
2345         * qt/qdbusconnection_p.h:
2346         * qt/qdbusintegrator.cpp: Remove debugging code.
2347
2348         * qt/qdbusintegrator.cpp:
2349         * qt/qdbusmessage.cpp:
2350         * qt/qdbusmessage_p.h:
2351         * qt/qdbusmessage.h: Change the behaviour of automatic
2352         reply-sending: now a reply is always sent, unless the caller
2353         didn't request one or if the user slot has already sent one.
2354
2355 2006-02-16  Robert McQueen  <robot101@debian.org>
2356
2357         * configure.in: Patch from Debian packages by Sjoerd Simons
2358         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2359         arguments so it's possible to build both bindings in the
2360         same tree.
2361
2362         * qt/Makefile.am: Fix truncated value so that make dist works.
2363
2364 2006-02-16  Robert McQueen  <robot101@debian.org>
2365
2366         * acinclude.m4, configure.in: Patch from Brad Hards
2367         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2368         improving quoting, re-ordering a few checks, and a few other
2369         aesthetic tidy-ups.
2370
2371 2006-02-16  Robert McQueen  <robot101@debian.org>
2372
2373         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2374         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2375         assertion that the next element to read from the iter is fixed in
2376         size. This is not the case when you are at the end of the iter,
2377         because the next element type is INVALID.
2378
2379         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2380         a bogus assert which means that you may not initialise a 0-length
2381         string unless you provide a non-NULL pointer. This prevented
2382         you from marshalling messages containing zero-length arrays in
2383         some cases.
2384
2385         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2386         from Rob to correct bogus asserts when trying to demarshal an
2387         array and get_fixed_array got you 0 elements. Append nothing to
2388         the GArray in this case.
2389
2390         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2391         an empty array via the glib bindings. Without all of the above
2392         patches, this new test fails.
2393
2394 2006-02-16  Robert McQueen  <robot101@debian.org>
2395
2396         * glib/dbus-gmain.c: Make the previous commit compile.
2397
2398         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2399         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2400         specify sender_keyword="foo", path_keyword="bar" when adding
2401         a signal listener, so that you can bind to signals generically
2402         but still do something useful in your callback.
2403
2404         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2405         chars so that they're not cast to chars and made negative. Thanks
2406         to Jakub Stachowski for reporting this and testing the fix.
2407
2408 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2409
2410         * dbus/dbus-glib.h:
2411         * glib/dbus-gmain.h:
2412         (dbus_g_connection_open): new method for openning
2413         a connection to an arbitrary address in the glib bindings
2414
2415         * ChangeLog: checkin last entry which doesn't seem to be commited
2416
2417 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2418
2419         * tools/dbus-launch.c: Fixed sh syntax output
2420
2421 2006-02-13  Robert McQueen  <robot101@debian.org>
2422
2423         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2424         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2425         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2426         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2427         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2428         missing piece of the glib bindings jigsaw puzzle. This modifies
2429         the existing specialised types to have N type parameters (rather
2430         than the current 1 or 2 for arrays and dictionaries respectively).
2431         You can then use this to get a glib type to represent any arbitrary
2432         D-Bus struct type using dbus_g_type_get_struct. The only
2433         implementation of these types is with GValueArrays as before,
2434         but it's now possible to store these in arrays, emit them in
2435         signals, etc.
2436
2437 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2438
2439         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2440         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2441         <thiago.macieira at trolltech.com>
2442
2443 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2444
2445         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2446         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2447
2448 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2449
2450         * bus/connection.c (bus_connections_expect_reply): Make
2451         pending reply limit not common to all connections (Bug #5416)
2452         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2453
2454 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2455
2456         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2457
2458 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2459
2460         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2461         patch from Doug Goldstein <cardoe at gentoo.org>
2462
2463 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2464
2465         * mono/Arguments.cs: Fix a magic number in the mono bindings
2466         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2467
2468 2006-01-27  Robert McQueen  <robot101@debian.org>
2469
2470         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2471         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2472         when generating the client-side methods, instead of overloading
2473         CSymbol which broke everything horribly. My apologies.
2474
2475 2006-01-27  Robert McQueen  <robot101@debian.org>
2476
2477         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2478         by me and Rob Taylor to add a simple_free function to D-Bus map
2479         and collection types, which allows those types which can be freed
2480         with a GDestroyNotify (such as GHashTables and GArrays, but not
2481         GPtrArrays) to be stored as the values in hashtables.
2482
2483         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2484         Patch by Rob Taylor to add nested dicts to the glib tests to check
2485         the above code works, and appears not to leak when called repeatedly.
2486
2487 2006-01-27  Robert McQueen  <robot101@debian.org>
2488
2489         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2490         to free a D-Bus allocated string with dbus_free () instead of
2491         g_free ().
2492
2493 2006-01-27  Iain Holmes  <iain@openedhand.com>
2494
2495         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2496         method from being called multiple times.
2497
2498 2006-01-19  Robert McQueen  <robot101@debian.org>
2499
2500         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2501         <rob.taylor@collabora.co.uk> to add support for generating bindings
2502         to arrays that are represented as GPtrArrays rather than GArrays (ie
2503         size-variable things, such as strings, objects, structs, etc).
2504
2505 2006-01-05  Robert McQueen  <robot101@debian.org>
2506
2507         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2508         <ricardo.kekki@movial.fi> to make it possible to inherit from
2509         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2510         a private part, and moving the setting of the DBusGProxyManager into a
2511         connection property, allowing proper GObject construction.
2512
2513 2006-01-05  Robert McQueen  <robot101@debian.org>
2514
2515         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2516         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2517         annotations when generating glib client bindings.
2518
2519 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2520
2521         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2522
2523         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2524
2525 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2526
2527         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2528
2529 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2530
2531         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2532
2533 2005-12-19  Ross Burton  <ross@openedhand.com>
2534
2535         * doc/dbus-tutorial.xml:
2536         Document the Glib client-side bindings, and list all possible annotations.
2537
2538 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2539
2540         * dbus/bus.c (dbus_bus_release_name): Add documentation
2541
2542 2005-12-06  Robert McQueen  <robot101@debian.org>
2543
2544         * python/service.py: s/sucessful/successful/ so we're allocating to
2545         and reading from the same variable. Oops.
2546
2547 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2548
2549         * Released 0.60
2550
2551 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2552
2553         * test/qt/Makefile.am: build from srcdir
2554
2555         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2556         Note - this code is wrong and needs to be fixed by the Qt binding
2557         developers.  The flags should be treated as bitfields and not enums.
2558
2559         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2560
2561 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2562
2563         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2564           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2565           in production code
2566
2567 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2568
2569         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2570         method for getting messages off the bus in the absence of a
2571         mainloop.  This method is much like 
2572         dbus_connection_read_write_dispatch except it does not dispatch
2573         the messages to a registered filter function.  Instead it
2574         allows a developer to process messages by directly popping
2575         them off the bus.
2576
2577 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2578
2579         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2580         the parser to continue instead of returning error
2581         (bus_desktop_file_load): Do not free parser data when
2582         parse_section_start or parse_key_value fails because it was 
2583         already freed by parser_free (patch from Carlos Garcia Campos  
2584         <carlosgc at gnome.org>)
2585
2586 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2587
2588         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2589         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2590         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2591         test/test-segfault.c, test/test-utils.c,
2592         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2593         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2594         Various cleanup of dead code and compiler warnings (patch from
2595         Kjartan Maraas <kmaraas at gnome.org>) 
2596
2597 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2598
2599         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2600         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2601
2602 2005-11-27  Robert McQueen  <robot101@debian.org>
2603
2604         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2605         part of the preceding one. Oops. Merge patch by Johan Hedberg
2606         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2607         on big-endian platforms.
2608
2609         * test/python/test-client.py: Add some 16-bit integers to the test
2610         values.
2611
2612 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2613
2614         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2615         method return message for property getters
2616
2617 2005-11-27  Robert McQueen  <robot101@debian.org>
2618
2619         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2620         with type v of an instance of dbus.Variant(foo, type='x') caused
2621         it to be boxed twice before sending over the bus.
2622
2623         * python/dbus_bindings.pyx, python/service.py,
2624         test/python/test-client.py: Update the constants for the new
2625         request_name flags, and update comments/test cases now that queueing
2626         is the default action.
2627
2628 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2629
2630         * configure.in:
2631         - Change version to 0.60 for impending release
2632         - upped the sonames because of ABI and API breakage
2633
2634 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2635
2636         * configure.in: Add test/name-test/Makefile to the generated
2637         Makefile list
2638
2639         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2640         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2641         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2642         not to queue an ower if it can't be the primary owner
2643
2644         * bus/bus.h: Add new internal BusOwner struct
2645
2646         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2647         to bus_registry_ensure and don't set the prohibit_replacement flag
2648         since they are now set per BusOwner and not per name.
2649         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2650         that returns the list of connections in a name's connection queue
2651         
2652         * bus/services.c (struct BusService): remove prohibit_replacement field
2653         (struct BusOwner): new struct for keeping track of queued connections
2654         and their associated flags for the queue
2655         (struct BusRegistry): add a BusOwner memory pool
2656         (bus_registry_new): initialize the BusOwner memory pool
2657         (bus_registry_unref): free the BusOwner memory pool
2658         (_bus_service_find_owner_link): new internal method for
2659         searching the queue for a specific connection
2660         (bus_owner_set_flags): new method for adding setting the flags on a
2661         bus owner
2662         (bus_owner_new): new method that creates a BusOwner object from the
2663         pool and sets its flags
2664         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2665         (bus_registry_ensure): Add the flags parameter
2666         (bus_registry_acquire_service): Switch from using raw connections to
2667         using the BusOwner struct
2668         Add new state machine for dealing with the new set of flags
2669         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2670         cancel_ownership, free_ownership_cancel_data, 
2671         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2672         restore_ownership, free_ownership_restore_data, 
2673         add_restore_ownership_to_transaction): Switch to using BusOwner 
2674         instead of raw connections
2675         (bus_service_add_owner): Add flags parameter
2676         Switch to using BusOwner instead of raw connections
2677         Add state machine for dealing with the new set of flags
2678         (bus_service_swap_owner): Swaps the first and second owners in the
2679         queue.  Used to make sure proper signals are sent when a service looses 
2680         or gains primary ownership.  We never insert an owner at the top of the
2681         queue.  Instead we insert it in the second position and then swap.
2682         (bus_service_remove_owner): Remove the owner from the queue sending
2683         out the NameLost and NameOwnerChanged signals if the we were the 
2684         primary owner
2685         (bus_service_get_primary_owners_connection): New method that extracts
2686         the connection from the primary owner
2687         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2688         connection
2689         (bus_service_get_allow_replacement): Changed from the old 
2690         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2691         primary owner and returns if it can be replaced or not
2692         (bus_service_set_prohibit_replacement): removed
2693         (bus_service_has_owner): returns TRUE if and owner with
2694         the specified connection exists in the queue
2695         
2696         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2697         method that only compiles if tests are enabled.  Allows us to get the 
2698         unique name of a connection so we can check it against the queue when
2699         doing regression tests
2700
2701         * bus/activation.c (bus_activation_send_pending_auto_activate),
2702         bus/dispatch.c (bus_dispatch),  
2703         bus/driver.c (bus_driver_handle_get_service_owner, 
2704         bus_driver_handle_get_connection_unix_user, 
2705         bus_driver_handle_get_connection_unix_process_id,
2706         bus_driver_handle_get_connection_selinux_security_context),
2707         bus/signals.c (connection_is_primary_owner): 
2708         use bus_service_get_primary_owners_connection instead of
2709         bus_service_get_primary_owner
2710
2711         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2712         _dbus_listen_unix_socket): Calculate the length of the socket
2713         path and use that instead of using a fixed length which was
2714         causing socket names to contain many trailing Nul bytes.
2715
2716         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2717         (dbus_g_method_get_sender): New method for extracting the sender 
2718         from a DBusGMethodInvocation
2719         (dbus_g_method_return_get_reply): changed name to 
2720         dbus_g_method_get_reply
2721         (dbus_g_method_return_send_reply): changed name to
2722         dbus_g_method_send reply
2723
2724         * doc/dbus-specification.xml: New docs that describe how the new
2725         queueing system works and talks about the changes to the how
2726         we specify socket names
2727
2728         * glib/examples/example-service.c, 
2729         glib/examples/example-signal-emitter.c,
2730         glib/examples/statemachine/statemachine-server.c:
2731         Changed the RequestName flags to the new system
2732
2733         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2734         regression test suite for testing various states of the new
2735         queueing system
2736         
2737 2005-11-15  Robert McQueen  <robot101@debian.org>
2738
2739         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2740         Taylor to add two methods, dbus_g_method_return_get_reply and
2741         dbus_g_method_return_send_reply, to allow you to get the reply
2742         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2743         and send it. The GLib bindings can't marshal a return value of
2744         something like a(s) if the array is empty - ultimately they should be
2745         made to heed the signature of the out arguments as the Python bindings
2746         now can, but this is a workable interim solution which might have
2747         other applications.
2748
2749 2005-11-15  Robert McQueen  <robot101@debian.org>
2750
2751         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2752         method to org.freedesktop.DBus to release a bus name or give up
2753         waiting in the queue for it.
2754
2755         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2756         dbus_bus_release_name method to send the ReleaseName method calls.
2757         Add constants for the return values to dbus/dbus-shared.h.
2758
2759         * doc/dbus-specification.xml: Document the new ReleaseName method
2760         in the specification.
2761
2762         * python/dbus_bindings.pyx: Add a low-level python binding for the
2763         release name method.
2764
2765         * python/exceptions.py, python/service.py: Make freeing BusName
2766         objects release the name. Add a NameExistsException, and fix a
2767         bug with creating UnknownMethodException.
2768
2769         * test/python/test-client.py: Add tests for freeing BusName
2770         objects causing names to be released.
2771
2772 2005-11-14  Robert McQueen  <robot101@debian.org>
2773
2774         * python/service.py: Include the traceback in the error reply when we
2775         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2776
2777 2005-11-14  David Zeuthen  <davidz@redhat.com>
2778
2779         Patch from Timo Hoenig <thoenig@suse.de>.
2780
2781         * bus/bus.c: I've recently investigated why the automatic reload
2782         of configuration files does not work as expected.
2783
2784         Currently, reloading configuration files does only work when
2785         running dbus-daemon with --nodaemon.  If we are running as daemon
2786         we're hitting a dnotify bug once we fork the process.
2787
2788         We're initializing the dnotify fds before calling fork().  Once
2789         the child process forked it does still have the fds (and they
2790         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2791         getting SIGIO as changes are made to the configuration files.
2792
2793         The attached patch moves the initialization of the dnotify fds to
2794         process_config_postinit().  This is safe for all current code
2795         paths and solves the dnotify disfunction.  If we're running
2796         dbus-daemon as daemon the fds for dnotify are now being
2797         initialized after fork() for the child process.
2798
2799         * configure.in: The current configure.in check for dnotify probes
2800         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2801         match for 'xlinux', too. Additionally I have adapted the configure
2802         option's style to match with the others.
2803
2804 2005-11-14  Robert McQueen  <robot101@debian.org>
2805
2806         * python/decorators.py, python/service.py: Add a new argument to the
2807         dbus.service.method decorator called sender_keyword, which if set,
2808         specifies the name of an argument which will be provided the bus
2809         name of the method caller.
2810
2811         * test/python/test-client.py, test/python/test-service.py: Add a
2812         method and test to check the sender_keyword functionality.
2813
2814 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2815
2816         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2817         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2818         Simons <sjoerd at luon.net>)
2819
2820         * AUTHORS: Add Robert McQueen for his work on the Python
2821         Bindings and other parts of D-Bus
2822
2823 2005-11-07  Robert McQueen  <robot101@debian.org>
2824
2825         * python/decorators.py: Change emit_signal function to use the
2826         signature annotation of the signal when marhsalling the arguments from
2827         the service. Fix a bug where the code checking signature length
2828         against argument length referenced the wrong variable.
2829
2830         * python/introspect_parser.py: Avoid adding the type signature of
2831         signal arguments to any methods which occur after them in the
2832         introspection data (!) by making the parser a little more careful
2833         about its current state.
2834
2835         * python/service.py: Remove debug prints from last commit (again :D).
2836
2837         * test/python/test-client.py, test/python/test-service.py: Add test
2838         signals with signature decorators to test the strict marshalling code
2839         gives errors at the right time. Could do with checking the signals
2840         actually get emitted too, given that the test does nothing with
2841         signals at the moment...
2842
2843 2005-11-07  Robert McQueen  <robot101@debian.org>
2844
2845         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2846         instances to stop madness of creating new instances representing
2847         the same bus connection all the time, rendering any tracking of
2848         match rules and bus names quite meaningless. Caught a bug where
2849         the private argument to SessionBus() and friends was being passed
2850         in as use_default_mainloop by mistake. Still some problems with
2851         multiple dbus_binding.Connection instances representing the same
2852         low-level connection (eg when you use both SessionBus() and
2853         StarterBus() in same process), but it's a lot better now than it
2854         was.
2855
2856         * python/dbus_bindings.pyx: Add constants with the return values
2857         for bus_request_name().
2858
2859         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2860         and retrieve the same instances for the same name, so deletion can be
2861         done with refcounting. Also now throws some kind of error if you
2862         don't actually get the name you requested, unlike previously...
2863
2864         * test/python/test-client.py: Add tests for instance caching of buses
2865         and bus name objects.
2866
2867 2005-11-04  Robert McQueen  <robot101@debian.org>
2868
2869         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2870         marshalling of boolean values. Add some booleans to the values in
2871         the test client.
2872
2873         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2874         argument to the dbus.service.method decorator, which allows you to
2875         name arguments to take two callback functions for replying with
2876         return values or an exception.
2877
2878         * test/python/test-client.py, test/python/test-service.py: Add test
2879         case using asynchronous method reply functions, both return values and
2880         errors, and from within both the function itself and from a mainloop
2881         callback.
2882
2883         * python/decorators.py, python/service.py: Perform checking that the
2884         number of method/signal arguments matches the number of types in the
2885         signature at class loading time, not when you first introspect the
2886         class.
2887
2888         * python/service.py: Remove debug print left by the last commit.
2889
2890 2005-11-03  Robert McQueen  <robot101@debian.org>
2891
2892         * python/service.py: Heavy refactoring of method invocation, with
2893         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2894         in favour of a new _message_cb that uses seperate functions for
2895         looking up the method to call, marshalling the return values, and
2896         sending exceptions as errors, and is easier to follow as a
2897         consequence.  Fixes some corner cases about returning things that
2898         don't match your declared out_signature, allows exceptions to define
2899         _dbus_error_name and have it be sent over the bus as the error name,
2900         and paves the way for cool stuff like heeding the message no reply
2901         flag, asynchronous method implementations, informing the method of the
2902         sender, and including backtraces in the error messages.
2903
2904         * test/python/test-client.py: Catch and print exceptions thrown in the
2905         async callback tests, rather than passing them to the low-level
2906         bindings to be ignored in a noisy and frustrating manner.
2907
2908 2005-11-03  Robert McQueen  <robot101@debian.org>
2909
2910         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2911         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2912         tweak others to be consistent.
2913
2914         * test/python/test-client.py: Tweak output of testInheritance.
2915
2916 2005-10-29  Robert McQueen  <robot101@debian.org>
2917
2918         * python/service.py: Major changes to allow multiple inheritance
2919         from classes that define D-Bus interfaces:
2920         
2921          1. Create a new Interface class which is the parent class of
2922             Object, and make the ObjectType metaclass into InterfaceType.
2923         
2924          2. Patch written with Rob Taylor to replace use of method_vtable
2925             with code that walks the class's __MRO__ (method resolution order)
2926             to behave like Python does when invoking methods and allow
2927             overriding as you'd expect. Code is quite tricky because
2928             we have to find two methods, the one to invoke which has the
2929             right name and isn't decorated with the /wrong/ interface,
2930             and the one to pick up the signatures from which is decorated
2931             with the right interface.
2932         
2933             The same caveats apply as to normal multiple inheritance -
2934             this has undefined behaviour if you try and inherit from two
2935             classes that define a method with the same name but are
2936             decorated with different interfaces. You should decorate
2937             your overriding method with the interface you want.
2938         
2939          3. Replace grungy introspection XML generation code in the metaclass
2940             with dictionaries that cope correctly with multiple inheritance
2941             and the overriding of methods. This also uses the signature
2942             decorations to provide correct introspection data, including
2943             the debut appearance of the types of your return values. :D
2944
2945         * test/python/test-client.py, test/python/test-service.py: Add a test
2946         case to try invoking an method that overrides one inherited from a
2947         D-Bus interface class.
2948
2949 2005-10-29  Robert McQueen  <robot101@debian.org>
2950
2951         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2952         Add checking for the end of struct character when marshalling a
2953         struct in MessageIter.append_strict.
2954
2955         * python/examples/example-service.py,
2956         python/examples/gconf-proxy-service.py,
2957         python/examples/gconf-proxy-service2.py: Update to use gobject
2958         mainloop directly rather than appearing to depend on gtk.
2959
2960         * python/test/test-client.py, python/test/test-server.py: Remove
2961         obsolete and broken test scripts for old bindings. We have up to date
2962         and working tests in test/python/.
2963
2964 2005-10-29  Robert McQueen  <robot101@debian.org>
2965
2966         * python/decorators.py: Add optional arguments to the method and
2967         signal decorators to allow you to specify the signature of arguments
2968         and return values. Preserve the doc strings of signal functions in the
2969         decorated version, for pydoc and friends.
2970
2971         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2972         parse_signature_block function with an iterable dbus.Signature()
2973         type. Fix a bug in MessageIter.append_strict where you could append
2974         anything by claiming it was a string.
2975
2976         * python/service.py: Use the out_signature decoration on methods to
2977         marshal return values, meaning you no longer require dbus.Array()
2978         or dbus.Dictionary() to indicate the type when returning empty
2979         arrays or dictionaries. Fix a bug where exceptions which are defined
2980         in __main__ are not turned into error replies.
2981
2982         * test/python/test-client.py, test/python/test-service.py: Add test
2983         for correct marshalling of return values according to out_signature.
2984         Fix a bug in the async call test where the error_handler is missing a
2985         self argument.
2986
2987 2005-10-29  Robert McQueen  <robot101@debian.org>
2988
2989         * glib/Makefile.am, glib/examples/Makefile.am,
2990         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2991         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2992
2993         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2994
2995         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2996         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2997         the command line.
2998
2999 2005-10-27  Ross Burton  <ross@openedhand.com>
3000
3001         * dbus/dbus-marshal-header.c:
3002         Remove dead code.
3003
3004         * glib/dbus-gobject.c:
3005         Stop compiler warning.
3006
3007 2005-10-25  Ross Burton  <ross@openedhand.com>
3008
3009         * dbus/dbus-auth.c:
3010         * dbus/dbus-server-unix.c:
3011         * dbus/dbus-transport-unix.c:
3012         * glib/dbus-gmain.c:
3013         * glib/dbus-gobject.c:
3014         Add some const keywords.
3015
3016 2005-10-25  Ross Burton  <ross@openedhand.com>
3017
3018         * doc/dbus-specification.xml:
3019         Document the NoReply annotation.
3020
3021         * glib/dbus-binding-tool-glib.h:
3022         * glib/dbus-binding-tool-glib.c:
3023         Respect the NoReply annotation.
3024
3025 2005-10-24  Robert McQueen <robot101@debian.org>
3026
3027         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3028         derive from unicode instead of str, and encode/decode UTF-8 when
3029         marshalling/unmarshalling bus messages
3030
3031         * python/introspect_parser.py: encode introspection data as UTF-8
3032         before passing the buffer into libxml2
3033
3034         * test/python/test-client.py: add unicode test strings
3035
3036         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3037         ignore generated python test files
3038
3039 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3040
3041         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3042         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3043         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3044
3045         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3046         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3047         when constructing struct signatures
3048
3049         * python/_dbus.py (Bus): handle private connections using the
3050         private keyword in the constructor. defaults to private=False
3051         (Bus::close): new method to close a connection to the bus
3052
3053         * python/dbus_bindings.pyx (Connection::close): renamed method
3054         was previously called disconnect
3055         (bus_get): now supports getting a private connection
3056
3057         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3058         keyword is set to True.  if it is, execute the method without waiting
3059         for a reply
3060         (ProxyObject::_introspect_execute_queue): new method for executing
3061         all the pending methods that were waiting for the introspect to
3062         finish.  this is called when introspect either succeeds or fails
3063         (ProxyObject::_introspect_error_handler): call queued methods
3064
3065 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3066
3067         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3068         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3069
3070         * python/service.py (Object::_message_cb): handle exceptions correctly
3071         by sending them over the wire to the calling app.  This makes sure
3072         the client returns immediately instead of waiting the 15 seconds to
3073         timeout.
3074
3075         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3076         Add a test to benchmark how long it takes to introspect a service and 
3077         call a method which returns a large element (pretty fast)
3078
3079         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3080         method which pushes a lot of data
3081
3082 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3083
3084         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3085         reclaim memory outside of the loop and use del istead of just setting
3086         the key to None
3087
3088 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3089
3090         * python/service.py (ObjectType::_reflect_on_signal): Always close
3091         signal tag even when there are no arguments
3092
3093 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3094
3095         * configure.in: Set mono, mono-docs and Qt3 to default
3096         to no instead of auto when building.  These bindings do not
3097         have full time maintainers and will not be supported for the
3098         1.0 release.
3099
3100 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3101
3102         patches from Michael Krivoruchko <misha at sun.com>: 
3103         
3104         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3105         _dbus_connection_message_sent, 
3106         _dbus_connection_send_preallocated_unlocked_no_update, 
3107         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3108         is NULL when calling _dbus_verbose
3109
3110         * configure.in: check for functions getpeerucred and getpeereid
3111
3112         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3113         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3114         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3115         Patch was only tested on Solaris 10 x86 so it might be issues
3116         with other platforms (i.e. BSDs and MacOSX)
3117         
3118
3119 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3120
3121         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3122         instead of marshal basic so we can handle recursive types in a variant
3123
3124         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3125         in variants
3126
3127         * test/glib/test-service-glib.c, test-service-glib.xml
3128         (my_object_echo_variant [EchoVariant], 
3129         my_object_process_variant_of_array_of_ints123
3130         [ProcessVariantOfArrayOfInts123]): 
3131         Add two test methods
3132
3133         * python/introspect_parser.py: New module for parsing introspect
3134         data.
3135
3136         * python/dbus_bindings.pyx:
3137         (various places): when throwing errors fix to use errormsg instead 
3138         of message local variable because Pyrex can get confused with other 
3139         message variables (initial patch by Robert McQueen 
3140         <robert.mcqueen at collabora.co.uk>)
3141         (MessageIter::parse_signature_block): new method for getting the next
3142         block in a signiture.
3143         (MessageIter::append_strict): new method for appending values strictly
3144         using the passed in signature instead of guessing at the type
3145         (MessageItter:: append_dict, append_struct, append_array): use 
3146         signatures to marshal children if the signature is available
3147         
3148         * python/exceptions.py (IntrospectionParserException): new exception
3149
3150         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3151         introspected signatures if available, else we fall back to the
3152         old way of doing things.
3153         (ProxyObject::_introspect_reply_handler ): parse introspection data
3154         
3155         * python/service.py (ObjectType::_reflect_on_method): Properly
3156         terminate <method> if there are no args in the reflection data
3157
3158         * test/python/test-client.py: add tests for talking with the GLib
3159         test server.  This gives us better coverage for introspection since
3160         python to python will always generate arguments as variants.  It also
3161         allows us to test the robustness of the GLib bindings and interlanguage
3162         communications.
3163
3164         
3165 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3166
3167         * bus/driver.c (bus_driver_handle_introspect): Add signals
3168         to the introspect data. (patch from Daniel P. Berrange 
3169         <dan at berrange.com>)
3170
3171         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3172         
3173         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3174         _dbus_connection_run_builtin_filters): Changed these to
3175         be unlock_no_update functions and call 
3176         _dbus_connection_send_unlocked_no_update instead of
3177         dbus_connection_send to avoid locking errors.
3178         
3179         * doc/TODO: Removed the make Ping test TODO
3180         
3181 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3182
3183         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3184         We now copy the message from a DBusError and then free 
3185         the error object befor throwing the error
3186
3187         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3188         DBusBindingOutputMode enum which was causing a warning.
3189         #include <time.h> so using time_t is explicitly defined
3190
3191 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3192
3193         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3194         - dbus/dbus-bus.c
3195         (internal_bus_get): new method that take over the heavy lifting
3196         of dbus_bus_get and adds the ability to get a private connection
3197         to the bus
3198         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3199         interface as in previous versions
3200         (dbus_bus_get_private): new method that is a wrapper to 
3201         internal_bus_get to get a private connection to the bus
3202
3203         - dbus/dbus-bus.h
3204         (dbus_bus_get_private): add as a public libdbus interface
3205
3206         - dbus-1.pc.in: output system_bus_default_address and 
3207         sysconfdir variables so apps can use them when compiling
3208
3209 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3210         * dbus/qt: New Qt bindings
3211
3212 2005-09-12  Waldo Bastian  <bastian@kde.org>
3213
3214         * dbus/dbus-marshal-validate.c,
3215         doc/dbus-specification.xml, test/Makefile.am,
3216         test/test-names.c: allow hyphens in bus names.
3217
3218 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3219
3220         * test/data/auth/fallback.auth-script: we don't
3221         retry the EXTERNAL method when we know its going
3222         to fail anymore.
3223
3224 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3225
3226         * dbus/dbus-connection-internal.h: rename
3227         (add|remove|toggle)_(watch|timeout) to unlocked()
3228         
3229         * dbus/dbus-connection.c: ditto.
3230         
3231         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3232         Update some callers for the renaming.
3233
3234 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3235
3236         * dbus/dbus-auth.c: (record_mechanisms): don't
3237         retry the first auth mechanism because we know
3238         we're just going to get rejected again.
3239         
3240         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3241         Fix thinko ... and what a nasty little bugger to
3242         track down you were ...
3243
3244         * dbus/dbus-connection.c:
3245         (_dbus_connection_add_watch),
3246         (_dbus_connection_remove_watch): add note about
3247         these needing the connection to be locked.
3248         (_dbus_connection_get_dispatch_status_unlocked):
3249         set status to DATA_REMAINS when we queue the
3250         disconnected message.
3251         
3252         * bus/dispatch.c:
3253         (bus_dispatch): fix warning.
3254         (check_existent_service_no_auto_start):
3255         Expect ChildSignaled error too.
3256         (check_existent_hello_from_self): fix another
3257         couple of warnings.
3258         
3259 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3260
3261         Patches from James Willcox <snorp@snorp.net>
3262
3263         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3264
3265         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3266         support array "out" parameters.
3267
3268         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3269         for 16-bit int support.
3270
3271 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3272
3273         * Released 0.50
3274
3275         * Patch from Steve Grubb:
3276         - bus/activation.c (bus_activation_service_reload_test): clean up
3277         some indentation
3278         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3279         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3280         buffer overflows in the test suite.  This is non critical because
3281         it can not be exploited and this code is only run when doing a 
3282         make check.
3283
3284         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3285         - configure.in: Don't check and link against kdecore, only qt headers
3286         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3287         - gcj/org/freedesktop/dbus/Makefile.am:
3288         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3289         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3290         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3291         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3292         - tools/Makefile.am: Add platform extentions to binaries 
3293         (i.e. .exe on windows)
3294
3295         * configure.in: 
3296         - Make it so if no suitable version of python is found we only 
3297         disable building python instead of exiting the configure script
3298         - Require version 2.4 of glib for glib bindings
3299         - Up version to 0.50
3300
3301         * python/__init__.py: Sync version with libdbus to (0,50,0)
3302         
3303 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3304
3305         * dbus/dbus-object-tree.c (find_subtree_recurse):
3306         a couple of optimizations (bug #710):
3307         - do a binary search in the tree
3308         - insert a new child at the right place directly, no need for
3309           qsort anymore
3310         - do the "double alloc" thing when allocating children
3311
3312 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3313
3314         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3315
3316         * python/dbus_bindings.pyx: Memory management foo
3317         (global): remove hacky _user_data_references global list
3318         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3319         tuples. Unref user_data
3320         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3321         (Connection::__del__): Remove and replace with __dealloc__ method
3322         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3323         to keep tuple from being deallocated instead of the global var hack
3324         (Connection::register_object_path): Stuff user_data into a tuple.
3325         Use Py_INCREF to keep tuple from being deallocated instead of the 
3326         global var hack
3327         (Connection::register_fallback): Stuff user_data into a tuple.
3328         Use Py_INCREF to keep tuple from being deallocated instead of the 
3329         global var hack
3330         (GIL_safe_pending_call_notification): Don't unref the message
3331         because it gets unreffed when going out of scope.  Py_XDECREF
3332         the user_data
3333         (PendingCall::__del__): Remove and replace with __dealloc__ method
3334         (PendingCall::set_notify): ref the pending call because we will
3335         need it to stick around for when the notify callback gets called
3336         (Message::__del__): Remove and replace with __dealloc__ method
3337
3338         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3339         gthreads_init to match up with the dbus call
3340
3341         * python/glib.py (init_threads): Changed to threads_init to match
3342         up with gobject.threads_init().  init_threads is kept for backwards
3343         compat but will most likely be deprecated in the future
3344
3345         * test/python/test-client.py: 
3346         - revamp to use Python's unittest functionality
3347         - add async call tests
3348         - setup threads in glib and dbus so we make sure locks are working
3349         
3350 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3351
3352         * python/dbus_bindings.pyx 
3353         (_pending_call_notification, cunregister_function_handler, 
3354         cmessage_function_handler): All callback functions have been rearranged 
3355         to workaround a bug in Pyrex when working with the GIL which is Python's 
3356         global lock when dealing with threads.  They have been split into
3357         a wrapper function (which assumes the name of the old function) and
3358         a _GIL_safe_<function name> function which contains the functionality
3359         of the old function.  This ensures that Pyrex does not write code
3360         the lock is released.
3361         
3362
3363 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3364
3365         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3366         GIL global lock when calling back into Python
3367
3368 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3369
3370         * Release 0.36.2
3371
3372         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3373
3374         * bus/policy.c (bus_policy_allow_user): change default "user is
3375         allowed" to be "user has same uid as the bus itself"; any
3376         allow/deny rules will override.
3377
3378         * bus/session.conf.in: don't allow all users, since now by default
3379         the user that ran the bus can connect.
3380
3381 2005-08-26  Colin Walters  <walters@verbum.org>
3382
3383         * tools/dbus-print-message.c (print_message): Flush stdout
3384         after printing a message, so that redirecting to a file, then
3385         hitting Ctrl-C works.
3386
3387 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3388
3389         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3390         (EmptyMessage): new class that subclasses Message.  This is a workaround
3391         to a Pyrex bug that fails to call __del__ when the Message object goes out
3392         of scope.  For some reason subclassing Message fixes this bug
3393         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3394         - s/Message(_create=0)/EmptyMessage everywhere else
3395         
3396         * test/python/test-{server|client}.py: add the python/.libs directory
3397         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3398         get picked up from the system
3399
3400 2005-08-25  Colin Walters  <walters@verbum.org>
3401
3402         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3403         to Ryan Lortie for the suggestion.
3404
3405 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3406
3407         * test/python: Add python regression test
3408
3409         * configure.in: Add test/python/Makefile
3410
3411         * test/Makefile.am: Add the python directory to SUBDIRS
3412
3413 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3414
3415         * Release 0.36.1
3416
3417         * python/_dbus.py: 
3418         (Interface::connect_to_signal): propigate keywords for match on args
3419         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3420
3421         * python/proxies.py (ProxyObject::connect_to_signal):
3422         propigate keywords for match on args
3423
3424         * Makefile.am: point everything to pyexecdir since python borks
3425         on multilib
3426
3427 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3428
3429         * Release 0.36
3430
3431 2005-08-23  Colin Walters  <walters@verbum.org>
3432
3433         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3434
3435 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3436
3437         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3438         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3439         of defining DBusConnection ourselves.
3440
3441 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3442
3443         * python/dbus.pth: New path file to fix up problems when installing
3444         c libraries to lib64 and python files to lib.
3445
3446         * python/Makefile.am: install dbus.pth in the correct spot
3447
3448 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3449         * ChangeLog: clean up my last entry a bit
3450
3451         * doc/introspect.xsl: New stylesheet for converting introspection data
3452         into browser renderable xhtml. Contributed by Lennart Poettering.
3453
3454         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3455         Poettering.
3456
3457         * doc/dbus-tutorial.xml: 
3458         - Add Colin Walter to the Authors section for authoring the GLib
3459         section
3460         - Add descriptions of the new signature and type functionality
3461         in the Python complex type mapping section
3462         - Add a sidenote on the new args matching functionality in 
3463         the Python bindings
3464         - Fixed up some of the examples to use the gobject.MainLoop
3465         instead of gtk.main
3466         
3467         * python/_dbus.py:
3468         (Bus::_create_args_dict): New. Converts a hash of arg matches
3469         to a more useable format
3470         (Bus::add_signal_receiver): add a **keywords parameter for catching
3471         arg match parameters
3472         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3473         arg match parameters
3474         
3475         * python/matchrules.py:
3476         (MatchTree::exec_matches): Check for arg matches
3477         (SignalMatchRule::add_args_match): New method
3478         (SignalMatchRule::execute): Added args_list parameter as an optimization
3479         so we don't have to marshal the args more than once
3480         (SignalMatchRule::match_args_from_list): New method that checks to see
3481         if the rule's arg matches match an argument list.  Only arguments
3482         set in the rule are checked.
3483         (SignalMatchRule::match_args_from_rule): New method that checks to see
3484         if the rule's arg matches match another rule's.  All args have to match
3485         in order for this method to return true.  If either rule has more args
3486         then it is not a match.
3487         (SignalMatchRule::is_match): Add args match
3488         (SignalMatchRule::repr): Add args to the final output if they exist
3489
3490 2005-08-17  Ross Burton  <ross@burtonini.com>
3491
3492         * glib/dbus-gproxy.c:
3493         (dbus_g_proxy_call_no_reply): unref the message once sent.
3494         (dbus_g_proxy_call): protect against NULL proxy.
3495
3496 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3497
3498         * python/__init__.py: Version updated (0, 43, 0)
3499         
3500         * python/dbus_bindings.pyx: 
3501         - Fixed type objects to have self passed into __init__
3502         - Added the Variant type
3503         - Add the ability to specify types or signatures for Array, Variant 
3504         and Dictionary
3505         (Connection::send_with_reply_handlers): return a PendingCall object
3506         (_pending_call_notification): handle the case when an error is returned 
3507         without an error message in the body
3508         (MessageIter::get_boolean): return True or False instead of an integer
3509         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3510         and add checks for objects with embeded signatures or types (Array, 
3511         Variant and Dictionary)
3512         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3513         (MessageIter::append_dict): handle embeded types or signatures
3514         (MessageIter::append_array): handle embeded types or signatures
3515         (MessageIter::append_variant): new method
3516         
3517         * python/proxies.py:
3518         (DeferedMethod): New. Dummy executable object used when queuing calls 
3519         blocking on introspection data
3520         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3521         or shorter timeouts for method calls
3522         (ProxyObject): Add first pass at an introspection state machine
3523         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3524         introspection. 
3525         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3526         the usual mechanisms for sending messages.  This is to avoid a deadlock
3527         where the Intospect call would be queued waiting for the Introspect 
3528         call to finish ;-)
3529         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3530         when introspection returns with no error
3531         (ProxyObject::_introspect_error_handler): New.  This method is called 
3532         when introspection encounters an error
3533         (ProxyObject::__getattr__): Code to handle different introspection 
3534         states.  Queue async calls or block blocking calls if we are 
3535         introspecting.  Pass through as normal if we are not or are done with 
3536         introspecting.
3537         
3538         * python/service.py: Import signal and method from decorators.py
3539
3540         * python/types.py: Add Variant type
3541
3542 2005-08-16  Colin Walters  <walters@verbum.org>
3543
3544         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3545         DBusError message is NULL.
3546
3547 2005-08-09  Havoc Pennington  <hp@redhat.com>
3548
3549         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3550         malloc'd copy of the name parameter
3551
3552 2005-08-09  Havoc Pennington  <hp@redhat.com>
3553
3554         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3555         warning if the reply serial is set to 0
3556
3557 2005-08-04  Colin Walters  <walters@verbum.org>
3558
3559         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3560         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3561         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3562         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3563         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3564         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3565         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3566         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3567         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3568         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3569         
3570         Prefix name with _ to ensure they're not exported.  All callers
3571         updated.
3572
3573         * glib/dbus-gvalue.c (typecode_to_gtype)
3574         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3575         (signature_iter_to_g_type_dict)
3576         (signature_iter_to_g_type_array)
3577         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3578         (dbus_gtypes_from_arg_signature):
3579         Move to dbus-gsignature.c.
3580
3581         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3582         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3583         (dbus_binding_tool_output_glib_client): Ditto.
3584
3585         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3586         and dbus-gsignature.h
3587
3588         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3589         unused variable.
3590
3591 2005-08-03  Colin Walters  <walters@verbum.org>
3592
3593         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3594         catch any incompatible changes accidentally made.
3595
3596 2005-08-03  Havoc Pennington  <hp@redhat.com>
3597
3598         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3599         typo, from Julien Puydt
3600
3601         * bus/connection.c (bus_connection_disconnected): we were always
3602         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3603
3604 2005-08-01  Colin Walters  <walters@verbum.org>
3605
3606         Patch from Joe Markus Clarke:   
3607         
3608         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3609         use-after-free.
3610
3611 2005-08-01  Colin Walters  <walters@verbum.org>
3612         
3613         Patch from Joe Markus Clarke:   
3614         
3615         * tools/dbus-send.c (main): 
3616         
3617         Don't use C99 style initializers (bug #3933).
3618         
3619 2005-08-01  Colin Walters  <walters@verbum.org>
3620
3621         Patch from Joe Markus Clarke:   
3622
3623         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3624         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3625         * glib/dbus-gobject.c (write_interface):
3626
3627         Don't use C99 style initializers (bug #3933).
3628
3629 2005-07-31  Havoc Pennington  <hp@redhat.com>
3630
3631         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3632         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3633
3634 2005-07-30  Havoc Pennington  <hp@redhat.com>
3635
3636         * fix a bunch of Doxygen warnings and mistakes
3637
3638 2005-07-30  Havoc Pennington  <hp@redhat.com>
3639
3640         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3641         DBUS_BUILD_TESTS since it's now used in production code
3642
3643 2005-07-29  Havoc Pennington  <hp@redhat.com>
3644
3645         * test/glib/test-profile.c (write_junk): initialize the junk
3646         buffer so valgrind doesn't have a breakdown
3647
3648 2005-07-29  Havoc Pennington  <hp@redhat.com>
3649
3650         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3651         (match_rule_matches): remove unused arg
3652         (test_matching): add tests for match_rule_matches()
3653
3654         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3655         do arg0='foo' arg5='bar' in the match rules
3656         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3657
3658         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3659
3660 2005-07-29  Ross Burton  <ross@openedhand.com>
3661
3662         * dbus/dbus-connection.c:
3663         Don't create a DBusCondVar which is never used.
3664
3665 2005-07-27  Ross Burton  <ross@openedhand.com>
3666
3667         * dbus/dbus-message.c:
3668         Reduce the size of the maximum cached message to 10K.
3669
3670 2005-07-25  Ross Burton  <ross@openedhand.com>
3671
3672         * glib/dbus-gproxy.c:
3673         Remove matches when all proxies are unregistered.
3674
3675 2005-07-24  Colin Walters  <walters@verbum.org>
3676
3677         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3678         typedata; recursive arrays won't have it.
3679
3680         * test/glib/test-dbus-glib.c:
3681         * test/glib/test-service-glib.c:
3682         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3683         
3684 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3685
3686         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3687         proxies.py, service.py: Cleanup of code after running it through the
3688         pyflakes code checker mostly dealing with undefined names.  
3689         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3690
3691 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3692
3693         * NEWS: Update to 0.35.2
3694
3695 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3696
3697         * python/_dbus.py: Remove import of the dbus.services
3698         module as it no longer exists (patch from Dimitur Kirov)
3699
3700         * python/service.py (Object::__init__): Fixed typo
3701         s/name/bus_name (patch from Dimitur Kirov)
3702
3703         * python/examples/example-signal-emitter.py: import dbus.glib
3704         to get the main loop and use glib mainloop instead of gtk so
3705         X doesn't have to be running.
3706
3707         * python/examples/example-signal-recipient.py: import dbus.glib
3708         to get the main loop and use glib mainloop instead of gtk so
3709         X doesn't have to be running. Import the decorators module
3710         directly.
3711
3712         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3713         didn't pick up on but are needed to build
3714
3715         * configure.in: upped version to 0.35.2
3716
3717         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3718         added Colin Walters' SELinux API rename patch from head 
3719         s/unix sercurity context/selinux security context/
3720
3721 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3722
3723         * python/Makefile.am: dbus_binding.pxd.in should be included 
3724         in EXTRA_DIST not dbus_binding.pxd
3725         fix up $(srcdir) hopefully for the last time
3726
3727         * NEWS: Update to 0.35.1
3728
3729 2005-07-16  Colin Walters  <walters@verbum.org>
3730
3731         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3732         from bus_driver_handle_get_connection_unix_security_context.  Update for
3733         error usage.
3734         (message_handlers): Update for renames.
3735
3736         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3737         _dbus_string_init failure correctly.
3738         (bus_selinux_append_context): Convert SID to context.  Append it
3739         as a byte array.
3740         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3741         hasn't been called.
3742
3743         * bus/selinux.h: Update prototype.
3744
3745         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3746         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3747
3748 2005-07-15  Colin Walters  <walters@verbum.org>
3749
3750         * doc/TODO: Add note about convenience wrappers.
3751
3752 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3753
3754         * NEWS: Update to 0.35
3755
3756 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3757
3758         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3759         so distcheck doesn't fail
3760
3761         * glib/examples/Makefile.am: Add example-service.xml and 
3762         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3763
3764         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3765         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3766
3767         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3768         compiler looks in the right places during distcheck
3769
3770 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3771
3772         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3773         to fail
3774
3775 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3776
3777         * python/examples/example-service.py,
3778         python/examples/example-signal-emitter.py: Fixed up examples
3779         for API changes
3780
3781 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3782
3783         * python/__init__.py: Upped to version (0,42,0) because of
3784         the API change
3785
3786 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3787
3788         * ChangeLog: fix date in last entry
3789
3790         * configure.in, bus/system.conf.in: add the ability to configure 
3791         the system bus user at compiletime with the --with-dbus-user flag
3792         (patch from Kristof Vansant)
3793
3794 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3795
3796         * bus/dispatch.c, test/test-service.c: Add testcase
3797         for sending messages to oneself (TODO item).
3798
3799         * python/service.py (class Object): Swap ordering of bus_name 
3800         and object_path parameters to better support inheritance.
3801
3802         * doc/dbus-tutorial.xml: change Python docs to reflect change
3803         in parameter ordering and fix the inheritance section.
3804
3805         * doc/TODO: remove sending message to oneself TODO item
3806
3807 2005-07-15  Ross Burton  <ross@openedhand.com>
3808
3809         * glib/dbus-gproxy.c:
3810         Fix a leak when calling methods via the proxy.
3811
3812 2005-07-15  Colin Walters  <walters@verbum.org>
3813
3814         * bus/selinux.c (bus_selinux_append_context): Wrap in
3815         HAVE_SELINUX.
3816
3817 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3818
3819         * python/_dbus.py (Bus::remove_signal_receiver):
3820         don't add a callback to the match if none has been passed in
3821         
3822         * python/matchrules.py (SignalMatchTree::remove): if the rule
3823         being matched does not have a callback treat it as a wildcard
3824         fix matching logic
3825
3826         * doc/dbus-tutorial.xml: Add Python tutorial
3827
3828 2005-07-14  Colin Walters  <walters@verbum.org>
3829
3830         * bus/driver.c
3831         (bus_driver_handle_get_connection_unix_security_context): New function.
3832         (message_handlers): Add.
3833
3834         * bus/selinux.c (bus_selinux_append_context): New function; appends
3835         security context to message.
3836
3837         * bus/selinux.h: Prototype.
3838
3839         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3840
3841 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3842
3843         * bus/activation.c: clean up all tabs to be 8 spaces 
3844         (bus_activation_activate_service): make sure we clean up
3845         if activation fails
3846
3847         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3848         (check_shell_fail_service_auto_start): New function
3849         tests to make sure we get fail properly when trying to auto start a service
3850         with a faulty command line
3851         (check_shell_service_success_auto_start): New function tests to make sure
3852         auto started services get the arguments on the command line
3853
3854         * test/test-shell-service.c: Added service for testing auto-starting with 
3855         command line arguments
3856
3857         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3858         test/data/valid-service-files/debug-shell-echo-success.service.in:
3859         Added service files for testing auto-starting with command line arguments
3860
3861         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3862
3863 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3864
3865         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3866         
3867         * dbus/Makefile.am: added new files to build.
3868
3869         * bus/activation.c (bus_activation_activate_service): support
3870         activation commands with parameters.
3871
3872         * test/shell-test.c: added test program for the shell parsing
3873         code.
3874
3875 2005-07-13  David Zeuthen  <davidz@redhat.com>
3876
3877         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3878         64 bit signed and unsigned parameters
3879
3880 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3881
3882         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3883
3884         * python/service.py (class Name): renamed BusName to make it clearer
3885         what the object is for (a name on the bus)
3886
3887         * python/examples/example-service.py,
3888         python/examples/example-signal-emitter.py: change the Name object to
3889         BusName
3890
3891 2005-07-12  Colin Walters  <walters@verbum.org>
3892
3893         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3894
3895         * tools/dbus-launch.c: Include sys/select.h.
3896
3897 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3898         * python/dbus_bindings.pyx.in: removed
3899
3900         * python/dbus_bindings.pyx: Added.
3901         - Fixed some memleaks (patch from 
3902         Sean Meiners <sean.meiners@linspireinc.com>)
3903         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3904         own pxd file (Pyrex definition)
3905         - Broke out glib dependancies into its own pyx module
3906         
3907         * python/dbus_bindings.pdx: Added.
3908         - Defines C class Connection for exporting to other modules
3909
3910         * python/dbus_glib_bindings.pyx: Added.
3911         - New module to handle lowlevel dbus-glib mainloop integration
3912
3913         * python/glib.py: Added.
3914         - Registers the glib mainloop when you import this module
3915
3916         * python/services.py: Removed (renamed to service.py)
3917         
3918         * python/service.py: Added.
3919         - (class Server): renamed Name
3920
3921         * python/__init__.py: Bump ro version (0,41,0)
3922         -don't import the decorators or service module
3923         by default.  These now reside in the dbus.service namespace
3924
3925         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3926         setup function on creation 
3927
3928         * python/examples/example-service.py,
3929         python/examples/example-signal-emitter.py: update examples
3930
3931         * python/examples/gconf-proxy-service.py,
3932         python/examples/gconf-proxy-service2.py: TODO fix these up
3933
3934         * doc/TODO: Addition
3935         - Added a Python Bindings 1.0 section
3936         - added "Add match on args or match on details to match rules"
3937
3938
3939 2005-07-12  Colin Walters  <walters@verbum.org>
3940
3941         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3942         (statemachine-glue.h): 
3943         * glib/examples/Makefile.am (example-service-glue.h) 
3944         (example-signal-emitter-glue.h): 
3945         * glib/Makefile.am (dbus-glib-error-switch.h): 
3946         Add libtool --mode=execute so we use the built library instead
3947         of any installed one.
3948
3949 2005-07-11  Colin Walters  <walters@verbum.org>
3950
3951         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3952         (dbus_g_value_types_init): Remove assertion.
3953         (dbus_g_value_get_g_type, dbus_g_value_open)
3954         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3955         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3956         functions related to DBusGValue.  Now we marshal/demarshal
3957         structures as GValueArray.
3958         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3959         structures.
3960         (signature_iter_to_g_type_array): Don't call
3961         signature_iter_to_g_type_struct.
3962         (signature_iter_to_g_type_struct): Delete.
3963         (dbus_gvalue_to_signature): Delete.
3964         (dbus_gvalue_to_signature): New function with same name as other
3965         one; we can convert structures to signatures.
3966         (demarshal_valuearray): New function.
3967         (get_type_demarshaller): Use it.
3968         (demarshal_recurse): Delete.
3969         (marshal_proxy): New function.
3970         (marshal_map): Warn if we can't determine signature from type.
3971         (marshal_collection_ptrarray): Ditto.
3972         (marshal_collection_array): Ditto.
3973         (get_type_marshaller): Use marshal_valuearray.
3974         (marshal_recurse): Delete.
3975         (_dbus_gvalue_test): Add some tests.
3976
3977         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3978         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3979         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3980         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3981         (dbus_g_value_free): Remove prototypes.
3982
3983         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3984         G_TYPE_VALUE_ARRAY.
3985
3986         * glib/examples/example-service.c:
3987         * glib/examples/example-client.c: Implement GetTuple.
3988
3989         * test/glib/test-dbus-glib.c:
3990         * test/glib/test-service-glib.c:
3991         * test/glib/test-service-glib.xml: Add structure tests.
3992
3993 2005-07-10  Colin Walters  <walters@verbum.org>
3994
3995         * doc/TODO: Knock off some GLib items with this patch.
3996
3997         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3998         (_dbus_gvalue_signals_error): New functions.
3999
4000         * glib/dbus-gvalue-utils.h: Prototype them.
4001
4002         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4003         and change to not output const/retval flags for input args.  All
4004         callers updated.
4005         (invoke_object_method): Refactor to handle return values.  Add
4006         some more comments in various places.  Remove debug g_print.
4007
4008         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4009
4010         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4011         Handle G_TYPE_NONE.
4012         (compute_gsignature): New function; refactored from code from
4013         compute_marshaller and compute_marshaller_name.  Enhance to
4014         handle return values and async ops more cleanly.  Update for
4015         async ops returning NONE instead of BOOLEAN.
4016         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4017         and output appropriate string.
4018         (generate_glue): Handle return value annotation.  Also don't dump
4019         constness flag for input arguments.
4020
4021         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4022         files shared between installed library and utilities.
4023         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4024         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4025         binding tool can access gtype utility functions.
4026
4027         * test/glib/test-service-glib.c: 
4028         * test/glib/test-service-glib.xml: 
4029         * test/glib/test-dbus-glib.c: Add some tests for return values.
4030
4031 2005-07-09  Colin Walters  <walters@verbum.org>
4032
4033         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4034         argument if available, not method.
4035
4036         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4037         (invoke_object_method): First, remove some redundant
4038         GValues (object_value, error_value) in favor of working on
4039         array directly.  Second, rework constness to be less buggy.
4040         Now we iterate directly over the argument metadata instead
4041         of parallel iterating over output signature and metadata.
4042
4043         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4044
4045         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4046         annotation on input args.
4047         
4048 2005-07-09  Colin Walters  <walters@verbum.org>
4049
4050         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4051         Define.
4052
4053         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4054         annotation.
4055
4056         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4057         (method_dir_signature_from_object_info): Handle arg_iterate change.
4058         (write_interface): Ditto.
4059         (lookup_object_info): Don't barf if format_version is > 0.
4060         (invoke_object_method): Handle arg constness.
4061
4062         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4063         (arg_info_new): Create.
4064         (arg_info_unref): Destroy.
4065         (arg_info_get_annotations, arg_info_get_annotation) 
4066         (arg_info_add_annotation): New functions.
4067
4068         * glib/dbus-gidl.h: Prototype them.
4069
4070         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4071         args, disallow them in properties.
4072         (parse_annotation): Handle arg annotations.
4073
4074         * test/glib/test-service-glib.xml: 
4075         * test/glib/test-service-glib.c: Update to make some methods
4076         const.
4077
4078 2005-07-08  Colin Walters  <walters@verbum.org>
4079
4080         * test/glib/test-service-glib.xml: 
4081         * test/glib/test-service-glib.c:
4082         * test/glib/test-dbus-glib.c: Test a{sv}.
4083
4084         * glib/examples/statemachine/statemachine.c:
4085         * glib/examples/statemachine/statemachine-server.c:
4086         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4087         add progress bar, etc.
4088
4089         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4090         needed anymore due to generic array/map marshalling.
4091         (dbus_g_value_types_init): Don't register basic arrays or the
4092         string/string hash.
4093         (dbus_gtype_from_signature_iter): Don't try to recurse into
4094         variants.
4095         (dbus_gtype_to_signature): Check collection/map before type
4096         metadata.
4097         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4098         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4099         generic map creation/append functions instead of hash table
4100         specifically.
4101         (get_type_demarshaller): Handle maps.
4102         (demarshal_collection): Dispatch on collection type to either
4103         demarshal_collection_ptrarray or demarshal_collection_array.
4104         (get_type_marshaller): Handle maps.
4105         (marshal_collection): Dispatch collection type to either
4106         marshal_collection_ptrarray or marshal_collection_array.
4107         (_dbus_gvalue_test): New test.
4108
4109         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4110         (hash_free_from_gtype): Use it to free GValues.
4111         (hashtable_append): New function.
4112         (ptrarray_append): Fix prototype.
4113         (slist_append): Ditto.
4114         (_dbus_gvalue_utils_test): Extend tests.
4115
4116         * glib/dbus-gtype-specialized.c
4117         (dbus_g_type_specialized_init_append): Renamed from
4118         dbus_g_type_specialized_collection_init_append.  Remove const from
4119         value, since we steal it.
4120         (dbus_g_type_specialized_map_append): New function.
4121
4122         * glib/dbus-gtype-specialized.h: Update prototypes.
4123         Add DBusGTypeSpecializedMapAppendFunc.
4124
4125         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4126         _dbus_gvalue_test.
4127         
4128         * glib/dbus-gtest.h: Prototype it.
4129
4130 2005-07-08  Ross Burton  <ross@openedhand.com>
4131
4132         * dbus/dbus-glib.h:
4133         Add DBysGAsyncData for the async bindings.
4134
4135         * glib/dbus-binding-tool-glib.c:
4136         Re-enable the async bindings.
4137
4138         * test/glib/test-dbus-glib.c:
4139         Add a test for the generated async bindings.
4140
4141 2005-07-08  Colin Walters  <walters@verbum.org>
4142
4143         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4144         connection concept.
4145         
4146 2005-07-08  Colin Walters  <walters@verbum.org>
4147         
4148         * tools/Makefile.am: Kill of print-introspect in favor of using
4149         dbus-send --print-reply=literal.
4150
4151         * test/glib/test-service-glib.xml: 
4152         * test/glib/test-service-glib.c (my_object_get_objs): New test
4153         for "ao".
4154
4155         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4156         (main): Test GetObjs.
4157
4158         * glib/examples/statemachine/Makefile.am:
4159         * glib/examples/statemachine/sm-marshal.list:
4160         * glib/examples/statemachine/statemachine-client.c:
4161         * glib/examples/statemachine/statemachine-server.c:
4162         * glib/examples/statemachine/statemachine-server.xml:
4163         * glib/examples/statemachine/statemachine.c:
4164         * glib/examples/statemachine/statemachine.h:
4165         * glib/examples/statemachine/statemachine.xml:
4166
4167         New example.
4168
4169         * glib/examples/example-service.c (main): Move invocation
4170         of dbus_g_object_type_install_info earlier, to emphasize it
4171         should only be done once.
4172
4173         * glib/examples/example-signal-emitter.c (main): Ditto.
4174
4175         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4176
4177         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4178         (dbus_gvalue_marshal): Update prototypes.
4179
4180         * glib/dbus-gvalue.c: Update all marshalling functions to take
4181         const GValue instead of GValue.
4182         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4183         types.
4184         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4185         change.
4186         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4187         Return a newly-allocated string.
4188         (demarshal_proxy, demarshal_object_path, demarshal_object)
4189         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4190         we get the wrong types from message.
4191         (get_type_demarshaller): New function, extracted from
4192         dbus_gvalue_demarshal.
4193         (demarshal_collection): New function, demarshals generic
4194         collection.
4195         (dbus_gvalue_demarshal): Just invoke result of
4196         get_type_demarshaller.  Throw error if we don't have one.
4197         (marshal_garray_basic): Abort on OOM.
4198         (get_type_marshaller): New function, extracted from
4199         dbus_gvalue_marshal.
4200         (collection_marshal_iterator, marshal_collection): New functions;
4201         implements generic marshalling for an iteratable specialized
4202         collection.
4203         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4204
4205         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4206         G_TYPE_STRING.
4207         (ptrarray_value_from_gvalue): Ditto.
4208         (ptrarray_append, ptrarray_free): New functions.
4209         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4210         (slist_append, slist_end_append, slist_free): New functions.
4211         (dbus_g_type_specialized_builtins_init): Add append fuctions
4212         for GPtrArray and GSList.  Register GSList.
4213         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4214
4215         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4216         New.
4217         (dbus_g_type_specialized_collection_init_append)
4218         (dbus_g_type_specialized_collection_append)
4219         (dbus_g_type_specialized_collection_end_append): Prototype.
4220         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4221         end_append_func.
4222
4223         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4224         (dbus_g_type_specialized_collection_append) 
4225         (dbus_g_type_specialized_collection_end_append): New functions.
4226         (dbus_g_type_map_value_iterate): Take const GValue.
4227         (dbus_g_type_collection_value_iterate): Ditto.
4228
4229         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4230         _dbus_gvalue_utils_test.
4231         
4232         * glib/dbus-gtest.h: Prototype it.
4233
4234         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4235         using uninitialized owner_list.
4236         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4237         public API.
4238         (dbus_g_proxy_end_call_internal): Update to use error set
4239         from dbus_gvalue_demarshal instead of setting it here.
4240         (dbus_g_proxy_begin_call): Move return_if_fail here.
4241
4242         * glib/dbus-gobject.c (write_interface): Update for
4243         dbus_gtype_to_signature returning new string.
4244
4245         * configure.in: Add glib/examples/statemachine.
4246
4247 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4248
4249         * configure.in: Add a configure option, --with-console-auth-dir
4250         
4251         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4252         new setting.  Patch from Kay Sievers.
4253
4254 2005-07-06  Colin Walters  <walters@verbum.org>
4255
4256         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4257         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4258         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4259         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4260         Delete in favor of dbus_g_proxy_begin_call and
4261         dbus_g_proxy_cancel_call.
4262         (DBusGProxyCall, DBusGProxyCallNotify): New.
4263         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4264         data, and destroy function.  This replaces
4265         dbus_g_pending_call_set_notify.
4266         (dbus_g_proxy_cancel_call): Prototype.
4267         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4268
4269         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4270         pending_calls map.
4271         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4272         internal proxy for calls to the bus. Remove
4273         pending_nameowner_calls, now the internal proxy keeps track.
4274         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4275         pending_nameowner_calls.
4276         (got_name_owner_cb): Update prototype, and use
4277         dbus_g_proxy_end_call.
4278         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4279         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4280         favor of using internal proxy.
4281         (dbus_g_proxy_manager_unregister): Update to use
4282         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4283         (dbus_g_proxy_init): Initialize pending calls map.
4284         (dbus_g_proxy_constructor): New.
4285         (dbus_g_proxy_class_init): Add get/set property functions,
4286         constructor, and add NAME, PATH, and INTERFACE properties.
4287         (cancel_pending_call): New function.
4288         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4289         cancel them.
4290         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4291         (GPendingNotifyClosure): New structure.
4292         (d_pending_call_notify, d_pending_call_free): Moved here from
4293         dbus-glib.c.
4294         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4295         ordering.
4296         (manager_begin_bus_call): New internal function for talking to
4297         internal bus proxy.
4298         (dbus_g_proxy_new): Construct object using GObjet properties.
4299         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4300         Create closure of same, and insert call into map of pending calls.
4301         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4302         call.  Look up pending call in current set.  Remove it when we've
4303         completed.
4304         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4305         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4306         and destroy function directly.
4307         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4308         (dbus_g_proxy_call): Invoke with NULL callback.
4309         (dbus_g_proxy_cancel_call): New function, replaces
4310         dbus_g_pending_call_cancel.
4311
4312         * glib/dbus-gparser.c (validate_signature): Fix call to
4313         dbus_set_g_error.
4314
4315         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4316         New quark for attaching metadata to GType.
4317         (info_hash): Delete.
4318         (lookup_object_info): Look up using quark.
4319         (dbus_g_object_type_install_info): Check that a type is classed,
4320         not that it's an object.  Also just install type data using quark
4321         instead of using global hash.
4322
4323         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4324         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4325         (GPendingNotifyClosure): Delete.
4326         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4327         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4328
4329         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4330         client method generation until we can fix it...
4331         
4332         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4333         (load_from_service_thread_func): Ditto.
4334
4335         * tools/dbus-names-model.c (struct NamesModel): Hold
4336         DBusGProxyCall.
4337         (have_names_notify): Update prototype, use
4338         dbus_g_proxy_cancel_call.
4339         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4340
4341         * tools/dbus-monitor.c (filter_func): Update for print_message
4342         API change.
4343
4344         * test/glib/test-dbus-glib.c: Add more tests for async
4345         invocations.  Update many begin_call/end_call pairs to just use
4346         dbus_g_proxy_call.
4347
4348         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4349         allows us to dump print-introspect.c.
4350
4351         * tools/dbus-print-message.h (print_message): Add literal argument
4352         to print_message which is intended to allow printing arguments without
4353         metadata like "string=".
4354
4355         * tools/dbus-print-message.c (print_iter): Add literal argument.
4356         (print_message): Allow printing string messages literally.
4357
4358 2005-07-05  Colin Walters  <walters@verbum.org>
4359
4360         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4361         Remove value refcount leak, original patch from Jorn Baayen
4362         <jorn@openedhand.com>.  Also remove useless extra value in favor
4363         of prepending to value array directly.
4364
4365 2005-07-02  Colin Walters  <walters@verbum.org>
4366
4367         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4368
4369 2005-07-01  Colin Walters  <walters@verbum.org>
4370
4371         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4372         
4373         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4374         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4375         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4376         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4377
4378 2005-06-30  Colin Walters  <walters@verbum.org>
4379
4380         * test/glib/test-dbus-glib.c:
4381         * test/glib/test-service-glib.c:
4382         * test/glib/test-service-glib.xml: Update tests for new error
4383         setting bits, also add async tests (patch from Ross Burton).
4384
4385         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4386         DBUS_GLIB_THREADS_LIBS.
4387
4388         * glib/dbus-gproxy.c (get_name_owner)
4389         (dbus_g_pending_call_end_valist): Ditto.
4390
4391         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4392         domain (GQuark) to DBusGErrorInfo.  
4393         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4394         quark in error_metadata.  Take message interface as default
4395         error message interface.
4396         (gerror_to_dbus_error_message): Pass message interface.
4397         (dbus_set_g_error): Resurrected.
4398         (dbus_g_error_info_free): New function.
4399         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4400         of _peek to actually create the object class if it hasn't been
4401         created yet.
4402         (dbus_g_error_domain_register): New function.
4403
4404         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4405
4406         * glib/dbus-gparser.c (validate_signature): Ditto.
4407
4408         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4409         (dbus_g_error_domain_register): Prototype.
4410
4411         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4412         Update tests.
4413
4414 2005-06-29  Colin Walters  <walters@verbum.org>
4415
4416         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4417         DBUS_TYPE_G_OBJECT_PATH.
4418
4419         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4420         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4421         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4422         (dbus_g_object_path_get_g_type): New function.
4423         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4424         to DBUS_TYPE_G_OBJECT_PATH by default.
4425         (demarshal_proxy): Remove unused name variable.
4426         (demarshal_object_path, marshal_object_path): New functions.
4427         (demarshal_proxy_array, marshal_proxy_array): Delete.
4428         
4429         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4430         DBUS_TYPE_G_OBJECT_PATH to char *.
4431         (dbus_g_type_get_lookup_function): Map builtin
4432         DBUS_TYPE_G_OBJECT_PATH.
4433
4434         * test/glib/test-dbus-glib.c
4435         * test/glib/test-service-glib.c (my_object_objpath): 
4436         Adapt tests to new object path marshalling.
4437
4438 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4439
4440         * configure.in: force check for Python >= 2.4
4441
4442 2005-06-29  Colin Walters  <walters@verbum.org>
4443         
4444         Patch from Ross Burton <ross@openedhand.com>
4445         
4446         * glib/dbus-gobject.c (invoke_object_method): Unset object
4447         value in all cases, not only in async case.
4448
4449 2005-06-29  Colin Walters  <walters@verbum.org>
4450
4451         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4452         name_call for keeping track of any outgoing GetNameOwner call.
4453         Also add for_owner and associated.
4454         (struct _DBusGProxyManager): Add owner_names, which is hash table
4455         that maps a base name to a list of names it owns (that we're
4456         interested in).  Add pending_nameowner_calls which is a list of
4457         all outstanding GetNameOwner; avoids us having to iterate over
4458         every proxy.  Add unassociated_proxies which keeps track of name
4459         proxies with no associated name owner.
4460         (dbus_g_proxy_manager_unref): Destroy owner_names.
4461         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4462         name refcounts.
4463         (find_name_in_info, name_owner_foreach)
4464         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4465         (dbus_g_proxy_manager_monitor_name_owner)
4466         (dbus_g_proxy_manager_unmonitor_name_owner)
4467         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4468         New functions; they manipulate the owner_names mapping.
4469         (got_name_owner_cb): New function.
4470         (get_name_owner): New function, extracted from
4471         dbus_g_proxy_new_for_name_owner.
4472         (dbus_g_proxy_manager_register): For now we need to keep track of
4473         all NameOwnerChanged.  Also if the proxy is for a name, if we
4474         don't already know the name owner, queue a new GetNameOwner
4475         request and add it to our list of unassociated proxies.  Otherwise
4476         inc the refcount.
4477         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4478         cancel any pending GetNameOwner call, etc.
4479         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4480         the owner_names mapping to look up the current names for the
4481         signal source, and dispatch to any proxies for that name.
4482         (dbus_g_proxy_new): Initialize new members.
4483         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4484         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4485         (dbus_g_pending_call_end_valist): New function, extracted from
4486         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4487         but want to use the GLib infrastructure.  Also note how many
4488         arguments in reply were over.
4489         (dbus_g_pending_call_end): New function, just call
4490         dbus_g_pending_call_end_valist.
4491         (dbus_g_proxy_end_call_internal): Just call
4492         dbus_g_pending_call_end_valist.
4493
4494         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4495         of builtin marshaller for STRING_STRING_STRING.
4496
4497         * test/glib/test-dbus-glib.c: 
4498         * test/glib/test-service-glib.c:
4499         * test/glib/test-service-glib.xml:
4500         Extend tests to cover name proxies, destruction of owner proxies,
4501         etc.
4502         
4503         * glib/examples/example-signal-recipient.c
4504         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4505         
4506         * tools/dbus-send.c (main): Print D-BUS error name in addition
4507         to message.
4508
4509 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4510
4511         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4512         cmessage_function_handler): Patch from 
4513         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4514         by using the Py_GILState_Ensure/Release to synchronize with the
4515         python runtime.
4516         
4517 2005-06-28  Ray Strode  <rstrode@redhat.com>
4518
4519         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4520         babysitter helper process on last unref, bug #2813.
4521
4522 2005-06-27  Colin Walters  <walters@verbum.org>
4523
4524         * test/glib/test-dbus-glib.c: 
4525         * test/glib/test-service-glib.c:
4526         * test/glib/test-service-glib.xml:
4527         Test hash table signal emitting.
4528
4529         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4530         types to their fundamental basis types, since this is what
4531         marshallers operate on.  Also add an entry for VOID__BOXED.
4532         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4533
4534 2005-06-26  Havoc Pennington  <hp@redhat.com>
4535
4536         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4537         from Don Park
4538
4539 2005-06-26  Colin Walters  <walters@verbum.org>
4540
4541         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4542         (dbus_g_error_set): New public function from its ashes; used by
4543         both service-side method implementation and GLib bindings
4544         internals.
4545         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4546         (_dbus_glib_test): Add some tests.
4547
4548         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4549
4550         * test/glib/test-service-glib.c (my_object_throw_error): Use
4551         dbus_g_error_set.
4552
4553         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4554         errors thrown by dbus_g_error_set.
4555
4556         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4557
4558         * glib/dbus-gparser.c (validate_signature): Ditto.
4559
4560         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4561         (dbus_g_proxy_end_call_internal): Ditto.
4562
4563         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4564         converts DBUS_ERROR_x to DBUS_GERROR_x.
4565         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4566
4567         * doc/TODO: Remove error TODO.
4568
4569         * doc/dbus-tutorial.xml: Update with documentation about error
4570         handling.
4571
4572         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4573         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4574         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4575
4576 2005-06-22  Colin Walters  <walters@verbum.org>
4577         
4578         Patch from Ross Burton <ross@openedhand.com>
4579
4580         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4581
4582 2005-06-20  Colin Walters  <walters@verbum.org>
4583
4584         * configure.in: Add glib/examples.
4585
4586         * glib/Makefile.am: Add examples/
4587
4588         * glib/examples/.cvsignore
4589         * glib/examples/Makefile.am
4590         * glib/examples/example-client.c
4591         * glib/examples/example-service.c
4592         * glib/examples/example-service.xml
4593         * glib/examples/example-signal-emitter.c
4594         * glib/examples/example-signal-emitter.xml
4595         * glib/examples/example-signal-recipient.c:
4596         New files; GLib binding examples, ported from
4597         python/examples.
4598
4599 2005-06-20  Colin Walters  <walters@verbum.org>
4600
4601         * dbus/dbus-glib.h: 
4602         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4603         dbus_g_proxy_call.
4604
4605         * glib/dbus-binding-tool-glib.c: 
4606         * doc/dbus-tutorial.xml: 
4607         * test/glib/test-dbus-glib.c: Update for rename.
4608         
4609 2005-06-20  Colin Walters  <walters@verbum.org>
4610
4611         Patch suggested by Ross Burton <ross@openedhand.com>
4612
4613         * glib/dbus-gobject.c (export_signals): Free signal name.
4614         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4615         memory leak.  Add a bit of documentation.
4616         (dbus_g_method_return_error): Free context, and note we do
4617         so.
4618
4619 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4620
4621         * dbus/dbus-glib.h:
4622         * glib/dbus-gobject.c:
4623         * glib/dbus-gproxy.c:
4624         * glib/dbus-gvalue.c: Predeclare structs as 
4625         typedef struct _Something Something instead of 
4626         typedef struct Something Something, so we can 
4627         redeclare the prototypes. Other GNOME libraries 
4628         do this already.
4629
4630 2005-06-17  Colin Walters  <walters@verbum.org>
4631
4632         * tools/dbus-names-model.c (have_names_notify): Fix call
4633         to dbus_g_proxy_end_call.
4634         
4635 2005-06-17  Colin Walters  <walters@verbum.org>
4636
4637         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4638         spew warnings if we get malformed remote signals.
4639
4640         * glib/dbus-gobject.c (propsig_iterate): New function.
4641         (lookup_object_info): New function, extracted from
4642         lookup_object_and_method.
4643         (introspect_properties, introspect_signals): Delete; these
4644         are merged into write_interface.
4645         (write_interface): Write out signals and properties here;
4646         dump the org.gtk.object stuff and use the interface given
4647         in the introspection data blob.  Also fix up property XML.
4648         (lookup_values): New function.
4649         (introspect_interfaces): Gather a mapping from interface to a
4650         list of its methods, signals, and properties, then write out
4651         each interface.
4652         (lookup_object_and_method): Use lookup_object_info.
4653         (struct DBusGSignalClosure): Add interface.
4654         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4655         we can just use the constant data.
4656         (dbus_g_signal_closure_finalize): Don't free signal name.
4657         (signal_emitter_marshaller): Use interface from signal closure.
4658         (export_signals): Only export signals mentioned in introspection
4659         blob.
4660         (dbus_g_connection_register_g_object): Warn if we have no
4661         introspection data for an object.
4662         (funcsig_equal): Remove unused variable.
4663         (dbus_g_object_register_marshaller): Take varargs instead of
4664         list.
4665         (dbus_g_object_register_marshaller_array): New function,
4666         extracted from old dbus_g_object_register_marshaller.
4667
4668         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4669         signals and property data.
4670         (write_quoted_string): New function, extracted from generate_glue.
4671         (generate_glue): Write signals and properties to introspection
4672         blob.
4673
4674         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4675         exported_signals and exported_properties.
4676         (dbus_g_object_register_marshaller): Update prototype.
4677         (dbus_g_object_register_marshaller_array): Prototype.
4678         
4679         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4680
4681         * test/glib/test-service-glib.c: Add new test signals and method
4682         to emit them.
4683
4684         * test/glib/test-service-glib.xml: Add some test signals.
4685
4686         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4687         and my-object-marshal.h
4688         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4689         my-object-marshal.c.
4690         (my-object-marshal.c, my-object-marshal.h): Implement.
4691
4692         * test/glib/.cvsignore: Update.
4693
4694         * doc/TODO: Remove two GLib TODO items fixed by this
4695         patch.
4696
4697 2005-06-16  Colin Walters  <walters@verbum.org>
4698
4699         * doc/TODO: Update for GLib bindings.
4700         
4701 2005-06-16  Colin Walters  <walters@verbum.org>
4702
4703         * glib/dbus-binding-tool-glib.c:
4704         * glib/dbus-gobject.c:
4705         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4706         from Ross Burton, for his GLib bindings work.
4707
4708 2005-06-16  Colin Walters  <walters@verbum.org>
4709
4710         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4711         to iterate instead of walking to G_TYPE_INVALID.
4712
4713         Patch based on a patch from Ryan Gammon.
4714
4715 2005-06-16  Colin Walters  <walters@verbum.org>
4716
4717         * bus/bus.c (bus_context_new): Set parser to NULL
4718         after we unref it (Patch from Chris Boscolo, #2174).
4719         
4720 2005-06-16  Colin Walters  <walters@verbum.org>
4721
4722         * python/dbus_bindings.pyx.in: Import size_t,
4723         __int64_t, __uint64_t, and __signed.
4724
4725         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4726         Define cmsg struct, output it.
4727         (_dbus_read_credentials_unix_socket):
4728         Use cmsg struct.
4729         
4730         Patch from Joe Markus Clarke for FreeBSD support.
4731         
4732 2005-06-16  Colin Walters  <walters@verbum.org>
4733
4734         * tools/dbus-send.c (append_array): Use strtok.
4735         (append_dict): New function.
4736         (type_from_name): New function, extracted from main.
4737         (main): Handle sending dicts.
4738
4739         * tools/dbus-print-message.c (print_iter): Print dict
4740         entries.
4741         
4742 2005-06-16  Colin Walters  <walters@verbum.org>
4743
4744         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4745         values as the empty string (#2948).
4746         
4747 2005-06-16  Colin Walters  <walters@verbum.org>
4748
4749         * dbus/Makefile.am:
4750         * mono/doc/Makefile.am:
4751         * test/glib/Makefile.am:
4752
4753         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4754
4755 2005-06-16  Colin Walters  <walters@verbum.org>
4756
4757         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4758         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4759
4760         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4761         Increment pointer after swapping fixed array.  Add assertion
4762         for array length.
4763                 
4764 2005-06-15  Colin Walters  <walters@verbum.org>
4765
4766         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4767         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4768         
4769 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4770
4771         * NEWS: Update to 0.34
4772
4773 2005-06-15  David Zeuthen  <davidz@redhat.com>
4774
4775         * configure.in (LT_CURRENT): Revert back to 1 as the library
4776         hasn't changed and we've certainly not committed to protocol
4777         stability yet.  All this does is to break ABI. See commit note
4778         from hp@redhat.com 2005-05-05 for details.
4779         
4780 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4781
4782         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4783         (_dbus_connection_run_builtin_filters): New method
4784         (dbus_connection_dispatch): Run the builtin filters which in turn
4785         runs the peer filter which handles Ping messages.
4786
4787         * doc/TODO: 
4788          - Ping isn't handled: This patch fixes it
4789          
4790          - Add a test case for the Ping message: added TODO item
4791
4792 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4793
4794         * dbus/dbus-message.c:
4795         (dbus_message_has_path): New method
4796         (dbus_message_has_interface): New method
4797         (dbus_message_has_member): New method
4798
4799         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4800         New method
4801
4802         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4803         the keyring directory is private to the user
4804
4805         * doc/TODO:
4806          - The convenience functions in dbus-bus.h should perhaps have
4807          the signatures that they would have if they were autogenerated
4808          stubs. e.g. the acquire service function. We should also evaluate
4809          which of these functions to include, in light of the fact that
4810          GLib/Qt native stubs will probably also exist.: Punted
4811
4812          - add dbus_message_has_path(), maybe has_member/interface:
4813          fixed in this patch
4814
4815          - in dbus-keyring.c, enforce that the keyring dir is not
4816          world readable/writable: Fixed in this patch
4817
4818 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4819
4820         * dbus/dbus-marshal-validate.h: Added a new validation
4821         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4822         out of memory errors when validating signitures
4823
4824         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4825         in places where we previously used DBUS_VALID and a FALSE return 
4826         value to indicate OOM
4827         
4828         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4829         Use a stack to track the number of elements inside containers.  The 
4830         stack values are then used to validate that dict entries have only two
4831         elements within them.
4832         (validate_body_helper): check the reason for failure when validating
4833         varients
4834         
4835         * dbus/dbus-message.c (load_message): use 
4836         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4837         DBUS_VALID and a FALSE return value to indicate OOM
4838
4839         * doc/TODO: remove "- validate dict entry number of fields" as this
4840         patch fixes it
4841
4842 2005-06-14  David Zeuthen  <davidz@redhat.com>
4843
4844         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4845         watches (if applicable) and add new watches
4846
4847         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4848         (main): Setup SIGIO signal handler if using D_NOTIFY
4849
4850         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4851
4852         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4853         (merge_included): Also merge conf_dirs list
4854         (bus_config_parser_unref): Clear conf_dirs list
4855         (include_dir): Add directory to conf_dirs list
4856         (bus_config_parser_get_conf_dirs): New function
4857
4858         * bus/dir-watch.[ch]: New files
4859
4860         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4861
4862         * configure.in: Add checks for D_NOTIFY on Linux
4863
4864 2005-06-14  Colin Walters  <walters@verbum.org>
4865
4866         * glib/dbus-binding-tool-glib.c:
4867         * glib/dbus-gobject.c:
4868         * glib/dbus-gvalue.c: Fix indentation and brace style.
4869         
4870 2005-06-14  Ross Burton <ross@openedhand.com>.
4871
4872         * glib/dbus-glib.h: Make DBusGMethodInvocation
4873         a private structure.  Rearrange prototypes a bit.
4874         
4875         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4876         documentation for first_arg_type.
4877         
4878         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4879         here, add documentation.  Move dbus_g_method_return
4880         and dbus_g_method_return_error into public API
4881         section.
4882
4883 2005-06-14  Colin Walters  <walters@verbum.org>
4884
4885         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4886         Add missing return statements, noticed by Ross Burton.
4887         
4888 2005-06-13  Ross Burton <ross@openedhand.com>.
4889
4890         * glib/dbus-gobject.c: Handle errors on message
4891         demarshalling by sending error message back.
4892         * glib/dbus-gvalue.c: Initialize return variables.
4893
4894 2005-06-13  Colin Walters  <walters@verbum.org>
4895
4896         * glib/Makefile.am: Fix thinko in last patch.
4897
4898 2005-06-13  Colin Walters  <walters@verbum.org>
4899
4900         * glib/Makefile.am: Move dbus-gtype-specialized.c
4901         and dbus-gtype-specialized.h into a _HEADERS variable,
4902         install them.
4903
4904 2005-06-12  Colin Walters  <walters@verbum.org>
4905
4906         Async signals and various bugfixes and testing by
4907         Ross Burton <ross@openedhand.com>.
4908
4909         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4910         (dbus_gvalue_genmarshal_name_from_type)
4911         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4912         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4913         (dbus_g_value_types_init, dbus_gtype_from_signature)
4914         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4915         (dbus_gtypes_from_arg_signature): New function prototypes.
4916         (dbus_gvalue_demarshal): Take context and error arguments.
4917         (dbus_gvalue_demarshal_variant): New function.
4918         (dbus_gvalue_demarshal_message): New function.
4919         (dbus_gvalue_store): Delete.
4920
4921         * glib/dbus-gvalue.c:
4922
4923         File has been almost entirely rewritten; now we special-case
4924         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4925         hash tables correctly, etc.  Full support for recursive values
4926         is not yet complete.
4927
4928         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4929         argument of signal to G_TYPE_POINTER since we now pass a
4930         structure.
4931         (lookup_g_marshaller): Delete in favor of
4932         _dbus_gobject_lookup_marshaller.
4933         (marshal_dbus_message_to_g_marshaller): Use
4934         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4935         to handle remote signal callbacks.
4936         (dbus_g_proxy_new_from_proxy): New function; creates a new
4937         DBusGProxy by copying an existing one.
4938         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4939         (dbus_g_proxy_get_path): New functions.
4940         (dbus_g_proxy_marshal_args_to_message): New function;
4941         factored out of existing code.
4942         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4943         from a varargs array.
4944         (dbus_g_proxy_begin_call_internal): New function.
4945         (dbus_g_proxy_end_call_internal): New function.
4946         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4947         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4948         after collecting args into value array.
4949         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4950         invoke dbus_g_proxy_end_call_internal.
4951         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4952         end_call_internal.
4953         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4954         types.
4955         (array_free_all): New function.
4956         (dbus_g_proxy_add_signal): Take GTypes.
4957
4958         * glib/dbus-gobject.h:
4959         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4960         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4961         Prototype.
4962
4963         * glib/dbus-gobject.c: Add a global marshal_table hash which
4964         stores mappings from type signatures to marshallers.  Change lots
4965         of invocations of dbus_gtype_to_dbus_type to
4966         dbus_gtype_to_signature.
4967         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4968         (introspect_signals): Fix test for query.return_type.
4969         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4970         (invoke_object_method): Many changes.  Handle asynchronous
4971         invocations.  Convert arguments with
4972         dbus_gvalue_demarshal_message.  Handle errors.  Use
4973         DBusSignatureIter instead of strlen on args. Handle all arguments
4974         generically.  Special-case variants.
4975         (dbus_g_method_return, dbus_g_method_return_error): New function.
4976         (DBusGSignalClosure): New structure, closes over signal
4977         information.
4978         (dbus_g_signal_closure_new): New function.
4979         (dbus_g_signal_closure_finalize): New function.
4980         (signal_emitter_marshaller): New function; is special marshaller
4981         which emits signals on bus.
4982         (export_signals): New function; introspects object signals and
4983         connects to them.
4984         (dbus_g_object_type_install_info): Take GType instead of
4985         GObjectClass.
4986         (dbus_g_connection_register_g_object): Invoke export_signals.
4987         (dbus_g_connection_lookup_g_object): New function.
4988         (DBusGFuncSignature) New structure; used for mapping type
4989         signatures to marshallers.
4990         (funcsig_hash): New function; hashes DBusGFuncSignature.
4991         (funcsig_equal): New function; compares DBusGFuncSignature.
4992         (_dbus_gobject_lookup_marshaller): New function.
4993         (dbus_g_object_register_marshaller): New function; used to
4994         register a marshaller at runtime for a particular signature.
4995
4996         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4997
4998         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4999         which notes a server method implementation should be
5000         asynchronous.
5001
5002         * glib/dbus-binding-tool-glib.c
5003         (dbus_binding_tool_output_glib_server): Call
5004         dbus_g_value_types_init.
5005         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5006         variants specially.
5007         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5008         of a lookup function.
5009         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5010         (write_untyped_out_args): New method; write output arguments.
5011         (write_formal_declarations_for_direction): Function for
5012         writing prototypes.
5013         (write_formal_parameters_for_direction): Function for
5014         writing implementations.
5015         (write_typed_args_for_direction): Function for writing
5016         arguments prefixed with GTypes.
5017         (write_async_method_client): Write out async version
5018         of method.
5019
5020         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5021         (dbus_g_type_get_marshal_name): Move mapping from GType
5022         to marshal name into here.
5023         (dbus_g_type_get_c_name): Move into here.
5024         (compute_marshaller): Convert signature to type with
5025         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5026         (compute_marshaller_name): Ditto.
5027         (compute_marshaller): Handle async signal annotations.
5028         (gather_marshallers): Return if we don't have a known
5029         prefix.
5030         (generate_glue): Collect introspection blob here, and
5031         write all of the blob at the end.  This allows an object
5032         with multiple interfaces to work.
5033         Mark async methods in introspection blob.
5034
5035         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5036         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5037         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5038
5039         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5040         avoids people accidentally using DBUS_TYPE_* which should
5041         not be necessary anymore.
5042         Do include dbus-gtype-specialized.h, which are utilities
5043         for GLib container types.
5044         Add various #defines for types such as
5045         DBUS_TYPE_G_BOOLEAN_ARRAY.
5046         (DBusGValueIterator, DBusGValue): Define, not fully used
5047         yet.
5048         (dbus_g_value_get_g_type): Type for recursive value.
5049         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5050         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5051         (dbus_g_value_free): Prototypes.
5052         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5053         (dbus_g_proxy_set_interface): Prototype.
5054         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5055         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5056         types.
5057         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5058         Accessors.
5059         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5060         doing async invocations.
5061         (dbus_g_method_return, dbus_g_method_return_error):
5062         Prototypes.
5063         * doc/dbus-tutorial.xml: Update GLib section.
5064         
5065         * tools/dbus-viewer.c (load_child_nodes): Update
5066         for new invocation type of dbus_g_proxy_end_call.
5067         (load_from_service_thread_func): Ditto.
5068
5069         * tools/print-introspect.c (main): Ditto.
5070
5071         * tools/dbus-names-model.c (have_names_notify)
5072         (names_model_reload, names_model_set_connection)
5073         Use GTypes.
5074
5075         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5076         needed since Python bindings use GLib bindings.
5077
5078         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5079         Add --prefix argument.
5080
5081         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5082         unneeded --ignore-unsupported arg.
5083         
5084         * test/glib/test-service-glib.c: 
5085         * test/glib/test-service-glib.xml:
5086         * test/glib/test-dbus-glib.c: Add many more tests.
5087
5088 2005-06-06  David Zeuthen  <davidz@redhat.com>
5089
5090         * doc/TODO: Add item about need to remove deprecated functions.
5091
5092         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5093
5094         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5095         to repair the ABI which was broken with the last commit.
5096
5097 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5098
5099         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5100         (dbus_connection_disconnect): renamed to dbus_connection_close 
5101         for API symmetry with dbus_connection_open
5102         (_dbus_connection_open_internal): 
5103         s/dbus_connection_disconnect/dbus_connection_close
5104
5105         * dbus/dbus-bus.c (dbus_bus_get):
5106         s/dbus_connection_disconnect/dbus_connection_close
5107
5108         * bus/connection.c (bus_connections_unref, 
5109         bus_connections_setup_connection, bus_connections_expire_incomplete):
5110         s/dbus_connection_disconnect/dbus_connection_close
5111
5112         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5113         kill_client_connection_unchecked, check_hello_connection):
5114         s/dbus_connection_disconnect/dbus_connection_close
5115
5116         * bus/bus.c (new_connection_callback):
5117         s/dbus_connection_disconnect/dbus_connection_close
5118
5119         * tools/dbus-send.c (main):
5120         s/dbus_connection_disconnect/dbus_connection_close
5121
5122         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5123         s/dbus_connection_disconnect/dbus_connection_close
5124         
5125         * test/test-service.c (path_message_func, filter_func):
5126         s/dbus_connection_disconnect/dbus_connection_close
5127         
5128         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5129         
5130 2005-05-25  Colin Walters  <walters@verbum.org>
5131
5132         * dbus/dbus-protocol.h: Move various bus service #defines such
5133           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5134           dbus/dbus-shared.h.
5135         * dbus/dbus-shared.h: Various defines moved here.
5136         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5137
5138 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5139
5140         * python/__init__.py: Python bindings deserve a minor version
5141         update.  Upped to (0, 40, 2)
5142
5143 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5144
5145         * python/decorators.py: add explicitly_pass_message decorator
5146         for passing in the dbus message as keyword for edge case signal
5147         handling
5148
5149         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5150         to conform with what dbus expects for match rules
5151         (SignalMatchRule.execute): add the dbus message as a keyword
5152         if the signal handler has requested it
5153
5154         * python/examples/example/signal-recipient.py: added some more
5155         examples on how to hook up to signals
5156
5157 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5158
5159         * python/decorators.py: import dbus_bindings
5160
5161         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5162         SignalMatchNode): new classes that implement wildcard signal
5163         callback matching using a tree lookup. Heavily modified from a
5164         patch sent by Celso Pinto (fd.o bug #3241)
5165
5166         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5167         use new match classes to handle signals.
5168
5169 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5170         
5171         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5172
5173 2005-05-18  Havoc Pennington  <hp@redhat.com>
5174
5175         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5176         gettext. Not really worth requiring yet perhaps, but any
5177         production quality 1.0 would require it so we should go ahead and
5178         get things set up. We do have a couple token calls to
5179         bindtextdomain in the code already.
5180
5181 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5182
5183         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5184         when using recursive g_main_loops
5185
5186         * python/_dbus.py (class Bus): add the ProxyObjectClass
5187         alias for ProxyObject to make it easier for the Twisted 
5188         networking framework to integrate dbus.
5189
5190         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5191         alias for ProxyMethod to make it easier for the Twisted 
5192         networking framework to integrate dbus. 
5193
5194 2005-05-11  Ross Burton  <ross@openedhand.com>
5195
5196         * glib/dbus-glib-tool.c: Add --prefix argument.
5197         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5198         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5199         Add prefix argument.
5200         (generate_glue): Pass prefix argument down.
5201         (dbus_binding_tool_output_glib_server): Pass prefix to
5202         glib-genmarshal.
5203         
5204 2005-05-11  Colin Walters  <walters@verbum.org>
5205
5206         * tools/dbus-send.c (append_array): New function.
5207         (append_arg): Broken out from main.
5208         (main): Add cheesy hack to send arrays and variants.
5209         (usage): Update.
5210         * tools/dbus-print-message.c (print_iter): Broken out
5211         from main.
5212
5213 2005-05-11  Colin Walters  <walters@verbum.org>
5214
5215         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5216         New function, returns signature string for signature iter.
5217         * dbus/dbus-signature.h: Prototype it.
5218         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5219         New function, returns signature string for message iter.
5220         (dbus_message_iter_get_array_len): New function, returns
5221         length of array.
5222         (dbus_message_iter_get_fixed_array): Fix assertion; this
5223         function should be used when the iter is pointing to the
5224         contents of an array
5225         * dbus/dbus-message.h: Prototypes.
5226         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5227         New function; returns length of an array.
5228         * dbus/dbus-marshal-recursive.h: Prototype it.
5229         
5230 2005-05-11  Colin Walters  <walters@verbum.org>
5231
5232         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5233         compilation error.
5234         
5235 2005-05-08  Havoc Pennington  <hp@redhat.com>
5236
5237         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5238         daemon's pid, not the parent's pid, to the file descriptor.
5239         Reported by Taj Morton.
5240
5241 2005-05-05  Havoc Pennington  <hp@redhat.com>
5242
5243         * configure.in (LT_*): add notes on how the libtool versioning
5244         works to save thinking. Increment soname to indicate protocol
5245         breakage (though really the library interface hasn't changed I
5246         guess)
5247
5248         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5249         verify the GUID received from server matches what we were
5250         expecting, if we had an expectation
5251
5252         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5253         (_dbus_auth_get_guid_from_server): new function
5254         (send_begin): parse the OK args
5255
5256         * doc/dbus-specification.xml: add GUID to the auth protocol
5257
5258 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5259
5260         * Fix my name in previous changelog ;)
5261
5262         * python/proxies.py (ProxyObject.__getattr__): add further patch
5263         from Anthony Baxter to throw an AttributeError when python 
5264         __special__ functions are called instead of marshling them over 
5265         the bus (Bug#1685 comment 3).
5266
5267 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5268
5269         * python/Makefile.am: changed to use pyexecdir for the binding
5270         shared libraries (Bug#2494)
5271
5272         * python/exceptions.py: bring exceptions over from the bindings
5273         so they can be used in applications (Bug#2036)
5274         Make all exceptions derive from DBusException
5275
5276         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5277         of classes so that print obj doesn't throw an exception (Bug #1685)
5278
5279 2005-05-03  Ross Burton  <ross@openedhand.com>
5280
5281         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5282         Return if we get an error during registration.  Set up a
5283         weak reference on object to unregister if object is destroyed.
5284         (unregister_gobject): New function.
5285         
5286 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5287
5288         * python/dbus_bindings.pyx.in: 
5289         - added new type classes for hinting to the marashaler what type 
5290         to send over the wire
5291         - added int16 and uint16 marshalers
5292         - Fixed a bug in the type constants that caused int32 to go out
5293         as uint16 over the wire
5294         * python/dbus.py: split up into different files and renamed _dbus.py
5295         * python/__init__.py, python/_util.py, python/decorators.py, 
5296         python/exceptions.py, python/proxies.py, python/services.py,
5297         python/types.py: new files split off from dbus.py
5298         * python/Makefile.am: Add new files, remove dbus.py and 
5299         install all python files to <python module dir>/dbus
5300         * python/examples/*: Added #!/usr/bin/env python to the top of
5301         every example.  Patch provided by Tatavarty Kalyan
5302
5303 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5304
5305         * NEWS: Update to 0.33
5306
5307 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5308
5309         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5310         method for doing async calls
5311         (_pending_call_notification): New C function for handling pendning call
5312         callbacks
5313         (set_notify): New method for setting pending call notification
5314         
5315         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5316         Async capabilities added to remote method calls
5317         (Sender): class removed
5318         (RemoteService): class removed
5319         (ObjectTree): class removed for now
5320         (RemoteObject): Renamed to ProxyObject
5321         (RemoteMethod): Renamed to ProxyMethod
5322         (method): Decorator added for decorating python methods as dbus methods
5323         (signal): Decorator added for decorating python methods as signal emitters
5324         (ObjectType): Metaclass added for generating introspection data and the
5325         method callback vtable
5326         (Interface): Wrapper class added to wrap objects in a dbus interface
5327         (Object): Uses ObjectType as its metaclass and exports Introspect
5328         of the org.freedesktop.DBus.Introspectable interface
5329         (ValidationException, UnknownMethodException): new exceptions
5330
5331         * python/examples/*: Modified to fit with the new bindings
5332
5333 2005-04-23  Havoc Pennington  <hp@redhat.com>
5334
5335         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5336         reported by Tony Houghton
5337
5338         * test/test-service.c (main): test
5339         dbus_connection_get_object_path_data()
5340
5341         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5342         the exact_match
5343         (_dbus_object_tree_get_user_data_unlocked): new function used by
5344         dbus_connection_get_object_path_data()
5345         (do_register): add assertion test for get_user_data_unlocked
5346         (object_tree_test_iteration): more tests
5347
5348         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5349         new function from Dan Reed to let you get the user data from 
5350         dbus_connection_register_object_path()
5351
5352 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5353
5354         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5355         in numerous places that did not account for the NULL terminator
5356         (signature_from_seed): changed the manual string copy loop to 
5357         just use strcpy instead
5358         make check should now pass
5359
5360 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5361
5362         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5363         so that it allows messages that are not signals to pass in 
5364         NULL as the interface.
5365
5366 2005-04-18  David Zeuthen  <davidz@redhat.com>
5367
5368         * glib/dbus-gmain.c (io_handler_destroy_source): 
5369         (timeout_handler_destroy_source, connection_setup_free): 
5370         Also unref the source to avoid memory leaks.
5371
5372 2005-04-13  David Zeuthen  <davidz@redhat.com>
5373
5374         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5375         more reasonable, yet still totally arbitrary, value :-). 
5376
5377 2005-04-13  David Zeuthen  <davidz@redhat.com>
5378
5379         * doc/TODO: Added an "important for 1.0" item about selinux
5380         allow/deny messages
5381
5382 2005-04-13  David Zeuthen  <davidz@redhat.com>
5383
5384         * bus/selinux.c: Add c-file-style to top of file
5385         (log_audit_callback): Don't free the data here anymore
5386         (bus_selinux_check): Don't take spid and tpid since appending
5387         that to auxdata may OOM.
5388         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5389         to the caller if we are OOM by taking an error object.
5390         (bus_selinux_allows_send): -do-
5391
5392         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5393         and bus_selinux_allows_send
5394
5395         * bus/bus.c (bus_context_check_security_policy): Pass error and
5396         pass on OOM thrown by bus_selinux_allows_send()
5397
5398         * bus/services.c (bus_registry_acquire_service): Pass error and
5399         pass on OOM thrown by bus_selinux_allows_acquire_service()
5400
5401 2005-04-13  Havoc Pennington  <hp@redhat.com>
5402
5403         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5404         message at a time to avoid monopolizing the main loop, bug 
5405         #2953 from Benjamin Otte
5406
5407 2005-04-09  Havoc Pennington  <hp@redhat.com>
5408
5409         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5410         possible overlap, fix from Daniel Reed
5411         (fixup_alignment): fix signedness warnings
5412         (_dbus_string_append_unichar): ditto
5413
5414 2005-04-09  Havoc Pennington  <hp@redhat.com>
5415
5416         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5417
5418         * glib/dbus-glib-tool.c (main): fix warning
5419
5420         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5421
5422         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5423         add a new function that can be used in simple applications that
5424         don't have a main loop and are willing to block
5425
5426 2005-04-05  David Zeuthen  <davidz@redhat.com>
5427
5428         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5429
5430         * glib/dbus-gmain.c:
5431         (io_handler_destroy_source): Remove from list of IO handlers
5432         of the ConnectionSetup object
5433         (timeout_handler_destroy_source): -do- for timeout handlers
5434         (io_handler_source_finalized): Don't remove from list since
5435         we now do that in io_handler_destroy_source(). Renamed from
5436         io_handler_source_destroyed
5437         (timeout_handler_source_destroyed): -do- for timeout handlers
5438         (connection_setup_free): It is now safe to iterate over all
5439         IO and timeout handlers as the _destroy_source removes them
5440         from the list synchronously
5441
5442 2005-03-30  Havoc Pennington  <hp@redhat.com>
5443
5444         * configure.in: change check to gtk 2.4
5445
5446         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5447         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5448         to 2.4
5449
5450 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5451
5452         * News: Update 0.32
5453
5454         * HACKING: Fixed realease instructions.  configure.in should be updated to
5455           the next release by the person who made the last release.
5456
5457 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5458
5459         * python/lvalue_cast_post_process.py - removed.  Patch has been
5460           submitted to Pyrex maintainers that fixes gcc4.0 errors
5461
5462         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5463
5464 2005-03-24  Daniel Reed  <n@ml.org>
5465
5466         * tools/Makefile.am: Make print-introspect and
5467         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5468
5469 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5470
5471         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5472
5473         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5474           had in Red Hat packages for a while but for some reason never 
5475           got merged upstream
5476           (_dbus_is_a_number): New checks if a string
5477           can be converted to a number and does the conversion if it can
5478           (_dbus_user_database_lookup): Add check to see if the given username
5479           is a udi.  This allows udi's to be used instead of usernames in the
5480           config file.
5481           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5482           is a gdi.  This allows gdi's to be used instead of groupnames in the
5483           config file.
5484
5485 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5486
5487         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5488           code so that it compiles with gcc4.0
5489
5490         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5491           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5492           results back to dbus_binding.c
5493
5494 2005-03-20  Colin Walters  <walters@verbum.org>
5495
5496         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5497
5498         * configure.in: Require GTK+ 2.6.
5499         
5500 2005-03-20  Colin Walters  <walters@verbum.org>
5501
5502         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5503
5504 2005-03-17  Tom Parker  <palfrey@tevp.net>
5505
5506         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5507         print DBUS_UID_UNSET; instead print passed username.  Also
5508         be sure to actually use gid looked up in cache.
5509         
5510         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5511         for DBUS_GID_UNSET and groupname.
5512
5513 2005-03-17  Colin Walters  <walters@verbum.org>
5514
5515         * bus/print-introspect.c: Move to tools/.
5516         * bus/run-with-tmp-session-bus.sh: Ditto.
5517         
5518         * glib/Makefile.am (dbus-glib-bindings.h): Move
5519         generation to tools/Makefile.am.
5520
5521         * test/glib/run-test.sh: Update to handle move
5522         of run-with-tmp-session-bus.sh.
5523
5524         * test/glib/test-service-glib.c: Update to handle
5525         move of dbus-glib-bindings.h.
5526
5527         * tools/print-introspect.c: Moved here
5528         from bus/, and ported to GLib bindings.
5529
5530         * tools/run-with-tmp-session-bus.sh: Moved here
5531         from bus/.
5532
5533         * tools/Makefile.am: Generate dbus-glib-bindings.h
5534         and dbus-bus-introspect.xml here.
5535
5536         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5537         Update.
5538
5539 2005-03-17  Colin Walters  <walters@verbum.org>
5540
5541         * bus/driver.c (write_args_for_direction): Use
5542         _dbus_string_get_const_data to retrieve string;
5543         _dbus_string_get_const_data_len doesn't actually return
5544         a NULL-terminated substring.
5545
5546         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5547         (main): Change to use org_freedesktop_DBus_request_name
5548         instead of using g_proxy_begin_call/end_call.
5549
5550 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5551
5552         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5553         generating the finalizer.  Fixes from Ben Maurer.
5554
5555 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5556
5557         * mono/BusDriver.cs: Update method names: ListServices
5558         becomes ListNames; GetOwner becomes GetNameOwner.
5559
5560         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5561         onto the eval stack when removing the delegate.
5562
5563 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5564
5565         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5566         LT_CURRENT.  Set it to the autoconf variable.
5567                                                                                 
5568         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5569         classes that disconnects the signal handler delegate from the
5570         service object.  Fixes a big leak of proxy objects on the
5571         client side of things.  Patch from Ben Maurer
5572         <bmaurer@ximian.com>
5573
5574 2005-03-12  Colin Walters  <walters@verbum.org>
5575
5576         * bus/driver.c (write_args_for_direction): New function,
5577         parses a type signature into arguments and outputs to
5578         XML.
5579         (bus_driver_handle_introspect): Use it instead of
5580         hardcoding XML for certain signatures.
5581         
5582         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5583         dependency on dbus-daemon.
5584
5585         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5586         argument, pass it to dbus_binding_tool_output_glib_client.
5587
5588         * glib/dbus-binding-tool-glib.c
5589         (generate_client_glue): Protect against multiple inclusion.
5590         (dbus_binding_tool_output_glib_client): Add
5591         G_BEGIN_DECLS/G_END_DECLS.
5592
5593         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5594         Change to just take iface prefix directly.
5595         (write_formal_parameters): Clarify error message.
5596         (check_supported_parameters): New function; checks to see type
5597         signatures of method parameters are supported.
5598         (generate_client_glue): Handle ignore_unsupported flag.
5599         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5600         parameter.
5601
5602         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5603         --ignore-unsupported by default until glib bindings
5604         support arrays.
5605
5606 2005-03-11  Colin Walters  <walters@verbum.org>
5607
5608         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5609         install it.
5610
5611         * bus/print-introspect.c: New file; prints introspection
5612         data for a given name and object path.
5613
5614         * bus/run-with-tmp-session-bus.sh: New file, refactored
5615         from test/glib/run-test.sh.  Creates a temporary session
5616         bus and runs another program.
5617
5618         * test/glib/run-test.sh: Refactor to invoke
5619         run-with-tmp-session-bus.sh.
5620
5621         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5622         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5623         macros instead of hardcoding.
5624
5625         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5626
5627 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5628
5629         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5630         this unref; it doesn't match up evenly in some codepaths.
5631         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5632         this evenly matches with the ref near the top of this function.
5633
5634 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5635
5636         * dbus/dbus-object-tree.c
5637         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5638         and we try to unregister a path that's not registered, still go
5639         through the process of unlocking and don't just return.
5640
5641 2005-03-09  Colin Walters  <walters@verbum.org>
5642
5643         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5644         to this are generated for client-side wrappers.  Invokes a
5645         D-BUS method and returns reply values.  
5646
5647         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5648         function; writes signature string for argument direction.
5649         (write_args_for_direction): Change to pass input values directly
5650         instead of via address, and fix indentation.
5651         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5652         make generated wrappers inlineable.
5653
5654         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5655         note about using dbus_type_is_fixed.
5656
5657         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5658         dbus/dbus-signature.c as dbus_type_is_fixed.
5659
5660         All callers updated.
5661
5662         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5663         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5664
5665         * dbus/dbus-signature.h: Prototype.
5666
5667         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5668         error printf code.
5669
5670         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5671         appropriate instead of just freeing it.
5672         (main): Free returned strings using g_free.
5673
5674         * test/glib/Makefile.am (test-service-glib-glue.h)
5675         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5676
5677         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5678         simply maps a simple D-BUS type to GType.
5679         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5680         GType.
5681         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5682         initialize the value with it.
5683         (dbus_gvalue_binding_type_from_type): Unused, delete.
5684         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5685         various types instead of unmarshalling to value data directly.
5686         Remove can_convert boolean.
5687         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5688         returning directly instead of using can_convert boolean.
5689         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5690         Stores a GValue in a pointer to a value of its corresponding C
5691         type.
5692
5693         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5694         add dbus_gvalue_store.
5695
5696 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5697
5698         Fix a bunch of lifecycle and memory management problems
5699         in the mono bindings.
5700
5701         * mono/Arguments.cs (Arguments): Implement IDisposable
5702
5703         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5704         strictly a static class.
5705
5706         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5707         delegates into this file.
5708         (Connection): Implement IDisposable.
5709         (Dispose): Disconnect the connection and set the raw connection
5710         pointer to IntPtr.Zero.
5711         (~Connection): Call Dispose().
5712         (RegisterObjectPath): Added.  Manages the registration of object
5713         paths so we can cleanly disconnect them at dispose/finalize time.
5714         (UnregisterObjectPath): Ditto.
5715         (set_RawConnection): Unregister all of the object paths when
5716         changing the underlying DBusConnection.  Add them back onto the
5717         new connection, if any.
5718
5719         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5720         more unmanaged resources anymore, so it's not necessary.  Move all
5721         the DBusObjectPathVTable stuff out of here.
5722         (Handler): Save references to our delegates so that they don't get
5723         finalized.  Call Connection.RegisterObjectPath() instead of
5724         dbus_connection_register_object_path() directly.
5725         (Message_Called): Dispose the message after we're finished with
5726         it.
5727
5728         * mono/Message.cs (Message): Implement IDisposable.
5729         (Dispose): Dispose the Arguments, and set the RawMessage to
5730         IntPtr.Zero.
5731         (SendWithReplyAndBlock): We own the ref to the reply that comes
5732         back from dbus_connection_send_with_reply_and_block() so add a
5733         comment about that and unref it after we've constructed a managed
5734         MethodReturn class around it.  Fixes a big, big leak.
5735
5736         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5737         method.
5738         (BuildSignalHandler): After we've sent the Signal message, dispose
5739         of it.
5740         (BuildMethod): Dispose of the method call and reply messages after
5741         we've sent the message and extracted the data we want from the
5742         reply.
5743
5744         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5745         anymore.
5746         (Service_FilterCalled): Dispose of the message after we're
5747         finished with it.
5748
5749 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5750
5751         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5752         After we attach our pending call to the connection, unref
5753         it.  Fixes a leak.
5754  
5755         * mono/Connection.cs (set_RawConnection): Disconnect our
5756         filter and match callbacks from the old connection and
5757         reconnect them to the new connection, if any.
5758
5759         * mono/DBusType/Array.cs: "Code" is a static member, so
5760         don't use "this" to refer to it.  Fix for stricter checking
5761         in Mono 1.1.4.
5762  
5763         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5764         object path that we pass into unmanaged code.
5765  
5766         * mono/DBusType/String.cs (Append): Don't leak the string
5767         that we pass into unmanged code.
5768
5769 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5770         * NEWS: Update for 0.31
5771
5772         * configure.in: Release 0.31
5773         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5774
5775         * qt/Makefile.am: fixed build
5776
5777         * dbus/Makefile.am: soname bump for libdbus
5778
5779         * glib/Makefile.am: soname bump for libdbus-glib
5780
5781 2005-03-05  Havoc Pennington  <hp@redhat.com>
5782
5783         * dbus/dbus-sysdeps.c:
5784         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5785         value
5786         (_dbus_generate_random_bytes_buffer): fix return value
5787
5788         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5789         checks actually work, from Tom Parker <fdo@tevp.net>
5790
5791 2005-03-01  Colin Walters  <walters@verbum.org>
5792
5793         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5794         functions copied from dbus-glib-tool.c.
5795         (main): Convert lots of error code to use them.
5796         Also add some testing for introspection bits.
5797
5798 2005-03-01  Colin Walters  <walters@verbum.org>
5799         
5800         * doc/TODO: Remove introspection signature TODO.
5801
5802 2005-02-27  Colin Walters  <walters@verbum.org>
5803
5804         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5805         Change return value to const char * instead of int so we can do
5806         full signatures.
5807         (struct PropertyInfo, struct ArgInfo): Store char *.
5808         (property_info_new, arg_info_new): Update parameters, strdup.
5809         (property_info_unref, arg_info_unref): Free.
5810
5811         * glib/dbus-gidl.h: Update prototypes.
5812
5813         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5814         (validate_signature): New function, just validates signature and
5815         sets GError.
5816         (parse_property, parse_arg): Invoke validate_signature.  Store
5817         signature instead of just type code.
5818
5819         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5820         function to return a primary type for a signature, dropping
5821         information about types in container types.
5822         (dbus_gvalue_genmarshal_name_from_type)
5823         (dbus_gvalue_binding_type_from_type)
5824         (dbus_gvalue_ctype_from_type): Update to take full signature
5825          instead of type code.
5826         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5827
5828         * glib/dbus-gvalue.h: Update prototypes for above.
5829
5830         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5831         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5832         (introspect_properties, introspect_signals, write_interface):
5833         Update to handle signatures, and remove usage of
5834         _dbus_gutils_type_to_string.
5835         (handle_introspect): Print out type codes instead of e.g. "string"
5836         in hardcoded introspection XML; also use x_AS_STRING constants
5837         instead of hardcoding in string.
5838
5839         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5840         to string.  Remove usage of _dbus_gutils_type_to_string.
5841
5842         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5843
5844         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5845         deletion.
5846         
5847         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5848         (compute_marshaller_name, generate_glue): Handle signature change
5849         to string.
5850         (write_formal_parameters, write_args_for_direction): Ditto, and
5851         remove FIXME.
5852
5853         * tools/dbus-tree-view.c (type_to_string): Delete.
5854         (info_set_func_text): Update to print full signatures.
5855
5856         * test/glib/test-service-glib.xml: Change types to new
5857         introspection format.
5858
5859 2005-02-26  Havoc Pennington  <hp@redhat.com>
5860
5861         * doc/TODO: remove the "guid" item
5862
5863         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5864         (with_bus_thread_func): use open_private
5865
5866         * dbus/dbus-connection.c (dbus_connection_open_private): new
5867         function that works like the old dbus_connection_open()
5868         (dbus_connection_open): now returns an existing connection if
5869         possible
5870
5871         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5872         through the GUID to the transport
5873
5874         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5875         GUID in hex-encoded form.
5876
5877         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5878         pass GUID argument in to the transport
5879
5880         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5881         guid argument
5882
5883         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5884
5885         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5886
5887 2005-02-25  Havoc Pennington  <hp@redhat.com>
5888
5889         * doc/dbus-specification.xml: document the GUID thing
5890
5891         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5892         globally unique ID for the server, and put a "guid=hexencoded"
5893         field in the address
5894
5895         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5896
5897         * dbus/dbus-message.c: ditto
5898
5899         * dbus/dbus-dataslot.c: ditto
5900
5901         * dbus/dbus-list.c: ditto
5902
5903         * dbus/dbus-internals.h: wait, just include
5904         dbus-threads-internal.h here
5905         
5906         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5907         use in main library
5908
5909         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5910
5911 2005-02-24  Colin Walters  <walters@verbum.org>
5912
5913         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5914
5915 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5916
5917         * glib/Makefile.am: added dbus-gobject.h to sources list
5918         so distcheck doesn't fail
5919         
5920 2005-02-24  Havoc Pennington  <hp@redhat.com>
5921
5922         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5923         you must disconnect before unref, since locking and other things
5924         are screwed up otherwise. Fix assorted other locking stuff.
5925
5926         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5927         fix compilation
5928
5929         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5930         into a private header and don't export from the library
5931
5932         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5933
5934 2005-02-24  Colin Walters  <walters@verbum.org>
5935         
5936         * dbus/dbus-signature.c: New file; implements various functions
5937         related to type signatures.  Includes an interator for parsing,
5938         validation functions.
5939         (dbus_type_is_basic): Moved here from
5940         dbus-marshal-basic.c:_dbus_type_is_basic.
5941         (dbus_type_is_container): Moved here from
5942         dbus-marshal-basic.c:_dbus_type_is_container.
5943
5944         All callers of _dbus_type_is_container and _dbus_type_is_basic
5945         updated, and include dbus-signature.h.
5946
5947         * dbus/dbus-signature.h: New file; prototypes for the above.
5948
5949         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5950         dbus-signature.h.
5951
5952         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5953         function factored out of _dbus_first_type_in_signature.
5954         (_dbus_first_type_in_signature_c_str): New function; returns first
5955         type code for a type signature character.
5956
5957         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5958         handle function moves.
5959
5960         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5961
5962         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5963         function; skips to next complete type in type signature.
5964         Implemented using previous skip_one_complete_type.  Now
5965         skip_one_complete_type just delegates to
5966         _dbus_type_signature_next.
5967
5968         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5969         to dbus-signature.c
5970         (_dbus_type_is_container): Ditto.
5971
5972         * doc/dbus-specification.xml: Update introspection sample to
5973         use real type signatures.
5974
5975         * dbus/dbus-test.h: Prototype signature test.
5976
5977         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5978         signature tests.
5979
5980         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5981
5982 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5983
5984         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5985         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5986
5987 2005-02-21  Colin Walters  <walters@verbum.org>
5988
5989         * dbus/dbus-test-main.c (main): Take optional specific test
5990         argument.
5991
5992         * dbus/dbus-test.c (run_test): New function, runs a test function
5993         with no data directory.
5994         (run_data_test): Like above, but takes data directory.
5995         (dbus_internal_do_not_use_run_tests): Take
5996         specific test argument.  Replace lots of cut n' paste code
5997         with run_test and run_data_test.
5998
5999         * dbus/dbus-test.h: Update prototype for
6000         dbus_internal_do_not_use_run_tests.
6001
6002 2005-02-20  Havoc Pennington  <hp@redhat.com>
6003
6004         Fix bugs reported by Daniel P. Berrange
6005         
6006         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6007         (protected_change_watch): new function
6008         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6009         (_dbus_server_add_watch): change to work like the
6010         dbus-connection.c equivalents; like those, probably kind of
6011         busted, but should at least mostly work for now
6012         (dbus_server_disconnect): drop the lock if we were already
6013         disconnected, patch from Daniel P. Berrange
6014
6015         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6016         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6017         same stuff
6018
6019         * doc/TODO: todo about unscrewing this mess
6020
6021 2005-02-19  Colin Walters  <walters@verbum.org>
6022
6023         * glib/dbus-binding-tool-glib.c
6024         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6025
6026         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6027         as errno.h and sys/stat.h.
6028         (lose): New function, prints error with
6029         newline and exits.
6030         (lose_gerror): Similar, but takes GError for message.
6031         (main): Add --output argument to specify output file to write to,
6032         instead of always printing to stdout.  In this mode, determine
6033         timestamps on source files to see whether any are newer than the
6034         target file.  If not, exit.  Also convert a number of error
6035         messages to use lose (since it's shorter), and switch to using
6036         g_io_channel_shutdown.
6037
6038 2005-02-19  Havoc Pennington  <hp@redhat.com>
6039
6040         * glib/dbus-gobject.c
6041         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6042
6043         * glib/dbus-glib.c: fix doxygen warnings
6044
6045         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6046         is found on an <arg>
6047
6048 2005-02-17  Colin Walters  <walters@verbum.org>
6049
6050         * glib/dbus-gobject.h: Don't export
6051         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6052         
6053         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6054         (invoke_object_method): Handle it.
6055
6056         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6057         Handle rename.
6058         
6059 2005-02-17  Colin Walters  <walters@verbum.org>
6060
6061         * bus/.cvsignore, doc/.cvsignore
6062         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6063         Update.
6064
6065 2005-02-17  Colin Walters  <walters@verbum.org>
6066         
6067         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6068         Rename to DBUS_SERVICE_DBUS.
6069         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6070         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6071         Change the value from "org.freedesktop.Local"
6072         to "org.freedesktop.DBus.Local".
6073         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6074         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6075         DBUS_INTERFACE_INTROSPECTABLE.
6076         Change the value from "org.freedesktop.Introspectable"
6077         to "org.freedesktop.DBus.Introspectable".
6078         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6079         DBUS_INTERFACE_PROPERTIES.
6080         Change the value from "org.freedesktop.Properties"
6081         to "org.freedesktop.DBus.Properties".
6082         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6083         DBUS_INTERFACE_PEER.
6084         Change the value from "org.freedesktop.Peer"
6085         to "org.freedesktop.DBus.Peer".
6086         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6087         DBUS_INTERFACE_LOCAL.
6088         Change the value from "org.freedesktop.Local"
6089         to "org.freedesktop.DBus.Local".
6090
6091         All other users of those constants have been changed.
6092
6093         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6094
6095         * glib/dbus-gobject.c (handle_introspect): Use constants.
6096
6097         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6098
6099 2005-02-17  Colin Walters  <walters@verbum.org>
6100
6101         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6102         (parse_node, parse_interface, parse_method, parse_signal)
6103         (parse_property, parse_annotation): Lose if we're currently in an
6104         annotation.
6105         (parse_annotation): New function.
6106         (parser_start_element, parser_end_element): Handle annotation.
6107         (parse_method, parse_interface): Remove support for c_name attribute,
6108         switch to annotations.
6109
6110         * glib/dbus-gidl.h (interface_info_get_binding_names)
6111         (method_info_get_binding_names)
6112         (interface_info_get_binding_name, method_info_get_binding_name)
6113         (interface_info_set_binding_name, method_info_set_binding_name):
6114         Remove.
6115         (interface_info_get_annotations, method_info_get_annotations)
6116         (interface_info_get_annotation, method_info_get_annotation)
6117         (interface_info_add_annotation, method_info_add_annotation):
6118         Prototype.
6119
6120         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6121         for "bindings".
6122         (struct MethodInfo): Ditto.
6123         Straightfoward conversion of binding methods into annotation methods
6124         as prototyped.
6125
6126         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6127
6128         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6129
6130         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6131         Use new annotation API.
6132
6133         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6134         annotation element.
6135         
6136         * doc/dbus-specification.xml: Discuss introspection annotations,
6137         include list of well-known annotations.
6138
6139         * test/glib/test-service-glib.xml: Make validate against new DTD.
6140
6141 2005-02-17  Colin Walters  <walters@verbum.org>
6142
6143         This patch is based on initial work from
6144         Paul Kuliniewicz <kuliniew@purdue.edu>.
6145
6146         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6147         initialization of GValue from dbus type to here.
6148         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6149         for the "glib-genmarshal" program from a DBus type.
6150         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6151         into the C name for it we use in the glib bindings.
6152         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6153         glib C type (not GValue).
6154         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6155
6156         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6157         from dbus-gobject.c.
6158
6159         * glib/dbus-gutils.h: Prototype it.
6160
6161         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6162         (marshal_dbus_message_to_g_marshaller): Use new shared function
6163         dbus_glib_marshal_dbus_message_to_gvalue_array.
6164
6165         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6166         Will be changed once we have annotations.
6167
6168         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6169         GStaticRWLock.  Callers updated.
6170         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6171         (string_table_next): New function for iterating over zero-terminated
6172         string value array.
6173         (string_table_lookup): New function; retrieves specific entry in
6174         array.
6175         (get_method_data): New function; look up method data in object data chunk.
6176         (object_error_domain_prefix_from_object_info)
6177         (object_error_code_from_object_info): New functions, but not implemented yet.
6178         (method_interface_from_object_info): New function; retrieve interface name.
6179         (method_name_from_object_info): New function; retrieve method name.
6180         (method_arg_info_from_object_info): New function; retrieve argument data.
6181         (arg_iterate): New function; iterates over serialized argument data.
6182         (method_dir_signature_from_object_info): New function; returns a
6183         GString holding type signature for arguments for just one
6184         direction (input or output).
6185         (method_input_signature_from_object_info)
6186         (method_output_signature_from_object_info): New functions.
6187         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6188         converts dbus message arguments into a GValue array.  Used for both
6189         signal handling and method invocation.
6190         (struct DBusGlibWriteIterfaceData): New utility structure.
6191         (write_interface): New function; generate introspection XML for
6192         an interface.
6193         (introspect_interfaces): New function; gathers all interface->methods,
6194         generates introspection XML for them.
6195         (handle_introspect): Invoke introspect_interfaces.
6196         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6197         (lookup_object_and_method): New function; examines an incoming message
6198         and attempts to match it up (via interface, method name, and argument
6199         signature) with a known object and method.
6200         (gerror_domaincode_to_dbus_error_name): New function; converts a
6201         GError domain and code into a DBus error name.  Needs GError data
6202         added to object introspection to work well.
6203         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6204         GError.
6205         (invoke_object_method): New function to invoke an object method
6206         looked up via lookup_object_and_method.  Parses the incoming
6207         message, turns it into a GValue array, then invokes the marshaller
6208         specified in the DBusGMethodInfo.  Creates a new message with
6209         either return values or error message as appropriate.
6210         (gobject_message_function): Invoke lookup_object_and_method and
6211         invoke_object_method.
6212
6213         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6214         (enum DBusBindingOutputMode): New enum for binding output modes.
6215         (pretty_print): Print binding names.
6216         (dbus_binding_tool_error_quark): GError bits.
6217         (version): Fix typo.
6218         (main): Create GIOChannel for output.  Parse new --mode argument,
6219         possible values are "pretty-print", "glib-server", "glib-client".
6220         Use mode to invoke appropriate function.
6221         
6222         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6223
6224         * glib/dbus-glib-tool.h: New header, just includes GError bits
6225         for now.
6226
6227         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6228         maps binding style to name.
6229         (struct MethodInfo): Ditto.
6230         (get_hash_keys, get_hash_key): Utility function, returns keys for
6231         a GHashTable.
6232         (interface_info_new, method_info_new): Initialize bindings.
6233         (interface_info_unref, method_info_unref): Destroy bindings.
6234         (method_info_get_binding_names, method_info_get_binding_name)
6235         (interface_info_get_binding_names, interface_info_get_binding_name):
6236         Functions for retrieving binding names.
6237         (method_info_set_binding_name, interface_info_set_binding_name):
6238         Functions for setting binding names.
6239
6240         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6241         for glib binding generation.
6242
6243         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6244         and client-side glib glue generation.
6245
6246         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6247         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6248         dbus-glib-tool.h.
6249
6250         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6251         of using GClosureMarshal directly.
6252         (struct DBusGObjectInfo): Add n_infos member.
6253
6254         * test/glib/test-service-glib.xml: New file; contains introspection data
6255         for MyTestObject used in test-service-glib.c.
6256
6257         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6258         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6259         (my_object_uppercase, my_object_many_args): New test methods.
6260         (main): Use dbus_g_object_class_install_info to include generated object
6261         info.
6262
6263         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6264         as well as client-side bindings.
6265
6266         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6267         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6268         using both the dbus_gproxy stuff directly as well as the generated bindings.
6269
6270 2005-02-15  Havoc Pennington  <hp@redhat.com>
6271
6272         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6273         complete a pending call, don't run filters first.
6274
6275         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6276         dbus_pending_call_steal_reply
6277
6278         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6279         _dbus_connection_block_pending_call
6280         (dbus_pending_call_get_reply): change to steal_reply and return a
6281         ref
6282
6283         * dbus/dbus-connection.c
6284         (dbus_connection_send_with_reply_and_block): port to work in terms
6285         of DBusPendingCall
6286         (_dbus_connection_block_pending_call): replace block_for_reply
6287         with this
6288
6289 2005-02-14  Havoc Pennington  <hp@redhat.com>
6290
6291         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6292         properly handle looking up group information by name; fix 
6293         from j@bootlab.org
6294
6295 2005-02-13  Havoc Pennington  <hp@redhat.com>
6296
6297         * dbus/dbus-connection.c (dbus_connection_return_message) 
6298         (dbus_connection_borrow_message): hold dispatch lock while message
6299         is outstanding
6300         (_dbus_connection_block_for_reply): hold dispatch lock while we
6301         block for the reply, so nobody steals our reply
6302         (dbus_connection_pop_message): hold the dispatch lock while we
6303         pluck the message
6304
6305 2005-02-13  Havoc Pennington  <hp@redhat.com>
6306
6307         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6308         (_dbus_connection_release_dispatch)
6309         (_dbus_connection_acquire_io_path)
6310         (_dbus_connection_release_io_path): make the mutex and condvar
6311         control access to the "acquired" flag. Drop the connection lock
6312         while waiting on the condvar. Hopefully these are baby steps in
6313         roughly the right direction.
6314
6315 2005-02-13  Havoc Pennington  <hp@redhat.com>
6316
6317         * dbus/dbus-connection.c: use separate mutexes for the condition
6318         variables; this is some kind of baseline for sanity, but the
6319         condition variables still aren't used correctly afaict
6320
6321 2005-02-13  Havoc Pennington  <hp@redhat.com>
6322
6323         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6324         fix a double-unlock
6325
6326         * dbus/dbus-connection.c
6327         (_dbus_connection_detach_pending_call_unlocked): add this
6328
6329         Initial semi-correct pass through to fix thread locking; there are
6330         still some issues with the condition variable paths I'm pretty
6331         sure
6332         
6333         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6334         lock/unlock calls
6335
6336         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6337         rename to add _unlocked
6338         (struct DBusConnection): move "dispatch_acquired" and
6339         "io_path_acquired" to use only one bit each.
6340         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6341         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6342         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6343         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6344         (_dbus_connection_remove_timeout) 
6345         (_dbus_connection_toggle_timeout): drop lock when calling out to
6346         user functions; done in a hacky/bad way.
6347         (_dbus_connection_send_and_unlock): add a missing unlock
6348         (_dbus_connection_block_for_reply): add a missing unlock
6349
6350         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6351         drop lock in a hacky probably unsafe way to call out to user
6352         function
6353
6354 2005-02-12  Havoc Pennington  <hp@redhat.com>
6355
6356         * tools/dbus-tree-view.c (info_set_func_text): display more
6357         details on args
6358
6359         * bus/driver.c (bus_driver_handle_list_services): list the bus
6360         driver
6361
6362         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6363
6364         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6365         (method_info_get_n_args): new function
6366
6367 2005-02-12  Havoc Pennington  <hp@redhat.com>
6368
6369         * bus/driver.c (bus_driver_handle_introspect): add introspection
6370         for bus driver
6371
6372 2005-02-12  Havoc Pennington  <hp@redhat.com>
6373
6374         * bus/driver.c: put the signature of each bus driver method in the
6375         table of handlers and check it on incoming calls; this isn't
6376         really useful, but going to add introspect support in a minute.
6377
6378 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6379
6380         * mono/Connection.cs: The unpredictability of finalizers in mono
6381         prevents us from deterministically disconnecting the filters from
6382         the Service class's finalizer, so move tracking of filters and
6383         matches here.  Add API for that.
6384
6385         * mono/Service.cs: Remove the code, add code which calls the
6386         methods now on the Connection class.
6387
6388 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6389
6390         * python/dbus.py (class Sender): added to support dbus signals better
6391         (Bus::add_signal_receiver): added expand_args parameter which defaults
6392         to True.  When expand args is True the signal handler will pass the 
6393         message arguments as parameters to the signal handler.  If False
6394         revert to previous behavior where the signal handler must get the
6395         argument list from the message.  This is to help port applications
6396         like HAL that have a tendancy to send variable length argument lists.
6397         self._match_rule_to_receivers is now a dict of dicts.
6398         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6399         removing it from a list
6400         (Bus::_signal_func): change signal handlers so that interface,
6401         signal_name, service, path and message are packed into a Sender
6402         object and that is passed to the handler.  If expand_args is True
6403         extract the args list from the message and append it to the parameter
6404         list
6405         
6406         * python/dbus_bindings.pyx.in (class Signature): added to support 
6407         signiature types
6408         (MessageIter::__init__): changed iteration limit to match D-BUS
6409         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6410         STRUCT and VARIENT type support
6411         (MessageIter::python_value_to_dbus_sig): made recursive to support
6412         recursive types
6413         (MessageIter::append*): added Signature, dict, tuple 
6414         support
6415
6416         * python/examples/example-client.py: added examples of getting tuples
6417         and dicts
6418
6419         * python/examples/example-service.py: added examples of sending tuples
6420         and dicts
6421
6422         * python/examples/example-signal-recipient.py: Fixed to handle new
6423         signal callback format
6424
6425 2005-02-10  Havoc Pennington  <hp@redhat.com>
6426
6427         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6428         (call dbus_g_proxy_add_signal)
6429
6430         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6431         escape the hostname
6432         (_dbus_server_new_for_domain_socket): escape the path
6433
6434         * dbus/dbus-address.c (dbus_address_escape_value): new
6435         (dbus_address_unescape_value): new
6436         (dbus_parse_address): unescape values
6437
6438         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6439
6440         * doc/dbus-specification.xml: explain how to escape values in
6441         addresses
6442
6443 2005-02-10  Havoc Pennington  <hp@redhat.com>
6444
6445         * dbus/dbus-message-factory.c (generate_special): modify test to
6446         avoid using a non-basic dict key
6447
6448         * dbus/dbus-marshal-validate-util.c: add test for the below
6449
6450         * doc/dbus-specification.xml: require that dict keys are a basic
6451         type
6452
6453         * dbus/dbus-marshal-validate.c
6454         (_dbus_validate_signature_with_reason): require that dict key is a
6455         basic type
6456
6457 2005-02-10  Havoc Pennington  <hp@redhat.com>
6458
6459         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6460         change to be _and_unlock instead of _unlocked
6461
6462         * dbus/dbus-connection.c
6463         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6464         have no_update so we can find this bug quickly in future
6465
6466 2005-02-10  Havoc Pennington  <hp@redhat.com>
6467
6468         * dbus/dbus-message-util.c (verify_test_message): tests for string
6469         array
6470
6471         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6472         support for arrays of string/signature/path
6473
6474 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6475
6476         * dbus/dbus-connection.c
6477         (_dbus_connection_queue_received_message_link,
6478         _dbus_connection_message_sent): Add the path to
6479         the verbose output.
6480         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6481         _dbus_connection_send_preallocated_unlocked(), updated the
6482         dispatch status, and unlocks.  Fixes a bug where certain
6483         situations (like a broken pipe) could cause a Disconnect message
6484         to not be sent, tricking the bus into thinking a service was still
6485         there when the process had quit.
6486         (_dbus_connection_send_preallocated): Call
6487         _dbus_connection_send_preallocated_and_unlock().
6488         (_dbus_connection_send_and_unlock): Added.  Calls
6489         _dbus_connection_send_preallocated_and_unlock().
6490         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6491         (dbus_connection_send_with_reply): Update the dispatch status and
6492         unlock.
6493
6494         * mono/Service.cs (~Service): Added.  Removes the filter so that
6495         we don't get unmanaged code calling back into a GCed delegate.
6496         (RemoveFilter); Added.
6497
6498 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6499
6500         * dbus/dbus-message.c (dbus_message_iter_open_container):
6501         - Removed check for iterator type being an array because
6502         get_arg_type does not work with writer iterators
6503         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6504
6505 2005-02-07  Havoc Pennington  <hp@redhat.com>
6506
6507         * doc/dbus-specification.xml: some more language cleanups; add
6508         stuff about how to deal with invalid protocol and extension
6509         points; add _ to allowed chars in auth commands; add EXTENSION_
6510         auth command prefix
6511
6512 2005-02-06  Havoc Pennington  <hp@redhat.com>
6513
6514         * s/expected/required/ in a couple places for clarity
6515
6516 2005-02-07  Colin Walters  <walters@verbum.org>
6517
6518         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6519         sender or proposed_recipient.
6520
6521 2005-02-06  Havoc Pennington  <hp@redhat.com>
6522
6523         * dbus/dbus-message-factory.c (generate_special): more tests
6524
6525         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6526         array length that exceeds the maximum
6527
6528 2005-02-05  Havoc Pennington  <hp@redhat.com>
6529
6530         * dbus/dbus-message-factory.c (generate_special): more test cases,
6531         increasing coverage
6532
6533         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6534         reason why a signature was invalid
6535
6536         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6537         skip the length of the string before we look at it in validation
6538
6539         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6540         equal_substring
6541
6542         * dbus/dbus-message.c (_dbus_message_loader_new): default
6543         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6544
6545 2005-02-05  Havoc Pennington  <hp@redhat.com>
6546
6547         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6548         if the signature of a variant was empty
6549         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6550         struct with no element type)
6551
6552         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6553         mangled messages to break things
6554
6555 2005-02-04  Havoc Pennington  <hp@redhat.com>
6556
6557         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6558         g_quark_try_string() so it actually can return 0
6559         (dbus_g_proxy_connect_signal): ditto
6560
6561 2005-02-04  Havoc Pennington  <hp@redhat.com>
6562
6563         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6564         bogus warning
6565         (tristring_from_message): assert cleanly on null path/interface
6566         (should not be possible though I decided later)
6567         (dbus_g_proxy_dispose): move proxy manager unregistration here
6568         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6569         g_return_if_fail() checks
6570
6571 2005-02-04  Havoc Pennington  <hp@redhat.com>
6572
6573         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6574
6575         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6576         (with some minor changes)
6577
6578         * doc/dbus-specification.xml: add deprecated attribute to
6579         introspection format
6580
6581 2005-01-31  Havoc Pennington  <hp@redhat.com>
6582
6583         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6584         think it's sort of right
6585
6586 2005-01-30  Havoc Pennington  <hp@redhat.com>
6587
6588         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6589
6590 2005-01-30  Havoc Pennington  <hp@redhat.com>
6591
6592         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6593
6594         * autogen.sh: change to autotools 1.9
6595
6596         * glib/dbus-gproxy.c: completely change how signals work
6597         (dbus_g_proxy_add_signal): new function to specify signature of a
6598         signal
6599         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6600         and g_warning if the incoming message has the wrong signature.
6601
6602 2005-01-30  Havoc Pennington  <hp@redhat.com>
6603
6604         * tools/dbus-names-model.c (have_names_notify): fix this
6605
6606         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6607         up the string array handling a bit 
6608
6609 2005-01-30  Havoc Pennington  <hp@redhat.com>
6610
6611         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6612         (dbus_g_pending_call_cancel): new function
6613
6614         * dbus/dbus-glib.h: move GType decls for connection/message here;
6615         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6616         here, just kind of rationalizing how we handle all that
6617
6618         * tools/dbus-names-model.c: new file for a tree model listing the
6619         services on a bus
6620
6621         * tools/dbus-tree-view.c (model_new): use proper typing on the
6622         model rows
6623
6624 2005-01-30  Havoc Pennington  <hp@redhat.com>
6625
6626         * glib/dbus-gmain.c: add a custom GSource back that just checks
6627         whether the message queue has anything in it; otherwise, there are 
6628         cases where we won't see messages in the queue since there was no 
6629         IO visible to the glib main loop
6630
6631         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6632         increase default message timeout to 25 seconds
6633
6634 2005-01-30  Havoc Pennington  <hp@redhat.com>
6635
6636         * test/glib/test-profile.c (no_bus_stop_server): remove the
6637         warning about the g_warning that I just fixed
6638
6639         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6640         custom source, seems to be a lot easier to understand and work
6641         better.
6642
6643 2005-01-30  Havoc Pennington  <hp@redhat.com>
6644
6645         I think this main loop thing is conceptually broken, but here are 
6646         some band aids. I'll maybe rewrite it in a minute.
6647         
6648         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6649         custom GSource, so don't pass it in; confusing
6650         (gsource_server_finalize, gsource_connection_finalize): add
6651         finalize handlers that remove all the watches.  
6652
6653 2005-01-30  Havoc Pennington  <hp@redhat.com>
6654
6655         * glib/dbus-gobject.c (introspect_properties): fix the XML
6656         generated
6657
6658         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6659         which effectively detects the use of freed messages
6660
6661         * glib/dbus-gobject.c (handle_introspect): modify and return the
6662         reply message instead of the incoming message
6663
6664         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6665         gee, maybe it should SEND THE XML instead of just making a string
6666         and freeing it again ;-)
6667
6668         * tools/dbus-print-message.c (print_message): improve printing of
6669         messages
6670
6671         * configure.in: add debug-glib.service to the output
6672
6673 2005-01-30  Havoc Pennington  <hp@redhat.com>
6674
6675         dbus-viewer introspected and displayed the bus driver
6676         
6677         * dbus/dbus-object-tree.c 
6678         (object_tree_test_iteration): add tests for a handler registered on "/"
6679
6680         * dbus/dbus-object-tree.c
6681         (_dbus_decompose_path): fix to handle path "/" properly
6682         (run_decompose_tests): add tests for path decomposition
6683         
6684         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6685         properly
6686
6687         * glib/dbus-gobject.c (handle_introspect): fix quotes
6688
6689         * test/glib/run-test.sh: support launching the bus, then running
6690         dbus-viewer
6691
6692         * test/glib/test-service-glib.c (main): put in a trivial gobject
6693         subclass and register it on the connection
6694
6695         * bus/driver.c (bus_driver_handle_introspect): implement
6696         introspection of the bus driver service
6697
6698         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6699         identifiers, doctype decl
6700
6701         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6702         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6703         returning the service unchanged.
6704         (bus_driver_handle_message): remove old check for reply_serial in
6705         method calls, now the message type deals with that
6706         (bus_driver_handle_message): handle NULL interface
6707
6708         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6709
6710         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6711         -1 for len
6712
6713         * tools/dbus-viewer.c: add support for introspecting a service on
6714         a bus
6715
6716         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6717         (dbus_g_pending_call_unref): add
6718
6719 2005-01-29  Havoc Pennington  <hp@redhat.com>
6720
6721         * tools/dbus-tree-view.c: add support for displaying properties.
6722         (run dbus-viewer with an introspect xml file as arg, then resize
6723         the window so the tree elements show up, not sure what that is)
6724
6725         * glib/dbus-gobject.c (handle_introspect): return
6726         org.freedesktop.Properties and org.freedesktop.Introspectable
6727         interfaces when we are introspected.
6728
6729         * doc/dbus-specification.xml: allow empty interface name when 
6730         Get/Set a property
6731
6732 2005-01-29  Havoc Pennington  <hp@redhat.com>
6733
6734         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6735         though it uses glib, it could be extended for any binding in
6736         principle
6737
6738         * glib/dbus-gobject.c (gobject_message_function): change to the
6739         new way properties work
6740
6741         * dbus/dbus-protocol.h: add the new interfaces
6742
6743         * doc/dbus-specification.xml: document the introspection format,
6744         Introspectable interface, and add an org.freedesktop.Properties
6745         interface.
6746
6747         * glib/dbus-gparser.c: add support for a <property> element
6748
6749         * glib/dbus-gidl.c: add PropertyInfo
6750
6751         * glib/dbus-gobject.c (handle_introspect): put the outermost
6752         <node> outside the signal and property descriptions.
6753         (introspect_properties): export properties as <property> rather
6754         than as method calls
6755
6756 2005-01-28  Havoc Pennington  <hp@redhat.com>
6757
6758         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6759         related to authentication protocol
6760
6761 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6762
6763         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6764                 - BUS_ACTIVATION -> BUS_STARTER
6765                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6766                 - class MessageIter (__init__): Added recursion checking 
6767                 so we throw a nice error instead of just disconnecting from the
6768                 bus.
6769                 (get): Added arg_type parameter for recursion.
6770                 Removed the nil type
6771                 Added signiture type placeholder (not implemented)
6772                 Added struct type placeholder (not implemented)
6773                 Added varient type placeholder (not implemented)
6774                 Commented out dict type for now     
6775                 (get_element_type): renamed from get_array_type
6776                 (get_*): changed to use the dbus_message_iter_get_basic API
6777                 (get_*_array): removed in favor of recursive get_array method
6778                 (get_array): new recursive method which calls get to marshal
6779                 the elements of the array
6780                 (value_to_dbus_sig): New method returns the corrasponding
6781                 dbus signiture to a python value
6782                 (append): Comment out dict handling for now
6783                 Handle lists with the new recursive API
6784                 Comment out None handling for now
6785                 (append_nil): removed
6786                 (append_*): changed to use dbus_message_iter_append_basic API
6787                 (append_*_array): removed in favor of recursive append_array 
6788                 method
6789                 (__str__): Make it easier to print out recursive iterators
6790                 for debugging
6791                 - class Message (__str__): moved type inspection to the
6792                 MessageIter class' __str__ method
6793                 (get_iter): Added an append parameter wich defaults to False
6794                 If True use the new API's to create an append iterator
6795
6796         * python/dbus.py: Update to use new bindings API
6797                 - TYPE_ACTIVATION -> TYPE_STARTER
6798                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6799                 - class ActivationBus -> class StarterBus
6800                 - class RemoteObject (__call__): get an append iterator
6801                 - (_dispatch_dbus_method_call): get an append iterator
6802                 - class Object (emit_signal): get an append iterator
6803
6804         * python/examples/: Fixed up the examples to work with the new API
6805                 
6806 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6807
6808         * configure.in: Bump version up to 0.30.
6809
6810         * HACKING: Add a release item to bump the version number up after 
6811         a release.
6812
6813 2005-01-28  Havoc Pennington  <hp@redhat.com>
6814
6815         * doc/dbus-specification.xml: update to describe 16-bit types and
6816         dict entries
6817
6818         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6819         assertion
6820
6821         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6822         type
6823
6824         * dbus/dbus-marshal-recursive.c: implement
6825
6826 2005-01-27  Havoc Pennington  <hp@redhat.com>
6827
6828         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6829
6830         * configure.in: find the right type for 16 and 32 bit ints as well
6831         as 64
6832
6833         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6834         the 16-bit types so people don't have to stuff them in 32-bit or
6835         byte arrays.
6836
6837 2005-01-27  Havoc Pennington  <hp@redhat.com>
6838
6839         * dbus/dbus-message.c: byteswap the message if you init an
6840         iterator to read/write from it
6841         
6842         * dbus/dbus-marshal-byteswap.c: new file implementing 
6843         _dbus_marshal_byteswap()
6844
6845         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6846
6847 2005-01-26  Havoc Pennington  <hp@redhat.com>
6848         
6849         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6850         build, apparently - nobody noticed?)
6851         
6852 2005-01-26  Havoc Pennington  <hp@redhat.com>
6853
6854         * dbus/dbus-marshal-recursive.h: remove todo comment
6855
6856 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6857
6858         * Land the mono binding changes to conform to the new APIs.
6859
6860         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6861         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6862
6863         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6864         type code as a string.
6865         (InitAppending): Rename dbus_message_append_iter_init() to
6866         dbus_message_iter_init_append().
6867
6868         * mono/BusDriver.cs: Rename ServiceEventHandler to
6869         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6870         Rename ServiceOwnerChanged to NameOwnerChanged.
6871
6872         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6873         underlying C call.
6874
6875         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6876
6877         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6878         dbus_bus_acquire_service() to dbus_bus_request_name().
6879
6880         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6881         of Type.UnderlyingSystemType to get the correct element type for
6882         the array.
6883         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6884         dbus_message_get_{element|arg}_type() instead of
6885         dbus_message_iter_init_array_iterator().
6886         (Append): Replace dbus_message_iter_append_array() with
6887         dbus_message_iter_open_container() and
6888         dbus_message_iter_close_container().
6889
6890         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6891         types have been removed.
6892         
6893         * mono/DBusType/*.cs: Replace calls of
6894         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6895         but specify the type in the DllImport extern declaration.  Ditto
6896         for dbus_message_iter_append_[type]() ->
6897         dbus_message_iter_append_basic().
6898
6899         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6900         NameOwnerChangedHandler.
6901
6902 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6903
6904         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6905                 - get_base_service -> get_unique_name
6906                 - bus_get_base_service -> bus_get_unique_name
6907                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6908                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6909                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6910                 - bus_activate_service -> bus_start_service_by_name
6911                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6912                 - bus_acquire_service -> bus_request_name
6913                 - dbus_bus_acquire_service -> dbus_bus_request_name
6914                 - bus_service_exists -> bus_name_has_owner
6915                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6916
6917         * python/dbus.py: Rename of methods
6918                 - activate_service -> start_service_by_name
6919                 - bus_acquire_service -> bus_request_name
6920                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6921                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6922
6923         
6924 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6925
6926         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6927         signature for the method that can't be found.
6928
6929         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6930         the message has any arguments, we need to call
6931         _dbus_type_reader_get_current_type(), not
6932         _dbus_type_reader_has_next().
6933
6934 2005-01-24  Havoc Pennington  <hp@redhat.com>
6935
6936         * dbus/dbus-message-factory.c: more testing of message validation
6937
6938         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6939         header
6940
6941 2005-01-23  Havoc Pennington  <hp@redhat.com>
6942
6943         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6944         get this all working, not many tests in the framework yet though
6945
6946 2005-01-22  Havoc Pennington  <hp@redhat.com>
6947
6948         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6949         tutorial, based on work from David Wheeler.
6950
6951 2005-01-21  Havoc Pennington  <hp@redhat.com>
6952
6953         * dbus/dbus-bus.c: add more return_if_fail checks
6954
6955         * dbus/dbus-message.c (load_message): have the "no validation"
6956         mode (have to edit the code to toggle the mode for now though)
6957
6958         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6959         skips all validation; I want to use this at least for benchmark
6960         baseline, I'm not sure if it should be a publicly-available switch.
6961
6962 2005-01-21  Havoc Pennington  <hp@redhat.com>
6963
6964         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6965         toplevel doxygen group as the low-level API stuff
6966
6967         * dbus/dbus.h: note that libdbus is the low-level API
6968
6969 2005-01-20  Havoc Pennington  <hp@redhat.com>
6970
6971         * update-dbus-docs.sh: script to update docs on the web site, only
6972         works for me though. neener.
6973
6974 2005-01-20  Havoc Pennington  <hp@redhat.com>
6975
6976         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6977         code can reveal bugs in it
6978
6979 2005-01-20  Havoc Pennington  <hp@redhat.com>
6980
6981         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6982         select() version, patches from Tor Lillqvist
6983
6984 2005-01-20  Havoc Pennington  <hp@redhat.com>
6985
6986         * doc/dbus-tutorial.xml: replace > with &gt;
6987
6988         * bus/services.c (bus_registry_acquire_service): validate the name
6989         and return a better error if it's no good.
6990
6991         * doc/dbus-specification.xml: note NO_AUTO_START change
6992
6993         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6994         from AUTO_START, we're toggling the default
6995
6996         * bus/dispatch.c: adapt the tests to change of auto-start default
6997
6998 2005-01-18  Havoc Pennington  <hp@redhat.com>
6999
7000         * rename dbus-daemon-1 to dbus-daemon throughout
7001
7002 2005-01-18  Havoc Pennington  <hp@redhat.com>
7003
7004         * Throughout, grand renaming to strip out the use of "service",
7005         just say "name" instead (or "bus name" when ambiguous).  Did not
7006         change the internal code of the message bus itself, only the
7007         programmer-facing API and messages.
7008         
7009         * doc/dbus-specification.xml: further update the message bus section
7010         
7011         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7012         in error case
7013
7014 2005-01-17  Havoc Pennington  <hp@redhat.com>
7015
7016         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7017         ever
7018
7019         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7020         "invalid name character" not only non-ASCII
7021
7022         * doc/dbus-specification.xml: further update spec, message bus 
7023         parts are still out-of-date but the marshaling etc. stuff is now
7024         accurate-ish
7025
7026 2005-01-17  Havoc Pennington  <hp@redhat.com>
7027
7028         * doc/dbus-specification.xml: partially update spec
7029
7030 2005-01-17  Havoc Pennington  <hp@redhat.com>
7031
7032         * Throughout, align variant bodies according to the contained
7033         type, rather than always to 8. Should save a fair bit of space in
7034         message headers.
7035         
7036         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7037         fix handling of case where p == end
7038
7039         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7040
7041 2005-01-17  Havoc Pennington  <hp@redhat.com>
7042
7043         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7044
7045         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7046         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7047         are marshaling/unmarshaling a boolean.
7048
7049 2005-01-16  Havoc Pennington  <hp@redhat.com>
7050
7051         This is about it on what can be disabled/deleted from libdbus
7052         easily, back below 150K anyhow. Deeper cuts are more work than 
7053         just turning the code off as I've done here.
7054         
7055         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7056         signed int convenience funcs
7057
7058         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7059         verbose mode
7060
7061         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7062         things out of libdbus
7063
7064         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7065         
7066         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7067         tests-enabled-only, though it should probably be deleted)
7068
7069         * dbus/dbus-message-util.c: same stuff
7070
7071         * dbus/dbus-auth-util.c: same stuff
7072
7073 2005-01-16  Havoc Pennington  <hp@redhat.com>
7074
7075         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7076
7077         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7078         way for stripping down dbus-userdb.c stuff included in libdbus.
7079         Rename _dbus_parse_uid for consistency.
7080
7081 2005-01-16  Havoc Pennington  <hp@redhat.com>
7082
7083         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7084         name the assertion failed in
7085
7086         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7087         (_dbus_return_val_if_fail): assert that the name of the function
7088         containing the check doesn't start with '_', since we only want to 
7089         use checks on public functions
7090         
7091         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7092         checks to assertions
7093
7094         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7095         change checks to asserts for private function
7096
7097         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7098         to asserts for private function
7099
7100         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7101         broken assertion that was breaking make check
7102         (_dbus_type_reader_array_is_empty): remove this rather than fix
7103         it, was only used in assertions
7104
7105 2005-01-16  Havoc Pennington  <hp@redhat.com>
7106
7107         * test/unused-code-gc.py: hacky script to find code that's used
7108         only by the bus (not libdbus) or used only by tests or not used at
7109         all. It has some false alarms, but looks like we can clean up a
7110         lot of size from libdbus.
7111
7112         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7113         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7114         
7115 2005-01-16  Havoc Pennington  <hp@redhat.com>
7116
7117         * Add and fix docs according to Doxygen warnings throughout
7118         source.
7119         
7120         * dbus/dbus-marshal-recursive.c
7121         (_dbus_type_reader_array_is_empty): change this to just call
7122         array_reader_get_array_len() and make it static
7123
7124         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7125         from get_array_type
7126         (dbus_message_iter_init_append): rename from append_iter_init
7127
7128         * dbus/dbus-marshal-recursive.c
7129         (_dbus_type_reader_get_element_type): rename from
7130         _dbus_type_reader_get_array_type
7131
7132 2005-01-15  Havoc Pennington  <hp@redhat.com>
7133
7134         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7135
7136         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7137         when DBUS_DISABLE_ASSERT
7138         (_dbus_marshal_set_basic): be sure we align for the string length
7139
7140         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7141         this look faster
7142
7143         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7144         inline macro version
7145         (_dbus_string_set_byte): provide inline macro version
7146
7147 2005-01-15  Havoc Pennington  <hp@redhat.com>
7148
7149         * Land the new message args API and type system.
7150
7151         This patch is huge, but the public API change is not 
7152         really large. The set of D-BUS types has changed somewhat, 
7153         and the arg "getters" are more geared toward language bindings;
7154         they don't make a copy, etc.
7155
7156         There are also some known issues. See these emails for details
7157         on this huge patch:
7158         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7159         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7160         
7161         * dbus/dbus-marshal-*: all the new stuff
7162
7163         * dbus/dbus-message.c: basically rewritten
7164
7165         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7166         freed blocks to be all non-nul bytes so using freed memory is less
7167         likely to work right
7168
7169         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7170         DBUS_FAIL_MALLOC=N environment variable, so you can do
7171         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7172         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7173         thorough.
7174
7175         * qt/message.cpp: port to the new message args API
7176         (operator<<): use str.utf8() rather than str.unicode()
7177         (pretty sure this is right from the Qt docs?)
7178
7179         * glib/dbus-gvalue.c: port to the new message args API
7180
7181         * bus/dispatch.c, bus/driver.c: port to the new message args API
7182
7183         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7184         "locked" flag to TRUE and align_offset to 0; I guess we never
7185         looked at these anyhow, but seems cleaner.
7186
7187         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7188         move allocation padding macro to this header; use it to implement
7189         (_DBUS_STRING_STATIC): ability to declare a static string.
7190
7191         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7192         change to return TRUE if the interface is not set.
7193
7194         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7195         to dbus-marshal-validate.[hc]
7196
7197         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7198         dbus-internals.c
7199
7200         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7201         to dbus-marshal-*.[hc]
7202
7203         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7204         function here from dbus-marshal.c
7205
7206 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7207
7208         * NEWS: Update for 0.23.
7209
7210         * configure.in: Release 0.23.
7211
7212 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7213
7214         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7215         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7216         behind.
7217
7218         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7219         uninstall"
7220
7221         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7222         is an enum, get the enum's underlying type.  Another mono
7223         1.1.3 fix.
7224
7225 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7226
7227         Patch from Sjoerd Simons <sjoerd@luon.net>
7228
7229         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7230         DESTDIR.  It breaks stuff.
7231
7232 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7233
7234         Patch from Tambet Ingo <tambet@ximian.com>
7235
7236         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7237         calling type.GetElementType().  The code previously depended on
7238         broken Mono behavior, which was fixed in Mono 1.1.3.
7239
7240         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7241         Activator.CreateInstance() so that the class's constructor is
7242         called with the right parameters.
7243
7244 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7245
7246         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7247
7248         * dbus/dbus-connection.c
7249         (_dbus_connection_queue_received_message_link): Call
7250         _dbus_connection_remove_timeout() instead of the _locked()
7251         variant, since it's always called from
7252         _dbus_connection_handle_watch(), which handles the locking.
7253         Removed the _locked() variant since it's no longer used.
7254
7255 2005-01-03  Havoc Pennington  <hp@redhat.com>
7256
7257         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7258         return
7259         
7260 2004-12-26  Havoc Pennington  <hp@redhat.com>
7261
7262         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7263
7264 2005-01-03  Havoc Pennington  <hp@redhat.com>
7265
7266         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7267         floating point
7268
7269         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7270
7271 2005-01-02  Havoc Pennington  <hp@redhat.com>
7272
7273         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7274
7275 2005-01-01  Havoc Pennington  <hp@redhat.com>
7276
7277         * configure.in: add -Wfloat-equal
7278
7279 2005-01-01  Havoc Pennington  <hp@redhat.com>
7280
7281         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7282         for a variety of reasons '==' doesn't do this.
7283
7284 2004-12-31  Havoc Pennington  <hp@redhat.com>
7285
7286         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7287         I keep wishing I had
7288
7289 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7290
7291         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7292
7293 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7294
7295         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7296         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7297         dbus-protocol.h.  Because they are defines and not enums they are not
7298         autogenerated.
7299
7300 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7301
7302         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7303         dbus_bus_activate_service
7304
7305         * python/dbus.py (Bus.activate_service): activate a service on the
7306         bus.
7307
7308 2004-12-24  Havoc Pennington  <hp@redhat.com>
7309
7310         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7311         file format has also changed and I haven't adapted to that yet
7312         
7313         * Makefile.am: load .gcno files from latest gcc
7314
7315 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7316         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7317
7318         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7319         lowlevel binding
7320
7321         * python/dbus.py (get_unix_user): Added binding to 
7322         call dbus_bindings.bus_get_unix_user
7323
7324         * python/extract.py: Modified the proto_pat regex to
7325         handle unsigned long
7326
7327 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7328
7329         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7330         better POSIX compliance.
7331
7332 2004-12-19  Havoc Pennington  <hp@redhat.com>
7333
7334         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7335         (_dbus_string_insert_8_aligned): new functions
7336
7337         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7338
7339 2004-12-18  Havoc Pennington  <hp@redhat.com>
7340
7341         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7342         macro
7343
7344         * dbus/dbus-message.c: fix a comment, and add a still-unused
7345         not-implemented function
7346
7347         * dbus/dbus-marshal.h: fix comment
7348
7349         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7350
7351 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7352
7353         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7354         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7355         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7356         Type.UnderlyingSystemType to get the actual system type
7357         underneath.  This code previously depended on the broken Mono
7358         behavior, which was fixed in 1.1.3.
7359
7360 2004-11-27  Havoc Pennington  <hp@redhat.com>
7361
7362         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7363         are disabled
7364         (_dbus_string_get_const_data): inline when asserts are disabled
7365
7366         * dbus/dbus-message.c: record the _dbus_current_generation of
7367         creation so we can complain if dbus_shutdown() is used improperly.
7368         Do this only if checks are enabled.
7369
7370         * dbus/dbus-connection.c: ditto
7371         
7372 2004-11-26  Havoc Pennington  <hp@redhat.com>
7373
7374         * test/glib/test-profile.c: add with_bus mode to profile echoes
7375         that go through the bus.
7376
7377         * test/glib/run-test.sh: add ability to run test-profile
7378
7379         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7380         config file reload.
7381
7382 2004-11-26  Havoc Pennington  <hp@redhat.com>
7383
7384         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7385         thing was implemented
7386
7387 2004-11-26  Havoc Pennington  <hp@redhat.com>
7388
7389         * test/glib/test-profile.c: tweak a bit, add support for some
7390         made-up minimal malloc overhead with plain sockets, since in 
7391         real life some sort of buffers are unavoidable thus we could 
7392         count them in the theoretical best case
7393
7394 2004-11-26  Havoc Pennington  <hp@redhat.com>
7395
7396         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7397         where I was trying to cache one too many messages
7398
7399 2004-11-26  Havoc Pennington  <hp@redhat.com>
7400
7401         * dbus/dbus-message.c: reimplement message cache as an array which 
7402         makes the cache about twice as fast and saves maybe 1.5% overall
7403
7404 2004-11-26  Havoc Pennington  <hp@redhat.com>
7405
7406         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7407         message cache lock here
7408
7409 2004-11-26  Havoc Pennington  <hp@redhat.com>
7410
7411         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7412         the "char byte_order" next to each other to save 4 bytes
7413         (dbus_message_new_empty_header): reduce preallocation, since the
7414         message cache should achieve a similar effect
7415         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7416         message cache that keeps a few DBusMessage around in a pool,
7417         another 8% speedup or so.
7418
7419         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7420
7421 2004-11-25  Havoc Pennington  <hp@redhat.com>
7422
7423         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7424         to write, without reading or blocking, try it before the poll()
7425         and skip the poll() if nothing remains to write. This is about a
7426         3% speedup in the echo client/server
7427
7428 2004-11-25  Havoc Pennington  <hp@redhat.com>
7429
7430         The primary change here is to always write() once before adding
7431         the write watch, which gives us about a 10% performance increase.
7432         
7433         * dbus/dbus-transport-unix.c: a number of modifications to cope
7434         with removing messages_pending
7435         (check_write_watch): properly handle
7436         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7437         messages_pending stuff
7438         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7439         AUTHENTICATED cases
7440         (unix_handle_watch): after writing, see if the write watch can be
7441         removed
7442         (unix_do_iteration): assert that write_watch/read_watch are
7443         non-NULL rather than testing that they aren't, since they 
7444         aren't allowed to be NULL. check_write_watch() at the end so 
7445         we add the watch if we did not finish writing (e.g. got EAGAIN)
7446
7447         * dbus/dbus-transport-protected.h: remove messages_pending call,
7448         since it resulted in too much inefficient watch adding/removing; 
7449         instead we now require that the transport user does an iteration 
7450         after queueing outgoing messages, and after trying the first
7451         write() we add a write watch if we got EAGAIN or exceeded our 
7452         max bytes to write per iteration setting
7453
7454         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7455         function
7456
7457         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7458         freed and then accessed, valgrind flagged this bug, fix it
7459
7460         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7461         as the last valid field plus 1, where really it is equal to the
7462         last valid field. Corrects some message corruption issues.
7463
7464         * dbus/dbus-mainloop.c: verbosity changes
7465
7466         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7467         instead of aborting in one of the test codepaths
7468
7469         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7470         caused not printing the pid ever again if a verbose was missing
7471         the newline at the end
7472         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7473
7474         * dbus/dbus-connection.c: verbosity changes; 
7475         (dbus_connection_has_messages_to_send): new function
7476         (_dbus_connection_message_sent): no longer call transport->messages_pending
7477         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7478         try to write() immediately, so we can avoid the write watch. This
7479         is the core purpose of this patchset
7480         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7481         dump the outgoing message queue, so nobody will get confused
7482         trying to send them or thinking stuff is pending to be sent
7483
7484         * bus/test.c: verbosity changes
7485
7486         * bus/driver.c: verbosity/assertion changes
7487
7488         * bus/dispatch.c: a bunch of little tweaks to get it working again
7489         because this patchset changes when/where you need to block.
7490
7491 2004-11-23  Havoc Pennington  <hp@redhat.com>
7492
7493         * test/glib/test-profile.c: modify to accept a plain_sockets
7494         argument in which case it will bench plain sockets instead of
7495         libdbus, for comparison purposes.
7496
7497 2004-11-22  Havoc Pennington  <hp@redhat.com>
7498
7499         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7500         threads for more time, so sysprof can get a grip on it.
7501
7502         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7503         pointless variable
7504
7505 2004-11-13  Havoc Pennington  <hp@redhat.com>
7506
7507         * test/glib/test-profile.c: fix this thing up a bit
7508
7509         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7510         preallocation sizes by a fair bit; not sure if this will be an
7511         overall performance win or not, but it does reduce reallocs.
7512
7513         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7514         the test hack that forced constant realloc if asserts are
7515         disabled, so we can profile sanely. Sprinkle in some
7516         _DBUS_UNLIKELY() which are probably pointless, but before I
7517         noticed the real performance problem I put them in.
7518         (_dbus_string_validate_utf8): micro-optimize this thing a little
7519         bit, though callgrind says it didn't help; then special-case
7520         ascii, which did help a lot; then be sure we detect nul bytes as
7521         invalid, which is a bugfix.
7522         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7523         superstition; use memset to nul the padding instead of a manual
7524         loop.
7525         (_dbus_string_get_length): inline this as a
7526         macro; it showed up in the profile because it's used for loop
7527         tests and so forth
7528
7529 2004-11-10  Colin Walters  <walters@verbum.org>
7530
7531         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7532         for extra paranoia.
7533
7534 2004-11-09  Colin Walters  <walters@verbum.org>
7535
7536         * dbus/dbus-string.c (_dbus_string_get_length): New
7537         function, writes DBusString to C buffer.
7538
7539         * dbus/dbus-string.h: Prototype it.
7540
7541         * dbus/dbus-message.c (dbus_message_type_to_string): New
7542         function, converts message type into C string.
7543
7544         * dbus/dbus-message.h: Prototype it.
7545
7546         * bus/selinux.c (bus_selinux_check): Take source pid,
7547         target pid, and audit data.  Pass audit data to
7548         avc_has_perm.
7549         (log_audit_callback): New function, appends extra
7550         audit information.
7551         (bus_selinux_allows_acquire_service): Also take
7552         service name, add it to audit data.
7553         (bus_selinux_allows_send): Also take message
7554         type, interface, method member, error name,
7555         and destination, and add them to audit data.
7556         (log_cb): Initialize func_audit.
7557         
7558         * bus/selinux.h (bus_selinux_allows_acquire_service)
7559         (bus_selinux_allows_send): Update prototypes 
7560
7561         * bus/services.c (bus_registry_acquire_service): Pass
7562         service name to bus_selinux_allows_acquire_service.
7563
7564         * bus/bus.c (bus_context_check_security_policy): Pass
7565         additional audit data.  Move assignment of dest
7566         to its own line.
7567
7568 2004-11-07  Colin Walters  <walters@verbum.org>
7569
7570         * dbus/dbus-transport-unix.c (do_authentication): Always
7571         initialize auth_completed.
7572         
7573 2004-11-07  Colin Walters  <walters@verbum.org>
7574
7575         * bus/bus.c (load_config): Break into three
7576         separate functions: process_config_first_time_only,
7577         process_config_every_time, and process_config_postinit.
7578         (process_config_every_time): Move call of
7579         bus_registry_set_service_context_table into
7580         process_config_postinit.
7581         (process_config_postinit): New function, does
7582         any processing that needs to happen late
7583         in initialization (and also on reload).
7584         (bus_context_new): Instead of calling load_config,
7585         open config parser here and call process_config_first_time_only
7586         and process_config_every_time directly.  Later, after
7587         we have forked but before changing UID,
7588         invoke bus_selinux_full_init, and then call
7589         process_config_postinit.
7590         (bus_context_reload_config): As in bus_context_new,
7591         load parse file inside here, and call process_config_every_time
7592         and process_config_postinit.
7593
7594         * bus/services.h, bus/services.c
7595         (bus_registry_set_service_context_table): Rename
7596         from bus_registry_set_sid_table.  Take string hash from config
7597         parser, and convert them here into SIDs.
7598
7599         * bus/config-parser.c (struct BusConfigParser): Have
7600         config parser only store a mapping of service->context
7601         string.
7602         (merge_service_context_hash): New function.
7603         (merge_included): Merge context string hashes instead
7604         of using bus_selinux_id_table_union.
7605         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7606         simply create a new string hash.
7607         (bus_config_parser_unref): Unref it.
7608         (start_selinux_child): Simply insert strings into hash,
7609         don't call bus_selinux_id_table_copy_over.
7610
7611         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7612         (bus_selinux_id_table_copy_over): Delete.
7613
7614 2004-11-03  Colin Walters  <walters@verbum.org>
7615
7616         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7617         variables.
7618         
7619 2004-11-03  Colin Walters  <walters@verbum.org>
7620
7621         * bus/test-main.c (test_pre_hook): Fix test logic,
7622         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7623
7624 2004-11-02  Colin Walters  <walters@redhat.com>
7625
7626         * bus/selinux.c (bus_selinux_init): Split into two functions,
7627         bus_selinux_pre_init and bus_selinux_post_init.
7628         (bus_selinux_pre_init): Just determine whether SELinux is
7629         enabled.
7630         (bus_selinux_post_init): Do everything else.
7631
7632         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7633         config file, and bus_selinux_post_init after.  This ensures that
7634         we don't lose the policyreload notification thread that
7635         bus_selinux_init created before forking previously.
7636         
7637         * bus/test-main.c (test_pre_hook): Update for split.
7638
7639 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7640
7641         Patch from Johan Fischer <linux@fischaz.com>
7642         
7643         * mono/doc/Makefile.am (install-data-local): Added directory
7644         install for DESTDIR
7645
7646 2004-10-29  Colin Walters  <walters@redhat.com>
7647
7648         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7649         parameter for fd to write pid to.       
7650
7651         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7652         
7653         * bus/bus.c (bus_context_new): Pass print_pid_fd
7654         to _dbus_become_daemon (bug #1720)
7655
7656 2004-10-29  Colin Walters  <walters@redhat.com>
7657
7658         Patch from Ed Catmur <ed@catmur.co.uk>
7659
7660         * mono/doc/Makefile.am (install-data-local): Handle
7661         DESTDIR.
7662
7663 2004-10-29  Colin Walters  <walters@redhat.com>
7664
7665         * bus/.cvsignore, qt/.cvsignore: Update.
7666
7667 2004-10-29  Colin Walters  <walters@redhat.com>
7668
7669         Patch from Kristof Vansant <de_lupus@pandora.be>
7670
7671         * configure.in: Detect Slackware.
7672         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7673         * bus/rc.messagebus.in: New file.
7674
7675 2004-10-29  Colin Walters  <walters@redhat.com>
7676
7677         * tools/dbus-monitor.c (filter_func): Return
7678         DBUS_HANDLER_RESULT_HANDLED in filter function
7679         for now.  See:
7680         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7681
7682 2004-10-29  Colin Walters  <walters@redhat.com>
7683
7684         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7685
7686         * bus/services.c (bus_registry_acquire_service): 
7687         Correctly retrieve service name from DBusString
7688         for printing.
7689
7690 2004-10-29  Colin Walters  <walters@redhat.com>
7691
7692         * dbus/dbus-glib.h: Update documentation to not
7693         refer to internal APIs.
7694
7695 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7696
7697         * mono/Arguments.cs (GetDBusTypeConstructor):
7698         type.UnderlyingSystemType will return "System.Byte" if you do it
7699         on "byte[]", which is not what we want.  So check the type.IsArray
7700         property and use System.Array instead.
7701
7702 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7703
7704         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7705         the DBusUserInfo structure since this is passed into the function.
7706         This would cause a double free when the function that allocated
7707         the structure would try to free it when an error occured.
7708
7709         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7710         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7711         for service activation to avoid 32bit/64bit parallel install issues
7712
7713 2004-10-21  Colin Walters  <walters@verbum.org>
7714
7715         * AUTHORS: Fix my email address, the @gnu.org one
7716         has been bouncing for some time.  Also add J5.
7717         
7718 2004-10-21  Colin Walters  <walters@verbum.org>
7719
7720         * dbus/dbus-transport-unix.c (do_authentication): Return
7721         authentication status to callers.
7722         (unix_handle_watch): If we completed authentication this round,
7723         don't do another read.  Instead wait until the next iteration,
7724         after we've read any pending data in the auth buffer.
7725         (unix_do_iteration): Ditto.
7726         (unix_handle_watch): Updated for new do_authentication prototype.
7727
7728 2004-10-18  Colin Walters  <walters@verbum.org>
7729
7730         * bus/selinux.c (bus_selinux_enabled): Handle
7731         --disable-selinux case.
7732         
7733 2004-10-18  Colin Walters  <walters@verbum.org>
7734
7735         * bus/selinux.h: Add bus_selinux_enabled.
7736         
7737         * bus/selinux.c (bus_selinux_enabled): Implement it.
7738         
7739         * bus/config-parser.c (struct include): Add
7740         if_selinux_enabled member.
7741         (start_busconfig_child): Parse if_selinux_enabled
7742         attribute for include.
7743         (bus_config_parser_content): Handle it.
7744
7745         * bus/session.conf.in, bus/system.conf.in: Add
7746         inclusion of context mapping to default config files;
7747         conditional on SELinux being enabled.
7748         
7749         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7750         
7751         * test/data/invalid-config-files/badselinux-1.conf, 
7752         test/data/invalid-config-files/badselinux-2.conf:
7753         Test files for bad syntax.
7754         
7755 2004-10-17  Colin Walters  <walters@verbum.org>
7756
7757         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7758         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7759         format specifier mismatches.
7760
7761 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7762
7763         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7764         format string.
7765
7766         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7767         pointer (bug #1540, Leonardo Boiko).
7768
7769 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7770
7771         * mono/BusDriver.cs: Changed BusDriver struct to remove
7772         the ServiceCreated and ServiceDeleted events and replace them
7773         with the new ServiceOwnerChanged event.
7774
7775         * mono/example/BusListener.cs: Added a new example program,
7776         which listens for and reports any ServiceOwnerChanged events
7777         on the bus driver.
7778
7779         * mono/example/Makefile.am (DESTDIR): Build changes for the
7780         new BusListener.cs example.
7781
7782 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7783
7784         * bus/signals.c (bus_match_rule_parse): validate the components of
7785         match rules (bug #1439).
7786
7787         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7788
7789 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7790
7791         * doc/dbus-specification.xml: document ServiceOwnerChanged
7792         signal.
7793         
7794         * bus/driver.c, bus/driver.h, bus/services.c: Use
7795         ServiceOwnerChanged signal instead of ServiceCreated and
7796         ServiceDeleted.
7797         
7798         * bus/dispatch.c: update testcase for the new signal.
7799
7800 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7801
7802         Patch from Nat Friedman <nat@novell.com>
7803
7804         * mono/Makefile.am: A number of small build fixes to allow "make
7805         distcheck" to succeed.
7806
7807         * mono/example/Makefile.am: "make distcheck" fixes.
7808
7809         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7810         key in @srcdir@.
7811
7812         * test/Makefile.am: "make distcheck" fixes.
7813
7814 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7815
7816         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7817
7818         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7819
7820         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7821         messages after the first one (bug #1389).
7822         
7823         * bus/dispatch.c (check_double_hello_message): add a test case for
7824         the double hello message bug.
7825         (check_existent_service_activation): fix check of spawning error.
7826         
7827 2004-09-16  David Zeuthen  <david@fubar.dk>
7828
7829         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7830
7831 2004-09-12  David Zeuthen  <david@fubar.dk>
7832
7833         Patch from Kay Sievers <kay.sievers@vrfy.org>
7834
7835         * bus/bus.c (bus_context_new):
7836         * bus/bus.h:
7837         * bus/main.c (usage)
7838         (main):
7839         Add commandline option --nofork to override configuration file
7840         setting.
7841
7842 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7843
7844         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7845         compilers don't like it (bug #974).
7846
7847 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7848
7849         * qt/connection.*: Applied patch by Jérôme Lodewyck
7850         <lodewyck@clipper.ens.fr> to integrate an existing
7851         connection into the Qt eventloop
7852
7853 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7854
7855         * mono/BusDriver.cs: Added.  This is a class for interacting with
7856         the org.freedesktop.DBus service.
7857
7858         * mono/Message.cs: Added a mechanism to expose the message that is
7859         currently being dispatched via the static Message.Current
7860         property.  Added Message.Sender and Message.Destination
7861         properties.
7862
7863         * mono/Handler.cs: Expose the dispatched message via
7864         Message.Current when handling method calls.
7865
7866         * mono/Service.cs: Expose the dispatched message via
7867         Message.Current when handling signal emissions.
7868         
7869         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7870         Connection.BaseService property.
7871
7872 2004-08-28  Havoc Pennington  <hp@redhat.com>
7873
7874         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7875
7876         More fixes from Steve Grubb
7877         
7878         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7879         (_dbus_listen_tcp_socket): fix fd leak
7880
7881         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7882         EINTR to a bit lower in the code
7883
7884 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7885
7886         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7887         TRUE if we are inquiring about the existence of the built-in
7888         org.freedesktop.DBus service.
7889
7890 2004-08-25  John Palmieri  <johnp@redhat.com>
7891         * bus/config-parser.c:
7892         (struct PolicyType): Add POLICY_CONSOLE
7893         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7894         (start_busconfig_child): Sets up console element when
7895         <policy at_console=""> is encountered in a policy file
7896         (append_rule_from_element): Convert console elements to console
7897         rules.
7898
7899         * bus/policy.c: 
7900         (bus_policy_create_client_policy): Add console rules to the client
7901         policy based on if the client is at the console
7902         (bus_policy_append_console_rule): New function for adding a
7903         console rule to a policy
7904         (bus_policy_merge): Handle console rule merging
7905
7906         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7907         where we check for console user files
7908         
7909         * dbus/dbus-sysdeps.c:
7910         (_dbus_file_exists): New function which checks if the given
7911         file exists
7912         (_dbus_user_at_console): New function which does the system
7913         specific process of checking if the user is at the console
7914
7915         * dbus/dbus-userdb.c:
7916         (_dbus_is_console_user): New function converts a UID to user name
7917         and then calls the system specific _dbus_user_at_console to 
7918         see if the user is at the console and therefor a console user
7919
7920 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7921
7922         * bus/config-parser.c (set_limit):
7923         * bus/dbus-daemon-1.1.in:
7924         * test/data/valid-config-files/many-rules.conf: set the
7925         max_match_rules_per_connection limt from the config file. 
7926
7927         * doc/busconfig.dtd: update the DTD.
7928
7929         * bus/driver.c: remove some unused variables.
7930
7931 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7932
7933         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7934         it's been replaced by dbus_g_bus_get
7935
7936 2004-08-23  Colin Walters  <walters@redhat.com>
7937
7938         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7939
7940         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7941
7942         * bus/selinux.c: Create a thread for policy reload notification.
7943         (bus_selinux_get_policy_root): Implement.
7944
7945         * bus/config-parser.c (start_busconfig_child)
7946         (bus_config_parser_content): Support SELinux-root relative
7947         inclusion.
7948
7949         * configure.in <HAVE_SELINUX>: Add -lpthread.
7950         
7951         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7952         (test_post_hook): Move memory checking into here.
7953         (test_pre_hook, test_post_hook): Move SELinux checks in
7954         here, but conditional on a DBUS_TEST_SELINUX environment
7955         variable.  Unfortunately we can't run the SELinux checks
7956         as a normal user, since they won't have any permissions
7957         for /selinux.  So this will have to be tested manually
7958         for now, until we have virtualization for most of
7959         libselinux.
7960         
7961 2004-08-23  Havoc Pennington  <hp@redhat.com>
7962
7963         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7964         drop supplementary groups, suggested by Steve Grubb
7965
7966 2004-08-20  Colin Walters  <walters@redhat.com>
7967
7968         * bus/config-parser.c (start_busconfig_child): Remove some unused
7969         variables.
7970         
7971         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7972         warning.
7973
7974 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7975
7976         * configure.in: If --enable-mono is passed in, if we can't find
7977         mono error out.
7978
7979         * mono/Makefile.am: Use /gacutil to install assemblies into the
7980         GAC and not /root.
7981
7982 2004-08-12  Havoc Pennington  <hp@redhat.com>
7983
7984         * NEWS: update for 0.22
7985
7986         * configure.in: release 0.22
7987
7988 2004-08-11  Colin Walters  <walters@redhat.com>
7989
7990         * tools/dbus-send.c (main, usage): Add --reply-timeout
7991         argument.
7992
7993 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7994
7995         * bus/bus.c (process_config_first_time_only): get rid of an unused
7996         DBusError that was causing a memoy leak (bug #989).
7997
7998         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7999         fix compilation on Solaris/Forte C (bug #974)
8000
8001         * bus/main.c (main): plug two minuscule memleaks.
8002
8003 2004-08-10  Havoc Pennington  <hp@redhat.com>
8004
8005         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8006
8007 2004-08-09  Havoc Pennington  <hp@redhat.com>
8008
8009         * COPYING: switch to Academic Free License version 2.1 instead of
8010         2.0, to resolve complaints about patent termination clause.
8011
8012 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8013
8014         * README: added documentation for the --enable-python 
8015         configure switch.
8016
8017 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8018
8019         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8020         _unref in the SELinux support.
8021
8022         * doc/busconfig.dtd: update DTD for SELinux support.
8023
8024         * bus/config-loader-libxml.c: fix error handler and parser
8025         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8026
8027         * configure.in: remove the warning about libxml2.
8028
8029         * dbus/dbus-bus.c: silence doxygen warning.
8030
8031 2004-07-31  Colin Walters  <walters@redhat.com>
8032
8033         * configure.in: Move #error in SELinux check to its own line.
8034
8035 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8036
8037         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8038         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8039         dbus_error_set.
8040
8041         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8042         broken by the change in the _SET_OOM macros.
8043
8044 2004-07-31  Colin Walters  <walters@redhat.com>
8045
8046         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8047         BUS_SET_OOM.
8048
8049 2004-07-31  Colin Walters  <walters@redhat.com>
8050
8051         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8052         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8053         AC_MSG_CHECKING.
8054
8055 2004-07-24  Havoc Pennington  <hp@redhat.com>
8056
8057         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8058
8059         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8060         functionality
8061
8062         * configure.in: add --enable-selinux
8063         
8064         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8065
8066         * bus/main.c (main): initialize and shut down selinux
8067
8068         * bus/connection.c: store SELinux ID on each connection, to avoid 
8069         repeated getting of the string context and converting it into 
8070         an ID
8071
8072         * bus/bus.c (bus_context_get_policy): new accessor, though it
8073         isn't used
8074         (bus_context_check_security_policy): check whether the security
8075         context of sender connection can send to the security context of
8076         recipient connection
8077
8078         * bus/config-parser.c: add parsing for <selinux> and <associate>
8079         
8080         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8081         implement dbus_connection_get_unix_fd()
8082
8083         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8084         function, used by the selinux stuff
8085         
8086 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8087
8088         * bus/config-loader-libxml.c: complete the implementation of
8089         libxml backend for config file loader. Doesn't work with full OOM
8090         test yet. 
8091         
8092         * configure.in: change error when selecting libxml into a warning.
8093         
8094         * test/data/invalid-config-files: add two non-well-formed XML
8095         files. 
8096         
8097         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8098         
8099         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8100         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8101         be necessary to read all the buffer. (bug #894)
8102
8103         * bus/activation.c (bus_activation_activate_service): fix a
8104         potential assertion failure (bug #896). Small optimization in the
8105         case of auto-activation messages.
8106
8107         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8108         add test case for byte-through-vararg bug (#901). patch by Kimmo
8109         Hämäläinen. 
8110
8111 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8112
8113         * python/dbus.py:
8114         * python/dbus_bindings.pyx.in:
8115         Add dbus.init_gthreads (), allow emit_signal to pass
8116         arguments to the signal.
8117         
8118 2004-07-24  Havoc Pennington  <hp@redhat.com>
8119
8120         * AUTHORS: add some people, not really comprehensively, let me
8121         know if I missed you
8122
8123 2004-07-24  Havoc Pennington  <hp@redhat.com>
8124
8125         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8126         Owen
8127
8128         * test/Makefile.am (DIST_SUBDIRS): here also
8129
8130 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8131
8132         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8133         breaking build on Solaris, reported by Farhad Saberi on the ML.
8134
8135         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8136         va_arg invocation to account for integer promotion in the case of
8137         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8138
8139         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8140         _dbus_list_get_first_link, not _dbus_list_get_first.
8141
8142         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8143
8144         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8145         handler functions so that the asserts in _dbus_object_subtree_unref
8146         do not fail.
8147
8148         * dbus/dbus-transport-unix.c (do_reading):
8149         _dbus_transport_queue_messages return value is of type
8150         dbus_bool_t, not DBusDispatchStatus.
8151         
8152 2004-07-19  David Zeuthen  <david@fubar.dk>
8153
8154         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8155
8156         * bus/dispatch.c:
8157         (check_get_connection_unix_user): Debug says GetProperty; but the
8158         method is called GetConnectionUnixUser
8159         (check_get_connection_unix_process_id): New function
8160         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8161         also call check_get_connection_unix_process_id()
8162         
8163         * bus/driver.c:
8164         (bus_driver_handle_get_connection_unix_process_id): New function,
8165         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8166         interface
8167         
8168         * dbus/dbus-auth.c:
8169         (handle_server_data_external_mech): Set pid from the credentials
8170         obtained from the socket
8171         
8172         * dbus/dbus-connection.c:
8173         (dbus_connection_get_unix_process_id): New function
8174         
8175         * dbus/dbus-connection.h: 
8176         Add prototype for dbus_connection_get_unix_process_id
8177         
8178         * dbus/dbus-transport.c:
8179         (_dbus_transport_get_unix_process_id): New function
8180         
8181         * dbus/dbus-transport.h:
8182         Add prototype for _dbus_transport_get_unix_process_id
8183         
8184 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8185
8186         * dbus/dbus-message.c: Message counter fix, patch by Christian
8187         Hammond <chipx86@gnupdate.org>
8188
8189 2004-07-18  Seth Nickell  <seth@gnome.org>
8190
8191         * python/dbus.py:
8192         * python/dbus_bindings.pyx.in:
8193         * python/tests/test-client.py:
8194
8195         Add dbus.ByteArray and dbus_bindings.ByteArray
8196         types so that byte streams can be passed back.
8197
8198         Give jdahlin the heaps of credit that are so
8199         rightfully his.
8200         
8201 2004-07-12  Seth Nickell  <seth@gnome.org>
8202
8203         * python/dbus.py:
8204
8205         Add message argument to the default object_method_handler
8206         function.
8207         
8208         * python/dbus_bindings.pyx.in:
8209
8210         Automatically return NIL when passed an empty list
8211         (we can't pass back a list since lists are typed
8212         and we don't have any idea what type the the client
8213         intended the list to be... :-( )
8214         
8215 2004-07-10  Seth Nickell  <seth@gnome.org>
8216
8217         * python/examples/Makefile.am:
8218
8219         Fix distcheck breakage caused by new examples.
8220
8221 2004-07-10  Seth Nickell  <seth@gnome.org>
8222
8223         * python/dbus.py:
8224
8225         Add "message" argument to service-side dbus.Object
8226         methods. This will break existing services written
8227         using the python bindings, but will allow extraction
8228         of all the message information (e.g. who its from).
8229
8230         Add improved "object oriented" signal handling/emission.
8231         
8232         * python/examples/example-service.py:
8233
8234         Nix this example.
8235         
8236         * python/examples/example-signal-emitter.py:
8237         * python/examples/example-signal-recipient.py:
8238
8239         Two new examples that show how to emit and receive
8240         signals using the new APIs.
8241         
8242         * python/examples/example-signals.py:
8243         * python/examples/gconf-proxy-service.py:
8244         * python/examples/gconf-proxy-service2.py:
8245
8246         Add "message" argument to service methods.
8247
8248 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8249
8250         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8251         * dbus/bus.c (dbus_bus_get_unix_user)
8252         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8253         method of org.freedesktop.DBus interface.
8254
8255         * bus/dispatch.c: test case
8256
8257 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8258
8259         * python/Makefile.am: switched include directory from glib/ to dbus/
8260         since dbus-glib.h moved
8261  
8262 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8263
8264         * configure.in: prevent building the gcj stuff and libxml loader
8265         since they are broken.
8266
8267 2004-06-20  Havoc Pennington  <hp@redhat.com>
8268
8269         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8270         codes from the dbus error names
8271         
8272         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8273         as dbus/dbus-glib.h and that breakage is now visible due to 
8274         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8275         
8276         * glib/dbus-glib.h: s/gproxy/g_proxy/
8277
8278         * dbus/dbus-shared.h: new header to hold stuff shared with
8279         binding APIs
8280         
8281         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8282         than dbus-errors.h
8283
8284         * glib/dbus-glib.h (dbus_set_g_error): move to
8285         dbus-glib-lowlevel.h
8286
8287         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8288         of stuff to enable this
8289
8290         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8291
8292         * a bunch of other changes with the same basic "separate glib 
8293         bindings from dbus.h" theme
8294         
8295 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8296
8297         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8298
8299         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8300
8301 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8302
8303         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8304         the reply value of the ServiceExists message.
8305
8306 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8307
8308         * python/dbus_bindings.pyx.in: No longer need to parse path
8309         elements and pass them as arrays of strings.  The C API now
8310         accepts plain path strings.
8311         (_build_parsed_path): removed 
8312
8313 2004-06-07  Havoc Pennington  <hp@redhat.com>
8314
8315         * doc/TODO: remove auto-activation item since it's done; sort
8316         items by importance/milestone
8317
8318 2004-06-07  Havoc Pennington  <hp@redhat.com>
8319
8320         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8321         random signature when using REQUIRED_FIELDS (this hack won't work
8322         in the long term)
8323
8324         * dbus/dbus-message.c: change the signature to be a header field,
8325         instead of message->signature special-case string. Incremental
8326         step forward. Then we can fix up code to send the signature in the
8327         message, then fix up code to validate said signature, then fix up
8328         code to not put the typecodes inline, etc.
8329         (load_one_message): don't make up the signature after the fact
8330         (decode_header_data): require signature field for the known
8331         message types
8332
8333         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8334
8335         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8336
8337 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8338
8339         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8340
8341         * mono/Handler.cs: Updated to follow new path argument for
8342         (un-)registering objects.
8343
8344         * mono/example/Makefile.am:
8345         * mono/Makefile.am:
8346         * configure.in: Bumped required version for mono and use new -pkg
8347         syntax for deps
8348
8349 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8350
8351         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8352         registration functions take the path argument as char* instead of
8353         char**.
8354
8355         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8356         split off the path decompostion part of
8357         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8358         warnings. 
8359
8360         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8361         
8362 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8363  
8364         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8365         machine approach.  A state is implemented as a function that
8366         handles incoming events as specified for that state.
8367         
8368         * doc/dbus-specification.xml: Update auth protocol state machine
8369         specification to match implementation.  Remove some leftover
8370         base64 examples.
8371
8372 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8373
8374         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8375         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8376         quiet doxygen.
8377
8378         * Doxyfile.in: remove deprecated options.
8379
8380         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8381         glib/test-thread.h, glib/test-thread-client.c,
8382         glib/test-thread-server.c, glib/test-profile.c,
8383         glib/test-dbus-glib.c: remove these unused files.
8384
8385 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8386
8387         * dbus/dbus-object-tree.c
8388         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8389         non-fallback handlers (bug #684).
8390         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8391         (find_subtree_recurse): report wether the returned subtree is an
8392         exact match or a "fallback" match higher up in the tree.
8393         (object_tree_test_iteration): update test case.
8394
8395 2004-06-01  Seth Nickell  <seth@gnome.org>
8396
8397         * python/dbus_bindings.pyx.in:
8398         * python/tests/test-client.py:
8399
8400         Round off basic type support. Add dicts (yay!), and 
8401         remaining array types.
8402
8403         Make MessageIter more general so it works for dicts too.
8404
8405         Mark all loop variables as C integers.
8406         
8407 2004-05-31  Havoc Pennington  <hp@redhat.com>
8408
8409         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8410         "in" before "out"
8411
8412         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8413
8414         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8415         option that runs the tests, and start filling in some code
8416         including for starters just dumping the interfaces to stdout
8417
8418         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8419
8420         * test/data/valid-introspection-files/lots-of-types.xml: test of
8421         an example introspection file
8422
8423         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8424         "node" (I think...)
8425
8426 2004-05-31  Seth Nickell  <seth@gnome.org>
8427
8428         * python/dbus_bindings.pyx.in:
8429         * python/tests/test-client.py:
8430
8431         Test Suite: 1
8432         Python Bindings: 0
8433
8434         Fix string array memory trashing bug... oops...
8435
8436 2004-05-30  Seth Nickell  <seth@gnome.org>
8437
8438         * python/dbus.py:
8439
8440         Add a nicer-but-less-flexible alternate API for handling 
8441         calls to virtual objects in dbus.ObjectTree.
8442
8443         Screw up the argument order to the dbus.Object constructor
8444         for consistency with dbus.ObjectTree (and to make dbus_methods
8445         optional for future extension)
8446         
8447         * python/examples/Makefile.am:
8448         * python/examples/gconf-proxy-service.py:
8449         * python/examples/gconf-proxy-service2.py:
8450
8451         Alternate implementation of gconf-proxy-service using the
8452         nicer dbus.ObjectTree API.
8453         
8454         * python/examples/example-service.py:
8455         * python/tests/test-server.py
8456
8457         Reverse the argument order to deal with dbus.Object constructor
8458         changes.
8459         
8460 2004-05-30  Seth Nickell  <seth@gnome.org>
8461
8462         * python/examples/example-client.py:
8463         * python/examples/example-service.py:
8464
8465         Take it back. Lists seem to work but they're broken
8466         in the test suite. Make the base examples use
8467         lists (works fine).
8468
8469 2004-05-30  Seth Nickell  <seth@gnome.org>
8470
8471         * python/dbus_bindings.pyx.in:
8472         * python/tests/test-client.py:
8473
8474         Add some more tests and fix errors that crop up.
8475         Unfortunately, currently it seems like marshalling
8476         and unmarshalling of lists is completely broken :-(
8477
8478 2004-05-30  Seth Nickell  <seth@gnome.org>
8479
8480         * python/dbus_bindings.pyx.in:
8481
8482         Add support for ObjectPath type.
8483
8484         * python/dbus.py:
8485
8486         Refactor message handling code to a common function.
8487         
8488         * python/tests/test-client.py:
8489         * python/tests/test-server.py:
8490
8491         Add tests that check to make sure values of all types
8492         can be echoed from a service w/o mangling.
8493         
8494 2004-05-29  Seth Nickell  <seth@gnome.org>
8495
8496         * python/dbus.py:
8497
8498         Add ObjectTree class which allows implementation
8499         of trees of "virtual" objects. Basically the python
8500         wrapper for "register_fallback".
8501         
8502         * python/examples/Makefile.am
8503         * python/examples/gconf-proxy-client.py:
8504         * python/examples/gconf-proxy-service.py:
8505
8506         Implement a simple GConf proxy service that supports
8507         get/set on string and int GConf keys using the ObjectTree.
8508         
8509 2004-05-29  Seth Nickell  <seth@gnome.org>
8510
8511         * python/dbus.py:
8512         * python/examples/example-client.py:
8513         * python/examples/example-service.py:
8514         * python/examples/list-system-services.py:
8515
8516         Add SessionBus, SystemBus and ActivationBus classes
8517         so you don't need to know the special little BUS_TYPE
8518         flag.
8519         
8520 2004-05-29  Havoc Pennington  <hp@redhat.com>
8521
8522         * bus/config-parser.c (process_test_valid_subdir): temporarily
8523         stop testing config parser OOM handling, since expat has issues
8524         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8525
8526         * bus/dbus-daemon-1.1.in: change requested_reply to
8527         send_requested_reply/receive_requested_reply so we can send the
8528         replies, not just receive them.
8529
8530         * bus/config-parser.c: parse the new
8531         send_requested_reply/receive_requested_reply
8532
8533         * bus/policy.c (bus_client_policy_check_can_send): add
8534         requested_reply argument and use it
8535
8536         * bus/bus.c (bus_context_check_security_policy): pass through
8537         requested_reply status to message send check
8538
8539         * bus/system.conf.in: adapt to requested_reply change
8540         
8541 2004-05-28  Havoc Pennington  <hp@redhat.com>
8542
8543         * test/glib/test-service-glib.c (main): remove unused variable
8544
8545         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8546
8547         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8548         from the enum, no longer in use.
8549
8550         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8551         works right.
8552
8553         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8554         whether error_name passed in is a valid error name.
8555
8556 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8557
8558         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8559         OBJECT_PATH and OBJECT_PATH_ARRAY
8560
8561 2004-05-28  Seth Nickell  <seth@gnome.org>
8562
8563         * python/examples/Makefile.am:
8564
8565         Forget to add Makefile.am. Do not pass go.
8566
8567 2004-05-28  Michael Meeks  <michael@ximian.com>
8568
8569         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8570         fix no int64 case.
8571
8572         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8573
8574         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8575         (_dbus_message_iter_get_basic_type_array): impl.
8576         drastically simplify ~all relevant _get methods to use these.
8577         (_dbus_message_iter_append_basic_array),
8578         (dbus_message_iter_append_basic): impl
8579         drastically simplify ~all relevant _append methods to use these.
8580
8581         * dbus/dbus-message-builder.c (parse_basic_type) 
8582         (parse_basic_array, lookup_basic_type): impl.
8583         (_dbus_message_data_load): prune scads of duplicate /
8584         cut & paste coding.
8585
8586         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8587         (_dbus_demarshal_basic_type): implement,
8588         (demarshal_and_validate_len/arg): beef up debug.
8589         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8590
8591 2004-05-27  Seth Nickell  <seth@gnome.org>
8592
8593         * configure.in:
8594         * python/Makefile.am:
8595
8596         Include the example python apps in the tarball.
8597         
8598         * python/examples/list-system-services.py
8599
8600         Add a python new example that fetches the list of services
8601         from the system bus.
8602         
8603 2004-05-27  Seth Nickell  <seth@gnome.org>
8604
8605         * python/dbus.py:
8606         * python/dbus_bindings.pyx.in:
8607
8608         Fix failure to notify that a signal was not handled,
8609         resulted in hung functions.
8610         
8611 2004-05-25  Colin Walters  <walters@redhat.com>
8612
8613         * tools/dbus-monitor.c (main): Monitor all types of messages.
8614
8615 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8616
8617         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8618         which unregisters the object path and disposes the handler.
8619
8620 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8621  
8622         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8623          
8624         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8625         operands to && so we call dbus_message_iter_next () for the last
8626         argument also.
8627
8628 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8629
8630         * dbus/dbus-object-tree.c
8631         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8632         children even if the requested path isn't registered.
8633         (object_tree_test_iteration): test object_tree_list_registered.
8634
8635         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8636         it to 0.
8637         
8638 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8639
8640         * doc/TODO: Remove resolved items.
8641
8642         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8643         field.
8644         
8645         * bus/connection.c (bus_connections_expect_reply): Enforce the
8646         per-connection limit on pending replies.
8647         
8648         Patch from Jon Trowbridge <trow@ximian.com>:
8649  
8650         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8651         up a watch that triggers a config reload when one end of the pipe
8652         becomes readable.
8653         (signal_handler): Instead of doing the config reload in our SIGHUP
8654         handler, just write to the reload pipe and let the associated
8655         watch handle the reload when control returns to the main loop.
8656  
8657         * bus/driver.c (bus_driver_handle_reload_config): Added.
8658         Implements a ReloadConfig method for requesting a configuration
8659         file reload via the bus driver.
8660  
8661 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8662
8663         * HACKING: Updated release instructions concerning the wiki page.
8664
8665 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8666
8667         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8668         filter against auth->allowed_mechs; we only add allowed mechs in
8669         record_mechanisms().
8670  
8671         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8672         ALLOWED_MECHS to auth-script format so we can set the list of
8673         allowed mechanisms.
8674  
8675         * data/auth/client-out-of-mechanisms.auth-script: New test to
8676         check client disconnects when it is out of mechanisms to try.
8677  
8678         * dbus/dbus-auth.c (process_command): Remove check for lines
8679         longer that 1 MB; we only buffer up maximum 16 kB.
8680  
8681         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8682         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8683         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8684         assume there might be unused bytes.
8685  
8686         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8687         client-out-of-mechs, it is handled in process_reject(). Move check
8688         for max failures to send_rejected(), as it's a server-only thing.
8689
8690         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8691         send_auth(), send_data(), send_rejected(), send_error(),
8692         send_ok(), send_begin() and send_cancel().
8693
8694 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8695
8696         Remove base64 encoding, replace with hex encoding. Original patch
8697         from trow@ximian.com, added error handling.
8698
8699         * dbus/dbus-string.c (_dbus_string_base64_encode)
8700         (_dbus_string_base64_decode): Remove.
8701         (_dbus_string_hex_decode): Add end_return argument so we can
8702         distinguish between OOM and invalid hex encoding.
8703         (_dbus_string_test): Remove base64 tests and add test case for
8704         invalid hex.
8705
8706         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8707         Replace base64 with hex.
8708
8709         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8710         for invalid hex encoded data in auth protocol.
8711
8712 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8713
8714         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8715         leak.
8716
8717 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8718
8719         * mono/dbus-sharp.dll.config.in: Added for GAC
8720         * mono/dbus-sharp.snk: Added for GAC
8721         * mono/Assembly.cs.in: Added for GAC
8722         * mono/Makefile.am: Changes for GAC installation        
8723         * configure.in: Added refs for dbus-sharp.dll.config.in and
8724         Assembly.cs.in. More fixes for mono testing
8725         * mono/example/Makefile.am: Changed var to CSC
8726         * Makefile.am: Changed flag name to DBUS_USE_CSC
8727
8728 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8729
8730         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8731         * mono/doc/*: Added documentation framework
8732         * configure.in: Added monodoc check
8733         * README: Added description of mono configure flags
8734
8735 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8736
8737         * doc/dbus-specification.xml: Added a "Required" column to the 
8738         header fields table and changed the "zero or more" verbage in
8739         the above paragraph to read "The header must contain the required 
8740         named header fields and zero or more of the optional named header 
8741         fields".
8742         * test/data/invalid-messages/*.message: Added the required PATH 
8743         named header field to the tests so that they don't fail on 
8744         'Missing path field'
8745
8746 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8747
8748         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8749         the stack by implicitly defining variable and parameter types and
8750         removing the hack of defining C pointers as python objects and later
8751         casting them.
8752
8753 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8754
8755         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8756
8757 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8758
8759         * mono/DBusType/Dict.cs: Handle empty dicts
8760         * mono/DBusType/Array.cs: Handle empty arrays
8761         * mono/Arguments.cs: Handle empty arguments
8762
8763 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8764
8765         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8766         field
8767
8768 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8769
8770         * test/data/valid-messages/standard-*.message: Update message
8771         test scripts to new header field names.
8772
8773 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8774
8775         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8776         overflow to times_we_did_each_thing array which would chop off the
8777         first character of the failure_dir string. Increased the size of
8778         the array to 7 to reflect the number of random mutation functions
8779         we have.
8780
8781 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8782
8783         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8784         unix_server->watch here, it is unreffed in disconnect.
8785         (_dbus_server_new_for_tcp_socket): convert NULL host to
8786         "localhost" here so we don't append NULL to address.
8787         
8788         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8789         various addresses, including tcp with no explicit host.
8790
8791 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8792
8793         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8794         fix incorrect setting of .name_offset in the HeaderField (it was
8795         off by two bytes, positioned right after the name and typecode)
8796
8797         * bus/bus.c (bus_context_new, bus_context_unref): test before
8798         calling dbus_server_free_data_slot and _dbus_user_database_unref
8799         in case of an error.
8800
8801         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8802         by libdbus-gtool.
8803
8804 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8805
8806         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8807         _dbus_poll() instead of select().
8808
8809 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8810
8811         * bus/main.c (signal_handler): Reload the configuration files
8812         on SIGHUP.
8813         (main): Set up our SIGHUP handler.
8814
8815         * bus/bus.c (struct BusContext): Store the config file, user and
8816         fork flag in the BusContext.
8817         (process_config_first_time_only): Added.  Contains the code
8818         (previously in bus_context_new) for setting up the BusContext from
8819         the BusConfigParser that should only be run the first time the
8820         config files are read.
8821         (process_config_every_time): Added.  Contains the code (previously
8822         in bus_context_new) for setting up the BusContext from the
8823         BusConfigParser that should be run every time the config files are
8824         read.
8825         (load_config): Added.  Builds a BusConfigParser from the config
8826         files and passes the resulting structure off to
8827         process_config_first_time_only (assuming this is the first time)
8828         and process_config_every_time.
8829         (bus_context_new): All of the config-related code has been moved
8830         to process_config_first_time_only and process_config_every_time.
8831         Now this function just does the non-config-related initializations
8832         and calls load_config.
8833         (bus_context_reload_config): Added.
8834
8835 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8836
8837         * bus/driver.c (bus_driver_handle_get_service_owner):
8838         implement a GetServiceOwner method.
8839         * doc/dbus-specification.xml: document it.
8840         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8841         
8842         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8843         implement, using the bus GetServiceOwner method.
8844
8845         * test/glib/test-dbus-glib.c:
8846         use dbus_gproxy_new_for_service_owner so that we can receive the
8847         signal. 
8848
8849 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8850
8851         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8852         dbus/dbus-message.c, dbus/dbus-protocol.h
8853         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8854
8855         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8856         dbus/dbus-message.c, dbus/dbus-protocol.h
8857         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8858
8859         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8860         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8861         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8862
8863         * doc/dbus-specification.xml (Header Fields Table):
8864         s/SERVICE/DESTINATION
8865         s/SENDER_SERVICE/SENDER
8866
8867
8868 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8869
8870         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8871         a few seconds.
8872
8873 2004-04-13  Michael Meeks  <michael@ximian.com>
8874
8875         * glib/dbus-gobject.c (handle_introspect): split out
8876         (introspect_properties): this.
8877         (handle_introspect): implement this.
8878
8879         * test/glib/Makefile.am: use the absolute path so the bus
8880         daemon's chdir ("/") doesn't kill us dead.
8881
8882         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8883
8884 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8885
8886         * bus/config-parser.c (struct BusConfigParser): Added
8887         included_files field.
8888         (seen_include): Added.  Checks whether or not a file has already
8889         been included by any parent BusConfigParser.
8890         (bus_config_parser_new): Copy the parent's included_files.
8891         (include_file): Track which files have been included, and fail on
8892         circular inclusions.
8893         (process_test_valid_subdir): Changed printf to report if we are
8894         testing valid or invalid conf files.
8895         (all_are_equiv): Changed printf to be a bit clearer about
8896         what we are actually doing.
8897         (bus_config_parser_test): Test invalid configuration files.
8898
8899 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8900
8901         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8902         argument.  If non-null, the newly-constructed BusConfigParser will
8903         be initialized with the parent's BusLimits instead of the default
8904         values.
8905         (include_file): When including a config file, pass in
8906         the current parser as the parent and then copy the BusLimits
8907         from the included BusConfigParser pack to the current parser.
8908         (process_test_valid_subdir): Renamed from process_test_subdir.
8909         (process_test_equiv_subdir): Added.  Walks through a directory,
8910         descending into each subdirectory and loading the config files
8911         it finds there.  If any subdirectory contains two config files
8912         that don't produce identical BusConfigParser structs, fail.
8913         For now, the BusConfigParser's BusPolicies are not compared.
8914         (bus_config_parser_test): Call both process_test_valid_subdir and
8915         process_test_equiv_subdir.
8916
8917         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8918         argument and pass it along to the call to bus_config_parser_new.
8919         Also made a few small changes to allow this code to compile.
8920
8921         * bus/config-loader-expat.c (bus_config_load): Take a parent
8922         argument and pass it along to the call to bus_config_parser_new.
8923
8924         * bus/bus.c (bus_context_new): Load the config file
8925         with a NULL parent argument.
8926
8927 2004-03-29  Michael Meeks  <michael@ximian.com>
8928
8929         * glib/dbus-gobject.c (introspect_properties): split
8930         out, fix mangled 'while' flow control.
8931         (introspect_signals): implement.
8932         (handle_introspect): update.
8933
8934 2004-03-29  Michael Meeks  <michael@ximian.com>
8935
8936         * glib/dbus-gobject.c (set_object_property): split out / 
8937         re-work, use the property type, and not the message type(!)
8938         (get_object_property): ditto.
8939
8940         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8941         (dbus_gvalue_marshal): make this code re-usable, needed
8942         for signals too, also on both proxy and server side.
8943         Re-write for more efficiency / readability.
8944
8945 2004-03-29  Michael Meeks  <michael@ximian.com>
8946
8947         * dbus/dbus-message.c
8948         (dbus_message_new_error_printf): impl.
8949
8950         * dbus/dbus-connection.c
8951         (dbus_connection_unregister_object_path): fix warning.
8952
8953         * configure.in: fix no-mono-installed situation.
8954
8955 2004-03-27  Havoc Pennington  <hp@redhat.com>
8956
8957         Patch from Timo Teräs:
8958         
8959         * tools/dbus-send.c (main): if --print-reply, assume type is
8960         method call; support boolean type args
8961         
8962         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8963         bunch of memleak and logic bugs
8964         
8965 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8966
8967         * mono/Arguments.cs:
8968         * mono/Introspector.cs:
8969         * mono/Handler.cs:
8970         * mono/InterfaceProxy.cs:
8971         * mono/Message.cs
8972         * mono/ProxyBuilder.cs:
8973         * mono/Service.cs:
8974         Added InterfaceProxy class to avoid building proxies for every
8975         object.
8976
8977         * dbus-message.h:
8978         * dbus-message.c (dbus_message_append_args_valist)
8979         (dbus_message_iter_get_object_path)
8980         (dbus_message_iter_get_object_path_array)
8981         (dbus_message_iter_append_object_path)
8982         (dbus_message_iter_append_object_path_array):
8983         Added object_path iter functions to handle OBJECT_PATH arguments
8984         
8985 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8986
8987         First checkin of mono bindings.
8988         * configure.in:
8989         * Makefile.am:
8990         Build stuff for the bindings
8991         * dbus-sharp.pc.in: Added for pkgconfig
8992         
8993 2004-03-21  Havoc Pennington  <hp@redhat.com>
8994
8995         * test/test-service.c (main): remove debug spew
8996
8997 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8998
8999         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9000         arrays
9001
9002         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9003         (dbus_message_iter_init_array_iterator)
9004         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9005         indicate whether the iterator is empty
9006
9007         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9008         warnings
9009
9010 2004-03-19  Havoc Pennington  <hp@redhat.com>
9011
9012         * NEWS: 0.21 updates
9013
9014         * configure.in: 0.21
9015
9016         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9017         
9018         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9019         you don't need pyrex to make dist
9020
9021         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9022         sources; run moc
9023         
9024 2004-03-18  Richard Hult  <richard@imendio.com>
9025
9026         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9027         (dbus_message_set_auto_activation): Add doxygen docs.
9028
9029 2004-03-16  Richard Hult  <richard@imendio.com>
9030
9031         * bus/activation.c: (bus_activation_service_created),
9032         (bus_activation_send_pending_auto_activation_messages),
9033         (bus_activation_activate_service):
9034         * bus/activation.h:
9035         * bus/dispatch.c: (bus_dispatch),
9036         (check_nonexistent_service_auto_activation),
9037         (check_service_auto_activated),
9038         (check_segfault_service_auto_activation),
9039         (check_existent_service_auto_activation), (bus_dispatch_test):
9040         * bus/driver.c: (bus_driver_handle_activate_service):
9041         * bus/services.c: (bus_registry_acquire_service):
9042         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9043         (dbus_message_get_auto_activation):
9044         * dbus/dbus-message.h:
9045         * dbus/dbus-protocol.h: Implement auto-activation.
9046         
9047         * doc/dbus-specification.xml: Add auto-activation to the spec.
9048
9049 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9050
9051         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9052         fix a bug with CUSTOM types.
9053
9054         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9055         a unit test for this bug (used to fail).
9056
9057 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9058
9059         * bus/activation.c:
9060         (babysitter_watch_callback): notify all pending activations waiting for
9061           the same exec that the activation failed.
9062         (bus_activation_activate_service): shortcut the activation if we 
9063           already waiting for the same executable to start up.
9064
9065 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9066
9067         * bus/activation.c: 
9068         - Added service file reloading. 
9069           Each service files directory is kept in an hash table in 
9070           BusActivation and each BusActivationEntry knows what .service-file it
9071           was read from. So when you try to activate a service the bus will 
9072           check if it's been updated, removed or if new .service-files has 
9073           been installed.
9074         - Test code at the bottom for the service file reloading.
9075         * bus/test-main.c: (main):
9076         * bus/test.h:
9077         - added service reloading test.
9078         * dbus/dbus-sysdeps.c: 
9079         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9080
9081 2004-03-08  Michael Meeks  <michael@ximian.com>
9082
9083         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9084         bail immediately if disconnected, to avoid busy loop.
9085
9086         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9087         cleanup cut/paste/inefficiency.
9088
9089 2004-03-01  David Zeuthen  <david@fubar.dk>
9090
9091         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9092         bug where args were used twice. This bug resulted in a segfault
9093         on a Debian/PPC system when starting the messagebus daemon. Include
9094         dbus-sysdeps.h for DBUS_VA_COPY
9095
9096         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9097
9098         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9099         appropriate va_copy implementation. From GLib
9100         
9101 2004-02-24  Joe Shaw  <joe@ximian.com>
9102
9103         * bus/services.c (bus_registry_acquire_service): We need to pass
9104         in the service name to dbus_set_error() to prevent a crash.
9105
9106 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9107
9108         * AUTHORS: Reveal my True identity.
9109
9110 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9111
9112         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9113         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9114
9115 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9116
9117         * doc/TODO: Added not about better error check of configuration files.
9118
9119 2003-12-02  Richard Hult  <richard@imendio.com>
9120
9121         * Update AFL version to 2.0 throughout the source files to reflect
9122         the update that was done a while ago.
9123
9124 2003-12-02  Richard Hult  <richard@imendio.com>
9125
9126         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9127         wrote_dict_key to FALSE on the iter that the dict is appended to,
9128         just like when appending other types. Fixes a bug where a dict
9129         couldn't be put inside a dict.
9130         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9131         (message_iter_test, _dbus_message_test): Add test case for dict
9132         inside dict.
9133
9134 2003-12-01  David Zeuthen  <david@fubar.dk>
9135
9136         * python/dbus.py: Add the actual message when calling the reciever
9137         of a signal such that parameters can be inspected. Add the method
9138         remove_signal_receiver
9139         
9140 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9141
9142         * bus/*.[ch]:
9143         * dbus/*.[ch]:
9144         * glib/*.[ch]: Made ref functions return the pointer
9145
9146 2003-11-25  Zack Rusin  <zack@kde.org>
9147
9148         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9149
9150         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9151         wrappers,
9152
9153         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9154         the Integrator and to better fit with the server,
9155
9156 2003-11-24  Zack Rusin  <zack@kde.org>
9157
9158         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9159         the integrator handles it now
9160
9161         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9162         since QTimer wasn't really meant to be used the way DBusTimeout is
9163
9164 2003-11-24  Zack Rusin  <zack@kde.org>
9165
9166         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9167         Integrator class which integrates D-BUS with the Qt event loop,
9168
9169         * qt/connection.h, qt/connection.cpp: Move all the code which
9170         was dealing with D-BUS integration to the Integrator class,
9171         and start using Integrator,
9172
9173 2003-11-23  Zack Rusin  <zack@kde.org>
9174
9175         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9176         wrapper
9177
9178         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9179         switching namespaces to DBusQt, reworking the class,
9180
9181         * Makefile.cvs: switching dependencies so that it matches KDE 
9182         schematics,
9183         
9184         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9185         the library
9186
9187 2003-11-19  Havoc Pennington  <hp@redhat.com>
9188
9189         * NEWS: update
9190
9191         * configure.in: bump version to 0.20
9192
9193         * configure.in (have_qt): add yet another place to look for qt
9194         (someone hand trolltech a .pc file...)
9195
9196 2003-11-01  Havoc Pennington  <hp@redhat.com>
9197
9198         * doc/dbus-specification.xml: add state machine docs on the auth
9199         protocol; just a first draft, I'm sure it's wrong.      
9200
9201 2003-10-28  David Zeuthen  <david@fubar.dk>
9202
9203         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9204         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9205         
9206 2003-10-28  Havoc Pennington  <hp@redhat.com>
9207
9208         * dbus/dbus-message.c (get_next_field): delete unused function
9209
9210 2003-10-28  Havoc Pennington  <hp@redhat.com>
9211
9212         * bus/expirelist.c (do_expiration_with_current_time): detect
9213         failure of the expire_func due to OOM
9214
9215         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9216
9217         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9218         NoReply error that's now created by the bus when the service exits
9219
9220 2003-10-28  Havoc Pennington  <hp@redhat.com>
9221
9222         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9223         tests for set_path, set_interface, set_member, etc.
9224
9225         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9226
9227         * dbus/dbus-message.c (set_string_field): always just delete and
9228         re-append the field; accept NULL for deletion
9229         (re_align_fields_recurse): reimplement
9230         
9231 2003-10-26  Havoc Pennington  <hp@redhat.com>
9232
9233         * dbus/dbus-connection.c: fix docs to properly describe the
9234         disconnected message
9235         (_dbus_connection_notify_disconnected): remove this function; 
9236         we can't synchronously add the disconnected message, we have to 
9237         do it after we've queued any remaining real messages
9238         (_dbus_connection_get_dispatch_status_unlocked): queue the
9239         disconnect message only if the transport has finished queueing all
9240         its real messages and is disconnected.
9241         (dbus_connection_disconnect): update the dispatch status here
9242
9243 2003-10-22  Havoc Pennington  <hp@redhat.com>
9244
9245         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9246
9247         * bus/connection.c (bus_transaction_send_from_driver): set the
9248         destination to the connection's base service
9249
9250 2003-10-20  Havoc Pennington  <hp@redhat.com>
9251
9252         hmm, make check is currently not passing.
9253         
9254         * doc/dbus-specification.xml: add requirement that custom type
9255         names follow the same rules as interface names.
9256
9257         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9258         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9259         'map'
9260
9261         * doc/dbus-specification.xml: update type codes to match
9262         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9263         CUSTOM. Add type OBJECT_PATH to the spec.
9264
9265 2003-10-17  Havoc Pennington  <hp@redhat.com>
9266
9267         * bus/driver.c (create_unique_client_name): use "." as separator
9268         in base service names instead of '-'
9269
9270         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9271         byte at the end of the string
9272
9273         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9274         optimization macros since string validation seems to be a slow
9275         point.
9276         
9277         * doc/dbus-specification.xml: restrict valid
9278         service/interface/member/error names. Add test suite code for the
9279         name validation.
9280
9281         * dbus/dbus-string.c: limit service/interface/member/error names 
9282         to [0-9][A-Z][a-z]_
9283
9284         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9285         format arg to verbose spew
9286
9287         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9288         memory, return instead of g_error
9289
9290         * test/test-service.c (path_message_func): support emitting a
9291         signal on request
9292
9293         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9294         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9295         assuming the activation bus was the session bus so that services
9296         started manually will still register.
9297         (init_connections_unlocked): fix so that in OOM situation we get
9298         the same semantics when retrying the function
9299         
9300         * test/test-service.c (main): change to use path registration, to
9301         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9302         than DBUS_BUS_SESSION
9303
9304 2003-10-16  Havoc Pennington  <hp@redhat.com>
9305
9306         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9307
9308         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9309         coverage of the tests
9310         (coverage-report.txt): don't move the .da and .bbg files around
9311
9312 2003-10-16  Havoc Pennington  <hp@redhat.com>
9313
9314         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9315         to put there
9316
9317 2003-10-16  Havoc Pennington  <hp@redhat.com>
9318
9319         * bus/connection.c (bus_pending_reply_expired): either cancel or
9320         execute, not both
9321         (bus_connections_check_reply): use unlink, not remove_link, as we
9322         don't want to free the link; fixes double free mess
9323
9324         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9325         where no reply was received
9326
9327         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9328         fix a refcount leak
9329
9330         * bus/signals.c (match_rule_matches): add special cases for the
9331         bus driver, so you can match on sender/destination for it.
9332
9333         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9334         DBUS_PRINT_BACKTRACE is set
9335
9336         * dbus/dbus-internals.c: add pid to assertion failure messages
9337
9338         * dbus/dbus-connection.c: add message type code to the debug spew
9339
9340         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9341         sender=foo not service=foo
9342
9343         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9344         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9345         DBUS_ACTIVATION_ADDRESS instead
9346
9347         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9348         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9349
9350         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9351         context struct
9352
9353         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9354         (dbus_message_iter_get_object_path_array): new function (half
9355         finished, disabled for the moment)
9356         
9357         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9358         DBUS_MESSAGE_TYPE_ERROR
9359
9360         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9361         avoid redirecting stderr to /dev/null
9362         (babysit): close stdin if not doing the "exit_with_session" thing
9363
9364         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9365         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9366         stdout/stdin, so things don't get confused
9367         
9368         * bus/system.conf.in: fix to allow replies, I modified .conf
9369         instead of .conf.in again.
9370
9371 2003-10-14  David Zeuthen  <david@fubar.dk>
9372
9373         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9374         argtype to arg_type when raising unknown arg type exception.
9375         Changed type list to reflect the changes in dbus-protocol.h so 
9376         the bindings actually work.
9377
9378 2003-10-14  Havoc Pennington  <hp@redhat.com>
9379
9380         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9381         to have a bug keeping it from outputting the .da files sometimes
9382         (string_get_string): don't append garbage nul bytes to the string.
9383
9384 2003-10-15  Seth Nickell  <seth@gnome.org>
9385
9386         * python/Makefile.am:
9387
9388         Include dbus_h_wrapper.h in the dist tarball.
9389
9390 2003-10-14  Havoc Pennington  <hp@redhat.com>
9391
9392         * bus/bus.c (bus_context_check_security_policy): revamp this to
9393         work more sanely with new policy-based requested reply setup
9394
9395         * bus/connection.c (bus_transaction_send_from_driver): set bus
9396         driver messages as no reply
9397
9398         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9399         requested_reply attribute on allow/deny rules
9400
9401         * bus/system.conf: add <allow requested_reply="true"/>
9402
9403         * bus/driver.c (bus_driver_handle_message): fix check for replies
9404         sent to the bus driver, which was backward. How did this ever work
9405         at all though? I think I'm missing something.
9406
9407         * dbus/dbus-message.c (decode_header_data): require error and
9408         method return messages to have a reply serial field to be valid
9409         (_dbus_message_loader_queue_messages): break up this function;
9410         validate that reply serial and plain serial are nonzero; 
9411         clean up the OOM/error handling.
9412         (get_uint_field): don't return -1 from this
9413         (dbus_message_create_header): fix signed/unsigned bug
9414
9415         * bus/connection.c (bus_connections_expect_reply): save serial of
9416         the incoming message, not reply serial
9417
9418 2003-10-14  Havoc Pennington  <hp@redhat.com>
9419
9420         * bus/connection.c: implement pending reply tracking using
9421         BusExpireList
9422
9423         * bus/bus.c (bus_context_check_security_policy): verify that a
9424         reply is pending in order to allow a reply to be sent. Deny 
9425         messages of unknown type.
9426
9427         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9428
9429         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9430         (bus_context_get_reply_timeout): new
9431
9432 2003-10-13  Seth Nickell  <seth@gnome.org>
9433
9434         * python/Makefile.am:
9435
9436         Pass "make distcheck": remove a couple files from DIST_FILES
9437         that weren't included in the final version.
9438
9439 2003-10-12  Havoc Pennington  <hp@pobox.com>
9440
9441         Added test code that 1) starts an actual bus daemon and 2) uses
9442         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9443         more testing possible, but this is the basic framework.
9444         
9445         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9446         empty proxy lists from the proxy list hash
9447
9448         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9449         couple of return_if_fail checks
9450
9451         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9452         to allocate, so everything is cleared to NULL as it should be.
9453
9454         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9455         source as data to dbus_connection_set_timeout_functions() as the 
9456         timeout functions expected
9457
9458         * test/glib/run-test.sh: add a little script to start up a message
9459         bus and run tests using it
9460
9461         * tools/dbus-launch.1: updates
9462
9463         * tools/dbus-launch.c (main): add --config-file option
9464
9465         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9466         that could never be reached.
9467
9468         * dbus/dbus-message.c (dbus_message_new_method_return) 
9469         (dbus_message_new_error, dbus_message_new_signal): set the
9470         no-reply-expected flag on all these. Redundant, but may
9471         as well be consistent.
9472
9473 2003-10-11  Havoc Pennington  <hp@pobox.com>
9474
9475         * test/decode-gcov.c (function_solve_graph): make broken block
9476         graph a nonfatal error since it seems to be broken. Need to debug
9477         this.
9478
9479         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9480         can't just check type > INVALID < LAST anymore
9481
9482         * dbus/dbus-message.c (dbus_message_get_signature): new function
9483         (dbus_message_has_signature): new function
9484         (struct DBusMessage): add signature field (right now it isn't sent
9485         over the wire, just generated on the fly)
9486         (dbus_message_copy): copy the signature, and init strings to
9487         proper length to avoid some reallocs
9488         (dbus_message_iter_init_array_iterator): return void, since it
9489         can't fail
9490         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9491         (_dbus_message_loader_queue_messages): add silly temporary hack to
9492         fill in message->signature on load
9493
9494         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9495         characters, so they are relatively human-readable.
9496
9497 2003-10-11  Havoc Pennington  <hp@pobox.com>
9498
9499         * dbus/dbus-message.c (_dbus_message_test): add more test
9500         coverage, but #if 0 for now since they uncover a bug 
9501         not fixed yet; I think in re_align_field_recurse()
9502         (re_align_field_recurse): add FIXME about broken assertion
9503
9504         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9505
9506         * bus/connection.c: share a couple code bits with expirelist.c
9507
9508         * bus/expirelist.h, bus/expirelist.c: implement a generic
9509         expire-items-after-N-seconds facility, was going to share between
9510         expiring connections and replies, decided not to use for expiring
9511         connections for now.
9512
9513         * COPYING: include AFL 2.0 (still need to change all the file headers)
9514
9515 2003-10-09  Havoc Pennington  <hp@redhat.com>
9516
9517         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9518         gcc 3.3. Not that we do anything about it yet.
9519
9520         * bus/signals.c (bus_match_rule_parse): impose max length on the
9521         match rule text
9522
9523         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9524
9525 2003-10-09  Havoc Pennington  <hp@redhat.com>
9526
9527         Make matching rules theoretically work (add parser).
9528         
9529         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9530         the case where destination is explicitly specified as bus driver
9531         and someone else is eavesdropping.
9532         
9533         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9534         definition of eavesdropping and assertion
9535
9536         * tools/dbus-send.c (main): use dbus_message_type_from_string
9537
9538         * bus/signals.c (bus_match_rule_parse): implement
9539
9540         * dbus/dbus-message.c (dbus_message_type_from_string): new
9541
9542         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9543
9544 2003-10-02  Havoc Pennington  <hp@pobox.com>
9545
9546         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9547         dbus_gproxy_oneway_call
9548
9549         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9550         (dbus_server_setup_with_g_main): fix to allow calling them more
9551         than once on the same args
9552         (dbus_bus_get_with_g_main): new function
9553
9554 2003-10-02  Havoc Pennington  <hp@redhat.com>
9555
9556         * doc/dbus-tutorial.xml: write some stuff
9557
9558 2003-09-29  Havoc Pennington  <hp@pobox.com>
9559
9560         * configure.in: split checks for Doxygen from XML docs, check for
9561         xmlto
9562
9563         * doc/Makefile.am: XML-ify all the docs, and add a blank
9564         dbus-tutorial.xml
9565
9566 2003-09-29  Havoc Pennington  <hp@pobox.com>
9567
9568         * Merge dbus-object-names branch. To see the entire patch 
9569         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9570         it's huuuuge though.
9571         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9572         
9573 2003-09-28  Havoc Pennington  <hp@pobox.com>
9574
9575         * HACKING: update to reflect new server
9576
9577 2003-09-26  Seth Nickell  <seth@gnome.org>
9578
9579         * python/dbus.py:
9580         * python/examples/example-signals.py:
9581
9582         Start implementing some notions of signals. The API
9583         is really terrible, but they sort of work (with the
9584         exception of being able to filter by service, and to
9585         transmit signals *as* a particular service). Need to
9586         figure out how to make messages come from the service
9587         we registered :-(
9588         
9589         * python/dbus_bindings.pyx.in:
9590
9591         Removed duplicate message_handler callbacks.
9592         
9593 2003-09-25  Havoc Pennington  <hp@redhat.com>
9594
9595         * bus/session.conf.in: fix my mess
9596
9597 2003-09-25  Havoc Pennington  <hp@pobox.com>
9598
9599         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9600
9601 2003-09-25  Seth Nickell  <seth@gnome.org>
9602
9603         * python/examples/example-service.py:
9604
9605         Johan notices complete wrong code in example-service, but
9606         completely wrong in a way that works exactly the same (!).
9607         Johan is confused, how could this possibly work? Example
9608         code fails to serve purpose of making things clear.
9609         Seth fixes.
9610
9611 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9612
9613         * doc/dbus-specification.sgml: don't require header fields
9614         to be 4-byte aligned and specify that fields should be
9615         distinguished from padding by the fact that zero is not
9616         a valid field name.
9617         
9618         * doc/TODO: remove re-alignment item and add item to doc
9619         the OBJECT_PATH type.
9620         
9621         * dbus/dbus-message.c:
9622         (HeaderField): rename the original member to value_offset
9623         and introduce a name_offset member to keep track of where
9624         the field actually begins.
9625         (adjust_field_offsets): remove.
9626         (append_int_field), (append_uint_field),
9627         (append_string_field): don't align the start of the header
9628         field to a 4-byte boundary.
9629         (get_next_field): impl finding the next marhsalled field
9630         after a given field.
9631         (re_align_field_recurse): impl re-aligning a number of
9632         already marshalled fields.
9633         (delete_field): impl deleting a field of any type and
9634         re-aligning any following fields.
9635         (delete_int_or_uint_field), (delete_string_field): remove.
9636         (set_int_field), (set_uint_field): no need to re-check
9637         that we have the correct type for the field.
9638         (set_string_field): ditto and impl re-aligning any
9639         following fields.
9640         (decode_header_data): update to take into account that
9641         the fields aren't 4-byte aligned any more and the new
9642         way to distinguish padding from header fields. Also,
9643         don't exit when there is too much header padding.
9644         (process_test_subdir): print the directory.
9645         (_dbus_message_test): add test to make sure a following
9646         field is re-aligned correctly after field deletion.
9647         
9648         * dbus/dbus-string.[ch]:
9649         (_dbus_string_insert_bytes): rename from insert_byte and
9650         allow the insert of multiple bytes.
9651         (_dbus_string_test): test inserting multiple bytes.
9652
9653         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9654         warning note to docs about having to re-align any
9655         marshalled values following the string.
9656         
9657         * dbus/dbus-message-builder.c:
9658         (append_string_field), (_dbus_message_data_load):
9659         don't align the header field.
9660         
9661         * dbus/dbus-auth.c: (process_test_subdir): print the
9662         directory.
9663         
9664         * test/break-loader.c: (randomly_add_one_byte): upd. for
9665         insert_byte change.
9666         
9667         * test/data/invalid-messages/bad-header-field-alignment.message:
9668         new test case.
9669         
9670         * test/data/valid-messages/unknown-header-field.message: shove
9671         a dict in the unknown field.
9672
9673 2003-09-25  Seth Nickell  <seth@gnome.org>
9674
9675         * python/dbus.py:
9676         * python/dbus_bindings.pyx.in:
9677
9678         Handle return values.
9679         
9680         * python/examples/example-client.py:
9681         * python/examples/example-service.py:
9682
9683         Pass back return values from the service to the client.
9684         
9685 2003-09-24  Seth Nickell  <seth@gnome.org>
9686
9687         * python/dbus.py:
9688
9689         Connect Object methods (when you are sharing an object) up... pass
9690         in a list of methods to be shared. Sharing all the methods just
9691         worked out too weird. You can now create nice Services over the
9692         DBus in Python. :-)
9693         
9694         * python/dbus_bindings.pyx.in:
9695
9696         Keep references to user_data tuples passed into C functions so 
9697         Python doesn't garbage collect on us.
9698
9699         Implement MethodReturn and Error subclasses of Message for creating
9700         DBusMessage's of those types.
9701         
9702         * python/examples/example-client.py:
9703         * python/examples/example-service.py:
9704
9705         Simple example code showing both how create DBus services and objects,
9706         and how to use them.
9707
9708 2003-09-23  Havoc Pennington  <hp@pobox.com>
9709
9710         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9711
9712 2003-09-23  Havoc Pennington  <hp@redhat.com>
9713
9714         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9715         (dbus_gproxy_disconnect_signal): implement
9716         (dbus_gproxy_manager_remove_signal_match): implement
9717         (dbus_gproxy_manager_add_signal_match): implement
9718         (dbus_gproxy_oneway_call): implement
9719
9720 2003-09-23  Havoc Pennington  <hp@pobox.com>
9721
9722         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9723         subclass. This means dropping the transparent thread safety of the
9724         proxy; you now need a separate proxy per-thread, or your own
9725         locking on the proxy. Probably right anyway.
9726         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9727
9728 2003-09-22  Havoc Pennington  <hp@redhat.com>
9729
9730         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9731
9732 2003-09-21  Seth Nickell  <seth@gnome.org>
9733
9734         First checkin of the Python bindings.
9735         
9736         * python/.cvsignore:
9737         * python/Makefile.am:
9738         * python/dbus_bindings.pyx.in:
9739         * python/dbus_h_wrapper.h:
9740
9741         Pieces for Pyrex to operate on, building a dbus_bindings.so
9742         python module for low-level access to the DBus APIs.
9743         
9744         * python/dbus.py:
9745
9746         High-level Python module for accessing DBus objects.
9747
9748         * configure.in:
9749         * Makefile.am:
9750
9751         Build stuff for the python bindings.
9752
9753         * acinclude.m4:
9754
9755         Extra macro needed for finding the Python C header files.
9756
9757 2003-09-21  Havoc Pennington  <hp@pobox.com>
9758
9759         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9760         implementing the proxy manager, didn't get very far.
9761
9762         * dbus/dbus-bus.c (dbus_bus_add_match): new
9763         (dbus_bus_remove_match): new
9764
9765         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9766         path_name argument; adjust the other not-yet-implemented 
9767         gproxy constructors to be what I think they should be.
9768
9769 2003-09-21  Havoc Pennington  <hp@pobox.com>
9770
9771         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9772         by default for message bus connections.
9773
9774         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9775         exit_on_disconnect flag is set and we process the disconnected
9776         signal.
9777         (dbus_connection_set_exit_on_disconnect): new function
9778
9779 2003-09-21  Havoc Pennington  <hp@pobox.com>
9780
9781         Get matching rules mostly working in the bus; only actually
9782         parsing the rule text remains. However, the client side of
9783         "signal connections" hasn't been started, this patch is only the
9784         bus side.
9785         
9786         * dbus/dispatch.c: fix for the matching rules changes
9787         
9788         * bus/driver.c (bus_driver_handle_remove_match)
9789         (bus_driver_handle_add_match): send an ack reply from these
9790         method calls
9791
9792         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9793         arguments, reported by Seth Nickell
9794
9795         * bus/config-parser.c (append_rule_from_element): support
9796         eavesdrop=true|false attribute on policies so match rules 
9797         can be prevented from snooping on the system bus.
9798
9799         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9800         and "destination" in attribute names; fix some docs bugs; 
9801         add eavesdrop=true|false attribute
9802
9803         * bus/driver.c (bus_driver_handle_add_match)
9804         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9805         messages
9806
9807         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9808         rid of broadcast service concept, signals are just always broadcast
9809
9810         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9811         mostly implement matching rules stuff (currently only exposed as signal
9812         connections)
9813
9814 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9815
9816         * doc/dbus-specification.sgml: Change the header field name
9817         to be an enum and update the rest of the spec to reference
9818         the fields using the conventinal name.
9819
9820         * dbus/dbus-protocol.h: update to reflect the spec.
9821
9822         * doc/TODO: add item to remove the 4 byte alignment requirement.
9823         
9824         * dbus/dbus-message.c: Remove the code to generalise the
9825         header/body length and serial number header fields as named
9826         header fields so we can reference field names using the 
9827         protocol values.
9828         (append_int_field), (append_uint_field), (append_string_field):
9829         Append the field name as a byte rather than four chars.
9830         (delete_int_or_uint_field), (delete_string_field): reflect the
9831         fact that the field name and typecode now occupy 4 bytes instead
9832         of 8.
9833         (decode_string_field), (decode_header_data): update to reflect
9834         protocol changes and move the field specific encoding from
9835         decode_string_field() back into decode_header_data().
9836         
9837         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9838         Add utility to aid debugging.
9839         
9840         * dbus/dbus-message-builder.c:
9841         (append_string_field), (_dbus_message_data_load): Update to
9842         reflect protocol changes; Change the FIELD_NAME directive
9843         to HEADER_FIELD and allow it to take the field's conventional
9844         name rather than the actual value.
9845         
9846         * test/data/*/*.message: Update to use HEADER_FIELD instead
9847         of FIELD_NAME; Always align the header on an 8 byte boundary
9848         *before* updating the header length.
9849
9850 2003-09-15  Havoc Pennington  <hp@pobox.com>
9851
9852         * dbus/dbus-pending-call.c: add the get/set object data
9853         boilerplate as for DBusConnection, etc. Use generic object data
9854         for the notify callback.
9855
9856         * glib/dbus-gparser.c (parse_node): parse child nodes
9857
9858         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9859         
9860         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9861         contain functions shared between the convenience lib and the
9862         installed lib
9863
9864         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9865         -export-symbols-regex to the GLib library
9866
9867         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9868         fix the locking in here, and add a default handler for
9869         Introspect() that just returns sub-nodes.
9870
9871 2003-09-14  Havoc Pennington  <hp@pobox.com>
9872
9873         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9874         rather than gfoo consistent
9875
9876         * glib/dbus-gproxy.h: delete for now, move contents to
9877         dbus-glib.h, because the include files don't work right since we
9878         aren't in the dbus/ subdir.
9879         
9880         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9881         (dbus_gproxy_end_call): finish
9882         (dbus_gproxy_begin_call): finish
9883
9884         * glib/dbus-gmain.c (dbus_set_g_error): new
9885
9886         * glib/dbus-gobject.c (handle_introspect): include information
9887         about child nodes in the introspection
9888
9889         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9890         function to help in implementation of introspection
9891
9892         * dbus/dbus-object-tree.c
9893         (_dbus_object_tree_list_registered_and_unlock): new function
9894
9895 2003-09-12  Havoc Pennington  <hp@pobox.com>
9896
9897         * glib/dbus-gidl.h: add common base class for all the foo_info
9898         types
9899
9900         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9901         similar to kdcop
9902
9903         * test/Makefile.am: try test srcdir -ef . in addition to test
9904         srcdir = ., one of them should work (yeah lame)
9905         
9906         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9907         library
9908         
9909         * glib/dbus-gparser.h: make description_load routines return
9910         NodeInfo* not Parser*
9911
9912         * Makefile.am (SUBDIRS): build test dir after all library dirs
9913
9914         * configure.in: add GTK+ detection
9915
9916 2003-09-07  Havoc Pennington  <hp@pobox.com>
9917
9918         * Make Doxygen contented.
9919
9920 2003-09-07  Havoc Pennington  <hp@pobox.com>
9921
9922         * doc/dbus-specification.sgml: more updates
9923
9924 2003-09-06  Havoc Pennington  <hp@pobox.com>
9925
9926         * doc/dbus-specification.sgml: partial updates
9927
9928         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9929         zillionth time; hopefully I edited the right file this time.
9930
9931         * bus/config-parser.c (append_rule_from_element): support
9932         send_type, send_path, receive_type, receive_path
9933
9934         * bus/policy.c: add message type and path to the list of things
9935         that can be "firewalled"
9936
9937 2003-09-06  Havoc Pennington  <hp@pobox.com>
9938
9939         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9940         (dbus_connection_register_object_path): make this not handle
9941         messages to paths below the given path
9942
9943 2003-09-03  Havoc Pennington  <hp@pobox.com>
9944
9945         * test/glib/Makefile.am: add this with random glib-linked test
9946         programs
9947
9948         * glib/Makefile.am: remove the random test programs from here,
9949         leave only the unit tests
9950
9951         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9952         uscore/javacaps conversion, and fix     
9953         (get_object_property, set_object_property): change to .NET
9954         convention for mapping props to methods, set_FooBar/get_FooBar, 
9955         since one language has such a convention we may as well copy it. 
9956         Plus real methods in either getFooBar or get_foo_bar style won't 
9957         collide with this convention.
9958
9959 2003-09-01  Havoc Pennington  <hp@pobox.com>
9960
9961         * glib/dbus-gparser.c: implement
9962
9963         * glib/dbus-gobject.c: start implementing skeletons support
9964
9965         * configure.in: when disabling checks/assert, also define
9966         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9967
9968 2003-09-01  Havoc Pennington  <hp@pobox.com>
9969
9970         * glib/Makefile.am: rearrange a bunch of files and get "make
9971         check" framework set up
9972
9973 2003-08-31  Havoc Pennington  <hp@pobox.com>
9974
9975         * fix build with --disable-tests
9976
9977 2003-08-30  Havoc Pennington  <hp@pobox.com>
9978
9979         * dbus/dbus-connection.c: purge DBusMessageHandler
9980
9981         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9982         use callbacks everywhere
9983
9984 2003-08-30  Havoc Pennington  <hp@pobox.com>
9985
9986         * test/data/valid-config-files/system.d/test.conf: change to 
9987         root for the user so warnings don't get printed
9988
9989         * dbus/dbus-message.c: add dbus_message_get_path,
9990         dbus_message_set_path
9991         
9992         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9993         dispatching to a path
9994
9995         * dbus/dbus-string.c (_dbus_string_validate_path): add
9996
9997         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9998         (_dbus_marshal_object_path): implement
9999
10000         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10001         to contain the path to the target object
10002         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10003         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10004
10005 2003-08-30  Havoc Pennington  <hp@pobox.com>
10006
10007         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10008
10009 2003-08-29  Havoc Pennington  <hp@pobox.com>
10010
10011         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10012         registered
10013         (struct DBusObjectSubtree): shrink this
10014         a lot, since we may have a lot of them
10015         (_dbus_object_tree_free_all_unlocked): implement
10016         (_dbus_object_tree_dispatch_and_unlock): implement
10017
10018 2003-08-29  Havoc Pennington  <hp@pobox.com>
10019
10020         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10021
10022 2003-08-28  Havoc Pennington  <hp@pobox.com>
10023
10024         purge DBusObjectID
10025         
10026         * dbus/dbus-connection.c: port to no ObjectID, create a
10027         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10028
10029         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10030         everything except UnregisterFunction and MessageFunction
10031         
10032         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10033         add DBUS_TYPE_OBJECT_PATH
10034         
10035         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10036         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10037         path-based object IDs
10038
10039 2003-08-25  Havoc Pennington  <hp@pobox.com>
10040
10041         Just noticed that dbus_message_test is hosed, I wonder when I
10042         broke that. I thought make check was passing earlier...
10043         
10044         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10045         container tree, will replace most of dbus-object-registry
10046
10047         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10048         screwup
10049
10050 2003-08-19  Havoc Pennington  <hp@pobox.com>
10051
10052         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10053         (dbus_message_is_error): fix this function
10054
10055         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10056         match
10057
10058         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10059         reflect clarified man page
10060         (bus_client_policy_check_can_send): ditto
10061         
10062         * bus/session.conf.in: fixup
10063
10064         * bus/system.conf.in: fixup
10065
10066 2003-08-18  Havoc Pennington  <hp@redhat.com>
10067
10068         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10069
10070         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10071         dumb bug created earlier (wrong order of args to
10072         decode_header_data())
10073         
10074         * tools/dbus-send.c: port
10075
10076         * tools/dbus-print-message.c (print_message): port
10077
10078         * test/data/*messages: port all messages over
10079         
10080         * dbus/dbus-message-builder.c: support including 
10081         message type
10082         
10083         * bus/driver.c: port over
10084         
10085         * bus/dispatch.c: port over to new stuff
10086
10087         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10088         rename disconnect signal to "Disconnected"
10089
10090 2003-08-17  Havoc Pennington  <hp@pobox.com>
10091
10092         This doesn't compile yet, but syncing up so I can hack on it from
10093         work. What are branches for if not broken code? ;-)
10094         
10095         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10096         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10097         DBUS_HEADER_FIELD_ERROR_NAME
10098         
10099         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10100         for the interface+member pairs
10101         (string_hash): change to use g_str_hash algorithm
10102         (find_direct_function, find_string_function): refactor these to
10103         share most code.
10104         
10105         * dbus/dbus-message.c: port all of this over to support 
10106         interface/member fields instead of name field
10107
10108         * dbus/dbus-object-registry.c: port over
10109         
10110         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10111         from _dbus_string_validate_name
10112
10113         * bus/dbus-daemon-1.1: change file format for the 
10114         <deny>/<allow> stuff to match new message naming scheme
10115
10116         * bus/policy.c: port over
10117
10118         * bus/config-parser.c: parse new format
10119         
10120 2003-08-16  Havoc Pennington  <hp@pobox.com>
10121
10122         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10123         broken assertion
10124
10125         * glib/dbus-gproxy.c: some hacking
10126
10127 2003-08-15  Havoc Pennington  <hp@redhat.com>
10128
10129         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10130
10131         * dbus/dbus-connection.c
10132         (dbus_connection_send_with_reply_and_block): factor out internals;
10133         change to convert any error replies to DBusError instead of 
10134         returning them as a message
10135
10136 2003-08-15  Havoc Pennington  <hp@pobox.com>
10137
10138         * dbus/dbus-connection.c, 
10139         dbus/dbus-pending-call.c: Finish the pending call stuff
10140
10141 2003-08-14  Havoc Pennington  <hp@redhat.com>
10142
10143         * dbus/dbus-pending-call.c: start on new object that will replace
10144         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10145         replies
10146
10147         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10148         with remote interfaces
10149
10150         * dbus/dbus-gidl.c: do the boring boilerplate in here
10151         
10152 2003-08-12  Havoc Pennington  <hp@pobox.com>
10153
10154         * bus/dispatch.c (bus_dispatch): make this return proper 
10155         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10156
10157         * dbus/dbus-errors.c (dbus_set_error): use
10158         _dbus_string_append_printf_valist
10159
10160         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10161         (_dbus_string_append_printf): new
10162
10163         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10164         UNKNOWN_METHOD
10165
10166         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10167         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10168         message is unhandled.
10169
10170 2003-08-11  Havoc Pennington  <hp@pobox.com>
10171
10172         * bus/test.c (client_disconnect_handler): change to return
10173         HANDLED (would have been REMOVE_MESSAGE)
10174
10175         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10176         HANDLED/NOT_YET_HANDLED instead of
10177         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10178         should be used.
10179
10180 2003-08-10  Havoc Pennington  <hp@pobox.com>
10181
10182         * tools/dbus-send.c (main): add --type argument, for now
10183         supporting only method_call and signal types.
10184
10185         * tools/dbus-print-message.c: print message type
10186
10187         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10188         init connection->objects
10189
10190         * doc/dbus-specification.sgml: fix sgml
10191
10192         * bus/*.c: port over to object-instance API changes
10193
10194         * test/test-service.c: ditto
10195         
10196         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10197         name, we will have to fix up the rest of the code to also handle
10198         this
10199         (dbus_message_new): generic message-creation call
10200         (set_string_field): allow appending name field
10201
10202 2003-08-06  Havoc Pennington  <hp@pobox.com>
10203
10204         * dbus/dbus-object-registry.c: implement signal connection 
10205         and dispatch
10206
10207         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10208
10209         * dbus/dbus-internals.c (_dbus_memdup): new function
10210
10211 2003-08-02  Havoc Pennington  <hp@pobox.com>
10212
10213         * dbus/dbus-message.c (dbus_message_get_no_reply)
10214         (dbus_message_set_no_reply): add these and remove
10215         set_is_error/get_is_error
10216
10217         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10218         remove the ERROR flag, since there's now an ERROR type
10219
10220 2003-08-01  Havoc Pennington  <hp@pobox.com>
10221
10222         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10223         implement
10224
10225         * dbus/dbus-message.c (dbus_message_get_type): new function
10226
10227         * doc/dbus-specification.sgml: add "type" byte to messages
10228
10229 2003-08-01  Havoc Pennington  <hp@pobox.com>
10230
10231         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10232         a message type enum to distinguish kinds of message
10233         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10234         that need not be replied to
10235
10236 2003-08-01  Havoc Pennington  <hp@pobox.com>
10237
10238         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10239         (unpack_8_octets): fix no-64-bit-int bug
10240
10241         * dbus/dbus-object-registry.c (validate_id): validate the 
10242         connection ID bits, not just the instance ID.
10243
10244         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10245         the connection-global 33 bits of the object ID
10246
10247         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10248         object ID in the new way
10249
10250         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10251         define server/client/instance bits.
10252
10253 2003-07-30  Havoc Pennington  <hp@pobox.com>
10254
10255         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10256         build
10257
10258 2003-07-13  Havoc Pennington  <hp@pobox.com>
10259
10260         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10261         fields to DBusObjectVTable and DBusObjectInfo
10262
10263 2003-07-12  Havoc Pennington  <hp@pobox.com>
10264
10265         * dbus/dbus-object-registry.c: implement unit test,
10266         fix bugs discovered in process
10267
10268         * dbus/dbus-connection.c: remove handler_table and
10269         register_handler(), add DBusObjectRegistry usage
10270
10271         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10272         (dbus_object_id_set_null): new functions
10273
10274 2003-07-08  Havoc Pennington  <hp@pobox.com>
10275
10276         * dbus/dbus-object.c: implement some of this
10277
10278         * dbus/dbus-object-registry.c
10279         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10280         param
10281         (_dbus_object_registry_new): handle OOM
10282
10283 2003-07-08  Havoc Pennington  <hp@pobox.com>
10284
10285         * dbus/dbus-object.h: sketch out an API for registering objects
10286         with a connection, that allows us to use as little as 24 bytes
10287         per object and lets application code represent an object in 
10288         any conceivable way.
10289
10290         * dbus/dbus-object-registry.c: implement the hard bits of the
10291         DBusConnection aspect of object API. Not yet wired up.
10292         
10293 2003-07-06  Havoc Pennington  <hp@pobox.com>
10294
10295         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10296         (_dbus_marshal_object_id): new
10297         (_dbus_demarshal_object_id): new
10298         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10299         consolidate identical switch cases. Don't conditionalize handling
10300         of DBUS_TYPE_UINT64, need to handle the type always.
10301         (_dbus_marshal_validate_arg): consolidate identical cases, and
10302         handle DBUS_TYPE_OBJECT_ID
10303
10304         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10305
10306         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10307
10308 2003-09-28  Havoc Pennington  <hp@pobox.com>
10309
10310         * real 0.13 release
10311
10312 2003-09-28  Havoc Pennington  <hp@pobox.com>
10313
10314         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10315         to work with Debian db2html
10316
10317 2003-09-28  Havoc Pennington  <hp@pobox.com>
10318
10319         * configure.in: 0.13
10320
10321         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10322         stylesheet-images for benefit of Debian
10323         
10324         Change back to using filesystem-linked sockets for the system
10325         bus, so only root can create the default system bus address.
10326         
10327         * bus/system.conf.in: change to use
10328         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10329
10330         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10331         from here.
10332
10333         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10334         here, and AC_DEFINE DBUS_SYSTEM_PATH
10335
10336 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10337
10338         * doc/TODO:
10339         * doc/busconfig.dtd:
10340         Add busconfig DTD.
10341         
10342 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10343
10344         * doc/dbus-specification.sgml:
10345         Add activation reply values.
10346         
10347 2003-08-05  Havoc Pennington  <hp@redhat.com>
10348
10349         * configure.in: 0.12
10350
10351 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10352
10353         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10354         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10355         (add_watch), (remove_watch), (create_source):
10356         Refcount fds, fixes some reentrancy issues.
10357         
10358 2003-07-30  Havoc Pennington  <hp@redhat.com>
10359
10360         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10361         bus address to be abstract if we have abstract sockets
10362
10363         * NEWS: update
10364
10365 2003-07-28  Havoc Pennington  <hp@redhat.com>
10366
10367         * bus/messagebus.in: fix to avoid processname/servicename 
10368         confusion, from Michael Kearey
10369         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10370         
10371 2003-07-23  Havoc Pennington  <hp@pobox.com>
10372
10373         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10374         fix from Andy Hanton to remove broken "+1"
10375
10376 2003-07-16  Havoc Pennington  <hp@pobox.com>
10377
10378         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10379         babysitter process, as suggested by Thomas Leonard, so 
10380         an "eval `dbus-launch --exit-with-session`" will actually 
10381         return
10382
10383 2003-07-16  Havoc Pennington  <hp@pobox.com>
10384
10385         * configure.in: print out EXPANDED_* variables in the summary at
10386         the end; clean up the code that computes EXPANDED_ variables and
10387         get the ones using exec_prefix right. Should make things work
10388         when you build without --prefix
10389
10390 2003-06-29  Havoc Pennington  <hp@pobox.com>
10391
10392         * mono/Test.cs (class Test): fire up a main loop and run it
10393
10394         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10395         done once, the app has to do it
10396
10397 2003-06-26  Havoc Pennington  <hp@pobox.com>
10398
10399         * mono/Connection.cs: set up connection with the glib main loop
10400
10401 2003-07-01  Havoc Pennington  <hp@redhat.com>
10402
10403         * doc/dbus-specification.sgml: clarify the format of a type code,
10404         change suggested by Jim Blandy
10405
10406 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10407
10408         * doc/Makefile.am:
10409         * tools/Makefile.am: Don't assume srcdir == builddir.
10410
10411         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10412         the allocated block.
10413         (_dbus_memory_test): New function.
10414         * dbus/dbus-test.h: Add _dbus_memory_test ().
10415         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10416
10417         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10418         of %c%c%c%c.
10419         (dbus_message_new): Remove obsolete @todo.
10420
10421         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10422         (_dbus_marshal_set_uint64): Fix comment.
10423
10424         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10425         hardcode FIELD_REPLY_SERIAL.
10426
10427         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10428         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10429
10430         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10431         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10432
10433 2003-06-24  Havoc Pennington  <hp@pobox.com>
10434
10435         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10436
10437 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10438
10439         * configure.in:
10440         * gcj/.cvsignore:
10441         * gcj/Hello.java:
10442         * gcj/Makefile.am:
10443         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10444         * gcj/org/.cvsignore:
10445         * gcj/org/Makefile.am:
10446         * gcj/org/freedesktop/.cvsignore:
10447         * gcj/org/freedesktop/Makefile.am:
10448         * gcj/org/freedesktop/dbus/.cvsignore:
10449         * gcj/org/freedesktop/dbus/Makefile.am:
10450         * gcj/org/freedesktop/dbus/Message.java: (Message),
10451         (Message.Message):
10452         * gcj/org/freedesktop/dbus/natMessage.cc:
10453         Fix the build system.
10454
10455 2003-06-22  Havoc Pennington  <hp@pobox.com>
10456
10457         * mono/Connection.cs: add more bindings
10458
10459         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10460         more than once.
10461
10462 2003-06-22  Havoc Pennington  <hp@pobox.com>
10463
10464         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10465         Start wrapping more stuff.
10466
10467 2003-06-22  Havoc Pennington  <hp@pobox.com>
10468
10469         * mono/Message.cs: implement Message.Wrap() that ensures we only
10470         have a single C# wrapper per DBusMessage, assuming it works which
10471         it probably doesn't.
10472
10473         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10474         (dbus_message_free_data_slot): new
10475         (dbus_message_set_data): new
10476         (dbus_message_get_data): new
10477
10478 2003-06-22  Havoc Pennington  <hp@pobox.com>
10479
10480         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10481         (_dbus_data_slot_allocator_alloc): rework these to keep a
10482         reference count on each slot and automatically manage a global
10483         slot ID variable passed in by address
10484
10485         * bus/bus.c: convert to new dataslot API
10486
10487         * dbus/dbus-bus.c: convert to new dataslot API
10488
10489         * dbus/dbus-connection.c: convert to new dataslot API
10490
10491         * dbus/dbus-server.c: convert to new dataslot API
10492
10493         * glib/dbus-gmain.c: ditto
10494
10495         * bus/test.c: ditto
10496
10497         * bus/connection.c: ditto
10498
10499 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10500
10501         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10502         after the gcj checks so that the correct configuration tags
10503         will be added to libtool.
10504
10505         * dbus-glib-1.pc.in: No need to specify any includes since
10506         dbus-1.pc.in has those.
10507
10508 2003-06-22  Havoc Pennington  <hp@pobox.com>
10509
10510         * mono/*, gcj/*, configure.in, Makefile.am:
10511         Check in makefiles and subdirs for mono and gcj bindings.
10512         Neither binding actually exists, just trying to get through
10513         all the build and other boring bits.
10514
10515 2003-06-21  Philip Blundell  <philb@gnu.org>
10516
10517         * tools/dbus-monitor.1: Updated.
10518
10519         * tools/dbus-send.1: Likewise.
10520
10521 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10522
10523         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10524         for hangup and error after checking read so we won't discard
10525         pending data if both hangup and read are set.
10526
10527 2003-06-19  Philip Blundell  <philb@gnu.org>
10528
10529         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10530
10531         * tools/dbus-send.c: Accept both --system and --session.
10532
10533         * tools/dbus-monitor.c: Same here.
10534
10535 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10536
10537         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10538         from C++ (Patch by Miloslav Trmac).
10539
10540 2003-06-15  Joe Shaw  <joe@assbarn.com>
10541
10542         * configure.in: Check for socklen_t.
10543
10544         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10545
10546         * test/test-segfault.c: Add #include <sys/time.h>
10547
10548         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10549         dbus-launch needs it.
10550
10551 2003-06-09  Havoc Pennington  <hp@redhat.com>
10552
10553         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10554         SUN_LEN, it breaks abstract socket usage
10555
10556         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10557         starts of lines.
10558
10559 2003-06-04  Havoc Pennington  <hp@pobox.com>
10560
10561         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10562         using unix:abstract=/foo, and when listening in a tmpdir
10563         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10564
10565         * dbus/dbus-transport.c (_dbus_transport_open): support
10566         unix:abstract=/foo
10567
10568         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10569         support abstract sockets
10570
10571         * dbus/dbus-transport-unix.c
10572         (_dbus_transport_new_for_domain_socket): support abstract sockets
10573
10574         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10575         toggle as an argument, implement abstract namespace support
10576         (_dbus_listen_unix_socket): ditto
10577
10578         * configure.in: add --enable-abstract-sockets and implement
10579         a configure check for autodetection of the right value.
10580
10581 2003-06-01  Havoc Pennington  <hp@pobox.com>
10582
10583         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10584         in /tmp (though on Linux this will end up being useless,
10585         when we add abstract namespace support)
10586
10587         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10588         subst'ing it
10589
10590 2003-05-28  Colin Walters  <walters@verbum.org>
10591
10592         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10593
10594 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10595
10596         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10597
10598 2003-05-17  Colin Walters  <walters@gnu.org>
10599
10600         * tools/dbus-send.c: Don't exit with an error code if --help was
10601         passed.  Default to using the session bus instead of the system
10602         one.
10603
10604         * tools/dbus-launch.c: Ditto.
10605
10606         * tools/dbus-monitor.c: Ditto.
10607
10608         * tools/dbus-send.1: Update with new arguments.
10609
10610         * tools/dbus-launch.c: Emit code to export variables.  New
10611         arguments -s and -c to specify shell syntax, and a bit of code to
10612         autodetect syntax.  Also, allow specifying a program to run.
10613
10614         * tools/dbus-launch.1: Update with new arguments.
10615
10616         * tools/dbus-send.1: Ditto.
10617
10618         * tools/dbus-monitor.1: Ditto.
10619
10620 2003-05-17  Havoc Pennington  <hp@pobox.com>
10621
10622         * bus/config-parser.c (merge_included): merge in policies from
10623         child configuration file.
10624
10625         * bus/policy.c (bus_policy_merge): function to merge two policies
10626         together
10627
10628 2003-05-16  Havoc Pennington  <hp@redhat.com>
10629
10630         * dbus/dbus-connection.c: disable verbose lock spew
10631
10632         * tools/dbus-send.c: add --print-reply command line option
10633
10634         * tools/dbus-print-message.h (print_message): new util function
10635         shared by dbus-send and dbus-monitor
10636
10637         * tools/dbus-monitor.c (handler_func): exit on disconnect
10638
10639         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10640         disconnected, don't try to use the read_watch
10641
10642         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10643         so we can find this bug more easily
10644
10645 2003-05-16  Havoc Pennington  <hp@redhat.com>
10646
10647         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10648         NULL as DBusHashTable is annoyingly likely to do.
10649
10650 2003-05-16  Colin Walters  <walters@verbum.org>
10651
10652         * tools/dbus-monitor.c: Add --session argument and usage()
10653         function.
10654
10655         * tools/dbus-monitor.1: Update with new --session arg.
10656
10657         * bus/Makefile.am (install-data-hook): Create
10658         $(libdir)/dbus-1.0/services so that the session bus is happy.
10659
10660 2003-05-15  Havoc Pennington  <hp@redhat.com>
10661
10662         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10663         on non-x86. ifdef's are evil.
10664
10665 2003-05-15  Havoc Pennington  <hp@redhat.com>
10666
10667         * configure.in: 0.11
10668
10669         * NEWS: update
10670
10671         * bus/Makefile.am (initddir): apparently we are supposed to put
10672         init scripts in /etc/rc.d/init.d not /etc/init.d
10673
10674         * bus/Makefile.am: remove the "you must --enable-tests to make
10675         check" as it broke distcheck
10676
10677         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10678
10679 2003-05-13  James Willcox  <jwillcox@gnome.org>
10680
10681         * configure.in:
10682         * bus/activation.c: (bus_activation_service_created),
10683         (bus_activation_activate_service):
10684         * bus/driver.c: (bus_driver_send_service_deleted),
10685         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10686         (bus_driver_send_service_acquired),
10687         (bus_driver_send_welcome_message),
10688         (bus_driver_handle_list_services):
10689         * bus/session.conf.in:
10690         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10691         (dbus_bus_service_exists), (dbus_bus_activate_service):
10692         * dbus/dbus-bus.h:
10693
10694         Add some convenience API which lets you activate a service, and did a
10695         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10696         and dbus_message_get_args()
10697
10698 2003-05-11  Havoc Pennington  <hp@pobox.com>
10699
10700         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10701         calling _dbus_marshal_validate_arg() for every byte in a byte
10702         array, etc.
10703
10704         * dbus/dbus-message-handler.c: use atomic reference counting to
10705         reduce number of locks slightly; the global lock in here sucks
10706
10707         * dbus/dbus-connection.c
10708         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10709         update_dispatch_status that can be called with lock held; then use
10710         in a couple places to reduce locking/unlocking
10711         (dbus_connection_send): hold the lock over the whole function
10712         instead of acquiring it twice.
10713
10714         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10715
10716         * bus/connection.c (bus_connections_setup_connection): fix access
10717         to already-freed memory.
10718
10719         * dbus/dbus-connection.c: keep a little cache of linked list
10720         nodes, to avoid using the global linked list alloc lock in the
10721         normal send-message case. Instead we just use the connection lock
10722         that we already have to take.
10723
10724         * dbus/dbus-list.c (_dbus_list_find_last): new function
10725
10726         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10727         change to use a struct for the atomic type; fix docs,
10728         they return value before increment, not after increment.
10729
10730         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10731         (_dbus_string_append_8_aligned): new functions to try to
10732         microoptimize this operation.
10733         (reallocate_for_length): break this out of set_length(), to
10734         improve profile info, and also so we can consider inlining the
10735         set_length() part.
10736
10737         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10738         strings with some preallocation, cuts down on our calls to realloc
10739         a fair bit. Though if we can get the "move entire string to empty
10740         string" optimization below to kick in here, it would be better.
10741
10742         * dbus/dbus-string.c (_dbus_string_move): just call
10743         _dbus_string_move_len
10744         (_dbus_string_move_len): add a special case for moving
10745         an entire string into an empty string; we can just
10746         swap the string data instead of doing any reallocs.
10747         (_dbus_string_init_preallocated): new function
10748
10749 2003-05-11  Havoc Pennington  <hp@pobox.com>
10750
10751         Write a "test-profile" that does echo client-server with threads;
10752         profile reveals lock contention, memcpy/realloc of buffers, and
10753         UTF-8 validation as hot spots. 20% of lock contention eliminated
10754         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10755         contention is global mempool locks for GList and DBusList.
10756
10757         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10758         x86 implementation
10759
10760         * dbus/dbus-connection.c (struct DBusConnection): use
10761         dbus_atomic_t for the reference count
10762
10763         * dbus/dbus-message.c (struct DBusMessage): declare
10764         dbus_atomic_t values as volatile
10765
10766         * configure.in: code to detect ability to use atomic integer
10767         operations in assembly, from GLib patch
10768
10769         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10770         time, tired of it being wrong in threads and forked processes
10771
10772         * glib/test-profile.c: a little program to bounce messages back
10773         and forth between threads and eat CPU
10774
10775         * dbus/dbus-connection.c: add debug spew macros for debugging
10776         thread locks; include config.h at top; fix deadlock in
10777         dbus_connection_flush()
10778
10779 2003-05-08  Havoc Pennington  <hp@pobox.com>
10780
10781         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10782         data from getting written, and there wasn't a good reason to
10783         use _exit really.
10784
10785         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10786         dbus_verbose lines in test coverage
10787         (main): add list of functions sorted by # of untested blocks
10788         to the coverage report
10789
10790         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10791
10792         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10793
10794         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10795         extend test coverage
10796
10797         * test/data/auth/cancel.auth-script: test canceling an
10798         authentication
10799
10800         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10801         aren't used. in CVS history if we end up needing them.
10802
10803 2003-05-04  Havoc Pennington  <hp@pobox.com>
10804
10805         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10806         unit test
10807
10808         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10809         function, which assumed length was in # of strings, not bytes
10810
10811         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10812         missing coverage
10813
10814         * dbus/dbus-connection.c
10815         (_dbus_connection_queue_received_message): disable function for
10816         now, we are only using it in test mode
10817
10818         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10819         remove a mistaken FIXME
10820
10821 2003-05-04  Havoc Pennington  <hp@pobox.com>
10822
10823         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10824         unlock mutex on successful return, patch from Anders Gustafsson
10825
10826 2003-05-04  Havoc Pennington  <hp@pobox.com>
10827
10828         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10829         Anders Gustafsson
10830
10831 2003-05-04  Havoc Pennington  <hp@pobox.com>
10832
10833         * tools/dbus-launch.c: implement
10834
10835         * bus/main.c (main), bus/bus.c (bus_context_new):
10836         implement --print-pid and --fork
10837
10838 2003-05-03  Havoc Pennington  <hp@redhat.com>
10839
10840         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10841         the address had no value, and add to test suite. Fix and
10842         regression test from Miloslav Trmac
10843
10844 2003-05-03  Havoc Pennington  <hp@pobox.com>
10845
10846         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10847         watch is invalid when handled
10848
10849         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10850         dbus-launch utility to launch the bus from a shell script.  Didn't
10851         actually implement dbus-launch yet, it's just a placeholder still.
10852
10853 2003-05-03  Havoc Pennington  <hp@pobox.com>
10854
10855         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10856         daemon; also documents daemon config file, so replaces
10857         doc/config-file.txt. Corrected some stuff from config-file.txt in
10858         the process of moving it.
10859
10860 2003-05-03  Havoc Pennington  <hp@pobox.com>
10861
10862         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10863         add some man pages
10864
10865 2003-05-03  Colin Walters  <walters@verbum.org>
10866
10867         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10868         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10869
10870         * Makefile.am: Update to use new .pc versioning scheme.
10871
10872 2003-05-02  Havoc Pennington  <hp@redhat.com>
10873
10874         * bus/system.conf.in: allow send/receive to/from message bus
10875         service
10876
10877 2003-04-30  Havoc Pennington  <hp@redhat.com>
10878
10879         * configure.in: print a note when building with unit tests and
10880         without assertions
10881
10882 2003-04-30  Havoc Pennington  <hp@redhat.com>
10883
10884         * Makefile.am: add a check-local that complains if you didn't
10885         configure with --enable-tests
10886
10887 2003-04-29  Havoc Pennington  <hp@redhat.com>
10888
10889         * glib/dbus-gmain.c: docs cleanups
10890
10891         * dbus/dbus-types.h: add docs on int64 types
10892
10893         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10894         public API docs section
10895
10896 2003-04-29  Havoc Pennington  <hp@redhat.com>
10897
10898         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10899         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10900         parallel install API version, not with the D-BUS package version.
10901
10902         * HACKING: move some of README over here
10903
10904         * README: updates, and document API/ABI policy
10905
10906         * configure.in: reindentation
10907
10908 2003-04-29  Havoc Pennington  <hp@redhat.com>
10909
10910         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10911         to use this library" to be sure people have the right
10912         expectations.
10913
10914 2003-04-28  Havoc Pennington  <hp@redhat.com>
10915
10916         * configure.in: add --enable-docs which by default is auto yes if
10917         doxygen and db2html found, no otherwise; but can be forced on/off
10918
10919         * doc/Makefile.am: conditionalize whether to build docs on
10920         --enable-docs
10921
10922 2003-04-28  Havoc Pennington  <hp@redhat.com>
10923
10924         * configure.in: 0.10
10925
10926         * NEWS: update
10927
10928         * bus/system.conf.in: add <includedir>system.d</includedir>
10929
10930         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10931         username was provided but not uid
10932
10933         * bus/config-parser.c (struct BusConfigParser): keep track of
10934         whether the parser is toplevel or was included; change some
10935         of the error handling if it's included.
10936
10937 2003-04-27  Havoc Pennington  <hp@pobox.com>
10938
10939         Unbreak my code...
10940
10941         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10942         report correct status if we finish processing authentication
10943         inside this function.
10944
10945         * bus/activation.c (try_send_activation_failure): use
10946         bus_transaction_send_error_reply
10947
10948         * bus/connection.c (bus_connection_get_groups): return an error
10949         explaining the problem
10950
10951         * bus/bus.c (bus_context_check_security_policy): implement
10952         restriction here that inactive connections can only send the
10953         hello message. Also, allow bus driver to send anything to
10954         any recipient.
10955
10956         * bus/connection.c (bus_connection_complete): create the
10957         BusClientPolicy here instead of on-demand.
10958         (bus_connection_get_policy): don't return an error
10959
10960         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10961         sender field in message being replied to
10962
10963         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10964         causing it to return FALSE always
10965
10966         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10967         we checked sender rather than destination
10968
10969 2003-04-25  Havoc Pennington  <hp@redhat.com>
10970
10971         test suite is slightly hosed at the moment, will fix soon
10972
10973         * bus/connection.c (bus_connections_expire_incomplete): fix to
10974         properly disable the timeout when required
10975         (bus_connection_set_name): check whether we can remove incomplete
10976         connections timeout after we complete each connection.
10977
10978         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10979         probably still broken.
10980
10981         * bus/services.c (bus_registry_acquire_service): implement max
10982         number of services owned, and honor allow/deny rules on which
10983         services a connection can own.
10984
10985         * bus/connection.c (bus_connection_get_policy): report errors here
10986
10987         * bus/activation.c: implement limit on number of pending
10988         activations
10989
10990 2003-04-25  Havoc Pennington  <hp@redhat.com>
10991
10992         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10993         where we used >= 0 instead of != DBUS_UID_UNSET.
10994
10995 2003-04-25  Havoc Pennington  <hp@redhat.com>
10996
10997         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10998         were toggled without add/remove, fix from Anders Gustafsson
10999
11000 2003-04-24  Havoc Pennington  <hp@redhat.com>
11001
11002         * test/data/valid-config-files/basic.conf: add <limit> tags to
11003         this test
11004
11005         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11006         <limit> tag in configuration file.
11007
11008 2003-04-24  Havoc Pennington  <hp@redhat.com>
11009
11010         * bus/dispatch.c: somehow missed some name_is
11011
11012         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11013         (_dbus_timeout_set_interval): new
11014
11015         * bus/connection.c (bus_connections_setup_connection): record time
11016         when each connection is first set up, and expire them after the
11017         auth timeout passes.
11018
11019 2003-04-24  Havoc Pennington  <hp@redhat.com>
11020
11021         * dbus/dbus-message.c (dbus_message_name_is): rename
11022         (dbus_message_service_is): rename
11023         (dbus_message_sender_is): rename
11024         (dbus_message_get_service): rename
11025
11026 2003-04-24  Havoc Pennington  <hp@redhat.com>
11027
11028         * configure.in: add --enable-checks
11029
11030         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11031
11032         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11033         to use thread locks.
11034         (_dbus_connection_handler_destroyed_locked): move some private
11035         functions into proper docs group
11036
11037         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11038         _dbus_return_val_if_fail
11039
11040         Throughout: use dbus_return_if_fail
11041
11042 2003-04-23  James Willcox  <jwillcox@gnome.org>
11043
11044         * glib/dbus-glib.h:
11045         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11046         (dbus_connection_setup_with_g_main),
11047         (dbus_server_setup_with_g_main):
11048         * glib/test-dbus-glib.c: (main):
11049         * glib/test-thread-client.c: (main):
11050         * glib/test-thread-server.c: (new_connection_callback), (main):
11051         * tools/dbus-monitor.c: (main):
11052
11053         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11054         and dbus_server_setup_with_g_main().
11055
11056 2003-04-20  Havoc Pennington  <hp@pobox.com>
11057
11058         * doc/dbus-specification.sgml: document the restrictions on
11059         message and service names
11060
11061 2003-04-22  Havoc Pennington  <hp@redhat.com>
11062
11063         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11064         support, and do some code cleanups to share more code and
11065         speed up array marshal/demarshal.
11066
11067         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11068
11069         * configure.in: generate dbus-arch-deps.h
11070
11071         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11072         64-bit typecodes
11073
11074 2003-04-22  Havoc Pennington  <hp@redhat.com>
11075
11076         * test/data/valid-messages/opposite-endian.message: fix test
11077         to use proper type for rply field
11078
11079         * test/data/invalid-messages: add tests for below validation
11080
11081         * dbus/dbus-message.c (decode_header_data): validate field types,
11082         and validate that named fields are valid names
11083         (decode_name_field): consider messages in the
11084         org.freedesktop.Local. namespace to be invalid.
11085
11086         * dbus/dbus-string.c (_dbus_string_validate_name): new
11087
11088 2003-04-19  Havoc Pennington  <hp@pobox.com>
11089
11090         * bus/driver.c (bus_driver_handle_hello): check limits and
11091         return an error if they are exceeded.
11092
11093         * bus/connection.c: maintain separate lists of active and inactive
11094         connections, and a count of each. Maintain count of completed
11095         connections per user. Implement code to check connection limits.
11096
11097         * dbus/dbus-list.c (_dbus_list_unlink): export
11098
11099         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11100         number of bytes in the message queue for a connection
11101
11102 2003-04-18  Havoc Pennington  <hp@pobox.com>
11103
11104         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11105
11106         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11107         memleaks
11108
11109         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11110         on realloc be sure to update the pointer in the keyring
11111
11112         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11113         offset to avoid writing to unallocated memory
11114
11115         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11116         try the next mechanism, so we properly handle OOM
11117
11118         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11119         on OOM.
11120         (_dbus_keyring_new): fix OOM bug
11121         (_dbus_keyring_new_homedir): always set error; impose a maximum
11122         number of keys we'll load from the file, mostly to speed up the
11123         test suite and make its OOM checks more useful, but also for
11124         general sanity.
11125
11126         * dbus/dbus-auth.c (process_error_server): reject authentication
11127         if we get an error from the client
11128         (process_cancel): on cancel, send REJECTED, per the spec
11129         (process_error_client): send CANCEL if we get an error from the
11130         server.
11131
11132 2003-04-18  Havoc Pennington  <hp@pobox.com>
11133
11134         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11135         debug spew
11136
11137         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11138         handling problem
11139
11140         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11141         about DBUS_TEST_HOMEDIR once
11142
11143         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11144         the environment
11145
11146         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11147         config file so we test the right thing
11148
11149         Throughout: assorted docs improvements
11150
11151 2003-04-18  Havoc Pennington  <hp@pobox.com>
11152
11153         * glib/dbus-gmain.c: adapt to watch changes
11154
11155         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11156
11157         * dbus/dbus-server.h: remove dbus_server_handle_watch
11158
11159         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11160
11161         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11162         like DBusTimeout, so we don't need dbus_connection_handle_watch
11163         etc.
11164
11165 2003-04-17  Havoc Pennington  <hp@redhat.com>
11166
11167         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11168         database usage so it all goes via the DBusUserDatabase cache.
11169
11170 2003-04-17  Havoc Pennington  <hp@redhat.com>
11171
11172         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11173         there was an OOM watch we skipped, we always return TRUE so we
11174         iterate again to have a look at it again. Fixes test suite hang.
11175         Code rearrangement also lets us lose some memset and only iterate
11176         over callbacks once.
11177
11178         * bus/driver.c (bus_driver_handle_message): sense of test for
11179         reply was backward
11180
11181 2003-04-16  Havoc Pennington  <hp@pobox.com>
11182
11183         * doc/dbus-specification.sgml: make spec say serials are unsigned
11184
11185         * dbus/dbus-message.h: change message serials to unsigned
11186
11187         * dbus/dbus-connection.c: adapt to message serials being unsigned
11188
11189 2003-04-15  Havoc Pennington  <hp@pobox.com>
11190
11191         * bus/bus.c: create and keep around a shared DBusUserDatabase
11192         object.
11193
11194         * bus/connection.c (bus_connection_get_groups): don't cache
11195         groups for user in the connection object, since user database
11196         object now does that.
11197
11198 2003-04-16  Havoc Pennington  <hp@redhat.com>
11199
11200         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11201         list of size counters
11202         (_dbus_message_loader_putback_message_link): put back a popped link
11203
11204         * dbus/dbus-connection.c
11205         (dbus_connection_set_max_live_messages_size): rename
11206         max_received_size
11207         (dbus_connection_get_outgoing_size): get size of outgoing
11208         queue
11209         (_dbus_connection_set_connection_counter): remove this cruft
11210
11211 2003-04-14  Havoc Pennington  <hp@redhat.com>
11212
11213         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11214         caching, but at some point we might want to be able to use a
11215         different database.
11216
11217         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11218         SHA1 conf file to test the sha1 auth mechanism, since the regular
11219         test always uses EXTERNAL when available.
11220
11221         * configure.in,
11222         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11223         add conf file that requires use of sha1 auth
11224
11225 2003-04-13  Havoc Pennington  <hp@pobox.com>
11226
11227         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11228         from Philip Blundell to send messages and monitor them.
11229
11230 2003-04-13  Havoc Pennington  <hp@pobox.com>
11231
11232         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11233         callbacks
11234
11235         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11236         users
11237
11238         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11239         fix to only recover unused bytes if we're already authenticated
11240         (_dbus_transport_get_is_authenticated): fix to still mark us
11241         authenticated if there are unused bytes.
11242
11243         * bus/dispatch.c: implement security policy checking
11244
11245         * bus/connection.c (bus_transaction_send_from_driver): new
11246
11247         * bus/bus.c (bus_context_check_security_policy): new
11248
11249         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11250         now we just set the DBusError and it gets converted to an error
11251         reply.
11252
11253         * bus/connection.c (allow_user_function): enable code using actual
11254         data from the config file
11255
11256         * bus/policy.c (list_allows_user): handle wildcard rules for
11257         user/group connection perms
11258
11259 2003-04-13  Havoc Pennington  <hp@pobox.com>
11260
11261         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11262
11263         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11264
11265         * bus/policy.c (bus_policy_append_mandatory_rule)
11266         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11267         (bus_policy_append_group_rule): new functions
11268
11269 2003-04-12  Havoc Pennington  <hp@pobox.com>
11270
11271         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11272
11273         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11274         the pid/gid/uid, just for paranoia.
11275
11276         * test/break-loader.c (randomly_do_n_things): find a byte
11277         containing a type code, and randomly change it to a different
11278         type code.
11279
11280 2003-04-12  Havoc Pennington  <hp@pobox.com>
11281
11282         * bus/policy.h: change BusPolicy to be the thing from the config
11283         file, and rename old BusPolicy to BusClientPolicy
11284
11285         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11286         match change in how policy works
11287
11288         * dbus/dbus-internals.h: mark assert_not_reached as
11289         __attribute((noreturn))__
11290
11291 2003-04-11  Havoc Pennington  <hp@redhat.com>
11292
11293         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11294         the broadcast service. Use boolean return for ServiceExists.
11295
11296 2003-04-11  Havoc Pennington  <hp@redhat.com>
11297
11298         * configure.in: add another directory to look for qt in.
11299
11300 2003-04-11  Havoc Pennington  <hp@redhat.com>
11301
11302         * AUTHORS: add Colin Walters
11303
11304 2003-04-11  Havoc Pennington  <hp@redhat.com>
11305
11306         * NEWS: update
11307
11308         * configure.in: 0.9
11309
11310 2003-04-11  Havoc Pennington  <hp@redhat.com>
11311
11312         * bus/messagebus.in: remove pid file when stopping the
11313         message bus, since the bus won't have privileges to remove it
11314         itself.
11315
11316 2003-04-11  Havoc Pennington  <hp@redhat.com>
11317
11318         * bus/bus.c (bus_context_new): move credentials change after
11319         creating pidfile
11320
11321 2003-04-11  Havoc Pennington  <hp@pobox.com>
11322
11323         * test/decode-gcov.c: add "below average functions" to the
11324         coverage report, and change how some of the code works.
11325
11326         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11327         not in the coverage stats.
11328
11329         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11330         couple places so running the test suite doesn't result in megaspam.
11331
11332 2003-04-11  Havoc Pennington  <hp@pobox.com>
11333
11334         * bus/dispatch.c (check_existent_service_activation): accept a no
11335         memory error in a place we didn't before
11336
11337         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11338         in case the first one failed," since the test suite is less
11339         broken now.
11340
11341 2003-04-10  Havoc Pennington  <hp@pobox.com>
11342
11343         * bus/dispatch.c (check_segfault_service_activation): add test
11344         for launching an executable that just crashes.
11345
11346         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11347         don't leave a million cores. We'll see how portable this is.
11348
11349 2003-04-10  Havoc Pennington  <hp@pobox.com>
11350
11351         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11352         the possible parent failures before we fork, so that we don't
11353         fail to create a babysitter after creating the child.
11354
11355         * bus/activation.c (bus_activation_activate_service): kill child
11356         if we don't successfully complete the activation.
11357
11358 2003-04-10  Havoc Pennington  <hp@redhat.com>
11359
11360         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11361         the connection if it's disconnected
11362
11363         * bus/activation.c (bus_activation_service_created): use new
11364         transaction features to roll back removal of pending activation if
11365         we don't successfully create the service after all. Don't remove
11366         pending activation if the function fails.
11367
11368         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11369         (_dbus_list_insert_after_link): new code to facilitate
11370         services.c fixes
11371
11372         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11373         new functionality, so we can preallocate the ability to insert
11374         into a hash table.
11375
11376         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11377         allowing us to put custom hooks in a transaction to be used for
11378         cancelling said transaction
11379
11380         * doc/dbus-specification.sgml: add some discussion of secondary
11381         service owners, and disallow zero-length service names
11382
11383         * bus/services.c (bus_registry_acquire_service): new function,
11384         splits out part of bus_driver_handle_acquire_service() and fixes
11385         a bug where we didn't remove the service doing the acquiring
11386         from the secondary queue if we failed to remove the current owner
11387         from the front of the queue.
11388
11389 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11390
11391         * doc/dbus-specification.sgml:
11392         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11393
11394 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11395
11396         * bus/.cvsignore:
11397         * glib/.cvsignore:
11398         * test/.cvsignore:
11399         Added files to cvsignore
11400
11401         * dbus/dbus-message.h:
11402         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11403         Make get_named() take two out argument and return a boolean.
11404         (dbus_message_iter_get_args_valist):
11405         Update usage of get_named().
11406         (dbus_message_iter_append_byte):
11407         Fix typo
11408         (dbus_message_iter_append_named)
11409         Fix typo
11410         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11411         More tests.
11412
11413 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11414
11415         * dbus/dbus-marshal.[ch]:
11416         Add array_type_pos argument to _dbus_marshal_validate_arg.
11417         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11418
11419         * dbus/dbus-message.[ch]:
11420         Multi-dimensional arrays have full type specification in the
11421         outermost array. Iter code re-arranged to handle this.
11422         Added some more iter tests.
11423
11424         * doc/dbus-specification.sgml:
11425         Add me to authors.
11426         Remove old FIXME.
11427         Update new array encoding description.
11428         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11429
11430         * test/data/invalid-messages/array-with-mixed-types.message:
11431         * test/data/valid-messages/array-of-array-of-uint32.message:
11432         Change to the new array format.
11433
11434         * test/data/invalid-messages/too-short-dict.message:
11435         Fix bug in test.
11436
11437         * test/data/valid-messages/recursive-types.message:
11438         Fix up and extend test.
11439
11440 2003-04-10  Havoc Pennington  <hp@pobox.com>
11441
11442         * bus/dispatch.c: lots of fixes
11443
11444         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11445         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11446         that was crack, broke the test service.
11447
11448         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11449         handling to avoid piling up errors if we get a failure on the
11450         first address.
11451
11452         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11453         pid in assertion failures.
11454
11455         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11456         to some fixed size of file descriptor array. Don't return TRUE
11457         anytime a timeout exists, that led to lots of busy loop silliness
11458         in the tests.
11459
11460 2003-04-09  Havoc Pennington  <hp@redhat.com>
11461
11462         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11463         I'd checked this in earlier but hadn't.
11464
11465 2003-04-09  Havoc Pennington  <hp@redhat.com>
11466
11467         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11468         the activation test (man this is getting old!)
11469
11470 2003-04-09  Havoc Pennington  <hp@redhat.com>
11471
11472         * test/test-utils.c: use dispatch status function to fix this up
11473
11474         * bus/connection.c (connection_watch_callback): don't dispatch
11475         from here
11476         (connection_timeout_callback): don't dispatch from here
11477         (bus_connections_setup_connection): set the dispatch status function
11478         (bus_connection_disconnected): unset it
11479
11480         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11481         used to add a connection to be dispatched
11482         (_dbus_loop_iterate): do the dispatching at the end of each
11483         iteration
11484
11485         * dbus/dbus-connection.c
11486         (dbus_connection_set_dispatch_status_function): new function
11487         allowing us to fix up main loop usage
11488         (_dbus_connection_last_unref): free all the various function
11489         user data
11490         (dbus_connection_dispatch): call the DispatchStatusFunction
11491         whenever this function returns
11492         (dbus_connection_handle_watch): call DispatchStatusFunction
11493         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11494         (reply_handler_timeout): call DispatchStatusFunction
11495         (dbus_connection_flush): call DispatchStatusFunction
11496
11497 2003-04-09  Havoc Pennington  <hp@redhat.com>
11498
11499         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11500         a memory leak
11501
11502         * bus/dispatch.c (check_service_activated): fix bug in test
11503
11504         * dbus/dbus-mainloop.c (check_timeout): fix this up
11505
11506         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11507         verbose output so we can sort out output from different processes,
11508         e.g. in the activation case.
11509
11510 2003-04-08  Colin Walters  <walters@gnu.org>
11511
11512         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11513         the pid file.
11514         (bus_context_new): Set it.
11515         (bus_context_unref): Use it to delete the pid file.
11516
11517 2003-04-08  Havoc Pennington  <hp@redhat.com>
11518
11519         * test/data/invalid-messages/array-with-mixed-types.message:
11520         regression test that fails for the moment
11521
11522         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11523         tests for convenience
11524
11525         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11526         array of nil, it broke things.
11527
11528         * test/data/invalid-messages/array-of-nil.message: regression test
11529
11530         * test/data/valid-messages/array-of-array-of-uint32.message:
11531         happened to write this so added it to suite
11532
11533 2003-04-08  Havoc Pennington  <hp@redhat.com>
11534
11535         * bus/driver.c (bus_driver_handle_acquire_service): init
11536         retval/reply before checking name
11537
11538         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11539         recursion depth argument
11540
11541         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11542         in the public struct for future extension
11543
11544         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11545         typo
11546
11547         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11548         message
11549
11550         * doc/dbus-specification.sgml: fix typo
11551
11552 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11553
11554         Implemented recursive types, named types and new-style iters
11555
11556         * bus/driver.c:
11557         * glib/test-thread-client.c: (thread_func):
11558         * glib/test-thread-server.c: (handle_test_message):
11559         * test/test-service.c: (handle_echo):
11560         Update to new api
11561
11562         * dbus/Makefile.am:
11563         * dbus/dbus-dict.c:
11564         * dbus/dbus-dict.h:
11565         * dbus/dbus.h
11566         Remove DBusDict
11567
11568         * dbus/dbus-internals.c: (_dbus_type_to_string):
11569         Update for new types.
11570
11571         * dbus/dbus-marshal.[ch]:
11572         Implement recursive types and the new marshalling format.
11573         Remove hardcoded dict marshalling.
11574         Marshal named types.
11575
11576         * dbus/dbus-message-builder.c:
11577         Add BYTE_ARRAY.
11578         Remove references to old types
11579
11580         * dbus/dbus-message.[ch]:
11581         New non-refcounted iter API that supports recursive iters.
11582         Use iters for appending, including support for recursive
11583         iters.
11584         Add byte and named type support.
11585         Update everything to new marshalling formats.
11586         Add tests for new API.
11587
11588         * dbus/dbus-protocol.h:
11589         Remove old array types.
11590         Add types: BYTE, ARRAY, DICT, NAMED
11591
11592         * dbus/dbus-string.c:
11593         * dbus/dbus-sysdeps.c:
11594         Make parse_double locale safe.
11595
11596         * dbus/dbus-test-main.c:
11597         Call setlocale.
11598
11599         * dbus/dbus-test.c:
11600         Kill dict test
11601
11602         * doc/dbus-specification.sgml:
11603         Update spec
11604
11605         * test/data/incomplete-messages/missing-body.message:
11606         * test/data/invalid-messages/bad-boolean.message:
11607         * test/data/invalid-messages/bad-boolean-array.message:
11608         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11609         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11610         * test/data/invalid-messages/too-short-dict.message:
11611         * test/data/valid-messages/dict-simple.message:
11612         * test/data/valid-messages/dict.message:
11613         * test/data/valid-messages/emptiness.message:
11614         * test/data/valid-messages/lots-of-arguments.message:
11615         * test/data/valid-messages/no-padding.message:
11616         * test/data/valid-messages/recursive-types.message:
11617         Add missing NAME fields
11618         Fix up dicts & arrays
11619
11620         * test/data/invalid-messages/dict-with-nil-value.message:
11621         Removed, this is not invalid anymore.
11622
11623         * test/data/valid-messages/recursive-types.message:
11624         Add new test for deeply recursive types.
11625
11626 2003-04-07  Havoc Pennington  <hp@pobox.com>
11627
11628         * bus/driver.c (bus_driver_handle_acquire_service): return an
11629         error if you try to acquire a service that starts with ':'
11630
11631 2003-04-07  Havoc Pennington  <hp@redhat.com>
11632
11633         * doc/dbus-specification.sgml: require that base service names
11634         start with ':' and that the base service is created/deleted
11635         as first and last things a connection does on the bus
11636
11637         * bus/dispatch.c (check_existent_service_activation): lots more
11638         work on the activation test; it doesn't fully pass yet...
11639
11640         * test/test-service.c (main): fix so we don't memleak the
11641         connection to the message bus
11642         (filter_func): accept a message asking us to exit
11643
11644 2003-04-06  Havoc Pennington  <hp@pobox.com>
11645
11646         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11647         from Colin Walters
11648
11649         * configure.in: fixes to Qt detection from Colin Walters
11650
11651         * doc/Makefile.am: Only remove generated docbook dirs if they
11652         exist, from Colin Walters
11653
11654         * dbus/dbus-bus.c: change how we set well-known connections to
11655         NULL, so that it works if a single connection is stored in
11656         two well-known array slots.
11657
11658         * test/Makefile.am: remove a lot of stuff that isn't immediately
11659         useful, it's in CVS history if we want it.
11660
11661         * test/test-service.c: use dbus-mainloop instead of that
11662         watch.[hc] crack
11663
11664 2003-04-06  Havoc Pennington  <hp@pobox.com>
11665
11666         * dbus/Makefile.am: split lists of sources into stuff that goes in
11667         the library, util functions that go in the lib and are also used
11668         elsewhere, and util functions that are used in tests/daemon but
11669         don't go in the lib.
11670
11671         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11672         here so it can be used in test binaries also
11673
11674 2003-04-06  Havoc Pennington  <hp@pobox.com>
11675
11676         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11677         here in the parent process, so we can return an error if it
11678         fails. Also, move some of the code into the child so the parent
11679         is less hosed if we fail midway through.
11680
11681         * bus/bus.c (bus_context_new): move pidfile detection further up
11682         in the function, before we start overwriting sockets and such.
11683
11684         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11685
11686         * configure.in: add --with-system-pid-file and --with-system-socket
11687
11688 2003-04-06  Colin Walters  <walters@verbum.org>
11689
11690         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11691
11692         * bus/system.conf.in: Declare a pidfile.
11693
11694         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11695         create one (if appropriate).
11696
11697         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11698         (struct BusConfigParser) [pidfile]: New.
11699         (element_type_to_name, merge_included, start_busconfig_child)
11700         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11701         (bus_config_parser_unref): Free it.
11702         (bus_config_parser_get_pidfile): New function.
11703
11704         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11705
11706         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11707
11708         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11709
11710         * dbus/dbus-sysdeps.h: Prototype it.
11711
11712 2003-04-06  Havoc Pennington  <hp@pobox.com>
11713
11714         * bus/bus.c (bus_context_new): print the address in here, rather
11715         than in main(), because we need to do it before forking the daemon
11716
11717         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11718         on the service nonexistent error
11719
11720         * bus/driver.c (bus_driver_handle_acquire_service): set the
11721         sender on the AcquireService reply
11722
11723         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11724         server also listen on a UNIX socket so services can connect to it.
11725
11726 2003-04-06  Havoc Pennington  <hp@pobox.com>
11727
11728         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11729         so it detects deadlocks and also we actually init threads when
11730         debugging.
11731
11732 2003-04-06  Havoc Pennington  <hp@pobox.com>
11733
11734         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11735         save the domain socket name, and unlink it when we disconnect the
11736         server. Means that at least when we exit normally, we won't leave
11737         a bunch of junk in /tmp
11738
11739         * dbus/dbus-transport-unix.c
11740         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11741         memory management). (I was making a real change here but then
11742         didn't)
11743
11744 2003-04-06  Havoc Pennington  <hp@pobox.com>
11745
11746         * bus/bus.c (bus_context_new): fix wrong handling of
11747         server_data_slot_unref() in the error case.
11748
11749         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11750         "(condition) != 0" to _dbus_real_assert so that
11751         "_dbus_assert (pointer)" doesn't cause a warning
11752
11753         * bus/main.c (main): accept --print-address option to print out
11754         the message bus address
11755
11756         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11757
11758         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11759         "tmpdir" option to unix: address on client side
11760
11761         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11762         to unix: address
11763
11764         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11765         we can use to create sockets in the test suite.
11766
11767         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11768         cleanly. To be used for testing.
11769
11770         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11771
11772         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11773
11774         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11775         handle trying to call this when there's no servers active
11776
11777 2003-04-05  Havoc Pennington  <hp@pobox.com>
11778
11779         * NEWS: update
11780
11781         * configure.in: 0.8
11782
11783 2003-04-05  Havoc Pennington  <hp@pobox.com>
11784
11785         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11786         crash on startup. Need to get "try starting the daemon"
11787         in the test suite I guess. ;-)
11788
11789         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11790         tracked the number of open connections; it's better done in
11791         application-specific code as you want it to span all servers etc.
11792
11793 2003-04-05  Havoc Pennington  <hp@pobox.com>
11794
11795         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11796         patch from Colin Walters
11797
11798 2003-04-05  Havoc Pennington  <hp@pobox.com>
11799
11800         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11801         reality; in fact multiple mechanisms are allowed.
11802
11803         * dbus/dbus-internals.c (_dbus_real_assert)
11804         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11805         _dbus_assert_not_reached() into functions, so that they don't show
11806         up in basic block counts for test coverage, and don't use up as
11807         much disk space. Does mean slower execution speed though, so
11808         assumes --disable-asserts is the normal production case.
11809
11810 2003-04-05  Havoc Pennington  <hp@pobox.com>
11811
11812         * test/Makefile.am (dist-hook): also dist *.in files
11813
11814         * NEWS: update
11815
11816         * configure.in: 0.7
11817
11818 2003-04-05  Havoc Pennington  <hp@pobox.com>
11819
11820         * dbus/dbus-string.c: docs warning
11821
11822         * dbus/dbus-spawn.c: missing docs
11823
11824         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11825
11826 2003-04-05  Havoc Pennington  <hp@pobox.com>
11827
11828         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11829         magic from GLib
11830
11831         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11832         to -1 once we've reaped the babysitter
11833         (_dbus_babysitter_handle_watch): do as much work as we can, not
11834         just one go of it
11835
11836         * bus/activation.c: add code using DBusBabysitter so that we
11837         handle it when a service fails to start up properly.
11838         (bus_activation_service_created): don't remove the activation
11839         entries as we go, just let them get removed when we free the pending
11840         activation. Unref reply messages after sending them.
11841
11842 2003-04-05  Havoc Pennington  <hp@pobox.com>
11843
11844         * test/decode-gcov.c (main): print per-directory stats in the report
11845
11846         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11847
11848 2003-04-05  Havoc Pennington  <hp@pobox.com>
11849
11850         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11851
11852         * test/decode-gcov.c: hack up a little program to suck data
11853         out of gcov files. Yes this is sort of silly.
11854
11855         * configure.in: define something in config.h and do an
11856         AM_CONDITIONAL when gcov is enabled
11857
11858 2003-04-04  Havoc Pennington  <hp@redhat.com>
11859
11860         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11861         return a "babysitter" object that is used to monitor the status of
11862         the spawned process and reap it when required.
11863
11864         * test/test-segfault.c, test/test-exit.c,
11865         test/test-sleep-forever.c: binaries that do various lame things,
11866         used in the test suite.
11867
11868         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11869
11870 2003-04-03  Havoc Pennington  <hp@pobox.com>
11871
11872         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11873         in preparation for modifying it, dbus-sysdeps is getting
11874         a bit unmanageable.
11875
11876 2003-04-03  Havoc Pennington  <hp@redhat.com>
11877
11878         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11879         have multiple ones
11880
11881         * bus/*.[hc]: adapt to mainloop change
11882
11883 2003-04-03  Havoc Pennington  <hp@redhat.com>
11884
11885         * bus/activation.c (load_directory): fix up memleaks
11886         (bus_activation_entry_free): free the entry
11887
11888         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11889         we get one from the message bus; fix memleaks.
11890
11891         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11892
11893 2003-04-03  Havoc Pennington  <hp@pobox.com>
11894
11895         * bus/config-parser.c (bus_config_parser_unref): free
11896         list of mechanisms, bug discovered by test suite enhancements
11897         (putting system.conf and session.conf into suite)
11898
11899         * test/Makefile.am, test/test-service.c: add placeholder for a
11900         test service that we'll activate as part of test suite. Doesn't
11901         do anything yet.
11902
11903         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11904         setting NULL value, and use system malloc not dbus_malloc()
11905         when we have unavoidable memleakage.
11906
11907         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11908         didn't work, and support DBUS_BUS_ACTIVATION.
11909
11910         * bus/activation.c (child_setup): pass our well-known bus type to
11911         the child
11912
11913         * bus/config-parser.c: support <type> to specify well-known type
11914
11915         * doc/dbus-specification.sgml: document the env variables to
11916         locate well-known buses and find service activator
11917
11918 2003-04-02  Havoc Pennington  <hp@redhat.com>
11919
11920         * test/Makefile.am (all-local): add a rule to copy tests to
11921         builddir, so we can have generated tests. Use this to remove the
11922         silly hack for testing system.conf and session.conf. Will use this
11923         shortly to generate .service files pointing to test binaries.
11924
11925 2003-04-02  Havoc Pennington  <hp@redhat.com>
11926
11927         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11928         current alloc and needed new length, not max of the doubled
11929         allocation and needed new length. Also, when building tests,
11930         don't do the double-allocation stuff, just realloc every time.
11931
11932 2003-04-02  Havoc Pennington  <hp@redhat.com>
11933
11934         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11935         in error messages
11936         (_dbus_string_get_dirname): new
11937         (_dbus_sysdeps_test): new
11938         (_dbus_directory_open): include dirnames in error messages
11939
11940         * bus/config-parser.c: interpret <include> and <includedir> and
11941         <servicedir> relative to config file location if the given
11942         filename is not absolute.
11943
11944         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11945
11946 2003-04-02  Havoc Pennington  <hp@redhat.com>
11947
11948         * bus/connection.c (bus_transaction_send_error_reply): set sender
11949         service for the error, and unref the reply on success
11950
11951         * bus/activation.c: convert to use BusTransaction so OOM can be
11952         handled correctly
11953         (bus_activation_service_created): set sender of the message
11954
11955 2003-04-01  Havoc Pennington  <hp@redhat.com>
11956
11957         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11958         <includedir> (at least mostly)
11959
11960         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11961         first, then the user ID
11962
11963 2003-04-01  Havoc Pennington  <hp@pobox.com>
11964
11965         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11966         function
11967
11968         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11969
11970         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11971
11972         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11973         socket 0777, and unlink any existing socket.
11974
11975         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11976         the configuration file so specifies; set up auth mechanism
11977         restrictions
11978
11979         * bus/config-parser.c (bus_config_parser_content): add support
11980         for <fork> option and fill in code for <auth>
11981
11982         * bus/system.conf.in: add <fork/> to default configuration,
11983         and limit auth mechanisms to EXTERNAL
11984
11985         * doc/config-file.txt (Elements): add <fork>
11986
11987         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11988         (_dbus_change_identity): new function
11989
11990 2003-03-31  Havoc Pennington  <hp@redhat.com>
11991
11992         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11993         (_dbus_listen_unix_socket): fix off-by-one error in null
11994         termination spotted by Nalin
11995
11996 2003-03-31  Havoc Pennington  <hp@redhat.com>
11997
11998         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11999         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12000         having a real home directory available.
12001
12002 2003-03-31  Havoc Pennington  <hp@redhat.com>
12003
12004         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12005
12006         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12007
12008         * configure.in: add support for specifying a style of init script
12009         to install
12010
12011 2003-03-31  Havoc Pennington  <hp@redhat.com>
12012
12013         Fix some annoying DBusString API and fix all affected code.
12014
12015         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12016         max_length argument
12017         (_dbus_string_get_data): change to return string instead of using
12018         an out param
12019         (_dbus_string_get_const_data): ditto
12020         (_dbus_string_get_data_len): ditto
12021         (_dbus_string_get_const_data_len): ditto
12022
12023 2003-03-31  Havoc Pennington  <hp@redhat.com>
12024
12025         * bus/main.c (main): fix up the command line arguments to be nicer
12026
12027 2003-03-31  Havoc Pennington  <hp@redhat.com>
12028
12029         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12030         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12031         final location that lands in the config file
12032
12033         * bus/config-loader-expat.c (bus_config_load): fix type of
12034         XML_Parser variable
12035
12036         * doc/TODO: remove TODO item for dbus_bus_get()
12037
12038         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12039
12040 2003-03-31  Havoc Pennington  <hp@pobox.com>
12041
12042         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12043         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12044         argument since they are always client side
12045
12046         * dbus/dbus-server.c (dbus_server_get_address): new function
12047
12048         * bus/main.c (main): take the configuration file as an argument.
12049
12050         * test/data/valid-config-files/debug-allow-all.conf: new file to
12051         use with dispatch.c tests for example
12052
12053         * bus/test-main.c (main): require test data dir
12054
12055         * bus/bus.c (bus_context_new): change this to take a
12056         configuration file name as argument
12057
12058         * doc/config-file.txt (Elements): add <servicedir>
12059
12060         * bus/system.conf, bus/session.conf: new files
12061
12062         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12063         well-known socket if none set
12064
12065         * configure.in: create system.conf and session.conf
12066
12067 2003-03-30  Havoc Pennington  <hp@pobox.com>
12068
12069         * bus/config-parser.c: hacking
12070
12071         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12072         to shut down, since it could cause weirdness with the DBusList
12073         lock
12074
12075         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12076         link-oriented stack routines
12077         (alloc_link): free the mempool if the first alloc from it fails
12078
12079         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12080
12081         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12082         from GLib
12083         (_dbus_string_skip_white): new
12084
12085         * doc/config-file.txt (Elements): add <includedir>
12086
12087 2003-03-28  Havoc Pennington  <hp@pobox.com>
12088
12089         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12090         (_dbus_string_copy_data): new functions
12091
12092 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12093
12094         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12095         * dbus/dbus-bus.h:
12096         Add dbus_bus_get.
12097
12098         * dbus/dbus-memory.c:
12099         Fix a doc comment.
12100
12101 2003-03-28  Havoc Pennington  <hp@pobox.com>
12102
12103         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12104         I think it may have just been superstition. Not sure.
12105
12106         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12107         failures that were not being handled.
12108
12109         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12110
12111         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12112         row that will fail on out-of-memory.
12113
12114         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12115         function for testing out-of-memory handling.
12116
12117         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12118         allocation functions, they do map exactly to the expat ones.
12119
12120 2003-03-27  Havoc Pennington  <hp@redhat.com>
12121
12122         * bus/config-loader-libxml.c (bus_config_load): add another error
12123         check
12124
12125 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12126
12127         * doc/TODO:
12128         Add note about automatic service activation.
12129
12130         * doc/dbus-specification.sgml:
12131         Rename the specification and clarify a few things.
12132
12133 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12134
12135         * Doxyfile.in:
12136         * dbus/dbus-address.c:
12137         * dbus/dbus-dict.c:
12138         * dbus/dbus-marshal.c:
12139         * dbus/dbus-server-debug-pipe.c:
12140         * dbus/dbus-transport-unix.c:
12141         Fix documentation warnings.
12142
12143 2003-03-26  Havoc Pennington  <hp@pobox.com>
12144
12145         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12146         after every test so it's quick and easy to see which leaked, and
12147         so we test multiple dbus_shutdown() calls
12148
12149         * configure.in: change configure.in XML stuff to also support
12150         expat
12151
12152         * config-loader-libxml.c: some hacking
12153
12154         * config-loader-expat.c: some hacking
12155
12156         * config-parser.c: some hacking, plus tests
12157
12158 2003-03-25  Havoc Pennington  <hp@redhat.com>
12159
12160         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12161
12162         * configure.in: add --with-xml option to specify XML library,
12163         right now only libxml is supported.
12164
12165         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12166         nonworking code between home and work, still just stubs
12167
12168 2003-03-24  Havoc Pennington  <hp@redhat.com>
12169
12170         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12171         file
12172
12173         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12174         NULL argument for "message" if the error is a well-known one,
12175         fill in a generic message in this case.
12176
12177         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12178         favor of DBusError
12179
12180         * bus/test.c (bus_test_flush_bus): add
12181
12182         * bus/policy.c (bus_policy_test): test code stub
12183
12184 2003-03-24  Havoc Pennington  <hp@pobox.com>
12185
12186         * bus/connection.c (bus_connections_setup_connection): set up
12187         the "can this user connect" function, but it always returns
12188         TRUE until we have a config file parser so we can have a config
12189         file that allows connections.
12190
12191 2003-03-23  Havoc Pennington  <hp@pobox.com>
12192
12193         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12194         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12195         the mutex, so we can check for proper memory management
12196         and OOM handling.
12197
12198         * dbus/dbus-dataslot.c: remove the mutex from
12199         DBusDataSlotAllocator and lock it manually when using it,
12200         to simplify fitting it into the global slots framework.
12201
12202         * dbus/dbus-threads.c (init_static_locks): rework how we're
12203         handling global locks so they are easily shut down.
12204
12205         * bus/policy.c (bus_policy_append_rule): fix
12206
12207         * bus/test-main.c (main): check for memleaks
12208
12209         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12210         test suite check for memleaks
12211
12212         * dbus/dbus-memory.c: add support in test mode for tracking
12213         number of outstanding blocks
12214
12215 2003-03-23  Havoc Pennington  <hp@pobox.com>
12216
12217         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12218         policies code
12219
12220         * dbus/dbus-hash.h: add ULONG hash keys
12221
12222         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12223         (_dbus_get_group_id): new function
12224
12225 2003-03-20  Havoc Pennington  <hp@redhat.com>
12226
12227         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12228         new function
12229         (dbus_connection_get_unix_user): new function
12230
12231 2003-03-20  Havoc Pennington  <hp@pobox.com>
12232
12233         * bus/connection.c (bus_connection_send_oom_error): assert that
12234         message has a sender
12235         (connection_execute_transaction): ditto
12236         (bus_connection_preallocate_oom_error): fix to set the sender, and
12237         set recipient to the destination service, not the bus driver
12238
12239         * bus/policy.c: hacking
12240
12241         * dbus/dbus-message.c (dbus_message_service_is): new function
12242         (dbus_message_sender_is): new
12243
12244 2003-03-19  Havoc Pennington  <hp@redhat.com>
12245
12246         * bus/policy.c: start sketching code for policy restrictions on
12247         what connections can do.
12248
12249 2003-03-18  Havoc Pennington  <hp@redhat.com>
12250
12251         * doc/TODO: some notes on high-level todo items. Little nitpick
12252         stuff is all in @todo, so no need to add it here.
12253
12254         * doc/config-file.txt: some notes on how config file might look
12255
12256 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12257
12258         * configure.in: 0.6
12259
12260         * NEWS: Update.
12261
12262 2003-03-17  Havoc Pennington  <hp@redhat.com>
12263
12264         * dbus/dbus-internals.h: add gcc attributes so that
12265         our printf-style functions warn on bad arguments to
12266         format
12267
12268         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12269         format bug
12270
12271         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12272         printf format bug
12273
12274 2003-03-17  Havoc Pennington  <hp@redhat.com>
12275
12276         * bus/test-main.c (main): make it print something as it runs
12277         so make check doesn't look stuck
12278
12279         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12280         from CVS, now obsolete
12281
12282 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12283
12284         * bus/dispatch.c: (bus_dispatch):
12285         Refetch the service name since it may have been reallocated
12286         when dbus_message_set_sender was called.
12287
12288         * dbus/dbus-sysdeps.c: (_dbus_accept):
12289         Add address and address length variables and use them to stop
12290         valgrind from complaining.
12291
12292 2003-03-17  Havoc Pennington  <hp@pobox.com>
12293
12294         All tests pass, no memleaks, no valgrind complaints.
12295
12296         * bus/test.c: refcount handler_slot
12297
12298         * bus/connection.c (bus_connections_new): refcount
12299         connection_data_slot
12300
12301         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12302         bytes so that auth scripts pass.
12303
12304         * bus/dispatch.c: init message_handler_slot so it gets allocated
12305         properly
12306
12307         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12308
12309         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12310         dealloc server_pipe_hash when no longer used for benefit of
12311         leak checking
12312
12313         * dbus/dbus-auth.c (process_command): memleak fix
12314
12315         * bus/dispatch.c (check_hello_message): memleak fix
12316
12317 2003-03-16  Havoc Pennington  <hp@pobox.com>
12318
12319         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12320
12321 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12322
12323         * bus/activation.c (bus_activation_activate_service): Append
12324         the pending activation entry to the list of pending activations.
12325
12326 2003-03-16  Havoc Pennington  <hp@pobox.com>
12327
12328         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12329         connections
12330
12331         * dbus/dbus-address.c (create_entry): fix OOM handling when
12332         failing to alloc entry->method
12333
12334 2003-03-16  Havoc Pennington  <hp@pobox.com>
12335
12336         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12337         the watch
12338
12339         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12340         add some missing dbus_set_result
12341
12342         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12343         alloc the DBusMessageHandler
12344
12345         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12346         the transport here, since we call this from the finalizer; it
12347         resulted in a double-finalize.
12348
12349         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12350         where we tried to use transport->connection that was NULL,
12351         happened when transport was disconnected early on due to OOM
12352
12353         * bus/*.c: adapt to handle OOM for watches/timeouts
12354
12355         * dbus/dbus-transport-unix.c: port to handle OOM during
12356         watch handling
12357
12358         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12359         reference to unused bytes instead of a copy
12360
12361         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12362         out of memory
12363
12364         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12365         FALSE on OOM
12366
12367         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12368         of memory
12369
12370 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12371
12372         * doc/dbus-specification.sgml:
12373         Document reply message for ActivateService.
12374
12375 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12376
12377         * bus/activation.c: (bus_pending_activation_entry_free),
12378         (bus_pending_activation_free), (bus_activation_new),
12379         (bus_activation_unref), (bus_activation_service_created),
12380         (bus_activation_activate_service):
12381         * bus/activation.h:
12382         * bus/bus.c: (bus_context_new):
12383         * bus/desktop-file.c: (new_section):
12384         * bus/driver.c: (bus_driver_send_service_deleted),
12385         (bus_driver_handle_activate_service):
12386         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12387         * bus/services.h:
12388         * dbus/dbus-connection.c:
12389         (dbus_connection_send_with_reply_and_block):
12390         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12391         * dbus/dbus-protocol.h:
12392         Make activation work better. Now pending activations will be queued
12393         and the daemon won't try to activate services that are already registered.
12394
12395 2003-03-16  Havoc Pennington  <hp@pobox.com>
12396
12397         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12398         connection data
12399
12400         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12401         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12402
12403 2003-03-16  Havoc Pennington  <hp@pobox.com>
12404
12405         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12406         this. always run the test suite before commit...
12407
12408         * bus/*: adapt to DBusConnection API changes
12409
12410         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12411         requires renaming stuff to avoid dbus_connection_dispatch name
12412         conflict.
12413
12414         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12415         function
12416
12417         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12418         separate from _dbus_message_loader_return_buffer()
12419
12420         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12421         this, because it's now always broken to use; the number of
12422         messages in queue vs. the number still buffered by the message
12423         loader is undefined/meaningless. Should use
12424         dbus_connection_get_dispatch_state().
12425         (dbus_connection_dispatch): rename from
12426         dbus_connection_dispatch_message
12427
12428 2003-03-16  Havoc Pennington  <hp@pobox.com>
12429
12430         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12431         implementation
12432
12433 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12434
12435         * dbus/dbus-connection.c:
12436         (dbus_connection_send_with_reply_and_block):
12437         Decrease connection->n_incoming when removing an entry
12438         from the list.
12439         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12440         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12441         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12442         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12443         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12444         (dbus_dict_get_byte_array):
12445         Handle NULL arrays and strings. Also add support for byte arrays.
12446
12447         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12448         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12449         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12450         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12451         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12452         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12453         * dbus/dbus-marshal.h:
12454         Add support for marshalling and demarshalling empty arrays and strings.
12455
12456         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12457         (dbus_message_append_string_array),
12458         (dbus_message_iter_get_boolean),
12459         (dbus_message_iter_get_boolean_array),
12460         (dbus_message_iter_get_int32_array),
12461         (dbus_message_iter_get_uint32_array),
12462         (dbus_message_iter_get_double_array),
12463         (dbus_message_iter_get_byte_array),
12464         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12465         (check_message_handling):
12466         Add support for getting empty arrays and dicts.
12467
12468         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12469         Don't do any validation at all for now, that's better than just checking
12470         for ASCII.
12471
12472         * test/data/valid-messages/emptiness.message:
12473         New test message with lots of empty arrays.
12474
12475 2003-03-16  Havoc Pennington  <hp@pobox.com>
12476
12477         * dbus/dbus-connection.c
12478         (_dbus_connection_queue_received_message_link): new function that
12479         can't fail due to OOM
12480
12481         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12482         new function pops a message together with a list link
12483         containing it.
12484
12485         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12486         message queuing functions to avoid needing to alloc memory
12487
12488 2003-03-16  Havoc Pennington  <hp@pobox.com>
12489
12490         Oops - test code was only testing failure of around 30 of the
12491         mallocs in the test path, but it turns out there are 500+
12492         mallocs. I believe this was due to misguided linking setup such
12493         that there was one copy of dbus_malloc etc. in the daemon and one
12494         in the shared lib, and only daemon mallocs were tested. In any
12495         case, the test case now tests all 500+ mallocs, and doesn't pass
12496         yet, though there are lots of fixes in this patch.
12497
12498         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12499         this so that it doesn't need to allocate memory, since it
12500         has no way of indicating failure due to OOM (and would be
12501         annoying if it did).
12502
12503         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12504
12505         * bus/Makefile.am: rearrange to create two self-contained
12506         libraries, to avoid having libraries with overlapping symbols.
12507         that was resulting in weirdness, e.g. I'm pretty sure there
12508         were two copies of global static variables.
12509
12510         * dbus/dbus-internals.c: move the malloc debug stuff to
12511         dbus-memory.c
12512
12513         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12514         empty.
12515
12516         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12517
12518         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12519         on failure.
12520
12521         * bus/dispatch.c (bus_dispatch_add_connection): free
12522         message_handler_slot when no longer using it, so
12523         memory leak checkers are happy for the test suite.
12524
12525         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12526
12527         * bus/bus.c (new_connection_callback): disconnect in here if
12528         bus_connections_setup_connection fails.
12529
12530         * bus/connection.c (bus_connections_unref): fix to free the
12531         connections
12532         (bus_connections_setup_connection): if this fails, don't
12533         disconnect the connection, just be sure there are no side
12534         effects.
12535
12536         * dbus/dbus-string.c (undo_alignment): unbreak this
12537
12538         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12539         leaking
12540         (_dbus_auth_new): fix the order in which we free strings
12541         on OOM failure
12542
12543         * bus/connection.c (bus_connection_disconnected): fix to
12544         not send ServiceDeleted multiple times in case of memory
12545         allocation failure
12546
12547         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12548         get the base service name
12549         (dbus_bus_register_client): don't return base service name,
12550         instead store it on the DBusConnection and have an accessor
12551         function for it.
12552         (dbus_bus_register_client): rename dbus_bus_register()
12553
12554         * bus/dispatch.c (check_hello_message): verify that other
12555         connections on the bus also got the correct results, not
12556         just the one sending hello
12557
12558 2003-03-15  Havoc Pennington  <hp@pobox.com>
12559
12560         Make it pass the Hello handling test including all OOM codepaths.
12561         Now to do other messages...
12562
12563         * bus/services.c (bus_service_remove_owner): fix crash when
12564         removing owner from an empty list of owners
12565         (bus_registry_ensure): don't leave service in the list of
12566         a connection's owned services if we fail to put the service
12567         in the hash table.
12568
12569         * bus/connection.c (bus_connection_preallocate_oom_error): set
12570         error flag on the OOM error.
12571
12572         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12573         handle _dbus_transport_set_connection failure
12574
12575         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12576         to create watches up front and simply enable/disable them as
12577         needed.
12578         (unix_connection_set): this can now fail on OOM
12579
12580         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12581         of enabling/disabling a watch or timeout.
12582
12583         * bus/loop.c (bus_loop_iterate): don't touch disabled
12584         watches/timeouts
12585
12586         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12587
12588 2003-03-15  Havoc Pennington  <hp@pobox.com>
12589
12590         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12591         write useful test code, after all that futzing around ;-)
12592
12593         Test does not yet pass because we can't handle OOM in
12594         _dbus_transport_messages_pending (basically,
12595         dbus_connection_preallocate_send() does not prealloc the write
12596         watch). To fix this, I think we need to add new stuff to
12597         set_watch_functions, namely a SetEnabled function so we can alloc
12598         the watch earlier, then enable it later.
12599
12600         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12601         dbus-memory.c to the convenience lib
12602
12603         * bus/test.c: rename some static functions to keep them clearly
12604         distinct from stuff in connection.c. Handle client disconnection.
12605
12606 2003-03-14  Havoc Pennington  <hp@pobox.com>
12607
12608         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12609         transport, tests more of the real codepath. Set up clients
12610         with bus_setup_debug_client.
12611
12612         * bus/test.c (bus_setup_debug_client): function to set up debug
12613         "clients" on the main loop
12614
12615         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12616         support
12617
12618         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12619         server type
12620
12621         * dbus/dbus-server-debug.c: support a debug server based on pipes
12622
12623         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12624         (_dbus_close): new function
12625
12626         * configure.in: check for socketpair
12627
12628 2003-03-14  Havoc Pennington  <hp@redhat.com>
12629
12630         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12631         cheesy hack
12632
12633         * dbus/dbus-transport-debug.c: rework this a good bit to be
12634         less complicated. hopefully still works.
12635
12636         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12637         manually
12638
12639         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12640         after running it
12641
12642         * dbus/dbus-message.c (dbus_message_copy): rename from
12643         dbus_message_new_from_message, fix it up to copy
12644         all the message fields, add test case
12645
12646         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12647         not quite passing yet
12648
12649 2003-03-14  Havoc Pennington  <hp@pobox.com>
12650
12651         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12652         until no work remains" in test code. (the large diff here
12653         is just code movement, no actual changes)
12654
12655         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12656         1, no point waiting around for test code.
12657         (_dbus_server_debug_accept_transport): unref the timeout
12658         after adding it (right?)
12659
12660         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12661
12662 2003-03-13  Havoc Pennington  <hp@redhat.com>
12663
12664         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12665         out of memory
12666
12667         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12668         of memory
12669
12670         * dbus/dbus-connection.h: Make AddWatchFunction and
12671         AddTimeoutFunction return a bool so they can fail on out-of-memory
12672
12673         * bus/bus.c (bus_context_new): set up timeout handlers
12674
12675         * bus/connection.c (bus_connections_setup_connection): set up
12676         timeout handlers
12677
12678         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12679         can fail
12680
12681         * bus/bus.c (bus_context_new): adapt to changes
12682
12683         * bus/connection.c: adapt to changes
12684
12685         * test/watch.c: adapt to DBusWatch changes
12686
12687         * bus/dispatch.c (bus_dispatch_test): started adding this but
12688         didn't finish
12689
12690 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12691
12692         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12693
12694 2003-03-13  Havoc Pennington  <hp@pobox.com>
12695
12696         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12697         set up a test framework as for the library
12698
12699 2003-03-12  Havoc Pennington  <hp@pobox.com>
12700
12701         Throughout: purge global variables, introduce BusActivation,
12702         BusConnections, BusRegistry, etc. objects instead.
12703
12704         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12705         message bus object
12706
12707         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12708         going to redo this a bit differently I think
12709
12710 2003-03-12  Havoc Pennington  <hp@redhat.com>
12711
12712         Mega-patch that gets the message bus daemon initially handling
12713         out-of-memory. Work still needed. Also lots of random
12714         moving stuff to DBusError instead of ResultCode.
12715
12716         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12717
12718         * dbus/dbus-connection.c
12719         (dbus_connection_send_with_reply_and_block): use DBusError
12720
12721         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12722         DBusResultCode
12723
12724         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12725         code here, as the only failure possible is OOM.
12726
12727         * bus/connection.c (bus_connection_disconnect):
12728         rename bus_connection_disconnected as it's a notification only
12729
12730         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12731         "name" on get_args failure, should be done by get_args;
12732         don't disconnect client for bad args, just return an error.
12733         (bus_driver_handle_service_exists): ditto
12734
12735         * bus/services.c (bus_services_list): NULL-terminate returned array
12736
12737         * bus/driver.c (bus_driver_send_service_lost)
12738         (bus_driver_send_service_acquired): send messages from driver to a
12739         specific client to the client's unique name, not to the broadcast
12740         service.
12741
12742         * dbus/dbus-message.c (decode_header_data): reject messages that
12743         contain no name field
12744         (_dbus_message_get_client_serial): rename to
12745         dbus_message_get_serial and make public
12746         (_dbus_message_set_serial): rename from set_client_serial
12747         (_dbus_message_set_reply_serial): make public
12748         (_dbus_message_get_reply_serial): make public
12749
12750         * bus/connection.c (bus_connection_foreach): allow stopping
12751         iteration by returning FALSE from foreach function.
12752
12753         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12754         (dbus_connection_free_preallocated_send)
12755         (dbus_connection_preallocate_send): new API for sending a message
12756         without possibility of malloc failure.
12757         (dbus_connection_send_message): rename to just
12758         dbus_connection_send (and same for whole function family)
12759
12760         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12761
12762         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12763
12764         * bus/activation.c: handle/return errors
12765
12766         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12767
12768         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12769         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12770         (_dbus_result_from_errno): move to this file
12771
12772 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12773
12774         * dbus/dbus-marshal.c:
12775         (_dbus_marshal_set_string):
12776         Take a length argument so we can marshal the correct string
12777         length.
12778
12779         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12780         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12781         (_dbus_marshal_test):
12782         * dbus/dbus-marshal.h:
12783         Add support for marshalling and demarshalling dicts.
12784
12785         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12786         Add support for TYPE DICT.
12787
12788         * dbus/dbus-message.c: (set_string_field):
12789         Adjust header padding.
12790
12791         (dbus_message_append_args_valist), (dbus_message_append_dict),
12792         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12793         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12794         (check_message_handling), (check_have_valid_message):
12795         * dbus/dbus-message.h:
12796         Add functions for setting and getting dicts.
12797
12798         * dbus/dbus-protocol.h:
12799         Add DBUS_TYPE_DICT.
12800
12801         * dbus/dbus.h:
12802         Add dbus-dict.h
12803
12804         * doc/dbus-specification.sgml:
12805         Add information about how dicts are marshalled.
12806
12807         * test/data/invalid-messages/dict-with-nil-value.message:
12808         * test/data/invalid-messages/too-short-dict.message:
12809         * test/data/valid-messages/dict-simple.message:
12810         * test/data/valid-messages/dict.message:
12811         Add sample messages containing dicts.
12812
12813 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12814
12815         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12816
12817 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12818
12819         * dbus/Makefile.am:
12820         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12821         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12822         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12823         (dbus_dict_set_double), (dbus_dict_set_string),
12824         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12825         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12826         (dbus_dict_set_string_array), (_dbus_dict_test):
12827         * dbus/dbus-dict.h:
12828         Fix according to comments from Havoc.
12829
12830 2003-03-06  Michael Meeks  <michael@server.home>
12831
12832         * configure.in: if we don't have kde-config, disable have_qt.
12833
12834 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12835
12836         * dbus/Makefile.am:
12837         Add dbus-dict.[ch]
12838
12839         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12840         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12841         (dbus_dict_remove), (dbus_dict_get_value_type),
12842         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12843         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12844         (dbus_dict_put_double), (dbus_dict_put_string),
12845         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12846         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12847         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12848         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12849         (dbus_dict_get_double), (dbus_dict_get_string),
12850         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12851         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12852         (dbus_dict_get_string_array), (_dbus_dict_test):
12853         * dbus/dbus-dict.h:
12854         Add DBusDict implementation
12855
12856         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12857         * dbus/dbus-test.h:
12858         Add _dbus_dict_test
12859
12860 2003-03-04  Havoc Pennington  <hp@pobox.com>
12861
12862         * test/data/auth/*: adapt to changes
12863
12864         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12865         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12866         userid
12867
12868         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12869         more stuff from being in a context name, to make the protocol
12870         simpler to deal with
12871
12872         * dbus/dbus-errors.c (dbus_error_has_name): new function
12873         (dbus_error_is_set): new function
12874
12875         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12876         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12877
12878         * dbus/dbus-connection.c (dbus_connection_flush): also read
12879         messages during a flush operation
12880
12881         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12882
12883 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12884
12885         * configure.in: Check for gethostbyname on Solaris.
12886
12887         * dbus/dbus-transport.c: (_dbus_transport_open):
12888         Remove duplicate "tcp" entry.
12889
12890         * doc/dbus-specification.sgml:
12891         Clarify some things.
12892
12893 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12894
12895         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12896         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12897         (_dbus_keyring_test):
12898         * dbus/dbus-md5.c: (_dbus_md5_compute):
12899         * dbus/dbus-sha.c: (_dbus_sha_compute):
12900         Plug memory leaks.
12901
12902 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12903
12904         * README: Add some things.
12905
12906 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12907
12908         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12909         after case DBUS_TYPE_BOOELAN.
12910
12911 2003-03-02  Havoc Pennington  <hp@pobox.com>
12912
12913         * test/break-loader.c (randomly_set_extreme_ints): add test that
12914         sets really huge and small integers
12915
12916         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12917         that length of boolean array fits in the string, and that
12918         string has room for boolean value in single-bool case.
12919
12920         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12921         optional value to "ALIGN" command which is what to fill the
12922         alignment with.
12923
12924         * test/data/valid-messages/no-padding.message: add regression
12925         test for the message padding problem
12926
12927 2003-03-02  Havoc Pennington  <hp@pobox.com>
12928
12929         * dbus/dbus-message.c (decode_header_data): fix to always init
12930         message_padding, from Benjamin Dauvergne
12931
12932 2003-03-02  Havoc Pennington  <hp@pobox.com>
12933
12934         * configure.in: 0.5
12935
12936         * NEWS: Update.
12937
12938 2003-03-01  Joe Shaw  <joe@assbarn.com>
12939
12940         * configure.in: Check for "struct cmsgcred" and try to access its
12941         members for BSD-like unices.
12942
12943         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12944         _dbus_read_credentials_unix_socket().
12945         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12946         read() for reading the credential byte off the unix socket.  Use
12947         struct cmsgcred on systems that support it.
12948
12949 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12950
12951         * glib/Makefile.am:
12952         * configure.in:
12953         Make gthreads-2.0 dependency optional. Don't build thread test if
12954         its not found.
12955
12956 2003-02-27  Havoc Pennington  <hp@pobox.com>
12957
12958         * dbus/dbus-connection.c
12959         (dbus_connection_send_message_with_reply_and_block): fix doh!
12960         doh! doh! bug that resulted in never removing a reply from the
12961         queue, no wonder we called get_reply_serial so much ;-)
12962
12963         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12964         and client serial instead of demarshaling them every time
12965
12966 2003-02-27  Havoc Pennington  <hp@pobox.com>
12967
12968         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12969         more inlined, using dbus-string-private.h, speeds things up
12970         substantially
12971
12972         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12973         when freeing the string
12974         (_dbus_string_steal_data): fix for align offset
12975         (undo_alignment): new function
12976
12977 2003-02-26  Havoc Pennington  <hp@redhat.com>
12978
12979         All kinds of audit fixes from Owen, plus initial attempt to
12980         handle unaligned memory returned from malloc.
12981
12982         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12983         leave room for align_offset and nul byte
12984         (fixup_alignment): function to track an align_offset and
12985         ensure real->str is aligned
12986         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12987         to allow a nul byte plus align offset
12988         (_dbus_string_lock): fix overflow issue
12989         (_dbus_string_init_const_len): add assertions on sanity of len,
12990         assign allocated to be ALLOCATION_PADDING larger than len
12991         (set_length): fixup the overflow handling
12992         (_dbus_string_get_data_len): fix overflow in assertion
12993         (open_gap): detect overflow in size of gap to be opened
12994         (_dbus_string_lengthen): add overflow check
12995         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12996         (_dbus_string_append): add overflow check
12997         (_dbus_string_append_unichar): overflow
12998         (_dbus_string_delete): fix overflow in assertion
12999         (_dbus_string_copy_len): overflow in assertion
13000         (_dbus_string_replace_len): overflows in assertions
13001         (_dbus_string_find): change to implement in terms of
13002         _dbus_string_find_to
13003         (_dbus_string_find_to): assorted fixage
13004         (_dbus_string_equal_c_str): assert c_str != NULL,
13005         fix logic so the function works
13006         (_dbus_string_ends_with_c_str): fix overflow thingy
13007         (_dbus_string_base64_encode): overflow fix
13008         (_dbus_string_validate_ascii): overflow
13009         (_dbus_string_validate_nul): overflow
13010
13011 2003-02-26  Havoc Pennington  <hp@redhat.com>
13012
13013         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13014
13015 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13016
13017         * configure.in:
13018         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13019
13020         * dbus/dbus-connection.c:
13021         * dbus/dbus-connection.h:
13022         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13023         Add dbus_connection_set_wakeup_main_function and use it when queueing
13024         incoming and outgoing messages.
13025
13026
13027         * dbus/dbus-dataslot.c:
13028         Threadsafe usage of DBusDataSlotAllocator
13029
13030         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13031         dbus_new can fail.
13032
13033         * dbus/dbus-server-unix.c:
13034         Add todo comment
13035
13036         * glib/dbus-gmain.c:
13037         Implement the new wakeup functions for glib.
13038
13039         * glib/Makefile.am:
13040         * glib/test-thread-client.c:
13041         * glib/test-thread-server.c:
13042         * glib/test-thread.h:
13043         Initial cut at some thread test code. Not really done yet.
13044
13045 2003-02-26  Havoc Pennington  <hp@pobox.com>
13046
13047         * dbus/dbus-connection.c
13048         (dbus_connection_send_message_with_reply_and_block): fix crash
13049         where we ref'd the outgoing message instead of the returned reply
13050
13051         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13052         at the end of this function, so if we didn't need to read for
13053         authentication, we reinstall it for receiving messages
13054
13055         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13056         a NULL sender for peer-to-peer case
13057
13058         * dbus/dbus-transport-unix.c (check_read_watch): handle
13059         !authenticated case correctly
13060
13061         * glib/dbus-gmain.c: add support for DBusServer
13062
13063         * dbus/dbus-server.c: add data slot support
13064
13065         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13066         return values and handle errors
13067
13068         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13069         DBusConnection
13070
13071         * Doxyfile.in (INPUT): add glib subdir
13072
13073         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13074         setup_with_g_main instead of hookup_with_g_main; write docs
13075
13076 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13077
13078         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13079         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13080         * dbus/dbus-message.c: (dbus_message_append_boolean),
13081         (dbus_message_append_boolean_array),
13082         (dbus_message_get_args_valist), (_dbus_message_test):
13083         * dbus/dbus-message.h:
13084         * doc/dbus-specification.sgml:
13085         Various fixes as pointed out by Havoc.
13086
13087         * test/data/invalid-messages/bad-boolean-array.message:
13088         * test/data/invalid-messages/bad-boolean.message:
13089         Add invalid boolean value test cases.
13090
13091 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13092
13093         * dbus/dbus-internals.c: (_dbus_type_to_string):
13094         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13095         (_dbus_marshal_validate_arg):
13096         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13097         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13098         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13099         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13100         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13101         (dbus_message_iter_get_double),
13102         (dbus_message_iter_get_boolean_array), (message_iter_test):
13103         * dbus/dbus-message.h:
13104         * dbus/dbus-protocol.h:
13105         * doc/dbus-specification.sgml:
13106         * test/data/valid-messages/lots-of-arguments.message:
13107         Add support for boolean and boolean array types.
13108
13109 2003-02-23  Havoc Pennington  <hp@pobox.com>
13110
13111         * dbus/dbus-keyring.c: finish most of this implementation and
13112         simple unit test
13113
13114         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13115         these barf if the error isn't cleared to NULL
13116
13117         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13118         (_dbus_create_directory): new function
13119
13120         * dbus/dbus-errors.c (dbus_set_error): fix warning
13121
13122         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13123         (_dbus_string_hex_decode): new function
13124         (test_hex_roundtrip): test code
13125
13126         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13127
13128         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13129
13130         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13131         the save-to-temp/rename trick to atomically write the new file
13132         (_dbus_string_parse_uint): new function
13133
13134 2003-02-22  Havoc Pennington  <hp@pobox.com>
13135
13136         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13137
13138 2003-02-22  Havoc Pennington  <hp@pobox.com>
13139
13140         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13141         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13142
13143         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13144
13145         * dbus/test/data/sha-1: add US government test suite for SHA-1
13146
13147 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13148
13149         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13150         Make string arrays NULL-terminated.
13151
13152         * dbus/dbus-memory.c: (dbus_free_string_array):
13153         * dbus/dbus-memory.h:
13154         New function for freeing NULL-terminated string arrays.
13155
13156         * dbus/dbus-message-builder.c: (append_quoted_string),
13157         (_dbus_message_data_load):
13158         Add support for array types.
13159
13160         * dbus/dbus-message.c: (check_message_handling):
13161         Add more types as test cases.
13162
13163         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13164         (_dbus_string_parse_double):
13165         Add the start offset to the end offset.
13166
13167         * test/data/valid-messages/lots-of-arguments.message:
13168         New test message with lots of arguments.
13169
13170 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13171
13172         * dbus/dbus-message.c: (dbus_message_append_nil),
13173         (dbus_message_append_int32), (dbus_message_append_uint32),
13174         (dbus_message_append_double), (dbus_message_append_string),
13175         (dbus_message_append_int32_array),
13176         (dbus_message_append_uint32_array),
13177         (dbus_message_append_double_array),
13178         (dbus_message_append_byte_array),
13179         (dbus_message_append_string_array):
13180         Fix all out-of-memory handling in these functions.
13181
13182 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13183
13184         * dbus/dbus-message.c: (dbus_message_append_nil):
13185         Fix a silly.
13186
13187 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13188
13189         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13190         (dbus_message_append_nil), (dbus_message_append_int32_array),
13191         (dbus_message_append_uint32_array),
13192         (dbus_message_append_double_array),
13193         (dbus_message_append_byte_array),
13194         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13195         (dbus_message_iter_get_int32_array),
13196         (dbus_message_iter_get_uint32_array),
13197         (dbus_message_iter_get_double_array),
13198         (dbus_message_iter_get_byte_array),
13199         (dbus_message_iter_get_string_array):
13200
13201         * dbus/dbus-message.h:
13202         Add functions for appending and getting arrays.
13203
13204 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13205
13206         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13207         element size at least 8 bytes, fixes mempool tests on
13208         64-bit machines.
13209
13210 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13211
13212         * dbus/dbus-transport-unix.c (unix_do_iteration):
13213         Unlock the connection mutex during a blocking select call.
13214         Add todo about how we need a way to wake up the select.
13215
13216         * dbus/dbus-connection-internal.h:
13217         * dbus/dbus-connection.c:
13218         Add _dbus_connection_lock and _dbus_connection_unlock.
13219
13220 2003-02-19  Havoc Pennington  <hp@pobox.com>
13221
13222         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13223         Doxyfile.in, not Doxyfile
13224
13225         * dbus/dbus-keyring.c: do some hacking on this
13226
13227         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13228
13229         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13230         dbus_error_init
13231         (dbus_set_error): remove dbus_error_init, check for message ==
13232         NULL *before* we sprintf into it, and add @todo about including
13233         system headers in this file
13234
13235         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13236
13237         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13238
13239         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13240         get various bits of user information based on either username
13241         or user ID
13242         (_dbus_homedir_from_username): new function
13243
13244 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13245
13246         * configure.in:
13247         Add check for nonposix getpwnam_r
13248
13249         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13250         Align the pool element size to a sizeof (void *) boundary.
13251
13252         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13253         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13254         General Solaris fixes.
13255
13256         * test/data/valid-messages/simplest-manual.message:
13257         Explicitly state that we want little-endian packing.
13258
13259 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13260
13261         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13262
13263         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13264         Added to create a transport connecting using a tcp/ip socket.
13265
13266         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13267         to a tcp socket at given host and port.
13268         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13269         hostname and port.
13270
13271         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13272
13273         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13274         Added to create a server listening on a TCP/IP socket.
13275
13276 2003-02-19  Havoc Pennington  <hp@pobox.com>
13277
13278         Throughout: mop up all the Doxygen warnings and undocumented
13279         stuff.
13280
13281         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13282         to search any paths.
13283
13284         * dbus/dbus-threads.c: move global mutex initializers to
13285         dbus-internals.h, multiple prototypes was confusing doxygen
13286         besides being kind of ugly
13287
13288         * Doxyfile (PREDEFINED): have Doxygen define
13289         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13290         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13291         (do not abuse the feature! it's for stuff like the autogenerated
13292         macros in dbus-md5.c, not just for things you don't feel like
13293         documenting...)
13294
13295 2003-02-18  Havoc Pennington  <hp@pobox.com>
13296
13297         * dbus/dbus-string.c (_dbus_string_zero): new function
13298
13299         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13300         wrap it in some dbus-friendly API
13301
13302         * dbus/dbus-types.h: add 16-bit types
13303
13304 2003-02-18  Joe Shaw  <joe@assbarn.com>
13305
13306         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13307         credentials from our currently running process.
13308         (get_word): Fix a buglet where we were copying the entire length
13309         instead of relative to our position.
13310
13311         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13312         keys on the stack... it's 640k of data.
13313
13314         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13315         read the credentials byte off the socket, even if we don't have
13316         SO_PEERCRED.
13317         (_dbus_poll): Implement poll() using select() for systems which
13318         don't have it.
13319
13320         * glib/test-dbus-glib.c (main): Print out an error if no
13321         parameters are given.
13322
13323         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13324         can fallback to a secondary auth mechanism if the first fails.
13325
13326 2003-02-18  Havoc Pennington  <hp@pobox.com>
13327
13328         * AUTHORS: add Alex
13329
13330 2003-02-17  Havoc Pennington  <hp@pobox.com>
13331
13332         * doc/dbus-specification.sgml: lots of cosmetic
13333         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13334         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13335         s/server/bus/ (except in authentication section). Add a section
13336         "Message Bus Message Routing"
13337
13338 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13339
13340         Release 0.4
13341
13342         * NEWS: Update
13343
13344 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13345
13346         * doc/dbus-specification.sgml:
13347         Specification updates.
13348
13349 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13350
13351         * bus/activation.c: (bus_activation_init), (child_setup),
13352         (bus_activation_activate_service):
13353         * bus/activation.h:
13354         * bus/main.c: (main):
13355         Set DBUS_ADDRESS environment variable.
13356
13357         * dbus/dbus-errors.c: (dbus_set_error):
13358         Don't use va_copy since that's a C99 feature.
13359
13360         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13361         (_dbus_spawn_async):
13362         * dbus/dbus-sysdeps.h:
13363         Add child_setup_func to _dbus_spawn_async.
13364
13365         * doc/dbus-specification.sgml:
13366         Update specification.
13367
13368         * test/spawn-test.c: (setup_func), (main):
13369         Fix test.
13370
13371 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13372
13373         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13374         Added todo.
13375
13376 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13377
13378         * doc/.cvsignore:
13379         * doc/Makefile.am:
13380         * doc/dbus-test-plan.sgml:
13381         Add test plan document.
13382
13383         * test/Makefile.am:
13384         Fix distcheck.
13385
13386 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13387
13388         * dbus/dbus-message.c: (decode_header_data),
13389         (_dbus_message_loader_return_buffer):
13390         Set the header padding amount when loading a message.
13391
13392 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13393
13394         * bus/dispatch.c: (send_one_message):
13395         Only send broadcast messages to registered connections.
13396
13397         * dbus/dbus-message.c: (dbus_message_name_is):
13398         * dbus/dbus-message.h:
13399         New convenience function.
13400
13401         * dbus/dbus-transport-debug.c: (do_reading):
13402         Only dispatch one message per run.
13403
13404         * test/Makefile.am:
13405         * test/bus-test.c: (new_connection_callback), (die),
13406         (test_hello_client1_handler), (test_hello_client2_handler),
13407         (test_hello_replies), (main):
13408
13409         * test/bus-test-loop.[ch]:
13410         Add these.
13411
13412 2003-02-16  Havoc Pennington  <hp@pobox.com>
13413
13414         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13415         backward conditional
13416
13417 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13418
13419         * dbus/dbus-connection.c:
13420         Implement sent_message_with_reply. (with_reply_and block is still
13421         busted).
13422         Made dispatch_message not lose message if OOM.
13423
13424         * dbus/dbus-errors.h:
13425         Add NoReply error (for reply timeouts).
13426
13427 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13428
13429         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13430         Actually free keys and values when destroying hashtable.
13431
13432 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13433
13434         * dbus/dbus-auth.c: (client_try_next_mechanism):
13435         Plug a leak.
13436
13437         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13438         Return TRUE if there's no thread implementation around.
13439
13440         * glib/dbus-gmain.c: (free_source),
13441         (dbus_connection_hookup_with_g_main):
13442         Make sure to remove the GSource when the connection is finalized.
13443
13444 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13445
13446         * bus/dispatch.c: (bus_dispatch_message_handler):
13447         * dbus/dbus-errors.h:
13448         Return an error if someone tries to send a message to a service
13449         that doesn't exist.
13450
13451 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13452
13453         * bus/activation.c: (load_directory), (bus_activation_init),
13454         (bus_activation_activate_service):
13455         * bus/activation.h:
13456         * bus/driver.c:
13457         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13458         More work on the activation handling.
13459
13460         * dbus/dbus-errors.h:
13461         Add some error messages
13462
13463         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13464         * dbus/dbus-message.h:
13465         New function that creates an error message.
13466
13467         * dbus/dbus-protocol.h:
13468         Add ACTIVATE_SERVER message.
13469
13470         * dbus/dbus-server-unix.c: (unix_handle_watch),
13471         (_dbus_server_new_for_domain_socket):
13472         Call _dbus_fd_set_close_on_exec.
13473
13474         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13475         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13476         (_dbus_fd_set_close_on_exec):
13477         * dbus/dbus-sysdeps.h:
13478         Add _dbus_fd_set_close_on exec function. Also add function that checks
13479         that all open fds are set to close-on-exec and warns otherwise.
13480
13481         * dbus/dbus-transport-unix.c:
13482         (_dbus_transport_new_for_domain_socket):
13483         Call _dbus_fd_set_close_on_exec.
13484
13485 2003-02-16  Havoc Pennington  <hp@pobox.com>
13486
13487         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13488         allow people to avoid setting SIGPIPE to SIG_IGN
13489         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13490         we've been asked not to
13491
13492 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13493
13494         * dbus/dbus-list.c: (_dbus_list_append_link),
13495         (_dbus_list_prepend_link):
13496         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13497         (dbus_realloc):
13498         Warning fixes.
13499
13500 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13501
13502         * bus/Makefile.am:
13503         * bus/activation.c: (bus_activation_entry_free),
13504         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13505         * bus/activation.h:
13506         * bus/main.c: (main):
13507         Add simple activation support, doesn't work yet though.
13508
13509 2003-02-15   Zack Rusin  <zack@kde.org>
13510
13511         * qt/dbus-qthread.cpp:  small casting fix
13512
13513 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13514
13515         * dbus/dbus-errors.c: (dbus_set_error):
13516         * dbus/dbus-errors.h:
13517         Add a few errors and make dbus_set_error void.
13518
13519         * dbus/dbus-sysdeps.c:
13520         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13521         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13522         * dbus/dbus-sysdeps.h:
13523         Add _dbus_spawn_async.
13524
13525         * test/spawn-test.c: (main):
13526         Test for _dbus_spawn_async.
13527
13528 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13529
13530         * dbus/dbus-internals.h:
13531         Fix build without tests.
13532
13533         * dbus/dbus-list.c: (alloc_link):
13534         Fix a segfault when a malloc fails.
13535
13536         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13537         (dbus_malloc0), (dbus_realloc):
13538         Add support for malloc debugging.
13539
13540 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13541
13542         * dbus/dbus-threads.c:
13543         * dbus/dbus-threads.h:
13544         Add condvars. Remove static mutext from API.
13545         Implement static mutexes by initializing them from threads_init.
13546
13547         * glib/dbus-gthread.c:
13548         * qt/dbus-qthread.cpp:
13549         Update with the thread api changes.
13550
13551
13552         * dbus/dbus-list.c:
13553         * dbus/dbus-list.h:
13554         Turn StaticMutex into normal mutex + init function.
13555         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13556         _dbus_list_append_link, _dbus_list_prepend_link
13557
13558
13559         * dbus/dbus-sysdeps.c:
13560         * dbus/dbus-sysdeps.h:
13561         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13562         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13563
13564         * dbus/dbus-protocol.h:
13565         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13566
13567         * dbus/dbus-message.c:
13568         Make ref/unref atomic.
13569         Fix some docs.
13570
13571         * dbus/dbus-connection-internal.h:
13572         * dbus/dbus-connection.c:
13573         * dbus/dbus-connection.h:
13574         Make threadsafe.
13575         Change _peek to _borrow,_return & _steal_borrowed.
13576         Change disconnect callback to event.
13577         Make dbus_connection_dispatch_messages reentrant.
13578
13579         * dbus/dbus-transport.c:
13580         Don't ref the connection on calls to the transport
13581         implementation.
13582
13583         * dbus/dbus-message-handler.c:
13584         Make threadsafe.
13585
13586         * glib/dbus-gmain.c:
13587         Don't use peek_message anymore
13588
13589         * test/Makefile.am:
13590         * test/debug-thread.c:
13591         * test/debug-thread.h:
13592         Simple thread implementation that asserts() on deadlocks in
13593         single-threaded code.
13594
13595         * test/bus-test.c:
13596         (main) Call debug_threads_init.
13597
13598         * test/watch.c:
13599         Use disconnect message instead of disconnect callback.
13600
13601         * bus/connection.c:
13602         * bus/connection.h:
13603         Don't call dbus_connection_set_disconnect_function. Instead export
13604         bus_connection_disconnect.
13605
13606         * bus/dispatch.c:
13607         Call bus_connection_disconnect when we get a disconnected message.
13608
13609 2003-02-15  Havoc Pennington  <hp@pobox.com>
13610
13611         * dbus/dbus-message.c (dbus_message_new): fool around with the
13612         docs
13613
13614 2003-02-14  Havoc Pennington  <hp@pobox.com>
13615
13616         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13617
13618         * dbus/dbus-memory.c: fail if the debug functions indicate we
13619         should
13620
13621         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13622         (_dbus_decrement_fail_alloc_counter): debug functions to
13623         simulate memory allocation failures
13624
13625 2003-02-14  Havoc Pennington  <hp@pobox.com>
13626
13627         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13628         to DBusError
13629
13630 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13631
13632         * bus/driver.c: (bus_driver_handle_hello):
13633         * bus/driver.h:
13634         * bus/services.c: (bus_service_lookup):
13635         Reorder message sending so we get a more sane order.
13636
13637         * test/bus-test.c: (message_handler):
13638         Fix tyop.
13639
13640 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13641
13642         * bus/driver.c: (bus_driver_send_service_deleted),
13643         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13644         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13645         (bus_driver_send_welcome_message),
13646         (bus_driver_handle_list_services),
13647         (bus_driver_handle_acquire_service),
13648         (bus_driver_handle_service_exists):
13649         * dbus/dbus-bus.c: (dbus_bus_register_client),
13650         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13651         * dbus/dbus-errors.c: (dbus_result_to_string):
13652         * dbus/dbus-errors.h:
13653         * dbus/dbus-message.c: (dbus_message_append_args),
13654         (dbus_message_append_args_valist), (dbus_message_get_args),
13655         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13656         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13657         (dbus_message_iter_get_byte_array),
13658         (dbus_message_iter_get_string_array), (message_iter_test),
13659         (check_message_handling), (_dbus_message_test):
13660         * dbus/dbus-message.h:
13661         * test/bus-test.c: (main):
13662         Change fields to arguments in messages, so that they won't be
13663         confused with header fields.
13664
13665         * glib/test-dbus-glib.c: (main):
13666         Remove append_fields from hello message.
13667
13668 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13669
13670         * dbus/dbus-errors.c:
13671         * dbus/dbus-message.c:
13672         * dbus/dbus-string.c:
13673         Documentation fixes.
13674
13675 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13676
13677         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13678         (remove_timeout):
13679         Implement support for timeouts in dbus-glib.
13680
13681 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13682
13683         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13684         * dbus/dbus-message.c: (process_test_subdir):
13685         * test/break-loader.c: (find_breaks_based_on):
13686         Plug some memory leaks.
13687
13688 2003-02-13  Richard Hult  <rhult@codefactory.se>
13689
13690         * bus/main.c: Fix build.
13691
13692         * dbus/dbus-errors.h:
13693         * dbus/dbus-errors.c: Fix copyright for Anders.
13694
13695 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13696
13697         * bus/Makefile.am:
13698         Add utils.[ch]
13699
13700         * bus/connection.c: (bus_connection_foreach):
13701         Fix a warning.
13702
13703         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13704         (unescape_string), (new_section), (parse_section_start),
13705         (parse_key_value), (report_error), (bus_desktop_file_load),
13706         (bus_desktop_file_get_string):
13707         * bus/desktop-file.h:
13708         Use DBusError for error reporting.
13709
13710         * bus/dispatch.c: (send_one_message),
13711         (bus_dispatch_message_handler):
13712         * bus/driver.c: (bus_driver_send_service_deleted),
13713         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13714         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13715         (bus_driver_send_welcome_message),
13716         (bus_driver_handle_list_services),
13717         (bus_driver_handle_acquire_service),
13718         (bus_driver_handle_service_exists):
13719         * bus/loop.c: (bus_loop_run):
13720         * bus/main.c:
13721         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13722
13723         * bus/utils.c: (bus_wait_for_memory):
13724         * bus/utils.h:
13725         New files with general utility functions.
13726
13727         * dbus/dbus-internals.h:
13728         Remove _DBUS_HANDLE_OOM.
13729
13730 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13731
13732         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13733         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13734         * dbus/dbus-errors.h:
13735         Add DBusError structure.
13736
13737 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13738
13739         * test/data/valid-messages/standard-acquire-service.message:
13740         * test/data/valid-messages/standard-hello.message:
13741         * test/data/valid-messages/standard-list-services.message:
13742         * test/data/valid-messages/standard-service-exists.message:
13743         Add some standard messages.
13744
13745 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13746
13747         * bus/driver.c: (bus_driver_send_welcome_message),
13748         (bus_driver_handle_list_services),
13749         (bus_driver_handle_acquire_service),
13750         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13751         Update for API changes in libdbus.
13752
13753         * dbus/dbus-message.c: (dbus_message_new_reply):
13754         * dbus/dbus-message.h:
13755         Remove the name argument. The spec states that replies shouldn't
13756         have a name.
13757
13758 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13759
13760         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13761         (report_error), (bus_desktop_file_load), (lookup_section),
13762         (lookup_line), (bus_desktop_file_get_raw),
13763         (bus_desktop_file_get_string):
13764         * bus/desktop-file.h:
13765         Some fixes, and new functions for getting a key value from a section.
13766
13767 2003-02-13  Havoc Pennington  <hp@pobox.com>
13768
13769         * test/data/auth/fail-after-n-attempts.auth-script: new test
13770
13771         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13772         reject the client.
13773
13774 2003-02-13  Havoc Pennington  <hp@pobox.com>
13775
13776         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13777         dbus_credentials_match were backward
13778
13779         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13780         NO_CREDENTIALS and ROOT_CREDENTIALS
13781
13782         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13783         into here. Never process more commands after we've reached an
13784         end state; store further data as unused bytes.
13785
13786         * test/data/auth/*: add more auth tests
13787
13788         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13789         command to match exact string and EXPECT_UNUSED to match unused
13790         bytes
13791
13792         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13793
13794 2003-02-12  Havoc Pennington  <hp@pobox.com>
13795
13796         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13797         \r off of popped lines
13798
13799         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13800         scripts
13801
13802         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13803         SEND, append \r\n
13804
13805 2003-02-12  Havoc Pennington  <hp@pobox.com>
13806
13807         * dbus/Makefile.am: remove break-loader from the build, since it
13808         moved.
13809
13810         * configure.in: add --enable-gcov to turn on coverage profiling
13811         flags and disable optimization
13812
13813 2003-02-10  Havoc Pennington  <hp@pobox.com>
13814
13815         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13816         initial cut at test framework for DBusAuth from laptop.
13817         Doesn't quite work yet but it compiles and I need to get
13818         it off the 266mhz laptop. ;-)
13819
13820         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13821         fix a memleak in error case
13822
13823 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13824
13825         * bus/Makefile.am:
13826         * bus/desktop-file.c:
13827         * bus/desktop-file.h:
13828         Add a desktop file parser.
13829
13830 2003-02-11  Zack Rusin  <zack@kde.org>
13831
13832         * qt/message.[h|cpp]: sample implementation
13833         of the KDE wrapper for DBusMessage
13834
13835 2003-02-09  Zack Rusin  <zack@kde.org>
13836
13837         * test/bus-test.c: make_it_compile
13838         * doc/dbus-specification.sgml: minimal semantic fix
13839
13840 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13841
13842         Release 0.3
13843
13844         * NEWS: Update
13845
13846 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * dbus/Makefile.am:
13849         * dbus/dbus-break-loader.c:
13850         * test/Makefile.am:
13851         * test/break-loader.c:
13852         Move dbus-break-loader to test/ and rename it to break-loader.
13853
13854 2003-02-02  Havoc Pennington  <hp@pobox.com>
13855
13856         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13857         for code to manage cookies in your home directory
13858
13859         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13860
13861         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13862         to authenticate, then disconnect the client.
13863
13864 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13865
13866         * dbus/dbus-message.c (dbus_message_append_fields):
13867         Correct docs.
13868
13869 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13870
13871         * doc/dbus-specification.sgml:
13872         Update address format section.
13873
13874 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13875
13876         * test/Makefile.am:
13877         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13878         (message_handler), (new_connection_callback), (loop_quit),
13879         (loop_run), (main):
13880         Add bus test.
13881
13882 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13883
13884         * bus/driver.c: (bus_driver_handle_service_exists):
13885         Simplify the code a bit.
13886
13887         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13888         Fix a silly.
13889
13890 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13891
13892         * bus/Makefile.am:
13893         Add libdbus-daemon.la and link to it.
13894
13895 2003-02-01  James Willcox  <jwillcox@gnome.org>
13896
13897         * bus/driver.c: (bus_driver_handle_own_service):
13898         Actually include the service reply code in the message.
13899
13900 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13901
13902         * bus/driver.c: (bus_driver_handle_service_exists):
13903         Don't unref the incoming message.
13904
13905 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13906
13907         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13908
13909 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13910
13911         * dbus/dbus-server.c: (dbus_server_listen):
13912         * dbus/dbus-transport.c: (_dbus_transport_open):
13913         ifdef out the calls to the debug transport and server.
13914
13915 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13916
13917         * dbus/dbus-watch.c (dbus_watch_get_flags):
13918         Add note in the docs that ERROR or HANGUP won't be returned
13919         and are assumed always on.
13920
13921         * glib/dbus-gmain.c (add_watch):
13922         Always add IO_ERR | IO_HUP
13923
13924         * dbus/dbus-message.h:
13925         Add semicolon after dbus_message_iter_get_string_array().
13926         Makes qt code build again
13927
13928 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13929
13930         * bus/driver.c: (create_unique_client_name),
13931         (bus_driver_handle_hello):
13932         Don't take a name, just use a numeric id to identify
13933         each client.
13934
13935         * dbus/Makefile.am:
13936         * dbus/dbus-bus.c: (dbus_bus_register_client),
13937         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13938         * dbus/dbus-bus.h:
13939         Add new convenience functions for communicating with the bus.
13940
13941         * dbus/dbus-message.h:
13942
13943         * dbus/dbus-protocol.h:
13944         Fix a typo.
13945
13946 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13947
13948         * dbus/dbus-message.c (dbus_message_append_fields):
13949         Add some more doc comments.
13950
13951 2003-02-01  Havoc Pennington  <hp@pobox.com>
13952
13953         * dbus/dbus-break-loader.c (randomly_modify_length): change
13954         a 4-byte value in the message as if it were a length
13955
13956         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13957         execute bit on saved files
13958
13959 2003-02-01  Havoc Pennington  <hp@pobox.com>
13960
13961         * dbus/dbus-break-loader.c (main): new program to find messages
13962         that break the loader.
13963
13964         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13965         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13966
13967         * dbus/dbus-string.c (_dbus_string_set_byte): new
13968
13969 2003-01-31  Havoc Pennington  <hp@pobox.com>
13970
13971         * dbus/dbus-message.c: refactor the test code to be more general,
13972         in preparation for writing a "randomly permute test cases to
13973         try to break the loader" program.
13974
13975 2003-01-31  Havoc Pennington  <hp@pobox.com>
13976
13977         * doc/dbus-specification.sgml: work on the specification
13978
13979         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13980         the protocol version of the message.
13981
13982         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13983         no longer specifies that.
13984         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13985         1/2/3/4)
13986
13987         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13988         "break" for DBUS_TYPE_NIL, remove @todo
13989
13990 2003-01-31  Havoc Pennington  <hp@pobox.com>
13991
13992         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13993         just set_is_error/get_is_error as this is a commonly-used
13994         function, and write docs.
13995
13996 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13997
13998         * dbus/dbus-address.c: (dbus_address_entry_free):
13999         Free key and value lists.
14000
14001         * dbus/dbus-internals.c: (_dbus_type_to_string):
14002         Add the types we didn't have.
14003
14004         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14005         (_dbus_marshal_validate_arg):
14006         Add NIL types.
14007
14008         * dbus/dbus-message.c: (dbus_message_set_sender):
14009         Remove todo about being able to set sender to NULL.
14010
14011         (dbus_message_set_is_error_reply),
14012         (dbus_message_get_is_error_reply):
14013         * dbus/dbus-message.h:
14014         New functions.
14015
14016         * dbus/dbus-protocol.h:
14017         Add error reply flag.
14018
14019         * test/data/valid-messages/opposite-endian.message:
14020         Add NIL type to test.
14021
14022 2003-01-31  Havoc Pennington  <hp@pobox.com>
14023
14024         * doc/dbus-specification.sgml: fully specify the header.  Add
14025         flags and major protocol version, and change header/body len to
14026         unsigned.
14027
14028         * dbus/dbus-message-builder.c (append_saved_length): append length
14029         as uint32
14030
14031         * dbus/dbus-message.c (dbus_message_create_header): change header
14032         length and body length to unsigned. Add the new fields from the
14033         spec
14034         (_dbus_message_loader_return_buffer): unsigned header/body len
14035
14036 2003-01-30  Havoc Pennington  <hp@pobox.com>
14037
14038         * dbus/dbus-auth.c: rework to use only REJECTED, no
14039         MECHANISMS
14040
14041         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14042         use REJECTED, suggested by Mark McLoughlin
14043
14044 2003-01-30  Havoc Pennington  <hp@pobox.com>
14045
14046         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14047         a better way to report errors here. e.g.  "unix address lacks
14048         path" or something. also "no such file" when the path doesn't
14049         exist, etc.
14050
14051         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14052         leaking list nodes
14053         (dbus_parse_address): add @todo about documenting address format,
14054         and allowing , and ; to be escaped
14055
14056 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14057
14058         * dbus/Makefile.am:
14059         Add dbus-address.[ch]
14060
14061         * dbus/dbus-address.c: (dbus_address_entry_free),
14062         (dbus_address_entries_free), (create_entry),
14063         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14064         (dbus_parse_address), (_dbus_address_test):
14065         * dbus/dbus-address.h:
14066         New files for dealing with address parsing.
14067
14068         * dbus/dbus-connection.c:
14069         Document timeout functions.
14070
14071         * dbus/dbus-message.c:
14072         Document dbus_message_new_from_message.
14073
14074         * dbus/dbus-server-debug.c:
14075         Document.
14076
14077         * dbus/dbus-server.c: (dbus_server_listen):
14078         Parse address and use correct server implementation.
14079
14080         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14081         * dbus/dbus-string.h:
14082         New function with test.
14083
14084         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14085         * dbus/dbus-test.h:
14086         Add address tests.
14087
14088         * dbus/dbus-transport-debug.c:
14089         Document.
14090
14091         * dbus/dbus-transport.c: (_dbus_transport_open):
14092         Parse address and use correct transport implementation.
14093
14094 2003-01-30  Havoc Pennington  <hp@pobox.com>
14095
14096         * dbus/dbus-message.c: use message->byte_order instead of
14097         DBUS_COMPILER_BYTE_ORDER throughout.
14098         (dbus_message_create_header): pad header to align the
14099         start of the body of the message to 8-byte boundary
14100
14101         * dbus/dbus-marshal.h: make all the demarshalers take const
14102         DBusString arguments.
14103
14104         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14105         validate message args here, so we don't have to do slow validation
14106         later, and so we catch bad messages as they are incoming. Also add
14107         better checks on header_len and body_len. Also fill in
14108         message->byte_order
14109
14110         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14111         implemented properly)
14112         (_dbus_string_validate_nul): new function to check all-nul
14113
14114         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14115         get_arg_end_pos and remove all validation
14116         (_dbus_marshal_validate_arg): actually do validation here.
14117
14118 2003-01-29  Havoc Pennington  <hp@pobox.com>
14119
14120         * dbus/dbus-message.c (check_message_handling): fix assertion
14121         failure on set_client_serial
14122
14123 2003-01-28  Havoc Pennington  <hp@pobox.com>
14124
14125         * dbus/dbus-server-debug.c: Add doc section comments
14126
14127         * dbus/dbus-transport-debug.c: add doc section comments
14128
14129 2003-01-28  Havoc Pennington  <hp@redhat.com>
14130
14131         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14132         the reverse order from how I had it
14133         (_dbus_string_base64_encode): reverse encoding order. I was
14134         basically byteswapping everything during encoding.
14135
14136 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14137
14138         * dbus/dbus-connection-internal.h:
14139         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14140         (_dbus_connection_remove_timeout):
14141         Add functions for adding and removing timeouts.
14142
14143         * dbus/dbus-message.c: (dbus_message_new_from_message):
14144         Add new function that takes a message and creates an exact
14145         copy of it, but with the refcount set to 1.
14146         (check_message_handling):
14147         Fix build error.
14148
14149         * dbus/dbus-server-protected.h:
14150         * dbus/dbus-server.c: (_dbus_server_init_base),
14151         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14152         (dbus_server_set_timeout_functions):
14153         (_dbus_server_remove_timeout):
14154         New functions so that a server can add and remove timeouts.
14155
14156         (dbus_server_listen):
14157         Add commented out call to dbus_server_debug_new.
14158
14159         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14160         Actually set the handler, doh.
14161
14162         * dbus/dbus-transport.c: (_dbus_transport_open):
14163         Add commented out call to dbus_transport_debug_client_new.
14164
14165         * dbus/Makefile.am:
14166         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14167
14168 2003-01-28  Havoc Pennington  <hp@pobox.com>
14169
14170         * dbus/dbus-message.c (check_message_handling): function to check
14171         on the loaded message, iterates over it etc.
14172
14173 2003-01-28  Havoc Pennington  <hp@pobox.com>
14174
14175         * test/Makefile.am (dist-hook): fix make distdir
14176
14177         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14178
14179 2003-01-27  Havoc Pennington  <hp@pobox.com>
14180
14181         * dbus/dbus-mempool.c (time_for_size): replace printf with
14182         _dbus_verbose
14183
14184         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14185         empty lines; fix the SAVE_LENGTH stuff to be
14186         START_LENGTH/END_LENGTH so it actually works; couple other
14187         bugfixes
14188
14189         * test/Makefile.am (dist-hook): add dist-hook for .message files
14190
14191         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14192         can be constant or locked.
14193         (_dbus_string_free): allow freeing a const string as
14194         documented/intended
14195
14196         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14197
14198         * dbus/dbus-test-main.c (main): take an argument which is the
14199         directory containing test data
14200
14201         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14202         argument to this and load all the messages in test/data/
14203         checking that they can be loaded or not loaded as appropriate.
14204
14205 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14206
14207         * bus/dispatch.c: (bus_dispatch_message_handler):
14208         Dispatch messages sent to services.
14209
14210         * bus/driver.c: (bus_driver_send_service_deleted),
14211         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14212         (bus_driver_send_service_acquired):
14213         Add helper functions for sending service related messages.
14214
14215         (bus_driver_send_welcome_message):
14216         Send HELLO_REPLY instead of WELCOME.
14217
14218         (bus_driver_handle_list_services):
14219         Send LIST_SERVICES_REPLY instead of SERVICES.
14220
14221         (bus_driver_handle_own_service),
14222         (bus_driver_handle_service_exists):
14223         New message handlers.
14224
14225         (bus_driver_handle_message):
14226         Invoke new message handlers.
14227
14228         (bus_driver_remove_connection):
14229         Don't remove any services here since that's done automatically
14230         by bus_service_remove_owner now.
14231
14232         * bus/driver.h:
14233         New function signatures.
14234
14235         * bus/services.c: (bus_service_add_owner):
14236         Send ServiceAcquired message if we're the only primary owner.
14237
14238         (bus_service_remove_owner):
14239         Send ServiceAcquired/ServiceLost messages.
14240
14241         (bus_service_set_prohibit_replacement),
14242         (bus_service_get_prohibit_replacement):
14243         Functions for setting prohibit replacement.
14244
14245         (bus_service_has_owner):
14246         New function that checks if a connection is in the owner queue of
14247         a certain service.
14248
14249         * bus/services.h:
14250         Add new function signatures.
14251
14252         * dbus/dbus-list.c: (_dbus_list_test):
14253         Add tests for _dbus_list_remove_last and traversing the list backwards.
14254
14255         * dbus/dbus-list.h:
14256         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14257         go any further, so return NULL then.
14258
14259         * dbus/dbus-protocol.h:
14260         Add new messages, service flags and service replies.
14261
14262 2003-01-26  Havoc Pennington  <hp@pobox.com>
14263
14264         * dbus/dbus-message-builder.c: implement, completely untested.
14265
14266         * test/data/*: add data to be used in testing.
14267         ".message" files are our simple loadable text format.
14268         ".message-raw" will be binary dumps of messages.
14269
14270         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14271
14272 2003-01-26  Havoc Pennington  <hp@pobox.com>
14273
14274         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14275
14276         * dbus/dbus-errors.c (dbus_result_to_string): add
14277         file errors
14278
14279         * dbus/dbus-message-builder.c: new file, will contain code to load
14280         up messages from files. Not implemented yet.
14281
14282 2003-01-26  Havoc Pennington  <hp@pobox.com>
14283
14284         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14285         the sender by setting to NULL
14286
14287 2003-01-26  Havoc Pennington  <hp@pobox.com>
14288
14289         The unit tests pass, but otherwise untested.  If it breaks, the
14290         tests should have been better. ;-)
14291
14292         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14293         the connection.
14294
14295         * dbus/dbus-message.c: redo everything so we maintain
14296         message->header as the only copy of the various fields.
14297         This avoids the possibility of out-of-memory in some cases,
14298         for example dbus_message_lock() can't run out of memory anymore,
14299         and avoids extra copying. Figured I may as well go ahead and do
14300         this since it was busted for dbus_message_lock to not return
14301         failure on OOM, and dbus_message_write_header was totally
14302         unchecked for OOM. Also fixed some random other bugs.
14303
14304         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14305         that strings are nul-terminated. Also, end_pos can be equal
14306         to string length just not greater than, I think.
14307         (_dbus_marshal_set_int32): new function
14308         (_dbus_marshal_set_uint32): new function
14309         (_dbus_marshal_set_string): new function
14310
14311         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14312         a warning, init timeout_list to NULL
14313         (dbus_connection_send_message): don't use uninitialized variable
14314         "serial"
14315
14316         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14317
14318 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14319
14320         * bus/driver.c: (bus_driver_handle_hello),
14321         (bus_driver_send_welcome_message):
14322         Plug leaks
14323
14324 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14325
14326         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14327         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14328         (dbus_connection_unref):
14329         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14330         * dbus/dbus-message.c: (dbus_message_unref),
14331         Plug memory leaks.
14332
14333         (dbus_message_get_fields):
14334         Remove debugging printout.
14335
14336         (_dbus_message_loader_return_buffer):
14337         Don't store the header string.
14338
14339         (_dbus_message_test):
14340         Plug leaks.
14341
14342 2003-01-26  Richard Hult  <rhult@codefactory.se>
14343
14344         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14345         the file descriptor list, since it can change under us.
14346
14347 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14348
14349         * glib/dbus-gmain.c: (dbus_connection_prepare),
14350         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14351         (remove_watch), (dbus_connection_hookup_with_g_main):
14352         Rewrite the glib handling to use its own GSource instead of a
14353         GIOChannel so we can catch messages put in the queue while waiting
14354         for a reply.
14355
14356 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14357
14358         * bus/Makefile.am:
14359         * bus/connection.c: (connection_disconnect_handler),
14360         (connection_watch_callback), (bus_connection_setup):
14361         * bus/dispatch.c: (send_one_message),
14362         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14363         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14364         * bus/dispatch.h:
14365         * bus/driver.c: (bus_driver_send_service_deleted),
14366         (bus_driver_send_service_created), (bus_driver_handle_hello),
14367         (bus_driver_send_welcome_message),
14368         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14369         (bus_driver_handle_message):
14370         * bus/driver.h:
14371         Refactor code, put the message dispatching in its own file. Use
14372         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14373         is disconnected.
14374
14375 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14376
14377         * dbus/dbus-internals.h:
14378         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14379
14380         * dbus/dbus-message.c: (dbus_message_get_sender):
14381         * dbus/dbus-message.h:
14382         Implement dbus_message_get_sender.
14383
14384         * dbus/dbus-protocol.h:
14385         Add message and service defines.
14386
14387 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14388
14389         * dbus/dbus-connection.c: (dbus_connection_send_message):
14390         * dbus/dbus-message-internal.h:
14391         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14392         (dbus_message_write_header):
14393         Remove _dbus_messag_unlock and don't set the client serial on a
14394         message if one already exists.
14395
14396 2003-01-24  Havoc Pennington  <hp@pobox.com>
14397
14398         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14399         list_pool
14400
14401         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14402         on OOM
14403
14404 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14405
14406         * dbus/dbus-list.c: (alloc_link), (free_link):
14407         Use a memory pool for the links.
14408
14409 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14410
14411         * bus/connection.c: (bus_connection_foreach):
14412         * bus/connection.h:
14413         Add new bus_connection_foreach function.
14414
14415         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14416         Add function that broadcasts a message to all clients.
14417
14418         (bus_driver_send_service_created), (bus_driver_handle_hello),
14419         (bus_driver_send_welcome_message),
14420         (bus_driver_handle_list_services), (bus_driver_message_handler):
14421         Implement functions that take care of listing services, and notifying
14422         clients when new services are created.
14423
14424         * bus/services.c: (bus_services_list):
14425         * bus/services.h:
14426         Add new function that returns an array of strings with the currently
14427         registered services.
14428
14429         * glib/dbus-glib.h:
14430         * glib/dbus-gmain.c:
14431         Update copyright year.
14432
14433 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14434
14435         * dbus/dbus-connection.c: (dbus_connection_send_message):
14436         Unlock the message in case it was sent earlier.
14437
14438         (dbus_connection_send_message_with_reply_and_block):
14439         Remove the reply message from the list.
14440
14441         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14442         Set array_len and new_pos correctly.
14443
14444         (_dbus_marshal_test):
14445         Remove debug output.
14446
14447         * dbus/dbus-message-internal.h:
14448         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14449         New function that returns the reply serial.
14450
14451         (_dbus_message_unlock):
14452         New function that unlocks a message and resets its header.
14453
14454         (dbus_message_append_string_array),
14455         (dbus_message_get_fields_valist),
14456         (dbus_message_iter_get_field_type),
14457         (dbus_message_iter_get_string_array),
14458         (dbus_message_get_fields),
14459         (dbus_message_append_fields_valist):
14460         Handle string arrays.
14461
14462         (dbus_message_set_sender):
14463         Make this function public since the bus daemon needs it.
14464
14465         (decode_header_data):
14466         Set the reply serial to -1 initially.
14467
14468         * dbus/dbus-message.h:
14469         Add dbus_message_set_sender.
14470
14471 2003-01-24  Havoc Pennington  <hp@pobox.com>
14472
14473         * doc/dbus-specification.sgml: add some stuff
14474
14475 2003-01-22  Havoc Pennington  <hp@pobox.com>
14476
14477         * doc/dbus-specification.sgml: Start to document the protocol.
14478
14479 2003-01-22  Havoc Pennington  <hp@pobox.com>
14480
14481         * dbus/dbus-connection.c
14482         (dbus_connection_send_message_with_reply_and_block): add some @todo
14483
14484         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14485
14486 2003-01-21  Havoc Pennington  <hp@pobox.com>
14487
14488         (patch untested because can't compile)
14489
14490         * bus/driver.c (create_unique_client_name): make this function
14491         never recycle client names. Also, caller should initialize
14492         the DBusString.
14493
14494         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14495
14496 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14497
14498         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14499         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14500         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14501         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14502         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14503         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14504         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14505         * dbus/dbus-marshal.h:
14506         * dbus/dbus-protocol.h:
14507         Add support for marshalling and demarshalling integer, double
14508         and string arrays.
14509
14510 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14511
14512         * bus/Makefile.am:
14513         Add driver.[ch]
14514
14515         * bus/connection.c: (connection_disconnect_handler):
14516         Remove the connection from the bus driver's list.
14517
14518         (connection_watch_callback): Dispatch messages.
14519
14520         (free_connection_data): Free connection name.
14521
14522         (bus_connection_setup): Add connection to the bus driver's list.
14523         (bus_connection_remove_owned_service):
14524         (bus_connection_set_name), (bus_connection_get_name):
14525         Add functions for setting and getting the connection's name.
14526
14527         * bus/connection.h:
14528         Add function headers.
14529
14530         * bus/driver.c: (create_unique_client_name),
14531         (bus_driver_handle_hello_message),
14532         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14533         (bus_driver_add_connection), (bus_driver_remove_connection):
14534         * bus/driver.h:
14535         * bus/main.c:
14536         * bus/services.c: (bus_service_free):
14537         * bus/services.h:
14538         New file that handles communication and registreation with the bus
14539         itself.
14540
14541 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14542
14543         * dbus/dbus-connection.c: (dbus_connection_send_message):
14544         Add a new client_serial parameter.
14545
14546         (dbus_connection_send_message_with_reply):
14547         Remove a @todo since we've implemented the blocking function.
14548
14549         (dbus_connection_send_message_with_reply_and_block):
14550         New function that sends a message and waits for a reply and
14551         then returns the reply.
14552
14553         * dbus/dbus-connection.h:
14554         Add new functions.
14555
14556         * dbus/dbus-errors.c: (dbus_result_to_string):
14557         * dbus/dbus-errors.h:
14558         Add new DBUS_RESULT.
14559
14560         * dbus/dbus-message-internal.h:
14561         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14562         (_dbus_message_set_sender), (dbus_message_write_header),
14563         (dbus_message_new_reply), (decode_header_data),
14564         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14565         * dbus/dbus-message.h:
14566         Add new functions that set the reply serial and sender.
14567         Also marshal and demarshal them correctly and add test.
14568
14569         * dbus/dbus-protocol.h:
14570         Add new DBUS_MESSAGE_TYPE_SENDER.
14571
14572         * glib/dbus-glib.h:
14573         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14574         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14575         (dbus_connection_hookup_with_g_main):
14576         * glib/test-dbus-glib.c: (main):
14577         Rewrite to use GIOChannel and remove the GSource crack.
14578
14579         * test/echo-client.c: (main):
14580         * test/watch.c: (check_messages):
14581         Update for changed APIs
14582
14583 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14584
14585         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14586
14587         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14588         Create a DBusTimeoutList.
14589         (dbus_connection_set_timeout_functions): Add new function to
14590         set timeout callbacks
14591
14592         * dbus/dbus-connection.h: Add public DBusTimeout API.
14593
14594         * dbus/dbus-message.c: (dbus_message_get_service):
14595         * dbus/dbus-message.h:  New function.
14596
14597         * dbus/dbus-server.c: Fix small doc typo.
14598
14599         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14600
14601 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14602
14603         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14604         of the string, just as long as specified.
14605
14606 2003-01-19  Havoc Pennington  <hp@pobox.com>
14607
14608         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14609         new function
14610
14611         * dbus/dbus-server.c (dbus_server_set_max_connections)
14612         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14613         keep track of current number of connections, and add API for
14614         setting a max (but haven't implemented enforcing the max yet)
14615
14616 2003-01-18  Havoc Pennington  <hp@pobox.com>
14617
14618         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14619         reading/writing if read_watch != NULL or write_watch != NULL.
14620
14621         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14622         the message loader code to actually load message->header and
14623         message->body into the newly-created message.
14624
14625         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14626         in OOM case
14627
14628         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14629         (dbus_connection_get_max_message_size)
14630         (dbus_connection_set_max_live_messages_size)
14631         (dbus_connection_get_max_live_messages_size): implement some
14632         resource limitation functions
14633
14634         * dbus/dbus-resources.c: new file implementing some of the
14635         resource limits stuff
14636
14637         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14638         missing docs, add @todo to handle OOM etc.
14639
14640         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14641         docs
14642
14643 2003-01-18  Havoc Pennington  <hp@pobox.com>
14644
14645         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14646         connection if it hasn't been already.
14647
14648         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14649         replace with DisconnectFunction.
14650
14651 2003-01-18  Havoc Pennington  <hp@pobox.com>
14652
14653         Building --disable-verbose-mode --disable-asserts --disable-tests
14654         cuts the library from 112K to 45K or so
14655
14656         * configure.in: check for varargs macro support,
14657         add --enable-verbose-mode, --enable-asserts.
14658
14659         * dbus/dbus-internals.h (_dbus_assert): support
14660         DBUS_DISABLE_ASSERT
14661         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14662
14663 2003-01-18  Havoc Pennington  <hp@pobox.com>
14664
14665         * dbus/dbus-test.c: include config.h so that tests actually run
14666
14667         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14668         so the failure mode when that assumption fails will be plenty
14669         obvious.
14670
14671 2003-01-18  Havoc Pennington  <hp@pobox.com>
14672
14673         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14674
14675         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14676         the distribution
14677
14678         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14679         since we don't want to use those in make check
14680
14681 2003-01-15  Havoc Pennington  <hp@redhat.com>
14682
14683         Release 0.2
14684
14685         * NEWS: update
14686
14687 2003-01-15  Havoc Pennington  <hp@redhat.com>
14688
14689         * test/Makefile.am: fix so that test source code ends up in the
14690         distribution on make distcheck
14691
14692 2003-01-15  Havoc Pennington  <hp@redhat.com>
14693
14694         Release 0.1.
14695
14696         * NEWS: update
14697
14698 2003-01-15  Havoc Pennington  <hp@redhat.com>
14699
14700         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14701         fix build when --disable-tests
14702
14703         * Makefile.am (EXTRA_DIST): put HACKING in here
14704
14705         * HACKING: document procedure for making a tarball release.
14706
14707 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14708
14709         * bus/connection.c: (connection_error_handler),
14710         (bus_connection_setup):
14711         * bus/main.c: (main):
14712         Make sure that the DBusConnectionData struct is NULLed
14713         out to prevent a segfault.
14714
14715         * dbus/dbus-errors.c: (dbus_result_to_string):
14716         * dbus/dbus-errors.h:
14717         * dbus/dbus-message.c: (dbus_message_get_fields),
14718         (dbus_message_get_fields_valist), (_dbus_message_test):
14719         * dbus/dbus-message.h:
14720         Make dbus_message_get_fields return a result code so we can
14721         track invalid fields as well as oom.
14722
14723 2003-01-11  Havoc Pennington  <hp@pobox.com>
14724
14725         * configure.in: change --enable-test/--enable-ansi action-if-given
14726         to enable_foo=$enableval instead of enable_foo=yes
14727
14728 2003-01-08  Havoc Pennington  <hp@pobox.com>
14729
14730         * dbus/dbus-string.c (_dbus_string_align_length): new function
14731
14732         * dbus/dbus-test-main.c: move main() for test app here
14733         * dbus/dbus-test.c
14734         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14735         symbol to run tests, because dbus-test isn't in the main
14736         library
14737
14738         Code review nitpicks.
14739
14740         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14741         for people with narrow emacs ;-). Assert client_serial was filled
14742         in. Assert message->name != NULL.
14743         (dbus_message_append_fields): have "first_field_type" arg separate
14744         from va list, needed for C++ binding that also uses varargs IIRC
14745         and helps with type safety
14746         (dbus_message_new): add @todo about using DBusString to store
14747         service/name internally
14748         (dbus_message_new): don't leak ->service and ->name on OOM later
14749         in the function
14750         (dbus_message_unref): free the service name
14751         (dbus_message_get_fields): same change to varargs
14752         i.e. first_field_type
14753         (_dbus_message_loader_return_buffer): assert that the message data
14754         is aligned (if not it's a bug in our code). Put in verbose griping
14755         about why we set corrupted = TRUE.
14756         (decode_header_data): add FIXME that char* is evil.  Was going to
14757         add FIXME about evil locale-specific string.h strncmp, but just
14758         switched to wacky string-as-uint32 optimization. Move check for
14759         "no room for field name" above get_const_data_len() to avoid
14760         assertion failure in get_const_data_len if we have trailing 2
14761         bytes or the like. Check for service and name fields being
14762         provided twice. Don't leak service/name on error. Require field
14763         names to be aligned to 4 bytes.
14764
14765         * dbus/dbus-marshal.c: move byte swap stuff to header
14766         (_dbus_pack_int32): uscore-prefix
14767         (_dbus_unpack_int32): uscore-prefix
14768         (_dbus_unpack_uint32): export
14769         (_dbus_demarshal_string): add @todo complaining about use of
14770         memcpy()
14771         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14772         handling allowing corrupt data to go unchecked
14773
14774 2003-01-08  Havoc Pennington  <hp@redhat.com>
14775
14776         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14777         to the select() as needed for authentication. (should be using
14778         _dbus_poll() not select, but for another day)
14779
14780         * dbus/dbus.h: include dbus/dbus-protocol.h
14781
14782 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14783
14784         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14785         dbus-connection.h
14786
14787 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14788
14789         * dbus/dbus-internals.c: (_dbus_type_to_string):
14790         New function that returns a string describing a type.
14791
14792         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14793         * dbus/dbus-marshal.h:
14794         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14795         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14796         (dbus_message_iter_get_byte_array):
14797         * dbus/dbus-message.h:
14798         Add new convenience functions for appending and getting message fields.
14799         Also add demarshalling routines for byte arrays.
14800
14801 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14802
14803         * dbus/dbus-connection-internal.h:
14804         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14805         (_dbus_connection_get_next_client_serial),
14806         (dbus_connection_send_message):
14807         * dbus/dbus-internals.h:
14808         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14809         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14810         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14811         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14812         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14813         (_dbus_verbose_bytes), (_dbus_marshal_test):
14814         * dbus/dbus-marshal.h:
14815         * dbus/dbus-message-internal.h:
14816         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14817         (dbus_message_write_header), (_dbus_message_lock),
14818         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14819         (dbus_message_get_name), (dbus_message_append_int32),
14820         (dbus_message_append_uint32), (dbus_message_append_double),
14821         (dbus_message_append_string), (dbus_message_append_byte_array),
14822         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14823         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14824         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14825         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14826         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14827         (decode_header_data), (_dbus_message_loader_return_buffer),
14828         (message_iter_test), (_dbus_message_test):
14829         * dbus/dbus-message.h:
14830         * dbus/dbus-protocol.h:
14831         * dbus/dbus-test.c: (main):
14832         * dbus/dbus-test.h:
14833         * glib/test-dbus-glib.c: (message_handler), (main):
14834         * test/echo-client.c: (main):
14835         * test/watch.c: (check_messages):
14836         Make messages sendable and receivable for real.
14837
14838 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14839
14840         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14841         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14842         * dbus/dbus-message.c: (dbus_message_append_int32),
14843         (dbus_message_append_uint32), (dbus_message_append_double),
14844         (dbus_message_append_string), (dbus_message_append_byte_array):
14845         Handle OOM restoration.
14846
14847 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14848
14849         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14850         (_dbus_demarshal_string), (_dbus_marshal_test):
14851         * dbus/dbus-marshal.h:
14852         * dbus/dbus-message.c: (dbus_message_get_name),
14853         Document these functions.
14854
14855         (dbus_message_append_int32), (dbus_message_append_uint32),
14856         (dbus_message_append_double), (dbus_message_append_string),
14857         (dbus_message_append_byte_array):
14858         * dbus/dbus-message.h:
14859         Add functions for adding message fields of different types.
14860
14861         * dbus/dbus-protocol.h:
14862         Add the different types.
14863
14864 2003-01-05  Havoc Pennington  <hp@pobox.com>
14865
14866         * bus/connection.c: implement routines for handling connections,
14867         first thing is keeping a list of owned services on each connection
14868         and setting up watches etc.
14869
14870         * bus/services.c: implement a mapping from service names to lists
14871         of connections
14872
14873         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14874
14875         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14876         to use static mutexes for global data
14877
14878         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14879         collection of functions to set/get application-specific data
14880         on the DBusConnection.
14881
14882 2003-01-04  Havoc Pennington  <hp@pobox.com>
14883
14884         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14885         (_dbus_poll): new function
14886
14887         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14888         copied from GLib
14889
14890         * bus/loop.c: initial code for the daemon main loop
14891
14892 2003-01-04  Havoc Pennington  <hp@pobox.com>
14893
14894         * test/watch.c (error_handler): make it safe if the error handler
14895         is called multiple times (if we s/error handler/disconnect
14896         handler/ we should just guarantee it's called only once)
14897
14898         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14899         error handler on disconnect (it's quite possible we should
14900         just change the error handler to a "disconnect handler," I'm
14901         not sure we have any other meaningful errors)
14902
14903         * configure.in: check for getpwnam_r
14904
14905         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14906         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14907         mechanism as in SASL spec, using socket credentials
14908
14909         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14910         (_dbus_send_credentials_unix_socket): new function
14911
14912         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14913         dbus_accept()
14914         (_dbus_write): only check errno if <0 returned
14915         (_dbus_write_two): ditto
14916
14917 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14918
14919         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14920         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14921         (_dbus_marshal_test):
14922         * dbus/dbus-marshal.h:
14923         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14924         to _dbus_marshal_utf8_string. Also fix some tests.
14925
14926 2002-12-28  Harri Porten  <porten@kde.org>
14927
14928         * configure.in: added check for C++ compiler and a very cheesy
14929         check for the Qt integration
14930
14931         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14932
14933         * qt/Makefile.am: added
14934
14935         * qt/.cvsignore: added
14936
14937         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14938         latter, added #ifdef QT_THREAD_SUPPORT guard.
14939
14940         * dbus/Makefile.am: added missing headers for make dist
14941
14942 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14943
14944         * dbus/Makefile.am: fixup export-symbols-regex.
14945
14946 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14947
14948         * acinclude.m4: Add this file and put the
14949         PKG_CHECK_MODULE macro in it.
14950
14951 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14952
14953         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14954         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14955         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14956         (_dbus_marshal_test):
14957         Make the demarshalling routines align the pos argument.
14958         Add string marshalling tests and fix the obvious bugs
14959         discovered.
14960
14961 2002-12-26  Havoc Pennington  <hp@pobox.com>
14962
14963         * dbus/dbus-auth.c: fixes fixes fixes
14964
14965         * dbus/dbus-transport-unix.c: wire up support for
14966         encoding/decoding data on the wire
14967
14968         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14969         (_dbus_auth_decode_data): append to target string
14970         instead of nuking it.
14971
14972 2002-12-26  Havoc Pennington  <hp@pobox.com>
14973
14974         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14975         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14976         doh
14977
14978         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14979         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14980         now). Main point is because I wanted unpack_uint32 to implement
14981         _dbus_verbose_bytes
14982         (_dbus_verbose_bytes): new function
14983
14984         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14985
14986         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14987         mechanism to handle a corrupt message stream
14988         (_dbus_message_loader_new): fix preallocation to only prealloc,
14989         not prelengthen
14990
14991         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14992         (_dbus_string_test): enhance tests for copy/move and fix the
14993         functions
14994
14995         * dbus/dbus-transport-unix.c: Hold references in more places to
14996         avoid reentrancy problems
14997
14998         * dbus/dbus-transport.c: ditto
14999
15000         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15001         leak reference count in no-message case
15002
15003         * test/watch.c (do_mainloop): handle adding/removing watches
15004         during iteration over the watches. Also, ref the connection/server
15005         stored on a watch, so we don't try to mangle a destroyed one.
15006
15007         * dbus/dbus-transport-unix.c (do_authentication): perform
15008         authentication
15009
15010         * dbus/dbus-auth.c (get_state): add a state
15011         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15012         (_dbus_auth_get_unused_bytes): append the unused bytes
15013         to the passed in string, rather than prepend
15014
15015         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15016         the auth conversation DBusAuth
15017
15018         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15019         (_dbus_transport_new_for_domain_socket): when creating a
15020         transport, pass in whether it's a client-side or server-side
15021         transport so we know which DBusAuth to create
15022
15023 2002-12-03  Havoc Pennington  <hp@pobox.com>
15024
15025         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15026         _after_ finalizing the derived members
15027         (unix_connection_set): unref watch if we fail to add it
15028
15029         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15030         transport first, so that the connection owned by the
15031         transport will be valid as the transport finalizes.
15032
15033         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15034         if necessary, and remove watches from the connection.
15035
15036         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15037
15038 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15039
15040         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15041         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15042         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15043         (_dbus_marshal_test):
15044         * dbus/dbus-marshal.h:
15045         Add string marshal functions and have the demarshal functions
15046         return the new position.
15047
15048 2002-12-25  Havoc Pennington  <hp@pobox.com>
15049
15050         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15051         it is a simple protocol that just maps directly to SASL.
15052
15053         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15054         initial implementation, not actually used yet.
15055
15056         * dbus/dbus-string.c (_dbus_string_find): new function
15057         (_dbus_string_equal): new function
15058         (_dbus_string_base64_encode): new function
15059         (_dbus_string_base64_decode): new function
15060
15061 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15062
15063         * dbus/Makefile.am:
15064         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15065         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15066         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15067         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15068         * dbus/dbus-marshal.h:
15069         * dbus/dbus-protocol.h:
15070         * dbus/dbus-test.c: (main):
15071         * dbus/dbus-test.h:
15072         Add un-optimized marshalling/demarshalling routines.
15073
15074 2002-12-25  Harri Porten  <porten@kde.org>
15075
15076         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15077
15078 2002-12-24  Zack Rusin  <zack@kde.org>
15079
15080         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15081         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15082         main loop stuff
15083
15084 2002-12-24  Havoc Pennington  <hp@pobox.com>
15085
15086         * glib/dbus-gthread.c: fix include
15087
15088         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15089         I think glib API needs to change, though, as you don't
15090         want to use DBusMessageFunction, you want to use the
15091         DBusMessageHandler object. Probably
15092         dbus_connection_open_with_g_main_loop()
15093         and dbus_connection_setup_g_main_loop() or something like that
15094         (but think of better names...) that just create a connection
15095         that has watch/timeout functions etc. already set up.
15096
15097         * dbus/dbus-connection.c
15098         (dbus_connection_send_message_with_reply): new function just to
15099         show how the message handler helps us deal with replies.
15100
15101         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15102
15103         * dbus/dbus-string.c (_dbus_string_test): free a string that
15104         wasn't
15105
15106         * dbus/dbus-hash.c: use memory pools for the hash entries
15107         (rebuild_table): be more paranoid about overflow, and
15108         shrink table when we can
15109         (_dbus_hash_test): reduce number of sprintfs and write
15110         valid C89. Add tests for case where we grow and then
15111         shrink the hash table.
15112
15113         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15114
15115         * dbus/dbus-connection.c (dbus_connection_register_handler)
15116         (dbus_connection_unregister_handler): new functions
15117
15118         * dbus/dbus-message.c (dbus_message_get_name): new
15119
15120         * dbus/dbus-list.c: fix docs typo
15121
15122         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15123         an object representing a handler for messages.
15124
15125 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15126
15127         * glib/dbus-glib.h:
15128         * glib/dbus-gthread.c: (dbus_gthread_init):
15129         Don't use the gdbus prefix for public functions.
15130
15131 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15132
15133         * Makefile.am:
15134         * configure.in:
15135         Add GLib checks and fixup .pc files
15136
15137         * glib/Makefile.am:
15138         * glib/dbus-glib.h:
15139         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15140         (gdbus_connection_check), (gdbus_connection_dispatch),
15141         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15142         (dbus_connection_gsource_new):
15143         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15144         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15145         * glib/test-dbus-glib.c: (message_handler), (main):
15146         Add GLib support.
15147
15148 2002-12-15  Harri Porten  <porten@kde.org>
15149
15150         * autogen.sh: check for libtoolize before attempting to use it
15151
15152         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15153         struct.
15154
15155         * .cvsignore: ignore more stamp files
15156
15157         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15158
15159         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15160         without make install.
15161
15162 2002-12-15  Havoc Pennington  <hp@pobox.com>
15163
15164         * dbus/dbus-threads.c: add thread stubs that a higher library
15165         layer can fill in. e.g. the GLib wrapper might fill them in with
15166         GThread stuff. We still need to use this thread API to
15167         thread-safe-ize the library.
15168
15169 2002-12-12  Havoc Pennington  <hp@pobox.com>
15170
15171         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15172         below new interfaces and include fewer system headers.
15173
15174         * dbus/dbus-sysdeps.c (_dbus_read): new function
15175         (_dbus_write): new function
15176         (_dbus_write_two): new function
15177         (_dbus_connect_unix_socket): new function
15178         (_dbus_listen_unix_socket): new function
15179
15180         * dbus/dbus-message-internal.h: change interfaces to use
15181         DBusString
15182
15183 2002-12-11  Havoc Pennington  <hp@pobox.com>
15184
15185         * dbus/dbus-types.h: add dbus_unichar
15186
15187         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15188
15189         * dbus/dbus-connection.c (dbus_connection_send_message): return
15190         TRUE on success
15191
15192         * dbus/dbus-transport.c: include dbus-watch.h
15193
15194         * dbus/dbus-connection.c: include dbus-message-internal.h
15195
15196         * HACKING: add file with coding guidelines stuff.
15197
15198         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15199         handling here, for security purposes (as in vsftpd). Not actually
15200         using this class yet.
15201
15202         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15203         system/libc usage here, as in vsftpd, for ease of auditing (and
15204         should also simplify portability). Haven't actually moved all the
15205         system/libc usage into here yet.
15206
15207 2002-11-25  Havoc Pennington  <hp@pobox.com>
15208
15209         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15210         always print the first verbose message.
15211
15212 2002-11-24  Havoc Pennington  <hp@pobox.com>
15213
15214         * test/echo-client.c, test/echo-server.c: cheesy test
15215         clients.
15216
15217         * configure.in (AC_CHECK_FUNCS): check for writev
15218
15219         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15220         function
15221
15222         * dbus/dbus-list.c (_dbus_list_foreach): new function
15223
15224         * dbus/dbus-internals.c (_dbus_verbose): new function
15225
15226         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15227         representing a server that listens for connections.
15228
15229         * dbus/.cvsignore: create
15230
15231         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15232         public API for reporting errors
15233
15234         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15235         public object representing a connection that
15236         sends/receives messages. (Same object used for
15237         both client and server.)
15238
15239         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15240         Basic abstraction for different kinds of stream
15241         that we might read/write messages from.
15242
15243 2002-11-23  Havoc Pennington  <hp@pobox.com>
15244
15245         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15246         _DBUS_INT_MAX
15247
15248         * dbus/dbus-test.c (main): add list test, and include
15249         dbus-test.h as intended
15250
15251         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15252         (_dbus_hash_table_remove_int): return value indicates
15253         whether the entry existed to remove
15254
15255         * dbus/dbus-list.c: add linked list utility class,
15256         with docs and tests
15257
15258         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15259         array sometimes.
15260
15261 2002-11-23  Havoc Pennington  <hp@pobox.com>
15262
15263         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15264         DBUS_END_DECLS to nothing, that should fix this once and for all
15265
15266         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15267
15268         * dbus/dbus-message.c, dbus/dbus-hash.c:
15269         add some missing @brief
15270
15271 2002-11-23  Havoc Pennington  <hp@pobox.com>
15272
15273         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15274         to avoid confusing Doxygen
15275
15276         * dbus/dbus-hash.c: @} not }@
15277
15278         * dbus/dbus-message.c (struct DBusMessage): split out
15279         internals docs
15280
15281 2002-11-23  Havoc Pennington  <hp@pobox.com>
15282
15283         * configure.in: pile on more warning flags if using gcc
15284
15285         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15286         to document static functions
15287
15288         * configure.in: add summary to end of configure so it
15289         looks nice and attractive
15290
15291         * dbus/dbus-hash.c: finish implementation and write unit
15292         tests and docs
15293
15294         * configure.in: add --enable-tests to enable unit tests
15295
15296         * dbus/dbus-test.c: test program to run unit tests
15297         for all files in dbus/*, initially runs a test for
15298         dbus-hash.c
15299
15300         * dbus/dbus-internals.h: file to hold some internal utility stuff
15301
15302 2002-11-22  Havoc Pennington  <hp@redhat.com>
15303
15304         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15305         "ported" away from Tcl
15306
15307         * dbus/dbus-types.h: header for types such as dbus_bool_t
15308
15309 2002-11-22  Havoc Pennington  <hp@redhat.com>
15310
15311         * dbus/dbus.h: fixups for doc warnings
15312
15313         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15314         macros
15315         (QUIET): make it quiet so we can see warnings
15316
15317         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15318
15319 2002-11-22  Havoc Pennington  <hp@redhat.com>
15320
15321         * Makefile.am: include "Doxyfile" target in all-local
15322
15323         * configure.in: generate the Doxyfile
15324
15325         * Doxyfile.in: move Doxyfile here, so we can use
15326         configure to generate a Doxyfile with the right
15327         version number etc.
15328
15329 2002-11-22  Havoc Pennington  <hp@redhat.com>
15330
15331         * dbus/dbus-message.c: move inline docs into .c file
15332
15333         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15334         so all docs are under doc/
15335         (MAN_EXTENSION): generate man pages. Use extension
15336         ".3dbus" which matches ".3qt" on my system,
15337         I guess this is OK, I don't know really.
15338         (FILE_PATTERNS): look for .c files not .h, makes sense
15339         for plain C I think
15340
15341 2002-11-22  Havoc Pennington  <hp@pobox.com>
15342
15343         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15344         because any app can be a server, and any app can be a client,
15345         the bus is a special kind of server.
15346
15347 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15348
15349         * Doxyfile : adding. Still needs Makefile rules to be generated
15350         automatically (just run "doxygen" in the toplevel dir for now to
15351         generate docs)
15352
15353         * dbus/dbus-message.h : Adding sample docs (javadoc since
15354         resembles gtk-doc a little more)
15355
15356         * dbus/dbus.h : Adding sample docs
15357
15358 2002-11-21  Havoc Pennington  <hp@redhat.com>
15359
15360         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15361         so we can allow ourselves to include files directly,
15362         instead of having to use dbus.h
15363
15364         * dbus/dbus.h: fill in
15365
15366         * dbus/dbus-message.h: sketch out a sample header file.
15367         Include griping if you include it directly instead of
15368         via dbus.h
15369
15370         * dbus/dbus-macros.h: new file with macros for extern "C",
15371         TRUE/FALSE, NULL, etc.
15372
15373         * doc/file-boilerplate.c: put include guards in here
15374
15375 2002-11-21  Havoc Pennington  <hp@redhat.com>
15376
15377         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15378
15379         * COPYING: include the GPL as well, and license code
15380         under both AFL and GPL.
15381
15382 2002-11-21  Havoc Pennington  <hp@redhat.com>
15383
15384         * acconfig.h: get rid of this
15385
15386         * autogen.sh (run_configure): add --no-configure option
15387
15388         * configure.in: remove AC_ARG_PROGRAM to make
15389         autoconf complain less. add AC_PREREQ.
15390         add AC_DEFINE third arg.
15391
15392 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15393
15394         * doc/Makefile.am:
15395         Fix references so we can distcheck.
15396
15397 2002-11-21  Havoc Pennington  <hp@redhat.com>
15398
15399         * Initial module creation
15400