* test/Makefile.am: fixed test data copy problem in
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * test/Makefile.am: fixed test data copy problem in 
4         out of source build, when sources came from svn or cvs. 
5
6 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
7
8         * dbus/*-win.*,bus/*-win.*: added win32 platform related
9         files. These files are only added to the cmake build system.  
10         The missing dbus-win32.patch file will be added later. 
11
12 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
13
14         * cmake: new directory, contains cmake build support.
15         See http://www.cmake.org for more informations.
16         Currently only unix will be buildable because some 
17         win32 required files are still missing. 
18
19 2007-03-03  Thiago Macieira  <thiago@kde.org>
20
21         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
22         output and add it to the DBusError message we return.
23
24         * tools/dbus-launch.1:
25         * tools/dbus-launch.c: Add option --close-stderr to, well,
26         close stderr before starting dbus-daemon.
27
28 2007-01-31  Havoc Pennington  <hp@redhat.com>
29
30         * bus/dbus-daemon.1.in: write a section in the man page on running
31         a test daemon for debugging purposes
32
33 2007-01-26  Havoc Pennington  <hp@redhat.com>
34
35         * bus/session.conf.in: override all the default limits with much
36         higher limits on the session bus, there is no reason the session
37         bus should have low limits
38
39         * bus/config-parser.c (bus_config_parser_new): increase default
40         limits so they are less likely to be hit; in particular the max
41         replies per connection was way too low
42
43 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
44
45         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
46         a pointer to the tutorial maintained as part of dbus-python
47
48 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
49
50         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
51         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
52         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
53
54 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
55
56         * tools/dbus-monitor.c: gettimeofday() is not available 
57         on windows so we have to provide our own. It's taken from 
58         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
59
60 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
61
62         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
63         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
64         is in dbus-sysdeps-win.c (not in this patch).
65
66         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
67         with InterlockedInc/Decrement. 
68         - Patches from Christian Ehrlicher
69         
70 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
71
72         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
73
74 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
75
76         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
77         fix mispaced const statement. - Patch from Peter Kümmel
78
79 2006-12-19  Ray Strode  <rstrode@redhat.com>
80
81         * bus/bus.c (process_config_every_time):
82         don't overwrite existing bus context activation object
83         until after we've checked that the new activation is
84         valid.
85
86         * bus/main.c 
87         (signal_handler), (handle_reload_watch):
88         don't call exit() on failure, instead make do and keep
89         going.
90         (close_reload_pipe): new function to turn off
91         hangup-causes-config-reload behavior if an unexpected
92         error occurs
93
94 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
95
96         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
97         correctness fix. - Patch from Christian Ehrlicher
98
99 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
100
101         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
102         we should also use it. - Patch from Christian Ehrlicher
103
104 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
105   
106         * dbus-sysdeps-util.c: added win32 related tests
107
108 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
109
110         * dbus/dbus-string.c (_dbus_string_pop_line),
111         bus/desktop-file.c (parse_section_start,
112         parse_comment_or_blank,parse_key_value,): uses
113         _dbus_string_find_eol() to support platform independent eol style.
114
115 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
116
117         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
118         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
119               _dbus_string_find_eol().
120         Approved by: Havoc Pennington.
121
122 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
123
124         * configure.in: Added switch to disable user_database caching.
125
126         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
127         be able disable user_dabase caching.
128
129 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
130
131         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
132         struct. It is unnecessary we have a global one already. Also remove 
133         bus_context_get_user_database function, it is no longer needed.
134         Flush the global database on reload.
135
136         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
137         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
138
139         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
140         Add _dbus_user_database_flush_system. 
141         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
142         Small unrelated change in _dbus_is_a_number: change 
143         _dbus_string_parse_int to _dbus_string_parse_uint. 
144
145         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
146         _dbus_groups_from_uid.
147
148         * bus/policy.c, bus/policy.h: Change call to 
149         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
150         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
151         needs it.
152
153 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
154
155         * bus/signal.c: Fix match_rule_equal errata
156         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
157         <kimmo.hamalainen@nokia.com>)
158
159 2006-11-19  Thiago Macieira  <thiago@kde.org>
160
161         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
162         _dbus_pthread_condvar_wait,
163         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
164         pthread_self() after coming back from a conditional variable
165         wait as well as in one codepath where it was forgotten.
166         Approved by: Havoc Pennington.
167
168 2006-11-17  Havoc Pennington  <hp@redhat.com>
169
170         * update-dbus-docs.sh: allow setting fd.org username via env
171         variable. Make it run autogen with --enable-xml-docs=yes
172         --enable-doxygen-docs=yes so configure will fail if the required
173         tools are missing.
174
175 2006-11-17  Havoc Pennington  <hp@redhat.com>
176
177         * doc/dbus-faq.xml: minor FAQ tweaks
178
179 2006-11-14  Havoc Pennington  <hp@redhat.com>
180         
181         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
182         dbus_get_local_machine_id() to its own file, no substantive
183         changes. There are a couple other things we might want to add that
184         are "misc" so moving out of dbus-connection.[hc] which is big
185         enough already.
186         
187 2006-11-14  Havoc Pennington  <hp@redhat.com>
188
189         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
190         UUID had the timestamp last, but the implementation had it first;
191         move it to last since I think it's a tiny bit nicer (easier to
192         compare at a glance, faster to sort, less code), and will not
193         cause any practical compatibility problems. Also, always convert
194         the timestamp to big endian.
195
196         * doc/dbus-specification.xml: Clean up the docs on the UUID.
197
198         * tools/dbus-uuidgen.1: more prominently say it is not suitable
199         as a replacement for regular uuidgen/RFC4122.
200
201 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
202
203         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
204         the correct value so we don't assert when initalizing recursive threads
205
206         * test/name-test/test-thread-init.c: call dbus_threads_init_default
207         instead of _dbus_threads_init_debug since it is more of a real world
208         test
209
210 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
211
212         * Released 1.0.0
213
214 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
215
216         * AUTHORS: added Peter and Tor of windows porting fame
217
218 2006-11-08  Havoc Pennington  <hp@redhat.com>
219
220         * doc/dbus-specification.xml: add a note about protocol stability
221
222         * doc/TODO: Remove "important for 1.0" section, replace with
223         "important for 1.2" section
224         
225 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
226
227         * README: remove some of the out of date flags
228
229         * doc/TODO: Remove todo items which are done
230
231 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
232
233         * tools/dbus-monitor.c: Handle sigint so we flush stdout
234         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
235
236 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
237
238         * tools/dbus-monitor.1: update the manpage for dbus-monitor
239         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
240
241 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
242
243         * AUTHORS: Update with all people listed in the ChangeLog
244
245 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
246
247         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
248         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
249
250 2006-11-07  Havoc Pennington  <hp@redhat.com>
251
252         * HACKING: Update release instructions to include stuff about
253         stable releases, branching, etc. May not be totally correct,
254         please fix if needed, but keep instructions up-to-date so we do
255         each stable release consistently in the future.
256
257 2006-11-07  Havoc Pennington  <hp@redhat.com>
258
259         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
260         documentation updates. Bump faq/spec versions (not to 1.0; I don't
261         think the spec will be "finished"/1.0 when we ship the 1.0 library).
262
263 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
264
265         * bus/bus.c: Missed patch - pass in the context to the directory watch
266
267 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
268
269         * Released D-Bus 1.0 RC 3(0.95)
270
271 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
272
273         * bus/activation.c (bus_activation_new): don't fail if we can not read
274         the directory as it may not exist
275
276 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
277
278         * bus/config-parser.c (service_dirs_find_dir): use 
279         _dbus_list_get_next_link so we don't get stuck in an infinite loop
280         (start_busconfig_child): move processing of standard_session_servicedirs
281         tags here because they have no content
282         (bus_config_parser_content): check we don't have content in 
283         standard_session_servicedirs tag
284
285 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
286
287         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
288         Packagers need to own this directory
289
290 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
291
292         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
293         <standard_session_servicedirs> tag with a <sevicedir> tag that
294         points to the test service directory
295
296 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
297
298         * configure.in: Add a check for DIR *dirp->dd_fd
299
300         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
301         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
302         of both Solaris and Irix
303
304 2006-11-01  Havoc Pennington  <hp@redhat.com>
305
306         * bus/dbus-daemon.1.in: document standard_session_servicedirs
307
308 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
309
310         * configure.in: expose DBUS_DATADIR
311         
312         * bus/config-parser.c: add the standard_session_servicedirs element
313         to the parser
314         (bus_config_parser_content): process the standard_session_servicedirs
315         element by getting the standard directories from sysdeps and merging
316         them into the service directory list
317         (test_default_session_servicedirs): make sure we get what we expect
318
319         * bus/session.conf.in: replace the servicedir tag with the 
320         standard_session_servicedirs tag
321
322         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
323         dbus-sysdeps.h to avoid circular header dependencies
324
325         * dbus/dbus-sysdeps.h: add the typedef of DBusList
326
327         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
328         which takes a string of directories delimited by colons, parses them 
329         out, appends a suffix and puts them in a list ignoring empty elements
330         (_dbus_get_standard_session_servicedirs): returns the standard 
331         directories for a session bus to look for service activation files
332         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
333         DBUS_DATADIR directories
334
335         * test/data/valid-config-files/many-rules.conf: add the 
336         standard_session_servicedirs tag to the valid config file tests
337
338 2006-10-30  Havoc Pennington  <hp@redhat.com>
339
340         * tools/dbus-launch.1, doc/TODO: capture intent to change the
341         command line options of dbus-launch a bit post 1.0
342
343 2006-10-27  Havoc Pennington  <hp@redhat.com>
344         
345         * dbus/dbus-connection.c (dbus_connection_open_private): document
346         how to choose shared vs. private connections
347
348 2006-10-27  Havoc Pennington  <hp@redhat.com>
349
350         * dbus/dbus-test.c: enclose more of the file in the
351         DBUS_BUILD_TESTS check.
352
353         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
354         DBUS_DISABLE_ASSERT case.
355
356         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
357         that it only works on the server side
358
359         * dbus/dbus-bus.c: add a global lock covering the BusData we
360         attach to each connection
361         (internal_bus_get): lock our access to the BusData
362         (dbus_bus_register): lock the entire registration process
363         with _DBUS_LOCK(bus_datas). If we get the lock and 
364         registration is already complete, silently return (vs. previous
365         behavior of aborting).
366         (dbus_bus_set_unique_name): lock the BusData
367         (dbus_bus_get_unique_name): lock the BusData
368
369 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
370
371         * bus/config-parser.c (service_dirs_find_dir, 
372         service_dirs_append_unique_or_free, 
373         service_dirs_append_link_unique_or_free): New static methods
374         for only appending unique service directory names into
375         the service directory list
376         (merge_included, bus_config_parser_content): Only add unique
377         service directory names into the list
378
379 2006-10-27  Havoc Pennington  <hp@redhat.com>
380
381         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
382         variables volatile, suggested by Thiago. Document struct fields.
383         (PTHREAD_CHECK): remove pthread error checking if assertions are
384         disabled, should reduce the no-assertions case to the bare
385         minimum code.
386
387 2006-10-26  Havoc Pennington  <hp@redhat.com>
388         
389         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
390         to be recursive
391         (_dbus_pthread_mutex_unlock): make it recursive
392         (_dbus_pthread_condvar_wait): save/restore the recursion count
393         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
394
395 2006-10-26  Havoc Pennington  <hp@redhat.com>
396
397         * doc/dbus-specification.xml: clarify the UUID text slightly
398
399         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
400         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
401         in preparation for being able to extend them for e.g. recursive
402         mutexes.
403
404 2006-10-26  Havoc Pennington  <hp@redhat.com>
405
406         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
407         condition variables relate to recursive mutexes.
408         
409         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
410         dbus/dbus-threads.c: Split the platforms-specific thread 
411         implementations into their own files.
412         
413         * dbus/dbus-sysdeps-pthread.c
414         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
415         was backward. Not that anything uses it.
416
417 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
418
419         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
420         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
421         needs to be cleaned up more.
422
423         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
424         up the CREDS issue.
425
426 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
427
428         * configure.in, dbus-1.pc.in: Check to see if thread methods 
429         are in glibc or libpthread and add -lpthread to the link stage 
430         if it is the latter
431
432 2006-10-26  Thiago Macieira  <thiago@kde.org>
433
434         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
435         bug 8780: the connection lock is only required while recording
436         the shared connection, so protect only that code
437         section. Don't require connection_lookup_shared to return a
438         locked connection.
439
440 2006-10-26  Thiago Macieira  <thiago@kde.org>
441
442         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
443         check if get_machine_uuid() returns NULL before proceeding any
444         further: we can't init the X atoms or create a session file
445         name if there is no machine ID.
446         This solves a crash reported by some users if
447         --exit-with-session was used without --autolaunch=<machine-id>
448
449 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
450
451         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
452         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
453
454         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
455         before we run dbus-launch
456
457         * configure.in: define TEST_BUS_BINARY to be the full path to 
458         dbus-daemon in the build root 
459
460 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
461
462         * dbus/Makefile.am:
463         * tools/Makefile.am:
464         * toos/dbus-uuidgen.1:
465                 Move the machine-id file to /var/lib/dbus 
466
467 2006-10-24  David Zeuthen  <davidz@redhat.com>
468
469         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
470         _dbus_assert (thread_init_generation != _dbus_current_generation)
471         not _dbus_assert (thread_init_generation == _dbus_current_generation)
472
473 2006-10-24  Thiago Macieira  <thiago@kde.org>
474
475         * dbus/dbus-sysdeps.h:
476         * dbus/dbus-sysdeps-unix.c: Add function
477         _dbus_make_file_world_readable that chmods a file to 0644.
478
479         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
480         Avoid writing to the static "argv" array, thereby avoiding a
481         COW on the child process.
482
483         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
484         call _dbus_make_file_world_readable on the created file.
485
486 2006-10-23  David Zeuthen  <davidz@redhat.com>
487
488         * dbus/dbus-memory.c: Use atomic variable to protect
489         n_blocks_outstanding otherwise OOM will be reported using SMP on
490         some arches
491         
492         * bus/dispatch.c: Add missing end of line characters
493
494         * bus/desktop-file.c (parse_section_start, parse_key_value) 
495         (bus_desktop_file_load): Propertly handle OOM
496
497         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
498         thread_init_generation equals _dbus_current_generation, not 0
499
500 2006-10-22  Havoc Pennington  <hp@redhat.com>
501
502         * dbus/dbus-connection-internal.h: move prototype of
503         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
504         it isn't in a public header and doesn't end up in the DBusBus
505         group in Doxygen
506
507 2006-10-21  Havoc Pennington  <hp@redhat.com>
508
509         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
510         the tarball if packagers want to run it
511
512         * cleanup-man-pages.sh: Add a script which munges all the internal
513         API man pages out of the Doxygen output. This reduces the size of
514         the installed man pages from 7 to 2 megs, and avoids
515         namespace-polluting pages. Right now (like Doxygen) this script
516         isn't in the build, it's something packagers can do manually.
517
518 2006-10-21  Havoc Pennington  <hp@redhat.com>
519
520         * dbus/dbus-connection.h: don't include the watch/timeout
521         functions in connection section
522
523 2006-10-21  Havoc Pennington  <hp@redhat.com>
524
525         * Documentation! Whee! Doxygen now 100% silent. If you make it
526         angry again, you will be punished.
527         
528 2006-10-21  Havoc Pennington  <hp@redhat.com>
529
530         * More documentation - all public API now documented according to
531         Doxygen
532
533 2006-10-21  Havoc Pennington  <hp@redhat.com>
534
535         * Document a bunch of undocumented stuff
536         
537 2006-10-21  Havoc Pennington  <hp@redhat.com>
538
539         * Clean up Doxygen group markers for public API so Doxygen finds
540         everything (not comprehensively fixed for private API).
541         Means all remaining Doxygen warnings are just about missing docs
542         and thus pretty simple to resolve.
543         
544 2006-10-21  Havoc Pennington  <hp@redhat.com>
545         
546         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
547
548         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
549         as DBUS_GNUC_DEPRECATED
550
551 2006-10-21  Havoc Pennington  <hp@redhat.com>
552
553         * Move all private API into the private Doxygen group sections of
554         the files, so they don't show up in the public API docs
555         
556 2006-10-21  Havoc Pennington  <hp@redhat.com>
557
558         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
559         dbus_message_iter_get_array_len().
560
561         * throughout: documentation improvements.
562
563 2006-10-20  Havoc Pennington  <hp@redhat.com>
564
565         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
566         matter, and the message-loader-breaker thing since nobody is going
567         to do it.  Add an item to 1.0 about supporting recursive locks
568         in dbus_threads_init_default() though, since it should be easy.
569
570         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
571         Fix this in the !dispatch case to avoid busy-looping after
572         disconnection
573
574         * More misc docs improvements
575
576 2006-10-19  Havoc Pennington  <hp@redhat.com>
577
578         * more Doxygen-related fixes (lots of moving things from the
579         public to internal section in dbus-connection.c)
580
581 2006-10-19  Havoc Pennington  <hp@redhat.com>
582
583         * Fix a pile of Doxygen warnings and missing docs
584
585 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
586
587         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
588         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
589         instead of a void *.  kqueue uses this to get the context's loop
590         while the other modules ignore the parameter.  This allows us to
591         avoid platform conditionals
592
593         * bus/bus.c (process_config_postinit): Pass in the context to the 
594         watch
595
596 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
597
598         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
599         when starting the system bus
600
601 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
602
603         * configure.in: More fixups for cross compile (Patch from 
604         Marco Pracucci <development at pracucci dot com>)
605
606 2006-10-17  Havoc Pennington  <hp@redhat.com>
607
608         * tools/dbus-send.c (main): don't close shared connection, fix
609         from Timo Hoenig
610
611 2006-10-17  Havoc Pennington  <hp@redhat.com>
612
613         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
614
615         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
616         since realistically it doesn't look like we'll be changing it
617         anymore.
618
619 2006-10-17  Havoc Pennington  <hp@redhat.com>
620
621         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
622         be used for return_if_fail type warnings; prefixes the pid, and
623         fatal by default.
624
625 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
626
627         * configure.in: Released 1.0 RC 2(0.94)
628         Add check for -fPIC and enable it if available
629
630 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
631
632         * doc/TODO: Remove the check TODO item
633
634 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
635
636         * dbus-transport-socket.c (exchange_credentials):
637         Print out more detailed errors if reading or sending
638         credentials fail (Patch from Julio M. Merino Vidal 
639         <jmmv at NetBSD dot org>)
640
641 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
642
643         * configure.in: when checking for posix getpwnam_r assume true
644         for cross compiles
645
646 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
647
648         * configure.in: Check for gethostbyname first before we check for it
649         in libnsl.  On gnu systems it is implemeneted 
650
651 2006-10-13  Havoc Pennington  <hp@redhat.com>
652
653         * dbus/dbus-connection.c
654         (dbus_connection_send_with_reply_and_block): fix to handle closed
655         connections, from Tambet Ingo bug #8631
656
657 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
658
659         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
660
661 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
662
663         * test/name-test/Makefile.am: don't link against both libdbus and
664         libdbus-convenience
665
666 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
667
668         * configure.in: check for dirfd even if it is a macro
669         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
670
671 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
672
673         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
674         avoid using dirfd on systems that don't have dirfd 
675         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
676
677 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
678
679         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
680         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
681
682         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
683         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
684         macro because _dbus_abort calls it
685
686         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
687         works
688
689 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
690
691         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
692         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
693
694 2006-10-02  Thiago Macieira  <thiago@kde.org>
695
696         * tools/dbus-launch.c (main): make it complain and abort
697         execution in case an unknown option is given. Also, process
698         the '--' argument as the end of arguments.
699
700 2006-10-01  Havoc Pennington  <hp@redhat.com>
701
702         * tools/dbus-launch.c (print_variables): if no syntax is given,
703         don't print something that's sort-of-half-sh-syntax, just print
704         a plain key-value pairs thing.
705
706         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
707         the local machine representation (but still have the hostname in
708         the display). Remove the hostname from the display if it is
709         localhost. Change session files to be named
710         ~/.dbus/session-bus/machine-display. Change X atoms to be
711         underscore-prefixed so nobody whines about ICCCM compliance.
712         Otherwise name them the same as the env variables.
713         Change session file format to include key-value pairs and an
714         explanatory comment. Keys are the same as the env variables.
715         (set_address_in_x11): X property format can't depend on
716         sizeof(pid_t) on a particular machine, fix to always be 32 bits
717
718         * tools/dbus-launch.c: make --autolaunch take a machine id
719         argument. If --autolaunch is used with a program to run, complain
720         for now (but add a FIXME). Also, don't look for existing bus if 
721         there's a program to run (but add a FIXME).
722
723         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
724         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
725         just to get this, and avoids duplicating uuid-reading code).
726
727         * tools/dbus-launch.1: clarify various things
728         
729 2006-10-01  Havoc Pennington  <hp@redhat.com>
730
731         * test/test-service.c (path_message_func): remove broken extra
732         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
733
734         * test/test-shell-service.c (path_message_func): same fix
735         
736         * dbus/dbus-connection.c
737         (_dbus_connection_get_dispatch_status_unlocked): break up the
738         function a little for clarity and fix the notification of
739         dbus-bus.c to not require dispatch to be complete
740
741         * dbus/dbus-connection.c (dbus_connection_unref): improve the
742         warning when you try to finalize an open connection.
743         
744 2006-10-01  Havoc Pennington  <hp@redhat.com>
745
746         * dbus/dbus-bus.c
747         (internal_bus_get): only weak ref the connection; this means 
748         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
749         called safely in any context
750         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
751         unref
752
753         * dbus/dbus-connection.c
754         (_dbus_connection_get_dispatch_status_unlocked): move
755         _dbus_bus_notify_shared_connection_disconnected_unlocked here
756         when queuing Disconnected instead of when the Disconnected message
757         arrives, so dbus_bus_get() won't return closed connections.
758         
759 2006-10-01  Havoc Pennington  <hp@redhat.com>
760
761         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
762         Add a hack to make DBusNewConnectionFunction work right.
763
764         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
765         the hack here. Also, fix the todo about refcount leak.
766         
767         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
768         and use the hack here
769         
770         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
771         "shareable" flag; this was completely broken, since it meant 
772         dbus_connection_open() returned a connection of unknown
773         shared-ness. Now, we always hold a ref on anything opened 
774         as shareable.
775
776         Move the call to notify dbus-bus.c into
777         connection_forget_shared_unlocked, so libdbus consistently forgets
778         all its knowledge of a connection at once. This exposed numerous
779         places where things were totally broken if we dropped a ref inside
780         get_dispatch_status_unlocked where
781         connection_forget_shared_unlocked was previously, so move
782         connection_forget_shared_unlocked into
783         _dbus_connection_update_dispatch_status_and_unlock. Also move the
784         exit_on_disconnect here.
785
786         (shared_connections_shutdown): this assumed weak refs to the
787         shared connections; since we have strong refs now, the assertion 
788         was failing and stuff was left in the hash. Fix it to close
789         still-open shared connections.
790         
791         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
792         debug pipe connections
793         
794         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
795         dbus-bus.c if the closed connection is in fact shared
796         (_dbus_connection_close_possibly_shared): rename from 
797         _dbus_connection_close_internal
798         (dbus_connection_close, dbus_connection_open,
799         dbus_connection_open_private): Improve docs to explain the deal
800         with when you should close or unref or both
801
802         * dbus/dbus-bus.c
803         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
804         from _dbus_bus_check_connection_and_unref_unlocked and modify to
805         loop over all connections
806
807         * test/test-utils.c (test_connection_shutdown): don't try to close
808         shared connections.
809
810         * test/name-test/test-threads-init.c (main): fix warnings in here
811
812         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
813         env variable to cause blocking waiting for gdb; drop
814         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
815         unconditionally.
816
817         * configure.in: add -export-dynamic to libtool flags if assertions enabled
818         so _dbus_print_backtrace works.
819
820         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
821         instead of _dbus_verbose to print the backtrace, and diagnose lack 
822         of -rdynamic/-export-dynamic
823         
824 2006-09-30  Havoc Pennington  <hp@redhat.com>
825
826         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
827         (internal_bus_get): fix screwy code formatting. whoever committed
828         that was not paying attention!
829
830 2006-09-30  Havoc Pennington  <hp@redhat.com>
831
832         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
833         reflect addition of interfaces.
834
835         * doc/dbus-specification.xml: describe a new
836         org.freedesktop.DBus.Peer.GetMachineId method
837
838         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
839         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
840         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
841         at end of skip_white
842         (_dbus_string_chop_white): new function
843
844         * bus/connection.c (bus_connections_setup_connection): call
845         dbus_connection_set_route_peer_messages.
846
847         * dbus/dbus-connection.c
848         (_dbus_connection_peer_filter_unlocked_no_update): modify to
849         support a GetMachineId method.
850
851         Also, support a new flag to let the bus pass peer methods through
852         to apps on the bus, which can be set with
853         dbus_connection_set_route_peer_messages.
854
855         Finally, handle and return an error for anything unknown on the
856         Peer interface, which will allow us to extend the Peer interface
857         in the future without fear that we're now intercepting something
858         apps were wanting to see.
859         
860         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
861         dbus/dbus-uuidgen.c
862
863         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
864         binary here, since most of the code is already in libdbus
865
866         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
867         uuid from the system config file
868
869         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
870         (_dbus_read_uuid_file_without_creating) 
871         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
872         uuid-related functions, partly factored out from dbus-server.c
873
874         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
875         DBUS_ERROR_FILE_EXISTS instead of EEXIST
876
877         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
878
879         * tools/dbus-cleanup-sockets.1: explain what the point of this
880         thing is a bit more
881
882         * autogen.sh (run_configure): add --config-cache to default
883         configure args
884
885         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
886         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
887
888         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
889         don't try to save address, fixes crash in make check
890         
891 2006-09-30  Thiago Macieira  <thiago@kde.org>
892
893         * configure.in: add DBUS_BINDIR as a #define to C source code.
894
895         * tools/dbus-launch.c
896         * tools/dbus-launch.h
897         * tools/dbus-launch-x11.c:
898         * tools/dbus-launch.1: Add the --autolaunch option to
899         dbus-launch, which makes it scan for an existing session
900         started with --autolaunch. With that option, it also creates
901         an X11 window and saves the bus address and PID to it.
902
903         * dbus/dbus-sysdeps.h:
904         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
905         a function that runs "dbus-launch --autolaunch" to retrieve
906         the running D-Bus session address (or start one if none was running)
907
908         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
909         address protocol, which tries to get the running session from
910         dbus-launch.
911
912         * dbus/dbus-bus.c:
913         * dbus/dbus-internals.h: Make "autolaunch:" be the default
914         D-Bus session bus address.
915
916         * dbus/dbus-connection.c: Fix horrible typo in error message.
917
918 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
919
920         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
921
922 2006-09-17  Havoc Pennington  <hp@redhat.com>
923
924         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
925         fix so that if unix_user_function is set on windows, we still
926         do the default check that the auth identity matches the bus identity
927
928 2006-09-16  Havoc Pennington  <hp@redhat.com>
929
930         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
931         to _dbus_transport_open_platform_specific,
932         _dbus_transport_open_socket,
933         and _dbus_transport_open_debug_pipe
934
935         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
936
937 2006-09-16  Havoc Pennington  <hp@redhat.com>
938
939         Attempt auditing public API to remove all cases where a Unix
940         function returns weird emulated goo to Windows. This probably 
941         breaks the bus daemon on Windows, to fix it again we may 
942         need to stop processing unix-specific config options on Windows,
943         and may need to add Windows-specific public API or config options.
944         
945         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
946         to reflect added interfaces; should not break soname.
947         
948         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
949         not invoke unix user function on Windows. Kind of a hacky fix, but 
950         we don't want a "unix uid" leaking out on Windows.
951
952         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
953         to get the socket fd on Windows or UNIX
954         (dbus_connection_get_unix_fd): make this always fail on Windows
955
956 2006-09-16  Havoc Pennington  <hp@redhat.com>
957
958         * dbus/dbus-server.c (dbus_server_listen): change how this works
959         to be able to delegate to a set of handlers that can succeed,
960         fail, or choose not to handle. Allows us to have 
961         dbus_server_listen_platform_specific.
962
963         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
964         factor out the tcp socket stuff to be used on windows, leaving
965         unix domain socket only in dbus-socket-unix.c
966
967         * dbus/dbus-transport-socket.c
968         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
969         stuff to be used on windows, leaving unix domain socket only 
970         in dbus-transport-unix.c
971
972         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
973         temporary hack to be sure this fails on windows
974         (dbus_connection_get_unix_process_id): ditto
975
976 2006-09-16  Havoc Pennington  <hp@redhat.com>
977
978         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
979         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
980         _dbus_open_socket so the domain/type/protocol from system headers
981         are not required. This is kind of pointless though unless we move
982         part of _dbus_connect_tcp_socket into sysdeps.c instead of
983         sysdeps-unix.c, which would mean adding a wrapper around
984         bind/listen/etc.
985         Also, add DBusError to the socket-opening functions so they 
986         don't require use of errno.
987
988 2006-09-16  Havoc Pennington  <hp@redhat.com>
989
990         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
991         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
992
993         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
994         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
995         functions specifically for sockets only, and move generic 
996         read/write/open/close into unix-specific code.
997
998 2006-09-14  Havoc Pennington  <hp@redhat.com>
999
1000         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1001         complaint about accessing revents when poll returns 0, from Julian Seward.
1002
1003 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1004
1005         * Released 1.0 RC 1 (0.93) 
1006
1007 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1008
1009         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1010         use _dbus_close instead of close
1011
1012 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1015         credentials.  Fixes "external" authentication under e.g. NetBSD
1016         which does not support any other socket credentials mechanism.
1017         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1018
1019 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1020
1021         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1022         dbus_threads_init and be used by the dbus mutex functions to
1023         avoid deadlocks.
1024
1025         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1026
1027 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1028
1029         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1030         use threadsafe readdir_r instead of readdir
1031
1032 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1033
1034         * dbus-threads.c (dbus_threads_init_default): New method for
1035         initializing the internal thread implementation (Patch from
1036         Alexander Larsson <alexl at redhat dot com>)
1037
1038 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1039
1040         * remove a bunch of todo items from the 1.0 list
1041
1042 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1043
1044         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1045         key not found
1046
1047 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1048
1049         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1050         complex debugging code
1051
1052         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1053         between the test suite ifdefs
1054         (_dbus_verbose_bytes): return if verbosity is not enabled 
1055
1056 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1057
1058         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1059         remove DBusMark
1060
1061 2006-09-10  Havoc Pennington  <hp@redhat.com>
1062
1063        patch mostly by Peter Kümmel, bug #8211
1064         
1065         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1066         unix-specific stuff in dbus-sysdeps.c
1067
1068         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1069         and move unix-specific stuff to dbus-sysdeps-unix.c
1070
1071         * configure.in: check HAVE_ERRNO_H
1072         
1073 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1074
1075         * bus/test-main.c (main): Initialize threading during tests
1076
1077         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1078         Unlock connection on error
1079         (generate_local_error_message): static method for generating
1080         an error message when we don't have a message to reply to
1081         (_dbus_connection_block_pending_call): Send a disconnect error
1082         instead of just a timeout (NULL) when the bus gets disconnected
1083         while blocking for a reply.
1084         
1085 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1086
1087         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1088         filters (Patch from Kimmo Hämäläinen 
1089         <kimmo dot hamalainen at nokia dot com>)
1090
1091 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1092
1093         * dbus/dbus-connection-internal.h: Add prototype for 
1094         _dbus_connection_test_get_locks to remove warning
1095
1096 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1097
1098         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1099         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1100         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1101
1102 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1103
1104         * Clean up close calls to use _dbus_close (Patch from 
1105         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1106
1107 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1108
1109         * doc/TODO:
1110         - Remove pending call locking todo item
1111         - dbus_connection_open now holds hard ref.  Remove todo item
1112         - do proper locking on _dbus_bus_check_connection_and_unref
1113           and handle DBUS_BUS_STARTER. Remove todo item
1114         - Warn on closing of a shared connection.  Remove todo item
1115
1116         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1117         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1118         so we don't get the warning when closing shared connections
1119
1120         * test/test-service.c, test/test-shell-service.c: Applications
1121         don't close shared connections themselves so we unref instead of
1122         close
1123
1124         * test/test-utils.c (test_connection_shutdown): Close the connection
1125
1126         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1127         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1128         method on a locked connection.  
1129         Make sure we call _dbus_connection_unref_unlocked instead of 
1130         dbus_connection_unref also.
1131         Handle DBUS_BUS_STARTER correctly
1132
1133         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1134         Mark as shared and hard ref the connection
1135         (connection_forget_shared_unlocked): Remove the hard ref from the 
1136         connection
1137         (_dbus_connection_close_internal_and_unlock):  New internal function
1138         which takes a locked connection and unlocks it after closing it
1139         (_dbus_connection_close_internal): New internal function which acts
1140         like the origonal dbus_connection_close method by grabbing a connection
1141         lock and calling _dbus_connection_close_internal_and_unlock
1142         (dbus_connection_close): Public close method, warns when the app
1143         trys to close a shared connection
1144
1145 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1146
1147         * bus/driver.c:
1148         (bus_driver_generate_introspect_string): New method for populating
1149         a DBusString with the introspect data
1150         (bus_driver_handle_introspect): Move introspect generation code to 
1151         bus_driver_generate_introspect_string
1152
1153         * bus/main.c:
1154         (introspect): New function which prints out the intropect data and
1155         exits
1156         (main): Add a --introspect switch
1157
1158 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1159
1160         * doc/TODO: Removed dtd publishing item.  
1161         It seems the dtd has already been added at
1162         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1163
1164 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1165
1166         * doc/TODO, various source files: Audited todo's and FIXME's and
1167         prepended the ones we should be looking at with 1.0.  Those
1168         prepended with 1.0? need clerification or might not be needed
1169         for 1.0
1170
1171 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1172
1173         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1174         NULL in the public API (Patch from Kimmo Hämäläinen 
1175         <kimmo dot hamalainen at nokia dot com>)
1176
1177 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1178
1179         * configure.in: Fix for OS-X compile time endian issues (patch from
1180         Benjamin Reed <ranger at befunk dot com>)
1181
1182 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1183
1184         * configure.in: Check for no-common compiler flag (OS-X fix from
1185         Benjamin Reed <ranger at befunk dot com>)
1186
1187 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1188
1189         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1190         <fcrozat at mandriva dot com>)
1191
1192 2006-08-29  Havoc Pennington  <hp@redhat.com>
1193
1194         * test/test-service.c (path_message_func): fix lack of return value
1195
1196         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1197         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1198         any more sense than on anything else in this file.
1199         (_dbus_get_tmpdir): add const to return value, and keep the
1200         results of the various getenv around in a static variable.
1201
1202 2006-08-29  Havoc Pennington  <hp@redhat.com>
1203
1204         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1205         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1206
1207 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1208
1209         * test/Makefile.am: change find to use syntax that works with non
1210         gnu versions of find
1211
1212 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1213
1214         * dbus/dbus-transport.c: fix invalid deref when checking if
1215         a vtable method exists (Patch from Christian Ehrlicher 
1216         <ch dot ehrlicher at gmx dot de>)
1217
1218 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1219
1220         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1221         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1222         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1223         <bernard at brenda-arkle dot demon dot co dot uk>)
1224
1225 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1226
1227         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1228         default case
1229
1230 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1231
1232         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1233         it works on any system providing this interface, not only FreeBSD.
1234         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1235
1236 2006-08-20  Havoc Pennington  <hp@redhat.com>
1237
1238         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1239         the docs
1240
1241 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1242
1243         * Released 0.92 
1244
1245 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1246
1247         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1248         to reflect the init late change
1249
1250         * bus/bus.c (bus_context_new): Check user before we fork so we can
1251         print out an error message a user will be able to see
1252
1253 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1254
1255         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1256
1257         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1258         Add two more global locks for use on windows platforms.  These are
1259         unused on non-windows platforms but are not ifdefed out to avoid
1260         potential bugs (i.e. the few bytes lost does not warrent the extra
1261         maintanence and complexity that having seperate sets of locks would
1262         cause)
1263
1264 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1265
1266         * bus/services.c (bus_registry_acquire_service): Return an error
1267         when an application tries to register the org.freedesktop.DBus Bus Name
1268
1269         * bus/services.c (bus_registry_release_service): Return an error
1270         when an application tries to release the org.freedesktop.DBus Bus Name
1271
1272 2006-08-17  Alp Toker  <alp@atoker.com>
1273
1274         * doc/dbus-specification.xml: Fix some minor typos.
1275
1276 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1277
1278         * configure.in: use $with_init_scripts instead of $operating_system
1279         to determine where to store the pid since the init scripts manipulate 
1280         the pid file (patch from Marcelo Ricardo Leitner 
1281         <marcelo dot leitner at terra dot com dot br>.  
1282
1283 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1284
1285         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1286         static DBusList *uninitialized_condvar_list to support new late 
1287         initialization threading model.  In this model threads can be initialized
1288         even after the D-Bus API has been used but still needs to be initialized 
1289         before the second thread has been started.  Mutexes and condvar addresses
1290         are stored in the two static lists and are replaced with actuall locks
1291         when threads are initalized.
1292         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1293         the location into the static list
1294         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1295         from the static list and freeing the mutex
1296         (_dbus_condvar_new_at_location): New method for creating a conditional 
1297         variable and placing the location into the static list
1298         (_dbus_condvar_free_at_location): New method for removing a conditional
1299         variable location from the static list and freeing the conditional variable 
1300         (init_uninitialized_locks): Atomic method which goes through the static 
1301         lists of mutex and condvar location and updates them with actuall locks
1302         (init_global_locks): changed to init_locks
1303         
1304         * dbus/dbus-connection.c:
1305         (_dbus_connection_test_get_locks): New method for tests to check connections
1306         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1307         condvar API
1308         (dbus_connection_allocate_data_slot): Pass in the global lock address
1309         to _dbus_data_slot_allocator_alloc
1310
1311         * dbus/dbus-dataslot.c:
1312         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1313         instead of the mutex itself
1314
1315         * dbus/dbus-message.c:
1316         (dbus_message_allocate_data_slot): Pass in the global lock address
1317         to _dbus_data_slot_allocator_alloc
1318
1319         * dbus/dbus-pending-call.c:
1320         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1321         to _dbus_data_slot_allocator_alloc
1322
1323         * dbus/dbus-server.c:
1324         (_dbus_server_init_base): Use the new at_location mutex API
1325         (dbus_server_allocate_data_slot): Pass in the global lock address
1326         to _dbus_data_slot_allocator_alloc
1327
1328         * test/name-test/test-threads-init.c: New test case for late thread
1329         initialization
1330
1331 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1334         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1335         causes compile problems when asserts are turned off
1336         Keeping _dbus_warn for printing out the message so even if
1337         asserts are turned off the user gets the messages that something is 
1338         wrong 
1339
1340 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1343
1344         * bus/services.c (bus_service_list_queued_owners):
1345         Add a pointer cast to fix compiler warning
1346
1347         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1348         return a NULL instead of FALSE since the return type
1349         is not expecting a boolean
1350
1351         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1352         Remove unused variable
1353
1354         * dbus/dbus-marshal-recursive-util.c (node_new):
1355         return a NULL instead of FALSE since the return type
1356         is not expecting a boolean
1357
1358         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1359         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1360         because we are expecting a pointer not a boolean
1361
1362         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1363         add void as the parameter so some compilers
1364         don't complain
1365
1366         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1367           _dbus_transport_new_for_tcp_socket):
1368         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1369         because we are expecting a pointer not a boolean
1370
1371         * test/shell-test.c (test_command_line):
1372         cast the second argument to _dbus_list_append to avoid compiler
1373         warnings
1374
1375         * test/test-names.c (main): remove unused variable
1376
1377         * test/test-service.c (check_hello_from_self_reply):
1378         Initialize echo_message and echo_reply to NULL
1379         
1380         * test/test-shell-service.c (handle_echo):
1381         Remove unused variable and cast the third parameter passed to
1382         dbus_connection_get_object_path_data to avoid compiler warrnings
1383
1384         * test/name-test/test-names.c (clear_message_queue):
1385         Remove unused function
1386
1387         * test/name-test/test-pending-call-dispatch.c:
1388         Fix format string in printf
1389
1390
1391 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         * dbus/dbus-bus.c:
1394         * test/name-test/test-names.c:
1395         Remove test method dbus_bus_connection_get_unique_name because 
1396         we already have public method dbus_bus_get_unique_name that 
1397         does the exact same thing
1398
1399 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1400
1401         * dbus/dbus-signature.c:
1402         fix typos in Julio's previous patch which cause make check to fail
1403
1404 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1405
1406         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1407         In any case it was wrong since this is a test checking to see if
1408         address parsing is correct.  There was no need to get the true
1409         tmp directory.  
1410
1411 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1412
1413         * dbus/dbus-macros.h: Revert the addition of stddef.h
1414         as we should not be adding it to library headers 
1415
1416 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         * dbus/dbus-signature.c:
1419         Fix the unit tests so that they work if assertions are not enabled.
1420         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1421
1422 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1423
1424         * tools/run-with-tmp-session-bus.sh:
1425         * test/name-test/run-test.sh:
1426         Remove bashisms (patch from Julio M. Merino Vidal
1427         <jmmv at NetBSD dot org>)
1428
1429 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1430
1431         * configure.in: add a version (>= 2.6.0) check for libxml2
1432
1433 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * configure.in: make sure the compiler supports -Wfloat-equal
1436         
1437         * bus/dir-watch-dnotify.c: move functional code after 
1438         variable declerations (C99 fix)  (patches from Jens Granseuer
1439         <jensgr at gmx dot net>
1440
1441 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1442
1443         * dbus/dbus-macros.h:
1444         add #include <stddef.h> so that Sun compilers don't complain about
1445         the defining NULL
1446
1447 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1448
1449         * dbus/dbus-sysdeps.c:
1450         * dbus/dbus-address.c:
1451         * bus/activation.c:
1452         * test/shell-test.c:
1453         don't hardcode tmp directory (patch from Dave Meikle 
1454         <dmk at davemeikle dot co dot uk>)
1455
1456 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1457
1458         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1459         Change an assert to a detailed warning and abort.  
1460         When allocator->lock != mutex it indicates that the user has failed
1461         to initalize threads before using the D-Bus library.  This warning
1462         helps the user identify the issue and fix their app.
1463
1464 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1465
1466         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1467         with cleanups of bugs found from Coverity reports:
1468
1469         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1470         close the file on error to avoid a leak
1471
1472         * bus/expirelist.c (bus_expire_list_test):
1473         Check for NULL on dbus_new0
1474
1475         * bus/activation.c (update_directory):
1476         remove dead code
1477
1478         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1479         Fix some leaks
1480
1481         * bus/bus.c (process_config_every_time):
1482         Fixed a leak
1483
1484         * bus/desktop-file.c (parse_key_value):
1485         Fixed leak
1486
1487         * bus/selinux.c (bus_selinux_id_table_insert):
1488         Fixed leak
1489
1490 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1491
1492         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1493         remove dead code
1494
1495 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1496
1497         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1498         #!/bin/bash
1499
1500 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1501
1502         * Doxyfile.in: fix the INPUT line so we can generate docs 
1503         when sourcedir != builddir (patch from Cygwin Ports maintainer
1504         <yselkowitz at users dot sourceforge dot net>
1505
1506 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1507
1508         * dbus/dbus-sysdeps.h:
1509         * dbus/dbus-sysdeps.c: 
1510         * dbus/dbus-string.c: 
1511         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1512         GLib's function which does the same thing
1513
1514         * configure.in:
1515         * bus/Makefile.am:
1516         * bus/dir-watch-default.c:
1517         * bus/dir-watch-dnotify.c:
1518         * bus/dir-watch-kqueue.c:
1519         Add kqueue directory watching for freebsd and split the directory
1520         watching code into seperate files per method/arch
1521         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1522
1523 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1524
1525         * configure.in:
1526         * tools/Makefile.am:
1527         * tools/dbus-launch.c:
1528         * bus/Makefile.am:
1529         allow --with-dbus-daemondir switch to be used to make the
1530         daemon install to a seperate bindir like /usr/libexec
1531         (patch from Brian Cameron <brian dot cameron at sun dot com)
1532
1533 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1534
1535         * bus/Makefile.am (install-data-hook): removed the slash after 
1536         $(DESTDIR) so we don't get the double slash which does not work
1537         in windows (patch from Andras Porjesz 
1538         <andras dot porjesz at siemens dot com>)
1539
1540 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1541
1542         * dbus/dbus-sysdeps.h:
1543         * dbus/dbus-sysdeps.c: 
1544           add _dbus_printf_length (patch from Peter Kümmel 
1545           <syntheticpp at gmx dot net>)
1546
1547 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1548
1549         * dbus/dbus-internals.c: unistd.h is not used 
1550         (_dbus_verbose_real): only enable verbose printing 
1551         if DBUS_VERBOSE environment var is set to '1'
1552         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1553
1554 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1555
1556         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1557         so we still compile on older gcc (patch from Frederic Peters 
1558         <fpeters at 0d dot be>
1559
1560 2006-08-04  Havoc Pennington  <hp@redhat.com>
1561
1562         * configure.in: add -Wdeclaration-after-statement
1563
1564         * dbus/dbus-connection.c: change all the pending call stuff to
1565         reflect the fact that pending call operations use the connection
1566         lock
1567
1568         * dbus/dbus-pending-call.c: add locking here
1569
1570         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1571         field const consistent with how message field is done
1572
1573 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1574
1575         * s/D-BUS/D-Bus/g
1576
1577 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1578
1579         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1580         <in7y118 at public.uni-hamburg dot de> - fix invalid
1581         read/write reported by valgrind
1582
1583 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1584
1585         * Released 0.91
1586
1587 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1588
1589         * dbus/dbus-connection.c:
1590         (_dbus_connection_attach_pending_call_unlocked):
1591         (connection_timeout_and_complete_all_pending_calls_unlocked):
1592         Make sure we set timeout_added on pending calls to FALSE when
1593         we remove the timeout from the connection
1594
1595 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1596
1597         * Removed some extra bindings stuff lingering around (thanks timo)
1598         * dbus-pendingcall.c (_dbus_pending_call_new): 
1599         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1600         when we tried to take a lock on an already locked connection
1601
1602 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1603
1604         * Released 0.90
1605
1606 2006-07-17  Havoc Pennington  <hp@redhat.com>
1607
1608         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1609         ints, reported by Owen Taylor
1610
1611 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1612
1613         * doc/TODO:
1614         * dbus/dbus-bus.c:
1615         * dbus-errors.c:
1616         * dbus/dbus-marshal-validate.c:
1617           Removed TODO items which were fixed or are no longer relevent
1618
1619 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1620
1621         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1622         Remove stray files from the stripped bindings
1623
1624 2006-07-16  Havoc Pennington  <hp@redhat.com>
1625
1626         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1627         Improve the error message on reply timeout
1628
1629 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1630
1631         * Remove all bindings
1632
1633 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1634
1635         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1636         and set pending_reply out arg to NULL is connection is disconnected
1637         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1638         static method for cleaning up pending calls on disconnect
1639         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1640         calls queued timeouts on disconnect 
1641
1642          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1643         Remove 
1644
1645 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1646
1647         * bus/activation.[ch] (bus_activation_list_services): new function to 
1648         get the list of services that can be activated
1649
1650         * bus/dispatch.c: test coverage for the new bus method
1651         ListActivatableNames
1652
1653         * bus/driver.c: new bus method ListActivatableNames to get the list of
1654         services that can be activated
1655
1656         * doc/dbus-specification.xml: ListActivatableNames method documentation
1657
1658 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1659         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1660         source files
1661
1662 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1663         * dbus/dbus-message-factory.c:
1664         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1665
1666 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1667         * dbus/dbus-connection-internal.h:
1668         * dbus/dbus-connection.c:
1669         * file dbus/dbus-pending-call.c:
1670         * dbus/dbus-pending-call.h:
1671         Make DBusPendingCall an opaque type even to D-Bus internals
1672
1673 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1676         connection_close
1677
1678         * dbus/dbus-connection.c: include dbus-bus.h
1679         (_dbus_connection_read_write_dispatch): make static
1680
1681 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1682
1683         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1684         function
1685         (dbus_connection_dispatch): On disconnect unref any shared connections
1686
1687         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1688         for cleaning up shared connections on disconnect
1689         (internal_bus_get): get a hard refrence to shared connections when
1690         they are created
1691         
1692         * doc/TODO: Remove items which are no longer relevent or have been fixed
1693         Split 1.0 todo items with a 0.90 freeze todo list
1694  
1695 2006-06-14  Ross Burton  <ross@openedhand.com>
1696
1697         * glib/dbus-gobject.c:
1698         Free a leaking GArray (surely not!) in dbus_g_method_return.
1699
1700 2006-06-14  Ross Burton  <ross@openedhand.com>
1701
1702         * tools/Makefile.am:
1703         * tools/dbus-monitor.c:
1704         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1705         Habacker).
1706         
1707 2006-06-14  Ross Burton  <ross@openedhand.com>
1708
1709         * tools/dbus-print-message.c:
1710         Also print the object path when outputting signals or method calls.
1711
1712 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1713
1714         * qt/src/Makefile.am: install the qdbus.h header.
1715         This allows people to actually use the installed code.
1716
1717 2006-06-12  Ross Burton  <ross@openedhand.com>
1718
1719         * glib/dbus-gproxy.c:
1720         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1721
1722 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1723
1724         * Released 0.62
1725
1726 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1727
1728         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1729         break pedantic builds. Closes bug 6043 (patch approved by
1730         Havoc back in February).
1731
1732 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1733
1734         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1735         that took a QDBusMessage parameter.
1736         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1737         * qt/tools/dbus.cpp: Don't use automatic call because we might
1738         be calling an async method: request a reply.
1739
1740 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1741
1742         * test/qt/*: Update the testcases, including testing the new
1743         functionality of sending null QByteArray and QString over the
1744         bus. Add new headertest test and restore the old
1745         qdbusxmlparser test.
1746
1747 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1748
1749         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1750         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1751
1752         * qt/examples/Makefile.am:
1753         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1754         form.
1755
1756         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1757         QByteArray() (nulls) over the bus.
1758         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1759         the one that has the signature suffix stripped.
1760         * qt/src/qdbusreply.h: Make some methods const.
1761
1762 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1763
1764         Patch from Timo Hoenig <thoenig@suse.de>.
1765
1766         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1767         required during build to EXTRA_DIST.
1768         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1769         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1770         * configure.in: Fix "make dist", take care that the Makefile for
1771         qt/dbus is being generated.
1772
1773 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1774
1775         * bus/bus.c: Fix eavesdropping on method calls
1776
1777 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1778
1779         * configure.in:
1780         * dbus/dbus-userdb-util.c:
1781         Add Solaris console owner patch from Artem Kachitchkine
1782
1783 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1784
1785         * qt/Makfile.am:
1786         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1787         reorganisation. Thanks to Timo Hoenig for pointing this out.
1788
1789 2006-06-06  Robert McQueen  <robot101@debian.org>
1790
1791         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1792           call to dbus_g_type_get_struct.
1793
1794 2006-06-06  Robert McQueen  <robot101@debian.org>
1795
1796         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1797           pointers were put into a GPtrArray-based specialised collection, and
1798           then freed along with the array. GValues which you add into
1799           collections or maps which have the NOCOPY flag set are assumed to not
1800           belong to the caller, so rather than the existing pointer-stealing
1801           semantics, they are copied instead. Given that the main consumers of
1802           this abstraction are the bindings themselves, I don't think this is
1803           too bad, but others should watch their choice of take vs set_static.
1804
1805 2006-06-06  Robert McQueen  <robot101@debian.org>
1806
1807         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1808           of g_slist_prepend not being used. Fixed copying of slist-based
1809           specialised collections, then wrote a test case and found that it was
1810           all broken. Went on to fix iterating and appending too. Good thing
1811           nobody uses this code yet.
1812
1813 2006-06-06  Robert McQueen  <robot101@debian.org>
1814
1815         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1816           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1817           are discarded without unsetting, so it makes no difference whether
1818           we take or set_static). Remove cases for G_TYPE_POINTER because
1819           there really is nothing useful we can do with them in our
1820           specialised types - we *need* boxed copy/free functions at the very
1821           least.
1822
1823 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1824
1825         * qt/dbus: Add directory. I had forgotten to add this
1826         yesterday after the move...
1827
1828         * qt/examples/Makefile.am:
1829         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1830
1831         * qt/tools/Makefile.am:
1832         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1833         Added feature to get and set properties.
1834         Added validation of service, object path and interface names.
1835
1836         * qt/tools/dbusidl2cpp.cpp: Two new features:
1837         1) Allow specifying both the header and the source file names,
1838         by separating them with a colon.
1839         2) Don't write an interface output if the -p switch wasn't
1840         given, but the -a was.
1841
1842         * qt/src/*: Fix usage of Iterators and ConstIterators.
1843         Fix shadowing of variables by other variables (-Wshadow).
1844         Fix keyword-cleanliness in headers.
1845         Fix ASCII-cast (QLatin1String, QLatin1Char).
1846         Fix validation of member names.
1847         Add extra checking of introspection data during XML parsing.
1848         Various bug fixes.
1849
1850 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1851
1852         * dbus/Makefile.am:
1853         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1854         qt/dbus/qdbus.h now.
1855
1856 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1857
1858         * configure.in: Make --disable-qt actually do
1859           something. Patch inspired by Zack Rusin.
1860
1861 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1862
1863         * qt/: Update to Subversion r548032.
1864         This includes a big reorganisation of the files inside the
1865         subdir.
1866
1867 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1868
1869         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1870         clear:  
1871         "Failed to connect to socket <host>:<port> <error>" instead of
1872         "Failed to connect to socket <host>: <error>:<port>"
1873
1874         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1875         for a tcp transport. 
1876
1877 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1878
1879         * qt/*: Update the QtDBus bindings up to revision 546310 in
1880         Subversion.
1881         This adds the dbuscpp2xml tool, that parses a C++ header and
1882         outputs a D-BUS Introspection XML.
1883
1884 2006-05-21  Havoc Pennington  <hp@redhat.com>
1885
1886         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1887         is not NULL when it shouldn't be. Also a couple of possible fixes
1888         for #4637 though I don't understand why the bug happens, to be
1889         honest... also the object constructor has an assert name != NULL
1890         and the name is only currently NULL for peer-to-peer proxies that 
1891         I don't think anyone uses? So it should be asserting.
1892         Anyway, for now at least see if we get an earlier assertion failure.
1893
1894         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1895         apparently broken code to be sure the tests fail and someone 
1896         will fix them...
1897
1898 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1899
1900         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1901         and arrays when they had a single element: has_next returns
1902         false, even before you read the element. So, instead, check
1903         the array length.
1904
1905 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1906
1907         * qt/qdbusmessage.cpp:
1908         * qt/qdbustypehelper_p.h:
1909         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1910         the list is a const-reference
1911
1912 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1913
1914         * Adding old doc patch that never got applied
1915         
1916         * dbus/bus.c (dbus_bus_add_match): Add documentation
1917
1918         * doc/dbus-specification.xml: Add documentation for the match rules
1919           and the AddMatch and RemoveMatch methods
1920
1921 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1922
1923         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1924         call (r535506)
1925
1926         * qt/dbusidl2cpp.cpp:
1927         * qt/qdbusabstractadaptor.cpp:
1928         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1929         sibling of the QDBusAbstractAdaptor objects instead of the
1930         parent. (r535848)
1931
1932         * qt/dbusidl2cpp.cpp:
1933         * qt/qdbusabstractinterface.cpp:
1934         * qt/qdbusabstractinterface.h:
1935         * qt/qdbusabstractinterface_p.h:
1936         * qt/qdbusinterface.cpp: Make properties in interfaces
1937         actually work. The code that was generated would not compile,
1938         due to moc calls to functions that did not exist. They now
1939         shall. (r536571)
1940
1941 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1942
1943         * Makefile.am:
1944         * configure.in:
1945         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1946         Thanks to Brad Hards for providing the patch
1947
1948 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1949
1950         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1951         call. (r535506)
1952
1953 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1954
1955         * qt/examples/dbus.cpp: Enhance error messages and use
1956         QDBusInterfacePtr.
1957
1958 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1959
1960         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1961         and disable the copy operators. (r533772, r534746)
1962
1963         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1964
1965         * qt/qdbusabstractinterface.cpp:
1966         * qt/qdbusabstractinterface.h: Change the default call mode to
1967         not use the event loop. Add convenience call() methods that
1968         take a CallMode parameter. (r534042)
1969
1970         * qt/qdbusconnection.h: Change the default call mode to not
1971         use the event loop. (r534042)
1972
1973         * qt/qdbusinterface.cpp:
1974         * qt/qdbusinterface.h: Add a method to tell us if the
1975         interface is valid (since we don't return a null pointer
1976         anymore) (r534099)
1977
1978         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1979         (r534101)
1980
1981         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1982         function in two so taht we get the chance to introspect
1983         without having a QDBusMessage (r534102)
1984
1985         * qt/qdbusbus.h:
1986         * qt/qdbusconnection.cpp:
1987         * qt/qdbusconnection_p.h:
1988         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1989         avoid a round-trip to the server when attempting to introspect
1990         one of our own objects. Also make sure the filter functions
1991         match the empty interface as well. (r534108)
1992         Don't keep the connection names. Instead, trust the unique
1993         connection name (r534111)
1994         Remove event loop usage (r534112)
1995
1996 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1997
1998         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1999         Brad Hards.
2000
2001 2006-04-28  Robert McQueen  <robot101@debian.org>
2002
2003         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2004         any order, making it easier for people who inherit from this
2005         object.
2006
2007 2006-04-28  Robert McQueen  <robot101@debian.org>
2008
2009         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2010         of memory from within pointer arrays and lists. Fixes bug #6300.
2011
2012 2006-04-28  Robert McQueen  <robot101@debian.org>
2013
2014         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2015         generating struct signatures. Fixes bug #6083.
2016
2017 2006-04-28  Robert McQueen  <robot101@debian.org>
2018
2019         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2020         to qdbusconnection_p.moc.
2021
2022 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2023
2024         * README, INSTALL: Doc fixes
2025         Patch from Brad Hards <bradh at frogmouth.net>
2026
2027 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2028
2029         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2030         the dynamic meta object. No need to guess which interface to
2031         call.
2032
2033 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2034
2035         * qt/qdbusconnection_p.h:
2036         * qt/qdbusmetaobject.cpp:
2037         * qt/qdbusmetaobject_p.h:
2038         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2039         for the dynamic meta object. No need to guess which
2040         interface to call.
2041         * qt/qdbusabstractinterface_p.h:
2042         * qt/qdbusconnection.cpp:
2043         * qt/qdbusintegrator.cpp:
2044         * qt/qdbusinterface.cpp:
2045         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2046         Add a QDBusRef that looks and behaves like DCOPRef.
2047
2048 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2049
2050         * dbus/dbus-connection.c: Interfaces are optional in method
2051         calls, so don't give up if the interface parameter is NULL.
2052         Patch reviewed by Havoc Pennington.
2053
2054 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2055
2056         * qt/qdbusreply.h: Add default constructor and operator=
2057           (r532625)
2058         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2059           in public headers (r532952)
2060         * qt/qdbusabstractinterface.cpp:
2061         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2062           make it the default (r532951)
2063
2064 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2065
2066         * dbus/dbus-connection.c: Fix asserts
2067         Patch from Tim Moloney <t.moloney at verizon.net>
2068
2069 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2070
2071         * mono/Connection.cs, mono/Message.cs: Check Target type
2072         Patch from Aaron Bockover (abockover at novell.com)
2073
2074 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2075
2076         * INSTALL: fine-tune the requirements for the Qt4 binding.
2077
2078 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2079
2080         * tools/dbus-print-message.c: Added support for printing of all 
2081           remaining data types. Fixed logic for indentation of compound
2082           data types.
2083         
2084 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2085
2086         * INSTALL: fill out content of file providing DBus specific
2087           build installations, followed by generic Auto* INSTALL file
2088           content
2089         
2090 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2091
2092         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2093           Patch by Stefan Eilers. (r529537)
2094
2095 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2096
2097         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2098           contents (r528208)
2099
2100 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2101
2102         * qt/Makefile.am: fix the dependency for
2103           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2104           not in qdbusconnection.cpp.
2105           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2106           spotting this.
2107
2108 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2109
2110         * qt/examples/listnames.cpp:
2111         * qt/examples/Makefile.am: Three ways to list the names on the
2112           bus.
2113
2114 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2115
2116         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2117           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2118
2119 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2120
2121         Merge from Subversion:
2122         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2123           something that exists (r526315)
2124         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2125           slots/signals (r526316)
2126         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2127           also return an unknown-method error if the parameters don't
2128           match for org.freedesktop.DBus.Properties. (r526842)
2129         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2130         * qt/qdbusintegrator.cpp: Restore the proper order of
2131           delivery: don't make method returns be delivered on priority
2132           (r528150)
2133
2134 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2135
2136         * configure.in qt/Makefile.am: add qt/examples
2137         * qt/examples: Add QtDBus example programs:
2138           - hello: Hello, World
2139           - ping: Simple method-calling program
2140           - pong: Simple object-exporting program (not using adaptors)
2141           - complexping: Interactive method-calling program 
2142                 (also gets and sets properties).
2143           - complexpong: Sample program exporting methods, signals and
2144                 properties, using adaptors.
2145           - dbus: Simple implementation of a generic method-calling
2146                 program, similar to 'dbus-send', but with semantics
2147                 similar to 'dcop'.
2148           - chat: Simplistic chat program, implemented using signals
2149                 and the system bus. Looks like IRC.
2150
2151 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2152
2153         * configure.in: Detect QtGui (necessary for one of the
2154           example programs). Note: this increases the minimum required
2155           version of Qt to 4.1.3.
2156
2157 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2158
2159         * test/qt/*: Sync with KDE Subversion revision 523647.
2160         Update the testcases to the new API. Remove testcases for
2161         classes that are no longer public or have been removed.
2162
2163 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2164
2165         * qt/*: 
2166         * dbus/qdbus.h: Sync with KDE Subversion revision
2167         523647. Hopefully, this will be the last of the
2168         source-incompatible changes. Documentation has been improved;
2169         support for QList<basic-types> has been added; QDBusObject is
2170         gone; QDBus(Abstract)Interface is now a QObject with
2171         auto-generated meta-object; QDBusIntrospection is marked
2172         private, since QMetaObject can be used now; lots of bugfixes.
2173
2174 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2175
2176         Patch from Milosz Derezynski <internalerror at gmail.com>
2177         
2178         * configure.in:
2179         Output the service directory in the configure summary
2180
2181         * dbus-1.pc.in:
2182         Add session_bus_services_dir
2183
2184 2006-03-10  Ross Burton  <ross@openedhand.com>
2185
2186         * tools/dbus-print-message.c:
2187         Add support for object paths and signatures.
2188
2189 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2190
2191         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2192         config reload.
2193         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2194         information caches
2195         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2196         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2197         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2198         * dbus/dbus-userdb.h: Add function to flush all user/group information
2199         caches.
2200
2201 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2202
2203         * qt/dbusidl2cpp.cpp:
2204         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2205         for dcopidl2cpp, found in the KDE installations (or the more
2206         modern kalyptus): generate Qt4 C++ code for the input XML
2207         introspection. Currently no IDL parsing.
2208
2209 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2210
2211         * test/qt/*: Update the self-tests.
2212
2213 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2214
2215         * qt/*: 
2216         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2217         represents the first feature-complete version of the Qt4
2218         bindings since I took ove maintainership.
2219
2220 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2221
2222         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2223         dir. This is C++, so we can't use the DBus ones.
2224
2225 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2226
2227         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2228         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2229
2230 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2231
2232         * dbus/dbus-connection.c: 
2233         (_dbus_connection_block_pending_call):
2234         Check to see if our data has already been read off the connection
2235         by another blocking pending call before we block in poll.
2236         (check_for_reply_and_update_dispatch_unlocked):
2237         Code taken from _dbus_connection_block_pending_call - checks for
2238         an already read reply and updates the dispatch if there is one.
2239
2240         * test/name-test/test-pending-call-dispatch.c:
2241         New test for making sure we don't get stuck polling a 
2242         dbus connection which has no data on the socket when
2243         blocking out of order on two or more pending calls.
2244
2245 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2246
2247         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2248         make/automake don't detect that we're talking about the same
2249         .lo file if I specify the full path to the source files.
2250
2251 2006-02-26  Havoc Pennington  <hp@redhat.com>
2252
2253         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2254
2255         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2256         session bus variable is unset, suggest "man dbus-launch" and "man
2257         dbus-daemon" to figure out how to fix the problem
2258
2259 2006-02-25  Havoc Pennington  <hp@redhat.com>
2260
2261         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2262         should make this thing use the new glib options parser
2263
2264 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2265
2266         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2267         .lo files taking moc sources.
2268
2269 2006-02-25  Havoc Pennington  <hp@redhat.com>
2270
2271         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2272         and install it as a public header
2273
2274 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2275
2276         * Released 0.61
2277
2278 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2279         
2280         * proxies.py: Fix the callchain
2281
2282 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2283         
2284         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2285
2286         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2287         dbus/dbus-sysdeps.c
2288
2289         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2290         call _dbus_group_info_free_allocated which causes infinite loop,
2291         correctly call _dbus_group_info_free
2292
2293 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2294
2295         * qt/qdbusinterface_p.h:
2296         * qt/qdbusinterface.cpp: Use the standard
2297         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2298         calls instead of creating one for us.
2299
2300         * qt/qdbusconnection_p.h:
2301         * qt/qdbusintegrator.cpp: Remove debugging code.
2302
2303         * qt/qdbusintegrator.cpp:
2304         * qt/qdbusmessage.cpp:
2305         * qt/qdbusmessage_p.h:
2306         * qt/qdbusmessage.h: Change the behaviour of automatic
2307         reply-sending: now a reply is always sent, unless the caller
2308         didn't request one or if the user slot has already sent one.
2309
2310 2006-02-16  Robert McQueen  <robot101@debian.org>
2311
2312         * configure.in: Patch from Debian packages by Sjoerd Simons
2313         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2314         arguments so it's possible to build both bindings in the
2315         same tree.
2316
2317         * qt/Makefile.am: Fix truncated value so that make dist works.
2318
2319 2006-02-16  Robert McQueen  <robot101@debian.org>
2320
2321         * acinclude.m4, configure.in: Patch from Brad Hards
2322         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2323         improving quoting, re-ordering a few checks, and a few other
2324         aesthetic tidy-ups.
2325
2326 2006-02-16  Robert McQueen  <robot101@debian.org>
2327
2328         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2329         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2330         assertion that the next element to read from the iter is fixed in
2331         size. This is not the case when you are at the end of the iter,
2332         because the next element type is INVALID.
2333
2334         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2335         a bogus assert which means that you may not initialise a 0-length
2336         string unless you provide a non-NULL pointer. This prevented
2337         you from marshalling messages containing zero-length arrays in
2338         some cases.
2339
2340         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2341         from Rob to correct bogus asserts when trying to demarshal an
2342         array and get_fixed_array got you 0 elements. Append nothing to
2343         the GArray in this case.
2344
2345         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2346         an empty array via the glib bindings. Without all of the above
2347         patches, this new test fails.
2348
2349 2006-02-16  Robert McQueen  <robot101@debian.org>
2350
2351         * glib/dbus-gmain.c: Make the previous commit compile.
2352
2353         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2354         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2355         specify sender_keyword="foo", path_keyword="bar" when adding
2356         a signal listener, so that you can bind to signals generically
2357         but still do something useful in your callback.
2358
2359         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2360         chars so that they're not cast to chars and made negative. Thanks
2361         to Jakub Stachowski for reporting this and testing the fix.
2362
2363 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2364
2365         * dbus/dbus-glib.h:
2366         * glib/dbus-gmain.h:
2367         (dbus_g_connection_open): new method for openning
2368         a connection to an arbitrary address in the glib bindings
2369
2370         * ChangeLog: checkin last entry which doesn't seem to be commited
2371
2372 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2373
2374         * tools/dbus-launch.c: Fixed sh syntax output
2375
2376 2006-02-13  Robert McQueen  <robot101@debian.org>
2377
2378         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2379         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2380         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2381         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2382         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2383         missing piece of the glib bindings jigsaw puzzle. This modifies
2384         the existing specialised types to have N type parameters (rather
2385         than the current 1 or 2 for arrays and dictionaries respectively).
2386         You can then use this to get a glib type to represent any arbitrary
2387         D-Bus struct type using dbus_g_type_get_struct. The only
2388         implementation of these types is with GValueArrays as before,
2389         but it's now possible to store these in arrays, emit them in
2390         signals, etc.
2391
2392 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2393
2394         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2395         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2396         <thiago.macieira at trolltech.com>
2397
2398 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2399
2400         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2401         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2402
2403 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2404
2405         * bus/connection.c (bus_connections_expect_reply): Make
2406         pending reply limit not common to all connections (Bug #5416)
2407         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2408
2409 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2410
2411         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2412
2413 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2414
2415         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2416         patch from Doug Goldstein <cardoe at gentoo.org>
2417
2418 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2419
2420         * mono/Arguments.cs: Fix a magic number in the mono bindings
2421         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2422
2423 2006-01-27  Robert McQueen  <robot101@debian.org>
2424
2425         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2426         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2427         when generating the client-side methods, instead of overloading
2428         CSymbol which broke everything horribly. My apologies.
2429
2430 2006-01-27  Robert McQueen  <robot101@debian.org>
2431
2432         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2433         by me and Rob Taylor to add a simple_free function to D-Bus map
2434         and collection types, which allows those types which can be freed
2435         with a GDestroyNotify (such as GHashTables and GArrays, but not
2436         GPtrArrays) to be stored as the values in hashtables.
2437
2438         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2439         Patch by Rob Taylor to add nested dicts to the glib tests to check
2440         the above code works, and appears not to leak when called repeatedly.
2441
2442 2006-01-27  Robert McQueen  <robot101@debian.org>
2443
2444         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2445         to free a D-Bus allocated string with dbus_free () instead of
2446         g_free ().
2447
2448 2006-01-27  Iain Holmes  <iain@openedhand.com>
2449
2450         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2451         method from being called multiple times.
2452
2453 2006-01-19  Robert McQueen  <robot101@debian.org>
2454
2455         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2456         <rob.taylor@collabora.co.uk> to add support for generating bindings
2457         to arrays that are represented as GPtrArrays rather than GArrays (ie
2458         size-variable things, such as strings, objects, structs, etc).
2459
2460 2006-01-05  Robert McQueen  <robot101@debian.org>
2461
2462         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2463         <ricardo.kekki@movial.fi> to make it possible to inherit from
2464         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2465         a private part, and moving the setting of the DBusGProxyManager into a
2466         connection property, allowing proper GObject construction.
2467
2468 2006-01-05  Robert McQueen  <robot101@debian.org>
2469
2470         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2471         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2472         annotations when generating glib client bindings.
2473
2474 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2475
2476         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2477
2478         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2479
2480 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2481
2482         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2483
2484 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2485
2486         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2487
2488 2005-12-19  Ross Burton  <ross@openedhand.com>
2489
2490         * doc/dbus-tutorial.xml:
2491         Document the Glib client-side bindings, and list all possible annotations.
2492
2493 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2494
2495         * dbus/bus.c (dbus_bus_release_name): Add documentation
2496
2497 2005-12-06  Robert McQueen  <robot101@debian.org>
2498
2499         * python/service.py: s/sucessful/successful/ so we're allocating to
2500         and reading from the same variable. Oops.
2501
2502 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2503
2504         * Released 0.60
2505
2506 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2507
2508         * test/qt/Makefile.am: build from srcdir
2509
2510         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2511         Note - this code is wrong and needs to be fixed by the Qt binding
2512         developers.  The flags should be treated as bitfields and not enums.
2513
2514         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2515
2516 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2517
2518         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2519           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2520           in production code
2521
2522 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2523
2524         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2525         method for getting messages off the bus in the absence of a
2526         mainloop.  This method is much like 
2527         dbus_connection_read_write_dispatch except it does not dispatch
2528         the messages to a registered filter function.  Instead it
2529         allows a developer to process messages by directly popping
2530         them off the bus.
2531
2532 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2533
2534         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2535         the parser to continue instead of returning error
2536         (bus_desktop_file_load): Do not free parser data when
2537         parse_section_start or parse_key_value fails because it was 
2538         already freed by parser_free (patch from Carlos Garcia Campos  
2539         <carlosgc at gnome.org>)
2540
2541 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2542
2543         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2544         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2545         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2546         test/test-segfault.c, test/test-utils.c,
2547         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2548         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2549         Various cleanup of dead code and compiler warnings (patch from
2550         Kjartan Maraas <kmaraas at gnome.org>) 
2551
2552 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2553
2554         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2555         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2556
2557 2005-11-27  Robert McQueen  <robot101@debian.org>
2558
2559         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2560         part of the preceding one. Oops. Merge patch by Johan Hedberg
2561         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2562         on big-endian platforms.
2563
2564         * test/python/test-client.py: Add some 16-bit integers to the test
2565         values.
2566
2567 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2568
2569         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2570         method return message for property getters
2571
2572 2005-11-27  Robert McQueen  <robot101@debian.org>
2573
2574         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2575         with type v of an instance of dbus.Variant(foo, type='x') caused
2576         it to be boxed twice before sending over the bus.
2577
2578         * python/dbus_bindings.pyx, python/service.py,
2579         test/python/test-client.py: Update the constants for the new
2580         request_name flags, and update comments/test cases now that queueing
2581         is the default action.
2582
2583 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2584
2585         * configure.in:
2586         - Change version to 0.60 for impending release
2587         - upped the sonames because of ABI and API breakage
2588
2589 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2590
2591         * configure.in: Add test/name-test/Makefile to the generated
2592         Makefile list
2593
2594         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2595         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2596         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2597         not to queue an ower if it can't be the primary owner
2598
2599         * bus/bus.h: Add new internal BusOwner struct
2600
2601         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2602         to bus_registry_ensure and don't set the prohibit_replacement flag
2603         since they are now set per BusOwner and not per name.
2604         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2605         that returns the list of connections in a name's connection queue
2606         
2607         * bus/services.c (struct BusService): remove prohibit_replacement field
2608         (struct BusOwner): new struct for keeping track of queued connections
2609         and their associated flags for the queue
2610         (struct BusRegistry): add a BusOwner memory pool
2611         (bus_registry_new): initialize the BusOwner memory pool
2612         (bus_registry_unref): free the BusOwner memory pool
2613         (_bus_service_find_owner_link): new internal method for
2614         searching the queue for a specific connection
2615         (bus_owner_set_flags): new method for adding setting the flags on a
2616         bus owner
2617         (bus_owner_new): new method that creates a BusOwner object from the
2618         pool and sets its flags
2619         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2620         (bus_registry_ensure): Add the flags parameter
2621         (bus_registry_acquire_service): Switch from using raw connections to
2622         using the BusOwner struct
2623         Add new state machine for dealing with the new set of flags
2624         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2625         cancel_ownership, free_ownership_cancel_data, 
2626         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2627         restore_ownership, free_ownership_restore_data, 
2628         add_restore_ownership_to_transaction): Switch to using BusOwner 
2629         instead of raw connections
2630         (bus_service_add_owner): Add flags parameter
2631         Switch to using BusOwner instead of raw connections
2632         Add state machine for dealing with the new set of flags
2633         (bus_service_swap_owner): Swaps the first and second owners in the
2634         queue.  Used to make sure proper signals are sent when a service looses 
2635         or gains primary ownership.  We never insert an owner at the top of the
2636         queue.  Instead we insert it in the second position and then swap.
2637         (bus_service_remove_owner): Remove the owner from the queue sending
2638         out the NameLost and NameOwnerChanged signals if the we were the 
2639         primary owner
2640         (bus_service_get_primary_owners_connection): New method that extracts
2641         the connection from the primary owner
2642         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2643         connection
2644         (bus_service_get_allow_replacement): Changed from the old 
2645         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2646         primary owner and returns if it can be replaced or not
2647         (bus_service_set_prohibit_replacement): removed
2648         (bus_service_has_owner): returns TRUE if and owner with
2649         the specified connection exists in the queue
2650         
2651         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2652         method that only compiles if tests are enabled.  Allows us to get the 
2653         unique name of a connection so we can check it against the queue when
2654         doing regression tests
2655
2656         * bus/activation.c (bus_activation_send_pending_auto_activate),
2657         bus/dispatch.c (bus_dispatch),  
2658         bus/driver.c (bus_driver_handle_get_service_owner, 
2659         bus_driver_handle_get_connection_unix_user, 
2660         bus_driver_handle_get_connection_unix_process_id,
2661         bus_driver_handle_get_connection_selinux_security_context),
2662         bus/signals.c (connection_is_primary_owner): 
2663         use bus_service_get_primary_owners_connection instead of
2664         bus_service_get_primary_owner
2665
2666         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2667         _dbus_listen_unix_socket): Calculate the length of the socket
2668         path and use that instead of using a fixed length which was
2669         causing socket names to contain many trailing Nul bytes.
2670
2671         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2672         (dbus_g_method_get_sender): New method for extracting the sender 
2673         from a DBusGMethodInvocation
2674         (dbus_g_method_return_get_reply): changed name to 
2675         dbus_g_method_get_reply
2676         (dbus_g_method_return_send_reply): changed name to
2677         dbus_g_method_send reply
2678
2679         * doc/dbus-specification.xml: New docs that describe how the new
2680         queueing system works and talks about the changes to the how
2681         we specify socket names
2682
2683         * glib/examples/example-service.c, 
2684         glib/examples/example-signal-emitter.c,
2685         glib/examples/statemachine/statemachine-server.c:
2686         Changed the RequestName flags to the new system
2687
2688         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2689         regression test suite for testing various states of the new
2690         queueing system
2691         
2692 2005-11-15  Robert McQueen  <robot101@debian.org>
2693
2694         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2695         Taylor to add two methods, dbus_g_method_return_get_reply and
2696         dbus_g_method_return_send_reply, to allow you to get the reply
2697         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2698         and send it. The GLib bindings can't marshal a return value of
2699         something like a(s) if the array is empty - ultimately they should be
2700         made to heed the signature of the out arguments as the Python bindings
2701         now can, but this is a workable interim solution which might have
2702         other applications.
2703
2704 2005-11-15  Robert McQueen  <robot101@debian.org>
2705
2706         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2707         method to org.freedesktop.DBus to release a bus name or give up
2708         waiting in the queue for it.
2709
2710         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2711         dbus_bus_release_name method to send the ReleaseName method calls.
2712         Add constants for the return values to dbus/dbus-shared.h.
2713
2714         * doc/dbus-specification.xml: Document the new ReleaseName method
2715         in the specification.
2716
2717         * python/dbus_bindings.pyx: Add a low-level python binding for the
2718         release name method.
2719
2720         * python/exceptions.py, python/service.py: Make freeing BusName
2721         objects release the name. Add a NameExistsException, and fix a
2722         bug with creating UnknownMethodException.
2723
2724         * test/python/test-client.py: Add tests for freeing BusName
2725         objects causing names to be released.
2726
2727 2005-11-14  Robert McQueen  <robot101@debian.org>
2728
2729         * python/service.py: Include the traceback in the error reply when we
2730         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2731
2732 2005-11-14  David Zeuthen  <davidz@redhat.com>
2733
2734         Patch from Timo Hoenig <thoenig@suse.de>.
2735
2736         * bus/bus.c: I've recently investigated why the automatic reload
2737         of configuration files does not work as expected.
2738
2739         Currently, reloading configuration files does only work when
2740         running dbus-daemon with --nodaemon.  If we are running as daemon
2741         we're hitting a dnotify bug once we fork the process.
2742
2743         We're initializing the dnotify fds before calling fork().  Once
2744         the child process forked it does still have the fds (and they
2745         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2746         getting SIGIO as changes are made to the configuration files.
2747
2748         The attached patch moves the initialization of the dnotify fds to
2749         process_config_postinit().  This is safe for all current code
2750         paths and solves the dnotify disfunction.  If we're running
2751         dbus-daemon as daemon the fds for dnotify are now being
2752         initialized after fork() for the child process.
2753
2754         * configure.in: The current configure.in check for dnotify probes
2755         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2756         match for 'xlinux', too. Additionally I have adapted the configure
2757         option's style to match with the others.
2758
2759 2005-11-14  Robert McQueen  <robot101@debian.org>
2760
2761         * python/decorators.py, python/service.py: Add a new argument to the
2762         dbus.service.method decorator called sender_keyword, which if set,
2763         specifies the name of an argument which will be provided the bus
2764         name of the method caller.
2765
2766         * test/python/test-client.py, test/python/test-service.py: Add a
2767         method and test to check the sender_keyword functionality.
2768
2769 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2770
2771         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2772         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2773         Simons <sjoerd at luon.net>)
2774
2775         * AUTHORS: Add Robert McQueen for his work on the Python
2776         Bindings and other parts of D-Bus
2777
2778 2005-11-07  Robert McQueen  <robot101@debian.org>
2779
2780         * python/decorators.py: Change emit_signal function to use the
2781         signature annotation of the signal when marhsalling the arguments from
2782         the service. Fix a bug where the code checking signature length
2783         against argument length referenced the wrong variable.
2784
2785         * python/introspect_parser.py: Avoid adding the type signature of
2786         signal arguments to any methods which occur after them in the
2787         introspection data (!) by making the parser a little more careful
2788         about its current state.
2789
2790         * python/service.py: Remove debug prints from last commit (again :D).
2791
2792         * test/python/test-client.py, test/python/test-service.py: Add test
2793         signals with signature decorators to test the strict marshalling code
2794         gives errors at the right time. Could do with checking the signals
2795         actually get emitted too, given that the test does nothing with
2796         signals at the moment...
2797
2798 2005-11-07  Robert McQueen  <robot101@debian.org>
2799
2800         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2801         instances to stop madness of creating new instances representing
2802         the same bus connection all the time, rendering any tracking of
2803         match rules and bus names quite meaningless. Caught a bug where
2804         the private argument to SessionBus() and friends was being passed
2805         in as use_default_mainloop by mistake. Still some problems with
2806         multiple dbus_binding.Connection instances representing the same
2807         low-level connection (eg when you use both SessionBus() and
2808         StarterBus() in same process), but it's a lot better now than it
2809         was.
2810
2811         * python/dbus_bindings.pyx: Add constants with the return values
2812         for bus_request_name().
2813
2814         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2815         and retrieve the same instances for the same name, so deletion can be
2816         done with refcounting. Also now throws some kind of error if you
2817         don't actually get the name you requested, unlike previously...
2818
2819         * test/python/test-client.py: Add tests for instance caching of buses
2820         and bus name objects.
2821
2822 2005-11-04  Robert McQueen  <robot101@debian.org>
2823
2824         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2825         marshalling of boolean values. Add some booleans to the values in
2826         the test client.
2827
2828         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2829         argument to the dbus.service.method decorator, which allows you to
2830         name arguments to take two callback functions for replying with
2831         return values or an exception.
2832
2833         * test/python/test-client.py, test/python/test-service.py: Add test
2834         case using asynchronous method reply functions, both return values and
2835         errors, and from within both the function itself and from a mainloop
2836         callback.
2837
2838         * python/decorators.py, python/service.py: Perform checking that the
2839         number of method/signal arguments matches the number of types in the
2840         signature at class loading time, not when you first introspect the
2841         class.
2842
2843         * python/service.py: Remove debug print left by the last commit.
2844
2845 2005-11-03  Robert McQueen  <robot101@debian.org>
2846
2847         * python/service.py: Heavy refactoring of method invocation, with
2848         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2849         in favour of a new _message_cb that uses seperate functions for
2850         looking up the method to call, marshalling the return values, and
2851         sending exceptions as errors, and is easier to follow as a
2852         consequence.  Fixes some corner cases about returning things that
2853         don't match your declared out_signature, allows exceptions to define
2854         _dbus_error_name and have it be sent over the bus as the error name,
2855         and paves the way for cool stuff like heeding the message no reply
2856         flag, asynchronous method implementations, informing the method of the
2857         sender, and including backtraces in the error messages.
2858
2859         * test/python/test-client.py: Catch and print exceptions thrown in the
2860         async callback tests, rather than passing them to the low-level
2861         bindings to be ignored in a noisy and frustrating manner.
2862
2863 2005-11-03  Robert McQueen  <robot101@debian.org>
2864
2865         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2866         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2867         tweak others to be consistent.
2868
2869         * test/python/test-client.py: Tweak output of testInheritance.
2870
2871 2005-10-29  Robert McQueen  <robot101@debian.org>
2872
2873         * python/service.py: Major changes to allow multiple inheritance
2874         from classes that define D-Bus interfaces:
2875         
2876          1. Create a new Interface class which is the parent class of
2877             Object, and make the ObjectType metaclass into InterfaceType.
2878         
2879          2. Patch written with Rob Taylor to replace use of method_vtable
2880             with code that walks the class's __MRO__ (method resolution order)
2881             to behave like Python does when invoking methods and allow
2882             overriding as you'd expect. Code is quite tricky because
2883             we have to find two methods, the one to invoke which has the
2884             right name and isn't decorated with the /wrong/ interface,
2885             and the one to pick up the signatures from which is decorated
2886             with the right interface.
2887         
2888             The same caveats apply as to normal multiple inheritance -
2889             this has undefined behaviour if you try and inherit from two
2890             classes that define a method with the same name but are
2891             decorated with different interfaces. You should decorate
2892             your overriding method with the interface you want.
2893         
2894          3. Replace grungy introspection XML generation code in the metaclass
2895             with dictionaries that cope correctly with multiple inheritance
2896             and the overriding of methods. This also uses the signature
2897             decorations to provide correct introspection data, including
2898             the debut appearance of the types of your return values. :D
2899
2900         * test/python/test-client.py, test/python/test-service.py: Add a test
2901         case to try invoking an method that overrides one inherited from a
2902         D-Bus interface class.
2903
2904 2005-10-29  Robert McQueen  <robot101@debian.org>
2905
2906         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2907         Add checking for the end of struct character when marshalling a
2908         struct in MessageIter.append_strict.
2909
2910         * python/examples/example-service.py,
2911         python/examples/gconf-proxy-service.py,
2912         python/examples/gconf-proxy-service2.py: Update to use gobject
2913         mainloop directly rather than appearing to depend on gtk.
2914
2915         * python/test/test-client.py, python/test/test-server.py: Remove
2916         obsolete and broken test scripts for old bindings. We have up to date
2917         and working tests in test/python/.
2918
2919 2005-10-29  Robert McQueen  <robot101@debian.org>
2920
2921         * python/decorators.py: Add optional arguments to the method and
2922         signal decorators to allow you to specify the signature of arguments
2923         and return values. Preserve the doc strings of signal functions in the
2924         decorated version, for pydoc and friends.
2925
2926         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2927         parse_signature_block function with an iterable dbus.Signature()
2928         type. Fix a bug in MessageIter.append_strict where you could append
2929         anything by claiming it was a string.
2930
2931         * python/service.py: Use the out_signature decoration on methods to
2932         marshal return values, meaning you no longer require dbus.Array()
2933         or dbus.Dictionary() to indicate the type when returning empty
2934         arrays or dictionaries. Fix a bug where exceptions which are defined
2935         in __main__ are not turned into error replies.
2936
2937         * test/python/test-client.py, test/python/test-service.py: Add test
2938         for correct marshalling of return values according to out_signature.
2939         Fix a bug in the async call test where the error_handler is missing a
2940         self argument.
2941
2942 2005-10-29  Robert McQueen  <robot101@debian.org>
2943
2944         * glib/Makefile.am, glib/examples/Makefile.am,
2945         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2946         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2947
2948         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2949
2950         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2951         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2952         the command line.
2953
2954 2005-10-27  Ross Burton  <ross@openedhand.com>
2955
2956         * dbus/dbus-marshal-header.c:
2957         Remove dead code.
2958
2959         * glib/dbus-gobject.c:
2960         Stop compiler warning.
2961
2962 2005-10-25  Ross Burton  <ross@openedhand.com>
2963
2964         * dbus/dbus-auth.c:
2965         * dbus/dbus-server-unix.c:
2966         * dbus/dbus-transport-unix.c:
2967         * glib/dbus-gmain.c:
2968         * glib/dbus-gobject.c:
2969         Add some const keywords.
2970
2971 2005-10-25  Ross Burton  <ross@openedhand.com>
2972
2973         * doc/dbus-specification.xml:
2974         Document the NoReply annotation.
2975
2976         * glib/dbus-binding-tool-glib.h:
2977         * glib/dbus-binding-tool-glib.c:
2978         Respect the NoReply annotation.
2979
2980 2005-10-24  Robert McQueen <robot101@debian.org>
2981
2982         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2983         derive from unicode instead of str, and encode/decode UTF-8 when
2984         marshalling/unmarshalling bus messages
2985
2986         * python/introspect_parser.py: encode introspection data as UTF-8
2987         before passing the buffer into libxml2
2988
2989         * test/python/test-client.py: add unicode test strings
2990
2991         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2992         ignore generated python test files
2993
2994 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2995
2996         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2997         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2998         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2999
3000         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3001         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3002         when constructing struct signatures
3003
3004         * python/_dbus.py (Bus): handle private connections using the
3005         private keyword in the constructor. defaults to private=False
3006         (Bus::close): new method to close a connection to the bus
3007
3008         * python/dbus_bindings.pyx (Connection::close): renamed method
3009         was previously called disconnect
3010         (bus_get): now supports getting a private connection
3011
3012         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3013         keyword is set to True.  if it is, execute the method without waiting
3014         for a reply
3015         (ProxyObject::_introspect_execute_queue): new method for executing
3016         all the pending methods that were waiting for the introspect to
3017         finish.  this is called when introspect either succeeds or fails
3018         (ProxyObject::_introspect_error_handler): call queued methods
3019
3020 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3021
3022         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3023         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3024
3025         * python/service.py (Object::_message_cb): handle exceptions correctly
3026         by sending them over the wire to the calling app.  This makes sure
3027         the client returns immediately instead of waiting the 15 seconds to
3028         timeout.
3029
3030         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3031         Add a test to benchmark how long it takes to introspect a service and 
3032         call a method which returns a large element (pretty fast)
3033
3034         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3035         method which pushes a lot of data
3036
3037 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3038
3039         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3040         reclaim memory outside of the loop and use del istead of just setting
3041         the key to None
3042
3043 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3044
3045         * python/service.py (ObjectType::_reflect_on_signal): Always close
3046         signal tag even when there are no arguments
3047
3048 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3049
3050         * configure.in: Set mono, mono-docs and Qt3 to default
3051         to no instead of auto when building.  These bindings do not
3052         have full time maintainers and will not be supported for the
3053         1.0 release.
3054
3055 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3056
3057         patches from Michael Krivoruchko <misha at sun.com>: 
3058         
3059         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3060         _dbus_connection_message_sent, 
3061         _dbus_connection_send_preallocated_unlocked_no_update, 
3062         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3063         is NULL when calling _dbus_verbose
3064
3065         * configure.in: check for functions getpeerucred and getpeereid
3066
3067         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3068         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3069         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3070         Patch was only tested on Solaris 10 x86 so it might be issues
3071         with other platforms (i.e. BSDs and MacOSX)
3072         
3073
3074 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3075
3076         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3077         instead of marshal basic so we can handle recursive types in a variant
3078
3079         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3080         in variants
3081
3082         * test/glib/test-service-glib.c, test-service-glib.xml
3083         (my_object_echo_variant [EchoVariant], 
3084         my_object_process_variant_of_array_of_ints123
3085         [ProcessVariantOfArrayOfInts123]): 
3086         Add two test methods
3087
3088         * python/introspect_parser.py: New module for parsing introspect
3089         data.
3090
3091         * python/dbus_bindings.pyx:
3092         (various places): when throwing errors fix to use errormsg instead 
3093         of message local variable because Pyrex can get confused with other 
3094         message variables (initial patch by Robert McQueen 
3095         <robert.mcqueen at collabora.co.uk>)
3096         (MessageIter::parse_signature_block): new method for getting the next
3097         block in a signiture.
3098         (MessageIter::append_strict): new method for appending values strictly
3099         using the passed in signature instead of guessing at the type
3100         (MessageItter:: append_dict, append_struct, append_array): use 
3101         signatures to marshal children if the signature is available
3102         
3103         * python/exceptions.py (IntrospectionParserException): new exception
3104
3105         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3106         introspected signatures if available, else we fall back to the
3107         old way of doing things.
3108         (ProxyObject::_introspect_reply_handler ): parse introspection data
3109         
3110         * python/service.py (ObjectType::_reflect_on_method): Properly
3111         terminate <method> if there are no args in the reflection data
3112
3113         * test/python/test-client.py: add tests for talking with the GLib
3114         test server.  This gives us better coverage for introspection since
3115         python to python will always generate arguments as variants.  It also
3116         allows us to test the robustness of the GLib bindings and interlanguage
3117         communications.
3118
3119         
3120 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3121
3122         * bus/driver.c (bus_driver_handle_introspect): Add signals
3123         to the introspect data. (patch from Daniel P. Berrange 
3124         <dan at berrange.com>)
3125
3126         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3127         
3128         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3129         _dbus_connection_run_builtin_filters): Changed these to
3130         be unlock_no_update functions and call 
3131         _dbus_connection_send_unlocked_no_update instead of
3132         dbus_connection_send to avoid locking errors.
3133         
3134         * doc/TODO: Removed the make Ping test TODO
3135         
3136 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3137
3138         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3139         We now copy the message from a DBusError and then free 
3140         the error object befor throwing the error
3141
3142         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3143         DBusBindingOutputMode enum which was causing a warning.
3144         #include <time.h> so using time_t is explicitly defined
3145
3146 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3147
3148         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3149         - dbus/dbus-bus.c
3150         (internal_bus_get): new method that take over the heavy lifting
3151         of dbus_bus_get and adds the ability to get a private connection
3152         to the bus
3153         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3154         interface as in previous versions
3155         (dbus_bus_get_private): new method that is a wrapper to 
3156         internal_bus_get to get a private connection to the bus
3157
3158         - dbus/dbus-bus.h
3159         (dbus_bus_get_private): add as a public libdbus interface
3160
3161         - dbus-1.pc.in: output system_bus_default_address and 
3162         sysconfdir variables so apps can use them when compiling
3163
3164 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3165         * dbus/qt: New Qt bindings
3166
3167 2005-09-12  Waldo Bastian  <bastian@kde.org>
3168
3169         * dbus/dbus-marshal-validate.c,
3170         doc/dbus-specification.xml, test/Makefile.am,
3171         test/test-names.c: allow hyphens in bus names.
3172
3173 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3174
3175         * test/data/auth/fallback.auth-script: we don't
3176         retry the EXTERNAL method when we know its going
3177         to fail anymore.
3178
3179 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3180
3181         * dbus/dbus-connection-internal.h: rename
3182         (add|remove|toggle)_(watch|timeout) to unlocked()
3183         
3184         * dbus/dbus-connection.c: ditto.
3185         
3186         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3187         Update some callers for the renaming.
3188
3189 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3190
3191         * dbus/dbus-auth.c: (record_mechanisms): don't
3192         retry the first auth mechanism because we know
3193         we're just going to get rejected again.
3194         
3195         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3196         Fix thinko ... and what a nasty little bugger to
3197         track down you were ...
3198
3199         * dbus/dbus-connection.c:
3200         (_dbus_connection_add_watch),
3201         (_dbus_connection_remove_watch): add note about
3202         these needing the connection to be locked.
3203         (_dbus_connection_get_dispatch_status_unlocked):
3204         set status to DATA_REMAINS when we queue the
3205         disconnected message.
3206         
3207         * bus/dispatch.c:
3208         (bus_dispatch): fix warning.
3209         (check_existent_service_no_auto_start):
3210         Expect ChildSignaled error too.
3211         (check_existent_hello_from_self): fix another
3212         couple of warnings.
3213         
3214 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3215
3216         Patches from James Willcox <snorp@snorp.net>
3217
3218         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3219
3220         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3221         support array "out" parameters.
3222
3223         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3224         for 16-bit int support.
3225
3226 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3227
3228         * Released 0.50
3229
3230         * Patch from Steve Grubb:
3231         - bus/activation.c (bus_activation_service_reload_test): clean up
3232         some indentation
3233         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3234         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3235         buffer overflows in the test suite.  This is non critical because
3236         it can not be exploited and this code is only run when doing a 
3237         make check.
3238
3239         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3240         - configure.in: Don't check and link against kdecore, only qt headers
3241         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3242         - gcj/org/freedesktop/dbus/Makefile.am:
3243         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3244         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3245         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3246         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3247         - tools/Makefile.am: Add platform extentions to binaries 
3248         (i.e. .exe on windows)
3249
3250         * configure.in: 
3251         - Make it so if no suitable version of python is found we only 
3252         disable building python instead of exiting the configure script
3253         - Require version 2.4 of glib for glib bindings
3254         - Up version to 0.50
3255
3256         * python/__init__.py: Sync version with libdbus to (0,50,0)
3257         
3258 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3259
3260         * dbus/dbus-object-tree.c (find_subtree_recurse):
3261         a couple of optimizations (bug #710):
3262         - do a binary search in the tree
3263         - insert a new child at the right place directly, no need for
3264           qsort anymore
3265         - do the "double alloc" thing when allocating children
3266
3267 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3268
3269         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3270
3271         * python/dbus_bindings.pyx: Memory management foo
3272         (global): remove hacky _user_data_references global list
3273         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3274         tuples. Unref user_data
3275         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3276         (Connection::__del__): Remove and replace with __dealloc__ method
3277         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3278         to keep tuple from being deallocated instead of the global var hack
3279         (Connection::register_object_path): Stuff user_data into a tuple.
3280         Use Py_INCREF to keep tuple from being deallocated instead of the 
3281         global var hack
3282         (Connection::register_fallback): Stuff user_data into a tuple.
3283         Use Py_INCREF to keep tuple from being deallocated instead of the 
3284         global var hack
3285         (GIL_safe_pending_call_notification): Don't unref the message
3286         because it gets unreffed when going out of scope.  Py_XDECREF
3287         the user_data
3288         (PendingCall::__del__): Remove and replace with __dealloc__ method
3289         (PendingCall::set_notify): ref the pending call because we will
3290         need it to stick around for when the notify callback gets called
3291         (Message::__del__): Remove and replace with __dealloc__ method
3292
3293         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3294         gthreads_init to match up with the dbus call
3295
3296         * python/glib.py (init_threads): Changed to threads_init to match
3297         up with gobject.threads_init().  init_threads is kept for backwards
3298         compat but will most likely be deprecated in the future
3299
3300         * test/python/test-client.py: 
3301         - revamp to use Python's unittest functionality
3302         - add async call tests
3303         - setup threads in glib and dbus so we make sure locks are working
3304         
3305 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3306
3307         * python/dbus_bindings.pyx 
3308         (_pending_call_notification, cunregister_function_handler, 
3309         cmessage_function_handler): All callback functions have been rearranged 
3310         to workaround a bug in Pyrex when working with the GIL which is Python's 
3311         global lock when dealing with threads.  They have been split into
3312         a wrapper function (which assumes the name of the old function) and
3313         a _GIL_safe_<function name> function which contains the functionality
3314         of the old function.  This ensures that Pyrex does not write code
3315         the lock is released.
3316         
3317
3318 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3319
3320         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3321         GIL global lock when calling back into Python
3322
3323 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3324
3325         * Release 0.36.2
3326
3327         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3328
3329         * bus/policy.c (bus_policy_allow_user): change default "user is
3330         allowed" to be "user has same uid as the bus itself"; any
3331         allow/deny rules will override.
3332
3333         * bus/session.conf.in: don't allow all users, since now by default
3334         the user that ran the bus can connect.
3335
3336 2005-08-26  Colin Walters  <walters@verbum.org>
3337
3338         * tools/dbus-print-message.c (print_message): Flush stdout
3339         after printing a message, so that redirecting to a file, then
3340         hitting Ctrl-C works.
3341
3342 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3343
3344         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3345         (EmptyMessage): new class that subclasses Message.  This is a workaround
3346         to a Pyrex bug that fails to call __del__ when the Message object goes out
3347         of scope.  For some reason subclassing Message fixes this bug
3348         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3349         - s/Message(_create=0)/EmptyMessage everywhere else
3350         
3351         * test/python/test-{server|client}.py: add the python/.libs directory
3352         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3353         get picked up from the system
3354
3355 2005-08-25  Colin Walters  <walters@verbum.org>
3356
3357         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3358         to Ryan Lortie for the suggestion.
3359
3360 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3361
3362         * test/python: Add python regression test
3363
3364         * configure.in: Add test/python/Makefile
3365
3366         * test/Makefile.am: Add the python directory to SUBDIRS
3367
3368 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3369
3370         * Release 0.36.1
3371
3372         * python/_dbus.py: 
3373         (Interface::connect_to_signal): propigate keywords for match on args
3374         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3375
3376         * python/proxies.py (ProxyObject::connect_to_signal):
3377         propigate keywords for match on args
3378
3379         * Makefile.am: point everything to pyexecdir since python borks
3380         on multilib
3381
3382 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3383
3384         * Release 0.36
3385
3386 2005-08-23  Colin Walters  <walters@verbum.org>
3387
3388         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3389
3390 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3391
3392         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3393         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3394         of defining DBusConnection ourselves.
3395
3396 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3397
3398         * python/dbus.pth: New path file to fix up problems when installing
3399         c libraries to lib64 and python files to lib.
3400
3401         * python/Makefile.am: install dbus.pth in the correct spot
3402
3403 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3404         * ChangeLog: clean up my last entry a bit
3405
3406         * doc/introspect.xsl: New stylesheet for converting introspection data
3407         into browser renderable xhtml. Contributed by Lennart Poettering.
3408
3409         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3410         Poettering.
3411
3412         * doc/dbus-tutorial.xml: 
3413         - Add Colin Walter to the Authors section for authoring the GLib
3414         section
3415         - Add descriptions of the new signature and type functionality
3416         in the Python complex type mapping section
3417         - Add a sidenote on the new args matching functionality in 
3418         the Python bindings
3419         - Fixed up some of the examples to use the gobject.MainLoop
3420         instead of gtk.main
3421         
3422         * python/_dbus.py:
3423         (Bus::_create_args_dict): New. Converts a hash of arg matches
3424         to a more useable format
3425         (Bus::add_signal_receiver): add a **keywords parameter for catching
3426         arg match parameters
3427         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3428         arg match parameters
3429         
3430         * python/matchrules.py:
3431         (MatchTree::exec_matches): Check for arg matches
3432         (SignalMatchRule::add_args_match): New method
3433         (SignalMatchRule::execute): Added args_list parameter as an optimization
3434         so we don't have to marshal the args more than once
3435         (SignalMatchRule::match_args_from_list): New method that checks to see
3436         if the rule's arg matches match an argument list.  Only arguments
3437         set in the rule are checked.
3438         (SignalMatchRule::match_args_from_rule): New method that checks to see
3439         if the rule's arg matches match another rule's.  All args have to match
3440         in order for this method to return true.  If either rule has more args
3441         then it is not a match.
3442         (SignalMatchRule::is_match): Add args match
3443         (SignalMatchRule::repr): Add args to the final output if they exist
3444
3445 2005-08-17  Ross Burton  <ross@burtonini.com>
3446
3447         * glib/dbus-gproxy.c:
3448         (dbus_g_proxy_call_no_reply): unref the message once sent.
3449         (dbus_g_proxy_call): protect against NULL proxy.
3450
3451 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3452
3453         * python/__init__.py: Version updated (0, 43, 0)
3454         
3455         * python/dbus_bindings.pyx: 
3456         - Fixed type objects to have self passed into __init__
3457         - Added the Variant type
3458         - Add the ability to specify types or signatures for Array, Variant 
3459         and Dictionary
3460         (Connection::send_with_reply_handlers): return a PendingCall object
3461         (_pending_call_notification): handle the case when an error is returned 
3462         without an error message in the body
3463         (MessageIter::get_boolean): return True or False instead of an integer
3464         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3465         and add checks for objects with embeded signatures or types (Array, 
3466         Variant and Dictionary)
3467         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3468         (MessageIter::append_dict): handle embeded types or signatures
3469         (MessageIter::append_array): handle embeded types or signatures
3470         (MessageIter::append_variant): new method
3471         
3472         * python/proxies.py:
3473         (DeferedMethod): New. Dummy executable object used when queuing calls 
3474         blocking on introspection data
3475         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3476         or shorter timeouts for method calls
3477         (ProxyObject): Add first pass at an introspection state machine
3478         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3479         introspection. 
3480         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3481         the usual mechanisms for sending messages.  This is to avoid a deadlock
3482         where the Intospect call would be queued waiting for the Introspect 
3483         call to finish ;-)
3484         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3485         when introspection returns with no error
3486         (ProxyObject::_introspect_error_handler): New.  This method is called 
3487         when introspection encounters an error
3488         (ProxyObject::__getattr__): Code to handle different introspection 
3489         states.  Queue async calls or block blocking calls if we are 
3490         introspecting.  Pass through as normal if we are not or are done with 
3491         introspecting.
3492         
3493         * python/service.py: Import signal and method from decorators.py
3494
3495         * python/types.py: Add Variant type
3496
3497 2005-08-16  Colin Walters  <walters@verbum.org>
3498
3499         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3500         DBusError message is NULL.
3501
3502 2005-08-09  Havoc Pennington  <hp@redhat.com>
3503
3504         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3505         malloc'd copy of the name parameter
3506
3507 2005-08-09  Havoc Pennington  <hp@redhat.com>
3508
3509         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3510         warning if the reply serial is set to 0
3511
3512 2005-08-04  Colin Walters  <walters@verbum.org>
3513
3514         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3515         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3516         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3517         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3518         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3519         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3520         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3521         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3522         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3523         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3524         
3525         Prefix name with _ to ensure they're not exported.  All callers
3526         updated.
3527
3528         * glib/dbus-gvalue.c (typecode_to_gtype)
3529         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3530         (signature_iter_to_g_type_dict)
3531         (signature_iter_to_g_type_array)
3532         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3533         (dbus_gtypes_from_arg_signature):
3534         Move to dbus-gsignature.c.
3535
3536         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3537         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3538         (dbus_binding_tool_output_glib_client): Ditto.
3539
3540         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3541         and dbus-gsignature.h
3542
3543         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3544         unused variable.
3545
3546 2005-08-03  Colin Walters  <walters@verbum.org>
3547
3548         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3549         catch any incompatible changes accidentally made.
3550
3551 2005-08-03  Havoc Pennington  <hp@redhat.com>
3552
3553         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3554         typo, from Julien Puydt
3555
3556         * bus/connection.c (bus_connection_disconnected): we were always
3557         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3558
3559 2005-08-01  Colin Walters  <walters@verbum.org>
3560
3561         Patch from Joe Markus Clarke:   
3562         
3563         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3564         use-after-free.
3565
3566 2005-08-01  Colin Walters  <walters@verbum.org>
3567         
3568         Patch from Joe Markus Clarke:   
3569         
3570         * tools/dbus-send.c (main): 
3571         
3572         Don't use C99 style initializers (bug #3933).
3573         
3574 2005-08-01  Colin Walters  <walters@verbum.org>
3575
3576         Patch from Joe Markus Clarke:   
3577
3578         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3579         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3580         * glib/dbus-gobject.c (write_interface):
3581
3582         Don't use C99 style initializers (bug #3933).
3583
3584 2005-07-31  Havoc Pennington  <hp@redhat.com>
3585
3586         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3587         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3588
3589 2005-07-30  Havoc Pennington  <hp@redhat.com>
3590
3591         * fix a bunch of Doxygen warnings and mistakes
3592
3593 2005-07-30  Havoc Pennington  <hp@redhat.com>
3594
3595         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3596         DBUS_BUILD_TESTS since it's now used in production code
3597
3598 2005-07-29  Havoc Pennington  <hp@redhat.com>
3599
3600         * test/glib/test-profile.c (write_junk): initialize the junk
3601         buffer so valgrind doesn't have a breakdown
3602
3603 2005-07-29  Havoc Pennington  <hp@redhat.com>
3604
3605         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3606         (match_rule_matches): remove unused arg
3607         (test_matching): add tests for match_rule_matches()
3608
3609         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3610         do arg0='foo' arg5='bar' in the match rules
3611         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3612
3613         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3614
3615 2005-07-29  Ross Burton  <ross@openedhand.com>
3616
3617         * dbus/dbus-connection.c:
3618         Don't create a DBusCondVar which is never used.
3619
3620 2005-07-27  Ross Burton  <ross@openedhand.com>
3621
3622         * dbus/dbus-message.c:
3623         Reduce the size of the maximum cached message to 10K.
3624
3625 2005-07-25  Ross Burton  <ross@openedhand.com>
3626
3627         * glib/dbus-gproxy.c:
3628         Remove matches when all proxies are unregistered.
3629
3630 2005-07-24  Colin Walters  <walters@verbum.org>
3631
3632         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3633         typedata; recursive arrays won't have it.
3634
3635         * test/glib/test-dbus-glib.c:
3636         * test/glib/test-service-glib.c:
3637         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3638         
3639 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3640
3641         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3642         proxies.py, service.py: Cleanup of code after running it through the
3643         pyflakes code checker mostly dealing with undefined names.  
3644         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3645
3646 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3647
3648         * NEWS: Update to 0.35.2
3649
3650 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3651
3652         * python/_dbus.py: Remove import of the dbus.services
3653         module as it no longer exists (patch from Dimitur Kirov)
3654
3655         * python/service.py (Object::__init__): Fixed typo
3656         s/name/bus_name (patch from Dimitur Kirov)
3657
3658         * python/examples/example-signal-emitter.py: import dbus.glib
3659         to get the main loop and use glib mainloop instead of gtk so
3660         X doesn't have to be running.
3661
3662         * python/examples/example-signal-recipient.py: import dbus.glib
3663         to get the main loop and use glib mainloop instead of gtk so
3664         X doesn't have to be running. Import the decorators module
3665         directly.
3666
3667         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3668         didn't pick up on but are needed to build
3669
3670         * configure.in: upped version to 0.35.2
3671
3672         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3673         added Colin Walters' SELinux API rename patch from head 
3674         s/unix sercurity context/selinux security context/
3675
3676 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3677
3678         * python/Makefile.am: dbus_binding.pxd.in should be included 
3679         in EXTRA_DIST not dbus_binding.pxd
3680         fix up $(srcdir) hopefully for the last time
3681
3682         * NEWS: Update to 0.35.1
3683
3684 2005-07-16  Colin Walters  <walters@verbum.org>
3685
3686         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3687         from bus_driver_handle_get_connection_unix_security_context.  Update for
3688         error usage.
3689         (message_handlers): Update for renames.
3690
3691         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3692         _dbus_string_init failure correctly.
3693         (bus_selinux_append_context): Convert SID to context.  Append it
3694         as a byte array.
3695         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3696         hasn't been called.
3697
3698         * bus/selinux.h: Update prototype.
3699
3700         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3701         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3702
3703 2005-07-15  Colin Walters  <walters@verbum.org>
3704
3705         * doc/TODO: Add note about convenience wrappers.
3706
3707 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3708
3709         * NEWS: Update to 0.35
3710
3711 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3712
3713         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3714         so distcheck doesn't fail
3715
3716         * glib/examples/Makefile.am: Add example-service.xml and 
3717         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3718
3719         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3720         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3721
3722         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3723         compiler looks in the right places during distcheck
3724
3725 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3726
3727         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3728         to fail
3729
3730 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3731
3732         * python/examples/example-service.py,
3733         python/examples/example-signal-emitter.py: Fixed up examples
3734         for API changes
3735
3736 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3737
3738         * python/__init__.py: Upped to version (0,42,0) because of
3739         the API change
3740
3741 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3742
3743         * ChangeLog: fix date in last entry
3744
3745         * configure.in, bus/system.conf.in: add the ability to configure 
3746         the system bus user at compiletime with the --with-dbus-user flag
3747         (patch from Kristof Vansant)
3748
3749 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3750
3751         * bus/dispatch.c, test/test-service.c: Add testcase
3752         for sending messages to oneself (TODO item).
3753
3754         * python/service.py (class Object): Swap ordering of bus_name 
3755         and object_path parameters to better support inheritance.
3756
3757         * doc/dbus-tutorial.xml: change Python docs to reflect change
3758         in parameter ordering and fix the inheritance section.
3759
3760         * doc/TODO: remove sending message to oneself TODO item
3761
3762 2005-07-15  Ross Burton  <ross@openedhand.com>
3763
3764         * glib/dbus-gproxy.c:
3765         Fix a leak when calling methods via the proxy.
3766
3767 2005-07-15  Colin Walters  <walters@verbum.org>
3768
3769         * bus/selinux.c (bus_selinux_append_context): Wrap in
3770         HAVE_SELINUX.
3771
3772 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3773
3774         * python/_dbus.py (Bus::remove_signal_receiver):
3775         don't add a callback to the match if none has been passed in
3776         
3777         * python/matchrules.py (SignalMatchTree::remove): if the rule
3778         being matched does not have a callback treat it as a wildcard
3779         fix matching logic
3780
3781         * doc/dbus-tutorial.xml: Add Python tutorial
3782
3783 2005-07-14  Colin Walters  <walters@verbum.org>
3784
3785         * bus/driver.c
3786         (bus_driver_handle_get_connection_unix_security_context): New function.
3787         (message_handlers): Add.
3788
3789         * bus/selinux.c (bus_selinux_append_context): New function; appends
3790         security context to message.
3791
3792         * bus/selinux.h: Prototype.
3793
3794         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3795
3796 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3797
3798         * bus/activation.c: clean up all tabs to be 8 spaces 
3799         (bus_activation_activate_service): make sure we clean up
3800         if activation fails
3801
3802         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3803         (check_shell_fail_service_auto_start): New function
3804         tests to make sure we get fail properly when trying to auto start a service
3805         with a faulty command line
3806         (check_shell_service_success_auto_start): New function tests to make sure
3807         auto started services get the arguments on the command line
3808
3809         * test/test-shell-service.c: Added service for testing auto-starting with 
3810         command line arguments
3811
3812         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3813         test/data/valid-service-files/debug-shell-echo-success.service.in:
3814         Added service files for testing auto-starting with command line arguments
3815
3816         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3817
3818 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3819
3820         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3821         
3822         * dbus/Makefile.am: added new files to build.
3823
3824         * bus/activation.c (bus_activation_activate_service): support
3825         activation commands with parameters.
3826
3827         * test/shell-test.c: added test program for the shell parsing
3828         code.
3829
3830 2005-07-13  David Zeuthen  <davidz@redhat.com>
3831
3832         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3833         64 bit signed and unsigned parameters
3834
3835 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3836
3837         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3838
3839         * python/service.py (class Name): renamed BusName to make it clearer
3840         what the object is for (a name on the bus)
3841
3842         * python/examples/example-service.py,
3843         python/examples/example-signal-emitter.py: change the Name object to
3844         BusName
3845
3846 2005-07-12  Colin Walters  <walters@verbum.org>
3847
3848         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3849
3850         * tools/dbus-launch.c: Include sys/select.h.
3851
3852 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3853         * python/dbus_bindings.pyx.in: removed
3854
3855         * python/dbus_bindings.pyx: Added.
3856         - Fixed some memleaks (patch from 
3857         Sean Meiners <sean.meiners@linspireinc.com>)
3858         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3859         own pxd file (Pyrex definition)
3860         - Broke out glib dependancies into its own pyx module
3861         
3862         * python/dbus_bindings.pdx: Added.
3863         - Defines C class Connection for exporting to other modules
3864
3865         * python/dbus_glib_bindings.pyx: Added.
3866         - New module to handle lowlevel dbus-glib mainloop integration
3867
3868         * python/glib.py: Added.
3869         - Registers the glib mainloop when you import this module
3870
3871         * python/services.py: Removed (renamed to service.py)
3872         
3873         * python/service.py: Added.
3874         - (class Server): renamed Name
3875
3876         * python/__init__.py: Bump ro version (0,41,0)
3877         -don't import the decorators or service module
3878         by default.  These now reside in the dbus.service namespace
3879
3880         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3881         setup function on creation 
3882
3883         * python/examples/example-service.py,
3884         python/examples/example-signal-emitter.py: update examples
3885
3886         * python/examples/gconf-proxy-service.py,
3887         python/examples/gconf-proxy-service2.py: TODO fix these up
3888
3889         * doc/TODO: Addition
3890         - Added a Python Bindings 1.0 section
3891         - added "Add match on args or match on details to match rules"
3892
3893
3894 2005-07-12  Colin Walters  <walters@verbum.org>
3895
3896         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3897         (statemachine-glue.h): 
3898         * glib/examples/Makefile.am (example-service-glue.h) 
3899         (example-signal-emitter-glue.h): 
3900         * glib/Makefile.am (dbus-glib-error-switch.h): 
3901         Add libtool --mode=execute so we use the built library instead
3902         of any installed one.
3903
3904 2005-07-11  Colin Walters  <walters@verbum.org>
3905
3906         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3907         (dbus_g_value_types_init): Remove assertion.
3908         (dbus_g_value_get_g_type, dbus_g_value_open)
3909         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3910         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3911         functions related to DBusGValue.  Now we marshal/demarshal
3912         structures as GValueArray.
3913         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3914         structures.
3915         (signature_iter_to_g_type_array): Don't call
3916         signature_iter_to_g_type_struct.
3917         (signature_iter_to_g_type_struct): Delete.
3918         (dbus_gvalue_to_signature): Delete.
3919         (dbus_gvalue_to_signature): New function with same name as other
3920         one; we can convert structures to signatures.
3921         (demarshal_valuearray): New function.
3922         (get_type_demarshaller): Use it.
3923         (demarshal_recurse): Delete.
3924         (marshal_proxy): New function.
3925         (marshal_map): Warn if we can't determine signature from type.
3926         (marshal_collection_ptrarray): Ditto.
3927         (marshal_collection_array): Ditto.
3928         (get_type_marshaller): Use marshal_valuearray.
3929         (marshal_recurse): Delete.
3930         (_dbus_gvalue_test): Add some tests.
3931
3932         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3933         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3934         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3935         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3936         (dbus_g_value_free): Remove prototypes.
3937
3938         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3939         G_TYPE_VALUE_ARRAY.
3940
3941         * glib/examples/example-service.c:
3942         * glib/examples/example-client.c: Implement GetTuple.
3943
3944         * test/glib/test-dbus-glib.c:
3945         * test/glib/test-service-glib.c:
3946         * test/glib/test-service-glib.xml: Add structure tests.
3947
3948 2005-07-10  Colin Walters  <walters@verbum.org>
3949
3950         * doc/TODO: Knock off some GLib items with this patch.
3951
3952         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3953         (_dbus_gvalue_signals_error): New functions.
3954
3955         * glib/dbus-gvalue-utils.h: Prototype them.
3956
3957         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3958         and change to not output const/retval flags for input args.  All
3959         callers updated.
3960         (invoke_object_method): Refactor to handle return values.  Add
3961         some more comments in various places.  Remove debug g_print.
3962
3963         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3964
3965         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3966         Handle G_TYPE_NONE.
3967         (compute_gsignature): New function; refactored from code from
3968         compute_marshaller and compute_marshaller_name.  Enhance to
3969         handle return values and async ops more cleanly.  Update for
3970         async ops returning NONE instead of BOOLEAN.
3971         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3972         and output appropriate string.
3973         (generate_glue): Handle return value annotation.  Also don't dump
3974         constness flag for input arguments.
3975
3976         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3977         files shared between installed library and utilities.
3978         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3979         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3980         binding tool can access gtype utility functions.
3981
3982         * test/glib/test-service-glib.c: 
3983         * test/glib/test-service-glib.xml: 
3984         * test/glib/test-dbus-glib.c: Add some tests for return values.
3985
3986 2005-07-09  Colin Walters  <walters@verbum.org>
3987
3988         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3989         argument if available, not method.
3990
3991         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3992         (invoke_object_method): First, remove some redundant
3993         GValues (object_value, error_value) in favor of working on
3994         array directly.  Second, rework constness to be less buggy.
3995         Now we iterate directly over the argument metadata instead
3996         of parallel iterating over output signature and metadata.
3997
3998         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3999
4000         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4001         annotation on input args.
4002         
4003 2005-07-09  Colin Walters  <walters@verbum.org>
4004
4005         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4006         Define.
4007
4008         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4009         annotation.
4010
4011         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4012         (method_dir_signature_from_object_info): Handle arg_iterate change.
4013         (write_interface): Ditto.
4014         (lookup_object_info): Don't barf if format_version is > 0.
4015         (invoke_object_method): Handle arg constness.
4016
4017         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4018         (arg_info_new): Create.
4019         (arg_info_unref): Destroy.
4020         (arg_info_get_annotations, arg_info_get_annotation) 
4021         (arg_info_add_annotation): New functions.
4022
4023         * glib/dbus-gidl.h: Prototype them.
4024
4025         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4026         args, disallow them in properties.
4027         (parse_annotation): Handle arg annotations.
4028
4029         * test/glib/test-service-glib.xml: 
4030         * test/glib/test-service-glib.c: Update to make some methods
4031         const.
4032
4033 2005-07-08  Colin Walters  <walters@verbum.org>
4034
4035         * test/glib/test-service-glib.xml: 
4036         * test/glib/test-service-glib.c:
4037         * test/glib/test-dbus-glib.c: Test a{sv}.
4038
4039         * glib/examples/statemachine/statemachine.c:
4040         * glib/examples/statemachine/statemachine-server.c:
4041         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4042         add progress bar, etc.
4043
4044         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4045         needed anymore due to generic array/map marshalling.
4046         (dbus_g_value_types_init): Don't register basic arrays or the
4047         string/string hash.
4048         (dbus_gtype_from_signature_iter): Don't try to recurse into
4049         variants.
4050         (dbus_gtype_to_signature): Check collection/map before type
4051         metadata.
4052         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4053         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4054         generic map creation/append functions instead of hash table
4055         specifically.
4056         (get_type_demarshaller): Handle maps.
4057         (demarshal_collection): Dispatch on collection type to either
4058         demarshal_collection_ptrarray or demarshal_collection_array.
4059         (get_type_marshaller): Handle maps.
4060         (marshal_collection): Dispatch collection type to either
4061         marshal_collection_ptrarray or marshal_collection_array.
4062         (_dbus_gvalue_test): New test.
4063
4064         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4065         (hash_free_from_gtype): Use it to free GValues.
4066         (hashtable_append): New function.
4067         (ptrarray_append): Fix prototype.
4068         (slist_append): Ditto.
4069         (_dbus_gvalue_utils_test): Extend tests.
4070
4071         * glib/dbus-gtype-specialized.c
4072         (dbus_g_type_specialized_init_append): Renamed from
4073         dbus_g_type_specialized_collection_init_append.  Remove const from
4074         value, since we steal it.
4075         (dbus_g_type_specialized_map_append): New function.
4076
4077         * glib/dbus-gtype-specialized.h: Update prototypes.
4078         Add DBusGTypeSpecializedMapAppendFunc.
4079
4080         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4081         _dbus_gvalue_test.
4082         
4083         * glib/dbus-gtest.h: Prototype it.
4084
4085 2005-07-08  Ross Burton  <ross@openedhand.com>
4086
4087         * dbus/dbus-glib.h:
4088         Add DBysGAsyncData for the async bindings.
4089
4090         * glib/dbus-binding-tool-glib.c:
4091         Re-enable the async bindings.
4092
4093         * test/glib/test-dbus-glib.c:
4094         Add a test for the generated async bindings.
4095
4096 2005-07-08  Colin Walters  <walters@verbum.org>
4097
4098         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4099         connection concept.
4100         
4101 2005-07-08  Colin Walters  <walters@verbum.org>
4102         
4103         * tools/Makefile.am: Kill of print-introspect in favor of using
4104         dbus-send --print-reply=literal.
4105
4106         * test/glib/test-service-glib.xml: 
4107         * test/glib/test-service-glib.c (my_object_get_objs): New test
4108         for "ao".
4109
4110         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4111         (main): Test GetObjs.
4112
4113         * glib/examples/statemachine/Makefile.am:
4114         * glib/examples/statemachine/sm-marshal.list:
4115         * glib/examples/statemachine/statemachine-client.c:
4116         * glib/examples/statemachine/statemachine-server.c:
4117         * glib/examples/statemachine/statemachine-server.xml:
4118         * glib/examples/statemachine/statemachine.c:
4119         * glib/examples/statemachine/statemachine.h:
4120         * glib/examples/statemachine/statemachine.xml:
4121
4122         New example.
4123
4124         * glib/examples/example-service.c (main): Move invocation
4125         of dbus_g_object_type_install_info earlier, to emphasize it
4126         should only be done once.
4127
4128         * glib/examples/example-signal-emitter.c (main): Ditto.
4129
4130         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4131
4132         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4133         (dbus_gvalue_marshal): Update prototypes.
4134
4135         * glib/dbus-gvalue.c: Update all marshalling functions to take
4136         const GValue instead of GValue.
4137         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4138         types.
4139         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4140         change.
4141         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4142         Return a newly-allocated string.
4143         (demarshal_proxy, demarshal_object_path, demarshal_object)
4144         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4145         we get the wrong types from message.
4146         (get_type_demarshaller): New function, extracted from
4147         dbus_gvalue_demarshal.
4148         (demarshal_collection): New function, demarshals generic
4149         collection.
4150         (dbus_gvalue_demarshal): Just invoke result of
4151         get_type_demarshaller.  Throw error if we don't have one.
4152         (marshal_garray_basic): Abort on OOM.
4153         (get_type_marshaller): New function, extracted from
4154         dbus_gvalue_marshal.
4155         (collection_marshal_iterator, marshal_collection): New functions;
4156         implements generic marshalling for an iteratable specialized
4157         collection.
4158         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4159
4160         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4161         G_TYPE_STRING.
4162         (ptrarray_value_from_gvalue): Ditto.
4163         (ptrarray_append, ptrarray_free): New functions.
4164         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4165         (slist_append, slist_end_append, slist_free): New functions.
4166         (dbus_g_type_specialized_builtins_init): Add append fuctions
4167         for GPtrArray and GSList.  Register GSList.
4168         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4169
4170         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4171         New.
4172         (dbus_g_type_specialized_collection_init_append)
4173         (dbus_g_type_specialized_collection_append)
4174         (dbus_g_type_specialized_collection_end_append): Prototype.
4175         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4176         end_append_func.
4177
4178         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4179         (dbus_g_type_specialized_collection_append) 
4180         (dbus_g_type_specialized_collection_end_append): New functions.
4181         (dbus_g_type_map_value_iterate): Take const GValue.
4182         (dbus_g_type_collection_value_iterate): Ditto.
4183
4184         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4185         _dbus_gvalue_utils_test.
4186         
4187         * glib/dbus-gtest.h: Prototype it.
4188
4189         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4190         using uninitialized owner_list.
4191         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4192         public API.
4193         (dbus_g_proxy_end_call_internal): Update to use error set
4194         from dbus_gvalue_demarshal instead of setting it here.
4195         (dbus_g_proxy_begin_call): Move return_if_fail here.
4196
4197         * glib/dbus-gobject.c (write_interface): Update for
4198         dbus_gtype_to_signature returning new string.
4199
4200         * configure.in: Add glib/examples/statemachine.
4201
4202 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4203
4204         * configure.in: Add a configure option, --with-console-auth-dir
4205         
4206         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4207         new setting.  Patch from Kay Sievers.
4208
4209 2005-07-06  Colin Walters  <walters@verbum.org>
4210
4211         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4212         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4213         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4214         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4215         Delete in favor of dbus_g_proxy_begin_call and
4216         dbus_g_proxy_cancel_call.
4217         (DBusGProxyCall, DBusGProxyCallNotify): New.
4218         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4219         data, and destroy function.  This replaces
4220         dbus_g_pending_call_set_notify.
4221         (dbus_g_proxy_cancel_call): Prototype.
4222         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4223
4224         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4225         pending_calls map.
4226         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4227         internal proxy for calls to the bus. Remove
4228         pending_nameowner_calls, now the internal proxy keeps track.
4229         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4230         pending_nameowner_calls.
4231         (got_name_owner_cb): Update prototype, and use
4232         dbus_g_proxy_end_call.
4233         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4234         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4235         favor of using internal proxy.
4236         (dbus_g_proxy_manager_unregister): Update to use
4237         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4238         (dbus_g_proxy_init): Initialize pending calls map.
4239         (dbus_g_proxy_constructor): New.
4240         (dbus_g_proxy_class_init): Add get/set property functions,
4241         constructor, and add NAME, PATH, and INTERFACE properties.
4242         (cancel_pending_call): New function.
4243         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4244         cancel them.
4245         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4246         (GPendingNotifyClosure): New structure.
4247         (d_pending_call_notify, d_pending_call_free): Moved here from
4248         dbus-glib.c.
4249         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4250         ordering.
4251         (manager_begin_bus_call): New internal function for talking to
4252         internal bus proxy.
4253         (dbus_g_proxy_new): Construct object using GObjet properties.
4254         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4255         Create closure of same, and insert call into map of pending calls.
4256         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4257         call.  Look up pending call in current set.  Remove it when we've
4258         completed.
4259         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4260         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4261         and destroy function directly.
4262         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4263         (dbus_g_proxy_call): Invoke with NULL callback.
4264         (dbus_g_proxy_cancel_call): New function, replaces
4265         dbus_g_pending_call_cancel.
4266
4267         * glib/dbus-gparser.c (validate_signature): Fix call to
4268         dbus_set_g_error.
4269
4270         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4271         New quark for attaching metadata to GType.
4272         (info_hash): Delete.
4273         (lookup_object_info): Look up using quark.
4274         (dbus_g_object_type_install_info): Check that a type is classed,
4275         not that it's an object.  Also just install type data using quark
4276         instead of using global hash.
4277
4278         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4279         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4280         (GPendingNotifyClosure): Delete.
4281         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4282         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4283
4284         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4285         client method generation until we can fix it...
4286         
4287         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4288         (load_from_service_thread_func): Ditto.
4289
4290         * tools/dbus-names-model.c (struct NamesModel): Hold
4291         DBusGProxyCall.
4292         (have_names_notify): Update prototype, use
4293         dbus_g_proxy_cancel_call.
4294         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4295
4296         * tools/dbus-monitor.c (filter_func): Update for print_message
4297         API change.
4298
4299         * test/glib/test-dbus-glib.c: Add more tests for async
4300         invocations.  Update many begin_call/end_call pairs to just use
4301         dbus_g_proxy_call.
4302
4303         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4304         allows us to dump print-introspect.c.
4305
4306         * tools/dbus-print-message.h (print_message): Add literal argument
4307         to print_message which is intended to allow printing arguments without
4308         metadata like "string=".
4309
4310         * tools/dbus-print-message.c (print_iter): Add literal argument.
4311         (print_message): Allow printing string messages literally.
4312
4313 2005-07-05  Colin Walters  <walters@verbum.org>
4314
4315         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4316         Remove value refcount leak, original patch from Jorn Baayen
4317         <jorn@openedhand.com>.  Also remove useless extra value in favor
4318         of prepending to value array directly.
4319
4320 2005-07-02  Colin Walters  <walters@verbum.org>
4321
4322         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4323
4324 2005-07-01  Colin Walters  <walters@verbum.org>
4325
4326         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4327         
4328         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4329         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4330         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4331         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4332
4333 2005-06-30  Colin Walters  <walters@verbum.org>
4334
4335         * test/glib/test-dbus-glib.c:
4336         * test/glib/test-service-glib.c:
4337         * test/glib/test-service-glib.xml: Update tests for new error
4338         setting bits, also add async tests (patch from Ross Burton).
4339
4340         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4341         DBUS_GLIB_THREADS_LIBS.
4342
4343         * glib/dbus-gproxy.c (get_name_owner)
4344         (dbus_g_pending_call_end_valist): Ditto.
4345
4346         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4347         domain (GQuark) to DBusGErrorInfo.  
4348         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4349         quark in error_metadata.  Take message interface as default
4350         error message interface.
4351         (gerror_to_dbus_error_message): Pass message interface.
4352         (dbus_set_g_error): Resurrected.
4353         (dbus_g_error_info_free): New function.
4354         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4355         of _peek to actually create the object class if it hasn't been
4356         created yet.
4357         (dbus_g_error_domain_register): New function.
4358
4359         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4360
4361         * glib/dbus-gparser.c (validate_signature): Ditto.
4362
4363         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4364         (dbus_g_error_domain_register): Prototype.
4365
4366         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4367         Update tests.
4368
4369 2005-06-29  Colin Walters  <walters@verbum.org>
4370
4371         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4372         DBUS_TYPE_G_OBJECT_PATH.
4373
4374         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4375         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4376         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4377         (dbus_g_object_path_get_g_type): New function.
4378         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4379         to DBUS_TYPE_G_OBJECT_PATH by default.
4380         (demarshal_proxy): Remove unused name variable.
4381         (demarshal_object_path, marshal_object_path): New functions.
4382         (demarshal_proxy_array, marshal_proxy_array): Delete.
4383         
4384         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4385         DBUS_TYPE_G_OBJECT_PATH to char *.
4386         (dbus_g_type_get_lookup_function): Map builtin
4387         DBUS_TYPE_G_OBJECT_PATH.
4388
4389         * test/glib/test-dbus-glib.c
4390         * test/glib/test-service-glib.c (my_object_objpath): 
4391         Adapt tests to new object path marshalling.
4392
4393 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4394
4395         * configure.in: force check for Python >= 2.4
4396
4397 2005-06-29  Colin Walters  <walters@verbum.org>
4398         
4399         Patch from Ross Burton <ross@openedhand.com>
4400         
4401         * glib/dbus-gobject.c (invoke_object_method): Unset object
4402         value in all cases, not only in async case.
4403
4404 2005-06-29  Colin Walters  <walters@verbum.org>
4405
4406         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4407         name_call for keeping track of any outgoing GetNameOwner call.
4408         Also add for_owner and associated.
4409         (struct _DBusGProxyManager): Add owner_names, which is hash table
4410         that maps a base name to a list of names it owns (that we're
4411         interested in).  Add pending_nameowner_calls which is a list of
4412         all outstanding GetNameOwner; avoids us having to iterate over
4413         every proxy.  Add unassociated_proxies which keeps track of name
4414         proxies with no associated name owner.
4415         (dbus_g_proxy_manager_unref): Destroy owner_names.
4416         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4417         name refcounts.
4418         (find_name_in_info, name_owner_foreach)
4419         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4420         (dbus_g_proxy_manager_monitor_name_owner)
4421         (dbus_g_proxy_manager_unmonitor_name_owner)
4422         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4423         New functions; they manipulate the owner_names mapping.
4424         (got_name_owner_cb): New function.
4425         (get_name_owner): New function, extracted from
4426         dbus_g_proxy_new_for_name_owner.
4427         (dbus_g_proxy_manager_register): For now we need to keep track of
4428         all NameOwnerChanged.  Also if the proxy is for a name, if we
4429         don't already know the name owner, queue a new GetNameOwner
4430         request and add it to our list of unassociated proxies.  Otherwise
4431         inc the refcount.
4432         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4433         cancel any pending GetNameOwner call, etc.
4434         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4435         the owner_names mapping to look up the current names for the
4436         signal source, and dispatch to any proxies for that name.
4437         (dbus_g_proxy_new): Initialize new members.
4438         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4439         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4440         (dbus_g_pending_call_end_valist): New function, extracted from
4441         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4442         but want to use the GLib infrastructure.  Also note how many
4443         arguments in reply were over.
4444         (dbus_g_pending_call_end): New function, just call
4445         dbus_g_pending_call_end_valist.
4446         (dbus_g_proxy_end_call_internal): Just call
4447         dbus_g_pending_call_end_valist.
4448
4449         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4450         of builtin marshaller for STRING_STRING_STRING.
4451
4452         * test/glib/test-dbus-glib.c: 
4453         * test/glib/test-service-glib.c:
4454         * test/glib/test-service-glib.xml:
4455         Extend tests to cover name proxies, destruction of owner proxies,
4456         etc.
4457         
4458         * glib/examples/example-signal-recipient.c
4459         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4460         
4461         * tools/dbus-send.c (main): Print D-BUS error name in addition
4462         to message.
4463
4464 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4465
4466         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4467         cmessage_function_handler): Patch from 
4468         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4469         by using the Py_GILState_Ensure/Release to synchronize with the
4470         python runtime.
4471         
4472 2005-06-28  Ray Strode  <rstrode@redhat.com>
4473
4474         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4475         babysitter helper process on last unref, bug #2813.
4476
4477 2005-06-27  Colin Walters  <walters@verbum.org>
4478
4479         * test/glib/test-dbus-glib.c: 
4480         * test/glib/test-service-glib.c:
4481         * test/glib/test-service-glib.xml:
4482         Test hash table signal emitting.
4483
4484         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4485         types to their fundamental basis types, since this is what
4486         marshallers operate on.  Also add an entry for VOID__BOXED.
4487         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4488
4489 2005-06-26  Havoc Pennington  <hp@redhat.com>
4490
4491         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4492         from Don Park
4493
4494 2005-06-26  Colin Walters  <walters@verbum.org>
4495
4496         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4497         (dbus_g_error_set): New public function from its ashes; used by
4498         both service-side method implementation and GLib bindings
4499         internals.
4500         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4501         (_dbus_glib_test): Add some tests.
4502
4503         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4504
4505         * test/glib/test-service-glib.c (my_object_throw_error): Use
4506         dbus_g_error_set.
4507
4508         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4509         errors thrown by dbus_g_error_set.
4510
4511         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4512
4513         * glib/dbus-gparser.c (validate_signature): Ditto.
4514
4515         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4516         (dbus_g_proxy_end_call_internal): Ditto.
4517
4518         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4519         converts DBUS_ERROR_x to DBUS_GERROR_x.
4520         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4521
4522         * doc/TODO: Remove error TODO.
4523
4524         * doc/dbus-tutorial.xml: Update with documentation about error
4525         handling.
4526
4527         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4528         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4529         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4530
4531 2005-06-22  Colin Walters  <walters@verbum.org>
4532         
4533         Patch from Ross Burton <ross@openedhand.com>
4534
4535         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4536
4537 2005-06-20  Colin Walters  <walters@verbum.org>
4538
4539         * configure.in: Add glib/examples.
4540
4541         * glib/Makefile.am: Add examples/
4542
4543         * glib/examples/.cvsignore
4544         * glib/examples/Makefile.am
4545         * glib/examples/example-client.c
4546         * glib/examples/example-service.c
4547         * glib/examples/example-service.xml
4548         * glib/examples/example-signal-emitter.c
4549         * glib/examples/example-signal-emitter.xml
4550         * glib/examples/example-signal-recipient.c:
4551         New files; GLib binding examples, ported from
4552         python/examples.
4553
4554 2005-06-20  Colin Walters  <walters@verbum.org>
4555
4556         * dbus/dbus-glib.h: 
4557         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4558         dbus_g_proxy_call.
4559
4560         * glib/dbus-binding-tool-glib.c: 
4561         * doc/dbus-tutorial.xml: 
4562         * test/glib/test-dbus-glib.c: Update for rename.
4563         
4564 2005-06-20  Colin Walters  <walters@verbum.org>
4565
4566         Patch suggested by Ross Burton <ross@openedhand.com>
4567
4568         * glib/dbus-gobject.c (export_signals): Free signal name.
4569         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4570         memory leak.  Add a bit of documentation.
4571         (dbus_g_method_return_error): Free context, and note we do
4572         so.
4573
4574 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4575
4576         * dbus/dbus-glib.h:
4577         * glib/dbus-gobject.c:
4578         * glib/dbus-gproxy.c:
4579         * glib/dbus-gvalue.c: Predeclare structs as 
4580         typedef struct _Something Something instead of 
4581         typedef struct Something Something, so we can 
4582         redeclare the prototypes. Other GNOME libraries 
4583         do this already.
4584
4585 2005-06-17  Colin Walters  <walters@verbum.org>
4586
4587         * tools/dbus-names-model.c (have_names_notify): Fix call
4588         to dbus_g_proxy_end_call.
4589         
4590 2005-06-17  Colin Walters  <walters@verbum.org>
4591
4592         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4593         spew warnings if we get malformed remote signals.
4594
4595         * glib/dbus-gobject.c (propsig_iterate): New function.
4596         (lookup_object_info): New function, extracted from
4597         lookup_object_and_method.
4598         (introspect_properties, introspect_signals): Delete; these
4599         are merged into write_interface.
4600         (write_interface): Write out signals and properties here;
4601         dump the org.gtk.object stuff and use the interface given
4602         in the introspection data blob.  Also fix up property XML.
4603         (lookup_values): New function.
4604         (introspect_interfaces): Gather a mapping from interface to a
4605         list of its methods, signals, and properties, then write out
4606         each interface.
4607         (lookup_object_and_method): Use lookup_object_info.
4608         (struct DBusGSignalClosure): Add interface.
4609         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4610         we can just use the constant data.
4611         (dbus_g_signal_closure_finalize): Don't free signal name.
4612         (signal_emitter_marshaller): Use interface from signal closure.
4613         (export_signals): Only export signals mentioned in introspection
4614         blob.
4615         (dbus_g_connection_register_g_object): Warn if we have no
4616         introspection data for an object.
4617         (funcsig_equal): Remove unused variable.
4618         (dbus_g_object_register_marshaller): Take varargs instead of
4619         list.
4620         (dbus_g_object_register_marshaller_array): New function,
4621         extracted from old dbus_g_object_register_marshaller.
4622
4623         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4624         signals and property data.
4625         (write_quoted_string): New function, extracted from generate_glue.
4626         (generate_glue): Write signals and properties to introspection
4627         blob.
4628
4629         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4630         exported_signals and exported_properties.
4631         (dbus_g_object_register_marshaller): Update prototype.
4632         (dbus_g_object_register_marshaller_array): Prototype.
4633         
4634         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4635
4636         * test/glib/test-service-glib.c: Add new test signals and method
4637         to emit them.
4638
4639         * test/glib/test-service-glib.xml: Add some test signals.
4640
4641         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4642         and my-object-marshal.h
4643         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4644         my-object-marshal.c.
4645         (my-object-marshal.c, my-object-marshal.h): Implement.
4646
4647         * test/glib/.cvsignore: Update.
4648
4649         * doc/TODO: Remove two GLib TODO items fixed by this
4650         patch.
4651
4652 2005-06-16  Colin Walters  <walters@verbum.org>
4653
4654         * doc/TODO: Update for GLib bindings.
4655         
4656 2005-06-16  Colin Walters  <walters@verbum.org>
4657
4658         * glib/dbus-binding-tool-glib.c:
4659         * glib/dbus-gobject.c:
4660         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4661         from Ross Burton, for his GLib bindings work.
4662
4663 2005-06-16  Colin Walters  <walters@verbum.org>
4664
4665         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4666         to iterate instead of walking to G_TYPE_INVALID.
4667
4668         Patch based on a patch from Ryan Gammon.
4669
4670 2005-06-16  Colin Walters  <walters@verbum.org>
4671
4672         * bus/bus.c (bus_context_new): Set parser to NULL
4673         after we unref it (Patch from Chris Boscolo, #2174).
4674         
4675 2005-06-16  Colin Walters  <walters@verbum.org>
4676
4677         * python/dbus_bindings.pyx.in: Import size_t,
4678         __int64_t, __uint64_t, and __signed.
4679
4680         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4681         Define cmsg struct, output it.
4682         (_dbus_read_credentials_unix_socket):
4683         Use cmsg struct.
4684         
4685         Patch from Joe Markus Clarke for FreeBSD support.
4686         
4687 2005-06-16  Colin Walters  <walters@verbum.org>
4688
4689         * tools/dbus-send.c (append_array): Use strtok.
4690         (append_dict): New function.
4691         (type_from_name): New function, extracted from main.
4692         (main): Handle sending dicts.
4693
4694         * tools/dbus-print-message.c (print_iter): Print dict
4695         entries.
4696         
4697 2005-06-16  Colin Walters  <walters@verbum.org>
4698
4699         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4700         values as the empty string (#2948).
4701         
4702 2005-06-16  Colin Walters  <walters@verbum.org>
4703
4704         * dbus/Makefile.am:
4705         * mono/doc/Makefile.am:
4706         * test/glib/Makefile.am:
4707
4708         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4709
4710 2005-06-16  Colin Walters  <walters@verbum.org>
4711
4712         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4713         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4714
4715         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4716         Increment pointer after swapping fixed array.  Add assertion
4717         for array length.
4718                 
4719 2005-06-15  Colin Walters  <walters@verbum.org>
4720
4721         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4722         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4723         
4724 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4725
4726         * NEWS: Update to 0.34
4727
4728 2005-06-15  David Zeuthen  <davidz@redhat.com>
4729
4730         * configure.in (LT_CURRENT): Revert back to 1 as the library
4731         hasn't changed and we've certainly not committed to protocol
4732         stability yet.  All this does is to break ABI. See commit note
4733         from hp@redhat.com 2005-05-05 for details.
4734         
4735 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4736
4737         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4738         (_dbus_connection_run_builtin_filters): New method
4739         (dbus_connection_dispatch): Run the builtin filters which in turn
4740         runs the peer filter which handles Ping messages.
4741
4742         * doc/TODO: 
4743          - Ping isn't handled: This patch fixes it
4744          
4745          - Add a test case for the Ping message: added TODO item
4746
4747 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4748
4749         * dbus/dbus-message.c:
4750         (dbus_message_has_path): New method
4751         (dbus_message_has_interface): New method
4752         (dbus_message_has_member): New method
4753
4754         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4755         New method
4756
4757         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4758         the keyring directory is private to the user
4759
4760         * doc/TODO:
4761          - The convenience functions in dbus-bus.h should perhaps have
4762          the signatures that they would have if they were autogenerated
4763          stubs. e.g. the acquire service function. We should also evaluate
4764          which of these functions to include, in light of the fact that
4765          GLib/Qt native stubs will probably also exist.: Punted
4766
4767          - add dbus_message_has_path(), maybe has_member/interface:
4768          fixed in this patch
4769
4770          - in dbus-keyring.c, enforce that the keyring dir is not
4771          world readable/writable: Fixed in this patch
4772
4773 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4774
4775         * dbus/dbus-marshal-validate.h: Added a new validation
4776         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4777         out of memory errors when validating signitures
4778
4779         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4780         in places where we previously used DBUS_VALID and a FALSE return 
4781         value to indicate OOM
4782         
4783         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4784         Use a stack to track the number of elements inside containers.  The 
4785         stack values are then used to validate that dict entries have only two
4786         elements within them.
4787         (validate_body_helper): check the reason for failure when validating
4788         varients
4789         
4790         * dbus/dbus-message.c (load_message): use 
4791         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4792         DBUS_VALID and a FALSE return value to indicate OOM
4793
4794         * doc/TODO: remove "- validate dict entry number of fields" as this
4795         patch fixes it
4796
4797 2005-06-14  David Zeuthen  <davidz@redhat.com>
4798
4799         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4800         watches (if applicable) and add new watches
4801
4802         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4803         (main): Setup SIGIO signal handler if using D_NOTIFY
4804
4805         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4806
4807         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4808         (merge_included): Also merge conf_dirs list
4809         (bus_config_parser_unref): Clear conf_dirs list
4810         (include_dir): Add directory to conf_dirs list
4811         (bus_config_parser_get_conf_dirs): New function
4812
4813         * bus/dir-watch.[ch]: New files
4814
4815         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4816
4817         * configure.in: Add checks for D_NOTIFY on Linux
4818
4819 2005-06-14  Colin Walters  <walters@verbum.org>
4820
4821         * glib/dbus-binding-tool-glib.c:
4822         * glib/dbus-gobject.c:
4823         * glib/dbus-gvalue.c: Fix indentation and brace style.
4824         
4825 2005-06-14  Ross Burton <ross@openedhand.com>.
4826
4827         * glib/dbus-glib.h: Make DBusGMethodInvocation
4828         a private structure.  Rearrange prototypes a bit.
4829         
4830         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4831         documentation for first_arg_type.
4832         
4833         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4834         here, add documentation.  Move dbus_g_method_return
4835         and dbus_g_method_return_error into public API
4836         section.
4837
4838 2005-06-14  Colin Walters  <walters@verbum.org>
4839
4840         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4841         Add missing return statements, noticed by Ross Burton.
4842         
4843 2005-06-13  Ross Burton <ross@openedhand.com>.
4844
4845         * glib/dbus-gobject.c: Handle errors on message
4846         demarshalling by sending error message back.
4847         * glib/dbus-gvalue.c: Initialize return variables.
4848
4849 2005-06-13  Colin Walters  <walters@verbum.org>
4850
4851         * glib/Makefile.am: Fix thinko in last patch.
4852
4853 2005-06-13  Colin Walters  <walters@verbum.org>
4854
4855         * glib/Makefile.am: Move dbus-gtype-specialized.c
4856         and dbus-gtype-specialized.h into a _HEADERS variable,
4857         install them.
4858
4859 2005-06-12  Colin Walters  <walters@verbum.org>
4860
4861         Async signals and various bugfixes and testing by
4862         Ross Burton <ross@openedhand.com>.
4863
4864         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4865         (dbus_gvalue_genmarshal_name_from_type)
4866         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4867         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4868         (dbus_g_value_types_init, dbus_gtype_from_signature)
4869         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4870         (dbus_gtypes_from_arg_signature): New function prototypes.
4871         (dbus_gvalue_demarshal): Take context and error arguments.
4872         (dbus_gvalue_demarshal_variant): New function.
4873         (dbus_gvalue_demarshal_message): New function.
4874         (dbus_gvalue_store): Delete.
4875
4876         * glib/dbus-gvalue.c:
4877
4878         File has been almost entirely rewritten; now we special-case
4879         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4880         hash tables correctly, etc.  Full support for recursive values
4881         is not yet complete.
4882
4883         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4884         argument of signal to G_TYPE_POINTER since we now pass a
4885         structure.
4886         (lookup_g_marshaller): Delete in favor of
4887         _dbus_gobject_lookup_marshaller.
4888         (marshal_dbus_message_to_g_marshaller): Use
4889         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4890         to handle remote signal callbacks.
4891         (dbus_g_proxy_new_from_proxy): New function; creates a new
4892         DBusGProxy by copying an existing one.
4893         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4894         (dbus_g_proxy_get_path): New functions.
4895         (dbus_g_proxy_marshal_args_to_message): New function;
4896         factored out of existing code.
4897         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4898         from a varargs array.
4899         (dbus_g_proxy_begin_call_internal): New function.
4900         (dbus_g_proxy_end_call_internal): New function.
4901         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4902         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4903         after collecting args into value array.
4904         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4905         invoke dbus_g_proxy_end_call_internal.
4906         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4907         end_call_internal.
4908         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4909         types.
4910         (array_free_all): New function.
4911         (dbus_g_proxy_add_signal): Take GTypes.
4912
4913         * glib/dbus-gobject.h:
4914         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4915         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4916         Prototype.
4917
4918         * glib/dbus-gobject.c: Add a global marshal_table hash which
4919         stores mappings from type signatures to marshallers.  Change lots
4920         of invocations of dbus_gtype_to_dbus_type to
4921         dbus_gtype_to_signature.
4922         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4923         (introspect_signals): Fix test for query.return_type.
4924         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4925         (invoke_object_method): Many changes.  Handle asynchronous
4926         invocations.  Convert arguments with
4927         dbus_gvalue_demarshal_message.  Handle errors.  Use
4928         DBusSignatureIter instead of strlen on args. Handle all arguments
4929         generically.  Special-case variants.
4930         (dbus_g_method_return, dbus_g_method_return_error): New function.
4931         (DBusGSignalClosure): New structure, closes over signal
4932         information.
4933         (dbus_g_signal_closure_new): New function.
4934         (dbus_g_signal_closure_finalize): New function.
4935         (signal_emitter_marshaller): New function; is special marshaller
4936         which emits signals on bus.
4937         (export_signals): New function; introspects object signals and
4938         connects to them.
4939         (dbus_g_object_type_install_info): Take GType instead of
4940         GObjectClass.
4941         (dbus_g_connection_register_g_object): Invoke export_signals.
4942         (dbus_g_connection_lookup_g_object): New function.
4943         (DBusGFuncSignature) New structure; used for mapping type
4944         signatures to marshallers.
4945         (funcsig_hash): New function; hashes DBusGFuncSignature.
4946         (funcsig_equal): New function; compares DBusGFuncSignature.
4947         (_dbus_gobject_lookup_marshaller): New function.
4948         (dbus_g_object_register_marshaller): New function; used to
4949         register a marshaller at runtime for a particular signature.
4950
4951         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4952
4953         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4954         which notes a server method implementation should be
4955         asynchronous.
4956
4957         * glib/dbus-binding-tool-glib.c
4958         (dbus_binding_tool_output_glib_server): Call
4959         dbus_g_value_types_init.
4960         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4961         variants specially.
4962         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4963         of a lookup function.
4964         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4965         (write_untyped_out_args): New method; write output arguments.
4966         (write_formal_declarations_for_direction): Function for
4967         writing prototypes.
4968         (write_formal_parameters_for_direction): Function for
4969         writing implementations.
4970         (write_typed_args_for_direction): Function for writing
4971         arguments prefixed with GTypes.
4972         (write_async_method_client): Write out async version
4973         of method.
4974
4975         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4976         (dbus_g_type_get_marshal_name): Move mapping from GType
4977         to marshal name into here.
4978         (dbus_g_type_get_c_name): Move into here.
4979         (compute_marshaller): Convert signature to type with
4980         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4981         (compute_marshaller_name): Ditto.
4982         (compute_marshaller): Handle async signal annotations.
4983         (gather_marshallers): Return if we don't have a known
4984         prefix.
4985         (generate_glue): Collect introspection blob here, and
4986         write all of the blob at the end.  This allows an object
4987         with multiple interfaces to work.
4988         Mark async methods in introspection blob.
4989
4990         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4991         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4992         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4993
4994         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4995         avoids people accidentally using DBUS_TYPE_* which should
4996         not be necessary anymore.
4997         Do include dbus-gtype-specialized.h, which are utilities
4998         for GLib container types.
4999         Add various #defines for types such as
5000         DBUS_TYPE_G_BOOLEAN_ARRAY.
5001         (DBusGValueIterator, DBusGValue): Define, not fully used
5002         yet.
5003         (dbus_g_value_get_g_type): Type for recursive value.
5004         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5005         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5006         (dbus_g_value_free): Prototypes.
5007         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5008         (dbus_g_proxy_set_interface): Prototype.
5009         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5010         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5011         types.
5012         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5013         Accessors.
5014         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5015         doing async invocations.
5016         (dbus_g_method_return, dbus_g_method_return_error):
5017         Prototypes.
5018         * doc/dbus-tutorial.xml: Update GLib section.
5019         
5020         * tools/dbus-viewer.c (load_child_nodes): Update
5021         for new invocation type of dbus_g_proxy_end_call.
5022         (load_from_service_thread_func): Ditto.
5023
5024         * tools/print-introspect.c (main): Ditto.
5025
5026         * tools/dbus-names-model.c (have_names_notify)
5027         (names_model_reload, names_model_set_connection)
5028         Use GTypes.
5029
5030         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5031         needed since Python bindings use GLib bindings.
5032
5033         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5034         Add --prefix argument.
5035
5036         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5037         unneeded --ignore-unsupported arg.
5038         
5039         * test/glib/test-service-glib.c: 
5040         * test/glib/test-service-glib.xml:
5041         * test/glib/test-dbus-glib.c: Add many more tests.
5042
5043 2005-06-06  David Zeuthen  <davidz@redhat.com>
5044
5045         * doc/TODO: Add item about need to remove deprecated functions.
5046
5047         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5048
5049         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5050         to repair the ABI which was broken with the last commit.
5051
5052 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5053
5054         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5055         (dbus_connection_disconnect): renamed to dbus_connection_close 
5056         for API symmetry with dbus_connection_open
5057         (_dbus_connection_open_internal): 
5058         s/dbus_connection_disconnect/dbus_connection_close
5059
5060         * dbus/dbus-bus.c (dbus_bus_get):
5061         s/dbus_connection_disconnect/dbus_connection_close
5062
5063         * bus/connection.c (bus_connections_unref, 
5064         bus_connections_setup_connection, bus_connections_expire_incomplete):
5065         s/dbus_connection_disconnect/dbus_connection_close
5066
5067         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5068         kill_client_connection_unchecked, check_hello_connection):
5069         s/dbus_connection_disconnect/dbus_connection_close
5070
5071         * bus/bus.c (new_connection_callback):
5072         s/dbus_connection_disconnect/dbus_connection_close
5073
5074         * tools/dbus-send.c (main):
5075         s/dbus_connection_disconnect/dbus_connection_close
5076
5077         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5078         s/dbus_connection_disconnect/dbus_connection_close
5079         
5080         * test/test-service.c (path_message_func, filter_func):
5081         s/dbus_connection_disconnect/dbus_connection_close
5082         
5083         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5084         
5085 2005-05-25  Colin Walters  <walters@verbum.org>
5086
5087         * dbus/dbus-protocol.h: Move various bus service #defines such
5088           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5089           dbus/dbus-shared.h.
5090         * dbus/dbus-shared.h: Various defines moved here.
5091         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5092
5093 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5094
5095         * python/__init__.py: Python bindings deserve a minor version
5096         update.  Upped to (0, 40, 2)
5097
5098 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5099
5100         * python/decorators.py: add explicitly_pass_message decorator
5101         for passing in the dbus message as keyword for edge case signal
5102         handling
5103
5104         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5105         to conform with what dbus expects for match rules
5106         (SignalMatchRule.execute): add the dbus message as a keyword
5107         if the signal handler has requested it
5108
5109         * python/examples/example/signal-recipient.py: added some more
5110         examples on how to hook up to signals
5111
5112 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5113
5114         * python/decorators.py: import dbus_bindings
5115
5116         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5117         SignalMatchNode): new classes that implement wildcard signal
5118         callback matching using a tree lookup. Heavily modified from a
5119         patch sent by Celso Pinto (fd.o bug #3241)
5120
5121         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5122         use new match classes to handle signals.
5123
5124 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5125         
5126         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5127
5128 2005-05-18  Havoc Pennington  <hp@redhat.com>
5129
5130         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5131         gettext. Not really worth requiring yet perhaps, but any
5132         production quality 1.0 would require it so we should go ahead and
5133         get things set up. We do have a couple token calls to
5134         bindtextdomain in the code already.
5135
5136 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5137
5138         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5139         when using recursive g_main_loops
5140
5141         * python/_dbus.py (class Bus): add the ProxyObjectClass
5142         alias for ProxyObject to make it easier for the Twisted 
5143         networking framework to integrate dbus.
5144
5145         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5146         alias for ProxyMethod to make it easier for the Twisted 
5147         networking framework to integrate dbus. 
5148
5149 2005-05-11  Ross Burton  <ross@openedhand.com>
5150
5151         * glib/dbus-glib-tool.c: Add --prefix argument.
5152         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5153         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5154         Add prefix argument.
5155         (generate_glue): Pass prefix argument down.
5156         (dbus_binding_tool_output_glib_server): Pass prefix to
5157         glib-genmarshal.
5158         
5159 2005-05-11  Colin Walters  <walters@verbum.org>
5160
5161         * tools/dbus-send.c (append_array): New function.
5162         (append_arg): Broken out from main.
5163         (main): Add cheesy hack to send arrays and variants.
5164         (usage): Update.
5165         * tools/dbus-print-message.c (print_iter): Broken out
5166         from main.
5167
5168 2005-05-11  Colin Walters  <walters@verbum.org>
5169
5170         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5171         New function, returns signature string for signature iter.
5172         * dbus/dbus-signature.h: Prototype it.
5173         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5174         New function, returns signature string for message iter.
5175         (dbus_message_iter_get_array_len): New function, returns
5176         length of array.
5177         (dbus_message_iter_get_fixed_array): Fix assertion; this
5178         function should be used when the iter is pointing to the
5179         contents of an array
5180         * dbus/dbus-message.h: Prototypes.
5181         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5182         New function; returns length of an array.
5183         * dbus/dbus-marshal-recursive.h: Prototype it.
5184         
5185 2005-05-11  Colin Walters  <walters@verbum.org>
5186
5187         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5188         compilation error.
5189         
5190 2005-05-08  Havoc Pennington  <hp@redhat.com>
5191
5192         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5193         daemon's pid, not the parent's pid, to the file descriptor.
5194         Reported by Taj Morton.
5195
5196 2005-05-05  Havoc Pennington  <hp@redhat.com>
5197
5198         * configure.in (LT_*): add notes on how the libtool versioning
5199         works to save thinking. Increment soname to indicate protocol
5200         breakage (though really the library interface hasn't changed I
5201         guess)
5202
5203         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5204         verify the GUID received from server matches what we were
5205         expecting, if we had an expectation
5206
5207         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5208         (_dbus_auth_get_guid_from_server): new function
5209         (send_begin): parse the OK args
5210
5211         * doc/dbus-specification.xml: add GUID to the auth protocol
5212
5213 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5214
5215         * Fix my name in previous changelog ;)
5216
5217         * python/proxies.py (ProxyObject.__getattr__): add further patch
5218         from Anthony Baxter to throw an AttributeError when python 
5219         __special__ functions are called instead of marshling them over 
5220         the bus (Bug#1685 comment 3).
5221
5222 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5223
5224         * python/Makefile.am: changed to use pyexecdir for the binding
5225         shared libraries (Bug#2494)
5226
5227         * python/exceptions.py: bring exceptions over from the bindings
5228         so they can be used in applications (Bug#2036)
5229         Make all exceptions derive from DBusException
5230
5231         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5232         of classes so that print obj doesn't throw an exception (Bug #1685)
5233
5234 2005-05-03  Ross Burton  <ross@openedhand.com>
5235
5236         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5237         Return if we get an error during registration.  Set up a
5238         weak reference on object to unregister if object is destroyed.
5239         (unregister_gobject): New function.
5240         
5241 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5242
5243         * python/dbus_bindings.pyx.in: 
5244         - added new type classes for hinting to the marashaler what type 
5245         to send over the wire
5246         - added int16 and uint16 marshalers
5247         - Fixed a bug in the type constants that caused int32 to go out
5248         as uint16 over the wire
5249         * python/dbus.py: split up into different files and renamed _dbus.py
5250         * python/__init__.py, python/_util.py, python/decorators.py, 
5251         python/exceptions.py, python/proxies.py, python/services.py,
5252         python/types.py: new files split off from dbus.py
5253         * python/Makefile.am: Add new files, remove dbus.py and 
5254         install all python files to <python module dir>/dbus
5255         * python/examples/*: Added #!/usr/bin/env python to the top of
5256         every example.  Patch provided by Tatavarty Kalyan
5257
5258 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5259
5260         * NEWS: Update to 0.33
5261
5262 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5263
5264         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5265         method for doing async calls
5266         (_pending_call_notification): New C function for handling pendning call
5267         callbacks
5268         (set_notify): New method for setting pending call notification
5269         
5270         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5271         Async capabilities added to remote method calls
5272         (Sender): class removed
5273         (RemoteService): class removed
5274         (ObjectTree): class removed for now
5275         (RemoteObject): Renamed to ProxyObject
5276         (RemoteMethod): Renamed to ProxyMethod
5277         (method): Decorator added for decorating python methods as dbus methods
5278         (signal): Decorator added for decorating python methods as signal emitters
5279         (ObjectType): Metaclass added for generating introspection data and the
5280         method callback vtable
5281         (Interface): Wrapper class added to wrap objects in a dbus interface
5282         (Object): Uses ObjectType as its metaclass and exports Introspect
5283         of the org.freedesktop.DBus.Introspectable interface
5284         (ValidationException, UnknownMethodException): new exceptions
5285
5286         * python/examples/*: Modified to fit with the new bindings
5287
5288 2005-04-23  Havoc Pennington  <hp@redhat.com>
5289
5290         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5291         reported by Tony Houghton
5292
5293         * test/test-service.c (main): test
5294         dbus_connection_get_object_path_data()
5295
5296         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5297         the exact_match
5298         (_dbus_object_tree_get_user_data_unlocked): new function used by
5299         dbus_connection_get_object_path_data()
5300         (do_register): add assertion test for get_user_data_unlocked
5301         (object_tree_test_iteration): more tests
5302
5303         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5304         new function from Dan Reed to let you get the user data from 
5305         dbus_connection_register_object_path()
5306
5307 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5308
5309         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5310         in numerous places that did not account for the NULL terminator
5311         (signature_from_seed): changed the manual string copy loop to 
5312         just use strcpy instead
5313         make check should now pass
5314
5315 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5316
5317         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5318         so that it allows messages that are not signals to pass in 
5319         NULL as the interface.
5320
5321 2005-04-18  David Zeuthen  <davidz@redhat.com>
5322
5323         * glib/dbus-gmain.c (io_handler_destroy_source): 
5324         (timeout_handler_destroy_source, connection_setup_free): 
5325         Also unref the source to avoid memory leaks.
5326
5327 2005-04-13  David Zeuthen  <davidz@redhat.com>
5328
5329         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5330         more reasonable, yet still totally arbitrary, value :-). 
5331
5332 2005-04-13  David Zeuthen  <davidz@redhat.com>
5333
5334         * doc/TODO: Added an "important for 1.0" item about selinux
5335         allow/deny messages
5336
5337 2005-04-13  David Zeuthen  <davidz@redhat.com>
5338
5339         * bus/selinux.c: Add c-file-style to top of file
5340         (log_audit_callback): Don't free the data here anymore
5341         (bus_selinux_check): Don't take spid and tpid since appending
5342         that to auxdata may OOM.
5343         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5344         to the caller if we are OOM by taking an error object.
5345         (bus_selinux_allows_send): -do-
5346
5347         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5348         and bus_selinux_allows_send
5349
5350         * bus/bus.c (bus_context_check_security_policy): Pass error and
5351         pass on OOM thrown by bus_selinux_allows_send()
5352
5353         * bus/services.c (bus_registry_acquire_service): Pass error and
5354         pass on OOM thrown by bus_selinux_allows_acquire_service()
5355
5356 2005-04-13  Havoc Pennington  <hp@redhat.com>
5357
5358         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5359         message at a time to avoid monopolizing the main loop, bug 
5360         #2953 from Benjamin Otte
5361
5362 2005-04-09  Havoc Pennington  <hp@redhat.com>
5363
5364         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5365         possible overlap, fix from Daniel Reed
5366         (fixup_alignment): fix signedness warnings
5367         (_dbus_string_append_unichar): ditto
5368
5369 2005-04-09  Havoc Pennington  <hp@redhat.com>
5370
5371         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5372
5373         * glib/dbus-glib-tool.c (main): fix warning
5374
5375         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5376
5377         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5378         add a new function that can be used in simple applications that
5379         don't have a main loop and are willing to block
5380
5381 2005-04-05  David Zeuthen  <davidz@redhat.com>
5382
5383         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5384
5385         * glib/dbus-gmain.c:
5386         (io_handler_destroy_source): Remove from list of IO handlers
5387         of the ConnectionSetup object
5388         (timeout_handler_destroy_source): -do- for timeout handlers
5389         (io_handler_source_finalized): Don't remove from list since
5390         we now do that in io_handler_destroy_source(). Renamed from
5391         io_handler_source_destroyed
5392         (timeout_handler_source_destroyed): -do- for timeout handlers
5393         (connection_setup_free): It is now safe to iterate over all
5394         IO and timeout handlers as the _destroy_source removes them
5395         from the list synchronously
5396
5397 2005-03-30  Havoc Pennington  <hp@redhat.com>
5398
5399         * configure.in: change check to gtk 2.4
5400
5401         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5402         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5403         to 2.4
5404
5405 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5406
5407         * News: Update 0.32
5408
5409         * HACKING: Fixed realease instructions.  configure.in should be updated to
5410           the next release by the person who made the last release.
5411
5412 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5413
5414         * python/lvalue_cast_post_process.py - removed.  Patch has been
5415           submitted to Pyrex maintainers that fixes gcc4.0 errors
5416
5417         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5418
5419 2005-03-24  Daniel Reed  <n@ml.org>
5420
5421         * tools/Makefile.am: Make print-introspect and
5422         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5423
5424 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5425
5426         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5427
5428         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5429           had in Red Hat packages for a while but for some reason never 
5430           got merged upstream
5431           (_dbus_is_a_number): New checks if a string
5432           can be converted to a number and does the conversion if it can
5433           (_dbus_user_database_lookup): Add check to see if the given username
5434           is a udi.  This allows udi's to be used instead of usernames in the
5435           config file.
5436           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5437           is a gdi.  This allows gdi's to be used instead of groupnames in the
5438           config file.
5439
5440 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5441
5442         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5443           code so that it compiles with gcc4.0
5444
5445         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5446           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5447           results back to dbus_binding.c
5448
5449 2005-03-20  Colin Walters  <walters@verbum.org>
5450
5451         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5452
5453         * configure.in: Require GTK+ 2.6.
5454         
5455 2005-03-20  Colin Walters  <walters@verbum.org>
5456
5457         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5458
5459 2005-03-17  Tom Parker  <palfrey@tevp.net>
5460
5461         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5462         print DBUS_UID_UNSET; instead print passed username.  Also
5463         be sure to actually use gid looked up in cache.
5464         
5465         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5466         for DBUS_GID_UNSET and groupname.
5467
5468 2005-03-17  Colin Walters  <walters@verbum.org>
5469
5470         * bus/print-introspect.c: Move to tools/.
5471         * bus/run-with-tmp-session-bus.sh: Ditto.
5472         
5473         * glib/Makefile.am (dbus-glib-bindings.h): Move
5474         generation to tools/Makefile.am.
5475
5476         * test/glib/run-test.sh: Update to handle move
5477         of run-with-tmp-session-bus.sh.
5478
5479         * test/glib/test-service-glib.c: Update to handle
5480         move of dbus-glib-bindings.h.
5481
5482         * tools/print-introspect.c: Moved here
5483         from bus/, and ported to GLib bindings.
5484
5485         * tools/run-with-tmp-session-bus.sh: Moved here
5486         from bus/.
5487
5488         * tools/Makefile.am: Generate dbus-glib-bindings.h
5489         and dbus-bus-introspect.xml here.
5490
5491         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5492         Update.
5493
5494 2005-03-17  Colin Walters  <walters@verbum.org>
5495
5496         * bus/driver.c (write_args_for_direction): Use
5497         _dbus_string_get_const_data to retrieve string;
5498         _dbus_string_get_const_data_len doesn't actually return
5499         a NULL-terminated substring.
5500
5501         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5502         (main): Change to use org_freedesktop_DBus_request_name
5503         instead of using g_proxy_begin_call/end_call.
5504
5505 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5506
5507         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5508         generating the finalizer.  Fixes from Ben Maurer.
5509
5510 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5511
5512         * mono/BusDriver.cs: Update method names: ListServices
5513         becomes ListNames; GetOwner becomes GetNameOwner.
5514
5515         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5516         onto the eval stack when removing the delegate.
5517
5518 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5519
5520         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5521         LT_CURRENT.  Set it to the autoconf variable.
5522                                                                                 
5523         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5524         classes that disconnects the signal handler delegate from the
5525         service object.  Fixes a big leak of proxy objects on the
5526         client side of things.  Patch from Ben Maurer
5527         <bmaurer@ximian.com>
5528
5529 2005-03-12  Colin Walters  <walters@verbum.org>
5530
5531         * bus/driver.c (write_args_for_direction): New function,
5532         parses a type signature into arguments and outputs to
5533         XML.
5534         (bus_driver_handle_introspect): Use it instead of
5535         hardcoding XML for certain signatures.
5536         
5537         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5538         dependency on dbus-daemon.
5539
5540         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5541         argument, pass it to dbus_binding_tool_output_glib_client.
5542
5543         * glib/dbus-binding-tool-glib.c
5544         (generate_client_glue): Protect against multiple inclusion.
5545         (dbus_binding_tool_output_glib_client): Add
5546         G_BEGIN_DECLS/G_END_DECLS.
5547
5548         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5549         Change to just take iface prefix directly.
5550         (write_formal_parameters): Clarify error message.
5551         (check_supported_parameters): New function; checks to see type
5552         signatures of method parameters are supported.
5553         (generate_client_glue): Handle ignore_unsupported flag.
5554         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5555         parameter.
5556
5557         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5558         --ignore-unsupported by default until glib bindings
5559         support arrays.
5560
5561 2005-03-11  Colin Walters  <walters@verbum.org>
5562
5563         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5564         install it.
5565
5566         * bus/print-introspect.c: New file; prints introspection
5567         data for a given name and object path.
5568
5569         * bus/run-with-tmp-session-bus.sh: New file, refactored
5570         from test/glib/run-test.sh.  Creates a temporary session
5571         bus and runs another program.
5572
5573         * test/glib/run-test.sh: Refactor to invoke
5574         run-with-tmp-session-bus.sh.
5575
5576         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5577         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5578         macros instead of hardcoding.
5579
5580         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5581
5582 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5583
5584         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5585         this unref; it doesn't match up evenly in some codepaths.
5586         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5587         this evenly matches with the ref near the top of this function.
5588
5589 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5590
5591         * dbus/dbus-object-tree.c
5592         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5593         and we try to unregister a path that's not registered, still go
5594         through the process of unlocking and don't just return.
5595
5596 2005-03-09  Colin Walters  <walters@verbum.org>
5597
5598         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5599         to this are generated for client-side wrappers.  Invokes a
5600         D-BUS method and returns reply values.  
5601
5602         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5603         function; writes signature string for argument direction.
5604         (write_args_for_direction): Change to pass input values directly
5605         instead of via address, and fix indentation.
5606         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5607         make generated wrappers inlineable.
5608
5609         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5610         note about using dbus_type_is_fixed.
5611
5612         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5613         dbus/dbus-signature.c as dbus_type_is_fixed.
5614
5615         All callers updated.
5616
5617         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5618         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5619
5620         * dbus/dbus-signature.h: Prototype.
5621
5622         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5623         error printf code.
5624
5625         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5626         appropriate instead of just freeing it.
5627         (main): Free returned strings using g_free.
5628
5629         * test/glib/Makefile.am (test-service-glib-glue.h)
5630         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5631
5632         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5633         simply maps a simple D-BUS type to GType.
5634         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5635         GType.
5636         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5637         initialize the value with it.
5638         (dbus_gvalue_binding_type_from_type): Unused, delete.
5639         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5640         various types instead of unmarshalling to value data directly.
5641         Remove can_convert boolean.
5642         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5643         returning directly instead of using can_convert boolean.
5644         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5645         Stores a GValue in a pointer to a value of its corresponding C
5646         type.
5647
5648         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5649         add dbus_gvalue_store.
5650
5651 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5652
5653         Fix a bunch of lifecycle and memory management problems
5654         in the mono bindings.
5655
5656         * mono/Arguments.cs (Arguments): Implement IDisposable
5657
5658         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5659         strictly a static class.
5660
5661         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5662         delegates into this file.
5663         (Connection): Implement IDisposable.
5664         (Dispose): Disconnect the connection and set the raw connection
5665         pointer to IntPtr.Zero.
5666         (~Connection): Call Dispose().
5667         (RegisterObjectPath): Added.  Manages the registration of object
5668         paths so we can cleanly disconnect them at dispose/finalize time.
5669         (UnregisterObjectPath): Ditto.
5670         (set_RawConnection): Unregister all of the object paths when
5671         changing the underlying DBusConnection.  Add them back onto the
5672         new connection, if any.
5673
5674         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5675         more unmanaged resources anymore, so it's not necessary.  Move all
5676         the DBusObjectPathVTable stuff out of here.
5677         (Handler): Save references to our delegates so that they don't get
5678         finalized.  Call Connection.RegisterObjectPath() instead of
5679         dbus_connection_register_object_path() directly.
5680         (Message_Called): Dispose the message after we're finished with
5681         it.
5682
5683         * mono/Message.cs (Message): Implement IDisposable.
5684         (Dispose): Dispose the Arguments, and set the RawMessage to
5685         IntPtr.Zero.
5686         (SendWithReplyAndBlock): We own the ref to the reply that comes
5687         back from dbus_connection_send_with_reply_and_block() so add a
5688         comment about that and unref it after we've constructed a managed
5689         MethodReturn class around it.  Fixes a big, big leak.
5690
5691         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5692         method.
5693         (BuildSignalHandler): After we've sent the Signal message, dispose
5694         of it.
5695         (BuildMethod): Dispose of the method call and reply messages after
5696         we've sent the message and extracted the data we want from the
5697         reply.
5698
5699         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5700         anymore.
5701         (Service_FilterCalled): Dispose of the message after we're
5702         finished with it.
5703
5704 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5705
5706         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5707         After we attach our pending call to the connection, unref
5708         it.  Fixes a leak.
5709  
5710         * mono/Connection.cs (set_RawConnection): Disconnect our
5711         filter and match callbacks from the old connection and
5712         reconnect them to the new connection, if any.
5713
5714         * mono/DBusType/Array.cs: "Code" is a static member, so
5715         don't use "this" to refer to it.  Fix for stricter checking
5716         in Mono 1.1.4.
5717  
5718         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5719         object path that we pass into unmanaged code.
5720  
5721         * mono/DBusType/String.cs (Append): Don't leak the string
5722         that we pass into unmanged code.
5723
5724 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5725         * NEWS: Update for 0.31
5726
5727         * configure.in: Release 0.31
5728         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5729
5730         * qt/Makefile.am: fixed build
5731
5732         * dbus/Makefile.am: soname bump for libdbus
5733
5734         * glib/Makefile.am: soname bump for libdbus-glib
5735
5736 2005-03-05  Havoc Pennington  <hp@redhat.com>
5737
5738         * dbus/dbus-sysdeps.c:
5739         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5740         value
5741         (_dbus_generate_random_bytes_buffer): fix return value
5742
5743         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5744         checks actually work, from Tom Parker <fdo@tevp.net>
5745
5746 2005-03-01  Colin Walters  <walters@verbum.org>
5747
5748         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5749         functions copied from dbus-glib-tool.c.
5750         (main): Convert lots of error code to use them.
5751         Also add some testing for introspection bits.
5752
5753 2005-03-01  Colin Walters  <walters@verbum.org>
5754         
5755         * doc/TODO: Remove introspection signature TODO.
5756
5757 2005-02-27  Colin Walters  <walters@verbum.org>
5758
5759         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5760         Change return value to const char * instead of int so we can do
5761         full signatures.
5762         (struct PropertyInfo, struct ArgInfo): Store char *.
5763         (property_info_new, arg_info_new): Update parameters, strdup.
5764         (property_info_unref, arg_info_unref): Free.
5765
5766         * glib/dbus-gidl.h: Update prototypes.
5767
5768         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5769         (validate_signature): New function, just validates signature and
5770         sets GError.
5771         (parse_property, parse_arg): Invoke validate_signature.  Store
5772         signature instead of just type code.
5773
5774         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5775         function to return a primary type for a signature, dropping
5776         information about types in container types.
5777         (dbus_gvalue_genmarshal_name_from_type)
5778         (dbus_gvalue_binding_type_from_type)
5779         (dbus_gvalue_ctype_from_type): Update to take full signature
5780          instead of type code.
5781         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5782
5783         * glib/dbus-gvalue.h: Update prototypes for above.
5784
5785         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5786         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5787         (introspect_properties, introspect_signals, write_interface):
5788         Update to handle signatures, and remove usage of
5789         _dbus_gutils_type_to_string.
5790         (handle_introspect): Print out type codes instead of e.g. "string"
5791         in hardcoded introspection XML; also use x_AS_STRING constants
5792         instead of hardcoding in string.
5793
5794         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5795         to string.  Remove usage of _dbus_gutils_type_to_string.
5796
5797         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5798
5799         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5800         deletion.
5801         
5802         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5803         (compute_marshaller_name, generate_glue): Handle signature change
5804         to string.
5805         (write_formal_parameters, write_args_for_direction): Ditto, and
5806         remove FIXME.
5807
5808         * tools/dbus-tree-view.c (type_to_string): Delete.
5809         (info_set_func_text): Update to print full signatures.
5810
5811         * test/glib/test-service-glib.xml: Change types to new
5812         introspection format.
5813
5814 2005-02-26  Havoc Pennington  <hp@redhat.com>
5815
5816         * doc/TODO: remove the "guid" item
5817
5818         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5819         (with_bus_thread_func): use open_private
5820
5821         * dbus/dbus-connection.c (dbus_connection_open_private): new
5822         function that works like the old dbus_connection_open()
5823         (dbus_connection_open): now returns an existing connection if
5824         possible
5825
5826         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5827         through the GUID to the transport
5828
5829         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5830         GUID in hex-encoded form.
5831
5832         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5833         pass GUID argument in to the transport
5834
5835         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5836         guid argument
5837
5838         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5839
5840         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5841
5842 2005-02-25  Havoc Pennington  <hp@redhat.com>
5843
5844         * doc/dbus-specification.xml: document the GUID thing
5845
5846         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5847         globally unique ID for the server, and put a "guid=hexencoded"
5848         field in the address
5849
5850         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5851
5852         * dbus/dbus-message.c: ditto
5853
5854         * dbus/dbus-dataslot.c: ditto
5855
5856         * dbus/dbus-list.c: ditto
5857
5858         * dbus/dbus-internals.h: wait, just include
5859         dbus-threads-internal.h here
5860         
5861         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5862         use in main library
5863
5864         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5865
5866 2005-02-24  Colin Walters  <walters@verbum.org>
5867
5868         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5869
5870 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5871
5872         * glib/Makefile.am: added dbus-gobject.h to sources list
5873         so distcheck doesn't fail
5874         
5875 2005-02-24  Havoc Pennington  <hp@redhat.com>
5876
5877         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5878         you must disconnect before unref, since locking and other things
5879         are screwed up otherwise. Fix assorted other locking stuff.
5880
5881         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5882         fix compilation
5883
5884         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5885         into a private header and don't export from the library
5886
5887         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5888
5889 2005-02-24  Colin Walters  <walters@verbum.org>
5890         
5891         * dbus/dbus-signature.c: New file; implements various functions
5892         related to type signatures.  Includes an interator for parsing,
5893         validation functions.
5894         (dbus_type_is_basic): Moved here from
5895         dbus-marshal-basic.c:_dbus_type_is_basic.
5896         (dbus_type_is_container): Moved here from
5897         dbus-marshal-basic.c:_dbus_type_is_container.
5898
5899         All callers of _dbus_type_is_container and _dbus_type_is_basic
5900         updated, and include dbus-signature.h.
5901
5902         * dbus/dbus-signature.h: New file; prototypes for the above.
5903
5904         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5905         dbus-signature.h.
5906
5907         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5908         function factored out of _dbus_first_type_in_signature.
5909         (_dbus_first_type_in_signature_c_str): New function; returns first
5910         type code for a type signature character.
5911
5912         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5913         handle function moves.
5914
5915         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5916
5917         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5918         function; skips to next complete type in type signature.
5919         Implemented using previous skip_one_complete_type.  Now
5920         skip_one_complete_type just delegates to
5921         _dbus_type_signature_next.
5922
5923         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5924         to dbus-signature.c
5925         (_dbus_type_is_container): Ditto.
5926
5927         * doc/dbus-specification.xml: Update introspection sample to
5928         use real type signatures.
5929
5930         * dbus/dbus-test.h: Prototype signature test.
5931
5932         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5933         signature tests.
5934
5935         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5936
5937 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5938
5939         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5940         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5941
5942 2005-02-21  Colin Walters  <walters@verbum.org>
5943
5944         * dbus/dbus-test-main.c (main): Take optional specific test
5945         argument.
5946
5947         * dbus/dbus-test.c (run_test): New function, runs a test function
5948         with no data directory.
5949         (run_data_test): Like above, but takes data directory.
5950         (dbus_internal_do_not_use_run_tests): Take
5951         specific test argument.  Replace lots of cut n' paste code
5952         with run_test and run_data_test.
5953
5954         * dbus/dbus-test.h: Update prototype for
5955         dbus_internal_do_not_use_run_tests.
5956
5957 2005-02-20  Havoc Pennington  <hp@redhat.com>
5958
5959         Fix bugs reported by Daniel P. Berrange
5960         
5961         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5962         (protected_change_watch): new function
5963         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5964         (_dbus_server_add_watch): change to work like the
5965         dbus-connection.c equivalents; like those, probably kind of
5966         busted, but should at least mostly work for now
5967         (dbus_server_disconnect): drop the lock if we were already
5968         disconnected, patch from Daniel P. Berrange
5969
5970         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5971         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5972         same stuff
5973
5974         * doc/TODO: todo about unscrewing this mess
5975
5976 2005-02-19  Colin Walters  <walters@verbum.org>
5977
5978         * glib/dbus-binding-tool-glib.c
5979         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5980
5981         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5982         as errno.h and sys/stat.h.
5983         (lose): New function, prints error with
5984         newline and exits.
5985         (lose_gerror): Similar, but takes GError for message.
5986         (main): Add --output argument to specify output file to write to,
5987         instead of always printing to stdout.  In this mode, determine
5988         timestamps on source files to see whether any are newer than the
5989         target file.  If not, exit.  Also convert a number of error
5990         messages to use lose (since it's shorter), and switch to using
5991         g_io_channel_shutdown.
5992
5993 2005-02-19  Havoc Pennington  <hp@redhat.com>
5994
5995         * glib/dbus-gobject.c
5996         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5997
5998         * glib/dbus-glib.c: fix doxygen warnings
5999
6000         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6001         is found on an <arg>
6002
6003 2005-02-17  Colin Walters  <walters@verbum.org>
6004
6005         * glib/dbus-gobject.h: Don't export
6006         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6007         
6008         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6009         (invoke_object_method): Handle it.
6010
6011         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6012         Handle rename.
6013         
6014 2005-02-17  Colin Walters  <walters@verbum.org>
6015
6016         * bus/.cvsignore, doc/.cvsignore
6017         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6018         Update.
6019
6020 2005-02-17  Colin Walters  <walters@verbum.org>
6021         
6022         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6023         Rename to DBUS_SERVICE_DBUS.
6024         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6025         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6026         Change the value from "org.freedesktop.Local"
6027         to "org.freedesktop.DBus.Local".
6028         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6029         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6030         DBUS_INTERFACE_INTROSPECTABLE.
6031         Change the value from "org.freedesktop.Introspectable"
6032         to "org.freedesktop.DBus.Introspectable".
6033         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6034         DBUS_INTERFACE_PROPERTIES.
6035         Change the value from "org.freedesktop.Properties"
6036         to "org.freedesktop.DBus.Properties".
6037         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6038         DBUS_INTERFACE_PEER.
6039         Change the value from "org.freedesktop.Peer"
6040         to "org.freedesktop.DBus.Peer".
6041         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6042         DBUS_INTERFACE_LOCAL.
6043         Change the value from "org.freedesktop.Local"
6044         to "org.freedesktop.DBus.Local".
6045
6046         All other users of those constants have been changed.
6047
6048         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6049
6050         * glib/dbus-gobject.c (handle_introspect): Use constants.
6051
6052         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6053
6054 2005-02-17  Colin Walters  <walters@verbum.org>
6055
6056         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6057         (parse_node, parse_interface, parse_method, parse_signal)
6058         (parse_property, parse_annotation): Lose if we're currently in an
6059         annotation.
6060         (parse_annotation): New function.
6061         (parser_start_element, parser_end_element): Handle annotation.
6062         (parse_method, parse_interface): Remove support for c_name attribute,
6063         switch to annotations.
6064
6065         * glib/dbus-gidl.h (interface_info_get_binding_names)
6066         (method_info_get_binding_names)
6067         (interface_info_get_binding_name, method_info_get_binding_name)
6068         (interface_info_set_binding_name, method_info_set_binding_name):
6069         Remove.
6070         (interface_info_get_annotations, method_info_get_annotations)
6071         (interface_info_get_annotation, method_info_get_annotation)
6072         (interface_info_add_annotation, method_info_add_annotation):
6073         Prototype.
6074
6075         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6076         for "bindings".
6077         (struct MethodInfo): Ditto.
6078         Straightfoward conversion of binding methods into annotation methods
6079         as prototyped.
6080
6081         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6082
6083         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6084
6085         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6086         Use new annotation API.
6087
6088         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6089         annotation element.
6090         
6091         * doc/dbus-specification.xml: Discuss introspection annotations,
6092         include list of well-known annotations.
6093
6094         * test/glib/test-service-glib.xml: Make validate against new DTD.
6095
6096 2005-02-17  Colin Walters  <walters@verbum.org>
6097
6098         This patch is based on initial work from
6099         Paul Kuliniewicz <kuliniew@purdue.edu>.
6100
6101         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6102         initialization of GValue from dbus type to here.
6103         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6104         for the "glib-genmarshal" program from a DBus type.
6105         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6106         into the C name for it we use in the glib bindings.
6107         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6108         glib C type (not GValue).
6109         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6110
6111         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6112         from dbus-gobject.c.
6113
6114         * glib/dbus-gutils.h: Prototype it.
6115
6116         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6117         (marshal_dbus_message_to_g_marshaller): Use new shared function
6118         dbus_glib_marshal_dbus_message_to_gvalue_array.
6119
6120         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6121         Will be changed once we have annotations.
6122
6123         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6124         GStaticRWLock.  Callers updated.
6125         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6126         (string_table_next): New function for iterating over zero-terminated
6127         string value array.
6128         (string_table_lookup): New function; retrieves specific entry in
6129         array.
6130         (get_method_data): New function; look up method data in object data chunk.
6131         (object_error_domain_prefix_from_object_info)
6132         (object_error_code_from_object_info): New functions, but not implemented yet.
6133         (method_interface_from_object_info): New function; retrieve interface name.
6134         (method_name_from_object_info): New function; retrieve method name.
6135         (method_arg_info_from_object_info): New function; retrieve argument data.
6136         (arg_iterate): New function; iterates over serialized argument data.
6137         (method_dir_signature_from_object_info): New function; returns a
6138         GString holding type signature for arguments for just one
6139         direction (input or output).
6140         (method_input_signature_from_object_info)
6141         (method_output_signature_from_object_info): New functions.
6142         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6143         converts dbus message arguments into a GValue array.  Used for both
6144         signal handling and method invocation.
6145         (struct DBusGlibWriteIterfaceData): New utility structure.
6146         (write_interface): New function; generate introspection XML for
6147         an interface.
6148         (introspect_interfaces): New function; gathers all interface->methods,
6149         generates introspection XML for them.
6150         (handle_introspect): Invoke introspect_interfaces.
6151         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6152         (lookup_object_and_method): New function; examines an incoming message
6153         and attempts to match it up (via interface, method name, and argument
6154         signature) with a known object and method.
6155         (gerror_domaincode_to_dbus_error_name): New function; converts a
6156         GError domain and code into a DBus error name.  Needs GError data
6157         added to object introspection to work well.
6158         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6159         GError.
6160         (invoke_object_method): New function to invoke an object method
6161         looked up via lookup_object_and_method.  Parses the incoming
6162         message, turns it into a GValue array, then invokes the marshaller
6163         specified in the DBusGMethodInfo.  Creates a new message with
6164         either return values or error message as appropriate.
6165         (gobject_message_function): Invoke lookup_object_and_method and
6166         invoke_object_method.
6167
6168         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6169         (enum DBusBindingOutputMode): New enum for binding output modes.
6170         (pretty_print): Print binding names.
6171         (dbus_binding_tool_error_quark): GError bits.
6172         (version): Fix typo.
6173         (main): Create GIOChannel for output.  Parse new --mode argument,
6174         possible values are "pretty-print", "glib-server", "glib-client".
6175         Use mode to invoke appropriate function.
6176         
6177         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6178
6179         * glib/dbus-glib-tool.h: New header, just includes GError bits
6180         for now.
6181
6182         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6183         maps binding style to name.
6184         (struct MethodInfo): Ditto.
6185         (get_hash_keys, get_hash_key): Utility function, returns keys for
6186         a GHashTable.
6187         (interface_info_new, method_info_new): Initialize bindings.
6188         (interface_info_unref, method_info_unref): Destroy bindings.
6189         (method_info_get_binding_names, method_info_get_binding_name)
6190         (interface_info_get_binding_names, interface_info_get_binding_name):
6191         Functions for retrieving binding names.
6192         (method_info_set_binding_name, interface_info_set_binding_name):
6193         Functions for setting binding names.
6194
6195         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6196         for glib binding generation.
6197
6198         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6199         and client-side glib glue generation.
6200
6201         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6202         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6203         dbus-glib-tool.h.
6204
6205         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6206         of using GClosureMarshal directly.
6207         (struct DBusGObjectInfo): Add n_infos member.
6208
6209         * test/glib/test-service-glib.xml: New file; contains introspection data
6210         for MyTestObject used in test-service-glib.c.
6211
6212         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6213         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6214         (my_object_uppercase, my_object_many_args): New test methods.
6215         (main): Use dbus_g_object_class_install_info to include generated object
6216         info.
6217
6218         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6219         as well as client-side bindings.
6220
6221         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6222         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6223         using both the dbus_gproxy stuff directly as well as the generated bindings.
6224
6225 2005-02-15  Havoc Pennington  <hp@redhat.com>
6226
6227         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6228         complete a pending call, don't run filters first.
6229
6230         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6231         dbus_pending_call_steal_reply
6232
6233         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6234         _dbus_connection_block_pending_call
6235         (dbus_pending_call_get_reply): change to steal_reply and return a
6236         ref
6237
6238         * dbus/dbus-connection.c
6239         (dbus_connection_send_with_reply_and_block): port to work in terms
6240         of DBusPendingCall
6241         (_dbus_connection_block_pending_call): replace block_for_reply
6242         with this
6243
6244 2005-02-14  Havoc Pennington  <hp@redhat.com>
6245
6246         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6247         properly handle looking up group information by name; fix 
6248         from j@bootlab.org
6249
6250 2005-02-13  Havoc Pennington  <hp@redhat.com>
6251
6252         * dbus/dbus-connection.c (dbus_connection_return_message) 
6253         (dbus_connection_borrow_message): hold dispatch lock while message
6254         is outstanding
6255         (_dbus_connection_block_for_reply): hold dispatch lock while we
6256         block for the reply, so nobody steals our reply
6257         (dbus_connection_pop_message): hold the dispatch lock while we
6258         pluck the message
6259
6260 2005-02-13  Havoc Pennington  <hp@redhat.com>
6261
6262         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6263         (_dbus_connection_release_dispatch)
6264         (_dbus_connection_acquire_io_path)
6265         (_dbus_connection_release_io_path): make the mutex and condvar
6266         control access to the "acquired" flag. Drop the connection lock
6267         while waiting on the condvar. Hopefully these are baby steps in
6268         roughly the right direction.
6269
6270 2005-02-13  Havoc Pennington  <hp@redhat.com>
6271
6272         * dbus/dbus-connection.c: use separate mutexes for the condition
6273         variables; this is some kind of baseline for sanity, but the
6274         condition variables still aren't used correctly afaict
6275
6276 2005-02-13  Havoc Pennington  <hp@redhat.com>
6277
6278         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6279         fix a double-unlock
6280
6281         * dbus/dbus-connection.c
6282         (_dbus_connection_detach_pending_call_unlocked): add this
6283
6284         Initial semi-correct pass through to fix thread locking; there are
6285         still some issues with the condition variable paths I'm pretty
6286         sure
6287         
6288         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6289         lock/unlock calls
6290
6291         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6292         rename to add _unlocked
6293         (struct DBusConnection): move "dispatch_acquired" and
6294         "io_path_acquired" to use only one bit each.
6295         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6296         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6297         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6298         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6299         (_dbus_connection_remove_timeout) 
6300         (_dbus_connection_toggle_timeout): drop lock when calling out to
6301         user functions; done in a hacky/bad way.
6302         (_dbus_connection_send_and_unlock): add a missing unlock
6303         (_dbus_connection_block_for_reply): add a missing unlock
6304
6305         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6306         drop lock in a hacky probably unsafe way to call out to user
6307         function
6308
6309 2005-02-12  Havoc Pennington  <hp@redhat.com>
6310
6311         * tools/dbus-tree-view.c (info_set_func_text): display more
6312         details on args
6313
6314         * bus/driver.c (bus_driver_handle_list_services): list the bus
6315         driver
6316
6317         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6318
6319         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6320         (method_info_get_n_args): new function
6321
6322 2005-02-12  Havoc Pennington  <hp@redhat.com>
6323
6324         * bus/driver.c (bus_driver_handle_introspect): add introspection
6325         for bus driver
6326
6327 2005-02-12  Havoc Pennington  <hp@redhat.com>
6328
6329         * bus/driver.c: put the signature of each bus driver method in the
6330         table of handlers and check it on incoming calls; this isn't
6331         really useful, but going to add introspect support in a minute.
6332
6333 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6334
6335         * mono/Connection.cs: The unpredictability of finalizers in mono
6336         prevents us from deterministically disconnecting the filters from
6337         the Service class's finalizer, so move tracking of filters and
6338         matches here.  Add API for that.
6339
6340         * mono/Service.cs: Remove the code, add code which calls the
6341         methods now on the Connection class.
6342
6343 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6344
6345         * python/dbus.py (class Sender): added to support dbus signals better
6346         (Bus::add_signal_receiver): added expand_args parameter which defaults
6347         to True.  When expand args is True the signal handler will pass the 
6348         message arguments as parameters to the signal handler.  If False
6349         revert to previous behavior where the signal handler must get the
6350         argument list from the message.  This is to help port applications
6351         like HAL that have a tendancy to send variable length argument lists.
6352         self._match_rule_to_receivers is now a dict of dicts.
6353         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6354         removing it from a list
6355         (Bus::_signal_func): change signal handlers so that interface,
6356         signal_name, service, path and message are packed into a Sender
6357         object and that is passed to the handler.  If expand_args is True
6358         extract the args list from the message and append it to the parameter
6359         list
6360         
6361         * python/dbus_bindings.pyx.in (class Signature): added to support 
6362         signiature types
6363         (MessageIter::__init__): changed iteration limit to match D-BUS
6364         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6365         STRUCT and VARIENT type support
6366         (MessageIter::python_value_to_dbus_sig): made recursive to support
6367         recursive types
6368         (MessageIter::append*): added Signature, dict, tuple 
6369         support
6370
6371         * python/examples/example-client.py: added examples of getting tuples
6372         and dicts
6373
6374         * python/examples/example-service.py: added examples of sending tuples
6375         and dicts
6376
6377         * python/examples/example-signal-recipient.py: Fixed to handle new
6378         signal callback format
6379
6380 2005-02-10  Havoc Pennington  <hp@redhat.com>
6381
6382         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6383         (call dbus_g_proxy_add_signal)
6384
6385         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6386         escape the hostname
6387         (_dbus_server_new_for_domain_socket): escape the path
6388
6389         * dbus/dbus-address.c (dbus_address_escape_value): new
6390         (dbus_address_unescape_value): new
6391         (dbus_parse_address): unescape values
6392
6393         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6394
6395         * doc/dbus-specification.xml: explain how to escape values in
6396         addresses
6397
6398 2005-02-10  Havoc Pennington  <hp@redhat.com>
6399
6400         * dbus/dbus-message-factory.c (generate_special): modify test to
6401         avoid using a non-basic dict key
6402
6403         * dbus/dbus-marshal-validate-util.c: add test for the below
6404
6405         * doc/dbus-specification.xml: require that dict keys are a basic
6406         type
6407
6408         * dbus/dbus-marshal-validate.c
6409         (_dbus_validate_signature_with_reason): require that dict key is a
6410         basic type
6411
6412 2005-02-10  Havoc Pennington  <hp@redhat.com>
6413
6414         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6415         change to be _and_unlock instead of _unlocked
6416
6417         * dbus/dbus-connection.c
6418         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6419         have no_update so we can find this bug quickly in future
6420
6421 2005-02-10  Havoc Pennington  <hp@redhat.com>
6422
6423         * dbus/dbus-message-util.c (verify_test_message): tests for string
6424         array
6425
6426         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6427         support for arrays of string/signature/path
6428
6429 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6430
6431         * dbus/dbus-connection.c
6432         (_dbus_connection_queue_received_message_link,
6433         _dbus_connection_message_sent): Add the path to
6434         the verbose output.
6435         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6436         _dbus_connection_send_preallocated_unlocked(), updated the
6437         dispatch status, and unlocks.  Fixes a bug where certain
6438         situations (like a broken pipe) could cause a Disconnect message
6439         to not be sent, tricking the bus into thinking a service was still
6440         there when the process had quit.
6441         (_dbus_connection_send_preallocated): Call
6442         _dbus_connection_send_preallocated_and_unlock().
6443         (_dbus_connection_send_and_unlock): Added.  Calls
6444         _dbus_connection_send_preallocated_and_unlock().
6445         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6446         (dbus_connection_send_with_reply): Update the dispatch status and
6447         unlock.
6448
6449         * mono/Service.cs (~Service): Added.  Removes the filter so that
6450         we don't get unmanaged code calling back into a GCed delegate.
6451         (RemoveFilter); Added.
6452
6453 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6454
6455         * dbus/dbus-message.c (dbus_message_iter_open_container):
6456         - Removed check for iterator type being an array because
6457         get_arg_type does not work with writer iterators
6458         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6459
6460 2005-02-07  Havoc Pennington  <hp@redhat.com>
6461
6462         * doc/dbus-specification.xml: some more language cleanups; add
6463         stuff about how to deal with invalid protocol and extension
6464         points; add _ to allowed chars in auth commands; add EXTENSION_
6465         auth command prefix
6466
6467 2005-02-06  Havoc Pennington  <hp@redhat.com>
6468
6469         * s/expected/required/ in a couple places for clarity
6470
6471 2005-02-07  Colin Walters  <walters@verbum.org>
6472
6473         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6474         sender or proposed_recipient.
6475
6476 2005-02-06  Havoc Pennington  <hp@redhat.com>
6477
6478         * dbus/dbus-message-factory.c (generate_special): more tests
6479
6480         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6481         array length that exceeds the maximum
6482
6483 2005-02-05  Havoc Pennington  <hp@redhat.com>
6484
6485         * dbus/dbus-message-factory.c (generate_special): more test cases,
6486         increasing coverage
6487
6488         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6489         reason why a signature was invalid
6490
6491         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6492         skip the length of the string before we look at it in validation
6493
6494         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6495         equal_substring
6496
6497         * dbus/dbus-message.c (_dbus_message_loader_new): default
6498         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6499
6500 2005-02-05  Havoc Pennington  <hp@redhat.com>
6501
6502         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6503         if the signature of a variant was empty
6504         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6505         struct with no element type)
6506
6507         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6508         mangled messages to break things
6509
6510 2005-02-04  Havoc Pennington  <hp@redhat.com>
6511
6512         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6513         g_quark_try_string() so it actually can return 0
6514         (dbus_g_proxy_connect_signal): ditto
6515
6516 2005-02-04  Havoc Pennington  <hp@redhat.com>
6517
6518         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6519         bogus warning
6520         (tristring_from_message): assert cleanly on null path/interface
6521         (should not be possible though I decided later)
6522         (dbus_g_proxy_dispose): move proxy manager unregistration here
6523         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6524         g_return_if_fail() checks
6525
6526 2005-02-04  Havoc Pennington  <hp@redhat.com>
6527
6528         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6529
6530         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6531         (with some minor changes)
6532
6533         * doc/dbus-specification.xml: add deprecated attribute to
6534         introspection format
6535
6536 2005-01-31  Havoc Pennington  <hp@redhat.com>
6537
6538         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6539         think it's sort of right
6540
6541 2005-01-30  Havoc Pennington  <hp@redhat.com>
6542
6543         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6544
6545 2005-01-30  Havoc Pennington  <hp@redhat.com>
6546
6547         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6548
6549         * autogen.sh: change to autotools 1.9
6550
6551         * glib/dbus-gproxy.c: completely change how signals work
6552         (dbus_g_proxy_add_signal): new function to specify signature of a
6553         signal
6554         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6555         and g_warning if the incoming message has the wrong signature.
6556
6557 2005-01-30  Havoc Pennington  <hp@redhat.com>
6558
6559         * tools/dbus-names-model.c (have_names_notify): fix this
6560
6561         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6562         up the string array handling a bit 
6563
6564 2005-01-30  Havoc Pennington  <hp@redhat.com>
6565
6566         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6567         (dbus_g_pending_call_cancel): new function
6568
6569         * dbus/dbus-glib.h: move GType decls for connection/message here;
6570         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6571         here, just kind of rationalizing how we handle all that
6572
6573         * tools/dbus-names-model.c: new file for a tree model listing the
6574         services on a bus
6575
6576         * tools/dbus-tree-view.c (model_new): use proper typing on the
6577         model rows
6578
6579 2005-01-30  Havoc Pennington  <hp@redhat.com>
6580
6581         * glib/dbus-gmain.c: add a custom GSource back that just checks
6582         whether the message queue has anything in it; otherwise, there are 
6583         cases where we won't see messages in the queue since there was no 
6584         IO visible to the glib main loop
6585
6586         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6587         increase default message timeout to 25 seconds
6588
6589 2005-01-30  Havoc Pennington  <hp@redhat.com>
6590
6591         * test/glib/test-profile.c (no_bus_stop_server): remove the
6592         warning about the g_warning that I just fixed
6593
6594         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6595         custom source, seems to be a lot easier to understand and work
6596         better.
6597
6598 2005-01-30  Havoc Pennington  <hp@redhat.com>
6599
6600         I think this main loop thing is conceptually broken, but here are 
6601         some band aids. I'll maybe rewrite it in a minute.
6602         
6603         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6604         custom GSource, so don't pass it in; confusing
6605         (gsource_server_finalize, gsource_connection_finalize): add
6606         finalize handlers that remove all the watches.  
6607
6608 2005-01-30  Havoc Pennington  <hp@redhat.com>
6609
6610         * glib/dbus-gobject.c (introspect_properties): fix the XML
6611         generated
6612
6613         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6614         which effectively detects the use of freed messages
6615
6616         * glib/dbus-gobject.c (handle_introspect): modify and return the
6617         reply message instead of the incoming message
6618
6619         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6620         gee, maybe it should SEND THE XML instead of just making a string
6621         and freeing it again ;-)
6622
6623         * tools/dbus-print-message.c (print_message): improve printing of
6624         messages
6625
6626         * configure.in: add debug-glib.service to the output
6627
6628 2005-01-30  Havoc Pennington  <hp@redhat.com>
6629
6630         dbus-viewer introspected and displayed the bus driver
6631         
6632         * dbus/dbus-object-tree.c 
6633         (object_tree_test_iteration): add tests for a handler registered on "/"
6634
6635         * dbus/dbus-object-tree.c
6636         (_dbus_decompose_path): fix to handle path "/" properly
6637         (run_decompose_tests): add tests for path decomposition
6638         
6639         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6640         properly
6641
6642         * glib/dbus-gobject.c (handle_introspect): fix quotes
6643
6644         * test/glib/run-test.sh: support launching the bus, then running
6645         dbus-viewer
6646
6647         * test/glib/test-service-glib.c (main): put in a trivial gobject
6648         subclass and register it on the connection
6649
6650         * bus/driver.c (bus_driver_handle_introspect): implement
6651         introspection of the bus driver service
6652
6653         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6654         identifiers, doctype decl
6655
6656         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6657         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6658         returning the service unchanged.
6659         (bus_driver_handle_message): remove old check for reply_serial in
6660         method calls, now the message type deals with that
6661         (bus_driver_handle_message): handle NULL interface
6662
6663         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6664
6665         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6666         -1 for len
6667
6668         * tools/dbus-viewer.c: add support for introspecting a service on
6669         a bus
6670
6671         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6672         (dbus_g_pending_call_unref): add
6673
6674 2005-01-29  Havoc Pennington  <hp@redhat.com>
6675
6676         * tools/dbus-tree-view.c: add support for displaying properties.
6677         (run dbus-viewer with an introspect xml file as arg, then resize
6678         the window so the tree elements show up, not sure what that is)
6679
6680         * glib/dbus-gobject.c (handle_introspect): return
6681         org.freedesktop.Properties and org.freedesktop.Introspectable
6682         interfaces when we are introspected.
6683
6684         * doc/dbus-specification.xml: allow empty interface name when 
6685         Get/Set a property
6686
6687 2005-01-29  Havoc Pennington  <hp@redhat.com>
6688
6689         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6690         though it uses glib, it could be extended for any binding in
6691         principle
6692
6693         * glib/dbus-gobject.c (gobject_message_function): change to the
6694         new way properties work
6695
6696         * dbus/dbus-protocol.h: add the new interfaces
6697
6698         * doc/dbus-specification.xml: document the introspection format,
6699         Introspectable interface, and add an org.freedesktop.Properties
6700         interface.
6701
6702         * glib/dbus-gparser.c: add support for a <property> element
6703
6704         * glib/dbus-gidl.c: add PropertyInfo
6705
6706         * glib/dbus-gobject.c (handle_introspect): put the outermost
6707         <node> outside the signal and property descriptions.
6708         (introspect_properties): export properties as <property> rather
6709         than as method calls
6710
6711 2005-01-28  Havoc Pennington  <hp@redhat.com>
6712
6713         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6714         related to authentication protocol
6715
6716 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6717
6718         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6719                 - BUS_ACTIVATION -> BUS_STARTER
6720                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6721                 - class MessageIter (__init__): Added recursion checking 
6722                 so we throw a nice error instead of just disconnecting from the
6723                 bus.
6724                 (get): Added arg_type parameter for recursion.
6725                 Removed the nil type
6726                 Added signiture type placeholder (not implemented)
6727                 Added struct type placeholder (not implemented)
6728                 Added varient type placeholder (not implemented)
6729                 Commented out dict type for now     
6730                 (get_element_type): renamed from get_array_type
6731                 (get_*): changed to use the dbus_message_iter_get_basic API
6732                 (get_*_array): removed in favor of recursive get_array method
6733                 (get_array): new recursive method which calls get to marshal
6734                 the elements of the array
6735                 (value_to_dbus_sig): New method returns the corrasponding
6736                 dbus signiture to a python value
6737                 (append): Comment out dict handling for now
6738                 Handle lists with the new recursive API
6739                 Comment out None handling for now
6740                 (append_nil): removed
6741                 (append_*): changed to use dbus_message_iter_append_basic API
6742                 (append_*_array): removed in favor of recursive append_array 
6743                 method
6744                 (__str__): Make it easier to print out recursive iterators
6745                 for debugging
6746                 - class Message (__str__): moved type inspection to the
6747                 MessageIter class' __str__ method
6748                 (get_iter): Added an append parameter wich defaults to False
6749                 If True use the new API's to create an append iterator
6750
6751         * python/dbus.py: Update to use new bindings API
6752                 - TYPE_ACTIVATION -> TYPE_STARTER
6753                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6754                 - class ActivationBus -> class StarterBus
6755                 - class RemoteObject (__call__): get an append iterator
6756                 - (_dispatch_dbus_method_call): get an append iterator
6757                 - class Object (emit_signal): get an append iterator
6758
6759         * python/examples/: Fixed up the examples to work with the new API
6760                 
6761 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6762
6763         * configure.in: Bump version up to 0.30.
6764
6765         * HACKING: Add a release item to bump the version number up after 
6766         a release.
6767
6768 2005-01-28  Havoc Pennington  <hp@redhat.com>
6769
6770         * doc/dbus-specification.xml: update to describe 16-bit types and
6771         dict entries
6772
6773         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6774         assertion
6775
6776         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6777         type
6778
6779         * dbus/dbus-marshal-recursive.c: implement
6780
6781 2005-01-27  Havoc Pennington  <hp@redhat.com>
6782
6783         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6784
6785         * configure.in: find the right type for 16 and 32 bit ints as well
6786         as 64
6787
6788         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6789         the 16-bit types so people don't have to stuff them in 32-bit or
6790         byte arrays.
6791
6792 2005-01-27  Havoc Pennington  <hp@redhat.com>
6793
6794         * dbus/dbus-message.c: byteswap the message if you init an
6795         iterator to read/write from it
6796         
6797         * dbus/dbus-marshal-byteswap.c: new file implementing 
6798         _dbus_marshal_byteswap()
6799
6800         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6801
6802 2005-01-26  Havoc Pennington  <hp@redhat.com>
6803         
6804         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6805         build, apparently - nobody noticed?)
6806         
6807 2005-01-26  Havoc Pennington  <hp@redhat.com>
6808
6809         * dbus/dbus-marshal-recursive.h: remove todo comment
6810
6811 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6812
6813         * Land the mono binding changes to conform to the new APIs.
6814
6815         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6816         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6817
6818         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6819         type code as a string.
6820         (InitAppending): Rename dbus_message_append_iter_init() to
6821         dbus_message_iter_init_append().
6822
6823         * mono/BusDriver.cs: Rename ServiceEventHandler to
6824         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6825         Rename ServiceOwnerChanged to NameOwnerChanged.
6826
6827         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6828         underlying C call.
6829
6830         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6831
6832         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6833         dbus_bus_acquire_service() to dbus_bus_request_name().
6834
6835         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6836         of Type.UnderlyingSystemType to get the correct element type for
6837         the array.
6838         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6839         dbus_message_get_{element|arg}_type() instead of
6840         dbus_message_iter_init_array_iterator().
6841         (Append): Replace dbus_message_iter_append_array() with
6842         dbus_message_iter_open_container() and
6843         dbus_message_iter_close_container().
6844
6845         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6846         types have been removed.
6847         
6848         * mono/DBusType/*.cs: Replace calls of
6849         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6850         but specify the type in the DllImport extern declaration.  Ditto
6851         for dbus_message_iter_append_[type]() ->
6852         dbus_message_iter_append_basic().
6853
6854         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6855         NameOwnerChangedHandler.
6856
6857 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6858
6859         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6860                 - get_base_service -> get_unique_name
6861                 - bus_get_base_service -> bus_get_unique_name
6862                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6863                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6864                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6865                 - bus_activate_service -> bus_start_service_by_name
6866                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6867                 - bus_acquire_service -> bus_request_name
6868                 - dbus_bus_acquire_service -> dbus_bus_request_name
6869                 - bus_service_exists -> bus_name_has_owner
6870                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6871
6872         * python/dbus.py: Rename of methods
6873                 - activate_service -> start_service_by_name
6874                 - bus_acquire_service -> bus_request_name
6875                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6876                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6877
6878         
6879 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6880
6881         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6882         signature for the method that can't be found.
6883
6884         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6885         the message has any arguments, we need to call
6886         _dbus_type_reader_get_current_type(), not
6887         _dbus_type_reader_has_next().
6888
6889 2005-01-24  Havoc Pennington  <hp@redhat.com>
6890
6891         * dbus/dbus-message-factory.c: more testing of message validation
6892
6893         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6894         header
6895
6896 2005-01-23  Havoc Pennington  <hp@redhat.com>
6897
6898         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6899         get this all working, not many tests in the framework yet though
6900
6901 2005-01-22  Havoc Pennington  <hp@redhat.com>
6902
6903         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6904         tutorial, based on work from David Wheeler.
6905
6906 2005-01-21  Havoc Pennington  <hp@redhat.com>
6907
6908         * dbus/dbus-bus.c: add more return_if_fail checks
6909
6910         * dbus/dbus-message.c (load_message): have the "no validation"
6911         mode (have to edit the code to toggle the mode for now though)
6912
6913         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6914         skips all validation; I want to use this at least for benchmark
6915         baseline, I'm not sure if it should be a publicly-available switch.
6916
6917 2005-01-21  Havoc Pennington  <hp@redhat.com>
6918
6919         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6920         toplevel doxygen group as the low-level API stuff
6921
6922         * dbus/dbus.h: note that libdbus is the low-level API
6923
6924 2005-01-20  Havoc Pennington  <hp@redhat.com>
6925
6926         * update-dbus-docs.sh: script to update docs on the web site, only
6927         works for me though. neener.
6928
6929 2005-01-20  Havoc Pennington  <hp@redhat.com>
6930
6931         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6932         code can reveal bugs in it
6933
6934 2005-01-20  Havoc Pennington  <hp@redhat.com>
6935
6936         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6937         select() version, patches from Tor Lillqvist
6938
6939 2005-01-20  Havoc Pennington  <hp@redhat.com>
6940
6941         * doc/dbus-tutorial.xml: replace > with &gt;
6942
6943         * bus/services.c (bus_registry_acquire_service): validate the name
6944         and return a better error if it's no good.
6945
6946         * doc/dbus-specification.xml: note NO_AUTO_START change
6947
6948         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6949         from AUTO_START, we're toggling the default
6950
6951         * bus/dispatch.c: adapt the tests to change of auto-start default
6952
6953 2005-01-18  Havoc Pennington  <hp@redhat.com>
6954
6955         * rename dbus-daemon-1 to dbus-daemon throughout
6956
6957 2005-01-18  Havoc Pennington  <hp@redhat.com>
6958
6959         * Throughout, grand renaming to strip out the use of "service",
6960         just say "name" instead (or "bus name" when ambiguous).  Did not
6961         change the internal code of the message bus itself, only the
6962         programmer-facing API and messages.
6963         
6964         * doc/dbus-specification.xml: further update the message bus section
6965         
6966         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6967         in error case
6968
6969 2005-01-17  Havoc Pennington  <hp@redhat.com>
6970
6971         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6972         ever
6973
6974         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6975         "invalid name character" not only non-ASCII
6976
6977         * doc/dbus-specification.xml: further update spec, message bus 
6978         parts are still out-of-date but the marshaling etc. stuff is now
6979         accurate-ish
6980
6981 2005-01-17  Havoc Pennington  <hp@redhat.com>
6982
6983         * doc/dbus-specification.xml: partially update spec
6984
6985 2005-01-17  Havoc Pennington  <hp@redhat.com>
6986
6987         * Throughout, align variant bodies according to the contained
6988         type, rather than always to 8. Should save a fair bit of space in
6989         message headers.
6990         
6991         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6992         fix handling of case where p == end
6993
6994         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6995
6996 2005-01-17  Havoc Pennington  <hp@redhat.com>
6997
6998         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6999
7000         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7001         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7002         are marshaling/unmarshaling a boolean.
7003
7004 2005-01-16  Havoc Pennington  <hp@redhat.com>
7005
7006         This is about it on what can be disabled/deleted from libdbus
7007         easily, back below 150K anyhow. Deeper cuts are more work than 
7008         just turning the code off as I've done here.
7009         
7010         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7011         signed int convenience funcs
7012
7013         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7014         verbose mode
7015
7016         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7017         things out of libdbus
7018
7019         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7020         
7021         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7022         tests-enabled-only, though it should probably be deleted)
7023
7024         * dbus/dbus-message-util.c: same stuff
7025
7026         * dbus/dbus-auth-util.c: same stuff
7027
7028 2005-01-16  Havoc Pennington  <hp@redhat.com>
7029
7030         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7031
7032         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7033         way for stripping down dbus-userdb.c stuff included in libdbus.
7034         Rename _dbus_parse_uid for consistency.
7035
7036 2005-01-16  Havoc Pennington  <hp@redhat.com>
7037
7038         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7039         name the assertion failed in
7040
7041         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7042         (_dbus_return_val_if_fail): assert that the name of the function
7043         containing the check doesn't start with '_', since we only want to 
7044         use checks on public functions
7045         
7046         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7047         checks to assertions
7048
7049         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7050         change checks to asserts for private function
7051
7052         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7053         to asserts for private function
7054
7055         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7056         broken assertion that was breaking make check
7057         (_dbus_type_reader_array_is_empty): remove this rather than fix
7058         it, was only used in assertions
7059
7060 2005-01-16  Havoc Pennington  <hp@redhat.com>
7061
7062         * test/unused-code-gc.py: hacky script to find code that's used
7063         only by the bus (not libdbus) or used only by tests or not used at
7064         all. It has some false alarms, but looks like we can clean up a
7065         lot of size from libdbus.
7066
7067         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7068         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7069         
7070 2005-01-16  Havoc Pennington  <hp@redhat.com>
7071
7072         * Add and fix docs according to Doxygen warnings throughout
7073         source.
7074         
7075         * dbus/dbus-marshal-recursive.c
7076         (_dbus_type_reader_array_is_empty): change this to just call
7077         array_reader_get_array_len() and make it static
7078
7079         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7080         from get_array_type
7081         (dbus_message_iter_init_append): rename from append_iter_init
7082
7083         * dbus/dbus-marshal-recursive.c
7084         (_dbus_type_reader_get_element_type): rename from
7085         _dbus_type_reader_get_array_type
7086
7087 2005-01-15  Havoc Pennington  <hp@redhat.com>
7088
7089         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7090
7091         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7092         when DBUS_DISABLE_ASSERT
7093         (_dbus_marshal_set_basic): be sure we align for the string length
7094
7095         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7096         this look faster
7097
7098         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7099         inline macro version
7100         (_dbus_string_set_byte): provide inline macro version
7101
7102 2005-01-15  Havoc Pennington  <hp@redhat.com>
7103
7104         * Land the new message args API and type system.
7105
7106         This patch is huge, but the public API change is not 
7107         really large. The set of D-BUS types has changed somewhat, 
7108         and the arg "getters" are more geared toward language bindings;
7109         they don't make a copy, etc.
7110
7111         There are also some known issues. See these emails for details
7112         on this huge patch:
7113         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7114         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7115         
7116         * dbus/dbus-marshal-*: all the new stuff
7117
7118         * dbus/dbus-message.c: basically rewritten
7119
7120         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7121         freed blocks to be all non-nul bytes so using freed memory is less
7122         likely to work right
7123
7124         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7125         DBUS_FAIL_MALLOC=N environment variable, so you can do
7126         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7127         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7128         thorough.
7129
7130         * qt/message.cpp: port to the new message args API
7131         (operator<<): use str.utf8() rather than str.unicode()
7132         (pretty sure this is right from the Qt docs?)
7133
7134         * glib/dbus-gvalue.c: port to the new message args API
7135
7136         * bus/dispatch.c, bus/driver.c: port to the new message args API
7137
7138         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7139         "locked" flag to TRUE and align_offset to 0; I guess we never
7140         looked at these anyhow, but seems cleaner.
7141
7142         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7143         move allocation padding macro to this header; use it to implement
7144         (_DBUS_STRING_STATIC): ability to declare a static string.
7145
7146         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7147         change to return TRUE if the interface is not set.
7148
7149         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7150         to dbus-marshal-validate.[hc]
7151
7152         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7153         dbus-internals.c
7154
7155         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7156         to dbus-marshal-*.[hc]
7157
7158         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7159         function here from dbus-marshal.c
7160
7161 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7162
7163         * NEWS: Update for 0.23.
7164
7165         * configure.in: Release 0.23.
7166
7167 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7168
7169         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7170         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7171         behind.
7172
7173         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7174         uninstall"
7175
7176         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7177         is an enum, get the enum's underlying type.  Another mono
7178         1.1.3 fix.
7179
7180 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7181
7182         Patch from Sjoerd Simons <sjoerd@luon.net>
7183
7184         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7185         DESTDIR.  It breaks stuff.
7186
7187 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7188
7189         Patch from Tambet Ingo <tambet@ximian.com>
7190
7191         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7192         calling type.GetElementType().  The code previously depended on
7193         broken Mono behavior, which was fixed in Mono 1.1.3.
7194
7195         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7196         Activator.CreateInstance() so that the class's constructor is
7197         called with the right parameters.
7198
7199 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7200
7201         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7202
7203         * dbus/dbus-connection.c
7204         (_dbus_connection_queue_received_message_link): Call
7205         _dbus_connection_remove_timeout() instead of the _locked()
7206         variant, since it's always called from
7207         _dbus_connection_handle_watch(), which handles the locking.
7208         Removed the _locked() variant since it's no longer used.
7209
7210 2005-01-03  Havoc Pennington  <hp@redhat.com>
7211
7212         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7213         return
7214         
7215 2004-12-26  Havoc Pennington  <hp@redhat.com>
7216
7217         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7218
7219 2005-01-03  Havoc Pennington  <hp@redhat.com>
7220
7221         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7222         floating point
7223
7224         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7225
7226 2005-01-02  Havoc Pennington  <hp@redhat.com>
7227
7228         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7229
7230 2005-01-01  Havoc Pennington  <hp@redhat.com>
7231
7232         * configure.in: add -Wfloat-equal
7233
7234 2005-01-01  Havoc Pennington  <hp@redhat.com>
7235
7236         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7237         for a variety of reasons '==' doesn't do this.
7238
7239 2004-12-31  Havoc Pennington  <hp@redhat.com>
7240
7241         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7242         I keep wishing I had
7243
7244 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7245
7246         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7247
7248 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7249
7250         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7251         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7252         dbus-protocol.h.  Because they are defines and not enums they are not
7253         autogenerated.
7254
7255 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7256
7257         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7258         dbus_bus_activate_service
7259
7260         * python/dbus.py (Bus.activate_service): activate a service on the
7261         bus.
7262
7263 2004-12-24  Havoc Pennington  <hp@redhat.com>
7264
7265         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7266         file format has also changed and I haven't adapted to that yet
7267         
7268         * Makefile.am: load .gcno files from latest gcc
7269
7270 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7271         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7272
7273         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7274         lowlevel binding
7275
7276         * python/dbus.py (get_unix_user): Added binding to 
7277         call dbus_bindings.bus_get_unix_user
7278
7279         * python/extract.py: Modified the proto_pat regex to
7280         handle unsigned long
7281
7282 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7283
7284         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7285         better POSIX compliance.
7286
7287 2004-12-19  Havoc Pennington  <hp@redhat.com>
7288
7289         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7290         (_dbus_string_insert_8_aligned): new functions
7291
7292         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7293
7294 2004-12-18  Havoc Pennington  <hp@redhat.com>
7295
7296         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7297         macro
7298
7299         * dbus/dbus-message.c: fix a comment, and add a still-unused
7300         not-implemented function
7301
7302         * dbus/dbus-marshal.h: fix comment
7303
7304         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7305
7306 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7307
7308         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7309         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7310         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7311         Type.UnderlyingSystemType to get the actual system type
7312         underneath.  This code previously depended on the broken Mono
7313         behavior, which was fixed in 1.1.3.
7314
7315 2004-11-27  Havoc Pennington  <hp@redhat.com>
7316
7317         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7318         are disabled
7319         (_dbus_string_get_const_data): inline when asserts are disabled
7320
7321         * dbus/dbus-message.c: record the _dbus_current_generation of
7322         creation so we can complain if dbus_shutdown() is used improperly.
7323         Do this only if checks are enabled.
7324
7325         * dbus/dbus-connection.c: ditto
7326         
7327 2004-11-26  Havoc Pennington  <hp@redhat.com>
7328
7329         * test/glib/test-profile.c: add with_bus mode to profile echoes
7330         that go through the bus.
7331
7332         * test/glib/run-test.sh: add ability to run test-profile
7333
7334         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7335         config file reload.
7336
7337 2004-11-26  Havoc Pennington  <hp@redhat.com>
7338
7339         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7340         thing was implemented
7341
7342 2004-11-26  Havoc Pennington  <hp@redhat.com>
7343
7344         * test/glib/test-profile.c: tweak a bit, add support for some
7345         made-up minimal malloc overhead with plain sockets, since in 
7346         real life some sort of buffers are unavoidable thus we could 
7347         count them in the theoretical best case
7348
7349 2004-11-26  Havoc Pennington  <hp@redhat.com>
7350
7351         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7352         where I was trying to cache one too many messages
7353
7354 2004-11-26  Havoc Pennington  <hp@redhat.com>
7355
7356         * dbus/dbus-message.c: reimplement message cache as an array which 
7357         makes the cache about twice as fast and saves maybe 1.5% overall
7358
7359 2004-11-26  Havoc Pennington  <hp@redhat.com>
7360
7361         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7362         message cache lock here
7363
7364 2004-11-26  Havoc Pennington  <hp@redhat.com>
7365
7366         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7367         the "char byte_order" next to each other to save 4 bytes
7368         (dbus_message_new_empty_header): reduce preallocation, since the
7369         message cache should achieve a similar effect
7370         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7371         message cache that keeps a few DBusMessage around in a pool,
7372         another 8% speedup or so.
7373
7374         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7375
7376 2004-11-25  Havoc Pennington  <hp@redhat.com>
7377
7378         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7379         to write, without reading or blocking, try it before the poll()
7380         and skip the poll() if nothing remains to write. This is about a
7381         3% speedup in the echo client/server
7382
7383 2004-11-25  Havoc Pennington  <hp@redhat.com>
7384
7385         The primary change here is to always write() once before adding
7386         the write watch, which gives us about a 10% performance increase.
7387         
7388         * dbus/dbus-transport-unix.c: a number of modifications to cope
7389         with removing messages_pending
7390         (check_write_watch): properly handle
7391         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7392         messages_pending stuff
7393         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7394         AUTHENTICATED cases
7395         (unix_handle_watch): after writing, see if the write watch can be
7396         removed
7397         (unix_do_iteration): assert that write_watch/read_watch are
7398         non-NULL rather than testing that they aren't, since they 
7399         aren't allowed to be NULL. check_write_watch() at the end so 
7400         we add the watch if we did not finish writing (e.g. got EAGAIN)
7401
7402         * dbus/dbus-transport-protected.h: remove messages_pending call,
7403         since it resulted in too much inefficient watch adding/removing; 
7404         instead we now require that the transport user does an iteration 
7405         after queueing outgoing messages, and after trying the first
7406         write() we add a write watch if we got EAGAIN or exceeded our 
7407         max bytes to write per iteration setting
7408
7409         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7410         function
7411
7412         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7413         freed and then accessed, valgrind flagged this bug, fix it
7414
7415         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7416         as the last valid field plus 1, where really it is equal to the
7417         last valid field. Corrects some message corruption issues.
7418
7419         * dbus/dbus-mainloop.c: verbosity changes
7420
7421         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7422         instead of aborting in one of the test codepaths
7423
7424         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7425         caused not printing the pid ever again if a verbose was missing
7426         the newline at the end
7427         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7428
7429         * dbus/dbus-connection.c: verbosity changes; 
7430         (dbus_connection_has_messages_to_send): new function
7431         (_dbus_connection_message_sent): no longer call transport->messages_pending
7432         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7433         try to write() immediately, so we can avoid the write watch. This
7434         is the core purpose of this patchset
7435         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7436         dump the outgoing message queue, so nobody will get confused
7437         trying to send them or thinking stuff is pending to be sent
7438
7439         * bus/test.c: verbosity changes
7440
7441         * bus/driver.c: verbosity/assertion changes
7442
7443         * bus/dispatch.c: a bunch of little tweaks to get it working again
7444         because this patchset changes when/where you need to block.
7445
7446 2004-11-23  Havoc Pennington  <hp@redhat.com>
7447
7448         * test/glib/test-profile.c: modify to accept a plain_sockets
7449         argument in which case it will bench plain sockets instead of
7450         libdbus, for comparison purposes.
7451
7452 2004-11-22  Havoc Pennington  <hp@redhat.com>
7453
7454         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7455         threads for more time, so sysprof can get a grip on it.
7456
7457         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7458         pointless variable
7459
7460 2004-11-13  Havoc Pennington  <hp@redhat.com>
7461
7462         * test/glib/test-profile.c: fix this thing up a bit
7463
7464         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7465         preallocation sizes by a fair bit; not sure if this will be an
7466         overall performance win or not, but it does reduce reallocs.
7467
7468         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7469         the test hack that forced constant realloc if asserts are
7470         disabled, so we can profile sanely. Sprinkle in some
7471         _DBUS_UNLIKELY() which are probably pointless, but before I
7472         noticed the real performance problem I put them in.
7473         (_dbus_string_validate_utf8): micro-optimize this thing a little
7474         bit, though callgrind says it didn't help; then special-case
7475         ascii, which did help a lot; then be sure we detect nul bytes as
7476         invalid, which is a bugfix.
7477         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7478         superstition; use memset to nul the padding instead of a manual
7479         loop.
7480         (_dbus_string_get_length): inline this as a
7481         macro; it showed up in the profile because it's used for loop
7482         tests and so forth
7483
7484 2004-11-10  Colin Walters  <walters@verbum.org>
7485
7486         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7487         for extra paranoia.
7488
7489 2004-11-09  Colin Walters  <walters@verbum.org>
7490
7491         * dbus/dbus-string.c (_dbus_string_get_length): New
7492         function, writes DBusString to C buffer.
7493
7494         * dbus/dbus-string.h: Prototype it.
7495
7496         * dbus/dbus-message.c (dbus_message_type_to_string): New
7497         function, converts message type into C string.
7498
7499         * dbus/dbus-message.h: Prototype it.
7500
7501         * bus/selinux.c (bus_selinux_check): Take source pid,
7502         target pid, and audit data.  Pass audit data to
7503         avc_has_perm.
7504         (log_audit_callback): New function, appends extra
7505         audit information.
7506         (bus_selinux_allows_acquire_service): Also take
7507         service name, add it to audit data.
7508         (bus_selinux_allows_send): Also take message
7509         type, interface, method member, error name,
7510         and destination, and add them to audit data.
7511         (log_cb): Initialize func_audit.
7512         
7513         * bus/selinux.h (bus_selinux_allows_acquire_service)
7514         (bus_selinux_allows_send): Update prototypes 
7515
7516         * bus/services.c (bus_registry_acquire_service): Pass
7517         service name to bus_selinux_allows_acquire_service.
7518
7519         * bus/bus.c (bus_context_check_security_policy): Pass
7520         additional audit data.  Move assignment of dest
7521         to its own line.
7522
7523 2004-11-07  Colin Walters  <walters@verbum.org>
7524
7525         * dbus/dbus-transport-unix.c (do_authentication): Always
7526         initialize auth_completed.
7527         
7528 2004-11-07  Colin Walters  <walters@verbum.org>
7529
7530         * bus/bus.c (load_config): Break into three
7531         separate functions: process_config_first_time_only,
7532         process_config_every_time, and process_config_postinit.
7533         (process_config_every_time): Move call of
7534         bus_registry_set_service_context_table into
7535         process_config_postinit.
7536         (process_config_postinit): New function, does
7537         any processing that needs to happen late
7538         in initialization (and also on reload).
7539         (bus_context_new): Instead of calling load_config,
7540         open config parser here and call process_config_first_time_only
7541         and process_config_every_time directly.  Later, after
7542         we have forked but before changing UID,
7543         invoke bus_selinux_full_init, and then call
7544         process_config_postinit.
7545         (bus_context_reload_config): As in bus_context_new,
7546         load parse file inside here, and call process_config_every_time
7547         and process_config_postinit.
7548
7549         * bus/services.h, bus/services.c
7550         (bus_registry_set_service_context_table): Rename
7551         from bus_registry_set_sid_table.  Take string hash from config
7552         parser, and convert them here into SIDs.
7553
7554         * bus/config-parser.c (struct BusConfigParser): Have
7555         config parser only store a mapping of service->context
7556         string.
7557         (merge_service_context_hash): New function.
7558         (merge_included): Merge context string hashes instead
7559         of using bus_selinux_id_table_union.
7560         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7561         simply create a new string hash.
7562         (bus_config_parser_unref): Unref it.
7563         (start_selinux_child): Simply insert strings into hash,
7564         don't call bus_selinux_id_table_copy_over.
7565
7566         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7567         (bus_selinux_id_table_copy_over): Delete.
7568
7569 2004-11-03  Colin Walters  <walters@verbum.org>
7570
7571         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7572         variables.
7573         
7574 2004-11-03  Colin Walters  <walters@verbum.org>
7575
7576         * bus/test-main.c (test_pre_hook): Fix test logic,
7577         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7578
7579 2004-11-02  Colin Walters  <walters@redhat.com>
7580
7581         * bus/selinux.c (bus_selinux_init): Split into two functions,
7582         bus_selinux_pre_init and bus_selinux_post_init.
7583         (bus_selinux_pre_init): Just determine whether SELinux is
7584         enabled.
7585         (bus_selinux_post_init): Do everything else.
7586
7587         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7588         config file, and bus_selinux_post_init after.  This ensures that
7589         we don't lose the policyreload notification thread that
7590         bus_selinux_init created before forking previously.
7591         
7592         * bus/test-main.c (test_pre_hook): Update for split.
7593
7594 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7595
7596         Patch from Johan Fischer <linux@fischaz.com>
7597         
7598         * mono/doc/Makefile.am (install-data-local): Added directory
7599         install for DESTDIR
7600
7601 2004-10-29  Colin Walters  <walters@redhat.com>
7602
7603         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7604         parameter for fd to write pid to.       
7605
7606         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7607         
7608         * bus/bus.c (bus_context_new): Pass print_pid_fd
7609         to _dbus_become_daemon (bug #1720)
7610
7611 2004-10-29  Colin Walters  <walters@redhat.com>
7612
7613         Patch from Ed Catmur <ed@catmur.co.uk>
7614
7615         * mono/doc/Makefile.am (install-data-local): Handle
7616         DESTDIR.
7617
7618 2004-10-29  Colin Walters  <walters@redhat.com>
7619
7620         * bus/.cvsignore, qt/.cvsignore: Update.
7621
7622 2004-10-29  Colin Walters  <walters@redhat.com>
7623
7624         Patch from Kristof Vansant <de_lupus@pandora.be>
7625
7626         * configure.in: Detect Slackware.
7627         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7628         * bus/rc.messagebus.in: New file.
7629
7630 2004-10-29  Colin Walters  <walters@redhat.com>
7631
7632         * tools/dbus-monitor.c (filter_func): Return
7633         DBUS_HANDLER_RESULT_HANDLED in filter function
7634         for now.  See:
7635         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7636
7637 2004-10-29  Colin Walters  <walters@redhat.com>
7638
7639         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7640
7641         * bus/services.c (bus_registry_acquire_service): 
7642         Correctly retrieve service name from DBusString
7643         for printing.
7644
7645 2004-10-29  Colin Walters  <walters@redhat.com>
7646
7647         * dbus/dbus-glib.h: Update documentation to not
7648         refer to internal APIs.
7649
7650 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7651
7652         * mono/Arguments.cs (GetDBusTypeConstructor):
7653         type.UnderlyingSystemType will return "System.Byte" if you do it
7654         on "byte[]", which is not what we want.  So check the type.IsArray
7655         property and use System.Array instead.
7656
7657 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7658
7659         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7660         the DBusUserInfo structure since this is passed into the function.
7661         This would cause a double free when the function that allocated
7662         the structure would try to free it when an error occured.
7663
7664         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7665         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7666         for service activation to avoid 32bit/64bit parallel install issues
7667
7668 2004-10-21  Colin Walters  <walters@verbum.org>
7669
7670         * AUTHORS: Fix my email address, the @gnu.org one
7671         has been bouncing for some time.  Also add J5.
7672         
7673 2004-10-21  Colin Walters  <walters@verbum.org>
7674
7675         * dbus/dbus-transport-unix.c (do_authentication): Return
7676         authentication status to callers.
7677         (unix_handle_watch): If we completed authentication this round,
7678         don't do another read.  Instead wait until the next iteration,
7679         after we've read any pending data in the auth buffer.
7680         (unix_do_iteration): Ditto.
7681         (unix_handle_watch): Updated for new do_authentication prototype.
7682
7683 2004-10-18  Colin Walters  <walters@verbum.org>
7684
7685         * bus/selinux.c (bus_selinux_enabled): Handle
7686         --disable-selinux case.
7687         
7688 2004-10-18  Colin Walters  <walters@verbum.org>
7689
7690         * bus/selinux.h: Add bus_selinux_enabled.
7691         
7692         * bus/selinux.c (bus_selinux_enabled): Implement it.
7693         
7694         * bus/config-parser.c (struct include): Add
7695         if_selinux_enabled member.
7696         (start_busconfig_child): Parse if_selinux_enabled
7697         attribute for include.
7698         (bus_config_parser_content): Handle it.
7699
7700         * bus/session.conf.in, bus/system.conf.in: Add
7701         inclusion of context mapping to default config files;
7702         conditional on SELinux being enabled.
7703         
7704         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7705         
7706         * test/data/invalid-config-files/badselinux-1.conf, 
7707         test/data/invalid-config-files/badselinux-2.conf:
7708         Test files for bad syntax.
7709         
7710 2004-10-17  Colin Walters  <walters@verbum.org>
7711
7712         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7713         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7714         format specifier mismatches.
7715
7716 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7717
7718         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7719         format string.
7720
7721         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7722         pointer (bug #1540, Leonardo Boiko).
7723
7724 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7725
7726         * mono/BusDriver.cs: Changed BusDriver struct to remove
7727         the ServiceCreated and ServiceDeleted events and replace them
7728         with the new ServiceOwnerChanged event.
7729
7730         * mono/example/BusListener.cs: Added a new example program,
7731         which listens for and reports any ServiceOwnerChanged events
7732         on the bus driver.
7733
7734         * mono/example/Makefile.am (DESTDIR): Build changes for the
7735         new BusListener.cs example.
7736
7737 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7738
7739         * bus/signals.c (bus_match_rule_parse): validate the components of
7740         match rules (bug #1439).
7741
7742         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7743
7744 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7745
7746         * doc/dbus-specification.xml: document ServiceOwnerChanged
7747         signal.
7748         
7749         * bus/driver.c, bus/driver.h, bus/services.c: Use
7750         ServiceOwnerChanged signal instead of ServiceCreated and
7751         ServiceDeleted.
7752         
7753         * bus/dispatch.c: update testcase for the new signal.
7754
7755 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7756
7757         Patch from Nat Friedman <nat@novell.com>
7758
7759         * mono/Makefile.am: A number of small build fixes to allow "make
7760         distcheck" to succeed.
7761
7762         * mono/example/Makefile.am: "make distcheck" fixes.
7763
7764         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7765         key in @srcdir@.
7766
7767         * test/Makefile.am: "make distcheck" fixes.
7768
7769 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7770
7771         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7772
7773         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7774
7775         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7776         messages after the first one (bug #1389).
7777         
7778         * bus/dispatch.c (check_double_hello_message): add a test case for
7779         the double hello message bug.
7780         (check_existent_service_activation): fix check of spawning error.
7781         
7782 2004-09-16  David Zeuthen  <david@fubar.dk>
7783
7784         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7785
7786 2004-09-12  David Zeuthen  <david@fubar.dk>
7787
7788         Patch from Kay Sievers <kay.sievers@vrfy.org>
7789
7790         * bus/bus.c (bus_context_new):
7791         * bus/bus.h:
7792         * bus/main.c (usage)
7793         (main):
7794         Add commandline option --nofork to override configuration file
7795         setting.
7796
7797 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7798
7799         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7800         compilers don't like it (bug #974).
7801
7802 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7803
7804         * qt/connection.*: Applied patch by Jérôme Lodewyck
7805         <lodewyck@clipper.ens.fr> to integrate an existing
7806         connection into the Qt eventloop
7807
7808 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7809
7810         * mono/BusDriver.cs: Added.  This is a class for interacting with
7811         the org.freedesktop.DBus service.
7812
7813         * mono/Message.cs: Added a mechanism to expose the message that is
7814         currently being dispatched via the static Message.Current
7815         property.  Added Message.Sender and Message.Destination
7816         properties.
7817
7818         * mono/Handler.cs: Expose the dispatched message via
7819         Message.Current when handling method calls.
7820
7821         * mono/Service.cs: Expose the dispatched message via
7822         Message.Current when handling signal emissions.
7823         
7824         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7825         Connection.BaseService property.
7826
7827 2004-08-28  Havoc Pennington  <hp@redhat.com>
7828
7829         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7830
7831         More fixes from Steve Grubb
7832         
7833         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7834         (_dbus_listen_tcp_socket): fix fd leak
7835
7836         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7837         EINTR to a bit lower in the code
7838
7839 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7840
7841         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7842         TRUE if we are inquiring about the existence of the built-in
7843         org.freedesktop.DBus service.
7844
7845 2004-08-25  John Palmieri  <johnp@redhat.com>
7846         * bus/config-parser.c:
7847         (struct PolicyType): Add POLICY_CONSOLE
7848         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7849         (start_busconfig_child): Sets up console element when
7850         <policy at_console=""> is encountered in a policy file
7851         (append_rule_from_element): Convert console elements to console
7852         rules.
7853
7854         * bus/policy.c: 
7855         (bus_policy_create_client_policy): Add console rules to the client
7856         policy based on if the client is at the console
7857         (bus_policy_append_console_rule): New function for adding a
7858         console rule to a policy
7859         (bus_policy_merge): Handle console rule merging
7860
7861         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7862         where we check for console user files
7863         
7864         * dbus/dbus-sysdeps.c:
7865         (_dbus_file_exists): New function which checks if the given
7866         file exists
7867         (_dbus_user_at_console): New function which does the system
7868         specific process of checking if the user is at the console
7869
7870         * dbus/dbus-userdb.c:
7871         (_dbus_is_console_user): New function converts a UID to user name
7872         and then calls the system specific _dbus_user_at_console to 
7873         see if the user is at the console and therefor a console user
7874
7875 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7876
7877         * bus/config-parser.c (set_limit):
7878         * bus/dbus-daemon-1.1.in:
7879         * test/data/valid-config-files/many-rules.conf: set the
7880         max_match_rules_per_connection limt from the config file. 
7881
7882         * doc/busconfig.dtd: update the DTD.
7883
7884         * bus/driver.c: remove some unused variables.
7885
7886 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7887
7888         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7889         it's been replaced by dbus_g_bus_get
7890
7891 2004-08-23  Colin Walters  <walters@redhat.com>
7892
7893         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7894
7895         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7896
7897         * bus/selinux.c: Create a thread for policy reload notification.
7898         (bus_selinux_get_policy_root): Implement.
7899
7900         * bus/config-parser.c (start_busconfig_child)
7901         (bus_config_parser_content): Support SELinux-root relative
7902         inclusion.
7903
7904         * configure.in <HAVE_SELINUX>: Add -lpthread.
7905         
7906         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7907         (test_post_hook): Move memory checking into here.
7908         (test_pre_hook, test_post_hook): Move SELinux checks in
7909         here, but conditional on a DBUS_TEST_SELINUX environment
7910         variable.  Unfortunately we can't run the SELinux checks
7911         as a normal user, since they won't have any permissions
7912         for /selinux.  So this will have to be tested manually
7913         for now, until we have virtualization for most of
7914         libselinux.
7915         
7916 2004-08-23  Havoc Pennington  <hp@redhat.com>
7917
7918         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7919         drop supplementary groups, suggested by Steve Grubb
7920
7921 2004-08-20  Colin Walters  <walters@redhat.com>
7922
7923         * bus/config-parser.c (start_busconfig_child): Remove some unused
7924         variables.
7925         
7926         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7927         warning.
7928
7929 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7930
7931         * configure.in: If --enable-mono is passed in, if we can't find
7932         mono error out.
7933
7934         * mono/Makefile.am: Use /gacutil to install assemblies into the
7935         GAC and not /root.
7936
7937 2004-08-12  Havoc Pennington  <hp@redhat.com>
7938
7939         * NEWS: update for 0.22
7940
7941         * configure.in: release 0.22
7942
7943 2004-08-11  Colin Walters  <walters@redhat.com>
7944
7945         * tools/dbus-send.c (main, usage): Add --reply-timeout
7946         argument.
7947
7948 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7949
7950         * bus/bus.c (process_config_first_time_only): get rid of an unused
7951         DBusError that was causing a memoy leak (bug #989).
7952
7953         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7954         fix compilation on Solaris/Forte C (bug #974)
7955
7956         * bus/main.c (main): plug two minuscule memleaks.
7957
7958 2004-08-10  Havoc Pennington  <hp@redhat.com>
7959
7960         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7961
7962 2004-08-09  Havoc Pennington  <hp@redhat.com>
7963
7964         * COPYING: switch to Academic Free License version 2.1 instead of
7965         2.0, to resolve complaints about patent termination clause.
7966
7967 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7968
7969         * README: added documentation for the --enable-python 
7970         configure switch.
7971
7972 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7973
7974         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7975         _unref in the SELinux support.
7976
7977         * doc/busconfig.dtd: update DTD for SELinux support.
7978
7979         * bus/config-loader-libxml.c: fix error handler and parser
7980         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7981
7982         * configure.in: remove the warning about libxml2.
7983
7984         * dbus/dbus-bus.c: silence doxygen warning.
7985
7986 2004-07-31  Colin Walters  <walters@redhat.com>
7987
7988         * configure.in: Move #error in SELinux check to its own line.
7989
7990 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7991
7992         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7993         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7994         dbus_error_set.
7995
7996         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7997         broken by the change in the _SET_OOM macros.
7998
7999 2004-07-31  Colin Walters  <walters@redhat.com>
8000
8001         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8002         BUS_SET_OOM.
8003
8004 2004-07-31  Colin Walters  <walters@redhat.com>
8005
8006         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8007         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8008         AC_MSG_CHECKING.
8009
8010 2004-07-24  Havoc Pennington  <hp@redhat.com>
8011
8012         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8013
8014         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8015         functionality
8016
8017         * configure.in: add --enable-selinux
8018         
8019         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8020
8021         * bus/main.c (main): initialize and shut down selinux
8022
8023         * bus/connection.c: store SELinux ID on each connection, to avoid 
8024         repeated getting of the string context and converting it into 
8025         an ID
8026
8027         * bus/bus.c (bus_context_get_policy): new accessor, though it
8028         isn't used
8029         (bus_context_check_security_policy): check whether the security
8030         context of sender connection can send to the security context of
8031         recipient connection
8032
8033         * bus/config-parser.c: add parsing for <selinux> and <associate>
8034         
8035         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8036         implement dbus_connection_get_unix_fd()
8037
8038         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8039         function, used by the selinux stuff
8040         
8041 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8042
8043         * bus/config-loader-libxml.c: complete the implementation of
8044         libxml backend for config file loader. Doesn't work with full OOM
8045         test yet. 
8046         
8047         * configure.in: change error when selecting libxml into a warning.
8048         
8049         * test/data/invalid-config-files: add two non-well-formed XML
8050         files. 
8051         
8052         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8053         
8054         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8055         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8056         be necessary to read all the buffer. (bug #894)
8057
8058         * bus/activation.c (bus_activation_activate_service): fix a
8059         potential assertion failure (bug #896). Small optimization in the
8060         case of auto-activation messages.
8061
8062         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8063         add test case for byte-through-vararg bug (#901). patch by Kimmo
8064         Hämäläinen. 
8065
8066 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8067
8068         * python/dbus.py:
8069         * python/dbus_bindings.pyx.in:
8070         Add dbus.init_gthreads (), allow emit_signal to pass
8071         arguments to the signal.
8072         
8073 2004-07-24  Havoc Pennington  <hp@redhat.com>
8074
8075         * AUTHORS: add some people, not really comprehensively, let me
8076         know if I missed you
8077
8078 2004-07-24  Havoc Pennington  <hp@redhat.com>
8079
8080         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8081         Owen
8082
8083         * test/Makefile.am (DIST_SUBDIRS): here also
8084
8085 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8086
8087         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8088         breaking build on Solaris, reported by Farhad Saberi on the ML.
8089
8090         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8091         va_arg invocation to account for integer promotion in the case of
8092         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8093
8094         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8095         _dbus_list_get_first_link, not _dbus_list_get_first.
8096
8097         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8098
8099         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8100         handler functions so that the asserts in _dbus_object_subtree_unref
8101         do not fail.
8102
8103         * dbus/dbus-transport-unix.c (do_reading):
8104         _dbus_transport_queue_messages return value is of type
8105         dbus_bool_t, not DBusDispatchStatus.
8106         
8107 2004-07-19  David Zeuthen  <david@fubar.dk>
8108
8109         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8110
8111         * bus/dispatch.c:
8112         (check_get_connection_unix_user): Debug says GetProperty; but the
8113         method is called GetConnectionUnixUser
8114         (check_get_connection_unix_process_id): New function
8115         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8116         also call check_get_connection_unix_process_id()
8117         
8118         * bus/driver.c:
8119         (bus_driver_handle_get_connection_unix_process_id): New function,
8120         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8121         interface
8122         
8123         * dbus/dbus-auth.c:
8124         (handle_server_data_external_mech): Set pid from the credentials
8125         obtained from the socket
8126         
8127         * dbus/dbus-connection.c:
8128         (dbus_connection_get_unix_process_id): New function
8129         
8130         * dbus/dbus-connection.h: 
8131         Add prototype for dbus_connection_get_unix_process_id
8132         
8133         * dbus/dbus-transport.c:
8134         (_dbus_transport_get_unix_process_id): New function
8135         
8136         * dbus/dbus-transport.h:
8137         Add prototype for _dbus_transport_get_unix_process_id
8138         
8139 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8140
8141         * dbus/dbus-message.c: Message counter fix, patch by Christian
8142         Hammond <chipx86@gnupdate.org>
8143
8144 2004-07-18  Seth Nickell  <seth@gnome.org>
8145
8146         * python/dbus.py:
8147         * python/dbus_bindings.pyx.in:
8148         * python/tests/test-client.py:
8149
8150         Add dbus.ByteArray and dbus_bindings.ByteArray
8151         types so that byte streams can be passed back.
8152
8153         Give jdahlin the heaps of credit that are so
8154         rightfully his.
8155         
8156 2004-07-12  Seth Nickell  <seth@gnome.org>
8157
8158         * python/dbus.py:
8159
8160         Add message argument to the default object_method_handler
8161         function.
8162         
8163         * python/dbus_bindings.pyx.in:
8164
8165         Automatically return NIL when passed an empty list
8166         (we can't pass back a list since lists are typed
8167         and we don't have any idea what type the the client
8168         intended the list to be... :-( )
8169         
8170 2004-07-10  Seth Nickell  <seth@gnome.org>
8171
8172         * python/examples/Makefile.am:
8173
8174         Fix distcheck breakage caused by new examples.
8175
8176 2004-07-10  Seth Nickell  <seth@gnome.org>
8177
8178         * python/dbus.py:
8179
8180         Add "message" argument to service-side dbus.Object
8181         methods. This will break existing services written
8182         using the python bindings, but will allow extraction
8183         of all the message information (e.g. who its from).
8184
8185         Add improved "object oriented" signal handling/emission.
8186         
8187         * python/examples/example-service.py:
8188
8189         Nix this example.
8190         
8191         * python/examples/example-signal-emitter.py:
8192         * python/examples/example-signal-recipient.py:
8193
8194         Two new examples that show how to emit and receive
8195         signals using the new APIs.
8196         
8197         * python/examples/example-signals.py:
8198         * python/examples/gconf-proxy-service.py:
8199         * python/examples/gconf-proxy-service2.py:
8200
8201         Add "message" argument to service methods.
8202
8203 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8204
8205         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8206         * dbus/bus.c (dbus_bus_get_unix_user)
8207         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8208         method of org.freedesktop.DBus interface.
8209
8210         * bus/dispatch.c: test case
8211
8212 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8213
8214         * python/Makefile.am: switched include directory from glib/ to dbus/
8215         since dbus-glib.h moved
8216  
8217 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8218
8219         * configure.in: prevent building the gcj stuff and libxml loader
8220         since they are broken.
8221
8222 2004-06-20  Havoc Pennington  <hp@redhat.com>
8223
8224         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8225         codes from the dbus error names
8226         
8227         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8228         as dbus/dbus-glib.h and that breakage is now visible due to 
8229         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8230         
8231         * glib/dbus-glib.h: s/gproxy/g_proxy/
8232
8233         * dbus/dbus-shared.h: new header to hold stuff shared with
8234         binding APIs
8235         
8236         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8237         than dbus-errors.h
8238
8239         * glib/dbus-glib.h (dbus_set_g_error): move to
8240         dbus-glib-lowlevel.h
8241
8242         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8243         of stuff to enable this
8244
8245         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8246
8247         * a bunch of other changes with the same basic "separate glib 
8248         bindings from dbus.h" theme
8249         
8250 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8251
8252         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8253
8254         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8255
8256 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8257
8258         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8259         the reply value of the ServiceExists message.
8260
8261 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8262
8263         * python/dbus_bindings.pyx.in: No longer need to parse path
8264         elements and pass them as arrays of strings.  The C API now
8265         accepts plain path strings.
8266         (_build_parsed_path): removed 
8267
8268 2004-06-07  Havoc Pennington  <hp@redhat.com>
8269
8270         * doc/TODO: remove auto-activation item since it's done; sort
8271         items by importance/milestone
8272
8273 2004-06-07  Havoc Pennington  <hp@redhat.com>
8274
8275         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8276         random signature when using REQUIRED_FIELDS (this hack won't work
8277         in the long term)
8278
8279         * dbus/dbus-message.c: change the signature to be a header field,
8280         instead of message->signature special-case string. Incremental
8281         step forward. Then we can fix up code to send the signature in the
8282         message, then fix up code to validate said signature, then fix up
8283         code to not put the typecodes inline, etc.
8284         (load_one_message): don't make up the signature after the fact
8285         (decode_header_data): require signature field for the known
8286         message types
8287
8288         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8289
8290         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8291
8292 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8293
8294         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8295
8296         * mono/Handler.cs: Updated to follow new path argument for
8297         (un-)registering objects.
8298
8299         * mono/example/Makefile.am:
8300         * mono/Makefile.am:
8301         * configure.in: Bumped required version for mono and use new -pkg
8302         syntax for deps
8303
8304 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8305
8306         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8307         registration functions take the path argument as char* instead of
8308         char**.
8309
8310         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8311         split off the path decompostion part of
8312         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8313         warnings. 
8314
8315         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8316         
8317 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8318  
8319         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8320         machine approach.  A state is implemented as a function that
8321         handles incoming events as specified for that state.
8322         
8323         * doc/dbus-specification.xml: Update auth protocol state machine
8324         specification to match implementation.  Remove some leftover
8325         base64 examples.
8326
8327 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8328
8329         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8330         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8331         quiet doxygen.
8332
8333         * Doxyfile.in: remove deprecated options.
8334
8335         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8336         glib/test-thread.h, glib/test-thread-client.c,
8337         glib/test-thread-server.c, glib/test-profile.c,
8338         glib/test-dbus-glib.c: remove these unused files.
8339
8340 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8341
8342         * dbus/dbus-object-tree.c
8343         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8344         non-fallback handlers (bug #684).
8345         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8346         (find_subtree_recurse): report wether the returned subtree is an
8347         exact match or a "fallback" match higher up in the tree.
8348         (object_tree_test_iteration): update test case.
8349
8350 2004-06-01  Seth Nickell  <seth@gnome.org>
8351
8352         * python/dbus_bindings.pyx.in:
8353         * python/tests/test-client.py:
8354
8355         Round off basic type support. Add dicts (yay!), and 
8356         remaining array types.
8357
8358         Make MessageIter more general so it works for dicts too.
8359
8360         Mark all loop variables as C integers.
8361         
8362 2004-05-31  Havoc Pennington  <hp@redhat.com>
8363
8364         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8365         "in" before "out"
8366
8367         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8368
8369         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8370         option that runs the tests, and start filling in some code
8371         including for starters just dumping the interfaces to stdout
8372
8373         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8374
8375         * test/data/valid-introspection-files/lots-of-types.xml: test of
8376         an example introspection file
8377
8378         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8379         "node" (I think...)
8380
8381 2004-05-31  Seth Nickell  <seth@gnome.org>
8382
8383         * python/dbus_bindings.pyx.in:
8384         * python/tests/test-client.py:
8385
8386         Test Suite: 1
8387         Python Bindings: 0
8388
8389         Fix string array memory trashing bug... oops...
8390
8391 2004-05-30  Seth Nickell  <seth@gnome.org>
8392
8393         * python/dbus.py:
8394
8395         Add a nicer-but-less-flexible alternate API for handling 
8396         calls to virtual objects in dbus.ObjectTree.
8397
8398         Screw up the argument order to the dbus.Object constructor
8399         for consistency with dbus.ObjectTree (and to make dbus_methods
8400         optional for future extension)
8401         
8402         * python/examples/Makefile.am:
8403         * python/examples/gconf-proxy-service.py:
8404         * python/examples/gconf-proxy-service2.py:
8405
8406         Alternate implementation of gconf-proxy-service using the
8407         nicer dbus.ObjectTree API.
8408         
8409         * python/examples/example-service.py:
8410         * python/tests/test-server.py
8411
8412         Reverse the argument order to deal with dbus.Object constructor
8413         changes.
8414         
8415 2004-05-30  Seth Nickell  <seth@gnome.org>
8416
8417         * python/examples/example-client.py:
8418         * python/examples/example-service.py:
8419
8420         Take it back. Lists seem to work but they're broken
8421         in the test suite. Make the base examples use
8422         lists (works fine).
8423
8424 2004-05-30  Seth Nickell  <seth@gnome.org>
8425
8426         * python/dbus_bindings.pyx.in:
8427         * python/tests/test-client.py:
8428
8429         Add some more tests and fix errors that crop up.
8430         Unfortunately, currently it seems like marshalling
8431         and unmarshalling of lists is completely broken :-(
8432
8433 2004-05-30  Seth Nickell  <seth@gnome.org>
8434
8435         * python/dbus_bindings.pyx.in:
8436
8437         Add support for ObjectPath type.
8438
8439         * python/dbus.py:
8440
8441         Refactor message handling code to a common function.
8442         
8443         * python/tests/test-client.py:
8444         * python/tests/test-server.py:
8445
8446         Add tests that check to make sure values of all types
8447         can be echoed from a service w/o mangling.
8448         
8449 2004-05-29  Seth Nickell  <seth@gnome.org>
8450
8451         * python/dbus.py:
8452
8453         Add ObjectTree class which allows implementation
8454         of trees of "virtual" objects. Basically the python
8455         wrapper for "register_fallback".
8456         
8457         * python/examples/Makefile.am
8458         * python/examples/gconf-proxy-client.py:
8459         * python/examples/gconf-proxy-service.py:
8460
8461         Implement a simple GConf proxy service that supports
8462         get/set on string and int GConf keys using the ObjectTree.
8463         
8464 2004-05-29  Seth Nickell  <seth@gnome.org>
8465
8466         * python/dbus.py:
8467         * python/examples/example-client.py:
8468         * python/examples/example-service.py:
8469         * python/examples/list-system-services.py:
8470
8471         Add SessionBus, SystemBus and ActivationBus classes
8472         so you don't need to know the special little BUS_TYPE
8473         flag.
8474         
8475 2004-05-29  Havoc Pennington  <hp@redhat.com>
8476
8477         * bus/config-parser.c (process_test_valid_subdir): temporarily
8478         stop testing config parser OOM handling, since expat has issues
8479         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8480
8481         * bus/dbus-daemon-1.1.in: change requested_reply to
8482         send_requested_reply/receive_requested_reply so we can send the
8483         replies, not just receive them.
8484
8485         * bus/config-parser.c: parse the new
8486         send_requested_reply/receive_requested_reply
8487
8488         * bus/policy.c (bus_client_policy_check_can_send): add
8489         requested_reply argument and use it
8490
8491         * bus/bus.c (bus_context_check_security_policy): pass through
8492         requested_reply status to message send check
8493
8494         * bus/system.conf.in: adapt to requested_reply change
8495         
8496 2004-05-28  Havoc Pennington  <hp@redhat.com>
8497
8498         * test/glib/test-service-glib.c (main): remove unused variable
8499
8500         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8501
8502         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8503         from the enum, no longer in use.
8504
8505         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8506         works right.
8507
8508         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8509         whether error_name passed in is a valid error name.
8510
8511 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8512
8513         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8514         OBJECT_PATH and OBJECT_PATH_ARRAY
8515
8516 2004-05-28  Seth Nickell  <seth@gnome.org>
8517
8518         * python/examples/Makefile.am:
8519
8520         Forget to add Makefile.am. Do not pass go.
8521
8522 2004-05-28  Michael Meeks  <michael@ximian.com>
8523
8524         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8525         fix no int64 case.
8526
8527         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8528
8529         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8530         (_dbus_message_iter_get_basic_type_array): impl.
8531         drastically simplify ~all relevant _get methods to use these.
8532         (_dbus_message_iter_append_basic_array),
8533         (dbus_message_iter_append_basic): impl
8534         drastically simplify ~all relevant _append methods to use these.
8535
8536         * dbus/dbus-message-builder.c (parse_basic_type) 
8537         (parse_basic_array, lookup_basic_type): impl.
8538         (_dbus_message_data_load): prune scads of duplicate /
8539         cut & paste coding.
8540
8541         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8542         (_dbus_demarshal_basic_type): implement,
8543         (demarshal_and_validate_len/arg): beef up debug.
8544         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8545
8546 2004-05-27  Seth Nickell  <seth@gnome.org>
8547
8548         * configure.in:
8549         * python/Makefile.am:
8550
8551         Include the example python apps in the tarball.
8552         
8553         * python/examples/list-system-services.py
8554
8555         Add a python new example that fetches the list of services
8556         from the system bus.
8557         
8558 2004-05-27  Seth Nickell  <seth@gnome.org>
8559
8560         * python/dbus.py:
8561         * python/dbus_bindings.pyx.in:
8562
8563         Fix failure to notify that a signal was not handled,
8564         resulted in hung functions.
8565         
8566 2004-05-25  Colin Walters  <walters@redhat.com>
8567
8568         * tools/dbus-monitor.c (main): Monitor all types of messages.
8569
8570 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8571
8572         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8573         which unregisters the object path and disposes the handler.
8574
8575 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8576  
8577         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8578          
8579         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8580         operands to && so we call dbus_message_iter_next () for the last
8581         argument also.
8582
8583 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8584
8585         * dbus/dbus-object-tree.c
8586         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8587         children even if the requested path isn't registered.
8588         (object_tree_test_iteration): test object_tree_list_registered.
8589
8590         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8591         it to 0.
8592         
8593 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8594
8595         * doc/TODO: Remove resolved items.
8596
8597         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8598         field.
8599         
8600         * bus/connection.c (bus_connections_expect_reply): Enforce the
8601         per-connection limit on pending replies.
8602         
8603         Patch from Jon Trowbridge <trow@ximian.com>:
8604  
8605         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8606         up a watch that triggers a config reload when one end of the pipe
8607         becomes readable.
8608         (signal_handler): Instead of doing the config reload in our SIGHUP
8609         handler, just write to the reload pipe and let the associated
8610         watch handle the reload when control returns to the main loop.
8611  
8612         * bus/driver.c (bus_driver_handle_reload_config): Added.
8613         Implements a ReloadConfig method for requesting a configuration
8614         file reload via the bus driver.
8615  
8616 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8617
8618         * HACKING: Updated release instructions concerning the wiki page.
8619
8620 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8621
8622         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8623         filter against auth->allowed_mechs; we only add allowed mechs in
8624         record_mechanisms().
8625  
8626         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8627         ALLOWED_MECHS to auth-script format so we can set the list of
8628         allowed mechanisms.
8629  
8630         * data/auth/client-out-of-mechanisms.auth-script: New test to
8631         check client disconnects when it is out of mechanisms to try.
8632  
8633         * dbus/dbus-auth.c (process_command): Remove check for lines
8634         longer that 1 MB; we only buffer up maximum 16 kB.
8635  
8636         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8637         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8638         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8639         assume there might be unused bytes.
8640  
8641         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8642         client-out-of-mechs, it is handled in process_reject(). Move check
8643         for max failures to send_rejected(), as it's a server-only thing.
8644
8645         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8646         send_auth(), send_data(), send_rejected(), send_error(),
8647         send_ok(), send_begin() and send_cancel().
8648
8649 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8650
8651         Remove base64 encoding, replace with hex encoding. Original patch
8652         from trow@ximian.com, added error handling.
8653
8654         * dbus/dbus-string.c (_dbus_string_base64_encode)
8655         (_dbus_string_base64_decode): Remove.
8656         (_dbus_string_hex_decode): Add end_return argument so we can
8657         distinguish between OOM and invalid hex encoding.
8658         (_dbus_string_test): Remove base64 tests and add test case for
8659         invalid hex.
8660
8661         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8662         Replace base64 with hex.
8663
8664         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8665         for invalid hex encoded data in auth protocol.
8666
8667 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8668
8669         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8670         leak.
8671
8672 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8673
8674         * mono/dbus-sharp.dll.config.in: Added for GAC
8675         * mono/dbus-sharp.snk: Added for GAC
8676         * mono/Assembly.cs.in: Added for GAC
8677         * mono/Makefile.am: Changes for GAC installation        
8678         * configure.in: Added refs for dbus-sharp.dll.config.in and
8679         Assembly.cs.in. More fixes for mono testing
8680         * mono/example/Makefile.am: Changed var to CSC
8681         * Makefile.am: Changed flag name to DBUS_USE_CSC
8682
8683 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8684
8685         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8686         * mono/doc/*: Added documentation framework
8687         * configure.in: Added monodoc check
8688         * README: Added description of mono configure flags
8689
8690 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8691
8692         * doc/dbus-specification.xml: Added a "Required" column to the 
8693         header fields table and changed the "zero or more" verbage in
8694         the above paragraph to read "The header must contain the required 
8695         named header fields and zero or more of the optional named header 
8696         fields".
8697         * test/data/invalid-messages/*.message: Added the required PATH 
8698         named header field to the tests so that they don't fail on 
8699         'Missing path field'
8700
8701 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8702
8703         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8704         the stack by implicitly defining variable and parameter types and
8705         removing the hack of defining C pointers as python objects and later
8706         casting them.
8707
8708 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8709
8710         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8711
8712 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8713
8714         * mono/DBusType/Dict.cs: Handle empty dicts
8715         * mono/DBusType/Array.cs: Handle empty arrays
8716         * mono/Arguments.cs: Handle empty arguments
8717
8718 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8719
8720         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8721         field
8722
8723 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8724
8725         * test/data/valid-messages/standard-*.message: Update message
8726         test scripts to new header field names.
8727
8728 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8729
8730         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8731         overflow to times_we_did_each_thing array which would chop off the
8732         first character of the failure_dir string. Increased the size of
8733         the array to 7 to reflect the number of random mutation functions
8734         we have.
8735
8736 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8737
8738         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8739         unix_server->watch here, it is unreffed in disconnect.
8740         (_dbus_server_new_for_tcp_socket): convert NULL host to
8741         "localhost" here so we don't append NULL to address.
8742         
8743         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8744         various addresses, including tcp with no explicit host.
8745
8746 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8747
8748         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8749         fix incorrect setting of .name_offset in the HeaderField (it was
8750         off by two bytes, positioned right after the name and typecode)
8751
8752         * bus/bus.c (bus_context_new, bus_context_unref): test before
8753         calling dbus_server_free_data_slot and _dbus_user_database_unref
8754         in case of an error.
8755
8756         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8757         by libdbus-gtool.
8758
8759 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8760
8761         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8762         _dbus_poll() instead of select().
8763
8764 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8765
8766         * bus/main.c (signal_handler): Reload the configuration files
8767         on SIGHUP.
8768         (main): Set up our SIGHUP handler.
8769
8770         * bus/bus.c (struct BusContext): Store the config file, user and
8771         fork flag in the BusContext.
8772         (process_config_first_time_only): Added.  Contains the code
8773         (previously in bus_context_new) for setting up the BusContext from
8774         the BusConfigParser that should only be run the first time the
8775         config files are read.
8776         (process_config_every_time): Added.  Contains the code (previously
8777         in bus_context_new) for setting up the BusContext from the
8778         BusConfigParser that should be run every time the config files are
8779         read.
8780         (load_config): Added.  Builds a BusConfigParser from the config
8781         files and passes the resulting structure off to
8782         process_config_first_time_only (assuming this is the first time)
8783         and process_config_every_time.
8784         (bus_context_new): All of the config-related code has been moved
8785         to process_config_first_time_only and process_config_every_time.
8786         Now this function just does the non-config-related initializations
8787         and calls load_config.
8788         (bus_context_reload_config): Added.
8789
8790 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8791
8792         * bus/driver.c (bus_driver_handle_get_service_owner):
8793         implement a GetServiceOwner method.
8794         * doc/dbus-specification.xml: document it.
8795         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8796         
8797         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8798         implement, using the bus GetServiceOwner method.
8799
8800         * test/glib/test-dbus-glib.c:
8801         use dbus_gproxy_new_for_service_owner so that we can receive the
8802         signal. 
8803
8804 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8805
8806         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8807         dbus/dbus-message.c, dbus/dbus-protocol.h
8808         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8809
8810         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8811         dbus/dbus-message.c, dbus/dbus-protocol.h
8812         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8813
8814         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8815         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8816         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8817
8818         * doc/dbus-specification.xml (Header Fields Table):
8819         s/SERVICE/DESTINATION
8820         s/SENDER_SERVICE/SENDER
8821
8822
8823 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8824
8825         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8826         a few seconds.
8827
8828 2004-04-13  Michael Meeks  <michael@ximian.com>
8829
8830         * glib/dbus-gobject.c (handle_introspect): split out
8831         (introspect_properties): this.
8832         (handle_introspect): implement this.
8833
8834         * test/glib/Makefile.am: use the absolute path so the bus
8835         daemon's chdir ("/") doesn't kill us dead.
8836
8837         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8838
8839 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8840
8841         * bus/config-parser.c (struct BusConfigParser): Added
8842         included_files field.
8843         (seen_include): Added.  Checks whether or not a file has already
8844         been included by any parent BusConfigParser.
8845         (bus_config_parser_new): Copy the parent's included_files.
8846         (include_file): Track which files have been included, and fail on
8847         circular inclusions.
8848         (process_test_valid_subdir): Changed printf to report if we are
8849         testing valid or invalid conf files.
8850         (all_are_equiv): Changed printf to be a bit clearer about
8851         what we are actually doing.
8852         (bus_config_parser_test): Test invalid configuration files.
8853
8854 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8855
8856         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8857         argument.  If non-null, the newly-constructed BusConfigParser will
8858         be initialized with the parent's BusLimits instead of the default
8859         values.
8860         (include_file): When including a config file, pass in
8861         the current parser as the parent and then copy the BusLimits
8862         from the included BusConfigParser pack to the current parser.
8863         (process_test_valid_subdir): Renamed from process_test_subdir.
8864         (process_test_equiv_subdir): Added.  Walks through a directory,
8865         descending into each subdirectory and loading the config files
8866         it finds there.  If any subdirectory contains two config files
8867         that don't produce identical BusConfigParser structs, fail.
8868         For now, the BusConfigParser's BusPolicies are not compared.
8869         (bus_config_parser_test): Call both process_test_valid_subdir and
8870         process_test_equiv_subdir.
8871
8872         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8873         argument and pass it along to the call to bus_config_parser_new.
8874         Also made a few small changes to allow this code to compile.
8875
8876         * bus/config-loader-expat.c (bus_config_load): Take a parent
8877         argument and pass it along to the call to bus_config_parser_new.
8878
8879         * bus/bus.c (bus_context_new): Load the config file
8880         with a NULL parent argument.
8881
8882 2004-03-29  Michael Meeks  <michael@ximian.com>
8883
8884         * glib/dbus-gobject.c (introspect_properties): split
8885         out, fix mangled 'while' flow control.
8886         (introspect_signals): implement.
8887         (handle_introspect): update.
8888
8889 2004-03-29  Michael Meeks  <michael@ximian.com>
8890
8891         * glib/dbus-gobject.c (set_object_property): split out / 
8892         re-work, use the property type, and not the message type(!)
8893         (get_object_property): ditto.
8894
8895         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8896         (dbus_gvalue_marshal): make this code re-usable, needed
8897         for signals too, also on both proxy and server side.
8898         Re-write for more efficiency / readability.
8899
8900 2004-03-29  Michael Meeks  <michael@ximian.com>
8901
8902         * dbus/dbus-message.c
8903         (dbus_message_new_error_printf): impl.
8904
8905         * dbus/dbus-connection.c
8906         (dbus_connection_unregister_object_path): fix warning.
8907
8908         * configure.in: fix no-mono-installed situation.
8909
8910 2004-03-27  Havoc Pennington  <hp@redhat.com>
8911
8912         Patch from Timo Teräs:
8913         
8914         * tools/dbus-send.c (main): if --print-reply, assume type is
8915         method call; support boolean type args
8916         
8917         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8918         bunch of memleak and logic bugs
8919         
8920 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8921
8922         * mono/Arguments.cs:
8923         * mono/Introspector.cs:
8924         * mono/Handler.cs:
8925         * mono/InterfaceProxy.cs:
8926         * mono/Message.cs
8927         * mono/ProxyBuilder.cs:
8928         * mono/Service.cs:
8929         Added InterfaceProxy class to avoid building proxies for every
8930         object.
8931
8932         * dbus-message.h:
8933         * dbus-message.c (dbus_message_append_args_valist)
8934         (dbus_message_iter_get_object_path)
8935         (dbus_message_iter_get_object_path_array)
8936         (dbus_message_iter_append_object_path)
8937         (dbus_message_iter_append_object_path_array):
8938         Added object_path iter functions to handle OBJECT_PATH arguments
8939         
8940 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8941
8942         First checkin of mono bindings.
8943         * configure.in:
8944         * Makefile.am:
8945         Build stuff for the bindings
8946         * dbus-sharp.pc.in: Added for pkgconfig
8947         
8948 2004-03-21  Havoc Pennington  <hp@redhat.com>
8949
8950         * test/test-service.c (main): remove debug spew
8951
8952 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8953
8954         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8955         arrays
8956
8957         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8958         (dbus_message_iter_init_array_iterator)
8959         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8960         indicate whether the iterator is empty
8961
8962         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8963         warnings
8964
8965 2004-03-19  Havoc Pennington  <hp@redhat.com>
8966
8967         * NEWS: 0.21 updates
8968
8969         * configure.in: 0.21
8970
8971         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8972         
8973         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8974         you don't need pyrex to make dist
8975
8976         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8977         sources; run moc
8978         
8979 2004-03-18  Richard Hult  <richard@imendio.com>
8980
8981         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8982         (dbus_message_set_auto_activation): Add doxygen docs.
8983
8984 2004-03-16  Richard Hult  <richard@imendio.com>
8985
8986         * bus/activation.c: (bus_activation_service_created),
8987         (bus_activation_send_pending_auto_activation_messages),
8988         (bus_activation_activate_service):
8989         * bus/activation.h:
8990         * bus/dispatch.c: (bus_dispatch),
8991         (check_nonexistent_service_auto_activation),
8992         (check_service_auto_activated),
8993         (check_segfault_service_auto_activation),
8994         (check_existent_service_auto_activation), (bus_dispatch_test):
8995         * bus/driver.c: (bus_driver_handle_activate_service):
8996         * bus/services.c: (bus_registry_acquire_service):
8997         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8998         (dbus_message_get_auto_activation):
8999         * dbus/dbus-message.h:
9000         * dbus/dbus-protocol.h: Implement auto-activation.
9001         
9002         * doc/dbus-specification.xml: Add auto-activation to the spec.
9003
9004 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9005
9006         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9007         fix a bug with CUSTOM types.
9008
9009         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9010         a unit test for this bug (used to fail).
9011
9012 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9013
9014         * bus/activation.c:
9015         (babysitter_watch_callback): notify all pending activations waiting for
9016           the same exec that the activation failed.
9017         (bus_activation_activate_service): shortcut the activation if we 
9018           already waiting for the same executable to start up.
9019
9020 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9021
9022         * bus/activation.c: 
9023         - Added service file reloading. 
9024           Each service files directory is kept in an hash table in 
9025           BusActivation and each BusActivationEntry knows what .service-file it
9026           was read from. So when you try to activate a service the bus will 
9027           check if it's been updated, removed or if new .service-files has 
9028           been installed.
9029         - Test code at the bottom for the service file reloading.
9030         * bus/test-main.c: (main):
9031         * bus/test.h:
9032         - added service reloading test.
9033         * dbus/dbus-sysdeps.c: 
9034         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9035
9036 2004-03-08  Michael Meeks  <michael@ximian.com>
9037
9038         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9039         bail immediately if disconnected, to avoid busy loop.
9040
9041         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9042         cleanup cut/paste/inefficiency.
9043
9044 2004-03-01  David Zeuthen  <david@fubar.dk>
9045
9046         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9047         bug where args were used twice. This bug resulted in a segfault
9048         on a Debian/PPC system when starting the messagebus daemon. Include
9049         dbus-sysdeps.h for DBUS_VA_COPY
9050
9051         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9052
9053         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9054         appropriate va_copy implementation. From GLib
9055         
9056 2004-02-24  Joe Shaw  <joe@ximian.com>
9057
9058         * bus/services.c (bus_registry_acquire_service): We need to pass
9059         in the service name to dbus_set_error() to prevent a crash.
9060
9061 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9062
9063         * AUTHORS: Reveal my True identity.
9064
9065 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9066
9067         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9068         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9069
9070 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9071
9072         * doc/TODO: Added not about better error check of configuration files.
9073
9074 2003-12-02  Richard Hult  <richard@imendio.com>
9075
9076         * Update AFL version to 2.0 throughout the source files to reflect
9077         the update that was done a while ago.
9078
9079 2003-12-02  Richard Hult  <richard@imendio.com>
9080
9081         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9082         wrote_dict_key to FALSE on the iter that the dict is appended to,
9083         just like when appending other types. Fixes a bug where a dict
9084         couldn't be put inside a dict.
9085         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9086         (message_iter_test, _dbus_message_test): Add test case for dict
9087         inside dict.
9088
9089 2003-12-01  David Zeuthen  <david@fubar.dk>
9090
9091         * python/dbus.py: Add the actual message when calling the reciever
9092         of a signal such that parameters can be inspected. Add the method
9093         remove_signal_receiver
9094         
9095 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9096
9097         * bus/*.[ch]:
9098         * dbus/*.[ch]:
9099         * glib/*.[ch]: Made ref functions return the pointer
9100
9101 2003-11-25  Zack Rusin  <zack@kde.org>
9102
9103         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9104
9105         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9106         wrappers,
9107
9108         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9109         the Integrator and to better fit with the server,
9110
9111 2003-11-24  Zack Rusin  <zack@kde.org>
9112
9113         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9114         the integrator handles it now
9115
9116         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9117         since QTimer wasn't really meant to be used the way DBusTimeout is
9118
9119 2003-11-24  Zack Rusin  <zack@kde.org>
9120
9121         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9122         Integrator class which integrates D-BUS with the Qt event loop,
9123
9124         * qt/connection.h, qt/connection.cpp: Move all the code which
9125         was dealing with D-BUS integration to the Integrator class,
9126         and start using Integrator,
9127
9128 2003-11-23  Zack Rusin  <zack@kde.org>
9129
9130         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9131         wrapper
9132
9133         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9134         switching namespaces to DBusQt, reworking the class,
9135
9136         * Makefile.cvs: switching dependencies so that it matches KDE 
9137         schematics,
9138         
9139         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9140         the library
9141
9142 2003-11-19  Havoc Pennington  <hp@redhat.com>
9143
9144         * NEWS: update
9145
9146         * configure.in: bump version to 0.20
9147
9148         * configure.in (have_qt): add yet another place to look for qt
9149         (someone hand trolltech a .pc file...)
9150
9151 2003-11-01  Havoc Pennington  <hp@redhat.com>
9152
9153         * doc/dbus-specification.xml: add state machine docs on the auth
9154         protocol; just a first draft, I'm sure it's wrong.      
9155
9156 2003-10-28  David Zeuthen  <david@fubar.dk>
9157
9158         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9159         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9160         
9161 2003-10-28  Havoc Pennington  <hp@redhat.com>
9162
9163         * dbus/dbus-message.c (get_next_field): delete unused function
9164
9165 2003-10-28  Havoc Pennington  <hp@redhat.com>
9166
9167         * bus/expirelist.c (do_expiration_with_current_time): detect
9168         failure of the expire_func due to OOM
9169
9170         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9171
9172         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9173         NoReply error that's now created by the bus when the service exits
9174
9175 2003-10-28  Havoc Pennington  <hp@redhat.com>
9176
9177         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9178         tests for set_path, set_interface, set_member, etc.
9179
9180         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9181
9182         * dbus/dbus-message.c (set_string_field): always just delete and
9183         re-append the field; accept NULL for deletion
9184         (re_align_fields_recurse): reimplement
9185         
9186 2003-10-26  Havoc Pennington  <hp@redhat.com>
9187
9188         * dbus/dbus-connection.c: fix docs to properly describe the
9189         disconnected message
9190         (_dbus_connection_notify_disconnected): remove this function; 
9191         we can't synchronously add the disconnected message, we have to 
9192         do it after we've queued any remaining real messages
9193         (_dbus_connection_get_dispatch_status_unlocked): queue the
9194         disconnect message only if the transport has finished queueing all
9195         its real messages and is disconnected.
9196         (dbus_connection_disconnect): update the dispatch status here
9197
9198 2003-10-22  Havoc Pennington  <hp@redhat.com>
9199
9200         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9201
9202         * bus/connection.c (bus_transaction_send_from_driver): set the
9203         destination to the connection's base service
9204
9205 2003-10-20  Havoc Pennington  <hp@redhat.com>
9206
9207         hmm, make check is currently not passing.
9208         
9209         * doc/dbus-specification.xml: add requirement that custom type
9210         names follow the same rules as interface names.
9211
9212         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9213         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9214         'map'
9215
9216         * doc/dbus-specification.xml: update type codes to match
9217         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9218         CUSTOM. Add type OBJECT_PATH to the spec.
9219
9220 2003-10-17  Havoc Pennington  <hp@redhat.com>
9221
9222         * bus/driver.c (create_unique_client_name): use "." as separator
9223         in base service names instead of '-'
9224
9225         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9226         byte at the end of the string
9227
9228         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9229         optimization macros since string validation seems to be a slow
9230         point.
9231         
9232         * doc/dbus-specification.xml: restrict valid
9233         service/interface/member/error names. Add test suite code for the
9234         name validation.
9235
9236         * dbus/dbus-string.c: limit service/interface/member/error names 
9237         to [0-9][A-Z][a-z]_
9238
9239         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9240         format arg to verbose spew
9241
9242         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9243         memory, return instead of g_error
9244
9245         * test/test-service.c (path_message_func): support emitting a
9246         signal on request
9247
9248         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9249         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9250         assuming the activation bus was the session bus so that services
9251         started manually will still register.
9252         (init_connections_unlocked): fix so that in OOM situation we get
9253         the same semantics when retrying the function
9254         
9255         * test/test-service.c (main): change to use path registration, to
9256         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9257         than DBUS_BUS_SESSION
9258
9259 2003-10-16  Havoc Pennington  <hp@redhat.com>
9260
9261         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9262
9263         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9264         coverage of the tests
9265         (coverage-report.txt): don't move the .da and .bbg files around
9266
9267 2003-10-16  Havoc Pennington  <hp@redhat.com>
9268
9269         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9270         to put there
9271
9272 2003-10-16  Havoc Pennington  <hp@redhat.com>
9273
9274         * bus/connection.c (bus_pending_reply_expired): either cancel or
9275         execute, not both
9276         (bus_connections_check_reply): use unlink, not remove_link, as we
9277         don't want to free the link; fixes double free mess
9278
9279         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9280         where no reply was received
9281
9282         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9283         fix a refcount leak
9284
9285         * bus/signals.c (match_rule_matches): add special cases for the
9286         bus driver, so you can match on sender/destination for it.
9287
9288         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9289         DBUS_PRINT_BACKTRACE is set
9290
9291         * dbus/dbus-internals.c: add pid to assertion failure messages
9292
9293         * dbus/dbus-connection.c: add message type code to the debug spew
9294
9295         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9296         sender=foo not service=foo
9297
9298         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9299         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9300         DBUS_ACTIVATION_ADDRESS instead
9301
9302         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9303         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9304
9305         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9306         context struct
9307
9308         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9309         (dbus_message_iter_get_object_path_array): new function (half
9310         finished, disabled for the moment)
9311         
9312         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9313         DBUS_MESSAGE_TYPE_ERROR
9314
9315         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9316         avoid redirecting stderr to /dev/null
9317         (babysit): close stdin if not doing the "exit_with_session" thing
9318
9319         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9320         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9321         stdout/stdin, so things don't get confused
9322         
9323         * bus/system.conf.in: fix to allow replies, I modified .conf
9324         instead of .conf.in again.
9325
9326 2003-10-14  David Zeuthen  <david@fubar.dk>
9327
9328         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9329         argtype to arg_type when raising unknown arg type exception.
9330         Changed type list to reflect the changes in dbus-protocol.h so 
9331         the bindings actually work.
9332
9333 2003-10-14  Havoc Pennington  <hp@redhat.com>
9334
9335         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9336         to have a bug keeping it from outputting the .da files sometimes
9337         (string_get_string): don't append garbage nul bytes to the string.
9338
9339 2003-10-15  Seth Nickell  <seth@gnome.org>
9340
9341         * python/Makefile.am:
9342
9343         Include dbus_h_wrapper.h in the dist tarball.
9344
9345 2003-10-14  Havoc Pennington  <hp@redhat.com>
9346
9347         * bus/bus.c (bus_context_check_security_policy): revamp this to
9348         work more sanely with new policy-based requested reply setup
9349
9350         * bus/connection.c (bus_transaction_send_from_driver): set bus
9351         driver messages as no reply
9352
9353         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9354         requested_reply attribute on allow/deny rules
9355
9356         * bus/system.conf: add <allow requested_reply="true"/>
9357
9358         * bus/driver.c (bus_driver_handle_message): fix check for replies
9359         sent to the bus driver, which was backward. How did this ever work
9360         at all though? I think I'm missing something.
9361
9362         * dbus/dbus-message.c (decode_header_data): require error and
9363         method return messages to have a reply serial field to be valid
9364         (_dbus_message_loader_queue_messages): break up this function;
9365         validate that reply serial and plain serial are nonzero; 
9366         clean up the OOM/error handling.
9367         (get_uint_field): don't return -1 from this
9368         (dbus_message_create_header): fix signed/unsigned bug
9369
9370         * bus/connection.c (bus_connections_expect_reply): save serial of
9371         the incoming message, not reply serial
9372
9373 2003-10-14  Havoc Pennington  <hp@redhat.com>
9374
9375         * bus/connection.c: implement pending reply tracking using
9376         BusExpireList
9377
9378         * bus/bus.c (bus_context_check_security_policy): verify that a
9379         reply is pending in order to allow a reply to be sent. Deny 
9380         messages of unknown type.
9381
9382         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9383
9384         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9385         (bus_context_get_reply_timeout): new
9386
9387 2003-10-13  Seth Nickell  <seth@gnome.org>
9388
9389         * python/Makefile.am:
9390
9391         Pass "make distcheck": remove a couple files from DIST_FILES
9392         that weren't included in the final version.
9393
9394 2003-10-12  Havoc Pennington  <hp@pobox.com>
9395
9396         Added test code that 1) starts an actual bus daemon and 2) uses
9397         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9398         more testing possible, but this is the basic framework.
9399         
9400         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9401         empty proxy lists from the proxy list hash
9402
9403         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9404         couple of return_if_fail checks
9405
9406         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9407         to allocate, so everything is cleared to NULL as it should be.
9408
9409         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9410         source as data to dbus_connection_set_timeout_functions() as the 
9411         timeout functions expected
9412
9413         * test/glib/run-test.sh: add a little script to start up a message
9414         bus and run tests using it
9415
9416         * tools/dbus-launch.1: updates
9417
9418         * tools/dbus-launch.c (main): add --config-file option
9419
9420         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9421         that could never be reached.
9422
9423         * dbus/dbus-message.c (dbus_message_new_method_return) 
9424         (dbus_message_new_error, dbus_message_new_signal): set the
9425         no-reply-expected flag on all these. Redundant, but may
9426         as well be consistent.
9427
9428 2003-10-11  Havoc Pennington  <hp@pobox.com>
9429
9430         * test/decode-gcov.c (function_solve_graph): make broken block
9431         graph a nonfatal error since it seems to be broken. Need to debug
9432         this.
9433
9434         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9435         can't just check type > INVALID < LAST anymore
9436
9437         * dbus/dbus-message.c (dbus_message_get_signature): new function
9438         (dbus_message_has_signature): new function
9439         (struct DBusMessage): add signature field (right now it isn't sent
9440         over the wire, just generated on the fly)
9441         (dbus_message_copy): copy the signature, and init strings to
9442         proper length to avoid some reallocs
9443         (dbus_message_iter_init_array_iterator): return void, since it
9444         can't fail
9445         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9446         (_dbus_message_loader_queue_messages): add silly temporary hack to
9447         fill in message->signature on load
9448
9449         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9450         characters, so they are relatively human-readable.
9451
9452 2003-10-11  Havoc Pennington  <hp@pobox.com>
9453
9454         * dbus/dbus-message.c (_dbus_message_test): add more test
9455         coverage, but #if 0 for now since they uncover a bug 
9456         not fixed yet; I think in re_align_field_recurse()
9457         (re_align_field_recurse): add FIXME about broken assertion
9458
9459         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9460
9461         * bus/connection.c: share a couple code bits with expirelist.c
9462
9463         * bus/expirelist.h, bus/expirelist.c: implement a generic
9464         expire-items-after-N-seconds facility, was going to share between
9465         expiring connections and replies, decided not to use for expiring
9466         connections for now.
9467
9468         * COPYING: include AFL 2.0 (still need to change all the file headers)
9469
9470 2003-10-09  Havoc Pennington  <hp@redhat.com>
9471
9472         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9473         gcc 3.3. Not that we do anything about it yet.
9474
9475         * bus/signals.c (bus_match_rule_parse): impose max length on the
9476         match rule text
9477
9478         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9479
9480 2003-10-09  Havoc Pennington  <hp@redhat.com>
9481
9482         Make matching rules theoretically work (add parser).
9483         
9484         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9485         the case where destination is explicitly specified as bus driver
9486         and someone else is eavesdropping.
9487         
9488         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9489         definition of eavesdropping and assertion
9490
9491         * tools/dbus-send.c (main): use dbus_message_type_from_string
9492
9493         * bus/signals.c (bus_match_rule_parse): implement
9494
9495         * dbus/dbus-message.c (dbus_message_type_from_string): new
9496
9497         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9498
9499 2003-10-02  Havoc Pennington  <hp@pobox.com>
9500
9501         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9502         dbus_gproxy_oneway_call
9503
9504         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9505         (dbus_server_setup_with_g_main): fix to allow calling them more
9506         than once on the same args
9507         (dbus_bus_get_with_g_main): new function
9508
9509 2003-10-02  Havoc Pennington  <hp@redhat.com>
9510
9511         * doc/dbus-tutorial.xml: write some stuff
9512
9513 2003-09-29  Havoc Pennington  <hp@pobox.com>
9514
9515         * configure.in: split checks for Doxygen from XML docs, check for
9516         xmlto
9517
9518         * doc/Makefile.am: XML-ify all the docs, and add a blank
9519         dbus-tutorial.xml
9520
9521 2003-09-29  Havoc Pennington  <hp@pobox.com>
9522
9523         * Merge dbus-object-names branch. To see the entire patch 
9524         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9525         it's huuuuge though.
9526         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9527         
9528 2003-09-28  Havoc Pennington  <hp@pobox.com>
9529
9530         * HACKING: update to reflect new server
9531
9532 2003-09-26  Seth Nickell  <seth@gnome.org>
9533
9534         * python/dbus.py:
9535         * python/examples/example-signals.py:
9536
9537         Start implementing some notions of signals. The API
9538         is really terrible, but they sort of work (with the
9539         exception of being able to filter by service, and to
9540         transmit signals *as* a particular service). Need to
9541         figure out how to make messages come from the service
9542         we registered :-(
9543         
9544         * python/dbus_bindings.pyx.in:
9545
9546         Removed duplicate message_handler callbacks.
9547         
9548 2003-09-25  Havoc Pennington  <hp@redhat.com>
9549
9550         * bus/session.conf.in: fix my mess
9551
9552 2003-09-25  Havoc Pennington  <hp@pobox.com>
9553
9554         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9555
9556 2003-09-25  Seth Nickell  <seth@gnome.org>
9557
9558         * python/examples/example-service.py:
9559
9560         Johan notices complete wrong code in example-service, but
9561         completely wrong in a way that works exactly the same (!).
9562         Johan is confused, how could this possibly work? Example
9563         code fails to serve purpose of making things clear.
9564         Seth fixes.
9565
9566 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9567
9568         * doc/dbus-specification.sgml: don't require header fields
9569         to be 4-byte aligned and specify that fields should be
9570         distinguished from padding by the fact that zero is not
9571         a valid field name.
9572         
9573         * doc/TODO: remove re-alignment item and add item to doc
9574         the OBJECT_PATH type.
9575         
9576         * dbus/dbus-message.c:
9577         (HeaderField): rename the original member to value_offset
9578         and introduce a name_offset member to keep track of where
9579         the field actually begins.
9580         (adjust_field_offsets): remove.
9581         (append_int_field), (append_uint_field),
9582         (append_string_field): don't align the start of the header
9583         field to a 4-byte boundary.
9584         (get_next_field): impl finding the next marhsalled field
9585         after a given field.
9586         (re_align_field_recurse): impl re-aligning a number of
9587         already marshalled fields.
9588         (delete_field): impl deleting a field of any type and
9589         re-aligning any following fields.
9590         (delete_int_or_uint_field), (delete_string_field): remove.
9591         (set_int_field), (set_uint_field): no need to re-check
9592         that we have the correct type for the field.
9593         (set_string_field): ditto and impl re-aligning any
9594         following fields.
9595         (decode_header_data): update to take into account that
9596         the fields aren't 4-byte aligned any more and the new
9597         way to distinguish padding from header fields. Also,
9598         don't exit when there is too much header padding.
9599         (process_test_subdir): print the directory.
9600         (_dbus_message_test): add test to make sure a following
9601         field is re-aligned correctly after field deletion.
9602         
9603         * dbus/dbus-string.[ch]:
9604         (_dbus_string_insert_bytes): rename from insert_byte and
9605         allow the insert of multiple bytes.
9606         (_dbus_string_test): test inserting multiple bytes.
9607
9608         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9609         warning note to docs about having to re-align any
9610         marshalled values following the string.
9611         
9612         * dbus/dbus-message-builder.c:
9613         (append_string_field), (_dbus_message_data_load):
9614         don't align the header field.
9615         
9616         * dbus/dbus-auth.c: (process_test_subdir): print the
9617         directory.
9618         
9619         * test/break-loader.c: (randomly_add_one_byte): upd. for
9620         insert_byte change.
9621         
9622         * test/data/invalid-messages/bad-header-field-alignment.message:
9623         new test case.
9624         
9625         * test/data/valid-messages/unknown-header-field.message: shove
9626         a dict in the unknown field.
9627
9628 2003-09-25  Seth Nickell  <seth@gnome.org>
9629
9630         * python/dbus.py:
9631         * python/dbus_bindings.pyx.in:
9632
9633         Handle return values.
9634         
9635         * python/examples/example-client.py:
9636         * python/examples/example-service.py:
9637
9638         Pass back return values from the service to the client.
9639         
9640 2003-09-24  Seth Nickell  <seth@gnome.org>
9641
9642         * python/dbus.py:
9643
9644         Connect Object methods (when you are sharing an object) up... pass
9645         in a list of methods to be shared. Sharing all the methods just
9646         worked out too weird. You can now create nice Services over the
9647         DBus in Python. :-)
9648         
9649         * python/dbus_bindings.pyx.in:
9650
9651         Keep references to user_data tuples passed into C functions so 
9652         Python doesn't garbage collect on us.
9653
9654         Implement MethodReturn and Error subclasses of Message for creating
9655         DBusMessage's of those types.
9656         
9657         * python/examples/example-client.py:
9658         * python/examples/example-service.py:
9659
9660         Simple example code showing both how create DBus services and objects,
9661         and how to use them.
9662
9663 2003-09-23  Havoc Pennington  <hp@pobox.com>
9664
9665         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9666
9667 2003-09-23  Havoc Pennington  <hp@redhat.com>
9668
9669         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9670         (dbus_gproxy_disconnect_signal): implement
9671         (dbus_gproxy_manager_remove_signal_match): implement
9672         (dbus_gproxy_manager_add_signal_match): implement
9673         (dbus_gproxy_oneway_call): implement
9674
9675 2003-09-23  Havoc Pennington  <hp@pobox.com>
9676
9677         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9678         subclass. This means dropping the transparent thread safety of the
9679         proxy; you now need a separate proxy per-thread, or your own
9680         locking on the proxy. Probably right anyway.
9681         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9682
9683 2003-09-22  Havoc Pennington  <hp@redhat.com>
9684
9685         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9686
9687 2003-09-21  Seth Nickell  <seth@gnome.org>
9688
9689         First checkin of the Python bindings.
9690         
9691         * python/.cvsignore:
9692         * python/Makefile.am:
9693         * python/dbus_bindings.pyx.in:
9694         * python/dbus_h_wrapper.h:
9695
9696         Pieces for Pyrex to operate on, building a dbus_bindings.so
9697         python module for low-level access to the DBus APIs.
9698         
9699         * python/dbus.py:
9700
9701         High-level Python module for accessing DBus objects.
9702
9703         * configure.in:
9704         * Makefile.am:
9705
9706         Build stuff for the python bindings.
9707
9708         * acinclude.m4:
9709
9710         Extra macro needed for finding the Python C header files.
9711
9712 2003-09-21  Havoc Pennington  <hp@pobox.com>
9713
9714         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9715         implementing the proxy manager, didn't get very far.
9716
9717         * dbus/dbus-bus.c (dbus_bus_add_match): new
9718         (dbus_bus_remove_match): new
9719
9720         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9721         path_name argument; adjust the other not-yet-implemented 
9722         gproxy constructors to be what I think they should be.
9723
9724 2003-09-21  Havoc Pennington  <hp@pobox.com>
9725
9726         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9727         by default for message bus connections.
9728
9729         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9730         exit_on_disconnect flag is set and we process the disconnected
9731         signal.
9732         (dbus_connection_set_exit_on_disconnect): new function
9733
9734 2003-09-21  Havoc Pennington  <hp@pobox.com>
9735
9736         Get matching rules mostly working in the bus; only actually
9737         parsing the rule text remains. However, the client side of
9738         "signal connections" hasn't been started, this patch is only the
9739         bus side.
9740         
9741         * dbus/dispatch.c: fix for the matching rules changes
9742         
9743         * bus/driver.c (bus_driver_handle_remove_match)
9744         (bus_driver_handle_add_match): send an ack reply from these
9745         method calls
9746
9747         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9748         arguments, reported by Seth Nickell
9749
9750         * bus/config-parser.c (append_rule_from_element): support
9751         eavesdrop=true|false attribute on policies so match rules 
9752         can be prevented from snooping on the system bus.
9753
9754         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9755         and "destination" in attribute names; fix some docs bugs; 
9756         add eavesdrop=true|false attribute
9757
9758         * bus/driver.c (bus_driver_handle_add_match)
9759         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9760         messages
9761
9762         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9763         rid of broadcast service concept, signals are just always broadcast
9764
9765         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9766         mostly implement matching rules stuff (currently only exposed as signal
9767         connections)
9768
9769 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9770
9771         * doc/dbus-specification.sgml: Change the header field name
9772         to be an enum and update the rest of the spec to reference
9773         the fields using the conventinal name.
9774
9775         * dbus/dbus-protocol.h: update to reflect the spec.
9776
9777         * doc/TODO: add item to remove the 4 byte alignment requirement.
9778         
9779         * dbus/dbus-message.c: Remove the code to generalise the
9780         header/body length and serial number header fields as named
9781         header fields so we can reference field names using the 
9782         protocol values.
9783         (append_int_field), (append_uint_field), (append_string_field):
9784         Append the field name as a byte rather than four chars.
9785         (delete_int_or_uint_field), (delete_string_field): reflect the
9786         fact that the field name and typecode now occupy 4 bytes instead
9787         of 8.
9788         (decode_string_field), (decode_header_data): update to reflect
9789         protocol changes and move the field specific encoding from
9790         decode_string_field() back into decode_header_data().
9791         
9792         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9793         Add utility to aid debugging.
9794         
9795         * dbus/dbus-message-builder.c:
9796         (append_string_field), (_dbus_message_data_load): Update to
9797         reflect protocol changes; Change the FIELD_NAME directive
9798         to HEADER_FIELD and allow it to take the field's conventional
9799         name rather than the actual value.
9800         
9801         * test/data/*/*.message: Update to use HEADER_FIELD instead
9802         of FIELD_NAME; Always align the header on an 8 byte boundary
9803         *before* updating the header length.
9804
9805 2003-09-15  Havoc Pennington  <hp@pobox.com>
9806
9807         * dbus/dbus-pending-call.c: add the get/set object data
9808         boilerplate as for DBusConnection, etc. Use generic object data
9809         for the notify callback.
9810
9811         * glib/dbus-gparser.c (parse_node): parse child nodes
9812
9813         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9814         
9815         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9816         contain functions shared between the convenience lib and the
9817         installed lib
9818
9819         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9820         -export-symbols-regex to the GLib library
9821
9822         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9823         fix the locking in here, and add a default handler for
9824         Introspect() that just returns sub-nodes.
9825
9826 2003-09-14  Havoc Pennington  <hp@pobox.com>
9827
9828         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9829         rather than gfoo consistent
9830
9831         * glib/dbus-gproxy.h: delete for now, move contents to
9832         dbus-glib.h, because the include files don't work right since we
9833         aren't in the dbus/ subdir.
9834         
9835         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9836         (dbus_gproxy_end_call): finish
9837         (dbus_gproxy_begin_call): finish
9838
9839         * glib/dbus-gmain.c (dbus_set_g_error): new
9840
9841         * glib/dbus-gobject.c (handle_introspect): include information
9842         about child nodes in the introspection
9843
9844         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9845         function to help in implementation of introspection
9846
9847         * dbus/dbus-object-tree.c
9848         (_dbus_object_tree_list_registered_and_unlock): new function
9849
9850 2003-09-12  Havoc Pennington  <hp@pobox.com>
9851
9852         * glib/dbus-gidl.h: add common base class for all the foo_info
9853         types
9854
9855         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9856         similar to kdcop
9857
9858         * test/Makefile.am: try test srcdir -ef . in addition to test
9859         srcdir = ., one of them should work (yeah lame)
9860         
9861         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9862         library
9863         
9864         * glib/dbus-gparser.h: make description_load routines return
9865         NodeInfo* not Parser*
9866
9867         * Makefile.am (SUBDIRS): build test dir after all library dirs
9868
9869         * configure.in: add GTK+ detection
9870
9871 2003-09-07  Havoc Pennington  <hp@pobox.com>
9872
9873         * Make Doxygen contented.
9874
9875 2003-09-07  Havoc Pennington  <hp@pobox.com>
9876
9877         * doc/dbus-specification.sgml: more updates
9878
9879 2003-09-06  Havoc Pennington  <hp@pobox.com>
9880
9881         * doc/dbus-specification.sgml: partial updates
9882
9883         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9884         zillionth time; hopefully I edited the right file this time.
9885
9886         * bus/config-parser.c (append_rule_from_element): support
9887         send_type, send_path, receive_type, receive_path
9888
9889         * bus/policy.c: add message type and path to the list of things
9890         that can be "firewalled"
9891
9892 2003-09-06  Havoc Pennington  <hp@pobox.com>
9893
9894         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9895         (dbus_connection_register_object_path): make this not handle
9896         messages to paths below the given path
9897
9898 2003-09-03  Havoc Pennington  <hp@pobox.com>
9899
9900         * test/glib/Makefile.am: add this with random glib-linked test
9901         programs
9902
9903         * glib/Makefile.am: remove the random test programs from here,
9904         leave only the unit tests
9905
9906         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9907         uscore/javacaps conversion, and fix     
9908         (get_object_property, set_object_property): change to .NET
9909         convention for mapping props to methods, set_FooBar/get_FooBar, 
9910         since one language has such a convention we may as well copy it. 
9911         Plus real methods in either getFooBar or get_foo_bar style won't 
9912         collide with this convention.
9913
9914 2003-09-01  Havoc Pennington  <hp@pobox.com>
9915
9916         * glib/dbus-gparser.c: implement
9917
9918         * glib/dbus-gobject.c: start implementing skeletons support
9919
9920         * configure.in: when disabling checks/assert, also define
9921         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9922
9923 2003-09-01  Havoc Pennington  <hp@pobox.com>
9924
9925         * glib/Makefile.am: rearrange a bunch of files and get "make
9926         check" framework set up
9927
9928 2003-08-31  Havoc Pennington  <hp@pobox.com>
9929
9930         * fix build with --disable-tests
9931
9932 2003-08-30  Havoc Pennington  <hp@pobox.com>
9933
9934         * dbus/dbus-connection.c: purge DBusMessageHandler
9935
9936         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9937         use callbacks everywhere
9938
9939 2003-08-30  Havoc Pennington  <hp@pobox.com>
9940
9941         * test/data/valid-config-files/system.d/test.conf: change to 
9942         root for the user so warnings don't get printed
9943
9944         * dbus/dbus-message.c: add dbus_message_get_path,
9945         dbus_message_set_path
9946         
9947         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9948         dispatching to a path
9949
9950         * dbus/dbus-string.c (_dbus_string_validate_path): add
9951
9952         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9953         (_dbus_marshal_object_path): implement
9954
9955         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9956         to contain the path to the target object
9957         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9958         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9959
9960 2003-08-30  Havoc Pennington  <hp@pobox.com>
9961
9962         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9963
9964 2003-08-29  Havoc Pennington  <hp@pobox.com>
9965
9966         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9967         registered
9968         (struct DBusObjectSubtree): shrink this
9969         a lot, since we may have a lot of them
9970         (_dbus_object_tree_free_all_unlocked): implement
9971         (_dbus_object_tree_dispatch_and_unlock): implement
9972
9973 2003-08-29  Havoc Pennington  <hp@pobox.com>
9974
9975         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9976
9977 2003-08-28  Havoc Pennington  <hp@pobox.com>
9978
9979         purge DBusObjectID
9980         
9981         * dbus/dbus-connection.c: port to no ObjectID, create a
9982         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9983
9984         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9985         everything except UnregisterFunction and MessageFunction
9986         
9987         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9988         add DBUS_TYPE_OBJECT_PATH
9989         
9990         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9991         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9992         path-based object IDs
9993
9994 2003-08-25  Havoc Pennington  <hp@pobox.com>
9995
9996         Just noticed that dbus_message_test is hosed, I wonder when I
9997         broke that. I thought make check was passing earlier...
9998         
9999         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10000         container tree, will replace most of dbus-object-registry
10001
10002         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10003         screwup
10004
10005 2003-08-19  Havoc Pennington  <hp@pobox.com>
10006
10007         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10008         (dbus_message_is_error): fix this function
10009
10010         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10011         match
10012
10013         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10014         reflect clarified man page
10015         (bus_client_policy_check_can_send): ditto
10016         
10017         * bus/session.conf.in: fixup
10018
10019         * bus/system.conf.in: fixup
10020
10021 2003-08-18  Havoc Pennington  <hp@redhat.com>
10022
10023         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10024
10025         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10026         dumb bug created earlier (wrong order of args to
10027         decode_header_data())
10028         
10029         * tools/dbus-send.c: port
10030
10031         * tools/dbus-print-message.c (print_message): port
10032
10033         * test/data/*messages: port all messages over
10034         
10035         * dbus/dbus-message-builder.c: support including 
10036         message type
10037         
10038         * bus/driver.c: port over
10039         
10040         * bus/dispatch.c: port over to new stuff
10041
10042         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10043         rename disconnect signal to "Disconnected"
10044
10045 2003-08-17  Havoc Pennington  <hp@pobox.com>
10046
10047         This doesn't compile yet, but syncing up so I can hack on it from
10048         work. What are branches for if not broken code? ;-)
10049         
10050         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10051         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10052         DBUS_HEADER_FIELD_ERROR_NAME
10053         
10054         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10055         for the interface+member pairs
10056         (string_hash): change to use g_str_hash algorithm
10057         (find_direct_function, find_string_function): refactor these to
10058         share most code.
10059         
10060         * dbus/dbus-message.c: port all of this over to support 
10061         interface/member fields instead of name field
10062
10063         * dbus/dbus-object-registry.c: port over
10064         
10065         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10066         from _dbus_string_validate_name
10067
10068         * bus/dbus-daemon-1.1: change file format for the 
10069         <deny>/<allow> stuff to match new message naming scheme
10070
10071         * bus/policy.c: port over
10072
10073         * bus/config-parser.c: parse new format
10074         
10075 2003-08-16  Havoc Pennington  <hp@pobox.com>
10076
10077         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10078         broken assertion
10079
10080         * glib/dbus-gproxy.c: some hacking
10081
10082 2003-08-15  Havoc Pennington  <hp@redhat.com>
10083
10084         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10085
10086         * dbus/dbus-connection.c
10087         (dbus_connection_send_with_reply_and_block): factor out internals;
10088         change to convert any error replies to DBusError instead of 
10089         returning them as a message
10090
10091 2003-08-15  Havoc Pennington  <hp@pobox.com>
10092
10093         * dbus/dbus-connection.c, 
10094         dbus/dbus-pending-call.c: Finish the pending call stuff
10095
10096 2003-08-14  Havoc Pennington  <hp@redhat.com>
10097
10098         * dbus/dbus-pending-call.c: start on new object that will replace
10099         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10100         replies
10101
10102         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10103         with remote interfaces
10104
10105         * dbus/dbus-gidl.c: do the boring boilerplate in here
10106         
10107 2003-08-12  Havoc Pennington  <hp@pobox.com>
10108
10109         * bus/dispatch.c (bus_dispatch): make this return proper 
10110         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10111
10112         * dbus/dbus-errors.c (dbus_set_error): use
10113         _dbus_string_append_printf_valist
10114
10115         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10116         (_dbus_string_append_printf): new
10117
10118         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10119         UNKNOWN_METHOD
10120
10121         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10122         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10123         message is unhandled.
10124
10125 2003-08-11  Havoc Pennington  <hp@pobox.com>
10126
10127         * bus/test.c (client_disconnect_handler): change to return
10128         HANDLED (would have been REMOVE_MESSAGE)
10129
10130         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10131         HANDLED/NOT_YET_HANDLED instead of
10132         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10133         should be used.
10134
10135 2003-08-10  Havoc Pennington  <hp@pobox.com>
10136
10137         * tools/dbus-send.c (main): add --type argument, for now
10138         supporting only method_call and signal types.
10139
10140         * tools/dbus-print-message.c: print message type
10141
10142         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10143         init connection->objects
10144
10145         * doc/dbus-specification.sgml: fix sgml
10146
10147         * bus/*.c: port over to object-instance API changes
10148
10149         * test/test-service.c: ditto
10150         
10151         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10152         name, we will have to fix up the rest of the code to also handle
10153         this
10154         (dbus_message_new): generic message-creation call
10155         (set_string_field): allow appending name field
10156
10157 2003-08-06  Havoc Pennington  <hp@pobox.com>
10158
10159         * dbus/dbus-object-registry.c: implement signal connection 
10160         and dispatch
10161
10162         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10163
10164         * dbus/dbus-internals.c (_dbus_memdup): new function
10165
10166 2003-08-02  Havoc Pennington  <hp@pobox.com>
10167
10168         * dbus/dbus-message.c (dbus_message_get_no_reply)
10169         (dbus_message_set_no_reply): add these and remove
10170         set_is_error/get_is_error
10171
10172         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10173         remove the ERROR flag, since there's now an ERROR type
10174
10175 2003-08-01  Havoc Pennington  <hp@pobox.com>
10176
10177         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10178         implement
10179
10180         * dbus/dbus-message.c (dbus_message_get_type): new function
10181
10182         * doc/dbus-specification.sgml: add "type" byte to messages
10183
10184 2003-08-01  Havoc Pennington  <hp@pobox.com>
10185
10186         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10187         a message type enum to distinguish kinds of message
10188         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10189         that need not be replied to
10190
10191 2003-08-01  Havoc Pennington  <hp@pobox.com>
10192
10193         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10194         (unpack_8_octets): fix no-64-bit-int bug
10195
10196         * dbus/dbus-object-registry.c (validate_id): validate the 
10197         connection ID bits, not just the instance ID.
10198
10199         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10200         the connection-global 33 bits of the object ID
10201
10202         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10203         object ID in the new way
10204
10205         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10206         define server/client/instance bits.
10207
10208 2003-07-30  Havoc Pennington  <hp@pobox.com>
10209
10210         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10211         build
10212
10213 2003-07-13  Havoc Pennington  <hp@pobox.com>
10214
10215         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10216         fields to DBusObjectVTable and DBusObjectInfo
10217
10218 2003-07-12  Havoc Pennington  <hp@pobox.com>
10219
10220         * dbus/dbus-object-registry.c: implement unit test,
10221         fix bugs discovered in process
10222
10223         * dbus/dbus-connection.c: remove handler_table and
10224         register_handler(), add DBusObjectRegistry usage
10225
10226         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10227         (dbus_object_id_set_null): new functions
10228
10229 2003-07-08  Havoc Pennington  <hp@pobox.com>
10230
10231         * dbus/dbus-object.c: implement some of this
10232
10233         * dbus/dbus-object-registry.c
10234         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10235         param
10236         (_dbus_object_registry_new): handle OOM
10237
10238 2003-07-08  Havoc Pennington  <hp@pobox.com>
10239
10240         * dbus/dbus-object.h: sketch out an API for registering objects
10241         with a connection, that allows us to use as little as 24 bytes
10242         per object and lets application code represent an object in 
10243         any conceivable way.
10244
10245         * dbus/dbus-object-registry.c: implement the hard bits of the
10246         DBusConnection aspect of object API. Not yet wired up.
10247         
10248 2003-07-06  Havoc Pennington  <hp@pobox.com>
10249
10250         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10251         (_dbus_marshal_object_id): new
10252         (_dbus_demarshal_object_id): new
10253         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10254         consolidate identical switch cases. Don't conditionalize handling
10255         of DBUS_TYPE_UINT64, need to handle the type always.
10256         (_dbus_marshal_validate_arg): consolidate identical cases, and
10257         handle DBUS_TYPE_OBJECT_ID
10258
10259         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10260
10261         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10262
10263 2003-09-28  Havoc Pennington  <hp@pobox.com>
10264
10265         * real 0.13 release
10266
10267 2003-09-28  Havoc Pennington  <hp@pobox.com>
10268
10269         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10270         to work with Debian db2html
10271
10272 2003-09-28  Havoc Pennington  <hp@pobox.com>
10273
10274         * configure.in: 0.13
10275
10276         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10277         stylesheet-images for benefit of Debian
10278         
10279         Change back to using filesystem-linked sockets for the system
10280         bus, so only root can create the default system bus address.
10281         
10282         * bus/system.conf.in: change to use
10283         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10284
10285         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10286         from here.
10287
10288         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10289         here, and AC_DEFINE DBUS_SYSTEM_PATH
10290
10291 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10292
10293         * doc/TODO:
10294         * doc/busconfig.dtd:
10295         Add busconfig DTD.
10296         
10297 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10298
10299         * doc/dbus-specification.sgml:
10300         Add activation reply values.
10301         
10302 2003-08-05  Havoc Pennington  <hp@redhat.com>
10303
10304         * configure.in: 0.12
10305
10306 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10307
10308         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10309         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10310         (add_watch), (remove_watch), (create_source):
10311         Refcount fds, fixes some reentrancy issues.
10312         
10313 2003-07-30  Havoc Pennington  <hp@redhat.com>
10314
10315         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10316         bus address to be abstract if we have abstract sockets
10317
10318         * NEWS: update
10319
10320 2003-07-28  Havoc Pennington  <hp@redhat.com>
10321
10322         * bus/messagebus.in: fix to avoid processname/servicename 
10323         confusion, from Michael Kearey
10324         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10325         
10326 2003-07-23  Havoc Pennington  <hp@pobox.com>
10327
10328         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10329         fix from Andy Hanton to remove broken "+1"
10330
10331 2003-07-16  Havoc Pennington  <hp@pobox.com>
10332
10333         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10334         babysitter process, as suggested by Thomas Leonard, so 
10335         an "eval `dbus-launch --exit-with-session`" will actually 
10336         return
10337
10338 2003-07-16  Havoc Pennington  <hp@pobox.com>
10339
10340         * configure.in: print out EXPANDED_* variables in the summary at
10341         the end; clean up the code that computes EXPANDED_ variables and
10342         get the ones using exec_prefix right. Should make things work
10343         when you build without --prefix
10344
10345 2003-06-29  Havoc Pennington  <hp@pobox.com>
10346
10347         * mono/Test.cs (class Test): fire up a main loop and run it
10348
10349         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10350         done once, the app has to do it
10351
10352 2003-06-26  Havoc Pennington  <hp@pobox.com>
10353
10354         * mono/Connection.cs: set up connection with the glib main loop
10355
10356 2003-07-01  Havoc Pennington  <hp@redhat.com>
10357
10358         * doc/dbus-specification.sgml: clarify the format of a type code,
10359         change suggested by Jim Blandy
10360
10361 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10362
10363         * doc/Makefile.am:
10364         * tools/Makefile.am: Don't assume srcdir == builddir.
10365
10366         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10367         the allocated block.
10368         (_dbus_memory_test): New function.
10369         * dbus/dbus-test.h: Add _dbus_memory_test ().
10370         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10371
10372         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10373         of %c%c%c%c.
10374         (dbus_message_new): Remove obsolete @todo.
10375
10376         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10377         (_dbus_marshal_set_uint64): Fix comment.
10378
10379         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10380         hardcode FIELD_REPLY_SERIAL.
10381
10382         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10383         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10384
10385         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10386         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10387
10388 2003-06-24  Havoc Pennington  <hp@pobox.com>
10389
10390         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10391
10392 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10393
10394         * configure.in:
10395         * gcj/.cvsignore:
10396         * gcj/Hello.java:
10397         * gcj/Makefile.am:
10398         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10399         * gcj/org/.cvsignore:
10400         * gcj/org/Makefile.am:
10401         * gcj/org/freedesktop/.cvsignore:
10402         * gcj/org/freedesktop/Makefile.am:
10403         * gcj/org/freedesktop/dbus/.cvsignore:
10404         * gcj/org/freedesktop/dbus/Makefile.am:
10405         * gcj/org/freedesktop/dbus/Message.java: (Message),
10406         (Message.Message):
10407         * gcj/org/freedesktop/dbus/natMessage.cc:
10408         Fix the build system.
10409
10410 2003-06-22  Havoc Pennington  <hp@pobox.com>
10411
10412         * mono/Connection.cs: add more bindings
10413
10414         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10415         more than once.
10416
10417 2003-06-22  Havoc Pennington  <hp@pobox.com>
10418
10419         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10420         Start wrapping more stuff.
10421
10422 2003-06-22  Havoc Pennington  <hp@pobox.com>
10423
10424         * mono/Message.cs: implement Message.Wrap() that ensures we only
10425         have a single C# wrapper per DBusMessage, assuming it works which
10426         it probably doesn't.
10427
10428         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10429         (dbus_message_free_data_slot): new
10430         (dbus_message_set_data): new
10431         (dbus_message_get_data): new
10432
10433 2003-06-22  Havoc Pennington  <hp@pobox.com>
10434
10435         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10436         (_dbus_data_slot_allocator_alloc): rework these to keep a
10437         reference count on each slot and automatically manage a global
10438         slot ID variable passed in by address
10439
10440         * bus/bus.c: convert to new dataslot API
10441
10442         * dbus/dbus-bus.c: convert to new dataslot API
10443
10444         * dbus/dbus-connection.c: convert to new dataslot API
10445
10446         * dbus/dbus-server.c: convert to new dataslot API
10447
10448         * glib/dbus-gmain.c: ditto
10449
10450         * bus/test.c: ditto
10451
10452         * bus/connection.c: ditto
10453
10454 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10455
10456         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10457         after the gcj checks so that the correct configuration tags
10458         will be added to libtool.
10459
10460         * dbus-glib-1.pc.in: No need to specify any includes since
10461         dbus-1.pc.in has those.
10462
10463 2003-06-22  Havoc Pennington  <hp@pobox.com>
10464
10465         * mono/*, gcj/*, configure.in, Makefile.am:
10466         Check in makefiles and subdirs for mono and gcj bindings.
10467         Neither binding actually exists, just trying to get through
10468         all the build and other boring bits.
10469
10470 2003-06-21  Philip Blundell  <philb@gnu.org>
10471
10472         * tools/dbus-monitor.1: Updated.
10473
10474         * tools/dbus-send.1: Likewise.
10475
10476 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10477
10478         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10479         for hangup and error after checking read so we won't discard
10480         pending data if both hangup and read are set.
10481
10482 2003-06-19  Philip Blundell  <philb@gnu.org>
10483
10484         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10485
10486         * tools/dbus-send.c: Accept both --system and --session.
10487
10488         * tools/dbus-monitor.c: Same here.
10489
10490 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10491
10492         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10493         from C++ (Patch by Miloslav Trmac).
10494
10495 2003-06-15  Joe Shaw  <joe@assbarn.com>
10496
10497         * configure.in: Check for socklen_t.
10498
10499         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10500
10501         * test/test-segfault.c: Add #include <sys/time.h>
10502
10503         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10504         dbus-launch needs it.
10505
10506 2003-06-09  Havoc Pennington  <hp@redhat.com>
10507
10508         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10509         SUN_LEN, it breaks abstract socket usage
10510
10511         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10512         starts of lines.
10513
10514 2003-06-04  Havoc Pennington  <hp@pobox.com>
10515
10516         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10517         using unix:abstract=/foo, and when listening in a tmpdir
10518         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10519
10520         * dbus/dbus-transport.c (_dbus_transport_open): support
10521         unix:abstract=/foo
10522
10523         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10524         support abstract sockets
10525
10526         * dbus/dbus-transport-unix.c
10527         (_dbus_transport_new_for_domain_socket): support abstract sockets
10528
10529         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10530         toggle as an argument, implement abstract namespace support
10531         (_dbus_listen_unix_socket): ditto
10532
10533         * configure.in: add --enable-abstract-sockets and implement
10534         a configure check for autodetection of the right value.
10535
10536 2003-06-01  Havoc Pennington  <hp@pobox.com>
10537
10538         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10539         in /tmp (though on Linux this will end up being useless,
10540         when we add abstract namespace support)
10541
10542         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10543         subst'ing it
10544
10545 2003-05-28  Colin Walters  <walters@verbum.org>
10546
10547         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10548
10549 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10550
10551         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10552
10553 2003-05-17  Colin Walters  <walters@gnu.org>
10554
10555         * tools/dbus-send.c: Don't exit with an error code if --help was
10556         passed.  Default to using the session bus instead of the system
10557         one.
10558
10559         * tools/dbus-launch.c: Ditto.
10560
10561         * tools/dbus-monitor.c: Ditto.
10562
10563         * tools/dbus-send.1: Update with new arguments.
10564
10565         * tools/dbus-launch.c: Emit code to export variables.  New
10566         arguments -s and -c to specify shell syntax, and a bit of code to
10567         autodetect syntax.  Also, allow specifying a program to run.
10568
10569         * tools/dbus-launch.1: Update with new arguments.
10570
10571         * tools/dbus-send.1: Ditto.
10572
10573         * tools/dbus-monitor.1: Ditto.
10574
10575 2003-05-17  Havoc Pennington  <hp@pobox.com>
10576
10577         * bus/config-parser.c (merge_included): merge in policies from
10578         child configuration file.
10579
10580         * bus/policy.c (bus_policy_merge): function to merge two policies
10581         together
10582
10583 2003-05-16  Havoc Pennington  <hp@redhat.com>
10584
10585         * dbus/dbus-connection.c: disable verbose lock spew
10586
10587         * tools/dbus-send.c: add --print-reply command line option
10588
10589         * tools/dbus-print-message.h (print_message): new util function
10590         shared by dbus-send and dbus-monitor
10591
10592         * tools/dbus-monitor.c (handler_func): exit on disconnect
10593
10594         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10595         disconnected, don't try to use the read_watch
10596
10597         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10598         so we can find this bug more easily
10599
10600 2003-05-16  Havoc Pennington  <hp@redhat.com>
10601
10602         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10603         NULL as DBusHashTable is annoyingly likely to do.
10604
10605 2003-05-16  Colin Walters  <walters@verbum.org>
10606
10607         * tools/dbus-monitor.c: Add --session argument and usage()
10608         function.
10609
10610         * tools/dbus-monitor.1: Update with new --session arg.
10611
10612         * bus/Makefile.am (install-data-hook): Create
10613         $(libdir)/dbus-1.0/services so that the session bus is happy.
10614
10615 2003-05-15  Havoc Pennington  <hp@redhat.com>
10616
10617         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10618         on non-x86. ifdef's are evil.
10619
10620 2003-05-15  Havoc Pennington  <hp@redhat.com>
10621
10622         * configure.in: 0.11
10623
10624         * NEWS: update
10625
10626         * bus/Makefile.am (initddir): apparently we are supposed to put
10627         init scripts in /etc/rc.d/init.d not /etc/init.d
10628
10629         * bus/Makefile.am: remove the "you must --enable-tests to make
10630         check" as it broke distcheck
10631
10632         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10633
10634 2003-05-13  James Willcox  <jwillcox@gnome.org>
10635
10636         * configure.in:
10637         * bus/activation.c: (bus_activation_service_created),
10638         (bus_activation_activate_service):
10639         * bus/driver.c: (bus_driver_send_service_deleted),
10640         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10641         (bus_driver_send_service_acquired),
10642         (bus_driver_send_welcome_message),
10643         (bus_driver_handle_list_services):
10644         * bus/session.conf.in:
10645         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10646         (dbus_bus_service_exists), (dbus_bus_activate_service):
10647         * dbus/dbus-bus.h:
10648
10649         Add some convenience API which lets you activate a service, and did a
10650         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10651         and dbus_message_get_args()
10652
10653 2003-05-11  Havoc Pennington  <hp@pobox.com>
10654
10655         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10656         calling _dbus_marshal_validate_arg() for every byte in a byte
10657         array, etc.
10658
10659         * dbus/dbus-message-handler.c: use atomic reference counting to
10660         reduce number of locks slightly; the global lock in here sucks
10661
10662         * dbus/dbus-connection.c
10663         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10664         update_dispatch_status that can be called with lock held; then use
10665         in a couple places to reduce locking/unlocking
10666         (dbus_connection_send): hold the lock over the whole function
10667         instead of acquiring it twice.
10668
10669         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10670
10671         * bus/connection.c (bus_connections_setup_connection): fix access
10672         to already-freed memory.
10673
10674         * dbus/dbus-connection.c: keep a little cache of linked list
10675         nodes, to avoid using the global linked list alloc lock in the
10676         normal send-message case. Instead we just use the connection lock
10677         that we already have to take.
10678
10679         * dbus/dbus-list.c (_dbus_list_find_last): new function
10680
10681         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10682         change to use a struct for the atomic type; fix docs,
10683         they return value before increment, not after increment.
10684
10685         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10686         (_dbus_string_append_8_aligned): new functions to try to
10687         microoptimize this operation.
10688         (reallocate_for_length): break this out of set_length(), to
10689         improve profile info, and also so we can consider inlining the
10690         set_length() part.
10691
10692         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10693         strings with some preallocation, cuts down on our calls to realloc
10694         a fair bit. Though if we can get the "move entire string to empty
10695         string" optimization below to kick in here, it would be better.
10696
10697         * dbus/dbus-string.c (_dbus_string_move): just call
10698         _dbus_string_move_len
10699         (_dbus_string_move_len): add a special case for moving
10700         an entire string into an empty string; we can just
10701         swap the string data instead of doing any reallocs.
10702         (_dbus_string_init_preallocated): new function
10703
10704 2003-05-11  Havoc Pennington  <hp@pobox.com>
10705
10706         Write a "test-profile" that does echo client-server with threads;
10707         profile reveals lock contention, memcpy/realloc of buffers, and
10708         UTF-8 validation as hot spots. 20% of lock contention eliminated
10709         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10710         contention is global mempool locks for GList and DBusList.
10711
10712         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10713         x86 implementation
10714
10715         * dbus/dbus-connection.c (struct DBusConnection): use
10716         dbus_atomic_t for the reference count
10717
10718         * dbus/dbus-message.c (struct DBusMessage): declare
10719         dbus_atomic_t values as volatile
10720
10721         * configure.in: code to detect ability to use atomic integer
10722         operations in assembly, from GLib patch
10723
10724         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10725         time, tired of it being wrong in threads and forked processes
10726
10727         * glib/test-profile.c: a little program to bounce messages back
10728         and forth between threads and eat CPU
10729
10730         * dbus/dbus-connection.c: add debug spew macros for debugging
10731         thread locks; include config.h at top; fix deadlock in
10732         dbus_connection_flush()
10733
10734 2003-05-08  Havoc Pennington  <hp@pobox.com>
10735
10736         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10737         data from getting written, and there wasn't a good reason to
10738         use _exit really.
10739
10740         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10741         dbus_verbose lines in test coverage
10742         (main): add list of functions sorted by # of untested blocks
10743         to the coverage report
10744
10745         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10746
10747         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10748
10749         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10750         extend test coverage
10751
10752         * test/data/auth/cancel.auth-script: test canceling an
10753         authentication
10754
10755         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10756         aren't used. in CVS history if we end up needing them.
10757
10758 2003-05-04  Havoc Pennington  <hp@pobox.com>
10759
10760         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10761         unit test
10762
10763         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10764         function, which assumed length was in # of strings, not bytes
10765
10766         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10767         missing coverage
10768
10769         * dbus/dbus-connection.c
10770         (_dbus_connection_queue_received_message): disable function for
10771         now, we are only using it in test mode
10772
10773         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10774         remove a mistaken FIXME
10775
10776 2003-05-04  Havoc Pennington  <hp@pobox.com>
10777
10778         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10779         unlock mutex on successful return, patch from Anders Gustafsson
10780
10781 2003-05-04  Havoc Pennington  <hp@pobox.com>
10782
10783         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10784         Anders Gustafsson
10785
10786 2003-05-04  Havoc Pennington  <hp@pobox.com>
10787
10788         * tools/dbus-launch.c: implement
10789
10790         * bus/main.c (main), bus/bus.c (bus_context_new):
10791         implement --print-pid and --fork
10792
10793 2003-05-03  Havoc Pennington  <hp@redhat.com>
10794
10795         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10796         the address had no value, and add to test suite. Fix and
10797         regression test from Miloslav Trmac
10798
10799 2003-05-03  Havoc Pennington  <hp@pobox.com>
10800
10801         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10802         watch is invalid when handled
10803
10804         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10805         dbus-launch utility to launch the bus from a shell script.  Didn't
10806         actually implement dbus-launch yet, it's just a placeholder still.
10807
10808 2003-05-03  Havoc Pennington  <hp@pobox.com>
10809
10810         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10811         daemon; also documents daemon config file, so replaces
10812         doc/config-file.txt. Corrected some stuff from config-file.txt in
10813         the process of moving it.
10814
10815 2003-05-03  Havoc Pennington  <hp@pobox.com>
10816
10817         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10818         add some man pages
10819
10820 2003-05-03  Colin Walters  <walters@verbum.org>
10821
10822         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10823         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10824
10825         * Makefile.am: Update to use new .pc versioning scheme.
10826
10827 2003-05-02  Havoc Pennington  <hp@redhat.com>
10828
10829         * bus/system.conf.in: allow send/receive to/from message bus
10830         service
10831
10832 2003-04-30  Havoc Pennington  <hp@redhat.com>
10833
10834         * configure.in: print a note when building with unit tests and
10835         without assertions
10836
10837 2003-04-30  Havoc Pennington  <hp@redhat.com>
10838
10839         * Makefile.am: add a check-local that complains if you didn't
10840         configure with --enable-tests
10841
10842 2003-04-29  Havoc Pennington  <hp@redhat.com>
10843
10844         * glib/dbus-gmain.c: docs cleanups
10845
10846         * dbus/dbus-types.h: add docs on int64 types
10847
10848         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10849         public API docs section
10850
10851 2003-04-29  Havoc Pennington  <hp@redhat.com>
10852
10853         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10854         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10855         parallel install API version, not with the D-BUS package version.
10856
10857         * HACKING: move some of README over here
10858
10859         * README: updates, and document API/ABI policy
10860
10861         * configure.in: reindentation
10862
10863 2003-04-29  Havoc Pennington  <hp@redhat.com>
10864
10865         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10866         to use this library" to be sure people have the right
10867         expectations.
10868
10869 2003-04-28  Havoc Pennington  <hp@redhat.com>
10870
10871         * configure.in: add --enable-docs which by default is auto yes if
10872         doxygen and db2html found, no otherwise; but can be forced on/off
10873
10874         * doc/Makefile.am: conditionalize whether to build docs on
10875         --enable-docs
10876
10877 2003-04-28  Havoc Pennington  <hp@redhat.com>
10878
10879         * configure.in: 0.10
10880
10881         * NEWS: update
10882
10883         * bus/system.conf.in: add <includedir>system.d</includedir>
10884
10885         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10886         username was provided but not uid
10887
10888         * bus/config-parser.c (struct BusConfigParser): keep track of
10889         whether the parser is toplevel or was included; change some
10890         of the error handling if it's included.
10891
10892 2003-04-27  Havoc Pennington  <hp@pobox.com>
10893
10894         Unbreak my code...
10895
10896         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10897         report correct status if we finish processing authentication
10898         inside this function.
10899
10900         * bus/activation.c (try_send_activation_failure): use
10901         bus_transaction_send_error_reply
10902
10903         * bus/connection.c (bus_connection_get_groups): return an error
10904         explaining the problem
10905
10906         * bus/bus.c (bus_context_check_security_policy): implement
10907         restriction here that inactive connections can only send the
10908         hello message. Also, allow bus driver to send anything to
10909         any recipient.
10910
10911         * bus/connection.c (bus_connection_complete): create the
10912         BusClientPolicy here instead of on-demand.
10913         (bus_connection_get_policy): don't return an error
10914
10915         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10916         sender field in message being replied to
10917
10918         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10919         causing it to return FALSE always
10920
10921         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10922         we checked sender rather than destination
10923
10924 2003-04-25  Havoc Pennington  <hp@redhat.com>
10925
10926         test suite is slightly hosed at the moment, will fix soon
10927
10928         * bus/connection.c (bus_connections_expire_incomplete): fix to
10929         properly disable the timeout when required
10930         (bus_connection_set_name): check whether we can remove incomplete
10931         connections timeout after we complete each connection.
10932
10933         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10934         probably still broken.
10935
10936         * bus/services.c (bus_registry_acquire_service): implement max
10937         number of services owned, and honor allow/deny rules on which
10938         services a connection can own.
10939
10940         * bus/connection.c (bus_connection_get_policy): report errors here
10941
10942         * bus/activation.c: implement limit on number of pending
10943         activations
10944
10945 2003-04-25  Havoc Pennington  <hp@redhat.com>
10946
10947         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10948         where we used >= 0 instead of != DBUS_UID_UNSET.
10949
10950 2003-04-25  Havoc Pennington  <hp@redhat.com>
10951
10952         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10953         were toggled without add/remove, fix from Anders Gustafsson
10954
10955 2003-04-24  Havoc Pennington  <hp@redhat.com>
10956
10957         * test/data/valid-config-files/basic.conf: add <limit> tags to
10958         this test
10959
10960         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10961         <limit> tag in configuration file.
10962
10963 2003-04-24  Havoc Pennington  <hp@redhat.com>
10964
10965         * bus/dispatch.c: somehow missed some name_is
10966
10967         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10968         (_dbus_timeout_set_interval): new
10969
10970         * bus/connection.c (bus_connections_setup_connection): record time
10971         when each connection is first set up, and expire them after the
10972         auth timeout passes.
10973
10974 2003-04-24  Havoc Pennington  <hp@redhat.com>
10975
10976         * dbus/dbus-message.c (dbus_message_name_is): rename
10977         (dbus_message_service_is): rename
10978         (dbus_message_sender_is): rename
10979         (dbus_message_get_service): rename
10980
10981 2003-04-24  Havoc Pennington  <hp@redhat.com>
10982
10983         * configure.in: add --enable-checks
10984
10985         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10986
10987         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10988         to use thread locks.
10989         (_dbus_connection_handler_destroyed_locked): move some private
10990         functions into proper docs group
10991
10992         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10993         _dbus_return_val_if_fail
10994
10995         Throughout: use dbus_return_if_fail
10996
10997 2003-04-23  James Willcox  <jwillcox@gnome.org>
10998
10999         * glib/dbus-glib.h:
11000         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11001         (dbus_connection_setup_with_g_main),
11002         (dbus_server_setup_with_g_main):
11003         * glib/test-dbus-glib.c: (main):
11004         * glib/test-thread-client.c: (main):
11005         * glib/test-thread-server.c: (new_connection_callback), (main):
11006         * tools/dbus-monitor.c: (main):
11007
11008         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11009         and dbus_server_setup_with_g_main().
11010
11011 2003-04-20  Havoc Pennington  <hp@pobox.com>
11012
11013         * doc/dbus-specification.sgml: document the restrictions on
11014         message and service names
11015
11016 2003-04-22  Havoc Pennington  <hp@redhat.com>
11017
11018         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11019         support, and do some code cleanups to share more code and
11020         speed up array marshal/demarshal.
11021
11022         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11023
11024         * configure.in: generate dbus-arch-deps.h
11025
11026         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11027         64-bit typecodes
11028
11029 2003-04-22  Havoc Pennington  <hp@redhat.com>
11030
11031         * test/data/valid-messages/opposite-endian.message: fix test
11032         to use proper type for rply field
11033
11034         * test/data/invalid-messages: add tests for below validation
11035
11036         * dbus/dbus-message.c (decode_header_data): validate field types,
11037         and validate that named fields are valid names
11038         (decode_name_field): consider messages in the
11039         org.freedesktop.Local. namespace to be invalid.
11040
11041         * dbus/dbus-string.c (_dbus_string_validate_name): new
11042
11043 2003-04-19  Havoc Pennington  <hp@pobox.com>
11044
11045         * bus/driver.c (bus_driver_handle_hello): check limits and
11046         return an error if they are exceeded.
11047
11048         * bus/connection.c: maintain separate lists of active and inactive
11049         connections, and a count of each. Maintain count of completed
11050         connections per user. Implement code to check connection limits.
11051
11052         * dbus/dbus-list.c (_dbus_list_unlink): export
11053
11054         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11055         number of bytes in the message queue for a connection
11056
11057 2003-04-18  Havoc Pennington  <hp@pobox.com>
11058
11059         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11060
11061         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11062         memleaks
11063
11064         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11065         on realloc be sure to update the pointer in the keyring
11066
11067         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11068         offset to avoid writing to unallocated memory
11069
11070         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11071         try the next mechanism, so we properly handle OOM
11072
11073         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11074         on OOM.
11075         (_dbus_keyring_new): fix OOM bug
11076         (_dbus_keyring_new_homedir): always set error; impose a maximum
11077         number of keys we'll load from the file, mostly to speed up the
11078         test suite and make its OOM checks more useful, but also for
11079         general sanity.
11080
11081         * dbus/dbus-auth.c (process_error_server): reject authentication
11082         if we get an error from the client
11083         (process_cancel): on cancel, send REJECTED, per the spec
11084         (process_error_client): send CANCEL if we get an error from the
11085         server.
11086
11087 2003-04-18  Havoc Pennington  <hp@pobox.com>
11088
11089         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11090         debug spew
11091
11092         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11093         handling problem
11094
11095         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11096         about DBUS_TEST_HOMEDIR once
11097
11098         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11099         the environment
11100
11101         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11102         config file so we test the right thing
11103
11104         Throughout: assorted docs improvements
11105
11106 2003-04-18  Havoc Pennington  <hp@pobox.com>
11107
11108         * glib/dbus-gmain.c: adapt to watch changes
11109
11110         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11111
11112         * dbus/dbus-server.h: remove dbus_server_handle_watch
11113
11114         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11115
11116         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11117         like DBusTimeout, so we don't need dbus_connection_handle_watch
11118         etc.
11119
11120 2003-04-17  Havoc Pennington  <hp@redhat.com>
11121
11122         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11123         database usage so it all goes via the DBusUserDatabase cache.
11124
11125 2003-04-17  Havoc Pennington  <hp@redhat.com>
11126
11127         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11128         there was an OOM watch we skipped, we always return TRUE so we
11129         iterate again to have a look at it again. Fixes test suite hang.
11130         Code rearrangement also lets us lose some memset and only iterate
11131         over callbacks once.
11132
11133         * bus/driver.c (bus_driver_handle_message): sense of test for
11134         reply was backward
11135
11136 2003-04-16  Havoc Pennington  <hp@pobox.com>
11137
11138         * doc/dbus-specification.sgml: make spec say serials are unsigned
11139
11140         * dbus/dbus-message.h: change message serials to unsigned
11141
11142         * dbus/dbus-connection.c: adapt to message serials being unsigned
11143
11144 2003-04-15  Havoc Pennington  <hp@pobox.com>
11145
11146         * bus/bus.c: create and keep around a shared DBusUserDatabase
11147         object.
11148
11149         * bus/connection.c (bus_connection_get_groups): don't cache
11150         groups for user in the connection object, since user database
11151         object now does that.
11152
11153 2003-04-16  Havoc Pennington  <hp@redhat.com>
11154
11155         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11156         list of size counters
11157         (_dbus_message_loader_putback_message_link): put back a popped link
11158
11159         * dbus/dbus-connection.c
11160         (dbus_connection_set_max_live_messages_size): rename
11161         max_received_size
11162         (dbus_connection_get_outgoing_size): get size of outgoing
11163         queue
11164         (_dbus_connection_set_connection_counter): remove this cruft
11165
11166 2003-04-14  Havoc Pennington  <hp@redhat.com>
11167
11168         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11169         caching, but at some point we might want to be able to use a
11170         different database.
11171
11172         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11173         SHA1 conf file to test the sha1 auth mechanism, since the regular
11174         test always uses EXTERNAL when available.
11175
11176         * configure.in,
11177         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11178         add conf file that requires use of sha1 auth
11179
11180 2003-04-13  Havoc Pennington  <hp@pobox.com>
11181
11182         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11183         from Philip Blundell to send messages and monitor them.
11184
11185 2003-04-13  Havoc Pennington  <hp@pobox.com>
11186
11187         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11188         callbacks
11189
11190         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11191         users
11192
11193         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11194         fix to only recover unused bytes if we're already authenticated
11195         (_dbus_transport_get_is_authenticated): fix to still mark us
11196         authenticated if there are unused bytes.
11197
11198         * bus/dispatch.c: implement security policy checking
11199
11200         * bus/connection.c (bus_transaction_send_from_driver): new
11201
11202         * bus/bus.c (bus_context_check_security_policy): new
11203
11204         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11205         now we just set the DBusError and it gets converted to an error
11206         reply.
11207
11208         * bus/connection.c (allow_user_function): enable code using actual
11209         data from the config file
11210
11211         * bus/policy.c (list_allows_user): handle wildcard rules for
11212         user/group connection perms
11213
11214 2003-04-13  Havoc Pennington  <hp@pobox.com>
11215
11216         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11217
11218         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11219
11220         * bus/policy.c (bus_policy_append_mandatory_rule)
11221         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11222         (bus_policy_append_group_rule): new functions
11223
11224 2003-04-12  Havoc Pennington  <hp@pobox.com>
11225
11226         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11227
11228         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11229         the pid/gid/uid, just for paranoia.
11230
11231         * test/break-loader.c (randomly_do_n_things): find a byte
11232         containing a type code, and randomly change it to a different
11233         type code.
11234
11235 2003-04-12  Havoc Pennington  <hp@pobox.com>
11236
11237         * bus/policy.h: change BusPolicy to be the thing from the config
11238         file, and rename old BusPolicy to BusClientPolicy
11239
11240         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11241         match change in how policy works
11242
11243         * dbus/dbus-internals.h: mark assert_not_reached as
11244         __attribute((noreturn))__
11245
11246 2003-04-11  Havoc Pennington  <hp@redhat.com>
11247
11248         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11249         the broadcast service. Use boolean return for ServiceExists.
11250
11251 2003-04-11  Havoc Pennington  <hp@redhat.com>
11252
11253         * configure.in: add another directory to look for qt in.
11254
11255 2003-04-11  Havoc Pennington  <hp@redhat.com>
11256
11257         * AUTHORS: add Colin Walters
11258
11259 2003-04-11  Havoc Pennington  <hp@redhat.com>
11260
11261         * NEWS: update
11262
11263         * configure.in: 0.9
11264
11265 2003-04-11  Havoc Pennington  <hp@redhat.com>
11266
11267         * bus/messagebus.in: remove pid file when stopping the
11268         message bus, since the bus won't have privileges to remove it
11269         itself.
11270
11271 2003-04-11  Havoc Pennington  <hp@redhat.com>
11272
11273         * bus/bus.c (bus_context_new): move credentials change after
11274         creating pidfile
11275
11276 2003-04-11  Havoc Pennington  <hp@pobox.com>
11277
11278         * test/decode-gcov.c: add "below average functions" to the
11279         coverage report, and change how some of the code works.
11280
11281         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11282         not in the coverage stats.
11283
11284         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11285         couple places so running the test suite doesn't result in megaspam.
11286
11287 2003-04-11  Havoc Pennington  <hp@pobox.com>
11288
11289         * bus/dispatch.c (check_existent_service_activation): accept a no
11290         memory error in a place we didn't before
11291
11292         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11293         in case the first one failed," since the test suite is less
11294         broken now.
11295
11296 2003-04-10  Havoc Pennington  <hp@pobox.com>
11297
11298         * bus/dispatch.c (check_segfault_service_activation): add test
11299         for launching an executable that just crashes.
11300
11301         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11302         don't leave a million cores. We'll see how portable this is.
11303
11304 2003-04-10  Havoc Pennington  <hp@pobox.com>
11305
11306         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11307         the possible parent failures before we fork, so that we don't
11308         fail to create a babysitter after creating the child.
11309
11310         * bus/activation.c (bus_activation_activate_service): kill child
11311         if we don't successfully complete the activation.
11312
11313 2003-04-10  Havoc Pennington  <hp@redhat.com>
11314
11315         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11316         the connection if it's disconnected
11317
11318         * bus/activation.c (bus_activation_service_created): use new
11319         transaction features to roll back removal of pending activation if
11320         we don't successfully create the service after all. Don't remove
11321         pending activation if the function fails.
11322
11323         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11324         (_dbus_list_insert_after_link): new code to facilitate
11325         services.c fixes
11326
11327         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11328         new functionality, so we can preallocate the ability to insert
11329         into a hash table.
11330
11331         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11332         allowing us to put custom hooks in a transaction to be used for
11333         cancelling said transaction
11334
11335         * doc/dbus-specification.sgml: add some discussion of secondary
11336         service owners, and disallow zero-length service names
11337
11338         * bus/services.c (bus_registry_acquire_service): new function,
11339         splits out part of bus_driver_handle_acquire_service() and fixes
11340         a bug where we didn't remove the service doing the acquiring
11341         from the secondary queue if we failed to remove the current owner
11342         from the front of the queue.
11343
11344 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11345
11346         * doc/dbus-specification.sgml:
11347         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11348
11349 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11350
11351         * bus/.cvsignore:
11352         * glib/.cvsignore:
11353         * test/.cvsignore:
11354         Added files to cvsignore
11355
11356         * dbus/dbus-message.h:
11357         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11358         Make get_named() take two out argument and return a boolean.
11359         (dbus_message_iter_get_args_valist):
11360         Update usage of get_named().
11361         (dbus_message_iter_append_byte):
11362         Fix typo
11363         (dbus_message_iter_append_named)
11364         Fix typo
11365         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11366         More tests.
11367
11368 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11369
11370         * dbus/dbus-marshal.[ch]:
11371         Add array_type_pos argument to _dbus_marshal_validate_arg.
11372         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11373
11374         * dbus/dbus-message.[ch]:
11375         Multi-dimensional arrays have full type specification in the
11376         outermost array. Iter code re-arranged to handle this.
11377         Added some more iter tests.
11378
11379         * doc/dbus-specification.sgml:
11380         Add me to authors.
11381         Remove old FIXME.
11382         Update new array encoding description.
11383         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11384
11385         * test/data/invalid-messages/array-with-mixed-types.message:
11386         * test/data/valid-messages/array-of-array-of-uint32.message:
11387         Change to the new array format.
11388
11389         * test/data/invalid-messages/too-short-dict.message:
11390         Fix bug in test.
11391
11392         * test/data/valid-messages/recursive-types.message:
11393         Fix up and extend test.
11394
11395 2003-04-10  Havoc Pennington  <hp@pobox.com>
11396
11397         * bus/dispatch.c: lots of fixes
11398
11399         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11400         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11401         that was crack, broke the test service.
11402
11403         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11404         handling to avoid piling up errors if we get a failure on the
11405         first address.
11406
11407         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11408         pid in assertion failures.
11409
11410         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11411         to some fixed size of file descriptor array. Don't return TRUE
11412         anytime a timeout exists, that led to lots of busy loop silliness
11413         in the tests.
11414
11415 2003-04-09  Havoc Pennington  <hp@redhat.com>
11416
11417         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11418         I'd checked this in earlier but hadn't.
11419
11420 2003-04-09  Havoc Pennington  <hp@redhat.com>
11421
11422         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11423         the activation test (man this is getting old!)
11424
11425 2003-04-09  Havoc Pennington  <hp@redhat.com>
11426
11427         * test/test-utils.c: use dispatch status function to fix this up
11428
11429         * bus/connection.c (connection_watch_callback): don't dispatch
11430         from here
11431         (connection_timeout_callback): don't dispatch from here
11432         (bus_connections_setup_connection): set the dispatch status function
11433         (bus_connection_disconnected): unset it
11434
11435         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11436         used to add a connection to be dispatched
11437         (_dbus_loop_iterate): do the dispatching at the end of each
11438         iteration
11439
11440         * dbus/dbus-connection.c
11441         (dbus_connection_set_dispatch_status_function): new function
11442         allowing us to fix up main loop usage
11443         (_dbus_connection_last_unref): free all the various function
11444         user data
11445         (dbus_connection_dispatch): call the DispatchStatusFunction
11446         whenever this function returns
11447         (dbus_connection_handle_watch): call DispatchStatusFunction
11448         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11449         (reply_handler_timeout): call DispatchStatusFunction
11450         (dbus_connection_flush): call DispatchStatusFunction
11451
11452 2003-04-09  Havoc Pennington  <hp@redhat.com>
11453
11454         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11455         a memory leak
11456
11457         * bus/dispatch.c (check_service_activated): fix bug in test
11458
11459         * dbus/dbus-mainloop.c (check_timeout): fix this up
11460
11461         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11462         verbose output so we can sort out output from different processes,
11463         e.g. in the activation case.
11464
11465 2003-04-08  Colin Walters  <walters@gnu.org>
11466
11467         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11468         the pid file.
11469         (bus_context_new): Set it.
11470         (bus_context_unref): Use it to delete the pid file.
11471
11472 2003-04-08  Havoc Pennington  <hp@redhat.com>
11473
11474         * test/data/invalid-messages/array-with-mixed-types.message:
11475         regression test that fails for the moment
11476
11477         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11478         tests for convenience
11479
11480         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11481         array of nil, it broke things.
11482
11483         * test/data/invalid-messages/array-of-nil.message: regression test
11484
11485         * test/data/valid-messages/array-of-array-of-uint32.message:
11486         happened to write this so added it to suite
11487
11488 2003-04-08  Havoc Pennington  <hp@redhat.com>
11489
11490         * bus/driver.c (bus_driver_handle_acquire_service): init
11491         retval/reply before checking name
11492
11493         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11494         recursion depth argument
11495
11496         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11497         in the public struct for future extension
11498
11499         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11500         typo
11501
11502         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11503         message
11504
11505         * doc/dbus-specification.sgml: fix typo
11506
11507 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11508
11509         Implemented recursive types, named types and new-style iters
11510
11511         * bus/driver.c:
11512         * glib/test-thread-client.c: (thread_func):
11513         * glib/test-thread-server.c: (handle_test_message):
11514         * test/test-service.c: (handle_echo):
11515         Update to new api
11516
11517         * dbus/Makefile.am:
11518         * dbus/dbus-dict.c:
11519         * dbus/dbus-dict.h:
11520         * dbus/dbus.h
11521         Remove DBusDict
11522
11523         * dbus/dbus-internals.c: (_dbus_type_to_string):
11524         Update for new types.
11525
11526         * dbus/dbus-marshal.[ch]:
11527         Implement recursive types and the new marshalling format.
11528         Remove hardcoded dict marshalling.
11529         Marshal named types.
11530
11531         * dbus/dbus-message-builder.c:
11532         Add BYTE_ARRAY.
11533         Remove references to old types
11534
11535         * dbus/dbus-message.[ch]:
11536         New non-refcounted iter API that supports recursive iters.
11537         Use iters for appending, including support for recursive
11538         iters.
11539         Add byte and named type support.
11540         Update everything to new marshalling formats.
11541         Add tests for new API.
11542
11543         * dbus/dbus-protocol.h:
11544         Remove old array types.
11545         Add types: BYTE, ARRAY, DICT, NAMED
11546
11547         * dbus/dbus-string.c:
11548         * dbus/dbus-sysdeps.c:
11549         Make parse_double locale safe.
11550
11551         * dbus/dbus-test-main.c:
11552         Call setlocale.
11553
11554         * dbus/dbus-test.c:
11555         Kill dict test
11556
11557         * doc/dbus-specification.sgml:
11558         Update spec
11559
11560         * test/data/incomplete-messages/missing-body.message:
11561         * test/data/invalid-messages/bad-boolean.message:
11562         * test/data/invalid-messages/bad-boolean-array.message:
11563         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11564         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11565         * test/data/invalid-messages/too-short-dict.message:
11566         * test/data/valid-messages/dict-simple.message:
11567         * test/data/valid-messages/dict.message:
11568         * test/data/valid-messages/emptiness.message:
11569         * test/data/valid-messages/lots-of-arguments.message:
11570         * test/data/valid-messages/no-padding.message:
11571         * test/data/valid-messages/recursive-types.message:
11572         Add missing NAME fields
11573         Fix up dicts & arrays
11574
11575         * test/data/invalid-messages/dict-with-nil-value.message:
11576         Removed, this is not invalid anymore.
11577
11578         * test/data/valid-messages/recursive-types.message:
11579         Add new test for deeply recursive types.
11580
11581 2003-04-07  Havoc Pennington  <hp@pobox.com>
11582
11583         * bus/driver.c (bus_driver_handle_acquire_service): return an
11584         error if you try to acquire a service that starts with ':'
11585
11586 2003-04-07  Havoc Pennington  <hp@redhat.com>
11587
11588         * doc/dbus-specification.sgml: require that base service names
11589         start with ':' and that the base service is created/deleted
11590         as first and last things a connection does on the bus
11591
11592         * bus/dispatch.c (check_existent_service_activation): lots more
11593         work on the activation test; it doesn't fully pass yet...
11594
11595         * test/test-service.c (main): fix so we don't memleak the
11596         connection to the message bus
11597         (filter_func): accept a message asking us to exit
11598
11599 2003-04-06  Havoc Pennington  <hp@pobox.com>
11600
11601         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11602         from Colin Walters
11603
11604         * configure.in: fixes to Qt detection from Colin Walters
11605
11606         * doc/Makefile.am: Only remove generated docbook dirs if they
11607         exist, from Colin Walters
11608
11609         * dbus/dbus-bus.c: change how we set well-known connections to
11610         NULL, so that it works if a single connection is stored in
11611         two well-known array slots.
11612
11613         * test/Makefile.am: remove a lot of stuff that isn't immediately
11614         useful, it's in CVS history if we want it.
11615
11616         * test/test-service.c: use dbus-mainloop instead of that
11617         watch.[hc] crack
11618
11619 2003-04-06  Havoc Pennington  <hp@pobox.com>
11620
11621         * dbus/Makefile.am: split lists of sources into stuff that goes in
11622         the library, util functions that go in the lib and are also used
11623         elsewhere, and util functions that are used in tests/daemon but
11624         don't go in the lib.
11625
11626         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11627         here so it can be used in test binaries also
11628
11629 2003-04-06  Havoc Pennington  <hp@pobox.com>
11630
11631         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11632         here in the parent process, so we can return an error if it
11633         fails. Also, move some of the code into the child so the parent
11634         is less hosed if we fail midway through.
11635
11636         * bus/bus.c (bus_context_new): move pidfile detection further up
11637         in the function, before we start overwriting sockets and such.
11638
11639         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11640
11641         * configure.in: add --with-system-pid-file and --with-system-socket
11642
11643 2003-04-06  Colin Walters  <walters@verbum.org>
11644
11645         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11646
11647         * bus/system.conf.in: Declare a pidfile.
11648
11649         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11650         create one (if appropriate).
11651
11652         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11653         (struct BusConfigParser) [pidfile]: New.
11654         (element_type_to_name, merge_included, start_busconfig_child)
11655         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11656         (bus_config_parser_unref): Free it.
11657         (bus_config_parser_get_pidfile): New function.
11658
11659         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11660
11661         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11662
11663         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11664
11665         * dbus/dbus-sysdeps.h: Prototype it.
11666
11667 2003-04-06  Havoc Pennington  <hp@pobox.com>
11668
11669         * bus/bus.c (bus_context_new): print the address in here, rather
11670         than in main(), because we need to do it before forking the daemon
11671
11672         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11673         on the service nonexistent error
11674
11675         * bus/driver.c (bus_driver_handle_acquire_service): set the
11676         sender on the AcquireService reply
11677
11678         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11679         server also listen on a UNIX socket so services can connect to it.
11680
11681 2003-04-06  Havoc Pennington  <hp@pobox.com>
11682
11683         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11684         so it detects deadlocks and also we actually init threads when
11685         debugging.
11686
11687 2003-04-06  Havoc Pennington  <hp@pobox.com>
11688
11689         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11690         save the domain socket name, and unlink it when we disconnect the
11691         server. Means that at least when we exit normally, we won't leave
11692         a bunch of junk in /tmp
11693
11694         * dbus/dbus-transport-unix.c
11695         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11696         memory management). (I was making a real change here but then
11697         didn't)
11698
11699 2003-04-06  Havoc Pennington  <hp@pobox.com>
11700
11701         * bus/bus.c (bus_context_new): fix wrong handling of
11702         server_data_slot_unref() in the error case.
11703
11704         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11705         "(condition) != 0" to _dbus_real_assert so that
11706         "_dbus_assert (pointer)" doesn't cause a warning
11707
11708         * bus/main.c (main): accept --print-address option to print out
11709         the message bus address
11710
11711         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11712
11713         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11714         "tmpdir" option to unix: address on client side
11715
11716         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11717         to unix: address
11718
11719         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11720         we can use to create sockets in the test suite.
11721
11722         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11723         cleanly. To be used for testing.
11724
11725         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11726
11727         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11728
11729         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11730         handle trying to call this when there's no servers active
11731
11732 2003-04-05  Havoc Pennington  <hp@pobox.com>
11733
11734         * NEWS: update
11735
11736         * configure.in: 0.8
11737
11738 2003-04-05  Havoc Pennington  <hp@pobox.com>
11739
11740         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11741         crash on startup. Need to get "try starting the daemon"
11742         in the test suite I guess. ;-)
11743
11744         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11745         tracked the number of open connections; it's better done in
11746         application-specific code as you want it to span all servers etc.
11747
11748 2003-04-05  Havoc Pennington  <hp@pobox.com>
11749
11750         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11751         patch from Colin Walters
11752
11753 2003-04-05  Havoc Pennington  <hp@pobox.com>
11754
11755         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11756         reality; in fact multiple mechanisms are allowed.
11757
11758         * dbus/dbus-internals.c (_dbus_real_assert)
11759         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11760         _dbus_assert_not_reached() into functions, so that they don't show
11761         up in basic block counts for test coverage, and don't use up as
11762         much disk space. Does mean slower execution speed though, so
11763         assumes --disable-asserts is the normal production case.
11764
11765 2003-04-05  Havoc Pennington  <hp@pobox.com>
11766
11767         * test/Makefile.am (dist-hook): also dist *.in files
11768
11769         * NEWS: update
11770
11771         * configure.in: 0.7
11772
11773 2003-04-05  Havoc Pennington  <hp@pobox.com>
11774
11775         * dbus/dbus-string.c: docs warning
11776
11777         * dbus/dbus-spawn.c: missing docs
11778
11779         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11780
11781 2003-04-05  Havoc Pennington  <hp@pobox.com>
11782
11783         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11784         magic from GLib
11785
11786         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11787         to -1 once we've reaped the babysitter
11788         (_dbus_babysitter_handle_watch): do as much work as we can, not
11789         just one go of it
11790
11791         * bus/activation.c: add code using DBusBabysitter so that we
11792         handle it when a service fails to start up properly.
11793         (bus_activation_service_created): don't remove the activation
11794         entries as we go, just let them get removed when we free the pending
11795         activation. Unref reply messages after sending them.
11796
11797 2003-04-05  Havoc Pennington  <hp@pobox.com>
11798
11799         * test/decode-gcov.c (main): print per-directory stats in the report
11800
11801         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11802
11803 2003-04-05  Havoc Pennington  <hp@pobox.com>
11804
11805         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11806
11807         * test/decode-gcov.c: hack up a little program to suck data
11808         out of gcov files. Yes this is sort of silly.
11809
11810         * configure.in: define something in config.h and do an
11811         AM_CONDITIONAL when gcov is enabled
11812
11813 2003-04-04  Havoc Pennington  <hp@redhat.com>
11814
11815         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11816         return a "babysitter" object that is used to monitor the status of
11817         the spawned process and reap it when required.
11818
11819         * test/test-segfault.c, test/test-exit.c,
11820         test/test-sleep-forever.c: binaries that do various lame things,
11821         used in the test suite.
11822
11823         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11824
11825 2003-04-03  Havoc Pennington  <hp@pobox.com>
11826
11827         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11828         in preparation for modifying it, dbus-sysdeps is getting
11829         a bit unmanageable.
11830
11831 2003-04-03  Havoc Pennington  <hp@redhat.com>
11832
11833         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11834         have multiple ones
11835
11836         * bus/*.[hc]: adapt to mainloop change
11837
11838 2003-04-03  Havoc Pennington  <hp@redhat.com>
11839
11840         * bus/activation.c (load_directory): fix up memleaks
11841         (bus_activation_entry_free): free the entry
11842
11843         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11844         we get one from the message bus; fix memleaks.
11845
11846         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11847
11848 2003-04-03  Havoc Pennington  <hp@pobox.com>
11849
11850         * bus/config-parser.c (bus_config_parser_unref): free
11851         list of mechanisms, bug discovered by test suite enhancements
11852         (putting system.conf and session.conf into suite)
11853
11854         * test/Makefile.am, test/test-service.c: add placeholder for a
11855         test service that we'll activate as part of test suite. Doesn't
11856         do anything yet.
11857
11858         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11859         setting NULL value, and use system malloc not dbus_malloc()
11860         when we have unavoidable memleakage.
11861
11862         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11863         didn't work, and support DBUS_BUS_ACTIVATION.
11864
11865         * bus/activation.c (child_setup): pass our well-known bus type to
11866         the child
11867
11868         * bus/config-parser.c: support <type> to specify well-known type
11869
11870         * doc/dbus-specification.sgml: document the env variables to
11871         locate well-known buses and find service activator
11872
11873 2003-04-02  Havoc Pennington  <hp@redhat.com>
11874
11875         * test/Makefile.am (all-local): add a rule to copy tests to
11876         builddir, so we can have generated tests. Use this to remove the
11877         silly hack for testing system.conf and session.conf. Will use this
11878         shortly to generate .service files pointing to test binaries.
11879
11880 2003-04-02  Havoc Pennington  <hp@redhat.com>
11881
11882         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11883         current alloc and needed new length, not max of the doubled
11884         allocation and needed new length. Also, when building tests,
11885         don't do the double-allocation stuff, just realloc every time.
11886
11887 2003-04-02  Havoc Pennington  <hp@redhat.com>
11888
11889         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11890         in error messages
11891         (_dbus_string_get_dirname): new
11892         (_dbus_sysdeps_test): new
11893         (_dbus_directory_open): include dirnames in error messages
11894
11895         * bus/config-parser.c: interpret <include> and <includedir> and
11896         <servicedir> relative to config file location if the given
11897         filename is not absolute.
11898
11899         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11900
11901 2003-04-02  Havoc Pennington  <hp@redhat.com>
11902
11903         * bus/connection.c (bus_transaction_send_error_reply): set sender
11904         service for the error, and unref the reply on success
11905
11906         * bus/activation.c: convert to use BusTransaction so OOM can be
11907         handled correctly
11908         (bus_activation_service_created): set sender of the message
11909
11910 2003-04-01  Havoc Pennington  <hp@redhat.com>
11911
11912         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11913         <includedir> (at least mostly)
11914
11915         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11916         first, then the user ID
11917
11918 2003-04-01  Havoc Pennington  <hp@pobox.com>
11919
11920         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11921         function
11922
11923         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11924
11925         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11926
11927         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11928         socket 0777, and unlink any existing socket.
11929
11930         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11931         the configuration file so specifies; set up auth mechanism
11932         restrictions
11933
11934         * bus/config-parser.c (bus_config_parser_content): add support
11935         for <fork> option and fill in code for <auth>
11936
11937         * bus/system.conf.in: add <fork/> to default configuration,
11938         and limit auth mechanisms to EXTERNAL
11939
11940         * doc/config-file.txt (Elements): add <fork>
11941
11942         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11943         (_dbus_change_identity): new function
11944
11945 2003-03-31  Havoc Pennington  <hp@redhat.com>
11946
11947         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11948         (_dbus_listen_unix_socket): fix off-by-one error in null
11949         termination spotted by Nalin
11950
11951 2003-03-31  Havoc Pennington  <hp@redhat.com>
11952
11953         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11954         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11955         having a real home directory available.
11956
11957 2003-03-31  Havoc Pennington  <hp@redhat.com>
11958
11959         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11960
11961         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11962
11963         * configure.in: add support for specifying a style of init script
11964         to install
11965
11966 2003-03-31  Havoc Pennington  <hp@redhat.com>
11967
11968         Fix some annoying DBusString API and fix all affected code.
11969
11970         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11971         max_length argument
11972         (_dbus_string_get_data): change to return string instead of using
11973         an out param
11974         (_dbus_string_get_const_data): ditto
11975         (_dbus_string_get_data_len): ditto
11976         (_dbus_string_get_const_data_len): ditto
11977
11978 2003-03-31  Havoc Pennington  <hp@redhat.com>
11979
11980         * bus/main.c (main): fix up the command line arguments to be nicer
11981
11982 2003-03-31  Havoc Pennington  <hp@redhat.com>
11983
11984         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11985         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11986         final location that lands in the config file
11987
11988         * bus/config-loader-expat.c (bus_config_load): fix type of
11989         XML_Parser variable
11990
11991         * doc/TODO: remove TODO item for dbus_bus_get()
11992
11993         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11994
11995 2003-03-31  Havoc Pennington  <hp@pobox.com>
11996
11997         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11998         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11999         argument since they are always client side
12000
12001         * dbus/dbus-server.c (dbus_server_get_address): new function
12002
12003         * bus/main.c (main): take the configuration file as an argument.
12004
12005         * test/data/valid-config-files/debug-allow-all.conf: new file to
12006         use with dispatch.c tests for example
12007
12008         * bus/test-main.c (main): require test data dir
12009
12010         * bus/bus.c (bus_context_new): change this to take a
12011         configuration file name as argument
12012
12013         * doc/config-file.txt (Elements): add <servicedir>
12014
12015         * bus/system.conf, bus/session.conf: new files
12016
12017         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12018         well-known socket if none set
12019
12020         * configure.in: create system.conf and session.conf
12021
12022 2003-03-30  Havoc Pennington  <hp@pobox.com>
12023
12024         * bus/config-parser.c: hacking
12025
12026         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12027         to shut down, since it could cause weirdness with the DBusList
12028         lock
12029
12030         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12031         link-oriented stack routines
12032         (alloc_link): free the mempool if the first alloc from it fails
12033
12034         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12035
12036         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12037         from GLib
12038         (_dbus_string_skip_white): new
12039
12040         * doc/config-file.txt (Elements): add <includedir>
12041
12042 2003-03-28  Havoc Pennington  <hp@pobox.com>
12043
12044         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12045         (_dbus_string_copy_data): new functions
12046
12047 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12048
12049         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12050         * dbus/dbus-bus.h:
12051         Add dbus_bus_get.
12052
12053         * dbus/dbus-memory.c:
12054         Fix a doc comment.
12055
12056 2003-03-28  Havoc Pennington  <hp@pobox.com>
12057
12058         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12059         I think it may have just been superstition. Not sure.
12060
12061         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12062         failures that were not being handled.
12063
12064         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12065
12066         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12067         row that will fail on out-of-memory.
12068
12069         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12070         function for testing out-of-memory handling.
12071
12072         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12073         allocation functions, they do map exactly to the expat ones.
12074
12075 2003-03-27  Havoc Pennington  <hp@redhat.com>
12076
12077         * bus/config-loader-libxml.c (bus_config_load): add another error
12078         check
12079
12080 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12081
12082         * doc/TODO:
12083         Add note about automatic service activation.
12084
12085         * doc/dbus-specification.sgml:
12086         Rename the specification and clarify a few things.
12087
12088 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12089
12090         * Doxyfile.in:
12091         * dbus/dbus-address.c:
12092         * dbus/dbus-dict.c:
12093         * dbus/dbus-marshal.c:
12094         * dbus/dbus-server-debug-pipe.c:
12095         * dbus/dbus-transport-unix.c:
12096         Fix documentation warnings.
12097
12098 2003-03-26  Havoc Pennington  <hp@pobox.com>
12099
12100         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12101         after every test so it's quick and easy to see which leaked, and
12102         so we test multiple dbus_shutdown() calls
12103
12104         * configure.in: change configure.in XML stuff to also support
12105         expat
12106
12107         * config-loader-libxml.c: some hacking
12108
12109         * config-loader-expat.c: some hacking
12110
12111         * config-parser.c: some hacking, plus tests
12112
12113 2003-03-25  Havoc Pennington  <hp@redhat.com>
12114
12115         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12116
12117         * configure.in: add --with-xml option to specify XML library,
12118         right now only libxml is supported.
12119
12120         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12121         nonworking code between home and work, still just stubs
12122
12123 2003-03-24  Havoc Pennington  <hp@redhat.com>
12124
12125         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12126         file
12127
12128         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12129         NULL argument for "message" if the error is a well-known one,
12130         fill in a generic message in this case.
12131
12132         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12133         favor of DBusError
12134
12135         * bus/test.c (bus_test_flush_bus): add
12136
12137         * bus/policy.c (bus_policy_test): test code stub
12138
12139 2003-03-24  Havoc Pennington  <hp@pobox.com>
12140
12141         * bus/connection.c (bus_connections_setup_connection): set up
12142         the "can this user connect" function, but it always returns
12143         TRUE until we have a config file parser so we can have a config
12144         file that allows connections.
12145
12146 2003-03-23  Havoc Pennington  <hp@pobox.com>
12147
12148         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12149         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12150         the mutex, so we can check for proper memory management
12151         and OOM handling.
12152
12153         * dbus/dbus-dataslot.c: remove the mutex from
12154         DBusDataSlotAllocator and lock it manually when using it,
12155         to simplify fitting it into the global slots framework.
12156
12157         * dbus/dbus-threads.c (init_static_locks): rework how we're
12158         handling global locks so they are easily shut down.
12159
12160         * bus/policy.c (bus_policy_append_rule): fix
12161
12162         * bus/test-main.c (main): check for memleaks
12163
12164         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12165         test suite check for memleaks
12166
12167         * dbus/dbus-memory.c: add support in test mode for tracking
12168         number of outstanding blocks
12169
12170 2003-03-23  Havoc Pennington  <hp@pobox.com>
12171
12172         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12173         policies code
12174
12175         * dbus/dbus-hash.h: add ULONG hash keys
12176
12177         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12178         (_dbus_get_group_id): new function
12179
12180 2003-03-20  Havoc Pennington  <hp@redhat.com>
12181
12182         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12183         new function
12184         (dbus_connection_get_unix_user): new function
12185
12186 2003-03-20  Havoc Pennington  <hp@pobox.com>
12187
12188         * bus/connection.c (bus_connection_send_oom_error): assert that
12189         message has a sender
12190         (connection_execute_transaction): ditto
12191         (bus_connection_preallocate_oom_error): fix to set the sender, and
12192         set recipient to the destination service, not the bus driver
12193
12194         * bus/policy.c: hacking
12195
12196         * dbus/dbus-message.c (dbus_message_service_is): new function
12197         (dbus_message_sender_is): new
12198
12199 2003-03-19  Havoc Pennington  <hp@redhat.com>
12200
12201         * bus/policy.c: start sketching code for policy restrictions on
12202         what connections can do.
12203
12204 2003-03-18  Havoc Pennington  <hp@redhat.com>
12205
12206         * doc/TODO: some notes on high-level todo items. Little nitpick
12207         stuff is all in @todo, so no need to add it here.
12208
12209         * doc/config-file.txt: some notes on how config file might look
12210
12211 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12212
12213         * configure.in: 0.6
12214
12215         * NEWS: Update.
12216
12217 2003-03-17  Havoc Pennington  <hp@redhat.com>
12218
12219         * dbus/dbus-internals.h: add gcc attributes so that
12220         our printf-style functions warn on bad arguments to
12221         format
12222
12223         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12224         format bug
12225
12226         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12227         printf format bug
12228
12229 2003-03-17  Havoc Pennington  <hp@redhat.com>
12230
12231         * bus/test-main.c (main): make it print something as it runs
12232         so make check doesn't look stuck
12233
12234         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12235         from CVS, now obsolete
12236
12237 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12238
12239         * bus/dispatch.c: (bus_dispatch):
12240         Refetch the service name since it may have been reallocated
12241         when dbus_message_set_sender was called.
12242
12243         * dbus/dbus-sysdeps.c: (_dbus_accept):
12244         Add address and address length variables and use them to stop
12245         valgrind from complaining.
12246
12247 2003-03-17  Havoc Pennington  <hp@pobox.com>
12248
12249         All tests pass, no memleaks, no valgrind complaints.
12250
12251         * bus/test.c: refcount handler_slot
12252
12253         * bus/connection.c (bus_connections_new): refcount
12254         connection_data_slot
12255
12256         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12257         bytes so that auth scripts pass.
12258
12259         * bus/dispatch.c: init message_handler_slot so it gets allocated
12260         properly
12261
12262         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12263
12264         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12265         dealloc server_pipe_hash when no longer used for benefit of
12266         leak checking
12267
12268         * dbus/dbus-auth.c (process_command): memleak fix
12269
12270         * bus/dispatch.c (check_hello_message): memleak fix
12271
12272 2003-03-16  Havoc Pennington  <hp@pobox.com>
12273
12274         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12275
12276 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12277
12278         * bus/activation.c (bus_activation_activate_service): Append
12279         the pending activation entry to the list of pending activations.
12280
12281 2003-03-16  Havoc Pennington  <hp@pobox.com>
12282
12283         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12284         connections
12285
12286         * dbus/dbus-address.c (create_entry): fix OOM handling when
12287         failing to alloc entry->method
12288
12289 2003-03-16  Havoc Pennington  <hp@pobox.com>
12290
12291         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12292         the watch
12293
12294         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12295         add some missing dbus_set_result
12296
12297         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12298         alloc the DBusMessageHandler
12299
12300         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12301         the transport here, since we call this from the finalizer; it
12302         resulted in a double-finalize.
12303
12304         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12305         where we tried to use transport->connection that was NULL,
12306         happened when transport was disconnected early on due to OOM
12307
12308         * bus/*.c: adapt to handle OOM for watches/timeouts
12309
12310         * dbus/dbus-transport-unix.c: port to handle OOM during
12311         watch handling
12312
12313         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12314         reference to unused bytes instead of a copy
12315
12316         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12317         out of memory
12318
12319         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12320         FALSE on OOM
12321
12322         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12323         of memory
12324
12325 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12326
12327         * doc/dbus-specification.sgml:
12328         Document reply message for ActivateService.
12329
12330 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12331
12332         * bus/activation.c: (bus_pending_activation_entry_free),
12333         (bus_pending_activation_free), (bus_activation_new),
12334         (bus_activation_unref), (bus_activation_service_created),
12335         (bus_activation_activate_service):
12336         * bus/activation.h:
12337         * bus/bus.c: (bus_context_new):
12338         * bus/desktop-file.c: (new_section):
12339         * bus/driver.c: (bus_driver_send_service_deleted),
12340         (bus_driver_handle_activate_service):
12341         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12342         * bus/services.h:
12343         * dbus/dbus-connection.c:
12344         (dbus_connection_send_with_reply_and_block):
12345         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12346         * dbus/dbus-protocol.h:
12347         Make activation work better. Now pending activations will be queued
12348         and the daemon won't try to activate services that are already registered.
12349
12350 2003-03-16  Havoc Pennington  <hp@pobox.com>
12351
12352         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12353         connection data
12354
12355         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12356         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12357
12358 2003-03-16  Havoc Pennington  <hp@pobox.com>
12359
12360         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12361         this. always run the test suite before commit...
12362
12363         * bus/*: adapt to DBusConnection API changes
12364
12365         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12366         requires renaming stuff to avoid dbus_connection_dispatch name
12367         conflict.
12368
12369         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12370         function
12371
12372         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12373         separate from _dbus_message_loader_return_buffer()
12374
12375         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12376         this, because it's now always broken to use; the number of
12377         messages in queue vs. the number still buffered by the message
12378         loader is undefined/meaningless. Should use
12379         dbus_connection_get_dispatch_state().
12380         (dbus_connection_dispatch): rename from
12381         dbus_connection_dispatch_message
12382
12383 2003-03-16  Havoc Pennington  <hp@pobox.com>
12384
12385         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12386         implementation
12387
12388 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12389
12390         * dbus/dbus-connection.c:
12391         (dbus_connection_send_with_reply_and_block):
12392         Decrease connection->n_incoming when removing an entry
12393         from the list.
12394         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12395         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12396         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12397         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12398         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12399         (dbus_dict_get_byte_array):
12400         Handle NULL arrays and strings. Also add support for byte arrays.
12401
12402         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12403         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12404         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12405         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12406         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12407         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12408         * dbus/dbus-marshal.h:
12409         Add support for marshalling and demarshalling empty arrays and strings.
12410
12411         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12412         (dbus_message_append_string_array),
12413         (dbus_message_iter_get_boolean),
12414         (dbus_message_iter_get_boolean_array),
12415         (dbus_message_iter_get_int32_array),
12416         (dbus_message_iter_get_uint32_array),
12417         (dbus_message_iter_get_double_array),
12418         (dbus_message_iter_get_byte_array),
12419         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12420         (check_message_handling):
12421         Add support for getting empty arrays and dicts.
12422
12423         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12424         Don't do any validation at all for now, that's better than just checking
12425         for ASCII.
12426
12427         * test/data/valid-messages/emptiness.message:
12428         New test message with lots of empty arrays.
12429
12430 2003-03-16  Havoc Pennington  <hp@pobox.com>
12431
12432         * dbus/dbus-connection.c
12433         (_dbus_connection_queue_received_message_link): new function that
12434         can't fail due to OOM
12435
12436         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12437         new function pops a message together with a list link
12438         containing it.
12439
12440         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12441         message queuing functions to avoid needing to alloc memory
12442
12443 2003-03-16  Havoc Pennington  <hp@pobox.com>
12444
12445         Oops - test code was only testing failure of around 30 of the
12446         mallocs in the test path, but it turns out there are 500+
12447         mallocs. I believe this was due to misguided linking setup such
12448         that there was one copy of dbus_malloc etc. in the daemon and one
12449         in the shared lib, and only daemon mallocs were tested. In any
12450         case, the test case now tests all 500+ mallocs, and doesn't pass
12451         yet, though there are lots of fixes in this patch.
12452
12453         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12454         this so that it doesn't need to allocate memory, since it
12455         has no way of indicating failure due to OOM (and would be
12456         annoying if it did).
12457
12458         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12459
12460         * bus/Makefile.am: rearrange to create two self-contained
12461         libraries, to avoid having libraries with overlapping symbols.
12462         that was resulting in weirdness, e.g. I'm pretty sure there
12463         were two copies of global static variables.
12464
12465         * dbus/dbus-internals.c: move the malloc debug stuff to
12466         dbus-memory.c
12467
12468         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12469         empty.
12470
12471         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12472
12473         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12474         on failure.
12475
12476         * bus/dispatch.c (bus_dispatch_add_connection): free
12477         message_handler_slot when no longer using it, so
12478         memory leak checkers are happy for the test suite.
12479
12480         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12481
12482         * bus/bus.c (new_connection_callback): disconnect in here if
12483         bus_connections_setup_connection fails.
12484
12485         * bus/connection.c (bus_connections_unref): fix to free the
12486         connections
12487         (bus_connections_setup_connection): if this fails, don't
12488         disconnect the connection, just be sure there are no side
12489         effects.
12490
12491         * dbus/dbus-string.c (undo_alignment): unbreak this
12492
12493         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12494         leaking
12495         (_dbus_auth_new): fix the order in which we free strings
12496         on OOM failure
12497
12498         * bus/connection.c (bus_connection_disconnected): fix to
12499         not send ServiceDeleted multiple times in case of memory
12500         allocation failure
12501
12502         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12503         get the base service name
12504         (dbus_bus_register_client): don't return base service name,
12505         instead store it on the DBusConnection and have an accessor
12506         function for it.
12507         (dbus_bus_register_client): rename dbus_bus_register()
12508
12509         * bus/dispatch.c (check_hello_message): verify that other
12510         connections on the bus also got the correct results, not
12511         just the one sending hello
12512
12513 2003-03-15  Havoc Pennington  <hp@pobox.com>
12514
12515         Make it pass the Hello handling test including all OOM codepaths.
12516         Now to do other messages...
12517
12518         * bus/services.c (bus_service_remove_owner): fix crash when
12519         removing owner from an empty list of owners
12520         (bus_registry_ensure): don't leave service in the list of
12521         a connection's owned services if we fail to put the service
12522         in the hash table.
12523
12524         * bus/connection.c (bus_connection_preallocate_oom_error): set
12525         error flag on the OOM error.
12526
12527         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12528         handle _dbus_transport_set_connection failure
12529
12530         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12531         to create watches up front and simply enable/disable them as
12532         needed.
12533         (unix_connection_set): this can now fail on OOM
12534
12535         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12536         of enabling/disabling a watch or timeout.
12537
12538         * bus/loop.c (bus_loop_iterate): don't touch disabled
12539         watches/timeouts
12540
12541         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12542
12543 2003-03-15  Havoc Pennington  <hp@pobox.com>
12544
12545         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12546         write useful test code, after all that futzing around ;-)
12547
12548         Test does not yet pass because we can't handle OOM in
12549         _dbus_transport_messages_pending (basically,
12550         dbus_connection_preallocate_send() does not prealloc the write
12551         watch). To fix this, I think we need to add new stuff to
12552         set_watch_functions, namely a SetEnabled function so we can alloc
12553         the watch earlier, then enable it later.
12554
12555         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12556         dbus-memory.c to the convenience lib
12557
12558         * bus/test.c: rename some static functions to keep them clearly
12559         distinct from stuff in connection.c. Handle client disconnection.
12560
12561 2003-03-14  Havoc Pennington  <hp@pobox.com>
12562
12563         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12564         transport, tests more of the real codepath. Set up clients
12565         with bus_setup_debug_client.
12566
12567         * bus/test.c (bus_setup_debug_client): function to set up debug
12568         "clients" on the main loop
12569
12570         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12571         support
12572
12573         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12574         server type
12575
12576         * dbus/dbus-server-debug.c: support a debug server based on pipes
12577
12578         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12579         (_dbus_close): new function
12580
12581         * configure.in: check for socketpair
12582
12583 2003-03-14  Havoc Pennington  <hp@redhat.com>
12584
12585         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12586         cheesy hack
12587
12588         * dbus/dbus-transport-debug.c: rework this a good bit to be
12589         less complicated. hopefully still works.
12590
12591         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12592         manually
12593
12594         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12595         after running it
12596
12597         * dbus/dbus-message.c (dbus_message_copy): rename from
12598         dbus_message_new_from_message, fix it up to copy
12599         all the message fields, add test case
12600
12601         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12602         not quite passing yet
12603
12604 2003-03-14  Havoc Pennington  <hp@pobox.com>
12605
12606         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12607         until no work remains" in test code. (the large diff here
12608         is just code movement, no actual changes)
12609
12610         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12611         1, no point waiting around for test code.
12612         (_dbus_server_debug_accept_transport): unref the timeout
12613         after adding it (right?)
12614
12615         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12616
12617 2003-03-13  Havoc Pennington  <hp@redhat.com>
12618
12619         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12620         out of memory
12621
12622         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12623         of memory
12624
12625         * dbus/dbus-connection.h: Make AddWatchFunction and
12626         AddTimeoutFunction return a bool so they can fail on out-of-memory
12627
12628         * bus/bus.c (bus_context_new): set up timeout handlers
12629
12630         * bus/connection.c (bus_connections_setup_connection): set up
12631         timeout handlers
12632
12633         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12634         can fail
12635
12636         * bus/bus.c (bus_context_new): adapt to changes
12637
12638         * bus/connection.c: adapt to changes
12639
12640         * test/watch.c: adapt to DBusWatch changes
12641
12642         * bus/dispatch.c (bus_dispatch_test): started adding this but
12643         didn't finish
12644
12645 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12646
12647         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12648
12649 2003-03-13  Havoc Pennington  <hp@pobox.com>
12650
12651         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12652         set up a test framework as for the library
12653
12654 2003-03-12  Havoc Pennington  <hp@pobox.com>
12655
12656         Throughout: purge global variables, introduce BusActivation,
12657         BusConnections, BusRegistry, etc. objects instead.
12658
12659         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12660         message bus object
12661
12662         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12663         going to redo this a bit differently I think
12664
12665 2003-03-12  Havoc Pennington  <hp@redhat.com>
12666
12667         Mega-patch that gets the message bus daemon initially handling
12668         out-of-memory. Work still needed. Also lots of random
12669         moving stuff to DBusError instead of ResultCode.
12670
12671         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12672
12673         * dbus/dbus-connection.c
12674         (dbus_connection_send_with_reply_and_block): use DBusError
12675
12676         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12677         DBusResultCode
12678
12679         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12680         code here, as the only failure possible is OOM.
12681
12682         * bus/connection.c (bus_connection_disconnect):
12683         rename bus_connection_disconnected as it's a notification only
12684
12685         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12686         "name" on get_args failure, should be done by get_args;
12687         don't disconnect client for bad args, just return an error.
12688         (bus_driver_handle_service_exists): ditto
12689
12690         * bus/services.c (bus_services_list): NULL-terminate returned array
12691
12692         * bus/driver.c (bus_driver_send_service_lost)
12693         (bus_driver_send_service_acquired): send messages from driver to a
12694         specific client to the client's unique name, not to the broadcast
12695         service.
12696
12697         * dbus/dbus-message.c (decode_header_data): reject messages that
12698         contain no name field
12699         (_dbus_message_get_client_serial): rename to
12700         dbus_message_get_serial and make public
12701         (_dbus_message_set_serial): rename from set_client_serial
12702         (_dbus_message_set_reply_serial): make public
12703         (_dbus_message_get_reply_serial): make public
12704
12705         * bus/connection.c (bus_connection_foreach): allow stopping
12706         iteration by returning FALSE from foreach function.
12707
12708         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12709         (dbus_connection_free_preallocated_send)
12710         (dbus_connection_preallocate_send): new API for sending a message
12711         without possibility of malloc failure.
12712         (dbus_connection_send_message): rename to just
12713         dbus_connection_send (and same for whole function family)
12714
12715         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12716
12717         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12718
12719         * bus/activation.c: handle/return errors
12720
12721         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12722
12723         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12724         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12725         (_dbus_result_from_errno): move to this file
12726
12727 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12728
12729         * dbus/dbus-marshal.c:
12730         (_dbus_marshal_set_string):
12731         Take a length argument so we can marshal the correct string
12732         length.
12733
12734         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12735         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12736         (_dbus_marshal_test):
12737         * dbus/dbus-marshal.h:
12738         Add support for marshalling and demarshalling dicts.
12739
12740         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12741         Add support for TYPE DICT.
12742
12743         * dbus/dbus-message.c: (set_string_field):
12744         Adjust header padding.
12745
12746         (dbus_message_append_args_valist), (dbus_message_append_dict),
12747         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12748         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12749         (check_message_handling), (check_have_valid_message):
12750         * dbus/dbus-message.h:
12751         Add functions for setting and getting dicts.
12752
12753         * dbus/dbus-protocol.h:
12754         Add DBUS_TYPE_DICT.
12755
12756         * dbus/dbus.h:
12757         Add dbus-dict.h
12758
12759         * doc/dbus-specification.sgml:
12760         Add information about how dicts are marshalled.
12761
12762         * test/data/invalid-messages/dict-with-nil-value.message:
12763         * test/data/invalid-messages/too-short-dict.message:
12764         * test/data/valid-messages/dict-simple.message:
12765         * test/data/valid-messages/dict.message:
12766         Add sample messages containing dicts.
12767
12768 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12769
12770         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12771
12772 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12773
12774         * dbus/Makefile.am:
12775         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12776         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12777         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12778         (dbus_dict_set_double), (dbus_dict_set_string),
12779         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12780         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12781         (dbus_dict_set_string_array), (_dbus_dict_test):
12782         * dbus/dbus-dict.h:
12783         Fix according to comments from Havoc.
12784
12785 2003-03-06  Michael Meeks  <michael@server.home>
12786
12787         * configure.in: if we don't have kde-config, disable have_qt.
12788
12789 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12790
12791         * dbus/Makefile.am:
12792         Add dbus-dict.[ch]
12793
12794         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12795         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12796         (dbus_dict_remove), (dbus_dict_get_value_type),
12797         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12798         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12799         (dbus_dict_put_double), (dbus_dict_put_string),
12800         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12801         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12802         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12803         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12804         (dbus_dict_get_double), (dbus_dict_get_string),
12805         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12806         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12807         (dbus_dict_get_string_array), (_dbus_dict_test):
12808         * dbus/dbus-dict.h:
12809         Add DBusDict implementation
12810
12811         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12812         * dbus/dbus-test.h:
12813         Add _dbus_dict_test
12814
12815 2003-03-04  Havoc Pennington  <hp@pobox.com>
12816
12817         * test/data/auth/*: adapt to changes
12818
12819         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12820         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12821         userid
12822
12823         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12824         more stuff from being in a context name, to make the protocol
12825         simpler to deal with
12826
12827         * dbus/dbus-errors.c (dbus_error_has_name): new function
12828         (dbus_error_is_set): new function
12829
12830         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12831         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12832
12833         * dbus/dbus-connection.c (dbus_connection_flush): also read
12834         messages during a flush operation
12835
12836         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12837
12838 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12839
12840         * configure.in: Check for gethostbyname on Solaris.
12841
12842         * dbus/dbus-transport.c: (_dbus_transport_open):
12843         Remove duplicate "tcp" entry.
12844
12845         * doc/dbus-specification.sgml:
12846         Clarify some things.
12847
12848 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12849
12850         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12851         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12852         (_dbus_keyring_test):
12853         * dbus/dbus-md5.c: (_dbus_md5_compute):
12854         * dbus/dbus-sha.c: (_dbus_sha_compute):
12855         Plug memory leaks.
12856
12857 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12858
12859         * README: Add some things.
12860
12861 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12862
12863         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12864         after case DBUS_TYPE_BOOELAN.
12865
12866 2003-03-02  Havoc Pennington  <hp@pobox.com>
12867
12868         * test/break-loader.c (randomly_set_extreme_ints): add test that
12869         sets really huge and small integers
12870
12871         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12872         that length of boolean array fits in the string, and that
12873         string has room for boolean value in single-bool case.
12874
12875         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12876         optional value to "ALIGN" command which is what to fill the
12877         alignment with.
12878
12879         * test/data/valid-messages/no-padding.message: add regression
12880         test for the message padding problem
12881
12882 2003-03-02  Havoc Pennington  <hp@pobox.com>
12883
12884         * dbus/dbus-message.c (decode_header_data): fix to always init
12885         message_padding, from Benjamin Dauvergne
12886
12887 2003-03-02  Havoc Pennington  <hp@pobox.com>
12888
12889         * configure.in: 0.5
12890
12891         * NEWS: Update.
12892
12893 2003-03-01  Joe Shaw  <joe@assbarn.com>
12894
12895         * configure.in: Check for "struct cmsgcred" and try to access its
12896         members for BSD-like unices.
12897
12898         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12899         _dbus_read_credentials_unix_socket().
12900         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12901         read() for reading the credential byte off the unix socket.  Use
12902         struct cmsgcred on systems that support it.
12903
12904 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12905
12906         * glib/Makefile.am:
12907         * configure.in:
12908         Make gthreads-2.0 dependency optional. Don't build thread test if
12909         its not found.
12910
12911 2003-02-27  Havoc Pennington  <hp@pobox.com>
12912
12913         * dbus/dbus-connection.c
12914         (dbus_connection_send_message_with_reply_and_block): fix doh!
12915         doh! doh! bug that resulted in never removing a reply from the
12916         queue, no wonder we called get_reply_serial so much ;-)
12917
12918         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12919         and client serial instead of demarshaling them every time
12920
12921 2003-02-27  Havoc Pennington  <hp@pobox.com>
12922
12923         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12924         more inlined, using dbus-string-private.h, speeds things up
12925         substantially
12926
12927         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12928         when freeing the string
12929         (_dbus_string_steal_data): fix for align offset
12930         (undo_alignment): new function
12931
12932 2003-02-26  Havoc Pennington  <hp@redhat.com>
12933
12934         All kinds of audit fixes from Owen, plus initial attempt to
12935         handle unaligned memory returned from malloc.
12936
12937         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12938         leave room for align_offset and nul byte
12939         (fixup_alignment): function to track an align_offset and
12940         ensure real->str is aligned
12941         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12942         to allow a nul byte plus align offset
12943         (_dbus_string_lock): fix overflow issue
12944         (_dbus_string_init_const_len): add assertions on sanity of len,
12945         assign allocated to be ALLOCATION_PADDING larger than len
12946         (set_length): fixup the overflow handling
12947         (_dbus_string_get_data_len): fix overflow in assertion
12948         (open_gap): detect overflow in size of gap to be opened
12949         (_dbus_string_lengthen): add overflow check
12950         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12951         (_dbus_string_append): add overflow check
12952         (_dbus_string_append_unichar): overflow
12953         (_dbus_string_delete): fix overflow in assertion
12954         (_dbus_string_copy_len): overflow in assertion
12955         (_dbus_string_replace_len): overflows in assertions
12956         (_dbus_string_find): change to implement in terms of
12957         _dbus_string_find_to
12958         (_dbus_string_find_to): assorted fixage
12959         (_dbus_string_equal_c_str): assert c_str != NULL,
12960         fix logic so the function works
12961         (_dbus_string_ends_with_c_str): fix overflow thingy
12962         (_dbus_string_base64_encode): overflow fix
12963         (_dbus_string_validate_ascii): overflow
12964         (_dbus_string_validate_nul): overflow
12965
12966 2003-02-26  Havoc Pennington  <hp@redhat.com>
12967
12968         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12969
12970 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12971
12972         * configure.in:
12973         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12974
12975         * dbus/dbus-connection.c:
12976         * dbus/dbus-connection.h:
12977         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12978         Add dbus_connection_set_wakeup_main_function and use it when queueing
12979         incoming and outgoing messages.
12980
12981
12982         * dbus/dbus-dataslot.c:
12983         Threadsafe usage of DBusDataSlotAllocator
12984
12985         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12986         dbus_new can fail.
12987
12988         * dbus/dbus-server-unix.c:
12989         Add todo comment
12990
12991         * glib/dbus-gmain.c:
12992         Implement the new wakeup functions for glib.
12993
12994         * glib/Makefile.am:
12995         * glib/test-thread-client.c:
12996         * glib/test-thread-server.c:
12997         * glib/test-thread.h:
12998         Initial cut at some thread test code. Not really done yet.
12999
13000 2003-02-26  Havoc Pennington  <hp@pobox.com>
13001
13002         * dbus/dbus-connection.c
13003         (dbus_connection_send_message_with_reply_and_block): fix crash
13004         where we ref'd the outgoing message instead of the returned reply
13005
13006         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13007         at the end of this function, so if we didn't need to read for
13008         authentication, we reinstall it for receiving messages
13009
13010         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13011         a NULL sender for peer-to-peer case
13012
13013         * dbus/dbus-transport-unix.c (check_read_watch): handle
13014         !authenticated case correctly
13015
13016         * glib/dbus-gmain.c: add support for DBusServer
13017
13018         * dbus/dbus-server.c: add data slot support
13019
13020         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13021         return values and handle errors
13022
13023         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13024         DBusConnection
13025
13026         * Doxyfile.in (INPUT): add glib subdir
13027
13028         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13029         setup_with_g_main instead of hookup_with_g_main; write docs
13030
13031 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13032
13033         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13034         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13035         * dbus/dbus-message.c: (dbus_message_append_boolean),
13036         (dbus_message_append_boolean_array),
13037         (dbus_message_get_args_valist), (_dbus_message_test):
13038         * dbus/dbus-message.h:
13039         * doc/dbus-specification.sgml:
13040         Various fixes as pointed out by Havoc.
13041
13042         * test/data/invalid-messages/bad-boolean-array.message:
13043         * test/data/invalid-messages/bad-boolean.message:
13044         Add invalid boolean value test cases.
13045
13046 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13047
13048         * dbus/dbus-internals.c: (_dbus_type_to_string):
13049         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13050         (_dbus_marshal_validate_arg):
13051         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13052         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13053         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13054         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13055         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13056         (dbus_message_iter_get_double),
13057         (dbus_message_iter_get_boolean_array), (message_iter_test):
13058         * dbus/dbus-message.h:
13059         * dbus/dbus-protocol.h:
13060         * doc/dbus-specification.sgml:
13061         * test/data/valid-messages/lots-of-arguments.message:
13062         Add support for boolean and boolean array types.
13063
13064 2003-02-23  Havoc Pennington  <hp@pobox.com>
13065
13066         * dbus/dbus-keyring.c: finish most of this implementation and
13067         simple unit test
13068
13069         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13070         these barf if the error isn't cleared to NULL
13071
13072         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13073         (_dbus_create_directory): new function
13074
13075         * dbus/dbus-errors.c (dbus_set_error): fix warning
13076
13077         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13078         (_dbus_string_hex_decode): new function
13079         (test_hex_roundtrip): test code
13080
13081         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13082
13083         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13084
13085         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13086         the save-to-temp/rename trick to atomically write the new file
13087         (_dbus_string_parse_uint): new function
13088
13089 2003-02-22  Havoc Pennington  <hp@pobox.com>
13090
13091         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13092
13093 2003-02-22  Havoc Pennington  <hp@pobox.com>
13094
13095         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13096         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13097
13098         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13099
13100         * dbus/test/data/sha-1: add US government test suite for SHA-1
13101
13102 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13103
13104         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13105         Make string arrays NULL-terminated.
13106
13107         * dbus/dbus-memory.c: (dbus_free_string_array):
13108         * dbus/dbus-memory.h:
13109         New function for freeing NULL-terminated string arrays.
13110
13111         * dbus/dbus-message-builder.c: (append_quoted_string),
13112         (_dbus_message_data_load):
13113         Add support for array types.
13114
13115         * dbus/dbus-message.c: (check_message_handling):
13116         Add more types as test cases.
13117
13118         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13119         (_dbus_string_parse_double):
13120         Add the start offset to the end offset.
13121
13122         * test/data/valid-messages/lots-of-arguments.message:
13123         New test message with lots of arguments.
13124
13125 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13126
13127         * dbus/dbus-message.c: (dbus_message_append_nil),
13128         (dbus_message_append_int32), (dbus_message_append_uint32),
13129         (dbus_message_append_double), (dbus_message_append_string),
13130         (dbus_message_append_int32_array),
13131         (dbus_message_append_uint32_array),
13132         (dbus_message_append_double_array),
13133         (dbus_message_append_byte_array),
13134         (dbus_message_append_string_array):
13135         Fix all out-of-memory handling in these functions.
13136
13137 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13138
13139         * dbus/dbus-message.c: (dbus_message_append_nil):
13140         Fix a silly.
13141
13142 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13143
13144         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13145         (dbus_message_append_nil), (dbus_message_append_int32_array),
13146         (dbus_message_append_uint32_array),
13147         (dbus_message_append_double_array),
13148         (dbus_message_append_byte_array),
13149         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13150         (dbus_message_iter_get_int32_array),
13151         (dbus_message_iter_get_uint32_array),
13152         (dbus_message_iter_get_double_array),
13153         (dbus_message_iter_get_byte_array),
13154         (dbus_message_iter_get_string_array):
13155
13156         * dbus/dbus-message.h:
13157         Add functions for appending and getting arrays.
13158
13159 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13160
13161         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13162         element size at least 8 bytes, fixes mempool tests on
13163         64-bit machines.
13164
13165 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13166
13167         * dbus/dbus-transport-unix.c (unix_do_iteration):
13168         Unlock the connection mutex during a blocking select call.
13169         Add todo about how we need a way to wake up the select.
13170
13171         * dbus/dbus-connection-internal.h:
13172         * dbus/dbus-connection.c:
13173         Add _dbus_connection_lock and _dbus_connection_unlock.
13174
13175 2003-02-19  Havoc Pennington  <hp@pobox.com>
13176
13177         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13178         Doxyfile.in, not Doxyfile
13179
13180         * dbus/dbus-keyring.c: do some hacking on this
13181
13182         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13183
13184         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13185         dbus_error_init
13186         (dbus_set_error): remove dbus_error_init, check for message ==
13187         NULL *before* we sprintf into it, and add @todo about including
13188         system headers in this file
13189
13190         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13191
13192         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13193
13194         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13195         get various bits of user information based on either username
13196         or user ID
13197         (_dbus_homedir_from_username): new function
13198
13199 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13200
13201         * configure.in:
13202         Add check for nonposix getpwnam_r
13203
13204         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13205         Align the pool element size to a sizeof (void *) boundary.
13206
13207         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13208         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13209         General Solaris fixes.
13210
13211         * test/data/valid-messages/simplest-manual.message:
13212         Explicitly state that we want little-endian packing.
13213
13214 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13215
13216         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13217
13218         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13219         Added to create a transport connecting using a tcp/ip socket.
13220
13221         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13222         to a tcp socket at given host and port.
13223         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13224         hostname and port.
13225
13226         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13227
13228         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13229         Added to create a server listening on a TCP/IP socket.
13230
13231 2003-02-19  Havoc Pennington  <hp@pobox.com>
13232
13233         Throughout: mop up all the Doxygen warnings and undocumented
13234         stuff.
13235
13236         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13237         to search any paths.
13238
13239         * dbus/dbus-threads.c: move global mutex initializers to
13240         dbus-internals.h, multiple prototypes was confusing doxygen
13241         besides being kind of ugly
13242
13243         * Doxyfile (PREDEFINED): have Doxygen define
13244         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13245         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13246         (do not abuse the feature! it's for stuff like the autogenerated
13247         macros in dbus-md5.c, not just for things you don't feel like
13248         documenting...)
13249
13250 2003-02-18  Havoc Pennington  <hp@pobox.com>
13251
13252         * dbus/dbus-string.c (_dbus_string_zero): new function
13253
13254         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13255         wrap it in some dbus-friendly API
13256
13257         * dbus/dbus-types.h: add 16-bit types
13258
13259 2003-02-18  Joe Shaw  <joe@assbarn.com>
13260
13261         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13262         credentials from our currently running process.
13263         (get_word): Fix a buglet where we were copying the entire length
13264         instead of relative to our position.
13265
13266         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13267         keys on the stack... it's 640k of data.
13268
13269         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13270         read the credentials byte off the socket, even if we don't have
13271         SO_PEERCRED.
13272         (_dbus_poll): Implement poll() using select() for systems which
13273         don't have it.
13274
13275         * glib/test-dbus-glib.c (main): Print out an error if no
13276         parameters are given.
13277
13278         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13279         can fallback to a secondary auth mechanism if the first fails.
13280
13281 2003-02-18  Havoc Pennington  <hp@pobox.com>
13282
13283         * AUTHORS: add Alex
13284
13285 2003-02-17  Havoc Pennington  <hp@pobox.com>
13286
13287         * doc/dbus-specification.sgml: lots of cosmetic
13288         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13289         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13290         s/server/bus/ (except in authentication section). Add a section
13291         "Message Bus Message Routing"
13292
13293 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13294
13295         Release 0.4
13296
13297         * NEWS: Update
13298
13299 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13300
13301         * doc/dbus-specification.sgml:
13302         Specification updates.
13303
13304 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13305
13306         * bus/activation.c: (bus_activation_init), (child_setup),
13307         (bus_activation_activate_service):
13308         * bus/activation.h:
13309         * bus/main.c: (main):
13310         Set DBUS_ADDRESS environment variable.
13311
13312         * dbus/dbus-errors.c: (dbus_set_error):
13313         Don't use va_copy since that's a C99 feature.
13314
13315         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13316         (_dbus_spawn_async):
13317         * dbus/dbus-sysdeps.h:
13318         Add child_setup_func to _dbus_spawn_async.
13319
13320         * doc/dbus-specification.sgml:
13321         Update specification.
13322
13323         * test/spawn-test.c: (setup_func), (main):
13324         Fix test.
13325
13326 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13327
13328         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13329         Added todo.
13330
13331 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13332
13333         * doc/.cvsignore:
13334         * doc/Makefile.am:
13335         * doc/dbus-test-plan.sgml:
13336         Add test plan document.
13337
13338         * test/Makefile.am:
13339         Fix distcheck.
13340
13341 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13342
13343         * dbus/dbus-message.c: (decode_header_data),
13344         (_dbus_message_loader_return_buffer):
13345         Set the header padding amount when loading a message.
13346
13347 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13348
13349         * bus/dispatch.c: (send_one_message):
13350         Only send broadcast messages to registered connections.
13351
13352         * dbus/dbus-message.c: (dbus_message_name_is):
13353         * dbus/dbus-message.h:
13354         New convenience function.
13355
13356         * dbus/dbus-transport-debug.c: (do_reading):
13357         Only dispatch one message per run.
13358
13359         * test/Makefile.am:
13360         * test/bus-test.c: (new_connection_callback), (die),
13361         (test_hello_client1_handler), (test_hello_client2_handler),
13362         (test_hello_replies), (main):
13363
13364         * test/bus-test-loop.[ch]:
13365         Add these.
13366
13367 2003-02-16  Havoc Pennington  <hp@pobox.com>
13368
13369         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13370         backward conditional
13371
13372 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13373
13374         * dbus/dbus-connection.c:
13375         Implement sent_message_with_reply. (with_reply_and block is still
13376         busted).
13377         Made dispatch_message not lose message if OOM.
13378
13379         * dbus/dbus-errors.h:
13380         Add NoReply error (for reply timeouts).
13381
13382 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13383
13384         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13385         Actually free keys and values when destroying hashtable.
13386
13387 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13388
13389         * dbus/dbus-auth.c: (client_try_next_mechanism):
13390         Plug a leak.
13391
13392         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13393         Return TRUE if there's no thread implementation around.
13394
13395         * glib/dbus-gmain.c: (free_source),
13396         (dbus_connection_hookup_with_g_main):
13397         Make sure to remove the GSource when the connection is finalized.
13398
13399 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13400
13401         * bus/dispatch.c: (bus_dispatch_message_handler):
13402         * dbus/dbus-errors.h:
13403         Return an error if someone tries to send a message to a service
13404         that doesn't exist.
13405
13406 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13407
13408         * bus/activation.c: (load_directory), (bus_activation_init),
13409         (bus_activation_activate_service):
13410         * bus/activation.h:
13411         * bus/driver.c:
13412         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13413         More work on the activation handling.
13414
13415         * dbus/dbus-errors.h:
13416         Add some error messages
13417
13418         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13419         * dbus/dbus-message.h:
13420         New function that creates an error message.
13421
13422         * dbus/dbus-protocol.h:
13423         Add ACTIVATE_SERVER message.
13424
13425         * dbus/dbus-server-unix.c: (unix_handle_watch),
13426         (_dbus_server_new_for_domain_socket):
13427         Call _dbus_fd_set_close_on_exec.
13428
13429         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13430         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13431         (_dbus_fd_set_close_on_exec):
13432         * dbus/dbus-sysdeps.h:
13433         Add _dbus_fd_set_close_on exec function. Also add function that checks
13434         that all open fds are set to close-on-exec and warns otherwise.
13435
13436         * dbus/dbus-transport-unix.c:
13437         (_dbus_transport_new_for_domain_socket):
13438         Call _dbus_fd_set_close_on_exec.
13439
13440 2003-02-16  Havoc Pennington  <hp@pobox.com>
13441
13442         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13443         allow people to avoid setting SIGPIPE to SIG_IGN
13444         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13445         we've been asked not to
13446
13447 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13448
13449         * dbus/dbus-list.c: (_dbus_list_append_link),
13450         (_dbus_list_prepend_link):
13451         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13452         (dbus_realloc):
13453         Warning fixes.
13454
13455 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13456
13457         * bus/Makefile.am:
13458         * bus/activation.c: (bus_activation_entry_free),
13459         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13460         * bus/activation.h:
13461         * bus/main.c: (main):
13462         Add simple activation support, doesn't work yet though.
13463
13464 2003-02-15   Zack Rusin  <zack@kde.org>
13465
13466         * qt/dbus-qthread.cpp:  small casting fix
13467
13468 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13469
13470         * dbus/dbus-errors.c: (dbus_set_error):
13471         * dbus/dbus-errors.h:
13472         Add a few errors and make dbus_set_error void.
13473
13474         * dbus/dbus-sysdeps.c:
13475         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13476         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13477         * dbus/dbus-sysdeps.h:
13478         Add _dbus_spawn_async.
13479
13480         * test/spawn-test.c: (main):
13481         Test for _dbus_spawn_async.
13482
13483 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13484
13485         * dbus/dbus-internals.h:
13486         Fix build without tests.
13487
13488         * dbus/dbus-list.c: (alloc_link):
13489         Fix a segfault when a malloc fails.
13490
13491         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13492         (dbus_malloc0), (dbus_realloc):
13493         Add support for malloc debugging.
13494
13495 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13496
13497         * dbus/dbus-threads.c:
13498         * dbus/dbus-threads.h:
13499         Add condvars. Remove static mutext from API.
13500         Implement static mutexes by initializing them from threads_init.
13501
13502         * glib/dbus-gthread.c:
13503         * qt/dbus-qthread.cpp:
13504         Update with the thread api changes.
13505
13506
13507         * dbus/dbus-list.c:
13508         * dbus/dbus-list.h:
13509         Turn StaticMutex into normal mutex + init function.
13510         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13511         _dbus_list_append_link, _dbus_list_prepend_link
13512
13513
13514         * dbus/dbus-sysdeps.c:
13515         * dbus/dbus-sysdeps.h:
13516         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13517         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13518
13519         * dbus/dbus-protocol.h:
13520         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13521
13522         * dbus/dbus-message.c:
13523         Make ref/unref atomic.
13524         Fix some docs.
13525
13526         * dbus/dbus-connection-internal.h:
13527         * dbus/dbus-connection.c:
13528         * dbus/dbus-connection.h:
13529         Make threadsafe.
13530         Change _peek to _borrow,_return & _steal_borrowed.
13531         Change disconnect callback to event.
13532         Make dbus_connection_dispatch_messages reentrant.
13533
13534         * dbus/dbus-transport.c:
13535         Don't ref the connection on calls to the transport
13536         implementation.
13537
13538         * dbus/dbus-message-handler.c:
13539         Make threadsafe.
13540
13541         * glib/dbus-gmain.c:
13542         Don't use peek_message anymore
13543
13544         * test/Makefile.am:
13545         * test/debug-thread.c:
13546         * test/debug-thread.h:
13547         Simple thread implementation that asserts() on deadlocks in
13548         single-threaded code.
13549
13550         * test/bus-test.c:
13551         (main) Call debug_threads_init.
13552
13553         * test/watch.c:
13554         Use disconnect message instead of disconnect callback.
13555
13556         * bus/connection.c:
13557         * bus/connection.h:
13558         Don't call dbus_connection_set_disconnect_function. Instead export
13559         bus_connection_disconnect.
13560
13561         * bus/dispatch.c:
13562         Call bus_connection_disconnect when we get a disconnected message.
13563
13564 2003-02-15  Havoc Pennington  <hp@pobox.com>
13565
13566         * dbus/dbus-message.c (dbus_message_new): fool around with the
13567         docs
13568
13569 2003-02-14  Havoc Pennington  <hp@pobox.com>
13570
13571         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13572
13573         * dbus/dbus-memory.c: fail if the debug functions indicate we
13574         should
13575
13576         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13577         (_dbus_decrement_fail_alloc_counter): debug functions to
13578         simulate memory allocation failures
13579
13580 2003-02-14  Havoc Pennington  <hp@pobox.com>
13581
13582         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13583         to DBusError
13584
13585 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13586
13587         * bus/driver.c: (bus_driver_handle_hello):
13588         * bus/driver.h:
13589         * bus/services.c: (bus_service_lookup):
13590         Reorder message sending so we get a more sane order.
13591
13592         * test/bus-test.c: (message_handler):
13593         Fix tyop.
13594
13595 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13596
13597         * bus/driver.c: (bus_driver_send_service_deleted),
13598         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13599         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13600         (bus_driver_send_welcome_message),
13601         (bus_driver_handle_list_services),
13602         (bus_driver_handle_acquire_service),
13603         (bus_driver_handle_service_exists):
13604         * dbus/dbus-bus.c: (dbus_bus_register_client),
13605         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13606         * dbus/dbus-errors.c: (dbus_result_to_string):
13607         * dbus/dbus-errors.h:
13608         * dbus/dbus-message.c: (dbus_message_append_args),
13609         (dbus_message_append_args_valist), (dbus_message_get_args),
13610         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13611         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13612         (dbus_message_iter_get_byte_array),
13613         (dbus_message_iter_get_string_array), (message_iter_test),
13614         (check_message_handling), (_dbus_message_test):
13615         * dbus/dbus-message.h:
13616         * test/bus-test.c: (main):
13617         Change fields to arguments in messages, so that they won't be
13618         confused with header fields.
13619
13620         * glib/test-dbus-glib.c: (main):
13621         Remove append_fields from hello message.
13622
13623 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13624
13625         * dbus/dbus-errors.c:
13626         * dbus/dbus-message.c:
13627         * dbus/dbus-string.c:
13628         Documentation fixes.
13629
13630 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13631
13632         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13633         (remove_timeout):
13634         Implement support for timeouts in dbus-glib.
13635
13636 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13637
13638         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13639         * dbus/dbus-message.c: (process_test_subdir):
13640         * test/break-loader.c: (find_breaks_based_on):
13641         Plug some memory leaks.
13642
13643 2003-02-13  Richard Hult  <rhult@codefactory.se>
13644
13645         * bus/main.c: Fix build.
13646
13647         * dbus/dbus-errors.h:
13648         * dbus/dbus-errors.c: Fix copyright for Anders.
13649
13650 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13651
13652         * bus/Makefile.am:
13653         Add utils.[ch]
13654
13655         * bus/connection.c: (bus_connection_foreach):
13656         Fix a warning.
13657
13658         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13659         (unescape_string), (new_section), (parse_section_start),
13660         (parse_key_value), (report_error), (bus_desktop_file_load),
13661         (bus_desktop_file_get_string):
13662         * bus/desktop-file.h:
13663         Use DBusError for error reporting.
13664
13665         * bus/dispatch.c: (send_one_message),
13666         (bus_dispatch_message_handler):
13667         * bus/driver.c: (bus_driver_send_service_deleted),
13668         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13669         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13670         (bus_driver_send_welcome_message),
13671         (bus_driver_handle_list_services),
13672         (bus_driver_handle_acquire_service),
13673         (bus_driver_handle_service_exists):
13674         * bus/loop.c: (bus_loop_run):
13675         * bus/main.c:
13676         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13677
13678         * bus/utils.c: (bus_wait_for_memory):
13679         * bus/utils.h:
13680         New files with general utility functions.
13681
13682         * dbus/dbus-internals.h:
13683         Remove _DBUS_HANDLE_OOM.
13684
13685 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13686
13687         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13688         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13689         * dbus/dbus-errors.h:
13690         Add DBusError structure.
13691
13692 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13693
13694         * test/data/valid-messages/standard-acquire-service.message:
13695         * test/data/valid-messages/standard-hello.message:
13696         * test/data/valid-messages/standard-list-services.message:
13697         * test/data/valid-messages/standard-service-exists.message:
13698         Add some standard messages.
13699
13700 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13701
13702         * bus/driver.c: (bus_driver_send_welcome_message),
13703         (bus_driver_handle_list_services),
13704         (bus_driver_handle_acquire_service),
13705         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13706         Update for API changes in libdbus.
13707
13708         * dbus/dbus-message.c: (dbus_message_new_reply):
13709         * dbus/dbus-message.h:
13710         Remove the name argument. The spec states that replies shouldn't
13711         have a name.
13712
13713 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13714
13715         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13716         (report_error), (bus_desktop_file_load), (lookup_section),
13717         (lookup_line), (bus_desktop_file_get_raw),
13718         (bus_desktop_file_get_string):
13719         * bus/desktop-file.h:
13720         Some fixes, and new functions for getting a key value from a section.
13721
13722 2003-02-13  Havoc Pennington  <hp@pobox.com>
13723
13724         * test/data/auth/fail-after-n-attempts.auth-script: new test
13725
13726         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13727         reject the client.
13728
13729 2003-02-13  Havoc Pennington  <hp@pobox.com>
13730
13731         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13732         dbus_credentials_match were backward
13733
13734         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13735         NO_CREDENTIALS and ROOT_CREDENTIALS
13736
13737         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13738         into here. Never process more commands after we've reached an
13739         end state; store further data as unused bytes.
13740
13741         * test/data/auth/*: add more auth tests
13742
13743         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13744         command to match exact string and EXPECT_UNUSED to match unused
13745         bytes
13746
13747         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13748
13749 2003-02-12  Havoc Pennington  <hp@pobox.com>
13750
13751         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13752         \r off of popped lines
13753
13754         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13755         scripts
13756
13757         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13758         SEND, append \r\n
13759
13760 2003-02-12  Havoc Pennington  <hp@pobox.com>
13761
13762         * dbus/Makefile.am: remove break-loader from the build, since it
13763         moved.
13764
13765         * configure.in: add --enable-gcov to turn on coverage profiling
13766         flags and disable optimization
13767
13768 2003-02-10  Havoc Pennington  <hp@pobox.com>
13769
13770         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13771         initial cut at test framework for DBusAuth from laptop.
13772         Doesn't quite work yet but it compiles and I need to get
13773         it off the 266mhz laptop. ;-)
13774
13775         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13776         fix a memleak in error case
13777
13778 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13779
13780         * bus/Makefile.am:
13781         * bus/desktop-file.c:
13782         * bus/desktop-file.h:
13783         Add a desktop file parser.
13784
13785 2003-02-11  Zack Rusin  <zack@kde.org>
13786
13787         * qt/message.[h|cpp]: sample implementation
13788         of the KDE wrapper for DBusMessage
13789
13790 2003-02-09  Zack Rusin  <zack@kde.org>
13791
13792         * test/bus-test.c: make_it_compile
13793         * doc/dbus-specification.sgml: minimal semantic fix
13794
13795 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13796
13797         Release 0.3
13798
13799         * NEWS: Update
13800
13801 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13802
13803         * dbus/Makefile.am:
13804         * dbus/dbus-break-loader.c:
13805         * test/Makefile.am:
13806         * test/break-loader.c:
13807         Move dbus-break-loader to test/ and rename it to break-loader.
13808
13809 2003-02-02  Havoc Pennington  <hp@pobox.com>
13810
13811         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13812         for code to manage cookies in your home directory
13813
13814         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13815
13816         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13817         to authenticate, then disconnect the client.
13818
13819 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13820
13821         * dbus/dbus-message.c (dbus_message_append_fields):
13822         Correct docs.
13823
13824 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13825
13826         * doc/dbus-specification.sgml:
13827         Update address format section.
13828
13829 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13830
13831         * test/Makefile.am:
13832         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13833         (message_handler), (new_connection_callback), (loop_quit),
13834         (loop_run), (main):
13835         Add bus test.
13836
13837 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13838
13839         * bus/driver.c: (bus_driver_handle_service_exists):
13840         Simplify the code a bit.
13841
13842         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13843         Fix a silly.
13844
13845 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13846
13847         * bus/Makefile.am:
13848         Add libdbus-daemon.la and link to it.
13849
13850 2003-02-01  James Willcox  <jwillcox@gnome.org>
13851
13852         * bus/driver.c: (bus_driver_handle_own_service):
13853         Actually include the service reply code in the message.
13854
13855 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13856
13857         * bus/driver.c: (bus_driver_handle_service_exists):
13858         Don't unref the incoming message.
13859
13860 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13861
13862         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13863
13864 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13865
13866         * dbus/dbus-server.c: (dbus_server_listen):
13867         * dbus/dbus-transport.c: (_dbus_transport_open):
13868         ifdef out the calls to the debug transport and server.
13869
13870 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13871
13872         * dbus/dbus-watch.c (dbus_watch_get_flags):
13873         Add note in the docs that ERROR or HANGUP won't be returned
13874         and are assumed always on.
13875
13876         * glib/dbus-gmain.c (add_watch):
13877         Always add IO_ERR | IO_HUP
13878
13879         * dbus/dbus-message.h:
13880         Add semicolon after dbus_message_iter_get_string_array().
13881         Makes qt code build again
13882
13883 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13884
13885         * bus/driver.c: (create_unique_client_name),
13886         (bus_driver_handle_hello):
13887         Don't take a name, just use a numeric id to identify
13888         each client.
13889
13890         * dbus/Makefile.am:
13891         * dbus/dbus-bus.c: (dbus_bus_register_client),
13892         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13893         * dbus/dbus-bus.h:
13894         Add new convenience functions for communicating with the bus.
13895
13896         * dbus/dbus-message.h:
13897
13898         * dbus/dbus-protocol.h:
13899         Fix a typo.
13900
13901 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13902
13903         * dbus/dbus-message.c (dbus_message_append_fields):
13904         Add some more doc comments.
13905
13906 2003-02-01  Havoc Pennington  <hp@pobox.com>
13907
13908         * dbus/dbus-break-loader.c (randomly_modify_length): change
13909         a 4-byte value in the message as if it were a length
13910
13911         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13912         execute bit on saved files
13913
13914 2003-02-01  Havoc Pennington  <hp@pobox.com>
13915
13916         * dbus/dbus-break-loader.c (main): new program to find messages
13917         that break the loader.
13918
13919         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13920         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13921
13922         * dbus/dbus-string.c (_dbus_string_set_byte): new
13923
13924 2003-01-31  Havoc Pennington  <hp@pobox.com>
13925
13926         * dbus/dbus-message.c: refactor the test code to be more general,
13927         in preparation for writing a "randomly permute test cases to
13928         try to break the loader" program.
13929
13930 2003-01-31  Havoc Pennington  <hp@pobox.com>
13931
13932         * doc/dbus-specification.sgml: work on the specification
13933
13934         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13935         the protocol version of the message.
13936
13937         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13938         no longer specifies that.
13939         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13940         1/2/3/4)
13941
13942         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13943         "break" for DBUS_TYPE_NIL, remove @todo
13944
13945 2003-01-31  Havoc Pennington  <hp@pobox.com>
13946
13947         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13948         just set_is_error/get_is_error as this is a commonly-used
13949         function, and write docs.
13950
13951 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13952
13953         * dbus/dbus-address.c: (dbus_address_entry_free):
13954         Free key and value lists.
13955
13956         * dbus/dbus-internals.c: (_dbus_type_to_string):
13957         Add the types we didn't have.
13958
13959         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13960         (_dbus_marshal_validate_arg):
13961         Add NIL types.
13962
13963         * dbus/dbus-message.c: (dbus_message_set_sender):
13964         Remove todo about being able to set sender to NULL.
13965
13966         (dbus_message_set_is_error_reply),
13967         (dbus_message_get_is_error_reply):
13968         * dbus/dbus-message.h:
13969         New functions.
13970
13971         * dbus/dbus-protocol.h:
13972         Add error reply flag.
13973
13974         * test/data/valid-messages/opposite-endian.message:
13975         Add NIL type to test.
13976
13977 2003-01-31  Havoc Pennington  <hp@pobox.com>
13978
13979         * doc/dbus-specification.sgml: fully specify the header.  Add
13980         flags and major protocol version, and change header/body len to
13981         unsigned.
13982
13983         * dbus/dbus-message-builder.c (append_saved_length): append length
13984         as uint32
13985
13986         * dbus/dbus-message.c (dbus_message_create_header): change header
13987         length and body length to unsigned. Add the new fields from the
13988         spec
13989         (_dbus_message_loader_return_buffer): unsigned header/body len
13990
13991 2003-01-30  Havoc Pennington  <hp@pobox.com>
13992
13993         * dbus/dbus-auth.c: rework to use only REJECTED, no
13994         MECHANISMS
13995
13996         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13997         use REJECTED, suggested by Mark McLoughlin
13998
13999 2003-01-30  Havoc Pennington  <hp@pobox.com>
14000
14001         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14002         a better way to report errors here. e.g.  "unix address lacks
14003         path" or something. also "no such file" when the path doesn't
14004         exist, etc.
14005
14006         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14007         leaking list nodes
14008         (dbus_parse_address): add @todo about documenting address format,
14009         and allowing , and ; to be escaped
14010
14011 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14012
14013         * dbus/Makefile.am:
14014         Add dbus-address.[ch]
14015
14016         * dbus/dbus-address.c: (dbus_address_entry_free),
14017         (dbus_address_entries_free), (create_entry),
14018         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14019         (dbus_parse_address), (_dbus_address_test):
14020         * dbus/dbus-address.h:
14021         New files for dealing with address parsing.
14022
14023         * dbus/dbus-connection.c:
14024         Document timeout functions.
14025
14026         * dbus/dbus-message.c:
14027         Document dbus_message_new_from_message.
14028
14029         * dbus/dbus-server-debug.c:
14030         Document.
14031
14032         * dbus/dbus-server.c: (dbus_server_listen):
14033         Parse address and use correct server implementation.
14034
14035         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14036         * dbus/dbus-string.h:
14037         New function with test.
14038
14039         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14040         * dbus/dbus-test.h:
14041         Add address tests.
14042
14043         * dbus/dbus-transport-debug.c:
14044         Document.
14045
14046         * dbus/dbus-transport.c: (_dbus_transport_open):
14047         Parse address and use correct transport implementation.
14048
14049 2003-01-30  Havoc Pennington  <hp@pobox.com>
14050
14051         * dbus/dbus-message.c: use message->byte_order instead of
14052         DBUS_COMPILER_BYTE_ORDER throughout.
14053         (dbus_message_create_header): pad header to align the
14054         start of the body of the message to 8-byte boundary
14055
14056         * dbus/dbus-marshal.h: make all the demarshalers take const
14057         DBusString arguments.
14058
14059         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14060         validate message args here, so we don't have to do slow validation
14061         later, and so we catch bad messages as they are incoming. Also add
14062         better checks on header_len and body_len. Also fill in
14063         message->byte_order
14064
14065         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14066         implemented properly)
14067         (_dbus_string_validate_nul): new function to check all-nul
14068
14069         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14070         get_arg_end_pos and remove all validation
14071         (_dbus_marshal_validate_arg): actually do validation here.
14072
14073 2003-01-29  Havoc Pennington  <hp@pobox.com>
14074
14075         * dbus/dbus-message.c (check_message_handling): fix assertion
14076         failure on set_client_serial
14077
14078 2003-01-28  Havoc Pennington  <hp@pobox.com>
14079
14080         * dbus/dbus-server-debug.c: Add doc section comments
14081
14082         * dbus/dbus-transport-debug.c: add doc section comments
14083
14084 2003-01-28  Havoc Pennington  <hp@redhat.com>
14085
14086         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14087         the reverse order from how I had it
14088         (_dbus_string_base64_encode): reverse encoding order. I was
14089         basically byteswapping everything during encoding.
14090
14091 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14092
14093         * dbus/dbus-connection-internal.h:
14094         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14095         (_dbus_connection_remove_timeout):
14096         Add functions for adding and removing timeouts.
14097
14098         * dbus/dbus-message.c: (dbus_message_new_from_message):
14099         Add new function that takes a message and creates an exact
14100         copy of it, but with the refcount set to 1.
14101         (check_message_handling):
14102         Fix build error.
14103
14104         * dbus/dbus-server-protected.h:
14105         * dbus/dbus-server.c: (_dbus_server_init_base),
14106         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14107         (dbus_server_set_timeout_functions):
14108         (_dbus_server_remove_timeout):
14109         New functions so that a server can add and remove timeouts.
14110
14111         (dbus_server_listen):
14112         Add commented out call to dbus_server_debug_new.
14113
14114         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14115         Actually set the handler, doh.
14116
14117         * dbus/dbus-transport.c: (_dbus_transport_open):
14118         Add commented out call to dbus_transport_debug_client_new.
14119
14120         * dbus/Makefile.am:
14121         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14122
14123 2003-01-28  Havoc Pennington  <hp@pobox.com>
14124
14125         * dbus/dbus-message.c (check_message_handling): function to check
14126         on the loaded message, iterates over it etc.
14127
14128 2003-01-28  Havoc Pennington  <hp@pobox.com>
14129
14130         * test/Makefile.am (dist-hook): fix make distdir
14131
14132         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14133
14134 2003-01-27  Havoc Pennington  <hp@pobox.com>
14135
14136         * dbus/dbus-mempool.c (time_for_size): replace printf with
14137         _dbus_verbose
14138
14139         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14140         empty lines; fix the SAVE_LENGTH stuff to be
14141         START_LENGTH/END_LENGTH so it actually works; couple other
14142         bugfixes
14143
14144         * test/Makefile.am (dist-hook): add dist-hook for .message files
14145
14146         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14147         can be constant or locked.
14148         (_dbus_string_free): allow freeing a const string as
14149         documented/intended
14150
14151         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14152
14153         * dbus/dbus-test-main.c (main): take an argument which is the
14154         directory containing test data
14155
14156         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14157         argument to this and load all the messages in test/data/
14158         checking that they can be loaded or not loaded as appropriate.
14159
14160 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14161
14162         * bus/dispatch.c: (bus_dispatch_message_handler):
14163         Dispatch messages sent to services.
14164
14165         * bus/driver.c: (bus_driver_send_service_deleted),
14166         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14167         (bus_driver_send_service_acquired):
14168         Add helper functions for sending service related messages.
14169
14170         (bus_driver_send_welcome_message):
14171         Send HELLO_REPLY instead of WELCOME.
14172
14173         (bus_driver_handle_list_services):
14174         Send LIST_SERVICES_REPLY instead of SERVICES.
14175
14176         (bus_driver_handle_own_service),
14177         (bus_driver_handle_service_exists):
14178         New message handlers.
14179
14180         (bus_driver_handle_message):
14181         Invoke new message handlers.
14182
14183         (bus_driver_remove_connection):
14184         Don't remove any services here since that's done automatically
14185         by bus_service_remove_owner now.
14186
14187         * bus/driver.h:
14188         New function signatures.
14189
14190         * bus/services.c: (bus_service_add_owner):
14191         Send ServiceAcquired message if we're the only primary owner.
14192
14193         (bus_service_remove_owner):
14194         Send ServiceAcquired/ServiceLost messages.
14195
14196         (bus_service_set_prohibit_replacement),
14197         (bus_service_get_prohibit_replacement):
14198         Functions for setting prohibit replacement.
14199
14200         (bus_service_has_owner):
14201         New function that checks if a connection is in the owner queue of
14202         a certain service.
14203
14204         * bus/services.h:
14205         Add new function signatures.
14206
14207         * dbus/dbus-list.c: (_dbus_list_test):
14208         Add tests for _dbus_list_remove_last and traversing the list backwards.
14209
14210         * dbus/dbus-list.h:
14211         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14212         go any further, so return NULL then.
14213
14214         * dbus/dbus-protocol.h:
14215         Add new messages, service flags and service replies.
14216
14217 2003-01-26  Havoc Pennington  <hp@pobox.com>
14218
14219         * dbus/dbus-message-builder.c: implement, completely untested.
14220
14221         * test/data/*: add data to be used in testing.
14222         ".message" files are our simple loadable text format.
14223         ".message-raw" will be binary dumps of messages.
14224
14225         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14226
14227 2003-01-26  Havoc Pennington  <hp@pobox.com>
14228
14229         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14230
14231         * dbus/dbus-errors.c (dbus_result_to_string): add
14232         file errors
14233
14234         * dbus/dbus-message-builder.c: new file, will contain code to load
14235         up messages from files. Not implemented yet.
14236
14237 2003-01-26  Havoc Pennington  <hp@pobox.com>
14238
14239         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14240         the sender by setting to NULL
14241
14242 2003-01-26  Havoc Pennington  <hp@pobox.com>
14243
14244         The unit tests pass, but otherwise untested.  If it breaks, the
14245         tests should have been better. ;-)
14246
14247         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14248         the connection.
14249
14250         * dbus/dbus-message.c: redo everything so we maintain
14251         message->header as the only copy of the various fields.
14252         This avoids the possibility of out-of-memory in some cases,
14253         for example dbus_message_lock() can't run out of memory anymore,
14254         and avoids extra copying. Figured I may as well go ahead and do
14255         this since it was busted for dbus_message_lock to not return
14256         failure on OOM, and dbus_message_write_header was totally
14257         unchecked for OOM. Also fixed some random other bugs.
14258
14259         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14260         that strings are nul-terminated. Also, end_pos can be equal
14261         to string length just not greater than, I think.
14262         (_dbus_marshal_set_int32): new function
14263         (_dbus_marshal_set_uint32): new function
14264         (_dbus_marshal_set_string): new function
14265
14266         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14267         a warning, init timeout_list to NULL
14268         (dbus_connection_send_message): don't use uninitialized variable
14269         "serial"
14270
14271         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14272
14273 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14274
14275         * bus/driver.c: (bus_driver_handle_hello),
14276         (bus_driver_send_welcome_message):
14277         Plug leaks
14278
14279 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14280
14281         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14282         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14283         (dbus_connection_unref):
14284         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14285         * dbus/dbus-message.c: (dbus_message_unref),
14286         Plug memory leaks.
14287
14288         (dbus_message_get_fields):
14289         Remove debugging printout.
14290
14291         (_dbus_message_loader_return_buffer):
14292         Don't store the header string.
14293
14294         (_dbus_message_test):
14295         Plug leaks.
14296
14297 2003-01-26  Richard Hult  <rhult@codefactory.se>
14298
14299         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14300         the file descriptor list, since it can change under us.
14301
14302 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14303
14304         * glib/dbus-gmain.c: (dbus_connection_prepare),
14305         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14306         (remove_watch), (dbus_connection_hookup_with_g_main):
14307         Rewrite the glib handling to use its own GSource instead of a
14308         GIOChannel so we can catch messages put in the queue while waiting
14309         for a reply.
14310
14311 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14312
14313         * bus/Makefile.am:
14314         * bus/connection.c: (connection_disconnect_handler),
14315         (connection_watch_callback), (bus_connection_setup):
14316         * bus/dispatch.c: (send_one_message),
14317         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14318         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14319         * bus/dispatch.h:
14320         * bus/driver.c: (bus_driver_send_service_deleted),
14321         (bus_driver_send_service_created), (bus_driver_handle_hello),
14322         (bus_driver_send_welcome_message),
14323         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14324         (bus_driver_handle_message):
14325         * bus/driver.h:
14326         Refactor code, put the message dispatching in its own file. Use
14327         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14328         is disconnected.
14329
14330 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14331
14332         * dbus/dbus-internals.h:
14333         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14334
14335         * dbus/dbus-message.c: (dbus_message_get_sender):
14336         * dbus/dbus-message.h:
14337         Implement dbus_message_get_sender.
14338
14339         * dbus/dbus-protocol.h:
14340         Add message and service defines.
14341
14342 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14343
14344         * dbus/dbus-connection.c: (dbus_connection_send_message):
14345         * dbus/dbus-message-internal.h:
14346         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14347         (dbus_message_write_header):
14348         Remove _dbus_messag_unlock and don't set the client serial on a
14349         message if one already exists.
14350
14351 2003-01-24  Havoc Pennington  <hp@pobox.com>
14352
14353         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14354         list_pool
14355
14356         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14357         on OOM
14358
14359 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14360
14361         * dbus/dbus-list.c: (alloc_link), (free_link):
14362         Use a memory pool for the links.
14363
14364 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14365
14366         * bus/connection.c: (bus_connection_foreach):
14367         * bus/connection.h:
14368         Add new bus_connection_foreach function.
14369
14370         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14371         Add function that broadcasts a message to all clients.
14372
14373         (bus_driver_send_service_created), (bus_driver_handle_hello),
14374         (bus_driver_send_welcome_message),
14375         (bus_driver_handle_list_services), (bus_driver_message_handler):
14376         Implement functions that take care of listing services, and notifying
14377         clients when new services are created.
14378
14379         * bus/services.c: (bus_services_list):
14380         * bus/services.h:
14381         Add new function that returns an array of strings with the currently
14382         registered services.
14383
14384         * glib/dbus-glib.h:
14385         * glib/dbus-gmain.c:
14386         Update copyright year.
14387
14388 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14389
14390         * dbus/dbus-connection.c: (dbus_connection_send_message):
14391         Unlock the message in case it was sent earlier.
14392
14393         (dbus_connection_send_message_with_reply_and_block):
14394         Remove the reply message from the list.
14395
14396         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14397         Set array_len and new_pos correctly.
14398
14399         (_dbus_marshal_test):
14400         Remove debug output.
14401
14402         * dbus/dbus-message-internal.h:
14403         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14404         New function that returns the reply serial.
14405
14406         (_dbus_message_unlock):
14407         New function that unlocks a message and resets its header.
14408
14409         (dbus_message_append_string_array),
14410         (dbus_message_get_fields_valist),
14411         (dbus_message_iter_get_field_type),
14412         (dbus_message_iter_get_string_array),
14413         (dbus_message_get_fields),
14414         (dbus_message_append_fields_valist):
14415         Handle string arrays.
14416
14417         (dbus_message_set_sender):
14418         Make this function public since the bus daemon needs it.
14419
14420         (decode_header_data):
14421         Set the reply serial to -1 initially.
14422
14423         * dbus/dbus-message.h:
14424         Add dbus_message_set_sender.
14425
14426 2003-01-24  Havoc Pennington  <hp@pobox.com>
14427
14428         * doc/dbus-specification.sgml: add some stuff
14429
14430 2003-01-22  Havoc Pennington  <hp@pobox.com>
14431
14432         * doc/dbus-specification.sgml: Start to document the protocol.
14433
14434 2003-01-22  Havoc Pennington  <hp@pobox.com>
14435
14436         * dbus/dbus-connection.c
14437         (dbus_connection_send_message_with_reply_and_block): add some @todo
14438
14439         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14440
14441 2003-01-21  Havoc Pennington  <hp@pobox.com>
14442
14443         (patch untested because can't compile)
14444
14445         * bus/driver.c (create_unique_client_name): make this function
14446         never recycle client names. Also, caller should initialize
14447         the DBusString.
14448
14449         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14450
14451 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14452
14453         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14454         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14455         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14456         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14457         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14458         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14459         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14460         * dbus/dbus-marshal.h:
14461         * dbus/dbus-protocol.h:
14462         Add support for marshalling and demarshalling integer, double
14463         and string arrays.
14464
14465 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14466
14467         * bus/Makefile.am:
14468         Add driver.[ch]
14469
14470         * bus/connection.c: (connection_disconnect_handler):
14471         Remove the connection from the bus driver's list.
14472
14473         (connection_watch_callback): Dispatch messages.
14474
14475         (free_connection_data): Free connection name.
14476
14477         (bus_connection_setup): Add connection to the bus driver's list.
14478         (bus_connection_remove_owned_service):
14479         (bus_connection_set_name), (bus_connection_get_name):
14480         Add functions for setting and getting the connection's name.
14481
14482         * bus/connection.h:
14483         Add function headers.
14484
14485         * bus/driver.c: (create_unique_client_name),
14486         (bus_driver_handle_hello_message),
14487         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14488         (bus_driver_add_connection), (bus_driver_remove_connection):
14489         * bus/driver.h:
14490         * bus/main.c:
14491         * bus/services.c: (bus_service_free):
14492         * bus/services.h:
14493         New file that handles communication and registreation with the bus
14494         itself.
14495
14496 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14497
14498         * dbus/dbus-connection.c: (dbus_connection_send_message):
14499         Add a new client_serial parameter.
14500
14501         (dbus_connection_send_message_with_reply):
14502         Remove a @todo since we've implemented the blocking function.
14503
14504         (dbus_connection_send_message_with_reply_and_block):
14505         New function that sends a message and waits for a reply and
14506         then returns the reply.
14507
14508         * dbus/dbus-connection.h:
14509         Add new functions.
14510
14511         * dbus/dbus-errors.c: (dbus_result_to_string):
14512         * dbus/dbus-errors.h:
14513         Add new DBUS_RESULT.
14514
14515         * dbus/dbus-message-internal.h:
14516         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14517         (_dbus_message_set_sender), (dbus_message_write_header),
14518         (dbus_message_new_reply), (decode_header_data),
14519         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14520         * dbus/dbus-message.h:
14521         Add new functions that set the reply serial and sender.
14522         Also marshal and demarshal them correctly and add test.
14523
14524         * dbus/dbus-protocol.h:
14525         Add new DBUS_MESSAGE_TYPE_SENDER.
14526
14527         * glib/dbus-glib.h:
14528         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14529         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14530         (dbus_connection_hookup_with_g_main):
14531         * glib/test-dbus-glib.c: (main):
14532         Rewrite to use GIOChannel and remove the GSource crack.
14533
14534         * test/echo-client.c: (main):
14535         * test/watch.c: (check_messages):
14536         Update for changed APIs
14537
14538 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14539
14540         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14541
14542         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14543         Create a DBusTimeoutList.
14544         (dbus_connection_set_timeout_functions): Add new function to
14545         set timeout callbacks
14546
14547         * dbus/dbus-connection.h: Add public DBusTimeout API.
14548
14549         * dbus/dbus-message.c: (dbus_message_get_service):
14550         * dbus/dbus-message.h:  New function.
14551
14552         * dbus/dbus-server.c: Fix small doc typo.
14553
14554         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14555
14556 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14557
14558         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14559         of the string, just as long as specified.
14560
14561 2003-01-19  Havoc Pennington  <hp@pobox.com>
14562
14563         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14564         new function
14565
14566         * dbus/dbus-server.c (dbus_server_set_max_connections)
14567         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14568         keep track of current number of connections, and add API for
14569         setting a max (but haven't implemented enforcing the max yet)
14570
14571 2003-01-18  Havoc Pennington  <hp@pobox.com>
14572
14573         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14574         reading/writing if read_watch != NULL or write_watch != NULL.
14575
14576         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14577         the message loader code to actually load message->header and
14578         message->body into the newly-created message.
14579
14580         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14581         in OOM case
14582
14583         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14584         (dbus_connection_get_max_message_size)
14585         (dbus_connection_set_max_live_messages_size)
14586         (dbus_connection_get_max_live_messages_size): implement some
14587         resource limitation functions
14588
14589         * dbus/dbus-resources.c: new file implementing some of the
14590         resource limits stuff
14591
14592         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14593         missing docs, add @todo to handle OOM etc.
14594
14595         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14596         docs
14597
14598 2003-01-18  Havoc Pennington  <hp@pobox.com>
14599
14600         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14601         connection if it hasn't been already.
14602
14603         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14604         replace with DisconnectFunction.
14605
14606 2003-01-18  Havoc Pennington  <hp@pobox.com>
14607
14608         Building --disable-verbose-mode --disable-asserts --disable-tests
14609         cuts the library from 112K to 45K or so
14610
14611         * configure.in: check for varargs macro support,
14612         add --enable-verbose-mode, --enable-asserts.
14613
14614         * dbus/dbus-internals.h (_dbus_assert): support
14615         DBUS_DISABLE_ASSERT
14616         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14617
14618 2003-01-18  Havoc Pennington  <hp@pobox.com>
14619
14620         * dbus/dbus-test.c: include config.h so that tests actually run
14621
14622         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14623         so the failure mode when that assumption fails will be plenty
14624         obvious.
14625
14626 2003-01-18  Havoc Pennington  <hp@pobox.com>
14627
14628         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14629
14630         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14631         the distribution
14632
14633         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14634         since we don't want to use those in make check
14635
14636 2003-01-15  Havoc Pennington  <hp@redhat.com>
14637
14638         Release 0.2
14639
14640         * NEWS: update
14641
14642 2003-01-15  Havoc Pennington  <hp@redhat.com>
14643
14644         * test/Makefile.am: fix so that test source code ends up in the
14645         distribution on make distcheck
14646
14647 2003-01-15  Havoc Pennington  <hp@redhat.com>
14648
14649         Release 0.1.
14650
14651         * NEWS: update
14652
14653 2003-01-15  Havoc Pennington  <hp@redhat.com>
14654
14655         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14656         fix build when --disable-tests
14657
14658         * Makefile.am (EXTRA_DIST): put HACKING in here
14659
14660         * HACKING: document procedure for making a tarball release.
14661
14662 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14663
14664         * bus/connection.c: (connection_error_handler),
14665         (bus_connection_setup):
14666         * bus/main.c: (main):
14667         Make sure that the DBusConnectionData struct is NULLed
14668         out to prevent a segfault.
14669
14670         * dbus/dbus-errors.c: (dbus_result_to_string):
14671         * dbus/dbus-errors.h:
14672         * dbus/dbus-message.c: (dbus_message_get_fields),
14673         (dbus_message_get_fields_valist), (_dbus_message_test):
14674         * dbus/dbus-message.h:
14675         Make dbus_message_get_fields return a result code so we can
14676         track invalid fields as well as oom.
14677
14678 2003-01-11  Havoc Pennington  <hp@pobox.com>
14679
14680         * configure.in: change --enable-test/--enable-ansi action-if-given
14681         to enable_foo=$enableval instead of enable_foo=yes
14682
14683 2003-01-08  Havoc Pennington  <hp@pobox.com>
14684
14685         * dbus/dbus-string.c (_dbus_string_align_length): new function
14686
14687         * dbus/dbus-test-main.c: move main() for test app here
14688         * dbus/dbus-test.c
14689         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14690         symbol to run tests, because dbus-test isn't in the main
14691         library
14692
14693         Code review nitpicks.
14694
14695         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14696         for people with narrow emacs ;-). Assert client_serial was filled
14697         in. Assert message->name != NULL.
14698         (dbus_message_append_fields): have "first_field_type" arg separate
14699         from va list, needed for C++ binding that also uses varargs IIRC
14700         and helps with type safety
14701         (dbus_message_new): add @todo about using DBusString to store
14702         service/name internally
14703         (dbus_message_new): don't leak ->service and ->name on OOM later
14704         in the function
14705         (dbus_message_unref): free the service name
14706         (dbus_message_get_fields): same change to varargs
14707         i.e. first_field_type
14708         (_dbus_message_loader_return_buffer): assert that the message data
14709         is aligned (if not it's a bug in our code). Put in verbose griping
14710         about why we set corrupted = TRUE.
14711         (decode_header_data): add FIXME that char* is evil.  Was going to
14712         add FIXME about evil locale-specific string.h strncmp, but just
14713         switched to wacky string-as-uint32 optimization. Move check for
14714         "no room for field name" above get_const_data_len() to avoid
14715         assertion failure in get_const_data_len if we have trailing 2
14716         bytes or the like. Check for service and name fields being
14717         provided twice. Don't leak service/name on error. Require field
14718         names to be aligned to 4 bytes.
14719
14720         * dbus/dbus-marshal.c: move byte swap stuff to header
14721         (_dbus_pack_int32): uscore-prefix
14722         (_dbus_unpack_int32): uscore-prefix
14723         (_dbus_unpack_uint32): export
14724         (_dbus_demarshal_string): add @todo complaining about use of
14725         memcpy()
14726         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14727         handling allowing corrupt data to go unchecked
14728
14729 2003-01-08  Havoc Pennington  <hp@redhat.com>
14730
14731         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14732         to the select() as needed for authentication. (should be using
14733         _dbus_poll() not select, but for another day)
14734
14735         * dbus/dbus.h: include dbus/dbus-protocol.h
14736
14737 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14738
14739         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14740         dbus-connection.h
14741
14742 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14743
14744         * dbus/dbus-internals.c: (_dbus_type_to_string):
14745         New function that returns a string describing a type.
14746
14747         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14748         * dbus/dbus-marshal.h:
14749         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14750         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14751         (dbus_message_iter_get_byte_array):
14752         * dbus/dbus-message.h:
14753         Add new convenience functions for appending and getting message fields.
14754         Also add demarshalling routines for byte arrays.
14755
14756 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14757
14758         * dbus/dbus-connection-internal.h:
14759         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14760         (_dbus_connection_get_next_client_serial),
14761         (dbus_connection_send_message):
14762         * dbus/dbus-internals.h:
14763         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14764         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14765         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14766         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14767         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14768         (_dbus_verbose_bytes), (_dbus_marshal_test):
14769         * dbus/dbus-marshal.h:
14770         * dbus/dbus-message-internal.h:
14771         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14772         (dbus_message_write_header), (_dbus_message_lock),
14773         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14774         (dbus_message_get_name), (dbus_message_append_int32),
14775         (dbus_message_append_uint32), (dbus_message_append_double),
14776         (dbus_message_append_string), (dbus_message_append_byte_array),
14777         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14778         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14779         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14780         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14781         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14782         (decode_header_data), (_dbus_message_loader_return_buffer),
14783         (message_iter_test), (_dbus_message_test):
14784         * dbus/dbus-message.h:
14785         * dbus/dbus-protocol.h:
14786         * dbus/dbus-test.c: (main):
14787         * dbus/dbus-test.h:
14788         * glib/test-dbus-glib.c: (message_handler), (main):
14789         * test/echo-client.c: (main):
14790         * test/watch.c: (check_messages):
14791         Make messages sendable and receivable for real.
14792
14793 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14794
14795         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14796         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14797         * dbus/dbus-message.c: (dbus_message_append_int32),
14798         (dbus_message_append_uint32), (dbus_message_append_double),
14799         (dbus_message_append_string), (dbus_message_append_byte_array):
14800         Handle OOM restoration.
14801
14802 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14803
14804         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14805         (_dbus_demarshal_string), (_dbus_marshal_test):
14806         * dbus/dbus-marshal.h:
14807         * dbus/dbus-message.c: (dbus_message_get_name),
14808         Document these functions.
14809
14810         (dbus_message_append_int32), (dbus_message_append_uint32),
14811         (dbus_message_append_double), (dbus_message_append_string),
14812         (dbus_message_append_byte_array):
14813         * dbus/dbus-message.h:
14814         Add functions for adding message fields of different types.
14815
14816         * dbus/dbus-protocol.h:
14817         Add the different types.
14818
14819 2003-01-05  Havoc Pennington  <hp@pobox.com>
14820
14821         * bus/connection.c: implement routines for handling connections,
14822         first thing is keeping a list of owned services on each connection
14823         and setting up watches etc.
14824
14825         * bus/services.c: implement a mapping from service names to lists
14826         of connections
14827
14828         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14829
14830         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14831         to use static mutexes for global data
14832
14833         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14834         collection of functions to set/get application-specific data
14835         on the DBusConnection.
14836
14837 2003-01-04  Havoc Pennington  <hp@pobox.com>
14838
14839         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14840         (_dbus_poll): new function
14841
14842         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14843         copied from GLib
14844
14845         * bus/loop.c: initial code for the daemon main loop
14846
14847 2003-01-04  Havoc Pennington  <hp@pobox.com>
14848
14849         * test/watch.c (error_handler): make it safe if the error handler
14850         is called multiple times (if we s/error handler/disconnect
14851         handler/ we should just guarantee it's called only once)
14852
14853         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14854         error handler on disconnect (it's quite possible we should
14855         just change the error handler to a "disconnect handler," I'm
14856         not sure we have any other meaningful errors)
14857
14858         * configure.in: check for getpwnam_r
14859
14860         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14861         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14862         mechanism as in SASL spec, using socket credentials
14863
14864         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14865         (_dbus_send_credentials_unix_socket): new function
14866
14867         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14868         dbus_accept()
14869         (_dbus_write): only check errno if <0 returned
14870         (_dbus_write_two): ditto
14871
14872 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14873
14874         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14875         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14876         (_dbus_marshal_test):
14877         * dbus/dbus-marshal.h:
14878         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14879         to _dbus_marshal_utf8_string. Also fix some tests.
14880
14881 2002-12-28  Harri Porten  <porten@kde.org>
14882
14883         * configure.in: added check for C++ compiler and a very cheesy
14884         check for the Qt integration
14885
14886         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14887
14888         * qt/Makefile.am: added
14889
14890         * qt/.cvsignore: added
14891
14892         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14893         latter, added #ifdef QT_THREAD_SUPPORT guard.
14894
14895         * dbus/Makefile.am: added missing headers for make dist
14896
14897 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14898
14899         * dbus/Makefile.am: fixup export-symbols-regex.
14900
14901 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14902
14903         * acinclude.m4: Add this file and put the
14904         PKG_CHECK_MODULE macro in it.
14905
14906 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14907
14908         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14909         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14910         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14911         (_dbus_marshal_test):
14912         Make the demarshalling routines align the pos argument.
14913         Add string marshalling tests and fix the obvious bugs
14914         discovered.
14915
14916 2002-12-26  Havoc Pennington  <hp@pobox.com>
14917
14918         * dbus/dbus-auth.c: fixes fixes fixes
14919
14920         * dbus/dbus-transport-unix.c: wire up support for
14921         encoding/decoding data on the wire
14922
14923         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14924         (_dbus_auth_decode_data): append to target string
14925         instead of nuking it.
14926
14927 2002-12-26  Havoc Pennington  <hp@pobox.com>
14928
14929         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14930         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14931         doh
14932
14933         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14934         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14935         now). Main point is because I wanted unpack_uint32 to implement
14936         _dbus_verbose_bytes
14937         (_dbus_verbose_bytes): new function
14938
14939         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14940
14941         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14942         mechanism to handle a corrupt message stream
14943         (_dbus_message_loader_new): fix preallocation to only prealloc,
14944         not prelengthen
14945
14946         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14947         (_dbus_string_test): enhance tests for copy/move and fix the
14948         functions
14949
14950         * dbus/dbus-transport-unix.c: Hold references in more places to
14951         avoid reentrancy problems
14952
14953         * dbus/dbus-transport.c: ditto
14954
14955         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14956         leak reference count in no-message case
14957
14958         * test/watch.c (do_mainloop): handle adding/removing watches
14959         during iteration over the watches. Also, ref the connection/server
14960         stored on a watch, so we don't try to mangle a destroyed one.
14961
14962         * dbus/dbus-transport-unix.c (do_authentication): perform
14963         authentication
14964
14965         * dbus/dbus-auth.c (get_state): add a state
14966         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14967         (_dbus_auth_get_unused_bytes): append the unused bytes
14968         to the passed in string, rather than prepend
14969
14970         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14971         the auth conversation DBusAuth
14972
14973         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14974         (_dbus_transport_new_for_domain_socket): when creating a
14975         transport, pass in whether it's a client-side or server-side
14976         transport so we know which DBusAuth to create
14977
14978 2002-12-03  Havoc Pennington  <hp@pobox.com>
14979
14980         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14981         _after_ finalizing the derived members
14982         (unix_connection_set): unref watch if we fail to add it
14983
14984         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14985         transport first, so that the connection owned by the
14986         transport will be valid as the transport finalizes.
14987
14988         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14989         if necessary, and remove watches from the connection.
14990
14991         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14992
14993 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14994
14995         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14996         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14997         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14998         (_dbus_marshal_test):
14999         * dbus/dbus-marshal.h:
15000         Add string marshal functions and have the demarshal functions
15001         return the new position.
15002
15003 2002-12-25  Havoc Pennington  <hp@pobox.com>
15004
15005         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15006         it is a simple protocol that just maps directly to SASL.
15007
15008         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15009         initial implementation, not actually used yet.
15010
15011         * dbus/dbus-string.c (_dbus_string_find): new function
15012         (_dbus_string_equal): new function
15013         (_dbus_string_base64_encode): new function
15014         (_dbus_string_base64_decode): new function
15015
15016 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15017
15018         * dbus/Makefile.am:
15019         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15020         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15021         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15022         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15023         * dbus/dbus-marshal.h:
15024         * dbus/dbus-protocol.h:
15025         * dbus/dbus-test.c: (main):
15026         * dbus/dbus-test.h:
15027         Add un-optimized marshalling/demarshalling routines.
15028
15029 2002-12-25  Harri Porten  <porten@kde.org>
15030
15031         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15032
15033 2002-12-24  Zack Rusin  <zack@kde.org>
15034
15035         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15036         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15037         main loop stuff
15038
15039 2002-12-24  Havoc Pennington  <hp@pobox.com>
15040
15041         * glib/dbus-gthread.c: fix include
15042
15043         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15044         I think glib API needs to change, though, as you don't
15045         want to use DBusMessageFunction, you want to use the
15046         DBusMessageHandler object. Probably
15047         dbus_connection_open_with_g_main_loop()
15048         and dbus_connection_setup_g_main_loop() or something like that
15049         (but think of better names...) that just create a connection
15050         that has watch/timeout functions etc. already set up.
15051
15052         * dbus/dbus-connection.c
15053         (dbus_connection_send_message_with_reply): new function just to
15054         show how the message handler helps us deal with replies.
15055
15056         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15057
15058         * dbus/dbus-string.c (_dbus_string_test): free a string that
15059         wasn't
15060
15061         * dbus/dbus-hash.c: use memory pools for the hash entries
15062         (rebuild_table): be more paranoid about overflow, and
15063         shrink table when we can
15064         (_dbus_hash_test): reduce number of sprintfs and write
15065         valid C89. Add tests for case where we grow and then
15066         shrink the hash table.
15067
15068         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15069
15070         * dbus/dbus-connection.c (dbus_connection_register_handler)
15071         (dbus_connection_unregister_handler): new functions
15072
15073         * dbus/dbus-message.c (dbus_message_get_name): new
15074
15075         * dbus/dbus-list.c: fix docs typo
15076
15077         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15078         an object representing a handler for messages.
15079
15080 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15081
15082         * glib/dbus-glib.h:
15083         * glib/dbus-gthread.c: (dbus_gthread_init):
15084         Don't use the gdbus prefix for public functions.
15085
15086 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15087
15088         * Makefile.am:
15089         * configure.in:
15090         Add GLib checks and fixup .pc files
15091
15092         * glib/Makefile.am:
15093         * glib/dbus-glib.h:
15094         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15095         (gdbus_connection_check), (gdbus_connection_dispatch),
15096         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15097         (dbus_connection_gsource_new):
15098         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15099         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15100         * glib/test-dbus-glib.c: (message_handler), (main):
15101         Add GLib support.
15102
15103 2002-12-15  Harri Porten  <porten@kde.org>
15104
15105         * autogen.sh: check for libtoolize before attempting to use it
15106
15107         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15108         struct.
15109
15110         * .cvsignore: ignore more stamp files
15111
15112         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15113
15114         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15115         without make install.
15116
15117 2002-12-15  Havoc Pennington  <hp@pobox.com>
15118
15119         * dbus/dbus-threads.c: add thread stubs that a higher library
15120         layer can fill in. e.g. the GLib wrapper might fill them in with
15121         GThread stuff. We still need to use this thread API to
15122         thread-safe-ize the library.
15123
15124 2002-12-12  Havoc Pennington  <hp@pobox.com>
15125
15126         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15127         below new interfaces and include fewer system headers.
15128
15129         * dbus/dbus-sysdeps.c (_dbus_read): new function
15130         (_dbus_write): new function
15131         (_dbus_write_two): new function
15132         (_dbus_connect_unix_socket): new function
15133         (_dbus_listen_unix_socket): new function
15134
15135         * dbus/dbus-message-internal.h: change interfaces to use
15136         DBusString
15137
15138 2002-12-11  Havoc Pennington  <hp@pobox.com>
15139
15140         * dbus/dbus-types.h: add dbus_unichar
15141
15142         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15143
15144         * dbus/dbus-connection.c (dbus_connection_send_message): return
15145         TRUE on success
15146
15147         * dbus/dbus-transport.c: include dbus-watch.h
15148
15149         * dbus/dbus-connection.c: include dbus-message-internal.h
15150
15151         * HACKING: add file with coding guidelines stuff.
15152
15153         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15154         handling here, for security purposes (as in vsftpd). Not actually
15155         using this class yet.
15156
15157         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15158         system/libc usage here, as in vsftpd, for ease of auditing (and
15159         should also simplify portability). Haven't actually moved all the
15160         system/libc usage into here yet.
15161
15162 2002-11-25  Havoc Pennington  <hp@pobox.com>
15163
15164         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15165         always print the first verbose message.
15166
15167 2002-11-24  Havoc Pennington  <hp@pobox.com>
15168
15169         * test/echo-client.c, test/echo-server.c: cheesy test
15170         clients.
15171
15172         * configure.in (AC_CHECK_FUNCS): check for writev
15173
15174         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15175         function
15176
15177         * dbus/dbus-list.c (_dbus_list_foreach): new function
15178
15179         * dbus/dbus-internals.c (_dbus_verbose): new function
15180
15181         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15182         representing a server that listens for connections.
15183
15184         * dbus/.cvsignore: create
15185
15186         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15187         public API for reporting errors
15188
15189         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15190         public object representing a connection that
15191         sends/receives messages. (Same object used for
15192         both client and server.)
15193
15194         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15195         Basic abstraction for different kinds of stream
15196         that we might read/write messages from.
15197
15198 2002-11-23  Havoc Pennington  <hp@pobox.com>
15199
15200         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15201         _DBUS_INT_MAX
15202
15203         * dbus/dbus-test.c (main): add list test, and include
15204         dbus-test.h as intended
15205
15206         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15207         (_dbus_hash_table_remove_int): return value indicates
15208         whether the entry existed to remove
15209
15210         * dbus/dbus-list.c: add linked list utility class,
15211         with docs and tests
15212
15213         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15214         array sometimes.
15215
15216 2002-11-23  Havoc Pennington  <hp@pobox.com>
15217
15218         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15219         DBUS_END_DECLS to nothing, that should fix this once and for all
15220
15221         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15222
15223         * dbus/dbus-message.c, dbus/dbus-hash.c:
15224         add some missing @brief
15225
15226 2002-11-23  Havoc Pennington  <hp@pobox.com>
15227
15228         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15229         to avoid confusing Doxygen
15230
15231         * dbus/dbus-hash.c: @} not }@
15232
15233         * dbus/dbus-message.c (struct DBusMessage): split out
15234         internals docs
15235
15236 2002-11-23  Havoc Pennington  <hp@pobox.com>
15237
15238         * configure.in: pile on more warning flags if using gcc
15239
15240         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15241         to document static functions
15242
15243         * configure.in: add summary to end of configure so it
15244         looks nice and attractive
15245
15246         * dbus/dbus-hash.c: finish implementation and write unit
15247         tests and docs
15248
15249         * configure.in: add --enable-tests to enable unit tests
15250
15251         * dbus/dbus-test.c: test program to run unit tests
15252         for all files in dbus/*, initially runs a test for
15253         dbus-hash.c
15254
15255         * dbus/dbus-internals.h: file to hold some internal utility stuff
15256
15257 2002-11-22  Havoc Pennington  <hp@redhat.com>
15258
15259         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15260         "ported" away from Tcl
15261
15262         * dbus/dbus-types.h: header for types such as dbus_bool_t
15263
15264 2002-11-22  Havoc Pennington  <hp@redhat.com>
15265
15266         * dbus/dbus.h: fixups for doc warnings
15267
15268         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15269         macros
15270         (QUIET): make it quiet so we can see warnings
15271
15272         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15273
15274 2002-11-22  Havoc Pennington  <hp@redhat.com>
15275
15276         * Makefile.am: include "Doxyfile" target in all-local
15277
15278         * configure.in: generate the Doxyfile
15279
15280         * Doxyfile.in: move Doxyfile here, so we can use
15281         configure to generate a Doxyfile with the right
15282         version number etc.
15283
15284 2002-11-22  Havoc Pennington  <hp@redhat.com>
15285
15286         * dbus/dbus-message.c: move inline docs into .c file
15287
15288         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15289         so all docs are under doc/
15290         (MAN_EXTENSION): generate man pages. Use extension
15291         ".3dbus" which matches ".3qt" on my system,
15292         I guess this is OK, I don't know really.
15293         (FILE_PATTERNS): look for .c files not .h, makes sense
15294         for plain C I think
15295
15296 2002-11-22  Havoc Pennington  <hp@pobox.com>
15297
15298         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15299         because any app can be a server, and any app can be a client,
15300         the bus is a special kind of server.
15301
15302 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15303
15304         * Doxyfile : adding. Still needs Makefile rules to be generated
15305         automatically (just run "doxygen" in the toplevel dir for now to
15306         generate docs)
15307
15308         * dbus/dbus-message.h : Adding sample docs (javadoc since
15309         resembles gtk-doc a little more)
15310
15311         * dbus/dbus.h : Adding sample docs
15312
15313 2002-11-21  Havoc Pennington  <hp@redhat.com>
15314
15315         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15316         so we can allow ourselves to include files directly,
15317         instead of having to use dbus.h
15318
15319         * dbus/dbus.h: fill in
15320
15321         * dbus/dbus-message.h: sketch out a sample header file.
15322         Include griping if you include it directly instead of
15323         via dbus.h
15324
15325         * dbus/dbus-macros.h: new file with macros for extern "C",
15326         TRUE/FALSE, NULL, etc.
15327
15328         * doc/file-boilerplate.c: put include guards in here
15329
15330 2002-11-21  Havoc Pennington  <hp@redhat.com>
15331
15332         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15333
15334         * COPYING: include the GPL as well, and license code
15335         under both AFL and GPL.
15336
15337 2002-11-21  Havoc Pennington  <hp@redhat.com>
15338
15339         * acconfig.h: get rid of this
15340
15341         * autogen.sh (run_configure): add --no-configure option
15342
15343         * configure.in: remove AC_ARG_PROGRAM to make
15344         autoconf complain less. add AC_PREREQ.
15345         add AC_DEFINE third arg.
15346
15347 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15348
15349         * doc/Makefile.am:
15350         Fix references so we can distcheck.
15351
15352 2002-11-21  Havoc Pennington  <hp@redhat.com>
15353
15354         * Initial module creation
15355