* dbus-win.patch, README.win: added available win32
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * dbus-win.patch, README.win: added available win32 
4         patches from windbus project (http://sf.net/projects/windbus)
5
6 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
7
8         * bus/activation.c: (bus_activation_activate_service):
9         fixed call to _dbus_spawn_async_with_babysitter().
10
11 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
12
13         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
14         added environment pointer as function parameter, used on win32.
15
16         * test/spawn-test.c: fixed call to above mentioned function.
17
18 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
19
20         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
21         added configure check for unistd.h.
22
23 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
24
25         * test/Makefile.am: fixed test data copy problem in 
26         out of source build, when sources came from svn or cvs. 
27
28 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
29
30         * dbus/*-win.*,bus/*-win.*: added win32 platform related
31         files. These files are only added to the cmake build system.  
32         The missing dbus-win.patch file will be added later. 
33
34 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
35
36         * cmake: new directory, contains cmake build support.
37         See http://www.cmake.org for more informations.
38         Currently only unix will be buildable because some 
39         win32 required files are still missing. 
40
41 2007-03-03  Thiago Macieira  <thiago@kde.org>
42
43         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
44         output and add it to the DBusError message we return.
45
46         * tools/dbus-launch.1:
47         * tools/dbus-launch.c: Add option --close-stderr to, well,
48         close stderr before starting dbus-daemon.
49
50 2007-01-31  Havoc Pennington  <hp@redhat.com>
51
52         * bus/dbus-daemon.1.in: write a section in the man page on running
53         a test daemon for debugging purposes
54
55 2007-01-26  Havoc Pennington  <hp@redhat.com>
56
57         * bus/session.conf.in: override all the default limits with much
58         higher limits on the session bus, there is no reason the session
59         bus should have low limits
60
61         * bus/config-parser.c (bus_config_parser_new): increase default
62         limits so they are less likely to be hit; in particular the max
63         replies per connection was way too low
64
65 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
66
67         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
68         a pointer to the tutorial maintained as part of dbus-python
69
70 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
71
72         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
73         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
74         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
75
76 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
77
78         * tools/dbus-monitor.c: gettimeofday() is not available 
79         on windows so we have to provide our own. It's taken from 
80         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
81
82 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
83
84         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
85         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
86         is in dbus-sysdeps-win.c (not in this patch).
87
88         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
89         with InterlockedInc/Decrement. 
90         - Patches from Christian Ehrlicher
91         
92 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
93
94         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
95
96 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
97
98         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
99         fix mispaced const statement. - Patch from Peter Kümmel
100
101 2006-12-19  Ray Strode  <rstrode@redhat.com>
102
103         * bus/bus.c (process_config_every_time):
104         don't overwrite existing bus context activation object
105         until after we've checked that the new activation is
106         valid.
107
108         * bus/main.c 
109         (signal_handler), (handle_reload_watch):
110         don't call exit() on failure, instead make do and keep
111         going.
112         (close_reload_pipe): new function to turn off
113         hangup-causes-config-reload behavior if an unexpected
114         error occurs
115
116 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
117
118         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
119         correctness fix. - Patch from Christian Ehrlicher
120
121 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
122
123         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
124         we should also use it. - Patch from Christian Ehrlicher
125
126 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
127   
128         * dbus-sysdeps-util.c: added win32 related tests
129
130 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
131
132         * dbus/dbus-string.c (_dbus_string_pop_line),
133         bus/desktop-file.c (parse_section_start,
134         parse_comment_or_blank,parse_key_value,): uses
135         _dbus_string_find_eol() to support platform independent eol style.
136
137 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
138
139         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
140         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
141               _dbus_string_find_eol().
142         Approved by: Havoc Pennington.
143
144 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
145
146         * configure.in: Added switch to disable user_database caching.
147
148         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
149         be able disable user_dabase caching.
150
151 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
152
153         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
154         struct. It is unnecessary we have a global one already. Also remove 
155         bus_context_get_user_database function, it is no longer needed.
156         Flush the global database on reload.
157
158         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
159         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
160
161         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
162         Add _dbus_user_database_flush_system. 
163         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
164         Small unrelated change in _dbus_is_a_number: change 
165         _dbus_string_parse_int to _dbus_string_parse_uint. 
166
167         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
168         _dbus_groups_from_uid.
169
170         * bus/policy.c, bus/policy.h: Change call to 
171         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
172         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
173         needs it.
174
175 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
176
177         * bus/signal.c: Fix match_rule_equal errata
178         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
179         <kimmo.hamalainen@nokia.com>)
180
181 2006-11-19  Thiago Macieira  <thiago@kde.org>
182
183         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
184         _dbus_pthread_condvar_wait,
185         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
186         pthread_self() after coming back from a conditional variable
187         wait as well as in one codepath where it was forgotten.
188         Approved by: Havoc Pennington.
189
190 2006-11-17  Havoc Pennington  <hp@redhat.com>
191
192         * update-dbus-docs.sh: allow setting fd.org username via env
193         variable. Make it run autogen with --enable-xml-docs=yes
194         --enable-doxygen-docs=yes so configure will fail if the required
195         tools are missing.
196
197 2006-11-17  Havoc Pennington  <hp@redhat.com>
198
199         * doc/dbus-faq.xml: minor FAQ tweaks
200
201 2006-11-14  Havoc Pennington  <hp@redhat.com>
202         
203         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
204         dbus_get_local_machine_id() to its own file, no substantive
205         changes. There are a couple other things we might want to add that
206         are "misc" so moving out of dbus-connection.[hc] which is big
207         enough already.
208         
209 2006-11-14  Havoc Pennington  <hp@redhat.com>
210
211         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
212         UUID had the timestamp last, but the implementation had it first;
213         move it to last since I think it's a tiny bit nicer (easier to
214         compare at a glance, faster to sort, less code), and will not
215         cause any practical compatibility problems. Also, always convert
216         the timestamp to big endian.
217
218         * doc/dbus-specification.xml: Clean up the docs on the UUID.
219
220         * tools/dbus-uuidgen.1: more prominently say it is not suitable
221         as a replacement for regular uuidgen/RFC4122.
222
223 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
224
225         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
226         the correct value so we don't assert when initalizing recursive threads
227
228         * test/name-test/test-thread-init.c: call dbus_threads_init_default
229         instead of _dbus_threads_init_debug since it is more of a real world
230         test
231
232 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
233
234         * Released 1.0.0
235
236 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
237
238         * AUTHORS: added Peter and Tor of windows porting fame
239
240 2006-11-08  Havoc Pennington  <hp@redhat.com>
241
242         * doc/dbus-specification.xml: add a note about protocol stability
243
244         * doc/TODO: Remove "important for 1.0" section, replace with
245         "important for 1.2" section
246         
247 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
248
249         * README: remove some of the out of date flags
250
251         * doc/TODO: Remove todo items which are done
252
253 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
254
255         * tools/dbus-monitor.c: Handle sigint so we flush stdout
256         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
257
258 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
259
260         * tools/dbus-monitor.1: update the manpage for dbus-monitor
261         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
262
263 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
264
265         * AUTHORS: Update with all people listed in the ChangeLog
266
267 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
268
269         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
270         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
271
272 2006-11-07  Havoc Pennington  <hp@redhat.com>
273
274         * HACKING: Update release instructions to include stuff about
275         stable releases, branching, etc. May not be totally correct,
276         please fix if needed, but keep instructions up-to-date so we do
277         each stable release consistently in the future.
278
279 2006-11-07  Havoc Pennington  <hp@redhat.com>
280
281         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
282         documentation updates. Bump faq/spec versions (not to 1.0; I don't
283         think the spec will be "finished"/1.0 when we ship the 1.0 library).
284
285 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
286
287         * bus/bus.c: Missed patch - pass in the context to the directory watch
288
289 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
290
291         * Released D-Bus 1.0 RC 3(0.95)
292
293 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
294
295         * bus/activation.c (bus_activation_new): don't fail if we can not read
296         the directory as it may not exist
297
298 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
299
300         * bus/config-parser.c (service_dirs_find_dir): use 
301         _dbus_list_get_next_link so we don't get stuck in an infinite loop
302         (start_busconfig_child): move processing of standard_session_servicedirs
303         tags here because they have no content
304         (bus_config_parser_content): check we don't have content in 
305         standard_session_servicedirs tag
306
307 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
308
309         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
310         Packagers need to own this directory
311
312 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
313
314         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
315         <standard_session_servicedirs> tag with a <sevicedir> tag that
316         points to the test service directory
317
318 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
319
320         * configure.in: Add a check for DIR *dirp->dd_fd
321
322         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
323         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
324         of both Solaris and Irix
325
326 2006-11-01  Havoc Pennington  <hp@redhat.com>
327
328         * bus/dbus-daemon.1.in: document standard_session_servicedirs
329
330 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
331
332         * configure.in: expose DBUS_DATADIR
333         
334         * bus/config-parser.c: add the standard_session_servicedirs element
335         to the parser
336         (bus_config_parser_content): process the standard_session_servicedirs
337         element by getting the standard directories from sysdeps and merging
338         them into the service directory list
339         (test_default_session_servicedirs): make sure we get what we expect
340
341         * bus/session.conf.in: replace the servicedir tag with the 
342         standard_session_servicedirs tag
343
344         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
345         dbus-sysdeps.h to avoid circular header dependencies
346
347         * dbus/dbus-sysdeps.h: add the typedef of DBusList
348
349         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
350         which takes a string of directories delimited by colons, parses them 
351         out, appends a suffix and puts them in a list ignoring empty elements
352         (_dbus_get_standard_session_servicedirs): returns the standard 
353         directories for a session bus to look for service activation files
354         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
355         DBUS_DATADIR directories
356
357         * test/data/valid-config-files/many-rules.conf: add the 
358         standard_session_servicedirs tag to the valid config file tests
359
360 2006-10-30  Havoc Pennington  <hp@redhat.com>
361
362         * tools/dbus-launch.1, doc/TODO: capture intent to change the
363         command line options of dbus-launch a bit post 1.0
364
365 2006-10-27  Havoc Pennington  <hp@redhat.com>
366         
367         * dbus/dbus-connection.c (dbus_connection_open_private): document
368         how to choose shared vs. private connections
369
370 2006-10-27  Havoc Pennington  <hp@redhat.com>
371
372         * dbus/dbus-test.c: enclose more of the file in the
373         DBUS_BUILD_TESTS check.
374
375         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
376         DBUS_DISABLE_ASSERT case.
377
378         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
379         that it only works on the server side
380
381         * dbus/dbus-bus.c: add a global lock covering the BusData we
382         attach to each connection
383         (internal_bus_get): lock our access to the BusData
384         (dbus_bus_register): lock the entire registration process
385         with _DBUS_LOCK(bus_datas). If we get the lock and 
386         registration is already complete, silently return (vs. previous
387         behavior of aborting).
388         (dbus_bus_set_unique_name): lock the BusData
389         (dbus_bus_get_unique_name): lock the BusData
390
391 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
392
393         * bus/config-parser.c (service_dirs_find_dir, 
394         service_dirs_append_unique_or_free, 
395         service_dirs_append_link_unique_or_free): New static methods
396         for only appending unique service directory names into
397         the service directory list
398         (merge_included, bus_config_parser_content): Only add unique
399         service directory names into the list
400
401 2006-10-27  Havoc Pennington  <hp@redhat.com>
402
403         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
404         variables volatile, suggested by Thiago. Document struct fields.
405         (PTHREAD_CHECK): remove pthread error checking if assertions are
406         disabled, should reduce the no-assertions case to the bare
407         minimum code.
408
409 2006-10-26  Havoc Pennington  <hp@redhat.com>
410         
411         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
412         to be recursive
413         (_dbus_pthread_mutex_unlock): make it recursive
414         (_dbus_pthread_condvar_wait): save/restore the recursion count
415         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
416
417 2006-10-26  Havoc Pennington  <hp@redhat.com>
418
419         * doc/dbus-specification.xml: clarify the UUID text slightly
420
421         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
422         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
423         in preparation for being able to extend them for e.g. recursive
424         mutexes.
425
426 2006-10-26  Havoc Pennington  <hp@redhat.com>
427
428         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
429         condition variables relate to recursive mutexes.
430         
431         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
432         dbus/dbus-threads.c: Split the platforms-specific thread 
433         implementations into their own files.
434         
435         * dbus/dbus-sysdeps-pthread.c
436         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
437         was backward. Not that anything uses it.
438
439 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
440
441         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
442         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
443         needs to be cleaned up more.
444
445         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
446         up the CREDS issue.
447
448 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
449
450         * configure.in, dbus-1.pc.in: Check to see if thread methods 
451         are in glibc or libpthread and add -lpthread to the link stage 
452         if it is the latter
453
454 2006-10-26  Thiago Macieira  <thiago@kde.org>
455
456         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
457         bug 8780: the connection lock is only required while recording
458         the shared connection, so protect only that code
459         section. Don't require connection_lookup_shared to return a
460         locked connection.
461
462 2006-10-26  Thiago Macieira  <thiago@kde.org>
463
464         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
465         check if get_machine_uuid() returns NULL before proceeding any
466         further: we can't init the X atoms or create a session file
467         name if there is no machine ID.
468         This solves a crash reported by some users if
469         --exit-with-session was used without --autolaunch=<machine-id>
470
471 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
472
473         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
474         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
475
476         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
477         before we run dbus-launch
478
479         * configure.in: define TEST_BUS_BINARY to be the full path to 
480         dbus-daemon in the build root 
481
482 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
483
484         * dbus/Makefile.am:
485         * tools/Makefile.am:
486         * toos/dbus-uuidgen.1:
487                 Move the machine-id file to /var/lib/dbus 
488
489 2006-10-24  David Zeuthen  <davidz@redhat.com>
490
491         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
492         _dbus_assert (thread_init_generation != _dbus_current_generation)
493         not _dbus_assert (thread_init_generation == _dbus_current_generation)
494
495 2006-10-24  Thiago Macieira  <thiago@kde.org>
496
497         * dbus/dbus-sysdeps.h:
498         * dbus/dbus-sysdeps-unix.c: Add function
499         _dbus_make_file_world_readable that chmods a file to 0644.
500
501         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
502         Avoid writing to the static "argv" array, thereby avoiding a
503         COW on the child process.
504
505         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
506         call _dbus_make_file_world_readable on the created file.
507
508 2006-10-23  David Zeuthen  <davidz@redhat.com>
509
510         * dbus/dbus-memory.c: Use atomic variable to protect
511         n_blocks_outstanding otherwise OOM will be reported using SMP on
512         some arches
513         
514         * bus/dispatch.c: Add missing end of line characters
515
516         * bus/desktop-file.c (parse_section_start, parse_key_value) 
517         (bus_desktop_file_load): Propertly handle OOM
518
519         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
520         thread_init_generation equals _dbus_current_generation, not 0
521
522 2006-10-22  Havoc Pennington  <hp@redhat.com>
523
524         * dbus/dbus-connection-internal.h: move prototype of
525         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
526         it isn't in a public header and doesn't end up in the DBusBus
527         group in Doxygen
528
529 2006-10-21  Havoc Pennington  <hp@redhat.com>
530
531         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
532         the tarball if packagers want to run it
533
534         * cleanup-man-pages.sh: Add a script which munges all the internal
535         API man pages out of the Doxygen output. This reduces the size of
536         the installed man pages from 7 to 2 megs, and avoids
537         namespace-polluting pages. Right now (like Doxygen) this script
538         isn't in the build, it's something packagers can do manually.
539
540 2006-10-21  Havoc Pennington  <hp@redhat.com>
541
542         * dbus/dbus-connection.h: don't include the watch/timeout
543         functions in connection section
544
545 2006-10-21  Havoc Pennington  <hp@redhat.com>
546
547         * Documentation! Whee! Doxygen now 100% silent. If you make it
548         angry again, you will be punished.
549         
550 2006-10-21  Havoc Pennington  <hp@redhat.com>
551
552         * More documentation - all public API now documented according to
553         Doxygen
554
555 2006-10-21  Havoc Pennington  <hp@redhat.com>
556
557         * Document a bunch of undocumented stuff
558         
559 2006-10-21  Havoc Pennington  <hp@redhat.com>
560
561         * Clean up Doxygen group markers for public API so Doxygen finds
562         everything (not comprehensively fixed for private API).
563         Means all remaining Doxygen warnings are just about missing docs
564         and thus pretty simple to resolve.
565         
566 2006-10-21  Havoc Pennington  <hp@redhat.com>
567         
568         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
569
570         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
571         as DBUS_GNUC_DEPRECATED
572
573 2006-10-21  Havoc Pennington  <hp@redhat.com>
574
575         * Move all private API into the private Doxygen group sections of
576         the files, so they don't show up in the public API docs
577         
578 2006-10-21  Havoc Pennington  <hp@redhat.com>
579
580         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
581         dbus_message_iter_get_array_len().
582
583         * throughout: documentation improvements.
584
585 2006-10-20  Havoc Pennington  <hp@redhat.com>
586
587         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
588         matter, and the message-loader-breaker thing since nobody is going
589         to do it.  Add an item to 1.0 about supporting recursive locks
590         in dbus_threads_init_default() though, since it should be easy.
591
592         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
593         Fix this in the !dispatch case to avoid busy-looping after
594         disconnection
595
596         * More misc docs improvements
597
598 2006-10-19  Havoc Pennington  <hp@redhat.com>
599
600         * more Doxygen-related fixes (lots of moving things from the
601         public to internal section in dbus-connection.c)
602
603 2006-10-19  Havoc Pennington  <hp@redhat.com>
604
605         * Fix a pile of Doxygen warnings and missing docs
606
607 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
608
609         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
610         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
611         instead of a void *.  kqueue uses this to get the context's loop
612         while the other modules ignore the parameter.  This allows us to
613         avoid platform conditionals
614
615         * bus/bus.c (process_config_postinit): Pass in the context to the 
616         watch
617
618 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
619
620         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
621         when starting the system bus
622
623 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
624
625         * configure.in: More fixups for cross compile (Patch from 
626         Marco Pracucci <development at pracucci dot com>)
627
628 2006-10-17  Havoc Pennington  <hp@redhat.com>
629
630         * tools/dbus-send.c (main): don't close shared connection, fix
631         from Timo Hoenig
632
633 2006-10-17  Havoc Pennington  <hp@redhat.com>
634
635         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
636
637         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
638         since realistically it doesn't look like we'll be changing it
639         anymore.
640
641 2006-10-17  Havoc Pennington  <hp@redhat.com>
642
643         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
644         be used for return_if_fail type warnings; prefixes the pid, and
645         fatal by default.
646
647 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
648
649         * configure.in: Released 1.0 RC 2(0.94)
650         Add check for -fPIC and enable it if available
651
652 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
653
654         * doc/TODO: Remove the check TODO item
655
656 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
657
658         * dbus-transport-socket.c (exchange_credentials):
659         Print out more detailed errors if reading or sending
660         credentials fail (Patch from Julio M. Merino Vidal 
661         <jmmv at NetBSD dot org>)
662
663 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
664
665         * configure.in: when checking for posix getpwnam_r assume true
666         for cross compiles
667
668 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
669
670         * configure.in: Check for gethostbyname first before we check for it
671         in libnsl.  On gnu systems it is implemeneted 
672
673 2006-10-13  Havoc Pennington  <hp@redhat.com>
674
675         * dbus/dbus-connection.c
676         (dbus_connection_send_with_reply_and_block): fix to handle closed
677         connections, from Tambet Ingo bug #8631
678
679 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
680
681         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
682
683 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
684
685         * test/name-test/Makefile.am: don't link against both libdbus and
686         libdbus-convenience
687
688 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
689
690         * configure.in: check for dirfd even if it is a macro
691         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
692
693 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
694
695         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
696         avoid using dirfd on systems that don't have dirfd 
697         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
698
699 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
700
701         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
702         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
703
704         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
705         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
706         macro because _dbus_abort calls it
707
708         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
709         works
710
711 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
712
713         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
714         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
715
716 2006-10-02  Thiago Macieira  <thiago@kde.org>
717
718         * tools/dbus-launch.c (main): make it complain and abort
719         execution in case an unknown option is given. Also, process
720         the '--' argument as the end of arguments.
721
722 2006-10-01  Havoc Pennington  <hp@redhat.com>
723
724         * tools/dbus-launch.c (print_variables): if no syntax is given,
725         don't print something that's sort-of-half-sh-syntax, just print
726         a plain key-value pairs thing.
727
728         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
729         the local machine representation (but still have the hostname in
730         the display). Remove the hostname from the display if it is
731         localhost. Change session files to be named
732         ~/.dbus/session-bus/machine-display. Change X atoms to be
733         underscore-prefixed so nobody whines about ICCCM compliance.
734         Otherwise name them the same as the env variables.
735         Change session file format to include key-value pairs and an
736         explanatory comment. Keys are the same as the env variables.
737         (set_address_in_x11): X property format can't depend on
738         sizeof(pid_t) on a particular machine, fix to always be 32 bits
739
740         * tools/dbus-launch.c: make --autolaunch take a machine id
741         argument. If --autolaunch is used with a program to run, complain
742         for now (but add a FIXME). Also, don't look for existing bus if 
743         there's a program to run (but add a FIXME).
744
745         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
746         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
747         just to get this, and avoids duplicating uuid-reading code).
748
749         * tools/dbus-launch.1: clarify various things
750         
751 2006-10-01  Havoc Pennington  <hp@redhat.com>
752
753         * test/test-service.c (path_message_func): remove broken extra
754         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
755
756         * test/test-shell-service.c (path_message_func): same fix
757         
758         * dbus/dbus-connection.c
759         (_dbus_connection_get_dispatch_status_unlocked): break up the
760         function a little for clarity and fix the notification of
761         dbus-bus.c to not require dispatch to be complete
762
763         * dbus/dbus-connection.c (dbus_connection_unref): improve the
764         warning when you try to finalize an open connection.
765         
766 2006-10-01  Havoc Pennington  <hp@redhat.com>
767
768         * dbus/dbus-bus.c
769         (internal_bus_get): only weak ref the connection; this means 
770         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
771         called safely in any context
772         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
773         unref
774
775         * dbus/dbus-connection.c
776         (_dbus_connection_get_dispatch_status_unlocked): move
777         _dbus_bus_notify_shared_connection_disconnected_unlocked here
778         when queuing Disconnected instead of when the Disconnected message
779         arrives, so dbus_bus_get() won't return closed connections.
780         
781 2006-10-01  Havoc Pennington  <hp@redhat.com>
782
783         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
784         Add a hack to make DBusNewConnectionFunction work right.
785
786         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
787         the hack here. Also, fix the todo about refcount leak.
788         
789         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
790         and use the hack here
791         
792         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
793         "shareable" flag; this was completely broken, since it meant 
794         dbus_connection_open() returned a connection of unknown
795         shared-ness. Now, we always hold a ref on anything opened 
796         as shareable.
797
798         Move the call to notify dbus-bus.c into
799         connection_forget_shared_unlocked, so libdbus consistently forgets
800         all its knowledge of a connection at once. This exposed numerous
801         places where things were totally broken if we dropped a ref inside
802         get_dispatch_status_unlocked where
803         connection_forget_shared_unlocked was previously, so move
804         connection_forget_shared_unlocked into
805         _dbus_connection_update_dispatch_status_and_unlock. Also move the
806         exit_on_disconnect here.
807
808         (shared_connections_shutdown): this assumed weak refs to the
809         shared connections; since we have strong refs now, the assertion 
810         was failing and stuff was left in the hash. Fix it to close
811         still-open shared connections.
812         
813         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
814         debug pipe connections
815         
816         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
817         dbus-bus.c if the closed connection is in fact shared
818         (_dbus_connection_close_possibly_shared): rename from 
819         _dbus_connection_close_internal
820         (dbus_connection_close, dbus_connection_open,
821         dbus_connection_open_private): Improve docs to explain the deal
822         with when you should close or unref or both
823
824         * dbus/dbus-bus.c
825         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
826         from _dbus_bus_check_connection_and_unref_unlocked and modify to
827         loop over all connections
828
829         * test/test-utils.c (test_connection_shutdown): don't try to close
830         shared connections.
831
832         * test/name-test/test-threads-init.c (main): fix warnings in here
833
834         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
835         env variable to cause blocking waiting for gdb; drop
836         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
837         unconditionally.
838
839         * configure.in: add -export-dynamic to libtool flags if assertions enabled
840         so _dbus_print_backtrace works.
841
842         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
843         instead of _dbus_verbose to print the backtrace, and diagnose lack 
844         of -rdynamic/-export-dynamic
845         
846 2006-09-30  Havoc Pennington  <hp@redhat.com>
847
848         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
849         (internal_bus_get): fix screwy code formatting. whoever committed
850         that was not paying attention!
851
852 2006-09-30  Havoc Pennington  <hp@redhat.com>
853
854         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
855         reflect addition of interfaces.
856
857         * doc/dbus-specification.xml: describe a new
858         org.freedesktop.DBus.Peer.GetMachineId method
859
860         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
861         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
862         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
863         at end of skip_white
864         (_dbus_string_chop_white): new function
865
866         * bus/connection.c (bus_connections_setup_connection): call
867         dbus_connection_set_route_peer_messages.
868
869         * dbus/dbus-connection.c
870         (_dbus_connection_peer_filter_unlocked_no_update): modify to
871         support a GetMachineId method.
872
873         Also, support a new flag to let the bus pass peer methods through
874         to apps on the bus, which can be set with
875         dbus_connection_set_route_peer_messages.
876
877         Finally, handle and return an error for anything unknown on the
878         Peer interface, which will allow us to extend the Peer interface
879         in the future without fear that we're now intercepting something
880         apps were wanting to see.
881         
882         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
883         dbus/dbus-uuidgen.c
884
885         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
886         binary here, since most of the code is already in libdbus
887
888         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
889         uuid from the system config file
890
891         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
892         (_dbus_read_uuid_file_without_creating) 
893         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
894         uuid-related functions, partly factored out from dbus-server.c
895
896         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
897         DBUS_ERROR_FILE_EXISTS instead of EEXIST
898
899         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
900
901         * tools/dbus-cleanup-sockets.1: explain what the point of this
902         thing is a bit more
903
904         * autogen.sh (run_configure): add --config-cache to default
905         configure args
906
907         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
908         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
909
910         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
911         don't try to save address, fixes crash in make check
912         
913 2006-09-30  Thiago Macieira  <thiago@kde.org>
914
915         * configure.in: add DBUS_BINDIR as a #define to C source code.
916
917         * tools/dbus-launch.c
918         * tools/dbus-launch.h
919         * tools/dbus-launch-x11.c:
920         * tools/dbus-launch.1: Add the --autolaunch option to
921         dbus-launch, which makes it scan for an existing session
922         started with --autolaunch. With that option, it also creates
923         an X11 window and saves the bus address and PID to it.
924
925         * dbus/dbus-sysdeps.h:
926         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
927         a function that runs "dbus-launch --autolaunch" to retrieve
928         the running D-Bus session address (or start one if none was running)
929
930         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
931         address protocol, which tries to get the running session from
932         dbus-launch.
933
934         * dbus/dbus-bus.c:
935         * dbus/dbus-internals.h: Make "autolaunch:" be the default
936         D-Bus session bus address.
937
938         * dbus/dbus-connection.c: Fix horrible typo in error message.
939
940 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
941
942         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
943
944 2006-09-17  Havoc Pennington  <hp@redhat.com>
945
946         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
947         fix so that if unix_user_function is set on windows, we still
948         do the default check that the auth identity matches the bus identity
949
950 2006-09-16  Havoc Pennington  <hp@redhat.com>
951
952         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
953         to _dbus_transport_open_platform_specific,
954         _dbus_transport_open_socket,
955         and _dbus_transport_open_debug_pipe
956
957         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
958
959 2006-09-16  Havoc Pennington  <hp@redhat.com>
960
961         Attempt auditing public API to remove all cases where a Unix
962         function returns weird emulated goo to Windows. This probably 
963         breaks the bus daemon on Windows, to fix it again we may 
964         need to stop processing unix-specific config options on Windows,
965         and may need to add Windows-specific public API or config options.
966         
967         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
968         to reflect added interfaces; should not break soname.
969         
970         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
971         not invoke unix user function on Windows. Kind of a hacky fix, but 
972         we don't want a "unix uid" leaking out on Windows.
973
974         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
975         to get the socket fd on Windows or UNIX
976         (dbus_connection_get_unix_fd): make this always fail on Windows
977
978 2006-09-16  Havoc Pennington  <hp@redhat.com>
979
980         * dbus/dbus-server.c (dbus_server_listen): change how this works
981         to be able to delegate to a set of handlers that can succeed,
982         fail, or choose not to handle. Allows us to have 
983         dbus_server_listen_platform_specific.
984
985         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
986         factor out the tcp socket stuff to be used on windows, leaving
987         unix domain socket only in dbus-socket-unix.c
988
989         * dbus/dbus-transport-socket.c
990         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
991         stuff to be used on windows, leaving unix domain socket only 
992         in dbus-transport-unix.c
993
994         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
995         temporary hack to be sure this fails on windows
996         (dbus_connection_get_unix_process_id): ditto
997
998 2006-09-16  Havoc Pennington  <hp@redhat.com>
999
1000         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1001         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1002         _dbus_open_socket so the domain/type/protocol from system headers
1003         are not required. This is kind of pointless though unless we move
1004         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1005         sysdeps-unix.c, which would mean adding a wrapper around
1006         bind/listen/etc.
1007         Also, add DBusError to the socket-opening functions so they 
1008         don't require use of errno.
1009
1010 2006-09-16  Havoc Pennington  <hp@redhat.com>
1011
1012         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1013         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1014
1015         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1016         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1017         functions specifically for sockets only, and move generic 
1018         read/write/open/close into unix-specific code.
1019
1020 2006-09-14  Havoc Pennington  <hp@redhat.com>
1021
1022         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1023         complaint about accessing revents when poll returns 0, from Julian Seward.
1024
1025 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1026
1027         * Released 1.0 RC 1 (0.93) 
1028
1029 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1030
1031         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1032         use _dbus_close instead of close
1033
1034 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1035
1036         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1037         credentials.  Fixes "external" authentication under e.g. NetBSD
1038         which does not support any other socket credentials mechanism.
1039         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1040
1041 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1042
1043         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1044         dbus_threads_init and be used by the dbus mutex functions to
1045         avoid deadlocks.
1046
1047         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1048
1049 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1050
1051         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1052         use threadsafe readdir_r instead of readdir
1053
1054 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1055
1056         * dbus-threads.c (dbus_threads_init_default): New method for
1057         initializing the internal thread implementation (Patch from
1058         Alexander Larsson <alexl at redhat dot com>)
1059
1060 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1061
1062         * remove a bunch of todo items from the 1.0 list
1063
1064 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1065
1066         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1067         key not found
1068
1069 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1070
1071         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1072         complex debugging code
1073
1074         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1075         between the test suite ifdefs
1076         (_dbus_verbose_bytes): return if verbosity is not enabled 
1077
1078 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1079
1080         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1081         remove DBusMark
1082
1083 2006-09-10  Havoc Pennington  <hp@redhat.com>
1084
1085        patch mostly by Peter Kümmel, bug #8211
1086         
1087         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1088         unix-specific stuff in dbus-sysdeps.c
1089
1090         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1091         and move unix-specific stuff to dbus-sysdeps-unix.c
1092
1093         * configure.in: check HAVE_ERRNO_H
1094         
1095 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1096
1097         * bus/test-main.c (main): Initialize threading during tests
1098
1099         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1100         Unlock connection on error
1101         (generate_local_error_message): static method for generating
1102         an error message when we don't have a message to reply to
1103         (_dbus_connection_block_pending_call): Send a disconnect error
1104         instead of just a timeout (NULL) when the bus gets disconnected
1105         while blocking for a reply.
1106         
1107 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1108
1109         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1110         filters (Patch from Kimmo Hämäläinen 
1111         <kimmo dot hamalainen at nokia dot com>)
1112
1113 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1114
1115         * dbus/dbus-connection-internal.h: Add prototype for 
1116         _dbus_connection_test_get_locks to remove warning
1117
1118 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1119
1120         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1121         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1122         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1123
1124 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1125
1126         * Clean up close calls to use _dbus_close (Patch from 
1127         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1128
1129 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1130
1131         * doc/TODO:
1132         - Remove pending call locking todo item
1133         - dbus_connection_open now holds hard ref.  Remove todo item
1134         - do proper locking on _dbus_bus_check_connection_and_unref
1135           and handle DBUS_BUS_STARTER. Remove todo item
1136         - Warn on closing of a shared connection.  Remove todo item
1137
1138         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1139         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1140         so we don't get the warning when closing shared connections
1141
1142         * test/test-service.c, test/test-shell-service.c: Applications
1143         don't close shared connections themselves so we unref instead of
1144         close
1145
1146         * test/test-utils.c (test_connection_shutdown): Close the connection
1147
1148         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1149         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1150         method on a locked connection.  
1151         Make sure we call _dbus_connection_unref_unlocked instead of 
1152         dbus_connection_unref also.
1153         Handle DBUS_BUS_STARTER correctly
1154
1155         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1156         Mark as shared and hard ref the connection
1157         (connection_forget_shared_unlocked): Remove the hard ref from the 
1158         connection
1159         (_dbus_connection_close_internal_and_unlock):  New internal function
1160         which takes a locked connection and unlocks it after closing it
1161         (_dbus_connection_close_internal): New internal function which acts
1162         like the origonal dbus_connection_close method by grabbing a connection
1163         lock and calling _dbus_connection_close_internal_and_unlock
1164         (dbus_connection_close): Public close method, warns when the app
1165         trys to close a shared connection
1166
1167 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1168
1169         * bus/driver.c:
1170         (bus_driver_generate_introspect_string): New method for populating
1171         a DBusString with the introspect data
1172         (bus_driver_handle_introspect): Move introspect generation code to 
1173         bus_driver_generate_introspect_string
1174
1175         * bus/main.c:
1176         (introspect): New function which prints out the intropect data and
1177         exits
1178         (main): Add a --introspect switch
1179
1180 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1181
1182         * doc/TODO: Removed dtd publishing item.  
1183         It seems the dtd has already been added at
1184         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1185
1186 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1187
1188         * doc/TODO, various source files: Audited todo's and FIXME's and
1189         prepended the ones we should be looking at with 1.0.  Those
1190         prepended with 1.0? need clerification or might not be needed
1191         for 1.0
1192
1193 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1194
1195         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1196         NULL in the public API (Patch from Kimmo Hämäläinen 
1197         <kimmo dot hamalainen at nokia dot com>)
1198
1199 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1200
1201         * configure.in: Fix for OS-X compile time endian issues (patch from
1202         Benjamin Reed <ranger at befunk dot com>)
1203
1204 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1205
1206         * configure.in: Check for no-common compiler flag (OS-X fix from
1207         Benjamin Reed <ranger at befunk dot com>)
1208
1209 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1210
1211         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1212         <fcrozat at mandriva dot com>)
1213
1214 2006-08-29  Havoc Pennington  <hp@redhat.com>
1215
1216         * test/test-service.c (path_message_func): fix lack of return value
1217
1218         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1219         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1220         any more sense than on anything else in this file.
1221         (_dbus_get_tmpdir): add const to return value, and keep the
1222         results of the various getenv around in a static variable.
1223
1224 2006-08-29  Havoc Pennington  <hp@redhat.com>
1225
1226         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1227         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1228
1229 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1230
1231         * test/Makefile.am: change find to use syntax that works with non
1232         gnu versions of find
1233
1234 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1235
1236         * dbus/dbus-transport.c: fix invalid deref when checking if
1237         a vtable method exists (Patch from Christian Ehrlicher 
1238         <ch dot ehrlicher at gmx dot de>)
1239
1240 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1241
1242         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1243         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1244         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1245         <bernard at brenda-arkle dot demon dot co dot uk>)
1246
1247 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1248
1249         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1250         default case
1251
1252 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1253
1254         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1255         it works on any system providing this interface, not only FreeBSD.
1256         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1257
1258 2006-08-20  Havoc Pennington  <hp@redhat.com>
1259
1260         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1261         the docs
1262
1263 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1264
1265         * Released 0.92 
1266
1267 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1268
1269         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1270         to reflect the init late change
1271
1272         * bus/bus.c (bus_context_new): Check user before we fork so we can
1273         print out an error message a user will be able to see
1274
1275 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1276
1277         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1278
1279         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1280         Add two more global locks for use on windows platforms.  These are
1281         unused on non-windows platforms but are not ifdefed out to avoid
1282         potential bugs (i.e. the few bytes lost does not warrent the extra
1283         maintanence and complexity that having seperate sets of locks would
1284         cause)
1285
1286 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1287
1288         * bus/services.c (bus_registry_acquire_service): Return an error
1289         when an application tries to register the org.freedesktop.DBus Bus Name
1290
1291         * bus/services.c (bus_registry_release_service): Return an error
1292         when an application tries to release the org.freedesktop.DBus Bus Name
1293
1294 2006-08-17  Alp Toker  <alp@atoker.com>
1295
1296         * doc/dbus-specification.xml: Fix some minor typos.
1297
1298 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1299
1300         * configure.in: use $with_init_scripts instead of $operating_system
1301         to determine where to store the pid since the init scripts manipulate 
1302         the pid file (patch from Marcelo Ricardo Leitner 
1303         <marcelo dot leitner at terra dot com dot br>.  
1304
1305 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1306
1307         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1308         static DBusList *uninitialized_condvar_list to support new late 
1309         initialization threading model.  In this model threads can be initialized
1310         even after the D-Bus API has been used but still needs to be initialized 
1311         before the second thread has been started.  Mutexes and condvar addresses
1312         are stored in the two static lists and are replaced with actuall locks
1313         when threads are initalized.
1314         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1315         the location into the static list
1316         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1317         from the static list and freeing the mutex
1318         (_dbus_condvar_new_at_location): New method for creating a conditional 
1319         variable and placing the location into the static list
1320         (_dbus_condvar_free_at_location): New method for removing a conditional
1321         variable location from the static list and freeing the conditional variable 
1322         (init_uninitialized_locks): Atomic method which goes through the static 
1323         lists of mutex and condvar location and updates them with actuall locks
1324         (init_global_locks): changed to init_locks
1325         
1326         * dbus/dbus-connection.c:
1327         (_dbus_connection_test_get_locks): New method for tests to check connections
1328         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1329         condvar API
1330         (dbus_connection_allocate_data_slot): Pass in the global lock address
1331         to _dbus_data_slot_allocator_alloc
1332
1333         * dbus/dbus-dataslot.c:
1334         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1335         instead of the mutex itself
1336
1337         * dbus/dbus-message.c:
1338         (dbus_message_allocate_data_slot): Pass in the global lock address
1339         to _dbus_data_slot_allocator_alloc
1340
1341         * dbus/dbus-pending-call.c:
1342         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1343         to _dbus_data_slot_allocator_alloc
1344
1345         * dbus/dbus-server.c:
1346         (_dbus_server_init_base): Use the new at_location mutex API
1347         (dbus_server_allocate_data_slot): Pass in the global lock address
1348         to _dbus_data_slot_allocator_alloc
1349
1350         * test/name-test/test-threads-init.c: New test case for late thread
1351         initialization
1352
1353 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1354
1355         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1356         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1357         causes compile problems when asserts are turned off
1358         Keeping _dbus_warn for printing out the message so even if
1359         asserts are turned off the user gets the messages that something is 
1360         wrong 
1361
1362 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1363
1364         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1365
1366         * bus/services.c (bus_service_list_queued_owners):
1367         Add a pointer cast to fix compiler warning
1368
1369         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1370         return a NULL instead of FALSE since the return type
1371         is not expecting a boolean
1372
1373         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1374         Remove unused variable
1375
1376         * dbus/dbus-marshal-recursive-util.c (node_new):
1377         return a NULL instead of FALSE since the return type
1378         is not expecting a boolean
1379
1380         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1381         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1382         because we are expecting a pointer not a boolean
1383
1384         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1385         add void as the parameter so some compilers
1386         don't complain
1387
1388         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1389           _dbus_transport_new_for_tcp_socket):
1390         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1391         because we are expecting a pointer not a boolean
1392
1393         * test/shell-test.c (test_command_line):
1394         cast the second argument to _dbus_list_append to avoid compiler
1395         warnings
1396
1397         * test/test-names.c (main): remove unused variable
1398
1399         * test/test-service.c (check_hello_from_self_reply):
1400         Initialize echo_message and echo_reply to NULL
1401         
1402         * test/test-shell-service.c (handle_echo):
1403         Remove unused variable and cast the third parameter passed to
1404         dbus_connection_get_object_path_data to avoid compiler warrnings
1405
1406         * test/name-test/test-names.c (clear_message_queue):
1407         Remove unused function
1408
1409         * test/name-test/test-pending-call-dispatch.c:
1410         Fix format string in printf
1411
1412
1413 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1414
1415         * dbus/dbus-bus.c:
1416         * test/name-test/test-names.c:
1417         Remove test method dbus_bus_connection_get_unique_name because 
1418         we already have public method dbus_bus_get_unique_name that 
1419         does the exact same thing
1420
1421 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * dbus/dbus-signature.c:
1424         fix typos in Julio's previous patch which cause make check to fail
1425
1426 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1427
1428         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1429         In any case it was wrong since this is a test checking to see if
1430         address parsing is correct.  There was no need to get the true
1431         tmp directory.  
1432
1433 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * dbus/dbus-macros.h: Revert the addition of stddef.h
1436         as we should not be adding it to library headers 
1437
1438 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * dbus/dbus-signature.c:
1441         Fix the unit tests so that they work if assertions are not enabled.
1442         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1443
1444 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1445
1446         * tools/run-with-tmp-session-bus.sh:
1447         * test/name-test/run-test.sh:
1448         Remove bashisms (patch from Julio M. Merino Vidal
1449         <jmmv at NetBSD dot org>)
1450
1451 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * configure.in: add a version (>= 2.6.0) check for libxml2
1454
1455 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1456
1457         * configure.in: make sure the compiler supports -Wfloat-equal
1458         
1459         * bus/dir-watch-dnotify.c: move functional code after 
1460         variable declerations (C99 fix)  (patches from Jens Granseuer
1461         <jensgr at gmx dot net>
1462
1463 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * dbus/dbus-macros.h:
1466         add #include <stddef.h> so that Sun compilers don't complain about
1467         the defining NULL
1468
1469 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1470
1471         * dbus/dbus-sysdeps.c:
1472         * dbus/dbus-address.c:
1473         * bus/activation.c:
1474         * test/shell-test.c:
1475         don't hardcode tmp directory (patch from Dave Meikle 
1476         <dmk at davemeikle dot co dot uk>)
1477
1478 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1479
1480         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1481         Change an assert to a detailed warning and abort.  
1482         When allocator->lock != mutex it indicates that the user has failed
1483         to initalize threads before using the D-Bus library.  This warning
1484         helps the user identify the issue and fix their app.
1485
1486 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1487
1488         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1489         with cleanups of bugs found from Coverity reports:
1490
1491         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1492         close the file on error to avoid a leak
1493
1494         * bus/expirelist.c (bus_expire_list_test):
1495         Check for NULL on dbus_new0
1496
1497         * bus/activation.c (update_directory):
1498         remove dead code
1499
1500         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1501         Fix some leaks
1502
1503         * bus/bus.c (process_config_every_time):
1504         Fixed a leak
1505
1506         * bus/desktop-file.c (parse_key_value):
1507         Fixed leak
1508
1509         * bus/selinux.c (bus_selinux_id_table_insert):
1510         Fixed leak
1511
1512 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1513
1514         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1515         remove dead code
1516
1517 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1518
1519         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1520         #!/bin/bash
1521
1522 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1523
1524         * Doxyfile.in: fix the INPUT line so we can generate docs 
1525         when sourcedir != builddir (patch from Cygwin Ports maintainer
1526         <yselkowitz at users dot sourceforge dot net>
1527
1528 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1529
1530         * dbus/dbus-sysdeps.h:
1531         * dbus/dbus-sysdeps.c: 
1532         * dbus/dbus-string.c: 
1533         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1534         GLib's function which does the same thing
1535
1536         * configure.in:
1537         * bus/Makefile.am:
1538         * bus/dir-watch-default.c:
1539         * bus/dir-watch-dnotify.c:
1540         * bus/dir-watch-kqueue.c:
1541         Add kqueue directory watching for freebsd and split the directory
1542         watching code into seperate files per method/arch
1543         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1544
1545 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1546
1547         * configure.in:
1548         * tools/Makefile.am:
1549         * tools/dbus-launch.c:
1550         * bus/Makefile.am:
1551         allow --with-dbus-daemondir switch to be used to make the
1552         daemon install to a seperate bindir like /usr/libexec
1553         (patch from Brian Cameron <brian dot cameron at sun dot com)
1554
1555 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1556
1557         * bus/Makefile.am (install-data-hook): removed the slash after 
1558         $(DESTDIR) so we don't get the double slash which does not work
1559         in windows (patch from Andras Porjesz 
1560         <andras dot porjesz at siemens dot com>)
1561
1562 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1563
1564         * dbus/dbus-sysdeps.h:
1565         * dbus/dbus-sysdeps.c: 
1566           add _dbus_printf_length (patch from Peter Kümmel 
1567           <syntheticpp at gmx dot net>)
1568
1569 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1570
1571         * dbus/dbus-internals.c: unistd.h is not used 
1572         (_dbus_verbose_real): only enable verbose printing 
1573         if DBUS_VERBOSE environment var is set to '1'
1574         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1575
1576 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1577
1578         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1579         so we still compile on older gcc (patch from Frederic Peters 
1580         <fpeters at 0d dot be>
1581
1582 2006-08-04  Havoc Pennington  <hp@redhat.com>
1583
1584         * configure.in: add -Wdeclaration-after-statement
1585
1586         * dbus/dbus-connection.c: change all the pending call stuff to
1587         reflect the fact that pending call operations use the connection
1588         lock
1589
1590         * dbus/dbus-pending-call.c: add locking here
1591
1592         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1593         field const consistent with how message field is done
1594
1595 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1596
1597         * s/D-BUS/D-Bus/g
1598
1599 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1600
1601         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1602         <in7y118 at public.uni-hamburg dot de> - fix invalid
1603         read/write reported by valgrind
1604
1605 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1606
1607         * Released 0.91
1608
1609 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1610
1611         * dbus/dbus-connection.c:
1612         (_dbus_connection_attach_pending_call_unlocked):
1613         (connection_timeout_and_complete_all_pending_calls_unlocked):
1614         Make sure we set timeout_added on pending calls to FALSE when
1615         we remove the timeout from the connection
1616
1617 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1618
1619         * Removed some extra bindings stuff lingering around (thanks timo)
1620         * dbus-pendingcall.c (_dbus_pending_call_new): 
1621         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1622         when we tried to take a lock on an already locked connection
1623
1624 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1625
1626         * Released 0.90
1627
1628 2006-07-17  Havoc Pennington  <hp@redhat.com>
1629
1630         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1631         ints, reported by Owen Taylor
1632
1633 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1634
1635         * doc/TODO:
1636         * dbus/dbus-bus.c:
1637         * dbus-errors.c:
1638         * dbus/dbus-marshal-validate.c:
1639           Removed TODO items which were fixed or are no longer relevent
1640
1641 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1642
1643         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1644         Remove stray files from the stripped bindings
1645
1646 2006-07-16  Havoc Pennington  <hp@redhat.com>
1647
1648         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1649         Improve the error message on reply timeout
1650
1651 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1652
1653         * Remove all bindings
1654
1655 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1656
1657         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1658         and set pending_reply out arg to NULL is connection is disconnected
1659         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1660         static method for cleaning up pending calls on disconnect
1661         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1662         calls queued timeouts on disconnect 
1663
1664          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1665         Remove 
1666
1667 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1668
1669         * bus/activation.[ch] (bus_activation_list_services): new function to 
1670         get the list of services that can be activated
1671
1672         * bus/dispatch.c: test coverage for the new bus method
1673         ListActivatableNames
1674
1675         * bus/driver.c: new bus method ListActivatableNames to get the list of
1676         services that can be activated
1677
1678         * doc/dbus-specification.xml: ListActivatableNames method documentation
1679
1680 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1681         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1682         source files
1683
1684 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1685         * dbus/dbus-message-factory.c:
1686         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1687
1688 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1689         * dbus/dbus-connection-internal.h:
1690         * dbus/dbus-connection.c:
1691         * file dbus/dbus-pending-call.c:
1692         * dbus/dbus-pending-call.h:
1693         Make DBusPendingCall an opaque type even to D-Bus internals
1694
1695 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1696
1697         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1698         connection_close
1699
1700         * dbus/dbus-connection.c: include dbus-bus.h
1701         (_dbus_connection_read_write_dispatch): make static
1702
1703 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1704
1705         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1706         function
1707         (dbus_connection_dispatch): On disconnect unref any shared connections
1708
1709         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1710         for cleaning up shared connections on disconnect
1711         (internal_bus_get): get a hard refrence to shared connections when
1712         they are created
1713         
1714         * doc/TODO: Remove items which are no longer relevent or have been fixed
1715         Split 1.0 todo items with a 0.90 freeze todo list
1716  
1717 2006-06-14  Ross Burton  <ross@openedhand.com>
1718
1719         * glib/dbus-gobject.c:
1720         Free a leaking GArray (surely not!) in dbus_g_method_return.
1721
1722 2006-06-14  Ross Burton  <ross@openedhand.com>
1723
1724         * tools/Makefile.am:
1725         * tools/dbus-monitor.c:
1726         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1727         Habacker).
1728         
1729 2006-06-14  Ross Burton  <ross@openedhand.com>
1730
1731         * tools/dbus-print-message.c:
1732         Also print the object path when outputting signals or method calls.
1733
1734 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1735
1736         * qt/src/Makefile.am: install the qdbus.h header.
1737         This allows people to actually use the installed code.
1738
1739 2006-06-12  Ross Burton  <ross@openedhand.com>
1740
1741         * glib/dbus-gproxy.c:
1742         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1743
1744 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1745
1746         * Released 0.62
1747
1748 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1749
1750         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1751         break pedantic builds. Closes bug 6043 (patch approved by
1752         Havoc back in February).
1753
1754 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1755
1756         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1757         that took a QDBusMessage parameter.
1758         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1759         * qt/tools/dbus.cpp: Don't use automatic call because we might
1760         be calling an async method: request a reply.
1761
1762 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1763
1764         * test/qt/*: Update the testcases, including testing the new
1765         functionality of sending null QByteArray and QString over the
1766         bus. Add new headertest test and restore the old
1767         qdbusxmlparser test.
1768
1769 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1770
1771         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1772         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1773
1774         * qt/examples/Makefile.am:
1775         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1776         form.
1777
1778         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1779         QByteArray() (nulls) over the bus.
1780         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1781         the one that has the signature suffix stripped.
1782         * qt/src/qdbusreply.h: Make some methods const.
1783
1784 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1785
1786         Patch from Timo Hoenig <thoenig@suse.de>.
1787
1788         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1789         required during build to EXTRA_DIST.
1790         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1791         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1792         * configure.in: Fix "make dist", take care that the Makefile for
1793         qt/dbus is being generated.
1794
1795 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1796
1797         * bus/bus.c: Fix eavesdropping on method calls
1798
1799 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1800
1801         * configure.in:
1802         * dbus/dbus-userdb-util.c:
1803         Add Solaris console owner patch from Artem Kachitchkine
1804
1805 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1806
1807         * qt/Makfile.am:
1808         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1809         reorganisation. Thanks to Timo Hoenig for pointing this out.
1810
1811 2006-06-06  Robert McQueen  <robot101@debian.org>
1812
1813         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1814           call to dbus_g_type_get_struct.
1815
1816 2006-06-06  Robert McQueen  <robot101@debian.org>
1817
1818         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1819           pointers were put into a GPtrArray-based specialised collection, and
1820           then freed along with the array. GValues which you add into
1821           collections or maps which have the NOCOPY flag set are assumed to not
1822           belong to the caller, so rather than the existing pointer-stealing
1823           semantics, they are copied instead. Given that the main consumers of
1824           this abstraction are the bindings themselves, I don't think this is
1825           too bad, but others should watch their choice of take vs set_static.
1826
1827 2006-06-06  Robert McQueen  <robot101@debian.org>
1828
1829         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1830           of g_slist_prepend not being used. Fixed copying of slist-based
1831           specialised collections, then wrote a test case and found that it was
1832           all broken. Went on to fix iterating and appending too. Good thing
1833           nobody uses this code yet.
1834
1835 2006-06-06  Robert McQueen  <robot101@debian.org>
1836
1837         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1838           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1839           are discarded without unsetting, so it makes no difference whether
1840           we take or set_static). Remove cases for G_TYPE_POINTER because
1841           there really is nothing useful we can do with them in our
1842           specialised types - we *need* boxed copy/free functions at the very
1843           least.
1844
1845 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1846
1847         * qt/dbus: Add directory. I had forgotten to add this
1848         yesterday after the move...
1849
1850         * qt/examples/Makefile.am:
1851         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1852
1853         * qt/tools/Makefile.am:
1854         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1855         Added feature to get and set properties.
1856         Added validation of service, object path and interface names.
1857
1858         * qt/tools/dbusidl2cpp.cpp: Two new features:
1859         1) Allow specifying both the header and the source file names,
1860         by separating them with a colon.
1861         2) Don't write an interface output if the -p switch wasn't
1862         given, but the -a was.
1863
1864         * qt/src/*: Fix usage of Iterators and ConstIterators.
1865         Fix shadowing of variables by other variables (-Wshadow).
1866         Fix keyword-cleanliness in headers.
1867         Fix ASCII-cast (QLatin1String, QLatin1Char).
1868         Fix validation of member names.
1869         Add extra checking of introspection data during XML parsing.
1870         Various bug fixes.
1871
1872 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1873
1874         * dbus/Makefile.am:
1875         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1876         qt/dbus/qdbus.h now.
1877
1878 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1879
1880         * configure.in: Make --disable-qt actually do
1881           something. Patch inspired by Zack Rusin.
1882
1883 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1884
1885         * qt/: Update to Subversion r548032.
1886         This includes a big reorganisation of the files inside the
1887         subdir.
1888
1889 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1890
1891         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1892         clear:  
1893         "Failed to connect to socket <host>:<port> <error>" instead of
1894         "Failed to connect to socket <host>: <error>:<port>"
1895
1896         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1897         for a tcp transport. 
1898
1899 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1900
1901         * qt/*: Update the QtDBus bindings up to revision 546310 in
1902         Subversion.
1903         This adds the dbuscpp2xml tool, that parses a C++ header and
1904         outputs a D-BUS Introspection XML.
1905
1906 2006-05-21  Havoc Pennington  <hp@redhat.com>
1907
1908         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1909         is not NULL when it shouldn't be. Also a couple of possible fixes
1910         for #4637 though I don't understand why the bug happens, to be
1911         honest... also the object constructor has an assert name != NULL
1912         and the name is only currently NULL for peer-to-peer proxies that 
1913         I don't think anyone uses? So it should be asserting.
1914         Anyway, for now at least see if we get an earlier assertion failure.
1915
1916         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1917         apparently broken code to be sure the tests fail and someone 
1918         will fix them...
1919
1920 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1921
1922         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1923         and arrays when they had a single element: has_next returns
1924         false, even before you read the element. So, instead, check
1925         the array length.
1926
1927 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1928
1929         * qt/qdbusmessage.cpp:
1930         * qt/qdbustypehelper_p.h:
1931         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1932         the list is a const-reference
1933
1934 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1935
1936         * Adding old doc patch that never got applied
1937         
1938         * dbus/bus.c (dbus_bus_add_match): Add documentation
1939
1940         * doc/dbus-specification.xml: Add documentation for the match rules
1941           and the AddMatch and RemoveMatch methods
1942
1943 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1944
1945         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1946         call (r535506)
1947
1948         * qt/dbusidl2cpp.cpp:
1949         * qt/qdbusabstractadaptor.cpp:
1950         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1951         sibling of the QDBusAbstractAdaptor objects instead of the
1952         parent. (r535848)
1953
1954         * qt/dbusidl2cpp.cpp:
1955         * qt/qdbusabstractinterface.cpp:
1956         * qt/qdbusabstractinterface.h:
1957         * qt/qdbusabstractinterface_p.h:
1958         * qt/qdbusinterface.cpp: Make properties in interfaces
1959         actually work. The code that was generated would not compile,
1960         due to moc calls to functions that did not exist. They now
1961         shall. (r536571)
1962
1963 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1964
1965         * Makefile.am:
1966         * configure.in:
1967         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1968         Thanks to Brad Hards for providing the patch
1969
1970 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1971
1972         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1973         call. (r535506)
1974
1975 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1976
1977         * qt/examples/dbus.cpp: Enhance error messages and use
1978         QDBusInterfacePtr.
1979
1980 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1981
1982         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1983         and disable the copy operators. (r533772, r534746)
1984
1985         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1986
1987         * qt/qdbusabstractinterface.cpp:
1988         * qt/qdbusabstractinterface.h: Change the default call mode to
1989         not use the event loop. Add convenience call() methods that
1990         take a CallMode parameter. (r534042)
1991
1992         * qt/qdbusconnection.h: Change the default call mode to not
1993         use the event loop. (r534042)
1994
1995         * qt/qdbusinterface.cpp:
1996         * qt/qdbusinterface.h: Add a method to tell us if the
1997         interface is valid (since we don't return a null pointer
1998         anymore) (r534099)
1999
2000         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2001         (r534101)
2002
2003         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2004         function in two so taht we get the chance to introspect
2005         without having a QDBusMessage (r534102)
2006
2007         * qt/qdbusbus.h:
2008         * qt/qdbusconnection.cpp:
2009         * qt/qdbusconnection_p.h:
2010         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2011         avoid a round-trip to the server when attempting to introspect
2012         one of our own objects. Also make sure the filter functions
2013         match the empty interface as well. (r534108)
2014         Don't keep the connection names. Instead, trust the unique
2015         connection name (r534111)
2016         Remove event loop usage (r534112)
2017
2018 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2019
2020         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2021         Brad Hards.
2022
2023 2006-04-28  Robert McQueen  <robot101@debian.org>
2024
2025         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2026         any order, making it easier for people who inherit from this
2027         object.
2028
2029 2006-04-28  Robert McQueen  <robot101@debian.org>
2030
2031         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2032         of memory from within pointer arrays and lists. Fixes bug #6300.
2033
2034 2006-04-28  Robert McQueen  <robot101@debian.org>
2035
2036         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2037         generating struct signatures. Fixes bug #6083.
2038
2039 2006-04-28  Robert McQueen  <robot101@debian.org>
2040
2041         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2042         to qdbusconnection_p.moc.
2043
2044 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2045
2046         * README, INSTALL: Doc fixes
2047         Patch from Brad Hards <bradh at frogmouth.net>
2048
2049 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2050
2051         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2052         the dynamic meta object. No need to guess which interface to
2053         call.
2054
2055 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2056
2057         * qt/qdbusconnection_p.h:
2058         * qt/qdbusmetaobject.cpp:
2059         * qt/qdbusmetaobject_p.h:
2060         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2061         for the dynamic meta object. No need to guess which
2062         interface to call.
2063         * qt/qdbusabstractinterface_p.h:
2064         * qt/qdbusconnection.cpp:
2065         * qt/qdbusintegrator.cpp:
2066         * qt/qdbusinterface.cpp:
2067         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2068         Add a QDBusRef that looks and behaves like DCOPRef.
2069
2070 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2071
2072         * dbus/dbus-connection.c: Interfaces are optional in method
2073         calls, so don't give up if the interface parameter is NULL.
2074         Patch reviewed by Havoc Pennington.
2075
2076 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2077
2078         * qt/qdbusreply.h: Add default constructor and operator=
2079           (r532625)
2080         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2081           in public headers (r532952)
2082         * qt/qdbusabstractinterface.cpp:
2083         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2084           make it the default (r532951)
2085
2086 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2087
2088         * dbus/dbus-connection.c: Fix asserts
2089         Patch from Tim Moloney <t.moloney at verizon.net>
2090
2091 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2092
2093         * mono/Connection.cs, mono/Message.cs: Check Target type
2094         Patch from Aaron Bockover (abockover at novell.com)
2095
2096 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2097
2098         * INSTALL: fine-tune the requirements for the Qt4 binding.
2099
2100 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2101
2102         * tools/dbus-print-message.c: Added support for printing of all 
2103           remaining data types. Fixed logic for indentation of compound
2104           data types.
2105         
2106 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2107
2108         * INSTALL: fill out content of file providing DBus specific
2109           build installations, followed by generic Auto* INSTALL file
2110           content
2111         
2112 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2113
2114         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2115           Patch by Stefan Eilers. (r529537)
2116
2117 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2118
2119         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2120           contents (r528208)
2121
2122 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2123
2124         * qt/Makefile.am: fix the dependency for
2125           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2126           not in qdbusconnection.cpp.
2127           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2128           spotting this.
2129
2130 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2131
2132         * qt/examples/listnames.cpp:
2133         * qt/examples/Makefile.am: Three ways to list the names on the
2134           bus.
2135
2136 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2137
2138         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2139           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2140
2141 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2142
2143         Merge from Subversion:
2144         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2145           something that exists (r526315)
2146         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2147           slots/signals (r526316)
2148         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2149           also return an unknown-method error if the parameters don't
2150           match for org.freedesktop.DBus.Properties. (r526842)
2151         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2152         * qt/qdbusintegrator.cpp: Restore the proper order of
2153           delivery: don't make method returns be delivered on priority
2154           (r528150)
2155
2156 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2157
2158         * configure.in qt/Makefile.am: add qt/examples
2159         * qt/examples: Add QtDBus example programs:
2160           - hello: Hello, World
2161           - ping: Simple method-calling program
2162           - pong: Simple object-exporting program (not using adaptors)
2163           - complexping: Interactive method-calling program 
2164                 (also gets and sets properties).
2165           - complexpong: Sample program exporting methods, signals and
2166                 properties, using adaptors.
2167           - dbus: Simple implementation of a generic method-calling
2168                 program, similar to 'dbus-send', but with semantics
2169                 similar to 'dcop'.
2170           - chat: Simplistic chat program, implemented using signals
2171                 and the system bus. Looks like IRC.
2172
2173 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2174
2175         * configure.in: Detect QtGui (necessary for one of the
2176           example programs). Note: this increases the minimum required
2177           version of Qt to 4.1.3.
2178
2179 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2180
2181         * test/qt/*: Sync with KDE Subversion revision 523647.
2182         Update the testcases to the new API. Remove testcases for
2183         classes that are no longer public or have been removed.
2184
2185 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2186
2187         * qt/*: 
2188         * dbus/qdbus.h: Sync with KDE Subversion revision
2189         523647. Hopefully, this will be the last of the
2190         source-incompatible changes. Documentation has been improved;
2191         support for QList<basic-types> has been added; QDBusObject is
2192         gone; QDBus(Abstract)Interface is now a QObject with
2193         auto-generated meta-object; QDBusIntrospection is marked
2194         private, since QMetaObject can be used now; lots of bugfixes.
2195
2196 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2197
2198         Patch from Milosz Derezynski <internalerror at gmail.com>
2199         
2200         * configure.in:
2201         Output the service directory in the configure summary
2202
2203         * dbus-1.pc.in:
2204         Add session_bus_services_dir
2205
2206 2006-03-10  Ross Burton  <ross@openedhand.com>
2207
2208         * tools/dbus-print-message.c:
2209         Add support for object paths and signatures.
2210
2211 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2212
2213         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2214         config reload.
2215         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2216         information caches
2217         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2218         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2219         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2220         * dbus/dbus-userdb.h: Add function to flush all user/group information
2221         caches.
2222
2223 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2224
2225         * qt/dbusidl2cpp.cpp:
2226         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2227         for dcopidl2cpp, found in the KDE installations (or the more
2228         modern kalyptus): generate Qt4 C++ code for the input XML
2229         introspection. Currently no IDL parsing.
2230
2231 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2232
2233         * test/qt/*: Update the self-tests.
2234
2235 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2236
2237         * qt/*: 
2238         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2239         represents the first feature-complete version of the Qt4
2240         bindings since I took ove maintainership.
2241
2242 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2243
2244         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2245         dir. This is C++, so we can't use the DBus ones.
2246
2247 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2248
2249         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2250         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2251
2252 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2253
2254         * dbus/dbus-connection.c: 
2255         (_dbus_connection_block_pending_call):
2256         Check to see if our data has already been read off the connection
2257         by another blocking pending call before we block in poll.
2258         (check_for_reply_and_update_dispatch_unlocked):
2259         Code taken from _dbus_connection_block_pending_call - checks for
2260         an already read reply and updates the dispatch if there is one.
2261
2262         * test/name-test/test-pending-call-dispatch.c:
2263         New test for making sure we don't get stuck polling a 
2264         dbus connection which has no data on the socket when
2265         blocking out of order on two or more pending calls.
2266
2267 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2268
2269         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2270         make/automake don't detect that we're talking about the same
2271         .lo file if I specify the full path to the source files.
2272
2273 2006-02-26  Havoc Pennington  <hp@redhat.com>
2274
2275         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2276
2277         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2278         session bus variable is unset, suggest "man dbus-launch" and "man
2279         dbus-daemon" to figure out how to fix the problem
2280
2281 2006-02-25  Havoc Pennington  <hp@redhat.com>
2282
2283         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2284         should make this thing use the new glib options parser
2285
2286 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2287
2288         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2289         .lo files taking moc sources.
2290
2291 2006-02-25  Havoc Pennington  <hp@redhat.com>
2292
2293         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2294         and install it as a public header
2295
2296 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2297
2298         * Released 0.61
2299
2300 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2301         
2302         * proxies.py: Fix the callchain
2303
2304 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2305         
2306         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2307
2308         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2309         dbus/dbus-sysdeps.c
2310
2311         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2312         call _dbus_group_info_free_allocated which causes infinite loop,
2313         correctly call _dbus_group_info_free
2314
2315 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2316
2317         * qt/qdbusinterface_p.h:
2318         * qt/qdbusinterface.cpp: Use the standard
2319         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2320         calls instead of creating one for us.
2321
2322         * qt/qdbusconnection_p.h:
2323         * qt/qdbusintegrator.cpp: Remove debugging code.
2324
2325         * qt/qdbusintegrator.cpp:
2326         * qt/qdbusmessage.cpp:
2327         * qt/qdbusmessage_p.h:
2328         * qt/qdbusmessage.h: Change the behaviour of automatic
2329         reply-sending: now a reply is always sent, unless the caller
2330         didn't request one or if the user slot has already sent one.
2331
2332 2006-02-16  Robert McQueen  <robot101@debian.org>
2333
2334         * configure.in: Patch from Debian packages by Sjoerd Simons
2335         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2336         arguments so it's possible to build both bindings in the
2337         same tree.
2338
2339         * qt/Makefile.am: Fix truncated value so that make dist works.
2340
2341 2006-02-16  Robert McQueen  <robot101@debian.org>
2342
2343         * acinclude.m4, configure.in: Patch from Brad Hards
2344         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2345         improving quoting, re-ordering a few checks, and a few other
2346         aesthetic tidy-ups.
2347
2348 2006-02-16  Robert McQueen  <robot101@debian.org>
2349
2350         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2351         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2352         assertion that the next element to read from the iter is fixed in
2353         size. This is not the case when you are at the end of the iter,
2354         because the next element type is INVALID.
2355
2356         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2357         a bogus assert which means that you may not initialise a 0-length
2358         string unless you provide a non-NULL pointer. This prevented
2359         you from marshalling messages containing zero-length arrays in
2360         some cases.
2361
2362         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2363         from Rob to correct bogus asserts when trying to demarshal an
2364         array and get_fixed_array got you 0 elements. Append nothing to
2365         the GArray in this case.
2366
2367         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2368         an empty array via the glib bindings. Without all of the above
2369         patches, this new test fails.
2370
2371 2006-02-16  Robert McQueen  <robot101@debian.org>
2372
2373         * glib/dbus-gmain.c: Make the previous commit compile.
2374
2375         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2376         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2377         specify sender_keyword="foo", path_keyword="bar" when adding
2378         a signal listener, so that you can bind to signals generically
2379         but still do something useful in your callback.
2380
2381         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2382         chars so that they're not cast to chars and made negative. Thanks
2383         to Jakub Stachowski for reporting this and testing the fix.
2384
2385 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2386
2387         * dbus/dbus-glib.h:
2388         * glib/dbus-gmain.h:
2389         (dbus_g_connection_open): new method for openning
2390         a connection to an arbitrary address in the glib bindings
2391
2392         * ChangeLog: checkin last entry which doesn't seem to be commited
2393
2394 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2395
2396         * tools/dbus-launch.c: Fixed sh syntax output
2397
2398 2006-02-13  Robert McQueen  <robot101@debian.org>
2399
2400         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2401         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2402         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2403         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2404         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2405         missing piece of the glib bindings jigsaw puzzle. This modifies
2406         the existing specialised types to have N type parameters (rather
2407         than the current 1 or 2 for arrays and dictionaries respectively).
2408         You can then use this to get a glib type to represent any arbitrary
2409         D-Bus struct type using dbus_g_type_get_struct. The only
2410         implementation of these types is with GValueArrays as before,
2411         but it's now possible to store these in arrays, emit them in
2412         signals, etc.
2413
2414 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2415
2416         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2417         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2418         <thiago.macieira at trolltech.com>
2419
2420 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2421
2422         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2423         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2424
2425 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2426
2427         * bus/connection.c (bus_connections_expect_reply): Make
2428         pending reply limit not common to all connections (Bug #5416)
2429         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2430
2431 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2432
2433         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2434
2435 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2436
2437         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2438         patch from Doug Goldstein <cardoe at gentoo.org>
2439
2440 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2441
2442         * mono/Arguments.cs: Fix a magic number in the mono bindings
2443         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2444
2445 2006-01-27  Robert McQueen  <robot101@debian.org>
2446
2447         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2448         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2449         when generating the client-side methods, instead of overloading
2450         CSymbol which broke everything horribly. My apologies.
2451
2452 2006-01-27  Robert McQueen  <robot101@debian.org>
2453
2454         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2455         by me and Rob Taylor to add a simple_free function to D-Bus map
2456         and collection types, which allows those types which can be freed
2457         with a GDestroyNotify (such as GHashTables and GArrays, but not
2458         GPtrArrays) to be stored as the values in hashtables.
2459
2460         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2461         Patch by Rob Taylor to add nested dicts to the glib tests to check
2462         the above code works, and appears not to leak when called repeatedly.
2463
2464 2006-01-27  Robert McQueen  <robot101@debian.org>
2465
2466         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2467         to free a D-Bus allocated string with dbus_free () instead of
2468         g_free ().
2469
2470 2006-01-27  Iain Holmes  <iain@openedhand.com>
2471
2472         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2473         method from being called multiple times.
2474
2475 2006-01-19  Robert McQueen  <robot101@debian.org>
2476
2477         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2478         <rob.taylor@collabora.co.uk> to add support for generating bindings
2479         to arrays that are represented as GPtrArrays rather than GArrays (ie
2480         size-variable things, such as strings, objects, structs, etc).
2481
2482 2006-01-05  Robert McQueen  <robot101@debian.org>
2483
2484         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2485         <ricardo.kekki@movial.fi> to make it possible to inherit from
2486         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2487         a private part, and moving the setting of the DBusGProxyManager into a
2488         connection property, allowing proper GObject construction.
2489
2490 2006-01-05  Robert McQueen  <robot101@debian.org>
2491
2492         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2493         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2494         annotations when generating glib client bindings.
2495
2496 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2497
2498         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2499
2500         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2501
2502 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2503
2504         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2505
2506 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2507
2508         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2509
2510 2005-12-19  Ross Burton  <ross@openedhand.com>
2511
2512         * doc/dbus-tutorial.xml:
2513         Document the Glib client-side bindings, and list all possible annotations.
2514
2515 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2516
2517         * dbus/bus.c (dbus_bus_release_name): Add documentation
2518
2519 2005-12-06  Robert McQueen  <robot101@debian.org>
2520
2521         * python/service.py: s/sucessful/successful/ so we're allocating to
2522         and reading from the same variable. Oops.
2523
2524 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2525
2526         * Released 0.60
2527
2528 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2529
2530         * test/qt/Makefile.am: build from srcdir
2531
2532         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2533         Note - this code is wrong and needs to be fixed by the Qt binding
2534         developers.  The flags should be treated as bitfields and not enums.
2535
2536         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2537
2538 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2539
2540         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2541           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2542           in production code
2543
2544 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2545
2546         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2547         method for getting messages off the bus in the absence of a
2548         mainloop.  This method is much like 
2549         dbus_connection_read_write_dispatch except it does not dispatch
2550         the messages to a registered filter function.  Instead it
2551         allows a developer to process messages by directly popping
2552         them off the bus.
2553
2554 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2555
2556         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2557         the parser to continue instead of returning error
2558         (bus_desktop_file_load): Do not free parser data when
2559         parse_section_start or parse_key_value fails because it was 
2560         already freed by parser_free (patch from Carlos Garcia Campos  
2561         <carlosgc at gnome.org>)
2562
2563 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2564
2565         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2566         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2567         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2568         test/test-segfault.c, test/test-utils.c,
2569         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2570         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2571         Various cleanup of dead code and compiler warnings (patch from
2572         Kjartan Maraas <kmaraas at gnome.org>) 
2573
2574 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2575
2576         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2577         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2578
2579 2005-11-27  Robert McQueen  <robot101@debian.org>
2580
2581         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2582         part of the preceding one. Oops. Merge patch by Johan Hedberg
2583         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2584         on big-endian platforms.
2585
2586         * test/python/test-client.py: Add some 16-bit integers to the test
2587         values.
2588
2589 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2590
2591         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2592         method return message for property getters
2593
2594 2005-11-27  Robert McQueen  <robot101@debian.org>
2595
2596         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2597         with type v of an instance of dbus.Variant(foo, type='x') caused
2598         it to be boxed twice before sending over the bus.
2599
2600         * python/dbus_bindings.pyx, python/service.py,
2601         test/python/test-client.py: Update the constants for the new
2602         request_name flags, and update comments/test cases now that queueing
2603         is the default action.
2604
2605 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2606
2607         * configure.in:
2608         - Change version to 0.60 for impending release
2609         - upped the sonames because of ABI and API breakage
2610
2611 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2612
2613         * configure.in: Add test/name-test/Makefile to the generated
2614         Makefile list
2615
2616         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2617         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2618         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2619         not to queue an ower if it can't be the primary owner
2620
2621         * bus/bus.h: Add new internal BusOwner struct
2622
2623         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2624         to bus_registry_ensure and don't set the prohibit_replacement flag
2625         since they are now set per BusOwner and not per name.
2626         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2627         that returns the list of connections in a name's connection queue
2628         
2629         * bus/services.c (struct BusService): remove prohibit_replacement field
2630         (struct BusOwner): new struct for keeping track of queued connections
2631         and their associated flags for the queue
2632         (struct BusRegistry): add a BusOwner memory pool
2633         (bus_registry_new): initialize the BusOwner memory pool
2634         (bus_registry_unref): free the BusOwner memory pool
2635         (_bus_service_find_owner_link): new internal method for
2636         searching the queue for a specific connection
2637         (bus_owner_set_flags): new method for adding setting the flags on a
2638         bus owner
2639         (bus_owner_new): new method that creates a BusOwner object from the
2640         pool and sets its flags
2641         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2642         (bus_registry_ensure): Add the flags parameter
2643         (bus_registry_acquire_service): Switch from using raw connections to
2644         using the BusOwner struct
2645         Add new state machine for dealing with the new set of flags
2646         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2647         cancel_ownership, free_ownership_cancel_data, 
2648         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2649         restore_ownership, free_ownership_restore_data, 
2650         add_restore_ownership_to_transaction): Switch to using BusOwner 
2651         instead of raw connections
2652         (bus_service_add_owner): Add flags parameter
2653         Switch to using BusOwner instead of raw connections
2654         Add state machine for dealing with the new set of flags
2655         (bus_service_swap_owner): Swaps the first and second owners in the
2656         queue.  Used to make sure proper signals are sent when a service looses 
2657         or gains primary ownership.  We never insert an owner at the top of the
2658         queue.  Instead we insert it in the second position and then swap.
2659         (bus_service_remove_owner): Remove the owner from the queue sending
2660         out the NameLost and NameOwnerChanged signals if the we were the 
2661         primary owner
2662         (bus_service_get_primary_owners_connection): New method that extracts
2663         the connection from the primary owner
2664         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2665         connection
2666         (bus_service_get_allow_replacement): Changed from the old 
2667         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2668         primary owner and returns if it can be replaced or not
2669         (bus_service_set_prohibit_replacement): removed
2670         (bus_service_has_owner): returns TRUE if and owner with
2671         the specified connection exists in the queue
2672         
2673         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2674         method that only compiles if tests are enabled.  Allows us to get the 
2675         unique name of a connection so we can check it against the queue when
2676         doing regression tests
2677
2678         * bus/activation.c (bus_activation_send_pending_auto_activate),
2679         bus/dispatch.c (bus_dispatch),  
2680         bus/driver.c (bus_driver_handle_get_service_owner, 
2681         bus_driver_handle_get_connection_unix_user, 
2682         bus_driver_handle_get_connection_unix_process_id,
2683         bus_driver_handle_get_connection_selinux_security_context),
2684         bus/signals.c (connection_is_primary_owner): 
2685         use bus_service_get_primary_owners_connection instead of
2686         bus_service_get_primary_owner
2687
2688         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2689         _dbus_listen_unix_socket): Calculate the length of the socket
2690         path and use that instead of using a fixed length which was
2691         causing socket names to contain many trailing Nul bytes.
2692
2693         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2694         (dbus_g_method_get_sender): New method for extracting the sender 
2695         from a DBusGMethodInvocation
2696         (dbus_g_method_return_get_reply): changed name to 
2697         dbus_g_method_get_reply
2698         (dbus_g_method_return_send_reply): changed name to
2699         dbus_g_method_send reply
2700
2701         * doc/dbus-specification.xml: New docs that describe how the new
2702         queueing system works and talks about the changes to the how
2703         we specify socket names
2704
2705         * glib/examples/example-service.c, 
2706         glib/examples/example-signal-emitter.c,
2707         glib/examples/statemachine/statemachine-server.c:
2708         Changed the RequestName flags to the new system
2709
2710         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2711         regression test suite for testing various states of the new
2712         queueing system
2713         
2714 2005-11-15  Robert McQueen  <robot101@debian.org>
2715
2716         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2717         Taylor to add two methods, dbus_g_method_return_get_reply and
2718         dbus_g_method_return_send_reply, to allow you to get the reply
2719         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2720         and send it. The GLib bindings can't marshal a return value of
2721         something like a(s) if the array is empty - ultimately they should be
2722         made to heed the signature of the out arguments as the Python bindings
2723         now can, but this is a workable interim solution which might have
2724         other applications.
2725
2726 2005-11-15  Robert McQueen  <robot101@debian.org>
2727
2728         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2729         method to org.freedesktop.DBus to release a bus name or give up
2730         waiting in the queue for it.
2731
2732         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2733         dbus_bus_release_name method to send the ReleaseName method calls.
2734         Add constants for the return values to dbus/dbus-shared.h.
2735
2736         * doc/dbus-specification.xml: Document the new ReleaseName method
2737         in the specification.
2738
2739         * python/dbus_bindings.pyx: Add a low-level python binding for the
2740         release name method.
2741
2742         * python/exceptions.py, python/service.py: Make freeing BusName
2743         objects release the name. Add a NameExistsException, and fix a
2744         bug with creating UnknownMethodException.
2745
2746         * test/python/test-client.py: Add tests for freeing BusName
2747         objects causing names to be released.
2748
2749 2005-11-14  Robert McQueen  <robot101@debian.org>
2750
2751         * python/service.py: Include the traceback in the error reply when we
2752         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2753
2754 2005-11-14  David Zeuthen  <davidz@redhat.com>
2755
2756         Patch from Timo Hoenig <thoenig@suse.de>.
2757
2758         * bus/bus.c: I've recently investigated why the automatic reload
2759         of configuration files does not work as expected.
2760
2761         Currently, reloading configuration files does only work when
2762         running dbus-daemon with --nodaemon.  If we are running as daemon
2763         we're hitting a dnotify bug once we fork the process.
2764
2765         We're initializing the dnotify fds before calling fork().  Once
2766         the child process forked it does still have the fds (and they
2767         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2768         getting SIGIO as changes are made to the configuration files.
2769
2770         The attached patch moves the initialization of the dnotify fds to
2771         process_config_postinit().  This is safe for all current code
2772         paths and solves the dnotify disfunction.  If we're running
2773         dbus-daemon as daemon the fds for dnotify are now being
2774         initialized after fork() for the child process.
2775
2776         * configure.in: The current configure.in check for dnotify probes
2777         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2778         match for 'xlinux', too. Additionally I have adapted the configure
2779         option's style to match with the others.
2780
2781 2005-11-14  Robert McQueen  <robot101@debian.org>
2782
2783         * python/decorators.py, python/service.py: Add a new argument to the
2784         dbus.service.method decorator called sender_keyword, which if set,
2785         specifies the name of an argument which will be provided the bus
2786         name of the method caller.
2787
2788         * test/python/test-client.py, test/python/test-service.py: Add a
2789         method and test to check the sender_keyword functionality.
2790
2791 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2792
2793         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2794         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2795         Simons <sjoerd at luon.net>)
2796
2797         * AUTHORS: Add Robert McQueen for his work on the Python
2798         Bindings and other parts of D-Bus
2799
2800 2005-11-07  Robert McQueen  <robot101@debian.org>
2801
2802         * python/decorators.py: Change emit_signal function to use the
2803         signature annotation of the signal when marhsalling the arguments from
2804         the service. Fix a bug where the code checking signature length
2805         against argument length referenced the wrong variable.
2806
2807         * python/introspect_parser.py: Avoid adding the type signature of
2808         signal arguments to any methods which occur after them in the
2809         introspection data (!) by making the parser a little more careful
2810         about its current state.
2811
2812         * python/service.py: Remove debug prints from last commit (again :D).
2813
2814         * test/python/test-client.py, test/python/test-service.py: Add test
2815         signals with signature decorators to test the strict marshalling code
2816         gives errors at the right time. Could do with checking the signals
2817         actually get emitted too, given that the test does nothing with
2818         signals at the moment...
2819
2820 2005-11-07  Robert McQueen  <robot101@debian.org>
2821
2822         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2823         instances to stop madness of creating new instances representing
2824         the same bus connection all the time, rendering any tracking of
2825         match rules and bus names quite meaningless. Caught a bug where
2826         the private argument to SessionBus() and friends was being passed
2827         in as use_default_mainloop by mistake. Still some problems with
2828         multiple dbus_binding.Connection instances representing the same
2829         low-level connection (eg when you use both SessionBus() and
2830         StarterBus() in same process), but it's a lot better now than it
2831         was.
2832
2833         * python/dbus_bindings.pyx: Add constants with the return values
2834         for bus_request_name().
2835
2836         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2837         and retrieve the same instances for the same name, so deletion can be
2838         done with refcounting. Also now throws some kind of error if you
2839         don't actually get the name you requested, unlike previously...
2840
2841         * test/python/test-client.py: Add tests for instance caching of buses
2842         and bus name objects.
2843
2844 2005-11-04  Robert McQueen  <robot101@debian.org>
2845
2846         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2847         marshalling of boolean values. Add some booleans to the values in
2848         the test client.
2849
2850         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2851         argument to the dbus.service.method decorator, which allows you to
2852         name arguments to take two callback functions for replying with
2853         return values or an exception.
2854
2855         * test/python/test-client.py, test/python/test-service.py: Add test
2856         case using asynchronous method reply functions, both return values and
2857         errors, and from within both the function itself and from a mainloop
2858         callback.
2859
2860         * python/decorators.py, python/service.py: Perform checking that the
2861         number of method/signal arguments matches the number of types in the
2862         signature at class loading time, not when you first introspect the
2863         class.
2864
2865         * python/service.py: Remove debug print left by the last commit.
2866
2867 2005-11-03  Robert McQueen  <robot101@debian.org>
2868
2869         * python/service.py: Heavy refactoring of method invocation, with
2870         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2871         in favour of a new _message_cb that uses seperate functions for
2872         looking up the method to call, marshalling the return values, and
2873         sending exceptions as errors, and is easier to follow as a
2874         consequence.  Fixes some corner cases about returning things that
2875         don't match your declared out_signature, allows exceptions to define
2876         _dbus_error_name and have it be sent over the bus as the error name,
2877         and paves the way for cool stuff like heeding the message no reply
2878         flag, asynchronous method implementations, informing the method of the
2879         sender, and including backtraces in the error messages.
2880
2881         * test/python/test-client.py: Catch and print exceptions thrown in the
2882         async callback tests, rather than passing them to the low-level
2883         bindings to be ignored in a noisy and frustrating manner.
2884
2885 2005-11-03  Robert McQueen  <robot101@debian.org>
2886
2887         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2888         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2889         tweak others to be consistent.
2890
2891         * test/python/test-client.py: Tweak output of testInheritance.
2892
2893 2005-10-29  Robert McQueen  <robot101@debian.org>
2894
2895         * python/service.py: Major changes to allow multiple inheritance
2896         from classes that define D-Bus interfaces:
2897         
2898          1. Create a new Interface class which is the parent class of
2899             Object, and make the ObjectType metaclass into InterfaceType.
2900         
2901          2. Patch written with Rob Taylor to replace use of method_vtable
2902             with code that walks the class's __MRO__ (method resolution order)
2903             to behave like Python does when invoking methods and allow
2904             overriding as you'd expect. Code is quite tricky because
2905             we have to find two methods, the one to invoke which has the
2906             right name and isn't decorated with the /wrong/ interface,
2907             and the one to pick up the signatures from which is decorated
2908             with the right interface.
2909         
2910             The same caveats apply as to normal multiple inheritance -
2911             this has undefined behaviour if you try and inherit from two
2912             classes that define a method with the same name but are
2913             decorated with different interfaces. You should decorate
2914             your overriding method with the interface you want.
2915         
2916          3. Replace grungy introspection XML generation code in the metaclass
2917             with dictionaries that cope correctly with multiple inheritance
2918             and the overriding of methods. This also uses the signature
2919             decorations to provide correct introspection data, including
2920             the debut appearance of the types of your return values. :D
2921
2922         * test/python/test-client.py, test/python/test-service.py: Add a test
2923         case to try invoking an method that overrides one inherited from a
2924         D-Bus interface class.
2925
2926 2005-10-29  Robert McQueen  <robot101@debian.org>
2927
2928         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2929         Add checking for the end of struct character when marshalling a
2930         struct in MessageIter.append_strict.
2931
2932         * python/examples/example-service.py,
2933         python/examples/gconf-proxy-service.py,
2934         python/examples/gconf-proxy-service2.py: Update to use gobject
2935         mainloop directly rather than appearing to depend on gtk.
2936
2937         * python/test/test-client.py, python/test/test-server.py: Remove
2938         obsolete and broken test scripts for old bindings. We have up to date
2939         and working tests in test/python/.
2940
2941 2005-10-29  Robert McQueen  <robot101@debian.org>
2942
2943         * python/decorators.py: Add optional arguments to the method and
2944         signal decorators to allow you to specify the signature of arguments
2945         and return values. Preserve the doc strings of signal functions in the
2946         decorated version, for pydoc and friends.
2947
2948         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2949         parse_signature_block function with an iterable dbus.Signature()
2950         type. Fix a bug in MessageIter.append_strict where you could append
2951         anything by claiming it was a string.
2952
2953         * python/service.py: Use the out_signature decoration on methods to
2954         marshal return values, meaning you no longer require dbus.Array()
2955         or dbus.Dictionary() to indicate the type when returning empty
2956         arrays or dictionaries. Fix a bug where exceptions which are defined
2957         in __main__ are not turned into error replies.
2958
2959         * test/python/test-client.py, test/python/test-service.py: Add test
2960         for correct marshalling of return values according to out_signature.
2961         Fix a bug in the async call test where the error_handler is missing a
2962         self argument.
2963
2964 2005-10-29  Robert McQueen  <robot101@debian.org>
2965
2966         * glib/Makefile.am, glib/examples/Makefile.am,
2967         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2968         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2969
2970         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2971
2972         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2973         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2974         the command line.
2975
2976 2005-10-27  Ross Burton  <ross@openedhand.com>
2977
2978         * dbus/dbus-marshal-header.c:
2979         Remove dead code.
2980
2981         * glib/dbus-gobject.c:
2982         Stop compiler warning.
2983
2984 2005-10-25  Ross Burton  <ross@openedhand.com>
2985
2986         * dbus/dbus-auth.c:
2987         * dbus/dbus-server-unix.c:
2988         * dbus/dbus-transport-unix.c:
2989         * glib/dbus-gmain.c:
2990         * glib/dbus-gobject.c:
2991         Add some const keywords.
2992
2993 2005-10-25  Ross Burton  <ross@openedhand.com>
2994
2995         * doc/dbus-specification.xml:
2996         Document the NoReply annotation.
2997
2998         * glib/dbus-binding-tool-glib.h:
2999         * glib/dbus-binding-tool-glib.c:
3000         Respect the NoReply annotation.
3001
3002 2005-10-24  Robert McQueen <robot101@debian.org>
3003
3004         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3005         derive from unicode instead of str, and encode/decode UTF-8 when
3006         marshalling/unmarshalling bus messages
3007
3008         * python/introspect_parser.py: encode introspection data as UTF-8
3009         before passing the buffer into libxml2
3010
3011         * test/python/test-client.py: add unicode test strings
3012
3013         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3014         ignore generated python test files
3015
3016 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3017
3018         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3019         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3020         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3021
3022         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3023         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3024         when constructing struct signatures
3025
3026         * python/_dbus.py (Bus): handle private connections using the
3027         private keyword in the constructor. defaults to private=False
3028         (Bus::close): new method to close a connection to the bus
3029
3030         * python/dbus_bindings.pyx (Connection::close): renamed method
3031         was previously called disconnect
3032         (bus_get): now supports getting a private connection
3033
3034         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3035         keyword is set to True.  if it is, execute the method without waiting
3036         for a reply
3037         (ProxyObject::_introspect_execute_queue): new method for executing
3038         all the pending methods that were waiting for the introspect to
3039         finish.  this is called when introspect either succeeds or fails
3040         (ProxyObject::_introspect_error_handler): call queued methods
3041
3042 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3043
3044         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3045         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3046
3047         * python/service.py (Object::_message_cb): handle exceptions correctly
3048         by sending them over the wire to the calling app.  This makes sure
3049         the client returns immediately instead of waiting the 15 seconds to
3050         timeout.
3051
3052         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3053         Add a test to benchmark how long it takes to introspect a service and 
3054         call a method which returns a large element (pretty fast)
3055
3056         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3057         method which pushes a lot of data
3058
3059 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3060
3061         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3062         reclaim memory outside of the loop and use del istead of just setting
3063         the key to None
3064
3065 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3066
3067         * python/service.py (ObjectType::_reflect_on_signal): Always close
3068         signal tag even when there are no arguments
3069
3070 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3071
3072         * configure.in: Set mono, mono-docs and Qt3 to default
3073         to no instead of auto when building.  These bindings do not
3074         have full time maintainers and will not be supported for the
3075         1.0 release.
3076
3077 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3078
3079         patches from Michael Krivoruchko <misha at sun.com>: 
3080         
3081         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3082         _dbus_connection_message_sent, 
3083         _dbus_connection_send_preallocated_unlocked_no_update, 
3084         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3085         is NULL when calling _dbus_verbose
3086
3087         * configure.in: check for functions getpeerucred and getpeereid
3088
3089         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3090         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3091         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3092         Patch was only tested on Solaris 10 x86 so it might be issues
3093         with other platforms (i.e. BSDs and MacOSX)
3094         
3095
3096 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3097
3098         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3099         instead of marshal basic so we can handle recursive types in a variant
3100
3101         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3102         in variants
3103
3104         * test/glib/test-service-glib.c, test-service-glib.xml
3105         (my_object_echo_variant [EchoVariant], 
3106         my_object_process_variant_of_array_of_ints123
3107         [ProcessVariantOfArrayOfInts123]): 
3108         Add two test methods
3109
3110         * python/introspect_parser.py: New module for parsing introspect
3111         data.
3112
3113         * python/dbus_bindings.pyx:
3114         (various places): when throwing errors fix to use errormsg instead 
3115         of message local variable because Pyrex can get confused with other 
3116         message variables (initial patch by Robert McQueen 
3117         <robert.mcqueen at collabora.co.uk>)
3118         (MessageIter::parse_signature_block): new method for getting the next
3119         block in a signiture.
3120         (MessageIter::append_strict): new method for appending values strictly
3121         using the passed in signature instead of guessing at the type
3122         (MessageItter:: append_dict, append_struct, append_array): use 
3123         signatures to marshal children if the signature is available
3124         
3125         * python/exceptions.py (IntrospectionParserException): new exception
3126
3127         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3128         introspected signatures if available, else we fall back to the
3129         old way of doing things.
3130         (ProxyObject::_introspect_reply_handler ): parse introspection data
3131         
3132         * python/service.py (ObjectType::_reflect_on_method): Properly
3133         terminate <method> if there are no args in the reflection data
3134
3135         * test/python/test-client.py: add tests for talking with the GLib
3136         test server.  This gives us better coverage for introspection since
3137         python to python will always generate arguments as variants.  It also
3138         allows us to test the robustness of the GLib bindings and interlanguage
3139         communications.
3140
3141         
3142 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3143
3144         * bus/driver.c (bus_driver_handle_introspect): Add signals
3145         to the introspect data. (patch from Daniel P. Berrange 
3146         <dan at berrange.com>)
3147
3148         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3149         
3150         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3151         _dbus_connection_run_builtin_filters): Changed these to
3152         be unlock_no_update functions and call 
3153         _dbus_connection_send_unlocked_no_update instead of
3154         dbus_connection_send to avoid locking errors.
3155         
3156         * doc/TODO: Removed the make Ping test TODO
3157         
3158 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3159
3160         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3161         We now copy the message from a DBusError and then free 
3162         the error object befor throwing the error
3163
3164         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3165         DBusBindingOutputMode enum which was causing a warning.
3166         #include <time.h> so using time_t is explicitly defined
3167
3168 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3169
3170         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3171         - dbus/dbus-bus.c
3172         (internal_bus_get): new method that take over the heavy lifting
3173         of dbus_bus_get and adds the ability to get a private connection
3174         to the bus
3175         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3176         interface as in previous versions
3177         (dbus_bus_get_private): new method that is a wrapper to 
3178         internal_bus_get to get a private connection to the bus
3179
3180         - dbus/dbus-bus.h
3181         (dbus_bus_get_private): add as a public libdbus interface
3182
3183         - dbus-1.pc.in: output system_bus_default_address and 
3184         sysconfdir variables so apps can use them when compiling
3185
3186 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3187         * dbus/qt: New Qt bindings
3188
3189 2005-09-12  Waldo Bastian  <bastian@kde.org>
3190
3191         * dbus/dbus-marshal-validate.c,
3192         doc/dbus-specification.xml, test/Makefile.am,
3193         test/test-names.c: allow hyphens in bus names.
3194
3195 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3196
3197         * test/data/auth/fallback.auth-script: we don't
3198         retry the EXTERNAL method when we know its going
3199         to fail anymore.
3200
3201 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3202
3203         * dbus/dbus-connection-internal.h: rename
3204         (add|remove|toggle)_(watch|timeout) to unlocked()
3205         
3206         * dbus/dbus-connection.c: ditto.
3207         
3208         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3209         Update some callers for the renaming.
3210
3211 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3212
3213         * dbus/dbus-auth.c: (record_mechanisms): don't
3214         retry the first auth mechanism because we know
3215         we're just going to get rejected again.
3216         
3217         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3218         Fix thinko ... and what a nasty little bugger to
3219         track down you were ...
3220
3221         * dbus/dbus-connection.c:
3222         (_dbus_connection_add_watch),
3223         (_dbus_connection_remove_watch): add note about
3224         these needing the connection to be locked.
3225         (_dbus_connection_get_dispatch_status_unlocked):
3226         set status to DATA_REMAINS when we queue the
3227         disconnected message.
3228         
3229         * bus/dispatch.c:
3230         (bus_dispatch): fix warning.
3231         (check_existent_service_no_auto_start):
3232         Expect ChildSignaled error too.
3233         (check_existent_hello_from_self): fix another
3234         couple of warnings.
3235         
3236 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3237
3238         Patches from James Willcox <snorp@snorp.net>
3239
3240         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3241
3242         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3243         support array "out" parameters.
3244
3245         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3246         for 16-bit int support.
3247
3248 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3249
3250         * Released 0.50
3251
3252         * Patch from Steve Grubb:
3253         - bus/activation.c (bus_activation_service_reload_test): clean up
3254         some indentation
3255         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3256         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3257         buffer overflows in the test suite.  This is non critical because
3258         it can not be exploited and this code is only run when doing a 
3259         make check.
3260
3261         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3262         - configure.in: Don't check and link against kdecore, only qt headers
3263         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3264         - gcj/org/freedesktop/dbus/Makefile.am:
3265         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3266         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3267         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3268         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3269         - tools/Makefile.am: Add platform extentions to binaries 
3270         (i.e. .exe on windows)
3271
3272         * configure.in: 
3273         - Make it so if no suitable version of python is found we only 
3274         disable building python instead of exiting the configure script
3275         - Require version 2.4 of glib for glib bindings
3276         - Up version to 0.50
3277
3278         * python/__init__.py: Sync version with libdbus to (0,50,0)
3279         
3280 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3281
3282         * dbus/dbus-object-tree.c (find_subtree_recurse):
3283         a couple of optimizations (bug #710):
3284         - do a binary search in the tree
3285         - insert a new child at the right place directly, no need for
3286           qsort anymore
3287         - do the "double alloc" thing when allocating children
3288
3289 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3290
3291         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3292
3293         * python/dbus_bindings.pyx: Memory management foo
3294         (global): remove hacky _user_data_references global list
3295         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3296         tuples. Unref user_data
3297         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3298         (Connection::__del__): Remove and replace with __dealloc__ method
3299         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3300         to keep tuple from being deallocated instead of the global var hack
3301         (Connection::register_object_path): Stuff user_data into a tuple.
3302         Use Py_INCREF to keep tuple from being deallocated instead of the 
3303         global var hack
3304         (Connection::register_fallback): Stuff user_data into a tuple.
3305         Use Py_INCREF to keep tuple from being deallocated instead of the 
3306         global var hack
3307         (GIL_safe_pending_call_notification): Don't unref the message
3308         because it gets unreffed when going out of scope.  Py_XDECREF
3309         the user_data
3310         (PendingCall::__del__): Remove and replace with __dealloc__ method
3311         (PendingCall::set_notify): ref the pending call because we will
3312         need it to stick around for when the notify callback gets called
3313         (Message::__del__): Remove and replace with __dealloc__ method
3314
3315         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3316         gthreads_init to match up with the dbus call
3317
3318         * python/glib.py (init_threads): Changed to threads_init to match
3319         up with gobject.threads_init().  init_threads is kept for backwards
3320         compat but will most likely be deprecated in the future
3321
3322         * test/python/test-client.py: 
3323         - revamp to use Python's unittest functionality
3324         - add async call tests
3325         - setup threads in glib and dbus so we make sure locks are working
3326         
3327 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3328
3329         * python/dbus_bindings.pyx 
3330         (_pending_call_notification, cunregister_function_handler, 
3331         cmessage_function_handler): All callback functions have been rearranged 
3332         to workaround a bug in Pyrex when working with the GIL which is Python's 
3333         global lock when dealing with threads.  They have been split into
3334         a wrapper function (which assumes the name of the old function) and
3335         a _GIL_safe_<function name> function which contains the functionality
3336         of the old function.  This ensures that Pyrex does not write code
3337         the lock is released.
3338         
3339
3340 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3341
3342         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3343         GIL global lock when calling back into Python
3344
3345 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3346
3347         * Release 0.36.2
3348
3349         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3350
3351         * bus/policy.c (bus_policy_allow_user): change default "user is
3352         allowed" to be "user has same uid as the bus itself"; any
3353         allow/deny rules will override.
3354
3355         * bus/session.conf.in: don't allow all users, since now by default
3356         the user that ran the bus can connect.
3357
3358 2005-08-26  Colin Walters  <walters@verbum.org>
3359
3360         * tools/dbus-print-message.c (print_message): Flush stdout
3361         after printing a message, so that redirecting to a file, then
3362         hitting Ctrl-C works.
3363
3364 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3365
3366         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3367         (EmptyMessage): new class that subclasses Message.  This is a workaround
3368         to a Pyrex bug that fails to call __del__ when the Message object goes out
3369         of scope.  For some reason subclassing Message fixes this bug
3370         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3371         - s/Message(_create=0)/EmptyMessage everywhere else
3372         
3373         * test/python/test-{server|client}.py: add the python/.libs directory
3374         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3375         get picked up from the system
3376
3377 2005-08-25  Colin Walters  <walters@verbum.org>
3378
3379         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3380         to Ryan Lortie for the suggestion.
3381
3382 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3383
3384         * test/python: Add python regression test
3385
3386         * configure.in: Add test/python/Makefile
3387
3388         * test/Makefile.am: Add the python directory to SUBDIRS
3389
3390 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3391
3392         * Release 0.36.1
3393
3394         * python/_dbus.py: 
3395         (Interface::connect_to_signal): propigate keywords for match on args
3396         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3397
3398         * python/proxies.py (ProxyObject::connect_to_signal):
3399         propigate keywords for match on args
3400
3401         * Makefile.am: point everything to pyexecdir since python borks
3402         on multilib
3403
3404 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3405
3406         * Release 0.36
3407
3408 2005-08-23  Colin Walters  <walters@verbum.org>
3409
3410         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3411
3412 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3413
3414         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3415         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3416         of defining DBusConnection ourselves.
3417
3418 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3419
3420         * python/dbus.pth: New path file to fix up problems when installing
3421         c libraries to lib64 and python files to lib.
3422
3423         * python/Makefile.am: install dbus.pth in the correct spot
3424
3425 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3426         * ChangeLog: clean up my last entry a bit
3427
3428         * doc/introspect.xsl: New stylesheet for converting introspection data
3429         into browser renderable xhtml. Contributed by Lennart Poettering.
3430
3431         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3432         Poettering.
3433
3434         * doc/dbus-tutorial.xml: 
3435         - Add Colin Walter to the Authors section for authoring the GLib
3436         section
3437         - Add descriptions of the new signature and type functionality
3438         in the Python complex type mapping section
3439         - Add a sidenote on the new args matching functionality in 
3440         the Python bindings
3441         - Fixed up some of the examples to use the gobject.MainLoop
3442         instead of gtk.main
3443         
3444         * python/_dbus.py:
3445         (Bus::_create_args_dict): New. Converts a hash of arg matches
3446         to a more useable format
3447         (Bus::add_signal_receiver): add a **keywords parameter for catching
3448         arg match parameters
3449         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3450         arg match parameters
3451         
3452         * python/matchrules.py:
3453         (MatchTree::exec_matches): Check for arg matches
3454         (SignalMatchRule::add_args_match): New method
3455         (SignalMatchRule::execute): Added args_list parameter as an optimization
3456         so we don't have to marshal the args more than once
3457         (SignalMatchRule::match_args_from_list): New method that checks to see
3458         if the rule's arg matches match an argument list.  Only arguments
3459         set in the rule are checked.
3460         (SignalMatchRule::match_args_from_rule): New method that checks to see
3461         if the rule's arg matches match another rule's.  All args have to match
3462         in order for this method to return true.  If either rule has more args
3463         then it is not a match.
3464         (SignalMatchRule::is_match): Add args match
3465         (SignalMatchRule::repr): Add args to the final output if they exist
3466
3467 2005-08-17  Ross Burton  <ross@burtonini.com>
3468
3469         * glib/dbus-gproxy.c:
3470         (dbus_g_proxy_call_no_reply): unref the message once sent.
3471         (dbus_g_proxy_call): protect against NULL proxy.
3472
3473 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3474
3475         * python/__init__.py: Version updated (0, 43, 0)
3476         
3477         * python/dbus_bindings.pyx: 
3478         - Fixed type objects to have self passed into __init__
3479         - Added the Variant type
3480         - Add the ability to specify types or signatures for Array, Variant 
3481         and Dictionary
3482         (Connection::send_with_reply_handlers): return a PendingCall object
3483         (_pending_call_notification): handle the case when an error is returned 
3484         without an error message in the body
3485         (MessageIter::get_boolean): return True or False instead of an integer
3486         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3487         and add checks for objects with embeded signatures or types (Array, 
3488         Variant and Dictionary)
3489         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3490         (MessageIter::append_dict): handle embeded types or signatures
3491         (MessageIter::append_array): handle embeded types or signatures
3492         (MessageIter::append_variant): new method
3493         
3494         * python/proxies.py:
3495         (DeferedMethod): New. Dummy executable object used when queuing calls 
3496         blocking on introspection data
3497         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3498         or shorter timeouts for method calls
3499         (ProxyObject): Add first pass at an introspection state machine
3500         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3501         introspection. 
3502         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3503         the usual mechanisms for sending messages.  This is to avoid a deadlock
3504         where the Intospect call would be queued waiting for the Introspect 
3505         call to finish ;-)
3506         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3507         when introspection returns with no error
3508         (ProxyObject::_introspect_error_handler): New.  This method is called 
3509         when introspection encounters an error
3510         (ProxyObject::__getattr__): Code to handle different introspection 
3511         states.  Queue async calls or block blocking calls if we are 
3512         introspecting.  Pass through as normal if we are not or are done with 
3513         introspecting.
3514         
3515         * python/service.py: Import signal and method from decorators.py
3516
3517         * python/types.py: Add Variant type
3518
3519 2005-08-16  Colin Walters  <walters@verbum.org>
3520
3521         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3522         DBusError message is NULL.
3523
3524 2005-08-09  Havoc Pennington  <hp@redhat.com>
3525
3526         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3527         malloc'd copy of the name parameter
3528
3529 2005-08-09  Havoc Pennington  <hp@redhat.com>
3530
3531         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3532         warning if the reply serial is set to 0
3533
3534 2005-08-04  Colin Walters  <walters@verbum.org>
3535
3536         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3537         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3538         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3539         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3540         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3541         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3542         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3543         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3544         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3545         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3546         
3547         Prefix name with _ to ensure they're not exported.  All callers
3548         updated.
3549
3550         * glib/dbus-gvalue.c (typecode_to_gtype)
3551         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3552         (signature_iter_to_g_type_dict)
3553         (signature_iter_to_g_type_array)
3554         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3555         (dbus_gtypes_from_arg_signature):
3556         Move to dbus-gsignature.c.
3557
3558         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3559         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3560         (dbus_binding_tool_output_glib_client): Ditto.
3561
3562         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3563         and dbus-gsignature.h
3564
3565         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3566         unused variable.
3567
3568 2005-08-03  Colin Walters  <walters@verbum.org>
3569
3570         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3571         catch any incompatible changes accidentally made.
3572
3573 2005-08-03  Havoc Pennington  <hp@redhat.com>
3574
3575         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3576         typo, from Julien Puydt
3577
3578         * bus/connection.c (bus_connection_disconnected): we were always
3579         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3580
3581 2005-08-01  Colin Walters  <walters@verbum.org>
3582
3583         Patch from Joe Markus Clarke:   
3584         
3585         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3586         use-after-free.
3587
3588 2005-08-01  Colin Walters  <walters@verbum.org>
3589         
3590         Patch from Joe Markus Clarke:   
3591         
3592         * tools/dbus-send.c (main): 
3593         
3594         Don't use C99 style initializers (bug #3933).
3595         
3596 2005-08-01  Colin Walters  <walters@verbum.org>
3597
3598         Patch from Joe Markus Clarke:   
3599
3600         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3601         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3602         * glib/dbus-gobject.c (write_interface):
3603
3604         Don't use C99 style initializers (bug #3933).
3605
3606 2005-07-31  Havoc Pennington  <hp@redhat.com>
3607
3608         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3609         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3610
3611 2005-07-30  Havoc Pennington  <hp@redhat.com>
3612
3613         * fix a bunch of Doxygen warnings and mistakes
3614
3615 2005-07-30  Havoc Pennington  <hp@redhat.com>
3616
3617         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3618         DBUS_BUILD_TESTS since it's now used in production code
3619
3620 2005-07-29  Havoc Pennington  <hp@redhat.com>
3621
3622         * test/glib/test-profile.c (write_junk): initialize the junk
3623         buffer so valgrind doesn't have a breakdown
3624
3625 2005-07-29  Havoc Pennington  <hp@redhat.com>
3626
3627         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3628         (match_rule_matches): remove unused arg
3629         (test_matching): add tests for match_rule_matches()
3630
3631         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3632         do arg0='foo' arg5='bar' in the match rules
3633         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3634
3635         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3636
3637 2005-07-29  Ross Burton  <ross@openedhand.com>
3638
3639         * dbus/dbus-connection.c:
3640         Don't create a DBusCondVar which is never used.
3641
3642 2005-07-27  Ross Burton  <ross@openedhand.com>
3643
3644         * dbus/dbus-message.c:
3645         Reduce the size of the maximum cached message to 10K.
3646
3647 2005-07-25  Ross Burton  <ross@openedhand.com>
3648
3649         * glib/dbus-gproxy.c:
3650         Remove matches when all proxies are unregistered.
3651
3652 2005-07-24  Colin Walters  <walters@verbum.org>
3653
3654         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3655         typedata; recursive arrays won't have it.
3656
3657         * test/glib/test-dbus-glib.c:
3658         * test/glib/test-service-glib.c:
3659         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3660         
3661 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3662
3663         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3664         proxies.py, service.py: Cleanup of code after running it through the
3665         pyflakes code checker mostly dealing with undefined names.  
3666         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3667
3668 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3669
3670         * NEWS: Update to 0.35.2
3671
3672 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3673
3674         * python/_dbus.py: Remove import of the dbus.services
3675         module as it no longer exists (patch from Dimitur Kirov)
3676
3677         * python/service.py (Object::__init__): Fixed typo
3678         s/name/bus_name (patch from Dimitur Kirov)
3679
3680         * python/examples/example-signal-emitter.py: import dbus.glib
3681         to get the main loop and use glib mainloop instead of gtk so
3682         X doesn't have to be running.
3683
3684         * python/examples/example-signal-recipient.py: import dbus.glib
3685         to get the main loop and use glib mainloop instead of gtk so
3686         X doesn't have to be running. Import the decorators module
3687         directly.
3688
3689         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3690         didn't pick up on but are needed to build
3691
3692         * configure.in: upped version to 0.35.2
3693
3694         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3695         added Colin Walters' SELinux API rename patch from head 
3696         s/unix sercurity context/selinux security context/
3697
3698 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3699
3700         * python/Makefile.am: dbus_binding.pxd.in should be included 
3701         in EXTRA_DIST not dbus_binding.pxd
3702         fix up $(srcdir) hopefully for the last time
3703
3704         * NEWS: Update to 0.35.1
3705
3706 2005-07-16  Colin Walters  <walters@verbum.org>
3707
3708         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3709         from bus_driver_handle_get_connection_unix_security_context.  Update for
3710         error usage.
3711         (message_handlers): Update for renames.
3712
3713         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3714         _dbus_string_init failure correctly.
3715         (bus_selinux_append_context): Convert SID to context.  Append it
3716         as a byte array.
3717         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3718         hasn't been called.
3719
3720         * bus/selinux.h: Update prototype.
3721
3722         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3723         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3724
3725 2005-07-15  Colin Walters  <walters@verbum.org>
3726
3727         * doc/TODO: Add note about convenience wrappers.
3728
3729 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3730
3731         * NEWS: Update to 0.35
3732
3733 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3734
3735         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3736         so distcheck doesn't fail
3737
3738         * glib/examples/Makefile.am: Add example-service.xml and 
3739         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3740
3741         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3742         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3743
3744         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3745         compiler looks in the right places during distcheck
3746
3747 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3748
3749         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3750         to fail
3751
3752 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3753
3754         * python/examples/example-service.py,
3755         python/examples/example-signal-emitter.py: Fixed up examples
3756         for API changes
3757
3758 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3759
3760         * python/__init__.py: Upped to version (0,42,0) because of
3761         the API change
3762
3763 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3764
3765         * ChangeLog: fix date in last entry
3766
3767         * configure.in, bus/system.conf.in: add the ability to configure 
3768         the system bus user at compiletime with the --with-dbus-user flag
3769         (patch from Kristof Vansant)
3770
3771 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3772
3773         * bus/dispatch.c, test/test-service.c: Add testcase
3774         for sending messages to oneself (TODO item).
3775
3776         * python/service.py (class Object): Swap ordering of bus_name 
3777         and object_path parameters to better support inheritance.
3778
3779         * doc/dbus-tutorial.xml: change Python docs to reflect change
3780         in parameter ordering and fix the inheritance section.
3781
3782         * doc/TODO: remove sending message to oneself TODO item
3783
3784 2005-07-15  Ross Burton  <ross@openedhand.com>
3785
3786         * glib/dbus-gproxy.c:
3787         Fix a leak when calling methods via the proxy.
3788
3789 2005-07-15  Colin Walters  <walters@verbum.org>
3790
3791         * bus/selinux.c (bus_selinux_append_context): Wrap in
3792         HAVE_SELINUX.
3793
3794 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3795
3796         * python/_dbus.py (Bus::remove_signal_receiver):
3797         don't add a callback to the match if none has been passed in
3798         
3799         * python/matchrules.py (SignalMatchTree::remove): if the rule
3800         being matched does not have a callback treat it as a wildcard
3801         fix matching logic
3802
3803         * doc/dbus-tutorial.xml: Add Python tutorial
3804
3805 2005-07-14  Colin Walters  <walters@verbum.org>
3806
3807         * bus/driver.c
3808         (bus_driver_handle_get_connection_unix_security_context): New function.
3809         (message_handlers): Add.
3810
3811         * bus/selinux.c (bus_selinux_append_context): New function; appends
3812         security context to message.
3813
3814         * bus/selinux.h: Prototype.
3815
3816         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3817
3818 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3819
3820         * bus/activation.c: clean up all tabs to be 8 spaces 
3821         (bus_activation_activate_service): make sure we clean up
3822         if activation fails
3823
3824         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3825         (check_shell_fail_service_auto_start): New function
3826         tests to make sure we get fail properly when trying to auto start a service
3827         with a faulty command line
3828         (check_shell_service_success_auto_start): New function tests to make sure
3829         auto started services get the arguments on the command line
3830
3831         * test/test-shell-service.c: Added service for testing auto-starting with 
3832         command line arguments
3833
3834         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3835         test/data/valid-service-files/debug-shell-echo-success.service.in:
3836         Added service files for testing auto-starting with command line arguments
3837
3838         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3839
3840 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3841
3842         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3843         
3844         * dbus/Makefile.am: added new files to build.
3845
3846         * bus/activation.c (bus_activation_activate_service): support
3847         activation commands with parameters.
3848
3849         * test/shell-test.c: added test program for the shell parsing
3850         code.
3851
3852 2005-07-13  David Zeuthen  <davidz@redhat.com>
3853
3854         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3855         64 bit signed and unsigned parameters
3856
3857 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3858
3859         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3860
3861         * python/service.py (class Name): renamed BusName to make it clearer
3862         what the object is for (a name on the bus)
3863
3864         * python/examples/example-service.py,
3865         python/examples/example-signal-emitter.py: change the Name object to
3866         BusName
3867
3868 2005-07-12  Colin Walters  <walters@verbum.org>
3869
3870         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3871
3872         * tools/dbus-launch.c: Include sys/select.h.
3873
3874 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3875         * python/dbus_bindings.pyx.in: removed
3876
3877         * python/dbus_bindings.pyx: Added.
3878         - Fixed some memleaks (patch from 
3879         Sean Meiners <sean.meiners@linspireinc.com>)
3880         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3881         own pxd file (Pyrex definition)
3882         - Broke out glib dependancies into its own pyx module
3883         
3884         * python/dbus_bindings.pdx: Added.
3885         - Defines C class Connection for exporting to other modules
3886
3887         * python/dbus_glib_bindings.pyx: Added.
3888         - New module to handle lowlevel dbus-glib mainloop integration
3889
3890         * python/glib.py: Added.
3891         - Registers the glib mainloop when you import this module
3892
3893         * python/services.py: Removed (renamed to service.py)
3894         
3895         * python/service.py: Added.
3896         - (class Server): renamed Name
3897
3898         * python/__init__.py: Bump ro version (0,41,0)
3899         -don't import the decorators or service module
3900         by default.  These now reside in the dbus.service namespace
3901
3902         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3903         setup function on creation 
3904
3905         * python/examples/example-service.py,
3906         python/examples/example-signal-emitter.py: update examples
3907
3908         * python/examples/gconf-proxy-service.py,
3909         python/examples/gconf-proxy-service2.py: TODO fix these up
3910
3911         * doc/TODO: Addition
3912         - Added a Python Bindings 1.0 section
3913         - added "Add match on args or match on details to match rules"
3914
3915
3916 2005-07-12  Colin Walters  <walters@verbum.org>
3917
3918         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3919         (statemachine-glue.h): 
3920         * glib/examples/Makefile.am (example-service-glue.h) 
3921         (example-signal-emitter-glue.h): 
3922         * glib/Makefile.am (dbus-glib-error-switch.h): 
3923         Add libtool --mode=execute so we use the built library instead
3924         of any installed one.
3925
3926 2005-07-11  Colin Walters  <walters@verbum.org>
3927
3928         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3929         (dbus_g_value_types_init): Remove assertion.
3930         (dbus_g_value_get_g_type, dbus_g_value_open)
3931         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3932         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3933         functions related to DBusGValue.  Now we marshal/demarshal
3934         structures as GValueArray.
3935         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3936         structures.
3937         (signature_iter_to_g_type_array): Don't call
3938         signature_iter_to_g_type_struct.
3939         (signature_iter_to_g_type_struct): Delete.
3940         (dbus_gvalue_to_signature): Delete.
3941         (dbus_gvalue_to_signature): New function with same name as other
3942         one; we can convert structures to signatures.
3943         (demarshal_valuearray): New function.
3944         (get_type_demarshaller): Use it.
3945         (demarshal_recurse): Delete.
3946         (marshal_proxy): New function.
3947         (marshal_map): Warn if we can't determine signature from type.
3948         (marshal_collection_ptrarray): Ditto.
3949         (marshal_collection_array): Ditto.
3950         (get_type_marshaller): Use marshal_valuearray.
3951         (marshal_recurse): Delete.
3952         (_dbus_gvalue_test): Add some tests.
3953
3954         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3955         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3956         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3957         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3958         (dbus_g_value_free): Remove prototypes.
3959
3960         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3961         G_TYPE_VALUE_ARRAY.
3962
3963         * glib/examples/example-service.c:
3964         * glib/examples/example-client.c: Implement GetTuple.
3965
3966         * test/glib/test-dbus-glib.c:
3967         * test/glib/test-service-glib.c:
3968         * test/glib/test-service-glib.xml: Add structure tests.
3969
3970 2005-07-10  Colin Walters  <walters@verbum.org>
3971
3972         * doc/TODO: Knock off some GLib items with this patch.
3973
3974         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3975         (_dbus_gvalue_signals_error): New functions.
3976
3977         * glib/dbus-gvalue-utils.h: Prototype them.
3978
3979         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3980         and change to not output const/retval flags for input args.  All
3981         callers updated.
3982         (invoke_object_method): Refactor to handle return values.  Add
3983         some more comments in various places.  Remove debug g_print.
3984
3985         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3986
3987         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3988         Handle G_TYPE_NONE.
3989         (compute_gsignature): New function; refactored from code from
3990         compute_marshaller and compute_marshaller_name.  Enhance to
3991         handle return values and async ops more cleanly.  Update for
3992         async ops returning NONE instead of BOOLEAN.
3993         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3994         and output appropriate string.
3995         (generate_glue): Handle return value annotation.  Also don't dump
3996         constness flag for input arguments.
3997
3998         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3999         files shared between installed library and utilities.
4000         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4001         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4002         binding tool can access gtype utility functions.
4003
4004         * test/glib/test-service-glib.c: 
4005         * test/glib/test-service-glib.xml: 
4006         * test/glib/test-dbus-glib.c: Add some tests for return values.
4007
4008 2005-07-09  Colin Walters  <walters@verbum.org>
4009
4010         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4011         argument if available, not method.
4012
4013         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4014         (invoke_object_method): First, remove some redundant
4015         GValues (object_value, error_value) in favor of working on
4016         array directly.  Second, rework constness to be less buggy.
4017         Now we iterate directly over the argument metadata instead
4018         of parallel iterating over output signature and metadata.
4019
4020         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4021
4022         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4023         annotation on input args.
4024         
4025 2005-07-09  Colin Walters  <walters@verbum.org>
4026
4027         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4028         Define.
4029
4030         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4031         annotation.
4032
4033         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4034         (method_dir_signature_from_object_info): Handle arg_iterate change.
4035         (write_interface): Ditto.
4036         (lookup_object_info): Don't barf if format_version is > 0.
4037         (invoke_object_method): Handle arg constness.
4038
4039         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4040         (arg_info_new): Create.
4041         (arg_info_unref): Destroy.
4042         (arg_info_get_annotations, arg_info_get_annotation) 
4043         (arg_info_add_annotation): New functions.
4044
4045         * glib/dbus-gidl.h: Prototype them.
4046
4047         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4048         args, disallow them in properties.
4049         (parse_annotation): Handle arg annotations.
4050
4051         * test/glib/test-service-glib.xml: 
4052         * test/glib/test-service-glib.c: Update to make some methods
4053         const.
4054
4055 2005-07-08  Colin Walters  <walters@verbum.org>
4056
4057         * test/glib/test-service-glib.xml: 
4058         * test/glib/test-service-glib.c:
4059         * test/glib/test-dbus-glib.c: Test a{sv}.
4060
4061         * glib/examples/statemachine/statemachine.c:
4062         * glib/examples/statemachine/statemachine-server.c:
4063         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4064         add progress bar, etc.
4065
4066         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4067         needed anymore due to generic array/map marshalling.
4068         (dbus_g_value_types_init): Don't register basic arrays or the
4069         string/string hash.
4070         (dbus_gtype_from_signature_iter): Don't try to recurse into
4071         variants.
4072         (dbus_gtype_to_signature): Check collection/map before type
4073         metadata.
4074         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4075         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4076         generic map creation/append functions instead of hash table
4077         specifically.
4078         (get_type_demarshaller): Handle maps.
4079         (demarshal_collection): Dispatch on collection type to either
4080         demarshal_collection_ptrarray or demarshal_collection_array.
4081         (get_type_marshaller): Handle maps.
4082         (marshal_collection): Dispatch collection type to either
4083         marshal_collection_ptrarray or marshal_collection_array.
4084         (_dbus_gvalue_test): New test.
4085
4086         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4087         (hash_free_from_gtype): Use it to free GValues.
4088         (hashtable_append): New function.
4089         (ptrarray_append): Fix prototype.
4090         (slist_append): Ditto.
4091         (_dbus_gvalue_utils_test): Extend tests.
4092
4093         * glib/dbus-gtype-specialized.c
4094         (dbus_g_type_specialized_init_append): Renamed from
4095         dbus_g_type_specialized_collection_init_append.  Remove const from
4096         value, since we steal it.
4097         (dbus_g_type_specialized_map_append): New function.
4098
4099         * glib/dbus-gtype-specialized.h: Update prototypes.
4100         Add DBusGTypeSpecializedMapAppendFunc.
4101
4102         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4103         _dbus_gvalue_test.
4104         
4105         * glib/dbus-gtest.h: Prototype it.
4106
4107 2005-07-08  Ross Burton  <ross@openedhand.com>
4108
4109         * dbus/dbus-glib.h:
4110         Add DBysGAsyncData for the async bindings.
4111
4112         * glib/dbus-binding-tool-glib.c:
4113         Re-enable the async bindings.
4114
4115         * test/glib/test-dbus-glib.c:
4116         Add a test for the generated async bindings.
4117
4118 2005-07-08  Colin Walters  <walters@verbum.org>
4119
4120         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4121         connection concept.
4122         
4123 2005-07-08  Colin Walters  <walters@verbum.org>
4124         
4125         * tools/Makefile.am: Kill of print-introspect in favor of using
4126         dbus-send --print-reply=literal.
4127
4128         * test/glib/test-service-glib.xml: 
4129         * test/glib/test-service-glib.c (my_object_get_objs): New test
4130         for "ao".
4131
4132         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4133         (main): Test GetObjs.
4134
4135         * glib/examples/statemachine/Makefile.am:
4136         * glib/examples/statemachine/sm-marshal.list:
4137         * glib/examples/statemachine/statemachine-client.c:
4138         * glib/examples/statemachine/statemachine-server.c:
4139         * glib/examples/statemachine/statemachine-server.xml:
4140         * glib/examples/statemachine/statemachine.c:
4141         * glib/examples/statemachine/statemachine.h:
4142         * glib/examples/statemachine/statemachine.xml:
4143
4144         New example.
4145
4146         * glib/examples/example-service.c (main): Move invocation
4147         of dbus_g_object_type_install_info earlier, to emphasize it
4148         should only be done once.
4149
4150         * glib/examples/example-signal-emitter.c (main): Ditto.
4151
4152         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4153
4154         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4155         (dbus_gvalue_marshal): Update prototypes.
4156
4157         * glib/dbus-gvalue.c: Update all marshalling functions to take
4158         const GValue instead of GValue.
4159         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4160         types.
4161         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4162         change.
4163         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4164         Return a newly-allocated string.
4165         (demarshal_proxy, demarshal_object_path, demarshal_object)
4166         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4167         we get the wrong types from message.
4168         (get_type_demarshaller): New function, extracted from
4169         dbus_gvalue_demarshal.
4170         (demarshal_collection): New function, demarshals generic
4171         collection.
4172         (dbus_gvalue_demarshal): Just invoke result of
4173         get_type_demarshaller.  Throw error if we don't have one.
4174         (marshal_garray_basic): Abort on OOM.
4175         (get_type_marshaller): New function, extracted from
4176         dbus_gvalue_marshal.
4177         (collection_marshal_iterator, marshal_collection): New functions;
4178         implements generic marshalling for an iteratable specialized
4179         collection.
4180         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4181
4182         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4183         G_TYPE_STRING.
4184         (ptrarray_value_from_gvalue): Ditto.
4185         (ptrarray_append, ptrarray_free): New functions.
4186         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4187         (slist_append, slist_end_append, slist_free): New functions.
4188         (dbus_g_type_specialized_builtins_init): Add append fuctions
4189         for GPtrArray and GSList.  Register GSList.
4190         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4191
4192         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4193         New.
4194         (dbus_g_type_specialized_collection_init_append)
4195         (dbus_g_type_specialized_collection_append)
4196         (dbus_g_type_specialized_collection_end_append): Prototype.
4197         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4198         end_append_func.
4199
4200         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4201         (dbus_g_type_specialized_collection_append) 
4202         (dbus_g_type_specialized_collection_end_append): New functions.
4203         (dbus_g_type_map_value_iterate): Take const GValue.
4204         (dbus_g_type_collection_value_iterate): Ditto.
4205
4206         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4207         _dbus_gvalue_utils_test.
4208         
4209         * glib/dbus-gtest.h: Prototype it.
4210
4211         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4212         using uninitialized owner_list.
4213         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4214         public API.
4215         (dbus_g_proxy_end_call_internal): Update to use error set
4216         from dbus_gvalue_demarshal instead of setting it here.
4217         (dbus_g_proxy_begin_call): Move return_if_fail here.
4218
4219         * glib/dbus-gobject.c (write_interface): Update for
4220         dbus_gtype_to_signature returning new string.
4221
4222         * configure.in: Add glib/examples/statemachine.
4223
4224 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4225
4226         * configure.in: Add a configure option, --with-console-auth-dir
4227         
4228         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4229         new setting.  Patch from Kay Sievers.
4230
4231 2005-07-06  Colin Walters  <walters@verbum.org>
4232
4233         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4234         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4235         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4236         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4237         Delete in favor of dbus_g_proxy_begin_call and
4238         dbus_g_proxy_cancel_call.
4239         (DBusGProxyCall, DBusGProxyCallNotify): New.
4240         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4241         data, and destroy function.  This replaces
4242         dbus_g_pending_call_set_notify.
4243         (dbus_g_proxy_cancel_call): Prototype.
4244         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4245
4246         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4247         pending_calls map.
4248         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4249         internal proxy for calls to the bus. Remove
4250         pending_nameowner_calls, now the internal proxy keeps track.
4251         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4252         pending_nameowner_calls.
4253         (got_name_owner_cb): Update prototype, and use
4254         dbus_g_proxy_end_call.
4255         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4256         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4257         favor of using internal proxy.
4258         (dbus_g_proxy_manager_unregister): Update to use
4259         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4260         (dbus_g_proxy_init): Initialize pending calls map.
4261         (dbus_g_proxy_constructor): New.
4262         (dbus_g_proxy_class_init): Add get/set property functions,
4263         constructor, and add NAME, PATH, and INTERFACE properties.
4264         (cancel_pending_call): New function.
4265         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4266         cancel them.
4267         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4268         (GPendingNotifyClosure): New structure.
4269         (d_pending_call_notify, d_pending_call_free): Moved here from
4270         dbus-glib.c.
4271         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4272         ordering.
4273         (manager_begin_bus_call): New internal function for talking to
4274         internal bus proxy.
4275         (dbus_g_proxy_new): Construct object using GObjet properties.
4276         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4277         Create closure of same, and insert call into map of pending calls.
4278         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4279         call.  Look up pending call in current set.  Remove it when we've
4280         completed.
4281         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4282         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4283         and destroy function directly.
4284         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4285         (dbus_g_proxy_call): Invoke with NULL callback.
4286         (dbus_g_proxy_cancel_call): New function, replaces
4287         dbus_g_pending_call_cancel.
4288
4289         * glib/dbus-gparser.c (validate_signature): Fix call to
4290         dbus_set_g_error.
4291
4292         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4293         New quark for attaching metadata to GType.
4294         (info_hash): Delete.
4295         (lookup_object_info): Look up using quark.
4296         (dbus_g_object_type_install_info): Check that a type is classed,
4297         not that it's an object.  Also just install type data using quark
4298         instead of using global hash.
4299
4300         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4301         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4302         (GPendingNotifyClosure): Delete.
4303         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4304         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4305
4306         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4307         client method generation until we can fix it...
4308         
4309         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4310         (load_from_service_thread_func): Ditto.
4311
4312         * tools/dbus-names-model.c (struct NamesModel): Hold
4313         DBusGProxyCall.
4314         (have_names_notify): Update prototype, use
4315         dbus_g_proxy_cancel_call.
4316         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4317
4318         * tools/dbus-monitor.c (filter_func): Update for print_message
4319         API change.
4320
4321         * test/glib/test-dbus-glib.c: Add more tests for async
4322         invocations.  Update many begin_call/end_call pairs to just use
4323         dbus_g_proxy_call.
4324
4325         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4326         allows us to dump print-introspect.c.
4327
4328         * tools/dbus-print-message.h (print_message): Add literal argument
4329         to print_message which is intended to allow printing arguments without
4330         metadata like "string=".
4331
4332         * tools/dbus-print-message.c (print_iter): Add literal argument.
4333         (print_message): Allow printing string messages literally.
4334
4335 2005-07-05  Colin Walters  <walters@verbum.org>
4336
4337         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4338         Remove value refcount leak, original patch from Jorn Baayen
4339         <jorn@openedhand.com>.  Also remove useless extra value in favor
4340         of prepending to value array directly.
4341
4342 2005-07-02  Colin Walters  <walters@verbum.org>
4343
4344         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4345
4346 2005-07-01  Colin Walters  <walters@verbum.org>
4347
4348         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4349         
4350         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4351         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4352         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4353         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4354
4355 2005-06-30  Colin Walters  <walters@verbum.org>
4356
4357         * test/glib/test-dbus-glib.c:
4358         * test/glib/test-service-glib.c:
4359         * test/glib/test-service-glib.xml: Update tests for new error
4360         setting bits, also add async tests (patch from Ross Burton).
4361
4362         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4363         DBUS_GLIB_THREADS_LIBS.
4364
4365         * glib/dbus-gproxy.c (get_name_owner)
4366         (dbus_g_pending_call_end_valist): Ditto.
4367
4368         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4369         domain (GQuark) to DBusGErrorInfo.  
4370         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4371         quark in error_metadata.  Take message interface as default
4372         error message interface.
4373         (gerror_to_dbus_error_message): Pass message interface.
4374         (dbus_set_g_error): Resurrected.
4375         (dbus_g_error_info_free): New function.
4376         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4377         of _peek to actually create the object class if it hasn't been
4378         created yet.
4379         (dbus_g_error_domain_register): New function.
4380
4381         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4382
4383         * glib/dbus-gparser.c (validate_signature): Ditto.
4384
4385         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4386         (dbus_g_error_domain_register): Prototype.
4387
4388         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4389         Update tests.
4390
4391 2005-06-29  Colin Walters  <walters@verbum.org>
4392
4393         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4394         DBUS_TYPE_G_OBJECT_PATH.
4395
4396         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4397         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4398         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4399         (dbus_g_object_path_get_g_type): New function.
4400         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4401         to DBUS_TYPE_G_OBJECT_PATH by default.
4402         (demarshal_proxy): Remove unused name variable.
4403         (demarshal_object_path, marshal_object_path): New functions.
4404         (demarshal_proxy_array, marshal_proxy_array): Delete.
4405         
4406         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4407         DBUS_TYPE_G_OBJECT_PATH to char *.
4408         (dbus_g_type_get_lookup_function): Map builtin
4409         DBUS_TYPE_G_OBJECT_PATH.
4410
4411         * test/glib/test-dbus-glib.c
4412         * test/glib/test-service-glib.c (my_object_objpath): 
4413         Adapt tests to new object path marshalling.
4414
4415 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4416
4417         * configure.in: force check for Python >= 2.4
4418
4419 2005-06-29  Colin Walters  <walters@verbum.org>
4420         
4421         Patch from Ross Burton <ross@openedhand.com>
4422         
4423         * glib/dbus-gobject.c (invoke_object_method): Unset object
4424         value in all cases, not only in async case.
4425
4426 2005-06-29  Colin Walters  <walters@verbum.org>
4427
4428         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4429         name_call for keeping track of any outgoing GetNameOwner call.
4430         Also add for_owner and associated.
4431         (struct _DBusGProxyManager): Add owner_names, which is hash table
4432         that maps a base name to a list of names it owns (that we're
4433         interested in).  Add pending_nameowner_calls which is a list of
4434         all outstanding GetNameOwner; avoids us having to iterate over
4435         every proxy.  Add unassociated_proxies which keeps track of name
4436         proxies with no associated name owner.
4437         (dbus_g_proxy_manager_unref): Destroy owner_names.
4438         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4439         name refcounts.
4440         (find_name_in_info, name_owner_foreach)
4441         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4442         (dbus_g_proxy_manager_monitor_name_owner)
4443         (dbus_g_proxy_manager_unmonitor_name_owner)
4444         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4445         New functions; they manipulate the owner_names mapping.
4446         (got_name_owner_cb): New function.
4447         (get_name_owner): New function, extracted from
4448         dbus_g_proxy_new_for_name_owner.
4449         (dbus_g_proxy_manager_register): For now we need to keep track of
4450         all NameOwnerChanged.  Also if the proxy is for a name, if we
4451         don't already know the name owner, queue a new GetNameOwner
4452         request and add it to our list of unassociated proxies.  Otherwise
4453         inc the refcount.
4454         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4455         cancel any pending GetNameOwner call, etc.
4456         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4457         the owner_names mapping to look up the current names for the
4458         signal source, and dispatch to any proxies for that name.
4459         (dbus_g_proxy_new): Initialize new members.
4460         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4461         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4462         (dbus_g_pending_call_end_valist): New function, extracted from
4463         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4464         but want to use the GLib infrastructure.  Also note how many
4465         arguments in reply were over.
4466         (dbus_g_pending_call_end): New function, just call
4467         dbus_g_pending_call_end_valist.
4468         (dbus_g_proxy_end_call_internal): Just call
4469         dbus_g_pending_call_end_valist.
4470
4471         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4472         of builtin marshaller for STRING_STRING_STRING.
4473
4474         * test/glib/test-dbus-glib.c: 
4475         * test/glib/test-service-glib.c:
4476         * test/glib/test-service-glib.xml:
4477         Extend tests to cover name proxies, destruction of owner proxies,
4478         etc.
4479         
4480         * glib/examples/example-signal-recipient.c
4481         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4482         
4483         * tools/dbus-send.c (main): Print D-BUS error name in addition
4484         to message.
4485
4486 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4487
4488         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4489         cmessage_function_handler): Patch from 
4490         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4491         by using the Py_GILState_Ensure/Release to synchronize with the
4492         python runtime.
4493         
4494 2005-06-28  Ray Strode  <rstrode@redhat.com>
4495
4496         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4497         babysitter helper process on last unref, bug #2813.
4498
4499 2005-06-27  Colin Walters  <walters@verbum.org>
4500
4501         * test/glib/test-dbus-glib.c: 
4502         * test/glib/test-service-glib.c:
4503         * test/glib/test-service-glib.xml:
4504         Test hash table signal emitting.
4505
4506         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4507         types to their fundamental basis types, since this is what
4508         marshallers operate on.  Also add an entry for VOID__BOXED.
4509         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4510
4511 2005-06-26  Havoc Pennington  <hp@redhat.com>
4512
4513         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4514         from Don Park
4515
4516 2005-06-26  Colin Walters  <walters@verbum.org>
4517
4518         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4519         (dbus_g_error_set): New public function from its ashes; used by
4520         both service-side method implementation and GLib bindings
4521         internals.
4522         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4523         (_dbus_glib_test): Add some tests.
4524
4525         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4526
4527         * test/glib/test-service-glib.c (my_object_throw_error): Use
4528         dbus_g_error_set.
4529
4530         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4531         errors thrown by dbus_g_error_set.
4532
4533         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4534
4535         * glib/dbus-gparser.c (validate_signature): Ditto.
4536
4537         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4538         (dbus_g_proxy_end_call_internal): Ditto.
4539
4540         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4541         converts DBUS_ERROR_x to DBUS_GERROR_x.
4542         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4543
4544         * doc/TODO: Remove error TODO.
4545
4546         * doc/dbus-tutorial.xml: Update with documentation about error
4547         handling.
4548
4549         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4550         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4551         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4552
4553 2005-06-22  Colin Walters  <walters@verbum.org>
4554         
4555         Patch from Ross Burton <ross@openedhand.com>
4556
4557         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4558
4559 2005-06-20  Colin Walters  <walters@verbum.org>
4560
4561         * configure.in: Add glib/examples.
4562
4563         * glib/Makefile.am: Add examples/
4564
4565         * glib/examples/.cvsignore
4566         * glib/examples/Makefile.am
4567         * glib/examples/example-client.c
4568         * glib/examples/example-service.c
4569         * glib/examples/example-service.xml
4570         * glib/examples/example-signal-emitter.c
4571         * glib/examples/example-signal-emitter.xml
4572         * glib/examples/example-signal-recipient.c:
4573         New files; GLib binding examples, ported from
4574         python/examples.
4575
4576 2005-06-20  Colin Walters  <walters@verbum.org>
4577
4578         * dbus/dbus-glib.h: 
4579         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4580         dbus_g_proxy_call.
4581
4582         * glib/dbus-binding-tool-glib.c: 
4583         * doc/dbus-tutorial.xml: 
4584         * test/glib/test-dbus-glib.c: Update for rename.
4585         
4586 2005-06-20  Colin Walters  <walters@verbum.org>
4587
4588         Patch suggested by Ross Burton <ross@openedhand.com>
4589
4590         * glib/dbus-gobject.c (export_signals): Free signal name.
4591         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4592         memory leak.  Add a bit of documentation.
4593         (dbus_g_method_return_error): Free context, and note we do
4594         so.
4595
4596 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4597
4598         * dbus/dbus-glib.h:
4599         * glib/dbus-gobject.c:
4600         * glib/dbus-gproxy.c:
4601         * glib/dbus-gvalue.c: Predeclare structs as 
4602         typedef struct _Something Something instead of 
4603         typedef struct Something Something, so we can 
4604         redeclare the prototypes. Other GNOME libraries 
4605         do this already.
4606
4607 2005-06-17  Colin Walters  <walters@verbum.org>
4608
4609         * tools/dbus-names-model.c (have_names_notify): Fix call
4610         to dbus_g_proxy_end_call.
4611         
4612 2005-06-17  Colin Walters  <walters@verbum.org>
4613
4614         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4615         spew warnings if we get malformed remote signals.
4616
4617         * glib/dbus-gobject.c (propsig_iterate): New function.
4618         (lookup_object_info): New function, extracted from
4619         lookup_object_and_method.
4620         (introspect_properties, introspect_signals): Delete; these
4621         are merged into write_interface.
4622         (write_interface): Write out signals and properties here;
4623         dump the org.gtk.object stuff and use the interface given
4624         in the introspection data blob.  Also fix up property XML.
4625         (lookup_values): New function.
4626         (introspect_interfaces): Gather a mapping from interface to a
4627         list of its methods, signals, and properties, then write out
4628         each interface.
4629         (lookup_object_and_method): Use lookup_object_info.
4630         (struct DBusGSignalClosure): Add interface.
4631         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4632         we can just use the constant data.
4633         (dbus_g_signal_closure_finalize): Don't free signal name.
4634         (signal_emitter_marshaller): Use interface from signal closure.
4635         (export_signals): Only export signals mentioned in introspection
4636         blob.
4637         (dbus_g_connection_register_g_object): Warn if we have no
4638         introspection data for an object.
4639         (funcsig_equal): Remove unused variable.
4640         (dbus_g_object_register_marshaller): Take varargs instead of
4641         list.
4642         (dbus_g_object_register_marshaller_array): New function,
4643         extracted from old dbus_g_object_register_marshaller.
4644
4645         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4646         signals and property data.
4647         (write_quoted_string): New function, extracted from generate_glue.
4648         (generate_glue): Write signals and properties to introspection
4649         blob.
4650
4651         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4652         exported_signals and exported_properties.
4653         (dbus_g_object_register_marshaller): Update prototype.
4654         (dbus_g_object_register_marshaller_array): Prototype.
4655         
4656         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4657
4658         * test/glib/test-service-glib.c: Add new test signals and method
4659         to emit them.
4660
4661         * test/glib/test-service-glib.xml: Add some test signals.
4662
4663         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4664         and my-object-marshal.h
4665         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4666         my-object-marshal.c.
4667         (my-object-marshal.c, my-object-marshal.h): Implement.
4668
4669         * test/glib/.cvsignore: Update.
4670
4671         * doc/TODO: Remove two GLib TODO items fixed by this
4672         patch.
4673
4674 2005-06-16  Colin Walters  <walters@verbum.org>
4675
4676         * doc/TODO: Update for GLib bindings.
4677         
4678 2005-06-16  Colin Walters  <walters@verbum.org>
4679
4680         * glib/dbus-binding-tool-glib.c:
4681         * glib/dbus-gobject.c:
4682         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4683         from Ross Burton, for his GLib bindings work.
4684
4685 2005-06-16  Colin Walters  <walters@verbum.org>
4686
4687         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4688         to iterate instead of walking to G_TYPE_INVALID.
4689
4690         Patch based on a patch from Ryan Gammon.
4691
4692 2005-06-16  Colin Walters  <walters@verbum.org>
4693
4694         * bus/bus.c (bus_context_new): Set parser to NULL
4695         after we unref it (Patch from Chris Boscolo, #2174).
4696         
4697 2005-06-16  Colin Walters  <walters@verbum.org>
4698
4699         * python/dbus_bindings.pyx.in: Import size_t,
4700         __int64_t, __uint64_t, and __signed.
4701
4702         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4703         Define cmsg struct, output it.
4704         (_dbus_read_credentials_unix_socket):
4705         Use cmsg struct.
4706         
4707         Patch from Joe Markus Clarke for FreeBSD support.
4708         
4709 2005-06-16  Colin Walters  <walters@verbum.org>
4710
4711         * tools/dbus-send.c (append_array): Use strtok.
4712         (append_dict): New function.
4713         (type_from_name): New function, extracted from main.
4714         (main): Handle sending dicts.
4715
4716         * tools/dbus-print-message.c (print_iter): Print dict
4717         entries.
4718         
4719 2005-06-16  Colin Walters  <walters@verbum.org>
4720
4721         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4722         values as the empty string (#2948).
4723         
4724 2005-06-16  Colin Walters  <walters@verbum.org>
4725
4726         * dbus/Makefile.am:
4727         * mono/doc/Makefile.am:
4728         * test/glib/Makefile.am:
4729
4730         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4731
4732 2005-06-16  Colin Walters  <walters@verbum.org>
4733
4734         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4735         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4736
4737         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4738         Increment pointer after swapping fixed array.  Add assertion
4739         for array length.
4740                 
4741 2005-06-15  Colin Walters  <walters@verbum.org>
4742
4743         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4744         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4745         
4746 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4747
4748         * NEWS: Update to 0.34
4749
4750 2005-06-15  David Zeuthen  <davidz@redhat.com>
4751
4752         * configure.in (LT_CURRENT): Revert back to 1 as the library
4753         hasn't changed and we've certainly not committed to protocol
4754         stability yet.  All this does is to break ABI. See commit note
4755         from hp@redhat.com 2005-05-05 for details.
4756         
4757 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4758
4759         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4760         (_dbus_connection_run_builtin_filters): New method
4761         (dbus_connection_dispatch): Run the builtin filters which in turn
4762         runs the peer filter which handles Ping messages.
4763
4764         * doc/TODO: 
4765          - Ping isn't handled: This patch fixes it
4766          
4767          - Add a test case for the Ping message: added TODO item
4768
4769 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4770
4771         * dbus/dbus-message.c:
4772         (dbus_message_has_path): New method
4773         (dbus_message_has_interface): New method
4774         (dbus_message_has_member): New method
4775
4776         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4777         New method
4778
4779         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4780         the keyring directory is private to the user
4781
4782         * doc/TODO:
4783          - The convenience functions in dbus-bus.h should perhaps have
4784          the signatures that they would have if they were autogenerated
4785          stubs. e.g. the acquire service function. We should also evaluate
4786          which of these functions to include, in light of the fact that
4787          GLib/Qt native stubs will probably also exist.: Punted
4788
4789          - add dbus_message_has_path(), maybe has_member/interface:
4790          fixed in this patch
4791
4792          - in dbus-keyring.c, enforce that the keyring dir is not
4793          world readable/writable: Fixed in this patch
4794
4795 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4796
4797         * dbus/dbus-marshal-validate.h: Added a new validation
4798         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4799         out of memory errors when validating signitures
4800
4801         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4802         in places where we previously used DBUS_VALID and a FALSE return 
4803         value to indicate OOM
4804         
4805         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4806         Use a stack to track the number of elements inside containers.  The 
4807         stack values are then used to validate that dict entries have only two
4808         elements within them.
4809         (validate_body_helper): check the reason for failure when validating
4810         varients
4811         
4812         * dbus/dbus-message.c (load_message): use 
4813         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4814         DBUS_VALID and a FALSE return value to indicate OOM
4815
4816         * doc/TODO: remove "- validate dict entry number of fields" as this
4817         patch fixes it
4818
4819 2005-06-14  David Zeuthen  <davidz@redhat.com>
4820
4821         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4822         watches (if applicable) and add new watches
4823
4824         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4825         (main): Setup SIGIO signal handler if using D_NOTIFY
4826
4827         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4828
4829         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4830         (merge_included): Also merge conf_dirs list
4831         (bus_config_parser_unref): Clear conf_dirs list
4832         (include_dir): Add directory to conf_dirs list
4833         (bus_config_parser_get_conf_dirs): New function
4834
4835         * bus/dir-watch.[ch]: New files
4836
4837         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4838
4839         * configure.in: Add checks for D_NOTIFY on Linux
4840
4841 2005-06-14  Colin Walters  <walters@verbum.org>
4842
4843         * glib/dbus-binding-tool-glib.c:
4844         * glib/dbus-gobject.c:
4845         * glib/dbus-gvalue.c: Fix indentation and brace style.
4846         
4847 2005-06-14  Ross Burton <ross@openedhand.com>.
4848
4849         * glib/dbus-glib.h: Make DBusGMethodInvocation
4850         a private structure.  Rearrange prototypes a bit.
4851         
4852         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4853         documentation for first_arg_type.
4854         
4855         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4856         here, add documentation.  Move dbus_g_method_return
4857         and dbus_g_method_return_error into public API
4858         section.
4859
4860 2005-06-14  Colin Walters  <walters@verbum.org>
4861
4862         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4863         Add missing return statements, noticed by Ross Burton.
4864         
4865 2005-06-13  Ross Burton <ross@openedhand.com>.
4866
4867         * glib/dbus-gobject.c: Handle errors on message
4868         demarshalling by sending error message back.
4869         * glib/dbus-gvalue.c: Initialize return variables.
4870
4871 2005-06-13  Colin Walters  <walters@verbum.org>
4872
4873         * glib/Makefile.am: Fix thinko in last patch.
4874
4875 2005-06-13  Colin Walters  <walters@verbum.org>
4876
4877         * glib/Makefile.am: Move dbus-gtype-specialized.c
4878         and dbus-gtype-specialized.h into a _HEADERS variable,
4879         install them.
4880
4881 2005-06-12  Colin Walters  <walters@verbum.org>
4882
4883         Async signals and various bugfixes and testing by
4884         Ross Burton <ross@openedhand.com>.
4885
4886         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4887         (dbus_gvalue_genmarshal_name_from_type)
4888         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4889         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4890         (dbus_g_value_types_init, dbus_gtype_from_signature)
4891         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4892         (dbus_gtypes_from_arg_signature): New function prototypes.
4893         (dbus_gvalue_demarshal): Take context and error arguments.
4894         (dbus_gvalue_demarshal_variant): New function.
4895         (dbus_gvalue_demarshal_message): New function.
4896         (dbus_gvalue_store): Delete.
4897
4898         * glib/dbus-gvalue.c:
4899
4900         File has been almost entirely rewritten; now we special-case
4901         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4902         hash tables correctly, etc.  Full support for recursive values
4903         is not yet complete.
4904
4905         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4906         argument of signal to G_TYPE_POINTER since we now pass a
4907         structure.
4908         (lookup_g_marshaller): Delete in favor of
4909         _dbus_gobject_lookup_marshaller.
4910         (marshal_dbus_message_to_g_marshaller): Use
4911         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4912         to handle remote signal callbacks.
4913         (dbus_g_proxy_new_from_proxy): New function; creates a new
4914         DBusGProxy by copying an existing one.
4915         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4916         (dbus_g_proxy_get_path): New functions.
4917         (dbus_g_proxy_marshal_args_to_message): New function;
4918         factored out of existing code.
4919         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4920         from a varargs array.
4921         (dbus_g_proxy_begin_call_internal): New function.
4922         (dbus_g_proxy_end_call_internal): New function.
4923         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4924         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4925         after collecting args into value array.
4926         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4927         invoke dbus_g_proxy_end_call_internal.
4928         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4929         end_call_internal.
4930         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4931         types.
4932         (array_free_all): New function.
4933         (dbus_g_proxy_add_signal): Take GTypes.
4934
4935         * glib/dbus-gobject.h:
4936         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4937         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4938         Prototype.
4939
4940         * glib/dbus-gobject.c: Add a global marshal_table hash which
4941         stores mappings from type signatures to marshallers.  Change lots
4942         of invocations of dbus_gtype_to_dbus_type to
4943         dbus_gtype_to_signature.
4944         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4945         (introspect_signals): Fix test for query.return_type.
4946         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4947         (invoke_object_method): Many changes.  Handle asynchronous
4948         invocations.  Convert arguments with
4949         dbus_gvalue_demarshal_message.  Handle errors.  Use
4950         DBusSignatureIter instead of strlen on args. Handle all arguments
4951         generically.  Special-case variants.
4952         (dbus_g_method_return, dbus_g_method_return_error): New function.
4953         (DBusGSignalClosure): New structure, closes over signal
4954         information.
4955         (dbus_g_signal_closure_new): New function.
4956         (dbus_g_signal_closure_finalize): New function.
4957         (signal_emitter_marshaller): New function; is special marshaller
4958         which emits signals on bus.
4959         (export_signals): New function; introspects object signals and
4960         connects to them.
4961         (dbus_g_object_type_install_info): Take GType instead of
4962         GObjectClass.
4963         (dbus_g_connection_register_g_object): Invoke export_signals.
4964         (dbus_g_connection_lookup_g_object): New function.
4965         (DBusGFuncSignature) New structure; used for mapping type
4966         signatures to marshallers.
4967         (funcsig_hash): New function; hashes DBusGFuncSignature.
4968         (funcsig_equal): New function; compares DBusGFuncSignature.
4969         (_dbus_gobject_lookup_marshaller): New function.
4970         (dbus_g_object_register_marshaller): New function; used to
4971         register a marshaller at runtime for a particular signature.
4972
4973         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4974
4975         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4976         which notes a server method implementation should be
4977         asynchronous.
4978
4979         * glib/dbus-binding-tool-glib.c
4980         (dbus_binding_tool_output_glib_server): Call
4981         dbus_g_value_types_init.
4982         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4983         variants specially.
4984         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4985         of a lookup function.
4986         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4987         (write_untyped_out_args): New method; write output arguments.
4988         (write_formal_declarations_for_direction): Function for
4989         writing prototypes.
4990         (write_formal_parameters_for_direction): Function for
4991         writing implementations.
4992         (write_typed_args_for_direction): Function for writing
4993         arguments prefixed with GTypes.
4994         (write_async_method_client): Write out async version
4995         of method.
4996
4997         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4998         (dbus_g_type_get_marshal_name): Move mapping from GType
4999         to marshal name into here.
5000         (dbus_g_type_get_c_name): Move into here.
5001         (compute_marshaller): Convert signature to type with
5002         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5003         (compute_marshaller_name): Ditto.
5004         (compute_marshaller): Handle async signal annotations.
5005         (gather_marshallers): Return if we don't have a known
5006         prefix.
5007         (generate_glue): Collect introspection blob here, and
5008         write all of the blob at the end.  This allows an object
5009         with multiple interfaces to work.
5010         Mark async methods in introspection blob.
5011
5012         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5013         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5014         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5015
5016         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5017         avoids people accidentally using DBUS_TYPE_* which should
5018         not be necessary anymore.
5019         Do include dbus-gtype-specialized.h, which are utilities
5020         for GLib container types.
5021         Add various #defines for types such as
5022         DBUS_TYPE_G_BOOLEAN_ARRAY.
5023         (DBusGValueIterator, DBusGValue): Define, not fully used
5024         yet.
5025         (dbus_g_value_get_g_type): Type for recursive value.
5026         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5027         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5028         (dbus_g_value_free): Prototypes.
5029         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5030         (dbus_g_proxy_set_interface): Prototype.
5031         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5032         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5033         types.
5034         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5035         Accessors.
5036         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5037         doing async invocations.
5038         (dbus_g_method_return, dbus_g_method_return_error):
5039         Prototypes.
5040         * doc/dbus-tutorial.xml: Update GLib section.
5041         
5042         * tools/dbus-viewer.c (load_child_nodes): Update
5043         for new invocation type of dbus_g_proxy_end_call.
5044         (load_from_service_thread_func): Ditto.
5045
5046         * tools/print-introspect.c (main): Ditto.
5047
5048         * tools/dbus-names-model.c (have_names_notify)
5049         (names_model_reload, names_model_set_connection)
5050         Use GTypes.
5051
5052         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5053         needed since Python bindings use GLib bindings.
5054
5055         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5056         Add --prefix argument.
5057
5058         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5059         unneeded --ignore-unsupported arg.
5060         
5061         * test/glib/test-service-glib.c: 
5062         * test/glib/test-service-glib.xml:
5063         * test/glib/test-dbus-glib.c: Add many more tests.
5064
5065 2005-06-06  David Zeuthen  <davidz@redhat.com>
5066
5067         * doc/TODO: Add item about need to remove deprecated functions.
5068
5069         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5070
5071         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5072         to repair the ABI which was broken with the last commit.
5073
5074 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5075
5076         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5077         (dbus_connection_disconnect): renamed to dbus_connection_close 
5078         for API symmetry with dbus_connection_open
5079         (_dbus_connection_open_internal): 
5080         s/dbus_connection_disconnect/dbus_connection_close
5081
5082         * dbus/dbus-bus.c (dbus_bus_get):
5083         s/dbus_connection_disconnect/dbus_connection_close
5084
5085         * bus/connection.c (bus_connections_unref, 
5086         bus_connections_setup_connection, bus_connections_expire_incomplete):
5087         s/dbus_connection_disconnect/dbus_connection_close
5088
5089         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5090         kill_client_connection_unchecked, check_hello_connection):
5091         s/dbus_connection_disconnect/dbus_connection_close
5092
5093         * bus/bus.c (new_connection_callback):
5094         s/dbus_connection_disconnect/dbus_connection_close
5095
5096         * tools/dbus-send.c (main):
5097         s/dbus_connection_disconnect/dbus_connection_close
5098
5099         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5100         s/dbus_connection_disconnect/dbus_connection_close
5101         
5102         * test/test-service.c (path_message_func, filter_func):
5103         s/dbus_connection_disconnect/dbus_connection_close
5104         
5105         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5106         
5107 2005-05-25  Colin Walters  <walters@verbum.org>
5108
5109         * dbus/dbus-protocol.h: Move various bus service #defines such
5110           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5111           dbus/dbus-shared.h.
5112         * dbus/dbus-shared.h: Various defines moved here.
5113         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5114
5115 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5116
5117         * python/__init__.py: Python bindings deserve a minor version
5118         update.  Upped to (0, 40, 2)
5119
5120 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5121
5122         * python/decorators.py: add explicitly_pass_message decorator
5123         for passing in the dbus message as keyword for edge case signal
5124         handling
5125
5126         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5127         to conform with what dbus expects for match rules
5128         (SignalMatchRule.execute): add the dbus message as a keyword
5129         if the signal handler has requested it
5130
5131         * python/examples/example/signal-recipient.py: added some more
5132         examples on how to hook up to signals
5133
5134 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5135
5136         * python/decorators.py: import dbus_bindings
5137
5138         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5139         SignalMatchNode): new classes that implement wildcard signal
5140         callback matching using a tree lookup. Heavily modified from a
5141         patch sent by Celso Pinto (fd.o bug #3241)
5142
5143         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5144         use new match classes to handle signals.
5145
5146 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5147         
5148         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5149
5150 2005-05-18  Havoc Pennington  <hp@redhat.com>
5151
5152         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5153         gettext. Not really worth requiring yet perhaps, but any
5154         production quality 1.0 would require it so we should go ahead and
5155         get things set up. We do have a couple token calls to
5156         bindtextdomain in the code already.
5157
5158 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5159
5160         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5161         when using recursive g_main_loops
5162
5163         * python/_dbus.py (class Bus): add the ProxyObjectClass
5164         alias for ProxyObject to make it easier for the Twisted 
5165         networking framework to integrate dbus.
5166
5167         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5168         alias for ProxyMethod to make it easier for the Twisted 
5169         networking framework to integrate dbus. 
5170
5171 2005-05-11  Ross Burton  <ross@openedhand.com>
5172
5173         * glib/dbus-glib-tool.c: Add --prefix argument.
5174         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5175         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5176         Add prefix argument.
5177         (generate_glue): Pass prefix argument down.
5178         (dbus_binding_tool_output_glib_server): Pass prefix to
5179         glib-genmarshal.
5180         
5181 2005-05-11  Colin Walters  <walters@verbum.org>
5182
5183         * tools/dbus-send.c (append_array): New function.
5184         (append_arg): Broken out from main.
5185         (main): Add cheesy hack to send arrays and variants.
5186         (usage): Update.
5187         * tools/dbus-print-message.c (print_iter): Broken out
5188         from main.
5189
5190 2005-05-11  Colin Walters  <walters@verbum.org>
5191
5192         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5193         New function, returns signature string for signature iter.
5194         * dbus/dbus-signature.h: Prototype it.
5195         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5196         New function, returns signature string for message iter.
5197         (dbus_message_iter_get_array_len): New function, returns
5198         length of array.
5199         (dbus_message_iter_get_fixed_array): Fix assertion; this
5200         function should be used when the iter is pointing to the
5201         contents of an array
5202         * dbus/dbus-message.h: Prototypes.
5203         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5204         New function; returns length of an array.
5205         * dbus/dbus-marshal-recursive.h: Prototype it.
5206         
5207 2005-05-11  Colin Walters  <walters@verbum.org>
5208
5209         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5210         compilation error.
5211         
5212 2005-05-08  Havoc Pennington  <hp@redhat.com>
5213
5214         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5215         daemon's pid, not the parent's pid, to the file descriptor.
5216         Reported by Taj Morton.
5217
5218 2005-05-05  Havoc Pennington  <hp@redhat.com>
5219
5220         * configure.in (LT_*): add notes on how the libtool versioning
5221         works to save thinking. Increment soname to indicate protocol
5222         breakage (though really the library interface hasn't changed I
5223         guess)
5224
5225         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5226         verify the GUID received from server matches what we were
5227         expecting, if we had an expectation
5228
5229         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5230         (_dbus_auth_get_guid_from_server): new function
5231         (send_begin): parse the OK args
5232
5233         * doc/dbus-specification.xml: add GUID to the auth protocol
5234
5235 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5236
5237         * Fix my name in previous changelog ;)
5238
5239         * python/proxies.py (ProxyObject.__getattr__): add further patch
5240         from Anthony Baxter to throw an AttributeError when python 
5241         __special__ functions are called instead of marshling them over 
5242         the bus (Bug#1685 comment 3).
5243
5244 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5245
5246         * python/Makefile.am: changed to use pyexecdir for the binding
5247         shared libraries (Bug#2494)
5248
5249         * python/exceptions.py: bring exceptions over from the bindings
5250         so they can be used in applications (Bug#2036)
5251         Make all exceptions derive from DBusException
5252
5253         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5254         of classes so that print obj doesn't throw an exception (Bug #1685)
5255
5256 2005-05-03  Ross Burton  <ross@openedhand.com>
5257
5258         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5259         Return if we get an error during registration.  Set up a
5260         weak reference on object to unregister if object is destroyed.
5261         (unregister_gobject): New function.
5262         
5263 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5264
5265         * python/dbus_bindings.pyx.in: 
5266         - added new type classes for hinting to the marashaler what type 
5267         to send over the wire
5268         - added int16 and uint16 marshalers
5269         - Fixed a bug in the type constants that caused int32 to go out
5270         as uint16 over the wire
5271         * python/dbus.py: split up into different files and renamed _dbus.py
5272         * python/__init__.py, python/_util.py, python/decorators.py, 
5273         python/exceptions.py, python/proxies.py, python/services.py,
5274         python/types.py: new files split off from dbus.py
5275         * python/Makefile.am: Add new files, remove dbus.py and 
5276         install all python files to <python module dir>/dbus
5277         * python/examples/*: Added #!/usr/bin/env python to the top of
5278         every example.  Patch provided by Tatavarty Kalyan
5279
5280 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5281
5282         * NEWS: Update to 0.33
5283
5284 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5285
5286         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5287         method for doing async calls
5288         (_pending_call_notification): New C function for handling pendning call
5289         callbacks
5290         (set_notify): New method for setting pending call notification
5291         
5292         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5293         Async capabilities added to remote method calls
5294         (Sender): class removed
5295         (RemoteService): class removed
5296         (ObjectTree): class removed for now
5297         (RemoteObject): Renamed to ProxyObject
5298         (RemoteMethod): Renamed to ProxyMethod
5299         (method): Decorator added for decorating python methods as dbus methods
5300         (signal): Decorator added for decorating python methods as signal emitters
5301         (ObjectType): Metaclass added for generating introspection data and the
5302         method callback vtable
5303         (Interface): Wrapper class added to wrap objects in a dbus interface
5304         (Object): Uses ObjectType as its metaclass and exports Introspect
5305         of the org.freedesktop.DBus.Introspectable interface
5306         (ValidationException, UnknownMethodException): new exceptions
5307
5308         * python/examples/*: Modified to fit with the new bindings
5309
5310 2005-04-23  Havoc Pennington  <hp@redhat.com>
5311
5312         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5313         reported by Tony Houghton
5314
5315         * test/test-service.c (main): test
5316         dbus_connection_get_object_path_data()
5317
5318         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5319         the exact_match
5320         (_dbus_object_tree_get_user_data_unlocked): new function used by
5321         dbus_connection_get_object_path_data()
5322         (do_register): add assertion test for get_user_data_unlocked
5323         (object_tree_test_iteration): more tests
5324
5325         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5326         new function from Dan Reed to let you get the user data from 
5327         dbus_connection_register_object_path()
5328
5329 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5330
5331         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5332         in numerous places that did not account for the NULL terminator
5333         (signature_from_seed): changed the manual string copy loop to 
5334         just use strcpy instead
5335         make check should now pass
5336
5337 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5338
5339         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5340         so that it allows messages that are not signals to pass in 
5341         NULL as the interface.
5342
5343 2005-04-18  David Zeuthen  <davidz@redhat.com>
5344
5345         * glib/dbus-gmain.c (io_handler_destroy_source): 
5346         (timeout_handler_destroy_source, connection_setup_free): 
5347         Also unref the source to avoid memory leaks.
5348
5349 2005-04-13  David Zeuthen  <davidz@redhat.com>
5350
5351         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5352         more reasonable, yet still totally arbitrary, value :-). 
5353
5354 2005-04-13  David Zeuthen  <davidz@redhat.com>
5355
5356         * doc/TODO: Added an "important for 1.0" item about selinux
5357         allow/deny messages
5358
5359 2005-04-13  David Zeuthen  <davidz@redhat.com>
5360
5361         * bus/selinux.c: Add c-file-style to top of file
5362         (log_audit_callback): Don't free the data here anymore
5363         (bus_selinux_check): Don't take spid and tpid since appending
5364         that to auxdata may OOM.
5365         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5366         to the caller if we are OOM by taking an error object.
5367         (bus_selinux_allows_send): -do-
5368
5369         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5370         and bus_selinux_allows_send
5371
5372         * bus/bus.c (bus_context_check_security_policy): Pass error and
5373         pass on OOM thrown by bus_selinux_allows_send()
5374
5375         * bus/services.c (bus_registry_acquire_service): Pass error and
5376         pass on OOM thrown by bus_selinux_allows_acquire_service()
5377
5378 2005-04-13  Havoc Pennington  <hp@redhat.com>
5379
5380         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5381         message at a time to avoid monopolizing the main loop, bug 
5382         #2953 from Benjamin Otte
5383
5384 2005-04-09  Havoc Pennington  <hp@redhat.com>
5385
5386         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5387         possible overlap, fix from Daniel Reed
5388         (fixup_alignment): fix signedness warnings
5389         (_dbus_string_append_unichar): ditto
5390
5391 2005-04-09  Havoc Pennington  <hp@redhat.com>
5392
5393         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5394
5395         * glib/dbus-glib-tool.c (main): fix warning
5396
5397         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5398
5399         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5400         add a new function that can be used in simple applications that
5401         don't have a main loop and are willing to block
5402
5403 2005-04-05  David Zeuthen  <davidz@redhat.com>
5404
5405         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5406
5407         * glib/dbus-gmain.c:
5408         (io_handler_destroy_source): Remove from list of IO handlers
5409         of the ConnectionSetup object
5410         (timeout_handler_destroy_source): -do- for timeout handlers
5411         (io_handler_source_finalized): Don't remove from list since
5412         we now do that in io_handler_destroy_source(). Renamed from
5413         io_handler_source_destroyed
5414         (timeout_handler_source_destroyed): -do- for timeout handlers
5415         (connection_setup_free): It is now safe to iterate over all
5416         IO and timeout handlers as the _destroy_source removes them
5417         from the list synchronously
5418
5419 2005-03-30  Havoc Pennington  <hp@redhat.com>
5420
5421         * configure.in: change check to gtk 2.4
5422
5423         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5424         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5425         to 2.4
5426
5427 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5428
5429         * News: Update 0.32
5430
5431         * HACKING: Fixed realease instructions.  configure.in should be updated to
5432           the next release by the person who made the last release.
5433
5434 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5435
5436         * python/lvalue_cast_post_process.py - removed.  Patch has been
5437           submitted to Pyrex maintainers that fixes gcc4.0 errors
5438
5439         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5440
5441 2005-03-24  Daniel Reed  <n@ml.org>
5442
5443         * tools/Makefile.am: Make print-introspect and
5444         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5445
5446 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5447
5448         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5449
5450         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5451           had in Red Hat packages for a while but for some reason never 
5452           got merged upstream
5453           (_dbus_is_a_number): New checks if a string
5454           can be converted to a number and does the conversion if it can
5455           (_dbus_user_database_lookup): Add check to see if the given username
5456           is a udi.  This allows udi's to be used instead of usernames in the
5457           config file.
5458           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5459           is a gdi.  This allows gdi's to be used instead of groupnames in the
5460           config file.
5461
5462 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5463
5464         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5465           code so that it compiles with gcc4.0
5466
5467         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5468           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5469           results back to dbus_binding.c
5470
5471 2005-03-20  Colin Walters  <walters@verbum.org>
5472
5473         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5474
5475         * configure.in: Require GTK+ 2.6.
5476         
5477 2005-03-20  Colin Walters  <walters@verbum.org>
5478
5479         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5480
5481 2005-03-17  Tom Parker  <palfrey@tevp.net>
5482
5483         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5484         print DBUS_UID_UNSET; instead print passed username.  Also
5485         be sure to actually use gid looked up in cache.
5486         
5487         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5488         for DBUS_GID_UNSET and groupname.
5489
5490 2005-03-17  Colin Walters  <walters@verbum.org>
5491
5492         * bus/print-introspect.c: Move to tools/.
5493         * bus/run-with-tmp-session-bus.sh: Ditto.
5494         
5495         * glib/Makefile.am (dbus-glib-bindings.h): Move
5496         generation to tools/Makefile.am.
5497
5498         * test/glib/run-test.sh: Update to handle move
5499         of run-with-tmp-session-bus.sh.
5500
5501         * test/glib/test-service-glib.c: Update to handle
5502         move of dbus-glib-bindings.h.
5503
5504         * tools/print-introspect.c: Moved here
5505         from bus/, and ported to GLib bindings.
5506
5507         * tools/run-with-tmp-session-bus.sh: Moved here
5508         from bus/.
5509
5510         * tools/Makefile.am: Generate dbus-glib-bindings.h
5511         and dbus-bus-introspect.xml here.
5512
5513         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5514         Update.
5515
5516 2005-03-17  Colin Walters  <walters@verbum.org>
5517
5518         * bus/driver.c (write_args_for_direction): Use
5519         _dbus_string_get_const_data to retrieve string;
5520         _dbus_string_get_const_data_len doesn't actually return
5521         a NULL-terminated substring.
5522
5523         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5524         (main): Change to use org_freedesktop_DBus_request_name
5525         instead of using g_proxy_begin_call/end_call.
5526
5527 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5528
5529         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5530         generating the finalizer.  Fixes from Ben Maurer.
5531
5532 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5533
5534         * mono/BusDriver.cs: Update method names: ListServices
5535         becomes ListNames; GetOwner becomes GetNameOwner.
5536
5537         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5538         onto the eval stack when removing the delegate.
5539
5540 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5541
5542         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5543         LT_CURRENT.  Set it to the autoconf variable.
5544                                                                                 
5545         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5546         classes that disconnects the signal handler delegate from the
5547         service object.  Fixes a big leak of proxy objects on the
5548         client side of things.  Patch from Ben Maurer
5549         <bmaurer@ximian.com>
5550
5551 2005-03-12  Colin Walters  <walters@verbum.org>
5552
5553         * bus/driver.c (write_args_for_direction): New function,
5554         parses a type signature into arguments and outputs to
5555         XML.
5556         (bus_driver_handle_introspect): Use it instead of
5557         hardcoding XML for certain signatures.
5558         
5559         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5560         dependency on dbus-daemon.
5561
5562         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5563         argument, pass it to dbus_binding_tool_output_glib_client.
5564
5565         * glib/dbus-binding-tool-glib.c
5566         (generate_client_glue): Protect against multiple inclusion.
5567         (dbus_binding_tool_output_glib_client): Add
5568         G_BEGIN_DECLS/G_END_DECLS.
5569
5570         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5571         Change to just take iface prefix directly.
5572         (write_formal_parameters): Clarify error message.
5573         (check_supported_parameters): New function; checks to see type
5574         signatures of method parameters are supported.
5575         (generate_client_glue): Handle ignore_unsupported flag.
5576         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5577         parameter.
5578
5579         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5580         --ignore-unsupported by default until glib bindings
5581         support arrays.
5582
5583 2005-03-11  Colin Walters  <walters@verbum.org>
5584
5585         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5586         install it.
5587
5588         * bus/print-introspect.c: New file; prints introspection
5589         data for a given name and object path.
5590
5591         * bus/run-with-tmp-session-bus.sh: New file, refactored
5592         from test/glib/run-test.sh.  Creates a temporary session
5593         bus and runs another program.
5594
5595         * test/glib/run-test.sh: Refactor to invoke
5596         run-with-tmp-session-bus.sh.
5597
5598         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5599         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5600         macros instead of hardcoding.
5601
5602         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5603
5604 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5605
5606         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5607         this unref; it doesn't match up evenly in some codepaths.
5608         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5609         this evenly matches with the ref near the top of this function.
5610
5611 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5612
5613         * dbus/dbus-object-tree.c
5614         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5615         and we try to unregister a path that's not registered, still go
5616         through the process of unlocking and don't just return.
5617
5618 2005-03-09  Colin Walters  <walters@verbum.org>
5619
5620         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5621         to this are generated for client-side wrappers.  Invokes a
5622         D-BUS method and returns reply values.  
5623
5624         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5625         function; writes signature string for argument direction.
5626         (write_args_for_direction): Change to pass input values directly
5627         instead of via address, and fix indentation.
5628         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5629         make generated wrappers inlineable.
5630
5631         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5632         note about using dbus_type_is_fixed.
5633
5634         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5635         dbus/dbus-signature.c as dbus_type_is_fixed.
5636
5637         All callers updated.
5638
5639         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5640         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5641
5642         * dbus/dbus-signature.h: Prototype.
5643
5644         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5645         error printf code.
5646
5647         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5648         appropriate instead of just freeing it.
5649         (main): Free returned strings using g_free.
5650
5651         * test/glib/Makefile.am (test-service-glib-glue.h)
5652         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5653
5654         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5655         simply maps a simple D-BUS type to GType.
5656         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5657         GType.
5658         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5659         initialize the value with it.
5660         (dbus_gvalue_binding_type_from_type): Unused, delete.
5661         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5662         various types instead of unmarshalling to value data directly.
5663         Remove can_convert boolean.
5664         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5665         returning directly instead of using can_convert boolean.
5666         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5667         Stores a GValue in a pointer to a value of its corresponding C
5668         type.
5669
5670         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5671         add dbus_gvalue_store.
5672
5673 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5674
5675         Fix a bunch of lifecycle and memory management problems
5676         in the mono bindings.
5677
5678         * mono/Arguments.cs (Arguments): Implement IDisposable
5679
5680         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5681         strictly a static class.
5682
5683         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5684         delegates into this file.
5685         (Connection): Implement IDisposable.
5686         (Dispose): Disconnect the connection and set the raw connection
5687         pointer to IntPtr.Zero.
5688         (~Connection): Call Dispose().
5689         (RegisterObjectPath): Added.  Manages the registration of object
5690         paths so we can cleanly disconnect them at dispose/finalize time.
5691         (UnregisterObjectPath): Ditto.
5692         (set_RawConnection): Unregister all of the object paths when
5693         changing the underlying DBusConnection.  Add them back onto the
5694         new connection, if any.
5695
5696         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5697         more unmanaged resources anymore, so it's not necessary.  Move all
5698         the DBusObjectPathVTable stuff out of here.
5699         (Handler): Save references to our delegates so that they don't get
5700         finalized.  Call Connection.RegisterObjectPath() instead of
5701         dbus_connection_register_object_path() directly.
5702         (Message_Called): Dispose the message after we're finished with
5703         it.
5704
5705         * mono/Message.cs (Message): Implement IDisposable.
5706         (Dispose): Dispose the Arguments, and set the RawMessage to
5707         IntPtr.Zero.
5708         (SendWithReplyAndBlock): We own the ref to the reply that comes
5709         back from dbus_connection_send_with_reply_and_block() so add a
5710         comment about that and unref it after we've constructed a managed
5711         MethodReturn class around it.  Fixes a big, big leak.
5712
5713         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5714         method.
5715         (BuildSignalHandler): After we've sent the Signal message, dispose
5716         of it.
5717         (BuildMethod): Dispose of the method call and reply messages after
5718         we've sent the message and extracted the data we want from the
5719         reply.
5720
5721         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5722         anymore.
5723         (Service_FilterCalled): Dispose of the message after we're
5724         finished with it.
5725
5726 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5727
5728         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5729         After we attach our pending call to the connection, unref
5730         it.  Fixes a leak.
5731  
5732         * mono/Connection.cs (set_RawConnection): Disconnect our
5733         filter and match callbacks from the old connection and
5734         reconnect them to the new connection, if any.
5735
5736         * mono/DBusType/Array.cs: "Code" is a static member, so
5737         don't use "this" to refer to it.  Fix for stricter checking
5738         in Mono 1.1.4.
5739  
5740         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5741         object path that we pass into unmanaged code.
5742  
5743         * mono/DBusType/String.cs (Append): Don't leak the string
5744         that we pass into unmanged code.
5745
5746 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5747         * NEWS: Update for 0.31
5748
5749         * configure.in: Release 0.31
5750         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5751
5752         * qt/Makefile.am: fixed build
5753
5754         * dbus/Makefile.am: soname bump for libdbus
5755
5756         * glib/Makefile.am: soname bump for libdbus-glib
5757
5758 2005-03-05  Havoc Pennington  <hp@redhat.com>
5759
5760         * dbus/dbus-sysdeps.c:
5761         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5762         value
5763         (_dbus_generate_random_bytes_buffer): fix return value
5764
5765         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5766         checks actually work, from Tom Parker <fdo@tevp.net>
5767
5768 2005-03-01  Colin Walters  <walters@verbum.org>
5769
5770         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5771         functions copied from dbus-glib-tool.c.
5772         (main): Convert lots of error code to use them.
5773         Also add some testing for introspection bits.
5774
5775 2005-03-01  Colin Walters  <walters@verbum.org>
5776         
5777         * doc/TODO: Remove introspection signature TODO.
5778
5779 2005-02-27  Colin Walters  <walters@verbum.org>
5780
5781         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5782         Change return value to const char * instead of int so we can do
5783         full signatures.
5784         (struct PropertyInfo, struct ArgInfo): Store char *.
5785         (property_info_new, arg_info_new): Update parameters, strdup.
5786         (property_info_unref, arg_info_unref): Free.
5787
5788         * glib/dbus-gidl.h: Update prototypes.
5789
5790         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5791         (validate_signature): New function, just validates signature and
5792         sets GError.
5793         (parse_property, parse_arg): Invoke validate_signature.  Store
5794         signature instead of just type code.
5795
5796         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5797         function to return a primary type for a signature, dropping
5798         information about types in container types.
5799         (dbus_gvalue_genmarshal_name_from_type)
5800         (dbus_gvalue_binding_type_from_type)
5801         (dbus_gvalue_ctype_from_type): Update to take full signature
5802          instead of type code.
5803         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5804
5805         * glib/dbus-gvalue.h: Update prototypes for above.
5806
5807         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5808         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5809         (introspect_properties, introspect_signals, write_interface):
5810         Update to handle signatures, and remove usage of
5811         _dbus_gutils_type_to_string.
5812         (handle_introspect): Print out type codes instead of e.g. "string"
5813         in hardcoded introspection XML; also use x_AS_STRING constants
5814         instead of hardcoding in string.
5815
5816         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5817         to string.  Remove usage of _dbus_gutils_type_to_string.
5818
5819         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5820
5821         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5822         deletion.
5823         
5824         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5825         (compute_marshaller_name, generate_glue): Handle signature change
5826         to string.
5827         (write_formal_parameters, write_args_for_direction): Ditto, and
5828         remove FIXME.
5829
5830         * tools/dbus-tree-view.c (type_to_string): Delete.
5831         (info_set_func_text): Update to print full signatures.
5832
5833         * test/glib/test-service-glib.xml: Change types to new
5834         introspection format.
5835
5836 2005-02-26  Havoc Pennington  <hp@redhat.com>
5837
5838         * doc/TODO: remove the "guid" item
5839
5840         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5841         (with_bus_thread_func): use open_private
5842
5843         * dbus/dbus-connection.c (dbus_connection_open_private): new
5844         function that works like the old dbus_connection_open()
5845         (dbus_connection_open): now returns an existing connection if
5846         possible
5847
5848         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5849         through the GUID to the transport
5850
5851         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5852         GUID in hex-encoded form.
5853
5854         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5855         pass GUID argument in to the transport
5856
5857         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5858         guid argument
5859
5860         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5861
5862         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5863
5864 2005-02-25  Havoc Pennington  <hp@redhat.com>
5865
5866         * doc/dbus-specification.xml: document the GUID thing
5867
5868         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5869         globally unique ID for the server, and put a "guid=hexencoded"
5870         field in the address
5871
5872         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5873
5874         * dbus/dbus-message.c: ditto
5875
5876         * dbus/dbus-dataslot.c: ditto
5877
5878         * dbus/dbus-list.c: ditto
5879
5880         * dbus/dbus-internals.h: wait, just include
5881         dbus-threads-internal.h here
5882         
5883         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5884         use in main library
5885
5886         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5887
5888 2005-02-24  Colin Walters  <walters@verbum.org>
5889
5890         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5891
5892 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5893
5894         * glib/Makefile.am: added dbus-gobject.h to sources list
5895         so distcheck doesn't fail
5896         
5897 2005-02-24  Havoc Pennington  <hp@redhat.com>
5898
5899         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5900         you must disconnect before unref, since locking and other things
5901         are screwed up otherwise. Fix assorted other locking stuff.
5902
5903         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5904         fix compilation
5905
5906         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5907         into a private header and don't export from the library
5908
5909         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5910
5911 2005-02-24  Colin Walters  <walters@verbum.org>
5912         
5913         * dbus/dbus-signature.c: New file; implements various functions
5914         related to type signatures.  Includes an interator for parsing,
5915         validation functions.
5916         (dbus_type_is_basic): Moved here from
5917         dbus-marshal-basic.c:_dbus_type_is_basic.
5918         (dbus_type_is_container): Moved here from
5919         dbus-marshal-basic.c:_dbus_type_is_container.
5920
5921         All callers of _dbus_type_is_container and _dbus_type_is_basic
5922         updated, and include dbus-signature.h.
5923
5924         * dbus/dbus-signature.h: New file; prototypes for the above.
5925
5926         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5927         dbus-signature.h.
5928
5929         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5930         function factored out of _dbus_first_type_in_signature.
5931         (_dbus_first_type_in_signature_c_str): New function; returns first
5932         type code for a type signature character.
5933
5934         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5935         handle function moves.
5936
5937         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5938
5939         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5940         function; skips to next complete type in type signature.
5941         Implemented using previous skip_one_complete_type.  Now
5942         skip_one_complete_type just delegates to
5943         _dbus_type_signature_next.
5944
5945         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5946         to dbus-signature.c
5947         (_dbus_type_is_container): Ditto.
5948
5949         * doc/dbus-specification.xml: Update introspection sample to
5950         use real type signatures.
5951
5952         * dbus/dbus-test.h: Prototype signature test.
5953
5954         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5955         signature tests.
5956
5957         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5958
5959 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5960
5961         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5962         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5963
5964 2005-02-21  Colin Walters  <walters@verbum.org>
5965
5966         * dbus/dbus-test-main.c (main): Take optional specific test
5967         argument.
5968
5969         * dbus/dbus-test.c (run_test): New function, runs a test function
5970         with no data directory.
5971         (run_data_test): Like above, but takes data directory.
5972         (dbus_internal_do_not_use_run_tests): Take
5973         specific test argument.  Replace lots of cut n' paste code
5974         with run_test and run_data_test.
5975
5976         * dbus/dbus-test.h: Update prototype for
5977         dbus_internal_do_not_use_run_tests.
5978
5979 2005-02-20  Havoc Pennington  <hp@redhat.com>
5980
5981         Fix bugs reported by Daniel P. Berrange
5982         
5983         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5984         (protected_change_watch): new function
5985         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5986         (_dbus_server_add_watch): change to work like the
5987         dbus-connection.c equivalents; like those, probably kind of
5988         busted, but should at least mostly work for now
5989         (dbus_server_disconnect): drop the lock if we were already
5990         disconnected, patch from Daniel P. Berrange
5991
5992         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5993         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5994         same stuff
5995
5996         * doc/TODO: todo about unscrewing this mess
5997
5998 2005-02-19  Colin Walters  <walters@verbum.org>
5999
6000         * glib/dbus-binding-tool-glib.c
6001         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6002
6003         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6004         as errno.h and sys/stat.h.
6005         (lose): New function, prints error with
6006         newline and exits.
6007         (lose_gerror): Similar, but takes GError for message.
6008         (main): Add --output argument to specify output file to write to,
6009         instead of always printing to stdout.  In this mode, determine
6010         timestamps on source files to see whether any are newer than the
6011         target file.  If not, exit.  Also convert a number of error
6012         messages to use lose (since it's shorter), and switch to using
6013         g_io_channel_shutdown.
6014
6015 2005-02-19  Havoc Pennington  <hp@redhat.com>
6016
6017         * glib/dbus-gobject.c
6018         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6019
6020         * glib/dbus-glib.c: fix doxygen warnings
6021
6022         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6023         is found on an <arg>
6024
6025 2005-02-17  Colin Walters  <walters@verbum.org>
6026
6027         * glib/dbus-gobject.h: Don't export
6028         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6029         
6030         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6031         (invoke_object_method): Handle it.
6032
6033         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6034         Handle rename.
6035         
6036 2005-02-17  Colin Walters  <walters@verbum.org>
6037
6038         * bus/.cvsignore, doc/.cvsignore
6039         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6040         Update.
6041
6042 2005-02-17  Colin Walters  <walters@verbum.org>
6043         
6044         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6045         Rename to DBUS_SERVICE_DBUS.
6046         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6047         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6048         Change the value from "org.freedesktop.Local"
6049         to "org.freedesktop.DBus.Local".
6050         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6051         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6052         DBUS_INTERFACE_INTROSPECTABLE.
6053         Change the value from "org.freedesktop.Introspectable"
6054         to "org.freedesktop.DBus.Introspectable".
6055         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6056         DBUS_INTERFACE_PROPERTIES.
6057         Change the value from "org.freedesktop.Properties"
6058         to "org.freedesktop.DBus.Properties".
6059         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6060         DBUS_INTERFACE_PEER.
6061         Change the value from "org.freedesktop.Peer"
6062         to "org.freedesktop.DBus.Peer".
6063         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6064         DBUS_INTERFACE_LOCAL.
6065         Change the value from "org.freedesktop.Local"
6066         to "org.freedesktop.DBus.Local".
6067
6068         All other users of those constants have been changed.
6069
6070         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6071
6072         * glib/dbus-gobject.c (handle_introspect): Use constants.
6073
6074         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6075
6076 2005-02-17  Colin Walters  <walters@verbum.org>
6077
6078         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6079         (parse_node, parse_interface, parse_method, parse_signal)
6080         (parse_property, parse_annotation): Lose if we're currently in an
6081         annotation.
6082         (parse_annotation): New function.
6083         (parser_start_element, parser_end_element): Handle annotation.
6084         (parse_method, parse_interface): Remove support for c_name attribute,
6085         switch to annotations.
6086
6087         * glib/dbus-gidl.h (interface_info_get_binding_names)
6088         (method_info_get_binding_names)
6089         (interface_info_get_binding_name, method_info_get_binding_name)
6090         (interface_info_set_binding_name, method_info_set_binding_name):
6091         Remove.
6092         (interface_info_get_annotations, method_info_get_annotations)
6093         (interface_info_get_annotation, method_info_get_annotation)
6094         (interface_info_add_annotation, method_info_add_annotation):
6095         Prototype.
6096
6097         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6098         for "bindings".
6099         (struct MethodInfo): Ditto.
6100         Straightfoward conversion of binding methods into annotation methods
6101         as prototyped.
6102
6103         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6104
6105         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6106
6107         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6108         Use new annotation API.
6109
6110         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6111         annotation element.
6112         
6113         * doc/dbus-specification.xml: Discuss introspection annotations,
6114         include list of well-known annotations.
6115
6116         * test/glib/test-service-glib.xml: Make validate against new DTD.
6117
6118 2005-02-17  Colin Walters  <walters@verbum.org>
6119
6120         This patch is based on initial work from
6121         Paul Kuliniewicz <kuliniew@purdue.edu>.
6122
6123         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6124         initialization of GValue from dbus type to here.
6125         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6126         for the "glib-genmarshal" program from a DBus type.
6127         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6128         into the C name for it we use in the glib bindings.
6129         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6130         glib C type (not GValue).
6131         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6132
6133         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6134         from dbus-gobject.c.
6135
6136         * glib/dbus-gutils.h: Prototype it.
6137
6138         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6139         (marshal_dbus_message_to_g_marshaller): Use new shared function
6140         dbus_glib_marshal_dbus_message_to_gvalue_array.
6141
6142         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6143         Will be changed once we have annotations.
6144
6145         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6146         GStaticRWLock.  Callers updated.
6147         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6148         (string_table_next): New function for iterating over zero-terminated
6149         string value array.
6150         (string_table_lookup): New function; retrieves specific entry in
6151         array.
6152         (get_method_data): New function; look up method data in object data chunk.
6153         (object_error_domain_prefix_from_object_info)
6154         (object_error_code_from_object_info): New functions, but not implemented yet.
6155         (method_interface_from_object_info): New function; retrieve interface name.
6156         (method_name_from_object_info): New function; retrieve method name.
6157         (method_arg_info_from_object_info): New function; retrieve argument data.
6158         (arg_iterate): New function; iterates over serialized argument data.
6159         (method_dir_signature_from_object_info): New function; returns a
6160         GString holding type signature for arguments for just one
6161         direction (input or output).
6162         (method_input_signature_from_object_info)
6163         (method_output_signature_from_object_info): New functions.
6164         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6165         converts dbus message arguments into a GValue array.  Used for both
6166         signal handling and method invocation.
6167         (struct DBusGlibWriteIterfaceData): New utility structure.
6168         (write_interface): New function; generate introspection XML for
6169         an interface.
6170         (introspect_interfaces): New function; gathers all interface->methods,
6171         generates introspection XML for them.
6172         (handle_introspect): Invoke introspect_interfaces.
6173         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6174         (lookup_object_and_method): New function; examines an incoming message
6175         and attempts to match it up (via interface, method name, and argument
6176         signature) with a known object and method.
6177         (gerror_domaincode_to_dbus_error_name): New function; converts a
6178         GError domain and code into a DBus error name.  Needs GError data
6179         added to object introspection to work well.
6180         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6181         GError.
6182         (invoke_object_method): New function to invoke an object method
6183         looked up via lookup_object_and_method.  Parses the incoming
6184         message, turns it into a GValue array, then invokes the marshaller
6185         specified in the DBusGMethodInfo.  Creates a new message with
6186         either return values or error message as appropriate.
6187         (gobject_message_function): Invoke lookup_object_and_method and
6188         invoke_object_method.
6189
6190         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6191         (enum DBusBindingOutputMode): New enum for binding output modes.
6192         (pretty_print): Print binding names.
6193         (dbus_binding_tool_error_quark): GError bits.
6194         (version): Fix typo.
6195         (main): Create GIOChannel for output.  Parse new --mode argument,
6196         possible values are "pretty-print", "glib-server", "glib-client".
6197         Use mode to invoke appropriate function.
6198         
6199         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6200
6201         * glib/dbus-glib-tool.h: New header, just includes GError bits
6202         for now.
6203
6204         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6205         maps binding style to name.
6206         (struct MethodInfo): Ditto.
6207         (get_hash_keys, get_hash_key): Utility function, returns keys for
6208         a GHashTable.
6209         (interface_info_new, method_info_new): Initialize bindings.
6210         (interface_info_unref, method_info_unref): Destroy bindings.
6211         (method_info_get_binding_names, method_info_get_binding_name)
6212         (interface_info_get_binding_names, interface_info_get_binding_name):
6213         Functions for retrieving binding names.
6214         (method_info_set_binding_name, interface_info_set_binding_name):
6215         Functions for setting binding names.
6216
6217         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6218         for glib binding generation.
6219
6220         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6221         and client-side glib glue generation.
6222
6223         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6224         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6225         dbus-glib-tool.h.
6226
6227         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6228         of using GClosureMarshal directly.
6229         (struct DBusGObjectInfo): Add n_infos member.
6230
6231         * test/glib/test-service-glib.xml: New file; contains introspection data
6232         for MyTestObject used in test-service-glib.c.
6233
6234         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6235         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6236         (my_object_uppercase, my_object_many_args): New test methods.
6237         (main): Use dbus_g_object_class_install_info to include generated object
6238         info.
6239
6240         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6241         as well as client-side bindings.
6242
6243         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6244         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6245         using both the dbus_gproxy stuff directly as well as the generated bindings.
6246
6247 2005-02-15  Havoc Pennington  <hp@redhat.com>
6248
6249         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6250         complete a pending call, don't run filters first.
6251
6252         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6253         dbus_pending_call_steal_reply
6254
6255         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6256         _dbus_connection_block_pending_call
6257         (dbus_pending_call_get_reply): change to steal_reply and return a
6258         ref
6259
6260         * dbus/dbus-connection.c
6261         (dbus_connection_send_with_reply_and_block): port to work in terms
6262         of DBusPendingCall
6263         (_dbus_connection_block_pending_call): replace block_for_reply
6264         with this
6265
6266 2005-02-14  Havoc Pennington  <hp@redhat.com>
6267
6268         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6269         properly handle looking up group information by name; fix 
6270         from j@bootlab.org
6271
6272 2005-02-13  Havoc Pennington  <hp@redhat.com>
6273
6274         * dbus/dbus-connection.c (dbus_connection_return_message) 
6275         (dbus_connection_borrow_message): hold dispatch lock while message
6276         is outstanding
6277         (_dbus_connection_block_for_reply): hold dispatch lock while we
6278         block for the reply, so nobody steals our reply
6279         (dbus_connection_pop_message): hold the dispatch lock while we
6280         pluck the message
6281
6282 2005-02-13  Havoc Pennington  <hp@redhat.com>
6283
6284         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6285         (_dbus_connection_release_dispatch)
6286         (_dbus_connection_acquire_io_path)
6287         (_dbus_connection_release_io_path): make the mutex and condvar
6288         control access to the "acquired" flag. Drop the connection lock
6289         while waiting on the condvar. Hopefully these are baby steps in
6290         roughly the right direction.
6291
6292 2005-02-13  Havoc Pennington  <hp@redhat.com>
6293
6294         * dbus/dbus-connection.c: use separate mutexes for the condition
6295         variables; this is some kind of baseline for sanity, but the
6296         condition variables still aren't used correctly afaict
6297
6298 2005-02-13  Havoc Pennington  <hp@redhat.com>
6299
6300         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6301         fix a double-unlock
6302
6303         * dbus/dbus-connection.c
6304         (_dbus_connection_detach_pending_call_unlocked): add this
6305
6306         Initial semi-correct pass through to fix thread locking; there are
6307         still some issues with the condition variable paths I'm pretty
6308         sure
6309         
6310         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6311         lock/unlock calls
6312
6313         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6314         rename to add _unlocked
6315         (struct DBusConnection): move "dispatch_acquired" and
6316         "io_path_acquired" to use only one bit each.
6317         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6318         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6319         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6320         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6321         (_dbus_connection_remove_timeout) 
6322         (_dbus_connection_toggle_timeout): drop lock when calling out to
6323         user functions; done in a hacky/bad way.
6324         (_dbus_connection_send_and_unlock): add a missing unlock
6325         (_dbus_connection_block_for_reply): add a missing unlock
6326
6327         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6328         drop lock in a hacky probably unsafe way to call out to user
6329         function
6330
6331 2005-02-12  Havoc Pennington  <hp@redhat.com>
6332
6333         * tools/dbus-tree-view.c (info_set_func_text): display more
6334         details on args
6335
6336         * bus/driver.c (bus_driver_handle_list_services): list the bus
6337         driver
6338
6339         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6340
6341         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6342         (method_info_get_n_args): new function
6343
6344 2005-02-12  Havoc Pennington  <hp@redhat.com>
6345
6346         * bus/driver.c (bus_driver_handle_introspect): add introspection
6347         for bus driver
6348
6349 2005-02-12  Havoc Pennington  <hp@redhat.com>
6350
6351         * bus/driver.c: put the signature of each bus driver method in the
6352         table of handlers and check it on incoming calls; this isn't
6353         really useful, but going to add introspect support in a minute.
6354
6355 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6356
6357         * mono/Connection.cs: The unpredictability of finalizers in mono
6358         prevents us from deterministically disconnecting the filters from
6359         the Service class's finalizer, so move tracking of filters and
6360         matches here.  Add API for that.
6361
6362         * mono/Service.cs: Remove the code, add code which calls the
6363         methods now on the Connection class.
6364
6365 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6366
6367         * python/dbus.py (class Sender): added to support dbus signals better
6368         (Bus::add_signal_receiver): added expand_args parameter which defaults
6369         to True.  When expand args is True the signal handler will pass the 
6370         message arguments as parameters to the signal handler.  If False
6371         revert to previous behavior where the signal handler must get the
6372         argument list from the message.  This is to help port applications
6373         like HAL that have a tendancy to send variable length argument lists.
6374         self._match_rule_to_receivers is now a dict of dicts.
6375         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6376         removing it from a list
6377         (Bus::_signal_func): change signal handlers so that interface,
6378         signal_name, service, path and message are packed into a Sender
6379         object and that is passed to the handler.  If expand_args is True
6380         extract the args list from the message and append it to the parameter
6381         list
6382         
6383         * python/dbus_bindings.pyx.in (class Signature): added to support 
6384         signiature types
6385         (MessageIter::__init__): changed iteration limit to match D-BUS
6386         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6387         STRUCT and VARIENT type support
6388         (MessageIter::python_value_to_dbus_sig): made recursive to support
6389         recursive types
6390         (MessageIter::append*): added Signature, dict, tuple 
6391         support
6392
6393         * python/examples/example-client.py: added examples of getting tuples
6394         and dicts
6395
6396         * python/examples/example-service.py: added examples of sending tuples
6397         and dicts
6398
6399         * python/examples/example-signal-recipient.py: Fixed to handle new
6400         signal callback format
6401
6402 2005-02-10  Havoc Pennington  <hp@redhat.com>
6403
6404         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6405         (call dbus_g_proxy_add_signal)
6406
6407         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6408         escape the hostname
6409         (_dbus_server_new_for_domain_socket): escape the path
6410
6411         * dbus/dbus-address.c (dbus_address_escape_value): new
6412         (dbus_address_unescape_value): new
6413         (dbus_parse_address): unescape values
6414
6415         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6416
6417         * doc/dbus-specification.xml: explain how to escape values in
6418         addresses
6419
6420 2005-02-10  Havoc Pennington  <hp@redhat.com>
6421
6422         * dbus/dbus-message-factory.c (generate_special): modify test to
6423         avoid using a non-basic dict key
6424
6425         * dbus/dbus-marshal-validate-util.c: add test for the below
6426
6427         * doc/dbus-specification.xml: require that dict keys are a basic
6428         type
6429
6430         * dbus/dbus-marshal-validate.c
6431         (_dbus_validate_signature_with_reason): require that dict key is a
6432         basic type
6433
6434 2005-02-10  Havoc Pennington  <hp@redhat.com>
6435
6436         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6437         change to be _and_unlock instead of _unlocked
6438
6439         * dbus/dbus-connection.c
6440         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6441         have no_update so we can find this bug quickly in future
6442
6443 2005-02-10  Havoc Pennington  <hp@redhat.com>
6444
6445         * dbus/dbus-message-util.c (verify_test_message): tests for string
6446         array
6447
6448         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6449         support for arrays of string/signature/path
6450
6451 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6452
6453         * dbus/dbus-connection.c
6454         (_dbus_connection_queue_received_message_link,
6455         _dbus_connection_message_sent): Add the path to
6456         the verbose output.
6457         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6458         _dbus_connection_send_preallocated_unlocked(), updated the
6459         dispatch status, and unlocks.  Fixes a bug where certain
6460         situations (like a broken pipe) could cause a Disconnect message
6461         to not be sent, tricking the bus into thinking a service was still
6462         there when the process had quit.
6463         (_dbus_connection_send_preallocated): Call
6464         _dbus_connection_send_preallocated_and_unlock().
6465         (_dbus_connection_send_and_unlock): Added.  Calls
6466         _dbus_connection_send_preallocated_and_unlock().
6467         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6468         (dbus_connection_send_with_reply): Update the dispatch status and
6469         unlock.
6470
6471         * mono/Service.cs (~Service): Added.  Removes the filter so that
6472         we don't get unmanaged code calling back into a GCed delegate.
6473         (RemoveFilter); Added.
6474
6475 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6476
6477         * dbus/dbus-message.c (dbus_message_iter_open_container):
6478         - Removed check for iterator type being an array because
6479         get_arg_type does not work with writer iterators
6480         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6481
6482 2005-02-07  Havoc Pennington  <hp@redhat.com>
6483
6484         * doc/dbus-specification.xml: some more language cleanups; add
6485         stuff about how to deal with invalid protocol and extension
6486         points; add _ to allowed chars in auth commands; add EXTENSION_
6487         auth command prefix
6488
6489 2005-02-06  Havoc Pennington  <hp@redhat.com>
6490
6491         * s/expected/required/ in a couple places for clarity
6492
6493 2005-02-07  Colin Walters  <walters@verbum.org>
6494
6495         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6496         sender or proposed_recipient.
6497
6498 2005-02-06  Havoc Pennington  <hp@redhat.com>
6499
6500         * dbus/dbus-message-factory.c (generate_special): more tests
6501
6502         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6503         array length that exceeds the maximum
6504
6505 2005-02-05  Havoc Pennington  <hp@redhat.com>
6506
6507         * dbus/dbus-message-factory.c (generate_special): more test cases,
6508         increasing coverage
6509
6510         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6511         reason why a signature was invalid
6512
6513         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6514         skip the length of the string before we look at it in validation
6515
6516         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6517         equal_substring
6518
6519         * dbus/dbus-message.c (_dbus_message_loader_new): default
6520         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6521
6522 2005-02-05  Havoc Pennington  <hp@redhat.com>
6523
6524         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6525         if the signature of a variant was empty
6526         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6527         struct with no element type)
6528
6529         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6530         mangled messages to break things
6531
6532 2005-02-04  Havoc Pennington  <hp@redhat.com>
6533
6534         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6535         g_quark_try_string() so it actually can return 0
6536         (dbus_g_proxy_connect_signal): ditto
6537
6538 2005-02-04  Havoc Pennington  <hp@redhat.com>
6539
6540         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6541         bogus warning
6542         (tristring_from_message): assert cleanly on null path/interface
6543         (should not be possible though I decided later)
6544         (dbus_g_proxy_dispose): move proxy manager unregistration here
6545         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6546         g_return_if_fail() checks
6547
6548 2005-02-04  Havoc Pennington  <hp@redhat.com>
6549
6550         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6551
6552         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6553         (with some minor changes)
6554
6555         * doc/dbus-specification.xml: add deprecated attribute to
6556         introspection format
6557
6558 2005-01-31  Havoc Pennington  <hp@redhat.com>
6559
6560         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6561         think it's sort of right
6562
6563 2005-01-30  Havoc Pennington  <hp@redhat.com>
6564
6565         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6566
6567 2005-01-30  Havoc Pennington  <hp@redhat.com>
6568
6569         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6570
6571         * autogen.sh: change to autotools 1.9
6572
6573         * glib/dbus-gproxy.c: completely change how signals work
6574         (dbus_g_proxy_add_signal): new function to specify signature of a
6575         signal
6576         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6577         and g_warning if the incoming message has the wrong signature.
6578
6579 2005-01-30  Havoc Pennington  <hp@redhat.com>
6580
6581         * tools/dbus-names-model.c (have_names_notify): fix this
6582
6583         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6584         up the string array handling a bit 
6585
6586 2005-01-30  Havoc Pennington  <hp@redhat.com>
6587
6588         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6589         (dbus_g_pending_call_cancel): new function
6590
6591         * dbus/dbus-glib.h: move GType decls for connection/message here;
6592         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6593         here, just kind of rationalizing how we handle all that
6594
6595         * tools/dbus-names-model.c: new file for a tree model listing the
6596         services on a bus
6597
6598         * tools/dbus-tree-view.c (model_new): use proper typing on the
6599         model rows
6600
6601 2005-01-30  Havoc Pennington  <hp@redhat.com>
6602
6603         * glib/dbus-gmain.c: add a custom GSource back that just checks
6604         whether the message queue has anything in it; otherwise, there are 
6605         cases where we won't see messages in the queue since there was no 
6606         IO visible to the glib main loop
6607
6608         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6609         increase default message timeout to 25 seconds
6610
6611 2005-01-30  Havoc Pennington  <hp@redhat.com>
6612
6613         * test/glib/test-profile.c (no_bus_stop_server): remove the
6614         warning about the g_warning that I just fixed
6615
6616         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6617         custom source, seems to be a lot easier to understand and work
6618         better.
6619
6620 2005-01-30  Havoc Pennington  <hp@redhat.com>
6621
6622         I think this main loop thing is conceptually broken, but here are 
6623         some band aids. I'll maybe rewrite it in a minute.
6624         
6625         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6626         custom GSource, so don't pass it in; confusing
6627         (gsource_server_finalize, gsource_connection_finalize): add
6628         finalize handlers that remove all the watches.  
6629
6630 2005-01-30  Havoc Pennington  <hp@redhat.com>
6631
6632         * glib/dbus-gobject.c (introspect_properties): fix the XML
6633         generated
6634
6635         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6636         which effectively detects the use of freed messages
6637
6638         * glib/dbus-gobject.c (handle_introspect): modify and return the
6639         reply message instead of the incoming message
6640
6641         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6642         gee, maybe it should SEND THE XML instead of just making a string
6643         and freeing it again ;-)
6644
6645         * tools/dbus-print-message.c (print_message): improve printing of
6646         messages
6647
6648         * configure.in: add debug-glib.service to the output
6649
6650 2005-01-30  Havoc Pennington  <hp@redhat.com>
6651
6652         dbus-viewer introspected and displayed the bus driver
6653         
6654         * dbus/dbus-object-tree.c 
6655         (object_tree_test_iteration): add tests for a handler registered on "/"
6656
6657         * dbus/dbus-object-tree.c
6658         (_dbus_decompose_path): fix to handle path "/" properly
6659         (run_decompose_tests): add tests for path decomposition
6660         
6661         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6662         properly
6663
6664         * glib/dbus-gobject.c (handle_introspect): fix quotes
6665
6666         * test/glib/run-test.sh: support launching the bus, then running
6667         dbus-viewer
6668
6669         * test/glib/test-service-glib.c (main): put in a trivial gobject
6670         subclass and register it on the connection
6671
6672         * bus/driver.c (bus_driver_handle_introspect): implement
6673         introspection of the bus driver service
6674
6675         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6676         identifiers, doctype decl
6677
6678         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6679         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6680         returning the service unchanged.
6681         (bus_driver_handle_message): remove old check for reply_serial in
6682         method calls, now the message type deals with that
6683         (bus_driver_handle_message): handle NULL interface
6684
6685         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6686
6687         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6688         -1 for len
6689
6690         * tools/dbus-viewer.c: add support for introspecting a service on
6691         a bus
6692
6693         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6694         (dbus_g_pending_call_unref): add
6695
6696 2005-01-29  Havoc Pennington  <hp@redhat.com>
6697
6698         * tools/dbus-tree-view.c: add support for displaying properties.
6699         (run dbus-viewer with an introspect xml file as arg, then resize
6700         the window so the tree elements show up, not sure what that is)
6701
6702         * glib/dbus-gobject.c (handle_introspect): return
6703         org.freedesktop.Properties and org.freedesktop.Introspectable
6704         interfaces when we are introspected.
6705
6706         * doc/dbus-specification.xml: allow empty interface name when 
6707         Get/Set a property
6708
6709 2005-01-29  Havoc Pennington  <hp@redhat.com>
6710
6711         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6712         though it uses glib, it could be extended for any binding in
6713         principle
6714
6715         * glib/dbus-gobject.c (gobject_message_function): change to the
6716         new way properties work
6717
6718         * dbus/dbus-protocol.h: add the new interfaces
6719
6720         * doc/dbus-specification.xml: document the introspection format,
6721         Introspectable interface, and add an org.freedesktop.Properties
6722         interface.
6723
6724         * glib/dbus-gparser.c: add support for a <property> element
6725
6726         * glib/dbus-gidl.c: add PropertyInfo
6727
6728         * glib/dbus-gobject.c (handle_introspect): put the outermost
6729         <node> outside the signal and property descriptions.
6730         (introspect_properties): export properties as <property> rather
6731         than as method calls
6732
6733 2005-01-28  Havoc Pennington  <hp@redhat.com>
6734
6735         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6736         related to authentication protocol
6737
6738 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6739
6740         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6741                 - BUS_ACTIVATION -> BUS_STARTER
6742                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6743                 - class MessageIter (__init__): Added recursion checking 
6744                 so we throw a nice error instead of just disconnecting from the
6745                 bus.
6746                 (get): Added arg_type parameter for recursion.
6747                 Removed the nil type
6748                 Added signiture type placeholder (not implemented)
6749                 Added struct type placeholder (not implemented)
6750                 Added varient type placeholder (not implemented)
6751                 Commented out dict type for now     
6752                 (get_element_type): renamed from get_array_type
6753                 (get_*): changed to use the dbus_message_iter_get_basic API
6754                 (get_*_array): removed in favor of recursive get_array method
6755                 (get_array): new recursive method which calls get to marshal
6756                 the elements of the array
6757                 (value_to_dbus_sig): New method returns the corrasponding
6758                 dbus signiture to a python value
6759                 (append): Comment out dict handling for now
6760                 Handle lists with the new recursive API
6761                 Comment out None handling for now
6762                 (append_nil): removed
6763                 (append_*): changed to use dbus_message_iter_append_basic API
6764                 (append_*_array): removed in favor of recursive append_array 
6765                 method
6766                 (__str__): Make it easier to print out recursive iterators
6767                 for debugging
6768                 - class Message (__str__): moved type inspection to the
6769                 MessageIter class' __str__ method
6770                 (get_iter): Added an append parameter wich defaults to False
6771                 If True use the new API's to create an append iterator
6772
6773         * python/dbus.py: Update to use new bindings API
6774                 - TYPE_ACTIVATION -> TYPE_STARTER
6775                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6776                 - class ActivationBus -> class StarterBus
6777                 - class RemoteObject (__call__): get an append iterator
6778                 - (_dispatch_dbus_method_call): get an append iterator
6779                 - class Object (emit_signal): get an append iterator
6780
6781         * python/examples/: Fixed up the examples to work with the new API
6782                 
6783 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6784
6785         * configure.in: Bump version up to 0.30.
6786
6787         * HACKING: Add a release item to bump the version number up after 
6788         a release.
6789
6790 2005-01-28  Havoc Pennington  <hp@redhat.com>
6791
6792         * doc/dbus-specification.xml: update to describe 16-bit types and
6793         dict entries
6794
6795         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6796         assertion
6797
6798         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6799         type
6800
6801         * dbus/dbus-marshal-recursive.c: implement
6802
6803 2005-01-27  Havoc Pennington  <hp@redhat.com>
6804
6805         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6806
6807         * configure.in: find the right type for 16 and 32 bit ints as well
6808         as 64
6809
6810         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6811         the 16-bit types so people don't have to stuff them in 32-bit or
6812         byte arrays.
6813
6814 2005-01-27  Havoc Pennington  <hp@redhat.com>
6815
6816         * dbus/dbus-message.c: byteswap the message if you init an
6817         iterator to read/write from it
6818         
6819         * dbus/dbus-marshal-byteswap.c: new file implementing 
6820         _dbus_marshal_byteswap()
6821
6822         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6823
6824 2005-01-26  Havoc Pennington  <hp@redhat.com>
6825         
6826         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6827         build, apparently - nobody noticed?)
6828         
6829 2005-01-26  Havoc Pennington  <hp@redhat.com>
6830
6831         * dbus/dbus-marshal-recursive.h: remove todo comment
6832
6833 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6834
6835         * Land the mono binding changes to conform to the new APIs.
6836
6837         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6838         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6839
6840         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6841         type code as a string.
6842         (InitAppending): Rename dbus_message_append_iter_init() to
6843         dbus_message_iter_init_append().
6844
6845         * mono/BusDriver.cs: Rename ServiceEventHandler to
6846         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6847         Rename ServiceOwnerChanged to NameOwnerChanged.
6848
6849         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6850         underlying C call.
6851
6852         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6853
6854         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6855         dbus_bus_acquire_service() to dbus_bus_request_name().
6856
6857         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6858         of Type.UnderlyingSystemType to get the correct element type for
6859         the array.
6860         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6861         dbus_message_get_{element|arg}_type() instead of
6862         dbus_message_iter_init_array_iterator().
6863         (Append): Replace dbus_message_iter_append_array() with
6864         dbus_message_iter_open_container() and
6865         dbus_message_iter_close_container().
6866
6867         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6868         types have been removed.
6869         
6870         * mono/DBusType/*.cs: Replace calls of
6871         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6872         but specify the type in the DllImport extern declaration.  Ditto
6873         for dbus_message_iter_append_[type]() ->
6874         dbus_message_iter_append_basic().
6875
6876         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6877         NameOwnerChangedHandler.
6878
6879 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6880
6881         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6882                 - get_base_service -> get_unique_name
6883                 - bus_get_base_service -> bus_get_unique_name
6884                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6885                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6886                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6887                 - bus_activate_service -> bus_start_service_by_name
6888                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6889                 - bus_acquire_service -> bus_request_name
6890                 - dbus_bus_acquire_service -> dbus_bus_request_name
6891                 - bus_service_exists -> bus_name_has_owner
6892                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6893
6894         * python/dbus.py: Rename of methods
6895                 - activate_service -> start_service_by_name
6896                 - bus_acquire_service -> bus_request_name
6897                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6898                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6899
6900         
6901 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6902
6903         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6904         signature for the method that can't be found.
6905
6906         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6907         the message has any arguments, we need to call
6908         _dbus_type_reader_get_current_type(), not
6909         _dbus_type_reader_has_next().
6910
6911 2005-01-24  Havoc Pennington  <hp@redhat.com>
6912
6913         * dbus/dbus-message-factory.c: more testing of message validation
6914
6915         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6916         header
6917
6918 2005-01-23  Havoc Pennington  <hp@redhat.com>
6919
6920         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6921         get this all working, not many tests in the framework yet though
6922
6923 2005-01-22  Havoc Pennington  <hp@redhat.com>
6924
6925         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6926         tutorial, based on work from David Wheeler.
6927
6928 2005-01-21  Havoc Pennington  <hp@redhat.com>
6929
6930         * dbus/dbus-bus.c: add more return_if_fail checks
6931
6932         * dbus/dbus-message.c (load_message): have the "no validation"
6933         mode (have to edit the code to toggle the mode for now though)
6934
6935         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6936         skips all validation; I want to use this at least for benchmark
6937         baseline, I'm not sure if it should be a publicly-available switch.
6938
6939 2005-01-21  Havoc Pennington  <hp@redhat.com>
6940
6941         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6942         toplevel doxygen group as the low-level API stuff
6943
6944         * dbus/dbus.h: note that libdbus is the low-level API
6945
6946 2005-01-20  Havoc Pennington  <hp@redhat.com>
6947
6948         * update-dbus-docs.sh: script to update docs on the web site, only
6949         works for me though. neener.
6950
6951 2005-01-20  Havoc Pennington  <hp@redhat.com>
6952
6953         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6954         code can reveal bugs in it
6955
6956 2005-01-20  Havoc Pennington  <hp@redhat.com>
6957
6958         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6959         select() version, patches from Tor Lillqvist
6960
6961 2005-01-20  Havoc Pennington  <hp@redhat.com>
6962
6963         * doc/dbus-tutorial.xml: replace > with &gt;
6964
6965         * bus/services.c (bus_registry_acquire_service): validate the name
6966         and return a better error if it's no good.
6967
6968         * doc/dbus-specification.xml: note NO_AUTO_START change
6969
6970         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6971         from AUTO_START, we're toggling the default
6972
6973         * bus/dispatch.c: adapt the tests to change of auto-start default
6974
6975 2005-01-18  Havoc Pennington  <hp@redhat.com>
6976
6977         * rename dbus-daemon-1 to dbus-daemon throughout
6978
6979 2005-01-18  Havoc Pennington  <hp@redhat.com>
6980
6981         * Throughout, grand renaming to strip out the use of "service",
6982         just say "name" instead (or "bus name" when ambiguous).  Did not
6983         change the internal code of the message bus itself, only the
6984         programmer-facing API and messages.
6985         
6986         * doc/dbus-specification.xml: further update the message bus section
6987         
6988         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6989         in error case
6990
6991 2005-01-17  Havoc Pennington  <hp@redhat.com>
6992
6993         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6994         ever
6995
6996         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6997         "invalid name character" not only non-ASCII
6998
6999         * doc/dbus-specification.xml: further update spec, message bus 
7000         parts are still out-of-date but the marshaling etc. stuff is now
7001         accurate-ish
7002
7003 2005-01-17  Havoc Pennington  <hp@redhat.com>
7004
7005         * doc/dbus-specification.xml: partially update spec
7006
7007 2005-01-17  Havoc Pennington  <hp@redhat.com>
7008
7009         * Throughout, align variant bodies according to the contained
7010         type, rather than always to 8. Should save a fair bit of space in
7011         message headers.
7012         
7013         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7014         fix handling of case where p == end
7015
7016         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7017
7018 2005-01-17  Havoc Pennington  <hp@redhat.com>
7019
7020         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7021
7022         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7023         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7024         are marshaling/unmarshaling a boolean.
7025
7026 2005-01-16  Havoc Pennington  <hp@redhat.com>
7027
7028         This is about it on what can be disabled/deleted from libdbus
7029         easily, back below 150K anyhow. Deeper cuts are more work than 
7030         just turning the code off as I've done here.
7031         
7032         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7033         signed int convenience funcs
7034
7035         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7036         verbose mode
7037
7038         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7039         things out of libdbus
7040
7041         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7042         
7043         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7044         tests-enabled-only, though it should probably be deleted)
7045
7046         * dbus/dbus-message-util.c: same stuff
7047
7048         * dbus/dbus-auth-util.c: same stuff
7049
7050 2005-01-16  Havoc Pennington  <hp@redhat.com>
7051
7052         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7053
7054         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7055         way for stripping down dbus-userdb.c stuff included in libdbus.
7056         Rename _dbus_parse_uid for consistency.
7057
7058 2005-01-16  Havoc Pennington  <hp@redhat.com>
7059
7060         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7061         name the assertion failed in
7062
7063         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7064         (_dbus_return_val_if_fail): assert that the name of the function
7065         containing the check doesn't start with '_', since we only want to 
7066         use checks on public functions
7067         
7068         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7069         checks to assertions
7070
7071         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7072         change checks to asserts for private function
7073
7074         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7075         to asserts for private function
7076
7077         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7078         broken assertion that was breaking make check
7079         (_dbus_type_reader_array_is_empty): remove this rather than fix
7080         it, was only used in assertions
7081
7082 2005-01-16  Havoc Pennington  <hp@redhat.com>
7083
7084         * test/unused-code-gc.py: hacky script to find code that's used
7085         only by the bus (not libdbus) or used only by tests or not used at
7086         all. It has some false alarms, but looks like we can clean up a
7087         lot of size from libdbus.
7088
7089         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7090         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7091         
7092 2005-01-16  Havoc Pennington  <hp@redhat.com>
7093
7094         * Add and fix docs according to Doxygen warnings throughout
7095         source.
7096         
7097         * dbus/dbus-marshal-recursive.c
7098         (_dbus_type_reader_array_is_empty): change this to just call
7099         array_reader_get_array_len() and make it static
7100
7101         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7102         from get_array_type
7103         (dbus_message_iter_init_append): rename from append_iter_init
7104
7105         * dbus/dbus-marshal-recursive.c
7106         (_dbus_type_reader_get_element_type): rename from
7107         _dbus_type_reader_get_array_type
7108
7109 2005-01-15  Havoc Pennington  <hp@redhat.com>
7110
7111         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7112
7113         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7114         when DBUS_DISABLE_ASSERT
7115         (_dbus_marshal_set_basic): be sure we align for the string length
7116
7117         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7118         this look faster
7119
7120         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7121         inline macro version
7122         (_dbus_string_set_byte): provide inline macro version
7123
7124 2005-01-15  Havoc Pennington  <hp@redhat.com>
7125
7126         * Land the new message args API and type system.
7127
7128         This patch is huge, but the public API change is not 
7129         really large. The set of D-BUS types has changed somewhat, 
7130         and the arg "getters" are more geared toward language bindings;
7131         they don't make a copy, etc.
7132
7133         There are also some known issues. See these emails for details
7134         on this huge patch:
7135         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7136         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7137         
7138         * dbus/dbus-marshal-*: all the new stuff
7139
7140         * dbus/dbus-message.c: basically rewritten
7141
7142         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7143         freed blocks to be all non-nul bytes so using freed memory is less
7144         likely to work right
7145
7146         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7147         DBUS_FAIL_MALLOC=N environment variable, so you can do
7148         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7149         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7150         thorough.
7151
7152         * qt/message.cpp: port to the new message args API
7153         (operator<<): use str.utf8() rather than str.unicode()
7154         (pretty sure this is right from the Qt docs?)
7155
7156         * glib/dbus-gvalue.c: port to the new message args API
7157
7158         * bus/dispatch.c, bus/driver.c: port to the new message args API
7159
7160         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7161         "locked" flag to TRUE and align_offset to 0; I guess we never
7162         looked at these anyhow, but seems cleaner.
7163
7164         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7165         move allocation padding macro to this header; use it to implement
7166         (_DBUS_STRING_STATIC): ability to declare a static string.
7167
7168         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7169         change to return TRUE if the interface is not set.
7170
7171         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7172         to dbus-marshal-validate.[hc]
7173
7174         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7175         dbus-internals.c
7176
7177         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7178         to dbus-marshal-*.[hc]
7179
7180         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7181         function here from dbus-marshal.c
7182
7183 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7184
7185         * NEWS: Update for 0.23.
7186
7187         * configure.in: Release 0.23.
7188
7189 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7190
7191         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7192         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7193         behind.
7194
7195         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7196         uninstall"
7197
7198         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7199         is an enum, get the enum's underlying type.  Another mono
7200         1.1.3 fix.
7201
7202 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7203
7204         Patch from Sjoerd Simons <sjoerd@luon.net>
7205
7206         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7207         DESTDIR.  It breaks stuff.
7208
7209 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7210
7211         Patch from Tambet Ingo <tambet@ximian.com>
7212
7213         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7214         calling type.GetElementType().  The code previously depended on
7215         broken Mono behavior, which was fixed in Mono 1.1.3.
7216
7217         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7218         Activator.CreateInstance() so that the class's constructor is
7219         called with the right parameters.
7220
7221 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7222
7223         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7224
7225         * dbus/dbus-connection.c
7226         (_dbus_connection_queue_received_message_link): Call
7227         _dbus_connection_remove_timeout() instead of the _locked()
7228         variant, since it's always called from
7229         _dbus_connection_handle_watch(), which handles the locking.
7230         Removed the _locked() variant since it's no longer used.
7231
7232 2005-01-03  Havoc Pennington  <hp@redhat.com>
7233
7234         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7235         return
7236         
7237 2004-12-26  Havoc Pennington  <hp@redhat.com>
7238
7239         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7240
7241 2005-01-03  Havoc Pennington  <hp@redhat.com>
7242
7243         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7244         floating point
7245
7246         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7247
7248 2005-01-02  Havoc Pennington  <hp@redhat.com>
7249
7250         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7251
7252 2005-01-01  Havoc Pennington  <hp@redhat.com>
7253
7254         * configure.in: add -Wfloat-equal
7255
7256 2005-01-01  Havoc Pennington  <hp@redhat.com>
7257
7258         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7259         for a variety of reasons '==' doesn't do this.
7260
7261 2004-12-31  Havoc Pennington  <hp@redhat.com>
7262
7263         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7264         I keep wishing I had
7265
7266 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7267
7268         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7269
7270 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7271
7272         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7273         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7274         dbus-protocol.h.  Because they are defines and not enums they are not
7275         autogenerated.
7276
7277 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7278
7279         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7280         dbus_bus_activate_service
7281
7282         * python/dbus.py (Bus.activate_service): activate a service on the
7283         bus.
7284
7285 2004-12-24  Havoc Pennington  <hp@redhat.com>
7286
7287         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7288         file format has also changed and I haven't adapted to that yet
7289         
7290         * Makefile.am: load .gcno files from latest gcc
7291
7292 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7293         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7294
7295         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7296         lowlevel binding
7297
7298         * python/dbus.py (get_unix_user): Added binding to 
7299         call dbus_bindings.bus_get_unix_user
7300
7301         * python/extract.py: Modified the proto_pat regex to
7302         handle unsigned long
7303
7304 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7305
7306         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7307         better POSIX compliance.
7308
7309 2004-12-19  Havoc Pennington  <hp@redhat.com>
7310
7311         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7312         (_dbus_string_insert_8_aligned): new functions
7313
7314         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7315
7316 2004-12-18  Havoc Pennington  <hp@redhat.com>
7317
7318         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7319         macro
7320
7321         * dbus/dbus-message.c: fix a comment, and add a still-unused
7322         not-implemented function
7323
7324         * dbus/dbus-marshal.h: fix comment
7325
7326         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7327
7328 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7329
7330         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7331         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7332         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7333         Type.UnderlyingSystemType to get the actual system type
7334         underneath.  This code previously depended on the broken Mono
7335         behavior, which was fixed in 1.1.3.
7336
7337 2004-11-27  Havoc Pennington  <hp@redhat.com>
7338
7339         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7340         are disabled
7341         (_dbus_string_get_const_data): inline when asserts are disabled
7342
7343         * dbus/dbus-message.c: record the _dbus_current_generation of
7344         creation so we can complain if dbus_shutdown() is used improperly.
7345         Do this only if checks are enabled.
7346
7347         * dbus/dbus-connection.c: ditto
7348         
7349 2004-11-26  Havoc Pennington  <hp@redhat.com>
7350
7351         * test/glib/test-profile.c: add with_bus mode to profile echoes
7352         that go through the bus.
7353
7354         * test/glib/run-test.sh: add ability to run test-profile
7355
7356         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7357         config file reload.
7358
7359 2004-11-26  Havoc Pennington  <hp@redhat.com>
7360
7361         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7362         thing was implemented
7363
7364 2004-11-26  Havoc Pennington  <hp@redhat.com>
7365
7366         * test/glib/test-profile.c: tweak a bit, add support for some
7367         made-up minimal malloc overhead with plain sockets, since in 
7368         real life some sort of buffers are unavoidable thus we could 
7369         count them in the theoretical best case
7370
7371 2004-11-26  Havoc Pennington  <hp@redhat.com>
7372
7373         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7374         where I was trying to cache one too many messages
7375
7376 2004-11-26  Havoc Pennington  <hp@redhat.com>
7377
7378         * dbus/dbus-message.c: reimplement message cache as an array which 
7379         makes the cache about twice as fast and saves maybe 1.5% overall
7380
7381 2004-11-26  Havoc Pennington  <hp@redhat.com>
7382
7383         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7384         message cache lock here
7385
7386 2004-11-26  Havoc Pennington  <hp@redhat.com>
7387
7388         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7389         the "char byte_order" next to each other to save 4 bytes
7390         (dbus_message_new_empty_header): reduce preallocation, since the
7391         message cache should achieve a similar effect
7392         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7393         message cache that keeps a few DBusMessage around in a pool,
7394         another 8% speedup or so.
7395
7396         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7397
7398 2004-11-25  Havoc Pennington  <hp@redhat.com>
7399
7400         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7401         to write, without reading or blocking, try it before the poll()
7402         and skip the poll() if nothing remains to write. This is about a
7403         3% speedup in the echo client/server
7404
7405 2004-11-25  Havoc Pennington  <hp@redhat.com>
7406
7407         The primary change here is to always write() once before adding
7408         the write watch, which gives us about a 10% performance increase.
7409         
7410         * dbus/dbus-transport-unix.c: a number of modifications to cope
7411         with removing messages_pending
7412         (check_write_watch): properly handle
7413         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7414         messages_pending stuff
7415         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7416         AUTHENTICATED cases
7417         (unix_handle_watch): after writing, see if the write watch can be
7418         removed
7419         (unix_do_iteration): assert that write_watch/read_watch are
7420         non-NULL rather than testing that they aren't, since they 
7421         aren't allowed to be NULL. check_write_watch() at the end so 
7422         we add the watch if we did not finish writing (e.g. got EAGAIN)
7423
7424         * dbus/dbus-transport-protected.h: remove messages_pending call,
7425         since it resulted in too much inefficient watch adding/removing; 
7426         instead we now require that the transport user does an iteration 
7427         after queueing outgoing messages, and after trying the first
7428         write() we add a write watch if we got EAGAIN or exceeded our 
7429         max bytes to write per iteration setting
7430
7431         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7432         function
7433
7434         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7435         freed and then accessed, valgrind flagged this bug, fix it
7436
7437         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7438         as the last valid field plus 1, where really it is equal to the
7439         last valid field. Corrects some message corruption issues.
7440
7441         * dbus/dbus-mainloop.c: verbosity changes
7442
7443         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7444         instead of aborting in one of the test codepaths
7445
7446         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7447         caused not printing the pid ever again if a verbose was missing
7448         the newline at the end
7449         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7450
7451         * dbus/dbus-connection.c: verbosity changes; 
7452         (dbus_connection_has_messages_to_send): new function
7453         (_dbus_connection_message_sent): no longer call transport->messages_pending
7454         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7455         try to write() immediately, so we can avoid the write watch. This
7456         is the core purpose of this patchset
7457         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7458         dump the outgoing message queue, so nobody will get confused
7459         trying to send them or thinking stuff is pending to be sent
7460
7461         * bus/test.c: verbosity changes
7462
7463         * bus/driver.c: verbosity/assertion changes
7464
7465         * bus/dispatch.c: a bunch of little tweaks to get it working again
7466         because this patchset changes when/where you need to block.
7467
7468 2004-11-23  Havoc Pennington  <hp@redhat.com>
7469
7470         * test/glib/test-profile.c: modify to accept a plain_sockets
7471         argument in which case it will bench plain sockets instead of
7472         libdbus, for comparison purposes.
7473
7474 2004-11-22  Havoc Pennington  <hp@redhat.com>
7475
7476         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7477         threads for more time, so sysprof can get a grip on it.
7478
7479         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7480         pointless variable
7481
7482 2004-11-13  Havoc Pennington  <hp@redhat.com>
7483
7484         * test/glib/test-profile.c: fix this thing up a bit
7485
7486         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7487         preallocation sizes by a fair bit; not sure if this will be an
7488         overall performance win or not, but it does reduce reallocs.
7489
7490         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7491         the test hack that forced constant realloc if asserts are
7492         disabled, so we can profile sanely. Sprinkle in some
7493         _DBUS_UNLIKELY() which are probably pointless, but before I
7494         noticed the real performance problem I put them in.
7495         (_dbus_string_validate_utf8): micro-optimize this thing a little
7496         bit, though callgrind says it didn't help; then special-case
7497         ascii, which did help a lot; then be sure we detect nul bytes as
7498         invalid, which is a bugfix.
7499         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7500         superstition; use memset to nul the padding instead of a manual
7501         loop.
7502         (_dbus_string_get_length): inline this as a
7503         macro; it showed up in the profile because it's used for loop
7504         tests and so forth
7505
7506 2004-11-10  Colin Walters  <walters@verbum.org>
7507
7508         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7509         for extra paranoia.
7510
7511 2004-11-09  Colin Walters  <walters@verbum.org>
7512
7513         * dbus/dbus-string.c (_dbus_string_get_length): New
7514         function, writes DBusString to C buffer.
7515
7516         * dbus/dbus-string.h: Prototype it.
7517
7518         * dbus/dbus-message.c (dbus_message_type_to_string): New
7519         function, converts message type into C string.
7520
7521         * dbus/dbus-message.h: Prototype it.
7522
7523         * bus/selinux.c (bus_selinux_check): Take source pid,
7524         target pid, and audit data.  Pass audit data to
7525         avc_has_perm.
7526         (log_audit_callback): New function, appends extra
7527         audit information.
7528         (bus_selinux_allows_acquire_service): Also take
7529         service name, add it to audit data.
7530         (bus_selinux_allows_send): Also take message
7531         type, interface, method member, error name,
7532         and destination, and add them to audit data.
7533         (log_cb): Initialize func_audit.
7534         
7535         * bus/selinux.h (bus_selinux_allows_acquire_service)
7536         (bus_selinux_allows_send): Update prototypes 
7537
7538         * bus/services.c (bus_registry_acquire_service): Pass
7539         service name to bus_selinux_allows_acquire_service.
7540
7541         * bus/bus.c (bus_context_check_security_policy): Pass
7542         additional audit data.  Move assignment of dest
7543         to its own line.
7544
7545 2004-11-07  Colin Walters  <walters@verbum.org>
7546
7547         * dbus/dbus-transport-unix.c (do_authentication): Always
7548         initialize auth_completed.
7549         
7550 2004-11-07  Colin Walters  <walters@verbum.org>
7551
7552         * bus/bus.c (load_config): Break into three
7553         separate functions: process_config_first_time_only,
7554         process_config_every_time, and process_config_postinit.
7555         (process_config_every_time): Move call of
7556         bus_registry_set_service_context_table into
7557         process_config_postinit.
7558         (process_config_postinit): New function, does
7559         any processing that needs to happen late
7560         in initialization (and also on reload).
7561         (bus_context_new): Instead of calling load_config,
7562         open config parser here and call process_config_first_time_only
7563         and process_config_every_time directly.  Later, after
7564         we have forked but before changing UID,
7565         invoke bus_selinux_full_init, and then call
7566         process_config_postinit.
7567         (bus_context_reload_config): As in bus_context_new,
7568         load parse file inside here, and call process_config_every_time
7569         and process_config_postinit.
7570
7571         * bus/services.h, bus/services.c
7572         (bus_registry_set_service_context_table): Rename
7573         from bus_registry_set_sid_table.  Take string hash from config
7574         parser, and convert them here into SIDs.
7575
7576         * bus/config-parser.c (struct BusConfigParser): Have
7577         config parser only store a mapping of service->context
7578         string.
7579         (merge_service_context_hash): New function.
7580         (merge_included): Merge context string hashes instead
7581         of using bus_selinux_id_table_union.
7582         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7583         simply create a new string hash.
7584         (bus_config_parser_unref): Unref it.
7585         (start_selinux_child): Simply insert strings into hash,
7586         don't call bus_selinux_id_table_copy_over.
7587
7588         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7589         (bus_selinux_id_table_copy_over): Delete.
7590
7591 2004-11-03  Colin Walters  <walters@verbum.org>
7592
7593         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7594         variables.
7595         
7596 2004-11-03  Colin Walters  <walters@verbum.org>
7597
7598         * bus/test-main.c (test_pre_hook): Fix test logic,
7599         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7600
7601 2004-11-02  Colin Walters  <walters@redhat.com>
7602
7603         * bus/selinux.c (bus_selinux_init): Split into two functions,
7604         bus_selinux_pre_init and bus_selinux_post_init.
7605         (bus_selinux_pre_init): Just determine whether SELinux is
7606         enabled.
7607         (bus_selinux_post_init): Do everything else.
7608
7609         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7610         config file, and bus_selinux_post_init after.  This ensures that
7611         we don't lose the policyreload notification thread that
7612         bus_selinux_init created before forking previously.
7613         
7614         * bus/test-main.c (test_pre_hook): Update for split.
7615
7616 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7617
7618         Patch from Johan Fischer <linux@fischaz.com>
7619         
7620         * mono/doc/Makefile.am (install-data-local): Added directory
7621         install for DESTDIR
7622
7623 2004-10-29  Colin Walters  <walters@redhat.com>
7624
7625         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7626         parameter for fd to write pid to.       
7627
7628         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7629         
7630         * bus/bus.c (bus_context_new): Pass print_pid_fd
7631         to _dbus_become_daemon (bug #1720)
7632
7633 2004-10-29  Colin Walters  <walters@redhat.com>
7634
7635         Patch from Ed Catmur <ed@catmur.co.uk>
7636
7637         * mono/doc/Makefile.am (install-data-local): Handle
7638         DESTDIR.
7639
7640 2004-10-29  Colin Walters  <walters@redhat.com>
7641
7642         * bus/.cvsignore, qt/.cvsignore: Update.
7643
7644 2004-10-29  Colin Walters  <walters@redhat.com>
7645
7646         Patch from Kristof Vansant <de_lupus@pandora.be>
7647
7648         * configure.in: Detect Slackware.
7649         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7650         * bus/rc.messagebus.in: New file.
7651
7652 2004-10-29  Colin Walters  <walters@redhat.com>
7653
7654         * tools/dbus-monitor.c (filter_func): Return
7655         DBUS_HANDLER_RESULT_HANDLED in filter function
7656         for now.  See:
7657         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7658
7659 2004-10-29  Colin Walters  <walters@redhat.com>
7660
7661         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7662
7663         * bus/services.c (bus_registry_acquire_service): 
7664         Correctly retrieve service name from DBusString
7665         for printing.
7666
7667 2004-10-29  Colin Walters  <walters@redhat.com>
7668
7669         * dbus/dbus-glib.h: Update documentation to not
7670         refer to internal APIs.
7671
7672 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7673
7674         * mono/Arguments.cs (GetDBusTypeConstructor):
7675         type.UnderlyingSystemType will return "System.Byte" if you do it
7676         on "byte[]", which is not what we want.  So check the type.IsArray
7677         property and use System.Array instead.
7678
7679 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7680
7681         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7682         the DBusUserInfo structure since this is passed into the function.
7683         This would cause a double free when the function that allocated
7684         the structure would try to free it when an error occured.
7685
7686         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7687         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7688         for service activation to avoid 32bit/64bit parallel install issues
7689
7690 2004-10-21  Colin Walters  <walters@verbum.org>
7691
7692         * AUTHORS: Fix my email address, the @gnu.org one
7693         has been bouncing for some time.  Also add J5.
7694         
7695 2004-10-21  Colin Walters  <walters@verbum.org>
7696
7697         * dbus/dbus-transport-unix.c (do_authentication): Return
7698         authentication status to callers.
7699         (unix_handle_watch): If we completed authentication this round,
7700         don't do another read.  Instead wait until the next iteration,
7701         after we've read any pending data in the auth buffer.
7702         (unix_do_iteration): Ditto.
7703         (unix_handle_watch): Updated for new do_authentication prototype.
7704
7705 2004-10-18  Colin Walters  <walters@verbum.org>
7706
7707         * bus/selinux.c (bus_selinux_enabled): Handle
7708         --disable-selinux case.
7709         
7710 2004-10-18  Colin Walters  <walters@verbum.org>
7711
7712         * bus/selinux.h: Add bus_selinux_enabled.
7713         
7714         * bus/selinux.c (bus_selinux_enabled): Implement it.
7715         
7716         * bus/config-parser.c (struct include): Add
7717         if_selinux_enabled member.
7718         (start_busconfig_child): Parse if_selinux_enabled
7719         attribute for include.
7720         (bus_config_parser_content): Handle it.
7721
7722         * bus/session.conf.in, bus/system.conf.in: Add
7723         inclusion of context mapping to default config files;
7724         conditional on SELinux being enabled.
7725         
7726         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7727         
7728         * test/data/invalid-config-files/badselinux-1.conf, 
7729         test/data/invalid-config-files/badselinux-2.conf:
7730         Test files for bad syntax.
7731         
7732 2004-10-17  Colin Walters  <walters@verbum.org>
7733
7734         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7735         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7736         format specifier mismatches.
7737
7738 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7739
7740         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7741         format string.
7742
7743         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7744         pointer (bug #1540, Leonardo Boiko).
7745
7746 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7747
7748         * mono/BusDriver.cs: Changed BusDriver struct to remove
7749         the ServiceCreated and ServiceDeleted events and replace them
7750         with the new ServiceOwnerChanged event.
7751
7752         * mono/example/BusListener.cs: Added a new example program,
7753         which listens for and reports any ServiceOwnerChanged events
7754         on the bus driver.
7755
7756         * mono/example/Makefile.am (DESTDIR): Build changes for the
7757         new BusListener.cs example.
7758
7759 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7760
7761         * bus/signals.c (bus_match_rule_parse): validate the components of
7762         match rules (bug #1439).
7763
7764         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7765
7766 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7767
7768         * doc/dbus-specification.xml: document ServiceOwnerChanged
7769         signal.
7770         
7771         * bus/driver.c, bus/driver.h, bus/services.c: Use
7772         ServiceOwnerChanged signal instead of ServiceCreated and
7773         ServiceDeleted.
7774         
7775         * bus/dispatch.c: update testcase for the new signal.
7776
7777 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7778
7779         Patch from Nat Friedman <nat@novell.com>
7780
7781         * mono/Makefile.am: A number of small build fixes to allow "make
7782         distcheck" to succeed.
7783
7784         * mono/example/Makefile.am: "make distcheck" fixes.
7785
7786         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7787         key in @srcdir@.
7788
7789         * test/Makefile.am: "make distcheck" fixes.
7790
7791 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7792
7793         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7794
7795         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7796
7797         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7798         messages after the first one (bug #1389).
7799         
7800         * bus/dispatch.c (check_double_hello_message): add a test case for
7801         the double hello message bug.
7802         (check_existent_service_activation): fix check of spawning error.
7803         
7804 2004-09-16  David Zeuthen  <david@fubar.dk>
7805
7806         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7807
7808 2004-09-12  David Zeuthen  <david@fubar.dk>
7809
7810         Patch from Kay Sievers <kay.sievers@vrfy.org>
7811
7812         * bus/bus.c (bus_context_new):
7813         * bus/bus.h:
7814         * bus/main.c (usage)
7815         (main):
7816         Add commandline option --nofork to override configuration file
7817         setting.
7818
7819 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7820
7821         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7822         compilers don't like it (bug #974).
7823
7824 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7825
7826         * qt/connection.*: Applied patch by Jérôme Lodewyck
7827         <lodewyck@clipper.ens.fr> to integrate an existing
7828         connection into the Qt eventloop
7829
7830 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7831
7832         * mono/BusDriver.cs: Added.  This is a class for interacting with
7833         the org.freedesktop.DBus service.
7834
7835         * mono/Message.cs: Added a mechanism to expose the message that is
7836         currently being dispatched via the static Message.Current
7837         property.  Added Message.Sender and Message.Destination
7838         properties.
7839
7840         * mono/Handler.cs: Expose the dispatched message via
7841         Message.Current when handling method calls.
7842
7843         * mono/Service.cs: Expose the dispatched message via
7844         Message.Current when handling signal emissions.
7845         
7846         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7847         Connection.BaseService property.
7848
7849 2004-08-28  Havoc Pennington  <hp@redhat.com>
7850
7851         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7852
7853         More fixes from Steve Grubb
7854         
7855         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7856         (_dbus_listen_tcp_socket): fix fd leak
7857
7858         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7859         EINTR to a bit lower in the code
7860
7861 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7862
7863         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7864         TRUE if we are inquiring about the existence of the built-in
7865         org.freedesktop.DBus service.
7866
7867 2004-08-25  John Palmieri  <johnp@redhat.com>
7868         * bus/config-parser.c:
7869         (struct PolicyType): Add POLICY_CONSOLE
7870         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7871         (start_busconfig_child): Sets up console element when
7872         <policy at_console=""> is encountered in a policy file
7873         (append_rule_from_element): Convert console elements to console
7874         rules.
7875
7876         * bus/policy.c: 
7877         (bus_policy_create_client_policy): Add console rules to the client
7878         policy based on if the client is at the console
7879         (bus_policy_append_console_rule): New function for adding a
7880         console rule to a policy
7881         (bus_policy_merge): Handle console rule merging
7882
7883         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7884         where we check for console user files
7885         
7886         * dbus/dbus-sysdeps.c:
7887         (_dbus_file_exists): New function which checks if the given
7888         file exists
7889         (_dbus_user_at_console): New function which does the system
7890         specific process of checking if the user is at the console
7891
7892         * dbus/dbus-userdb.c:
7893         (_dbus_is_console_user): New function converts a UID to user name
7894         and then calls the system specific _dbus_user_at_console to 
7895         see if the user is at the console and therefor a console user
7896
7897 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7898
7899         * bus/config-parser.c (set_limit):
7900         * bus/dbus-daemon-1.1.in:
7901         * test/data/valid-config-files/many-rules.conf: set the
7902         max_match_rules_per_connection limt from the config file. 
7903
7904         * doc/busconfig.dtd: update the DTD.
7905
7906         * bus/driver.c: remove some unused variables.
7907
7908 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7909
7910         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7911         it's been replaced by dbus_g_bus_get
7912
7913 2004-08-23  Colin Walters  <walters@redhat.com>
7914
7915         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7916
7917         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7918
7919         * bus/selinux.c: Create a thread for policy reload notification.
7920         (bus_selinux_get_policy_root): Implement.
7921
7922         * bus/config-parser.c (start_busconfig_child)
7923         (bus_config_parser_content): Support SELinux-root relative
7924         inclusion.
7925
7926         * configure.in <HAVE_SELINUX>: Add -lpthread.
7927         
7928         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7929         (test_post_hook): Move memory checking into here.
7930         (test_pre_hook, test_post_hook): Move SELinux checks in
7931         here, but conditional on a DBUS_TEST_SELINUX environment
7932         variable.  Unfortunately we can't run the SELinux checks
7933         as a normal user, since they won't have any permissions
7934         for /selinux.  So this will have to be tested manually
7935         for now, until we have virtualization for most of
7936         libselinux.
7937         
7938 2004-08-23  Havoc Pennington  <hp@redhat.com>
7939
7940         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7941         drop supplementary groups, suggested by Steve Grubb
7942
7943 2004-08-20  Colin Walters  <walters@redhat.com>
7944
7945         * bus/config-parser.c (start_busconfig_child): Remove some unused
7946         variables.
7947         
7948         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7949         warning.
7950
7951 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7952
7953         * configure.in: If --enable-mono is passed in, if we can't find
7954         mono error out.
7955
7956         * mono/Makefile.am: Use /gacutil to install assemblies into the
7957         GAC and not /root.
7958
7959 2004-08-12  Havoc Pennington  <hp@redhat.com>
7960
7961         * NEWS: update for 0.22
7962
7963         * configure.in: release 0.22
7964
7965 2004-08-11  Colin Walters  <walters@redhat.com>
7966
7967         * tools/dbus-send.c (main, usage): Add --reply-timeout
7968         argument.
7969
7970 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7971
7972         * bus/bus.c (process_config_first_time_only): get rid of an unused
7973         DBusError that was causing a memoy leak (bug #989).
7974
7975         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7976         fix compilation on Solaris/Forte C (bug #974)
7977
7978         * bus/main.c (main): plug two minuscule memleaks.
7979
7980 2004-08-10  Havoc Pennington  <hp@redhat.com>
7981
7982         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7983
7984 2004-08-09  Havoc Pennington  <hp@redhat.com>
7985
7986         * COPYING: switch to Academic Free License version 2.1 instead of
7987         2.0, to resolve complaints about patent termination clause.
7988
7989 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7990
7991         * README: added documentation for the --enable-python 
7992         configure switch.
7993
7994 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7995
7996         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7997         _unref in the SELinux support.
7998
7999         * doc/busconfig.dtd: update DTD for SELinux support.
8000
8001         * bus/config-loader-libxml.c: fix error handler and parser
8002         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8003
8004         * configure.in: remove the warning about libxml2.
8005
8006         * dbus/dbus-bus.c: silence doxygen warning.
8007
8008 2004-07-31  Colin Walters  <walters@redhat.com>
8009
8010         * configure.in: Move #error in SELinux check to its own line.
8011
8012 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8013
8014         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8015         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8016         dbus_error_set.
8017
8018         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8019         broken by the change in the _SET_OOM macros.
8020
8021 2004-07-31  Colin Walters  <walters@redhat.com>
8022
8023         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8024         BUS_SET_OOM.
8025
8026 2004-07-31  Colin Walters  <walters@redhat.com>
8027
8028         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8029         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8030         AC_MSG_CHECKING.
8031
8032 2004-07-24  Havoc Pennington  <hp@redhat.com>
8033
8034         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8035
8036         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8037         functionality
8038
8039         * configure.in: add --enable-selinux
8040         
8041         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8042
8043         * bus/main.c (main): initialize and shut down selinux
8044
8045         * bus/connection.c: store SELinux ID on each connection, to avoid 
8046         repeated getting of the string context and converting it into 
8047         an ID
8048
8049         * bus/bus.c (bus_context_get_policy): new accessor, though it
8050         isn't used
8051         (bus_context_check_security_policy): check whether the security
8052         context of sender connection can send to the security context of
8053         recipient connection
8054
8055         * bus/config-parser.c: add parsing for <selinux> and <associate>
8056         
8057         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8058         implement dbus_connection_get_unix_fd()
8059
8060         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8061         function, used by the selinux stuff
8062         
8063 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8064
8065         * bus/config-loader-libxml.c: complete the implementation of
8066         libxml backend for config file loader. Doesn't work with full OOM
8067         test yet. 
8068         
8069         * configure.in: change error when selecting libxml into a warning.
8070         
8071         * test/data/invalid-config-files: add two non-well-formed XML
8072         files. 
8073         
8074         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8075         
8076         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8077         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8078         be necessary to read all the buffer. (bug #894)
8079
8080         * bus/activation.c (bus_activation_activate_service): fix a
8081         potential assertion failure (bug #896). Small optimization in the
8082         case of auto-activation messages.
8083
8084         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8085         add test case for byte-through-vararg bug (#901). patch by Kimmo
8086         Hämäläinen. 
8087
8088 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8089
8090         * python/dbus.py:
8091         * python/dbus_bindings.pyx.in:
8092         Add dbus.init_gthreads (), allow emit_signal to pass
8093         arguments to the signal.
8094         
8095 2004-07-24  Havoc Pennington  <hp@redhat.com>
8096
8097         * AUTHORS: add some people, not really comprehensively, let me
8098         know if I missed you
8099
8100 2004-07-24  Havoc Pennington  <hp@redhat.com>
8101
8102         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8103         Owen
8104
8105         * test/Makefile.am (DIST_SUBDIRS): here also
8106
8107 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8108
8109         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8110         breaking build on Solaris, reported by Farhad Saberi on the ML.
8111
8112         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8113         va_arg invocation to account for integer promotion in the case of
8114         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8115
8116         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8117         _dbus_list_get_first_link, not _dbus_list_get_first.
8118
8119         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8120
8121         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8122         handler functions so that the asserts in _dbus_object_subtree_unref
8123         do not fail.
8124
8125         * dbus/dbus-transport-unix.c (do_reading):
8126         _dbus_transport_queue_messages return value is of type
8127         dbus_bool_t, not DBusDispatchStatus.
8128         
8129 2004-07-19  David Zeuthen  <david@fubar.dk>
8130
8131         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8132
8133         * bus/dispatch.c:
8134         (check_get_connection_unix_user): Debug says GetProperty; but the
8135         method is called GetConnectionUnixUser
8136         (check_get_connection_unix_process_id): New function
8137         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8138         also call check_get_connection_unix_process_id()
8139         
8140         * bus/driver.c:
8141         (bus_driver_handle_get_connection_unix_process_id): New function,
8142         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8143         interface
8144         
8145         * dbus/dbus-auth.c:
8146         (handle_server_data_external_mech): Set pid from the credentials
8147         obtained from the socket
8148         
8149         * dbus/dbus-connection.c:
8150         (dbus_connection_get_unix_process_id): New function
8151         
8152         * dbus/dbus-connection.h: 
8153         Add prototype for dbus_connection_get_unix_process_id
8154         
8155         * dbus/dbus-transport.c:
8156         (_dbus_transport_get_unix_process_id): New function
8157         
8158         * dbus/dbus-transport.h:
8159         Add prototype for _dbus_transport_get_unix_process_id
8160         
8161 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8162
8163         * dbus/dbus-message.c: Message counter fix, patch by Christian
8164         Hammond <chipx86@gnupdate.org>
8165
8166 2004-07-18  Seth Nickell  <seth@gnome.org>
8167
8168         * python/dbus.py:
8169         * python/dbus_bindings.pyx.in:
8170         * python/tests/test-client.py:
8171
8172         Add dbus.ByteArray and dbus_bindings.ByteArray
8173         types so that byte streams can be passed back.
8174
8175         Give jdahlin the heaps of credit that are so
8176         rightfully his.
8177         
8178 2004-07-12  Seth Nickell  <seth@gnome.org>
8179
8180         * python/dbus.py:
8181
8182         Add message argument to the default object_method_handler
8183         function.
8184         
8185         * python/dbus_bindings.pyx.in:
8186
8187         Automatically return NIL when passed an empty list
8188         (we can't pass back a list since lists are typed
8189         and we don't have any idea what type the the client
8190         intended the list to be... :-( )
8191         
8192 2004-07-10  Seth Nickell  <seth@gnome.org>
8193
8194         * python/examples/Makefile.am:
8195
8196         Fix distcheck breakage caused by new examples.
8197
8198 2004-07-10  Seth Nickell  <seth@gnome.org>
8199
8200         * python/dbus.py:
8201
8202         Add "message" argument to service-side dbus.Object
8203         methods. This will break existing services written
8204         using the python bindings, but will allow extraction
8205         of all the message information (e.g. who its from).
8206
8207         Add improved "object oriented" signal handling/emission.
8208         
8209         * python/examples/example-service.py:
8210
8211         Nix this example.
8212         
8213         * python/examples/example-signal-emitter.py:
8214         * python/examples/example-signal-recipient.py:
8215
8216         Two new examples that show how to emit and receive
8217         signals using the new APIs.
8218         
8219         * python/examples/example-signals.py:
8220         * python/examples/gconf-proxy-service.py:
8221         * python/examples/gconf-proxy-service2.py:
8222
8223         Add "message" argument to service methods.
8224
8225 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8226
8227         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8228         * dbus/bus.c (dbus_bus_get_unix_user)
8229         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8230         method of org.freedesktop.DBus interface.
8231
8232         * bus/dispatch.c: test case
8233
8234 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8235
8236         * python/Makefile.am: switched include directory from glib/ to dbus/
8237         since dbus-glib.h moved
8238  
8239 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8240
8241         * configure.in: prevent building the gcj stuff and libxml loader
8242         since they are broken.
8243
8244 2004-06-20  Havoc Pennington  <hp@redhat.com>
8245
8246         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8247         codes from the dbus error names
8248         
8249         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8250         as dbus/dbus-glib.h and that breakage is now visible due to 
8251         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8252         
8253         * glib/dbus-glib.h: s/gproxy/g_proxy/
8254
8255         * dbus/dbus-shared.h: new header to hold stuff shared with
8256         binding APIs
8257         
8258         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8259         than dbus-errors.h
8260
8261         * glib/dbus-glib.h (dbus_set_g_error): move to
8262         dbus-glib-lowlevel.h
8263
8264         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8265         of stuff to enable this
8266
8267         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8268
8269         * a bunch of other changes with the same basic "separate glib 
8270         bindings from dbus.h" theme
8271         
8272 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8273
8274         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8275
8276         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8277
8278 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8279
8280         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8281         the reply value of the ServiceExists message.
8282
8283 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8284
8285         * python/dbus_bindings.pyx.in: No longer need to parse path
8286         elements and pass them as arrays of strings.  The C API now
8287         accepts plain path strings.
8288         (_build_parsed_path): removed 
8289
8290 2004-06-07  Havoc Pennington  <hp@redhat.com>
8291
8292         * doc/TODO: remove auto-activation item since it's done; sort
8293         items by importance/milestone
8294
8295 2004-06-07  Havoc Pennington  <hp@redhat.com>
8296
8297         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8298         random signature when using REQUIRED_FIELDS (this hack won't work
8299         in the long term)
8300
8301         * dbus/dbus-message.c: change the signature to be a header field,
8302         instead of message->signature special-case string. Incremental
8303         step forward. Then we can fix up code to send the signature in the
8304         message, then fix up code to validate said signature, then fix up
8305         code to not put the typecodes inline, etc.
8306         (load_one_message): don't make up the signature after the fact
8307         (decode_header_data): require signature field for the known
8308         message types
8309
8310         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8311
8312         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8313
8314 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8315
8316         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8317
8318         * mono/Handler.cs: Updated to follow new path argument for
8319         (un-)registering objects.
8320
8321         * mono/example/Makefile.am:
8322         * mono/Makefile.am:
8323         * configure.in: Bumped required version for mono and use new -pkg
8324         syntax for deps
8325
8326 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8327
8328         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8329         registration functions take the path argument as char* instead of
8330         char**.
8331
8332         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8333         split off the path decompostion part of
8334         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8335         warnings. 
8336
8337         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8338         
8339 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8340  
8341         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8342         machine approach.  A state is implemented as a function that
8343         handles incoming events as specified for that state.
8344         
8345         * doc/dbus-specification.xml: Update auth protocol state machine
8346         specification to match implementation.  Remove some leftover
8347         base64 examples.
8348
8349 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8350
8351         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8352         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8353         quiet doxygen.
8354
8355         * Doxyfile.in: remove deprecated options.
8356
8357         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8358         glib/test-thread.h, glib/test-thread-client.c,
8359         glib/test-thread-server.c, glib/test-profile.c,
8360         glib/test-dbus-glib.c: remove these unused files.
8361
8362 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8363
8364         * dbus/dbus-object-tree.c
8365         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8366         non-fallback handlers (bug #684).
8367         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8368         (find_subtree_recurse): report wether the returned subtree is an
8369         exact match or a "fallback" match higher up in the tree.
8370         (object_tree_test_iteration): update test case.
8371
8372 2004-06-01  Seth Nickell  <seth@gnome.org>
8373
8374         * python/dbus_bindings.pyx.in:
8375         * python/tests/test-client.py:
8376
8377         Round off basic type support. Add dicts (yay!), and 
8378         remaining array types.
8379
8380         Make MessageIter more general so it works for dicts too.
8381
8382         Mark all loop variables as C integers.
8383         
8384 2004-05-31  Havoc Pennington  <hp@redhat.com>
8385
8386         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8387         "in" before "out"
8388
8389         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8390
8391         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8392         option that runs the tests, and start filling in some code
8393         including for starters just dumping the interfaces to stdout
8394
8395         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8396
8397         * test/data/valid-introspection-files/lots-of-types.xml: test of
8398         an example introspection file
8399
8400         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8401         "node" (I think...)
8402
8403 2004-05-31  Seth Nickell  <seth@gnome.org>
8404
8405         * python/dbus_bindings.pyx.in:
8406         * python/tests/test-client.py:
8407
8408         Test Suite: 1
8409         Python Bindings: 0
8410
8411         Fix string array memory trashing bug... oops...
8412
8413 2004-05-30  Seth Nickell  <seth@gnome.org>
8414
8415         * python/dbus.py:
8416
8417         Add a nicer-but-less-flexible alternate API for handling 
8418         calls to virtual objects in dbus.ObjectTree.
8419
8420         Screw up the argument order to the dbus.Object constructor
8421         for consistency with dbus.ObjectTree (and to make dbus_methods
8422         optional for future extension)
8423         
8424         * python/examples/Makefile.am:
8425         * python/examples/gconf-proxy-service.py:
8426         * python/examples/gconf-proxy-service2.py:
8427
8428         Alternate implementation of gconf-proxy-service using the
8429         nicer dbus.ObjectTree API.
8430         
8431         * python/examples/example-service.py:
8432         * python/tests/test-server.py
8433
8434         Reverse the argument order to deal with dbus.Object constructor
8435         changes.
8436         
8437 2004-05-30  Seth Nickell  <seth@gnome.org>
8438
8439         * python/examples/example-client.py:
8440         * python/examples/example-service.py:
8441
8442         Take it back. Lists seem to work but they're broken
8443         in the test suite. Make the base examples use
8444         lists (works fine).
8445
8446 2004-05-30  Seth Nickell  <seth@gnome.org>
8447
8448         * python/dbus_bindings.pyx.in:
8449         * python/tests/test-client.py:
8450
8451         Add some more tests and fix errors that crop up.
8452         Unfortunately, currently it seems like marshalling
8453         and unmarshalling of lists is completely broken :-(
8454
8455 2004-05-30  Seth Nickell  <seth@gnome.org>
8456
8457         * python/dbus_bindings.pyx.in:
8458
8459         Add support for ObjectPath type.
8460
8461         * python/dbus.py:
8462
8463         Refactor message handling code to a common function.
8464         
8465         * python/tests/test-client.py:
8466         * python/tests/test-server.py:
8467
8468         Add tests that check to make sure values of all types
8469         can be echoed from a service w/o mangling.
8470         
8471 2004-05-29  Seth Nickell  <seth@gnome.org>
8472
8473         * python/dbus.py:
8474
8475         Add ObjectTree class which allows implementation
8476         of trees of "virtual" objects. Basically the python
8477         wrapper for "register_fallback".
8478         
8479         * python/examples/Makefile.am
8480         * python/examples/gconf-proxy-client.py:
8481         * python/examples/gconf-proxy-service.py:
8482
8483         Implement a simple GConf proxy service that supports
8484         get/set on string and int GConf keys using the ObjectTree.
8485         
8486 2004-05-29  Seth Nickell  <seth@gnome.org>
8487
8488         * python/dbus.py:
8489         * python/examples/example-client.py:
8490         * python/examples/example-service.py:
8491         * python/examples/list-system-services.py:
8492
8493         Add SessionBus, SystemBus and ActivationBus classes
8494         so you don't need to know the special little BUS_TYPE
8495         flag.
8496         
8497 2004-05-29  Havoc Pennington  <hp@redhat.com>
8498
8499         * bus/config-parser.c (process_test_valid_subdir): temporarily
8500         stop testing config parser OOM handling, since expat has issues
8501         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8502
8503         * bus/dbus-daemon-1.1.in: change requested_reply to
8504         send_requested_reply/receive_requested_reply so we can send the
8505         replies, not just receive them.
8506
8507         * bus/config-parser.c: parse the new
8508         send_requested_reply/receive_requested_reply
8509
8510         * bus/policy.c (bus_client_policy_check_can_send): add
8511         requested_reply argument and use it
8512
8513         * bus/bus.c (bus_context_check_security_policy): pass through
8514         requested_reply status to message send check
8515
8516         * bus/system.conf.in: adapt to requested_reply change
8517         
8518 2004-05-28  Havoc Pennington  <hp@redhat.com>
8519
8520         * test/glib/test-service-glib.c (main): remove unused variable
8521
8522         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8523
8524         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8525         from the enum, no longer in use.
8526
8527         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8528         works right.
8529
8530         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8531         whether error_name passed in is a valid error name.
8532
8533 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8534
8535         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8536         OBJECT_PATH and OBJECT_PATH_ARRAY
8537
8538 2004-05-28  Seth Nickell  <seth@gnome.org>
8539
8540         * python/examples/Makefile.am:
8541
8542         Forget to add Makefile.am. Do not pass go.
8543
8544 2004-05-28  Michael Meeks  <michael@ximian.com>
8545
8546         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8547         fix no int64 case.
8548
8549         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8550
8551         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8552         (_dbus_message_iter_get_basic_type_array): impl.
8553         drastically simplify ~all relevant _get methods to use these.
8554         (_dbus_message_iter_append_basic_array),
8555         (dbus_message_iter_append_basic): impl
8556         drastically simplify ~all relevant _append methods to use these.
8557
8558         * dbus/dbus-message-builder.c (parse_basic_type) 
8559         (parse_basic_array, lookup_basic_type): impl.
8560         (_dbus_message_data_load): prune scads of duplicate /
8561         cut & paste coding.
8562
8563         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8564         (_dbus_demarshal_basic_type): implement,
8565         (demarshal_and_validate_len/arg): beef up debug.
8566         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8567
8568 2004-05-27  Seth Nickell  <seth@gnome.org>
8569
8570         * configure.in:
8571         * python/Makefile.am:
8572
8573         Include the example python apps in the tarball.
8574         
8575         * python/examples/list-system-services.py
8576
8577         Add a python new example that fetches the list of services
8578         from the system bus.
8579         
8580 2004-05-27  Seth Nickell  <seth@gnome.org>
8581
8582         * python/dbus.py:
8583         * python/dbus_bindings.pyx.in:
8584
8585         Fix failure to notify that a signal was not handled,
8586         resulted in hung functions.
8587         
8588 2004-05-25  Colin Walters  <walters@redhat.com>
8589
8590         * tools/dbus-monitor.c (main): Monitor all types of messages.
8591
8592 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8593
8594         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8595         which unregisters the object path and disposes the handler.
8596
8597 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8598  
8599         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8600          
8601         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8602         operands to && so we call dbus_message_iter_next () for the last
8603         argument also.
8604
8605 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8606
8607         * dbus/dbus-object-tree.c
8608         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8609         children even if the requested path isn't registered.
8610         (object_tree_test_iteration): test object_tree_list_registered.
8611
8612         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8613         it to 0.
8614         
8615 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8616
8617         * doc/TODO: Remove resolved items.
8618
8619         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8620         field.
8621         
8622         * bus/connection.c (bus_connections_expect_reply): Enforce the
8623         per-connection limit on pending replies.
8624         
8625         Patch from Jon Trowbridge <trow@ximian.com>:
8626  
8627         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8628         up a watch that triggers a config reload when one end of the pipe
8629         becomes readable.
8630         (signal_handler): Instead of doing the config reload in our SIGHUP
8631         handler, just write to the reload pipe and let the associated
8632         watch handle the reload when control returns to the main loop.
8633  
8634         * bus/driver.c (bus_driver_handle_reload_config): Added.
8635         Implements a ReloadConfig method for requesting a configuration
8636         file reload via the bus driver.
8637  
8638 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8639
8640         * HACKING: Updated release instructions concerning the wiki page.
8641
8642 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8643
8644         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8645         filter against auth->allowed_mechs; we only add allowed mechs in
8646         record_mechanisms().
8647  
8648         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8649         ALLOWED_MECHS to auth-script format so we can set the list of
8650         allowed mechanisms.
8651  
8652         * data/auth/client-out-of-mechanisms.auth-script: New test to
8653         check client disconnects when it is out of mechanisms to try.
8654  
8655         * dbus/dbus-auth.c (process_command): Remove check for lines
8656         longer that 1 MB; we only buffer up maximum 16 kB.
8657  
8658         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8659         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8660         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8661         assume there might be unused bytes.
8662  
8663         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8664         client-out-of-mechs, it is handled in process_reject(). Move check
8665         for max failures to send_rejected(), as it's a server-only thing.
8666
8667         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8668         send_auth(), send_data(), send_rejected(), send_error(),
8669         send_ok(), send_begin() and send_cancel().
8670
8671 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8672
8673         Remove base64 encoding, replace with hex encoding. Original patch
8674         from trow@ximian.com, added error handling.
8675
8676         * dbus/dbus-string.c (_dbus_string_base64_encode)
8677         (_dbus_string_base64_decode): Remove.
8678         (_dbus_string_hex_decode): Add end_return argument so we can
8679         distinguish between OOM and invalid hex encoding.
8680         (_dbus_string_test): Remove base64 tests and add test case for
8681         invalid hex.
8682
8683         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8684         Replace base64 with hex.
8685
8686         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8687         for invalid hex encoded data in auth protocol.
8688
8689 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8690
8691         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8692         leak.
8693
8694 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8695
8696         * mono/dbus-sharp.dll.config.in: Added for GAC
8697         * mono/dbus-sharp.snk: Added for GAC
8698         * mono/Assembly.cs.in: Added for GAC
8699         * mono/Makefile.am: Changes for GAC installation        
8700         * configure.in: Added refs for dbus-sharp.dll.config.in and
8701         Assembly.cs.in. More fixes for mono testing
8702         * mono/example/Makefile.am: Changed var to CSC
8703         * Makefile.am: Changed flag name to DBUS_USE_CSC
8704
8705 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8706
8707         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8708         * mono/doc/*: Added documentation framework
8709         * configure.in: Added monodoc check
8710         * README: Added description of mono configure flags
8711
8712 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8713
8714         * doc/dbus-specification.xml: Added a "Required" column to the 
8715         header fields table and changed the "zero or more" verbage in
8716         the above paragraph to read "The header must contain the required 
8717         named header fields and zero or more of the optional named header 
8718         fields".
8719         * test/data/invalid-messages/*.message: Added the required PATH 
8720         named header field to the tests so that they don't fail on 
8721         'Missing path field'
8722
8723 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8724
8725         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8726         the stack by implicitly defining variable and parameter types and
8727         removing the hack of defining C pointers as python objects and later
8728         casting them.
8729
8730 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8731
8732         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8733
8734 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8735
8736         * mono/DBusType/Dict.cs: Handle empty dicts
8737         * mono/DBusType/Array.cs: Handle empty arrays
8738         * mono/Arguments.cs: Handle empty arguments
8739
8740 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8741
8742         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8743         field
8744
8745 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8746
8747         * test/data/valid-messages/standard-*.message: Update message
8748         test scripts to new header field names.
8749
8750 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8751
8752         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8753         overflow to times_we_did_each_thing array which would chop off the
8754         first character of the failure_dir string. Increased the size of
8755         the array to 7 to reflect the number of random mutation functions
8756         we have.
8757
8758 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8759
8760         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8761         unix_server->watch here, it is unreffed in disconnect.
8762         (_dbus_server_new_for_tcp_socket): convert NULL host to
8763         "localhost" here so we don't append NULL to address.
8764         
8765         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8766         various addresses, including tcp with no explicit host.
8767
8768 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8769
8770         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8771         fix incorrect setting of .name_offset in the HeaderField (it was
8772         off by two bytes, positioned right after the name and typecode)
8773
8774         * bus/bus.c (bus_context_new, bus_context_unref): test before
8775         calling dbus_server_free_data_slot and _dbus_user_database_unref
8776         in case of an error.
8777
8778         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8779         by libdbus-gtool.
8780
8781 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8782
8783         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8784         _dbus_poll() instead of select().
8785
8786 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8787
8788         * bus/main.c (signal_handler): Reload the configuration files
8789         on SIGHUP.
8790         (main): Set up our SIGHUP handler.
8791
8792         * bus/bus.c (struct BusContext): Store the config file, user and
8793         fork flag in the BusContext.
8794         (process_config_first_time_only): Added.  Contains the code
8795         (previously in bus_context_new) for setting up the BusContext from
8796         the BusConfigParser that should only be run the first time the
8797         config files are read.
8798         (process_config_every_time): Added.  Contains the code (previously
8799         in bus_context_new) for setting up the BusContext from the
8800         BusConfigParser that should be run every time the config files are
8801         read.
8802         (load_config): Added.  Builds a BusConfigParser from the config
8803         files and passes the resulting structure off to
8804         process_config_first_time_only (assuming this is the first time)
8805         and process_config_every_time.
8806         (bus_context_new): All of the config-related code has been moved
8807         to process_config_first_time_only and process_config_every_time.
8808         Now this function just does the non-config-related initializations
8809         and calls load_config.
8810         (bus_context_reload_config): Added.
8811
8812 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8813
8814         * bus/driver.c (bus_driver_handle_get_service_owner):
8815         implement a GetServiceOwner method.
8816         * doc/dbus-specification.xml: document it.
8817         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8818         
8819         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8820         implement, using the bus GetServiceOwner method.
8821
8822         * test/glib/test-dbus-glib.c:
8823         use dbus_gproxy_new_for_service_owner so that we can receive the
8824         signal. 
8825
8826 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8827
8828         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8829         dbus/dbus-message.c, dbus/dbus-protocol.h
8830         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8831
8832         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8833         dbus/dbus-message.c, dbus/dbus-protocol.h
8834         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8835
8836         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8837         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8838         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8839
8840         * doc/dbus-specification.xml (Header Fields Table):
8841         s/SERVICE/DESTINATION
8842         s/SENDER_SERVICE/SENDER
8843
8844
8845 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8846
8847         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8848         a few seconds.
8849
8850 2004-04-13  Michael Meeks  <michael@ximian.com>
8851
8852         * glib/dbus-gobject.c (handle_introspect): split out
8853         (introspect_properties): this.
8854         (handle_introspect): implement this.
8855
8856         * test/glib/Makefile.am: use the absolute path so the bus
8857         daemon's chdir ("/") doesn't kill us dead.
8858
8859         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8860
8861 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8862
8863         * bus/config-parser.c (struct BusConfigParser): Added
8864         included_files field.
8865         (seen_include): Added.  Checks whether or not a file has already
8866         been included by any parent BusConfigParser.
8867         (bus_config_parser_new): Copy the parent's included_files.
8868         (include_file): Track which files have been included, and fail on
8869         circular inclusions.
8870         (process_test_valid_subdir): Changed printf to report if we are
8871         testing valid or invalid conf files.
8872         (all_are_equiv): Changed printf to be a bit clearer about
8873         what we are actually doing.
8874         (bus_config_parser_test): Test invalid configuration files.
8875
8876 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8877
8878         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8879         argument.  If non-null, the newly-constructed BusConfigParser will
8880         be initialized with the parent's BusLimits instead of the default
8881         values.
8882         (include_file): When including a config file, pass in
8883         the current parser as the parent and then copy the BusLimits
8884         from the included BusConfigParser pack to the current parser.
8885         (process_test_valid_subdir): Renamed from process_test_subdir.
8886         (process_test_equiv_subdir): Added.  Walks through a directory,
8887         descending into each subdirectory and loading the config files
8888         it finds there.  If any subdirectory contains two config files
8889         that don't produce identical BusConfigParser structs, fail.
8890         For now, the BusConfigParser's BusPolicies are not compared.
8891         (bus_config_parser_test): Call both process_test_valid_subdir and
8892         process_test_equiv_subdir.
8893
8894         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8895         argument and pass it along to the call to bus_config_parser_new.
8896         Also made a few small changes to allow this code to compile.
8897
8898         * bus/config-loader-expat.c (bus_config_load): Take a parent
8899         argument and pass it along to the call to bus_config_parser_new.
8900
8901         * bus/bus.c (bus_context_new): Load the config file
8902         with a NULL parent argument.
8903
8904 2004-03-29  Michael Meeks  <michael@ximian.com>
8905
8906         * glib/dbus-gobject.c (introspect_properties): split
8907         out, fix mangled 'while' flow control.
8908         (introspect_signals): implement.
8909         (handle_introspect): update.
8910
8911 2004-03-29  Michael Meeks  <michael@ximian.com>
8912
8913         * glib/dbus-gobject.c (set_object_property): split out / 
8914         re-work, use the property type, and not the message type(!)
8915         (get_object_property): ditto.
8916
8917         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8918         (dbus_gvalue_marshal): make this code re-usable, needed
8919         for signals too, also on both proxy and server side.
8920         Re-write for more efficiency / readability.
8921
8922 2004-03-29  Michael Meeks  <michael@ximian.com>
8923
8924         * dbus/dbus-message.c
8925         (dbus_message_new_error_printf): impl.
8926
8927         * dbus/dbus-connection.c
8928         (dbus_connection_unregister_object_path): fix warning.
8929
8930         * configure.in: fix no-mono-installed situation.
8931
8932 2004-03-27  Havoc Pennington  <hp@redhat.com>
8933
8934         Patch from Timo Teräs:
8935         
8936         * tools/dbus-send.c (main): if --print-reply, assume type is
8937         method call; support boolean type args
8938         
8939         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8940         bunch of memleak and logic bugs
8941         
8942 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8943
8944         * mono/Arguments.cs:
8945         * mono/Introspector.cs:
8946         * mono/Handler.cs:
8947         * mono/InterfaceProxy.cs:
8948         * mono/Message.cs
8949         * mono/ProxyBuilder.cs:
8950         * mono/Service.cs:
8951         Added InterfaceProxy class to avoid building proxies for every
8952         object.
8953
8954         * dbus-message.h:
8955         * dbus-message.c (dbus_message_append_args_valist)
8956         (dbus_message_iter_get_object_path)
8957         (dbus_message_iter_get_object_path_array)
8958         (dbus_message_iter_append_object_path)
8959         (dbus_message_iter_append_object_path_array):
8960         Added object_path iter functions to handle OBJECT_PATH arguments
8961         
8962 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8963
8964         First checkin of mono bindings.
8965         * configure.in:
8966         * Makefile.am:
8967         Build stuff for the bindings
8968         * dbus-sharp.pc.in: Added for pkgconfig
8969         
8970 2004-03-21  Havoc Pennington  <hp@redhat.com>
8971
8972         * test/test-service.c (main): remove debug spew
8973
8974 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8975
8976         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8977         arrays
8978
8979         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8980         (dbus_message_iter_init_array_iterator)
8981         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8982         indicate whether the iterator is empty
8983
8984         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8985         warnings
8986
8987 2004-03-19  Havoc Pennington  <hp@redhat.com>
8988
8989         * NEWS: 0.21 updates
8990
8991         * configure.in: 0.21
8992
8993         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8994         
8995         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8996         you don't need pyrex to make dist
8997
8998         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8999         sources; run moc
9000         
9001 2004-03-18  Richard Hult  <richard@imendio.com>
9002
9003         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9004         (dbus_message_set_auto_activation): Add doxygen docs.
9005
9006 2004-03-16  Richard Hult  <richard@imendio.com>
9007
9008         * bus/activation.c: (bus_activation_service_created),
9009         (bus_activation_send_pending_auto_activation_messages),
9010         (bus_activation_activate_service):
9011         * bus/activation.h:
9012         * bus/dispatch.c: (bus_dispatch),
9013         (check_nonexistent_service_auto_activation),
9014         (check_service_auto_activated),
9015         (check_segfault_service_auto_activation),
9016         (check_existent_service_auto_activation), (bus_dispatch_test):
9017         * bus/driver.c: (bus_driver_handle_activate_service):
9018         * bus/services.c: (bus_registry_acquire_service):
9019         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9020         (dbus_message_get_auto_activation):
9021         * dbus/dbus-message.h:
9022         * dbus/dbus-protocol.h: Implement auto-activation.
9023         
9024         * doc/dbus-specification.xml: Add auto-activation to the spec.
9025
9026 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9027
9028         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9029         fix a bug with CUSTOM types.
9030
9031         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9032         a unit test for this bug (used to fail).
9033
9034 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9035
9036         * bus/activation.c:
9037         (babysitter_watch_callback): notify all pending activations waiting for
9038           the same exec that the activation failed.
9039         (bus_activation_activate_service): shortcut the activation if we 
9040           already waiting for the same executable to start up.
9041
9042 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9043
9044         * bus/activation.c: 
9045         - Added service file reloading. 
9046           Each service files directory is kept in an hash table in 
9047           BusActivation and each BusActivationEntry knows what .service-file it
9048           was read from. So when you try to activate a service the bus will 
9049           check if it's been updated, removed or if new .service-files has 
9050           been installed.
9051         - Test code at the bottom for the service file reloading.
9052         * bus/test-main.c: (main):
9053         * bus/test.h:
9054         - added service reloading test.
9055         * dbus/dbus-sysdeps.c: 
9056         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9057
9058 2004-03-08  Michael Meeks  <michael@ximian.com>
9059
9060         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9061         bail immediately if disconnected, to avoid busy loop.
9062
9063         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9064         cleanup cut/paste/inefficiency.
9065
9066 2004-03-01  David Zeuthen  <david@fubar.dk>
9067
9068         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9069         bug where args were used twice. This bug resulted in a segfault
9070         on a Debian/PPC system when starting the messagebus daemon. Include
9071         dbus-sysdeps.h for DBUS_VA_COPY
9072
9073         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9074
9075         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9076         appropriate va_copy implementation. From GLib
9077         
9078 2004-02-24  Joe Shaw  <joe@ximian.com>
9079
9080         * bus/services.c (bus_registry_acquire_service): We need to pass
9081         in the service name to dbus_set_error() to prevent a crash.
9082
9083 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9084
9085         * AUTHORS: Reveal my True identity.
9086
9087 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9088
9089         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9090         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9091
9092 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9093
9094         * doc/TODO: Added not about better error check of configuration files.
9095
9096 2003-12-02  Richard Hult  <richard@imendio.com>
9097
9098         * Update AFL version to 2.0 throughout the source files to reflect
9099         the update that was done a while ago.
9100
9101 2003-12-02  Richard Hult  <richard@imendio.com>
9102
9103         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9104         wrote_dict_key to FALSE on the iter that the dict is appended to,
9105         just like when appending other types. Fixes a bug where a dict
9106         couldn't be put inside a dict.
9107         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9108         (message_iter_test, _dbus_message_test): Add test case for dict
9109         inside dict.
9110
9111 2003-12-01  David Zeuthen  <david@fubar.dk>
9112
9113         * python/dbus.py: Add the actual message when calling the reciever
9114         of a signal such that parameters can be inspected. Add the method
9115         remove_signal_receiver
9116         
9117 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9118
9119         * bus/*.[ch]:
9120         * dbus/*.[ch]:
9121         * glib/*.[ch]: Made ref functions return the pointer
9122
9123 2003-11-25  Zack Rusin  <zack@kde.org>
9124
9125         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9126
9127         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9128         wrappers,
9129
9130         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9131         the Integrator and to better fit with the server,
9132
9133 2003-11-24  Zack Rusin  <zack@kde.org>
9134
9135         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9136         the integrator handles it now
9137
9138         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9139         since QTimer wasn't really meant to be used the way DBusTimeout is
9140
9141 2003-11-24  Zack Rusin  <zack@kde.org>
9142
9143         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9144         Integrator class which integrates D-BUS with the Qt event loop,
9145
9146         * qt/connection.h, qt/connection.cpp: Move all the code which
9147         was dealing with D-BUS integration to the Integrator class,
9148         and start using Integrator,
9149
9150 2003-11-23  Zack Rusin  <zack@kde.org>
9151
9152         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9153         wrapper
9154
9155         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9156         switching namespaces to DBusQt, reworking the class,
9157
9158         * Makefile.cvs: switching dependencies so that it matches KDE 
9159         schematics,
9160         
9161         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9162         the library
9163
9164 2003-11-19  Havoc Pennington  <hp@redhat.com>
9165
9166         * NEWS: update
9167
9168         * configure.in: bump version to 0.20
9169
9170         * configure.in (have_qt): add yet another place to look for qt
9171         (someone hand trolltech a .pc file...)
9172
9173 2003-11-01  Havoc Pennington  <hp@redhat.com>
9174
9175         * doc/dbus-specification.xml: add state machine docs on the auth
9176         protocol; just a first draft, I'm sure it's wrong.      
9177
9178 2003-10-28  David Zeuthen  <david@fubar.dk>
9179
9180         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9181         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9182         
9183 2003-10-28  Havoc Pennington  <hp@redhat.com>
9184
9185         * dbus/dbus-message.c (get_next_field): delete unused function
9186
9187 2003-10-28  Havoc Pennington  <hp@redhat.com>
9188
9189         * bus/expirelist.c (do_expiration_with_current_time): detect
9190         failure of the expire_func due to OOM
9191
9192         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9193
9194         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9195         NoReply error that's now created by the bus when the service exits
9196
9197 2003-10-28  Havoc Pennington  <hp@redhat.com>
9198
9199         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9200         tests for set_path, set_interface, set_member, etc.
9201
9202         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9203
9204         * dbus/dbus-message.c (set_string_field): always just delete and
9205         re-append the field; accept NULL for deletion
9206         (re_align_fields_recurse): reimplement
9207         
9208 2003-10-26  Havoc Pennington  <hp@redhat.com>
9209
9210         * dbus/dbus-connection.c: fix docs to properly describe the
9211         disconnected message
9212         (_dbus_connection_notify_disconnected): remove this function; 
9213         we can't synchronously add the disconnected message, we have to 
9214         do it after we've queued any remaining real messages
9215         (_dbus_connection_get_dispatch_status_unlocked): queue the
9216         disconnect message only if the transport has finished queueing all
9217         its real messages and is disconnected.
9218         (dbus_connection_disconnect): update the dispatch status here
9219
9220 2003-10-22  Havoc Pennington  <hp@redhat.com>
9221
9222         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9223
9224         * bus/connection.c (bus_transaction_send_from_driver): set the
9225         destination to the connection's base service
9226
9227 2003-10-20  Havoc Pennington  <hp@redhat.com>
9228
9229         hmm, make check is currently not passing.
9230         
9231         * doc/dbus-specification.xml: add requirement that custom type
9232         names follow the same rules as interface names.
9233
9234         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9235         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9236         'map'
9237
9238         * doc/dbus-specification.xml: update type codes to match
9239         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9240         CUSTOM. Add type OBJECT_PATH to the spec.
9241
9242 2003-10-17  Havoc Pennington  <hp@redhat.com>
9243
9244         * bus/driver.c (create_unique_client_name): use "." as separator
9245         in base service names instead of '-'
9246
9247         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9248         byte at the end of the string
9249
9250         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9251         optimization macros since string validation seems to be a slow
9252         point.
9253         
9254         * doc/dbus-specification.xml: restrict valid
9255         service/interface/member/error names. Add test suite code for the
9256         name validation.
9257
9258         * dbus/dbus-string.c: limit service/interface/member/error names 
9259         to [0-9][A-Z][a-z]_
9260
9261         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9262         format arg to verbose spew
9263
9264         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9265         memory, return instead of g_error
9266
9267         * test/test-service.c (path_message_func): support emitting a
9268         signal on request
9269
9270         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9271         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9272         assuming the activation bus was the session bus so that services
9273         started manually will still register.
9274         (init_connections_unlocked): fix so that in OOM situation we get
9275         the same semantics when retrying the function
9276         
9277         * test/test-service.c (main): change to use path registration, to
9278         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9279         than DBUS_BUS_SESSION
9280
9281 2003-10-16  Havoc Pennington  <hp@redhat.com>
9282
9283         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9284
9285         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9286         coverage of the tests
9287         (coverage-report.txt): don't move the .da and .bbg files around
9288
9289 2003-10-16  Havoc Pennington  <hp@redhat.com>
9290
9291         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9292         to put there
9293
9294 2003-10-16  Havoc Pennington  <hp@redhat.com>
9295
9296         * bus/connection.c (bus_pending_reply_expired): either cancel or
9297         execute, not both
9298         (bus_connections_check_reply): use unlink, not remove_link, as we
9299         don't want to free the link; fixes double free mess
9300
9301         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9302         where no reply was received
9303
9304         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9305         fix a refcount leak
9306
9307         * bus/signals.c (match_rule_matches): add special cases for the
9308         bus driver, so you can match on sender/destination for it.
9309
9310         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9311         DBUS_PRINT_BACKTRACE is set
9312
9313         * dbus/dbus-internals.c: add pid to assertion failure messages
9314
9315         * dbus/dbus-connection.c: add message type code to the debug spew
9316
9317         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9318         sender=foo not service=foo
9319
9320         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9321         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9322         DBUS_ACTIVATION_ADDRESS instead
9323
9324         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9325         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9326
9327         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9328         context struct
9329
9330         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9331         (dbus_message_iter_get_object_path_array): new function (half
9332         finished, disabled for the moment)
9333         
9334         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9335         DBUS_MESSAGE_TYPE_ERROR
9336
9337         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9338         avoid redirecting stderr to /dev/null
9339         (babysit): close stdin if not doing the "exit_with_session" thing
9340
9341         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9342         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9343         stdout/stdin, so things don't get confused
9344         
9345         * bus/system.conf.in: fix to allow replies, I modified .conf
9346         instead of .conf.in again.
9347
9348 2003-10-14  David Zeuthen  <david@fubar.dk>
9349
9350         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9351         argtype to arg_type when raising unknown arg type exception.
9352         Changed type list to reflect the changes in dbus-protocol.h so 
9353         the bindings actually work.
9354
9355 2003-10-14  Havoc Pennington  <hp@redhat.com>
9356
9357         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9358         to have a bug keeping it from outputting the .da files sometimes
9359         (string_get_string): don't append garbage nul bytes to the string.
9360
9361 2003-10-15  Seth Nickell  <seth@gnome.org>
9362
9363         * python/Makefile.am:
9364
9365         Include dbus_h_wrapper.h in the dist tarball.
9366
9367 2003-10-14  Havoc Pennington  <hp@redhat.com>
9368
9369         * bus/bus.c (bus_context_check_security_policy): revamp this to
9370         work more sanely with new policy-based requested reply setup
9371
9372         * bus/connection.c (bus_transaction_send_from_driver): set bus
9373         driver messages as no reply
9374
9375         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9376         requested_reply attribute on allow/deny rules
9377
9378         * bus/system.conf: add <allow requested_reply="true"/>
9379
9380         * bus/driver.c (bus_driver_handle_message): fix check for replies
9381         sent to the bus driver, which was backward. How did this ever work
9382         at all though? I think I'm missing something.
9383
9384         * dbus/dbus-message.c (decode_header_data): require error and
9385         method return messages to have a reply serial field to be valid
9386         (_dbus_message_loader_queue_messages): break up this function;
9387         validate that reply serial and plain serial are nonzero; 
9388         clean up the OOM/error handling.
9389         (get_uint_field): don't return -1 from this
9390         (dbus_message_create_header): fix signed/unsigned bug
9391
9392         * bus/connection.c (bus_connections_expect_reply): save serial of
9393         the incoming message, not reply serial
9394
9395 2003-10-14  Havoc Pennington  <hp@redhat.com>
9396
9397         * bus/connection.c: implement pending reply tracking using
9398         BusExpireList
9399
9400         * bus/bus.c (bus_context_check_security_policy): verify that a
9401         reply is pending in order to allow a reply to be sent. Deny 
9402         messages of unknown type.
9403
9404         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9405
9406         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9407         (bus_context_get_reply_timeout): new
9408
9409 2003-10-13  Seth Nickell  <seth@gnome.org>
9410
9411         * python/Makefile.am:
9412
9413         Pass "make distcheck": remove a couple files from DIST_FILES
9414         that weren't included in the final version.
9415
9416 2003-10-12  Havoc Pennington  <hp@pobox.com>
9417
9418         Added test code that 1) starts an actual bus daemon and 2) uses
9419         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9420         more testing possible, but this is the basic framework.
9421         
9422         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9423         empty proxy lists from the proxy list hash
9424
9425         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9426         couple of return_if_fail checks
9427
9428         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9429         to allocate, so everything is cleared to NULL as it should be.
9430
9431         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9432         source as data to dbus_connection_set_timeout_functions() as the 
9433         timeout functions expected
9434
9435         * test/glib/run-test.sh: add a little script to start up a message
9436         bus and run tests using it
9437
9438         * tools/dbus-launch.1: updates
9439
9440         * tools/dbus-launch.c (main): add --config-file option
9441
9442         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9443         that could never be reached.
9444
9445         * dbus/dbus-message.c (dbus_message_new_method_return) 
9446         (dbus_message_new_error, dbus_message_new_signal): set the
9447         no-reply-expected flag on all these. Redundant, but may
9448         as well be consistent.
9449
9450 2003-10-11  Havoc Pennington  <hp@pobox.com>
9451
9452         * test/decode-gcov.c (function_solve_graph): make broken block
9453         graph a nonfatal error since it seems to be broken. Need to debug
9454         this.
9455
9456         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9457         can't just check type > INVALID < LAST anymore
9458
9459         * dbus/dbus-message.c (dbus_message_get_signature): new function
9460         (dbus_message_has_signature): new function
9461         (struct DBusMessage): add signature field (right now it isn't sent
9462         over the wire, just generated on the fly)
9463         (dbus_message_copy): copy the signature, and init strings to
9464         proper length to avoid some reallocs
9465         (dbus_message_iter_init_array_iterator): return void, since it
9466         can't fail
9467         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9468         (_dbus_message_loader_queue_messages): add silly temporary hack to
9469         fill in message->signature on load
9470
9471         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9472         characters, so they are relatively human-readable.
9473
9474 2003-10-11  Havoc Pennington  <hp@pobox.com>
9475
9476         * dbus/dbus-message.c (_dbus_message_test): add more test
9477         coverage, but #if 0 for now since they uncover a bug 
9478         not fixed yet; I think in re_align_field_recurse()
9479         (re_align_field_recurse): add FIXME about broken assertion
9480
9481         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9482
9483         * bus/connection.c: share a couple code bits with expirelist.c
9484
9485         * bus/expirelist.h, bus/expirelist.c: implement a generic
9486         expire-items-after-N-seconds facility, was going to share between
9487         expiring connections and replies, decided not to use for expiring
9488         connections for now.
9489
9490         * COPYING: include AFL 2.0 (still need to change all the file headers)
9491
9492 2003-10-09  Havoc Pennington  <hp@redhat.com>
9493
9494         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9495         gcc 3.3. Not that we do anything about it yet.
9496
9497         * bus/signals.c (bus_match_rule_parse): impose max length on the
9498         match rule text
9499
9500         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9501
9502 2003-10-09  Havoc Pennington  <hp@redhat.com>
9503
9504         Make matching rules theoretically work (add parser).
9505         
9506         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9507         the case where destination is explicitly specified as bus driver
9508         and someone else is eavesdropping.
9509         
9510         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9511         definition of eavesdropping and assertion
9512
9513         * tools/dbus-send.c (main): use dbus_message_type_from_string
9514
9515         * bus/signals.c (bus_match_rule_parse): implement
9516
9517         * dbus/dbus-message.c (dbus_message_type_from_string): new
9518
9519         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9520
9521 2003-10-02  Havoc Pennington  <hp@pobox.com>
9522
9523         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9524         dbus_gproxy_oneway_call
9525
9526         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9527         (dbus_server_setup_with_g_main): fix to allow calling them more
9528         than once on the same args
9529         (dbus_bus_get_with_g_main): new function
9530
9531 2003-10-02  Havoc Pennington  <hp@redhat.com>
9532
9533         * doc/dbus-tutorial.xml: write some stuff
9534
9535 2003-09-29  Havoc Pennington  <hp@pobox.com>
9536
9537         * configure.in: split checks for Doxygen from XML docs, check for
9538         xmlto
9539
9540         * doc/Makefile.am: XML-ify all the docs, and add a blank
9541         dbus-tutorial.xml
9542
9543 2003-09-29  Havoc Pennington  <hp@pobox.com>
9544
9545         * Merge dbus-object-names branch. To see the entire patch 
9546         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9547         it's huuuuge though.
9548         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9549         
9550 2003-09-28  Havoc Pennington  <hp@pobox.com>
9551
9552         * HACKING: update to reflect new server
9553
9554 2003-09-26  Seth Nickell  <seth@gnome.org>
9555
9556         * python/dbus.py:
9557         * python/examples/example-signals.py:
9558
9559         Start implementing some notions of signals. The API
9560         is really terrible, but they sort of work (with the
9561         exception of being able to filter by service, and to
9562         transmit signals *as* a particular service). Need to
9563         figure out how to make messages come from the service
9564         we registered :-(
9565         
9566         * python/dbus_bindings.pyx.in:
9567
9568         Removed duplicate message_handler callbacks.
9569         
9570 2003-09-25  Havoc Pennington  <hp@redhat.com>
9571
9572         * bus/session.conf.in: fix my mess
9573
9574 2003-09-25  Havoc Pennington  <hp@pobox.com>
9575
9576         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9577
9578 2003-09-25  Seth Nickell  <seth@gnome.org>
9579
9580         * python/examples/example-service.py:
9581
9582         Johan notices complete wrong code in example-service, but
9583         completely wrong in a way that works exactly the same (!).
9584         Johan is confused, how could this possibly work? Example
9585         code fails to serve purpose of making things clear.
9586         Seth fixes.
9587
9588 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9589
9590         * doc/dbus-specification.sgml: don't require header fields
9591         to be 4-byte aligned and specify that fields should be
9592         distinguished from padding by the fact that zero is not
9593         a valid field name.
9594         
9595         * doc/TODO: remove re-alignment item and add item to doc
9596         the OBJECT_PATH type.
9597         
9598         * dbus/dbus-message.c:
9599         (HeaderField): rename the original member to value_offset
9600         and introduce a name_offset member to keep track of where
9601         the field actually begins.
9602         (adjust_field_offsets): remove.
9603         (append_int_field), (append_uint_field),
9604         (append_string_field): don't align the start of the header
9605         field to a 4-byte boundary.
9606         (get_next_field): impl finding the next marhsalled field
9607         after a given field.
9608         (re_align_field_recurse): impl re-aligning a number of
9609         already marshalled fields.
9610         (delete_field): impl deleting a field of any type and
9611         re-aligning any following fields.
9612         (delete_int_or_uint_field), (delete_string_field): remove.
9613         (set_int_field), (set_uint_field): no need to re-check
9614         that we have the correct type for the field.
9615         (set_string_field): ditto and impl re-aligning any
9616         following fields.
9617         (decode_header_data): update to take into account that
9618         the fields aren't 4-byte aligned any more and the new
9619         way to distinguish padding from header fields. Also,
9620         don't exit when there is too much header padding.
9621         (process_test_subdir): print the directory.
9622         (_dbus_message_test): add test to make sure a following
9623         field is re-aligned correctly after field deletion.
9624         
9625         * dbus/dbus-string.[ch]:
9626         (_dbus_string_insert_bytes): rename from insert_byte and
9627         allow the insert of multiple bytes.
9628         (_dbus_string_test): test inserting multiple bytes.
9629
9630         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9631         warning note to docs about having to re-align any
9632         marshalled values following the string.
9633         
9634         * dbus/dbus-message-builder.c:
9635         (append_string_field), (_dbus_message_data_load):
9636         don't align the header field.
9637         
9638         * dbus/dbus-auth.c: (process_test_subdir): print the
9639         directory.
9640         
9641         * test/break-loader.c: (randomly_add_one_byte): upd. for
9642         insert_byte change.
9643         
9644         * test/data/invalid-messages/bad-header-field-alignment.message:
9645         new test case.
9646         
9647         * test/data/valid-messages/unknown-header-field.message: shove
9648         a dict in the unknown field.
9649
9650 2003-09-25  Seth Nickell  <seth@gnome.org>
9651
9652         * python/dbus.py:
9653         * python/dbus_bindings.pyx.in:
9654
9655         Handle return values.
9656         
9657         * python/examples/example-client.py:
9658         * python/examples/example-service.py:
9659
9660         Pass back return values from the service to the client.
9661         
9662 2003-09-24  Seth Nickell  <seth@gnome.org>
9663
9664         * python/dbus.py:
9665
9666         Connect Object methods (when you are sharing an object) up... pass
9667         in a list of methods to be shared. Sharing all the methods just
9668         worked out too weird. You can now create nice Services over the
9669         DBus in Python. :-)
9670         
9671         * python/dbus_bindings.pyx.in:
9672
9673         Keep references to user_data tuples passed into C functions so 
9674         Python doesn't garbage collect on us.
9675
9676         Implement MethodReturn and Error subclasses of Message for creating
9677         DBusMessage's of those types.
9678         
9679         * python/examples/example-client.py:
9680         * python/examples/example-service.py:
9681
9682         Simple example code showing both how create DBus services and objects,
9683         and how to use them.
9684
9685 2003-09-23  Havoc Pennington  <hp@pobox.com>
9686
9687         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9688
9689 2003-09-23  Havoc Pennington  <hp@redhat.com>
9690
9691         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9692         (dbus_gproxy_disconnect_signal): implement
9693         (dbus_gproxy_manager_remove_signal_match): implement
9694         (dbus_gproxy_manager_add_signal_match): implement
9695         (dbus_gproxy_oneway_call): implement
9696
9697 2003-09-23  Havoc Pennington  <hp@pobox.com>
9698
9699         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9700         subclass. This means dropping the transparent thread safety of the
9701         proxy; you now need a separate proxy per-thread, or your own
9702         locking on the proxy. Probably right anyway.
9703         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9704
9705 2003-09-22  Havoc Pennington  <hp@redhat.com>
9706
9707         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9708
9709 2003-09-21  Seth Nickell  <seth@gnome.org>
9710
9711         First checkin of the Python bindings.
9712         
9713         * python/.cvsignore:
9714         * python/Makefile.am:
9715         * python/dbus_bindings.pyx.in:
9716         * python/dbus_h_wrapper.h:
9717
9718         Pieces for Pyrex to operate on, building a dbus_bindings.so
9719         python module for low-level access to the DBus APIs.
9720         
9721         * python/dbus.py:
9722
9723         High-level Python module for accessing DBus objects.
9724
9725         * configure.in:
9726         * Makefile.am:
9727
9728         Build stuff for the python bindings.
9729
9730         * acinclude.m4:
9731
9732         Extra macro needed for finding the Python C header files.
9733
9734 2003-09-21  Havoc Pennington  <hp@pobox.com>
9735
9736         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9737         implementing the proxy manager, didn't get very far.
9738
9739         * dbus/dbus-bus.c (dbus_bus_add_match): new
9740         (dbus_bus_remove_match): new
9741
9742         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9743         path_name argument; adjust the other not-yet-implemented 
9744         gproxy constructors to be what I think they should be.
9745
9746 2003-09-21  Havoc Pennington  <hp@pobox.com>
9747
9748         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9749         by default for message bus connections.
9750
9751         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9752         exit_on_disconnect flag is set and we process the disconnected
9753         signal.
9754         (dbus_connection_set_exit_on_disconnect): new function
9755
9756 2003-09-21  Havoc Pennington  <hp@pobox.com>
9757
9758         Get matching rules mostly working in the bus; only actually
9759         parsing the rule text remains. However, the client side of
9760         "signal connections" hasn't been started, this patch is only the
9761         bus side.
9762         
9763         * dbus/dispatch.c: fix for the matching rules changes
9764         
9765         * bus/driver.c (bus_driver_handle_remove_match)
9766         (bus_driver_handle_add_match): send an ack reply from these
9767         method calls
9768
9769         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9770         arguments, reported by Seth Nickell
9771
9772         * bus/config-parser.c (append_rule_from_element): support
9773         eavesdrop=true|false attribute on policies so match rules 
9774         can be prevented from snooping on the system bus.
9775
9776         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9777         and "destination" in attribute names; fix some docs bugs; 
9778         add eavesdrop=true|false attribute
9779
9780         * bus/driver.c (bus_driver_handle_add_match)
9781         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9782         messages
9783
9784         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9785         rid of broadcast service concept, signals are just always broadcast
9786
9787         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9788         mostly implement matching rules stuff (currently only exposed as signal
9789         connections)
9790
9791 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9792
9793         * doc/dbus-specification.sgml: Change the header field name
9794         to be an enum and update the rest of the spec to reference
9795         the fields using the conventinal name.
9796
9797         * dbus/dbus-protocol.h: update to reflect the spec.
9798
9799         * doc/TODO: add item to remove the 4 byte alignment requirement.
9800         
9801         * dbus/dbus-message.c: Remove the code to generalise the
9802         header/body length and serial number header fields as named
9803         header fields so we can reference field names using the 
9804         protocol values.
9805         (append_int_field), (append_uint_field), (append_string_field):
9806         Append the field name as a byte rather than four chars.
9807         (delete_int_or_uint_field), (delete_string_field): reflect the
9808         fact that the field name and typecode now occupy 4 bytes instead
9809         of 8.
9810         (decode_string_field), (decode_header_data): update to reflect
9811         protocol changes and move the field specific encoding from
9812         decode_string_field() back into decode_header_data().
9813         
9814         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9815         Add utility to aid debugging.
9816         
9817         * dbus/dbus-message-builder.c:
9818         (append_string_field), (_dbus_message_data_load): Update to
9819         reflect protocol changes; Change the FIELD_NAME directive
9820         to HEADER_FIELD and allow it to take the field's conventional
9821         name rather than the actual value.
9822         
9823         * test/data/*/*.message: Update to use HEADER_FIELD instead
9824         of FIELD_NAME; Always align the header on an 8 byte boundary
9825         *before* updating the header length.
9826
9827 2003-09-15  Havoc Pennington  <hp@pobox.com>
9828
9829         * dbus/dbus-pending-call.c: add the get/set object data
9830         boilerplate as for DBusConnection, etc. Use generic object data
9831         for the notify callback.
9832
9833         * glib/dbus-gparser.c (parse_node): parse child nodes
9834
9835         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9836         
9837         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9838         contain functions shared between the convenience lib and the
9839         installed lib
9840
9841         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9842         -export-symbols-regex to the GLib library
9843
9844         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9845         fix the locking in here, and add a default handler for
9846         Introspect() that just returns sub-nodes.
9847
9848 2003-09-14  Havoc Pennington  <hp@pobox.com>
9849
9850         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9851         rather than gfoo consistent
9852
9853         * glib/dbus-gproxy.h: delete for now, move contents to
9854         dbus-glib.h, because the include files don't work right since we
9855         aren't in the dbus/ subdir.
9856         
9857         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9858         (dbus_gproxy_end_call): finish
9859         (dbus_gproxy_begin_call): finish
9860
9861         * glib/dbus-gmain.c (dbus_set_g_error): new
9862
9863         * glib/dbus-gobject.c (handle_introspect): include information
9864         about child nodes in the introspection
9865
9866         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9867         function to help in implementation of introspection
9868
9869         * dbus/dbus-object-tree.c
9870         (_dbus_object_tree_list_registered_and_unlock): new function
9871
9872 2003-09-12  Havoc Pennington  <hp@pobox.com>
9873
9874         * glib/dbus-gidl.h: add common base class for all the foo_info
9875         types
9876
9877         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9878         similar to kdcop
9879
9880         * test/Makefile.am: try test srcdir -ef . in addition to test
9881         srcdir = ., one of them should work (yeah lame)
9882         
9883         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9884         library
9885         
9886         * glib/dbus-gparser.h: make description_load routines return
9887         NodeInfo* not Parser*
9888
9889         * Makefile.am (SUBDIRS): build test dir after all library dirs
9890
9891         * configure.in: add GTK+ detection
9892
9893 2003-09-07  Havoc Pennington  <hp@pobox.com>
9894
9895         * Make Doxygen contented.
9896
9897 2003-09-07  Havoc Pennington  <hp@pobox.com>
9898
9899         * doc/dbus-specification.sgml: more updates
9900
9901 2003-09-06  Havoc Pennington  <hp@pobox.com>
9902
9903         * doc/dbus-specification.sgml: partial updates
9904
9905         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9906         zillionth time; hopefully I edited the right file this time.
9907
9908         * bus/config-parser.c (append_rule_from_element): support
9909         send_type, send_path, receive_type, receive_path
9910
9911         * bus/policy.c: add message type and path to the list of things
9912         that can be "firewalled"
9913
9914 2003-09-06  Havoc Pennington  <hp@pobox.com>
9915
9916         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9917         (dbus_connection_register_object_path): make this not handle
9918         messages to paths below the given path
9919
9920 2003-09-03  Havoc Pennington  <hp@pobox.com>
9921
9922         * test/glib/Makefile.am: add this with random glib-linked test
9923         programs
9924
9925         * glib/Makefile.am: remove the random test programs from here,
9926         leave only the unit tests
9927
9928         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9929         uscore/javacaps conversion, and fix     
9930         (get_object_property, set_object_property): change to .NET
9931         convention for mapping props to methods, set_FooBar/get_FooBar, 
9932         since one language has such a convention we may as well copy it. 
9933         Plus real methods in either getFooBar or get_foo_bar style won't 
9934         collide with this convention.
9935
9936 2003-09-01  Havoc Pennington  <hp@pobox.com>
9937
9938         * glib/dbus-gparser.c: implement
9939
9940         * glib/dbus-gobject.c: start implementing skeletons support
9941
9942         * configure.in: when disabling checks/assert, also define
9943         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9944
9945 2003-09-01  Havoc Pennington  <hp@pobox.com>
9946
9947         * glib/Makefile.am: rearrange a bunch of files and get "make
9948         check" framework set up
9949
9950 2003-08-31  Havoc Pennington  <hp@pobox.com>
9951
9952         * fix build with --disable-tests
9953
9954 2003-08-30  Havoc Pennington  <hp@pobox.com>
9955
9956         * dbus/dbus-connection.c: purge DBusMessageHandler
9957
9958         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9959         use callbacks everywhere
9960
9961 2003-08-30  Havoc Pennington  <hp@pobox.com>
9962
9963         * test/data/valid-config-files/system.d/test.conf: change to 
9964         root for the user so warnings don't get printed
9965
9966         * dbus/dbus-message.c: add dbus_message_get_path,
9967         dbus_message_set_path
9968         
9969         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9970         dispatching to a path
9971
9972         * dbus/dbus-string.c (_dbus_string_validate_path): add
9973
9974         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9975         (_dbus_marshal_object_path): implement
9976
9977         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9978         to contain the path to the target object
9979         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9980         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9981
9982 2003-08-30  Havoc Pennington  <hp@pobox.com>
9983
9984         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9985
9986 2003-08-29  Havoc Pennington  <hp@pobox.com>
9987
9988         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9989         registered
9990         (struct DBusObjectSubtree): shrink this
9991         a lot, since we may have a lot of them
9992         (_dbus_object_tree_free_all_unlocked): implement
9993         (_dbus_object_tree_dispatch_and_unlock): implement
9994
9995 2003-08-29  Havoc Pennington  <hp@pobox.com>
9996
9997         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9998
9999 2003-08-28  Havoc Pennington  <hp@pobox.com>
10000
10001         purge DBusObjectID
10002         
10003         * dbus/dbus-connection.c: port to no ObjectID, create a
10004         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10005
10006         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10007         everything except UnregisterFunction and MessageFunction
10008         
10009         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10010         add DBUS_TYPE_OBJECT_PATH
10011         
10012         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10013         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10014         path-based object IDs
10015
10016 2003-08-25  Havoc Pennington  <hp@pobox.com>
10017
10018         Just noticed that dbus_message_test is hosed, I wonder when I
10019         broke that. I thought make check was passing earlier...
10020         
10021         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10022         container tree, will replace most of dbus-object-registry
10023
10024         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10025         screwup
10026
10027 2003-08-19  Havoc Pennington  <hp@pobox.com>
10028
10029         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10030         (dbus_message_is_error): fix this function
10031
10032         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10033         match
10034
10035         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10036         reflect clarified man page
10037         (bus_client_policy_check_can_send): ditto
10038         
10039         * bus/session.conf.in: fixup
10040
10041         * bus/system.conf.in: fixup
10042
10043 2003-08-18  Havoc Pennington  <hp@redhat.com>
10044
10045         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10046
10047         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10048         dumb bug created earlier (wrong order of args to
10049         decode_header_data())
10050         
10051         * tools/dbus-send.c: port
10052
10053         * tools/dbus-print-message.c (print_message): port
10054
10055         * test/data/*messages: port all messages over
10056         
10057         * dbus/dbus-message-builder.c: support including 
10058         message type
10059         
10060         * bus/driver.c: port over
10061         
10062         * bus/dispatch.c: port over to new stuff
10063
10064         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10065         rename disconnect signal to "Disconnected"
10066
10067 2003-08-17  Havoc Pennington  <hp@pobox.com>
10068
10069         This doesn't compile yet, but syncing up so I can hack on it from
10070         work. What are branches for if not broken code? ;-)
10071         
10072         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10073         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10074         DBUS_HEADER_FIELD_ERROR_NAME
10075         
10076         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10077         for the interface+member pairs
10078         (string_hash): change to use g_str_hash algorithm
10079         (find_direct_function, find_string_function): refactor these to
10080         share most code.
10081         
10082         * dbus/dbus-message.c: port all of this over to support 
10083         interface/member fields instead of name field
10084
10085         * dbus/dbus-object-registry.c: port over
10086         
10087         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10088         from _dbus_string_validate_name
10089
10090         * bus/dbus-daemon-1.1: change file format for the 
10091         <deny>/<allow> stuff to match new message naming scheme
10092
10093         * bus/policy.c: port over
10094
10095         * bus/config-parser.c: parse new format
10096         
10097 2003-08-16  Havoc Pennington  <hp@pobox.com>
10098
10099         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10100         broken assertion
10101
10102         * glib/dbus-gproxy.c: some hacking
10103
10104 2003-08-15  Havoc Pennington  <hp@redhat.com>
10105
10106         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10107
10108         * dbus/dbus-connection.c
10109         (dbus_connection_send_with_reply_and_block): factor out internals;
10110         change to convert any error replies to DBusError instead of 
10111         returning them as a message
10112
10113 2003-08-15  Havoc Pennington  <hp@pobox.com>
10114
10115         * dbus/dbus-connection.c, 
10116         dbus/dbus-pending-call.c: Finish the pending call stuff
10117
10118 2003-08-14  Havoc Pennington  <hp@redhat.com>
10119
10120         * dbus/dbus-pending-call.c: start on new object that will replace
10121         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10122         replies
10123
10124         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10125         with remote interfaces
10126
10127         * dbus/dbus-gidl.c: do the boring boilerplate in here
10128         
10129 2003-08-12  Havoc Pennington  <hp@pobox.com>
10130
10131         * bus/dispatch.c (bus_dispatch): make this return proper 
10132         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10133
10134         * dbus/dbus-errors.c (dbus_set_error): use
10135         _dbus_string_append_printf_valist
10136
10137         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10138         (_dbus_string_append_printf): new
10139
10140         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10141         UNKNOWN_METHOD
10142
10143         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10144         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10145         message is unhandled.
10146
10147 2003-08-11  Havoc Pennington  <hp@pobox.com>
10148
10149         * bus/test.c (client_disconnect_handler): change to return
10150         HANDLED (would have been REMOVE_MESSAGE)
10151
10152         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10153         HANDLED/NOT_YET_HANDLED instead of
10154         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10155         should be used.
10156
10157 2003-08-10  Havoc Pennington  <hp@pobox.com>
10158
10159         * tools/dbus-send.c (main): add --type argument, for now
10160         supporting only method_call and signal types.
10161
10162         * tools/dbus-print-message.c: print message type
10163
10164         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10165         init connection->objects
10166
10167         * doc/dbus-specification.sgml: fix sgml
10168
10169         * bus/*.c: port over to object-instance API changes
10170
10171         * test/test-service.c: ditto
10172         
10173         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10174         name, we will have to fix up the rest of the code to also handle
10175         this
10176         (dbus_message_new): generic message-creation call
10177         (set_string_field): allow appending name field
10178
10179 2003-08-06  Havoc Pennington  <hp@pobox.com>
10180
10181         * dbus/dbus-object-registry.c: implement signal connection 
10182         and dispatch
10183
10184         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10185
10186         * dbus/dbus-internals.c (_dbus_memdup): new function
10187
10188 2003-08-02  Havoc Pennington  <hp@pobox.com>
10189
10190         * dbus/dbus-message.c (dbus_message_get_no_reply)
10191         (dbus_message_set_no_reply): add these and remove
10192         set_is_error/get_is_error
10193
10194         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10195         remove the ERROR flag, since there's now an ERROR type
10196
10197 2003-08-01  Havoc Pennington  <hp@pobox.com>
10198
10199         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10200         implement
10201
10202         * dbus/dbus-message.c (dbus_message_get_type): new function
10203
10204         * doc/dbus-specification.sgml: add "type" byte to messages
10205
10206 2003-08-01  Havoc Pennington  <hp@pobox.com>
10207
10208         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10209         a message type enum to distinguish kinds of message
10210         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10211         that need not be replied to
10212
10213 2003-08-01  Havoc Pennington  <hp@pobox.com>
10214
10215         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10216         (unpack_8_octets): fix no-64-bit-int bug
10217
10218         * dbus/dbus-object-registry.c (validate_id): validate the 
10219         connection ID bits, not just the instance ID.
10220
10221         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10222         the connection-global 33 bits of the object ID
10223
10224         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10225         object ID in the new way
10226
10227         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10228         define server/client/instance bits.
10229
10230 2003-07-30  Havoc Pennington  <hp@pobox.com>
10231
10232         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10233         build
10234
10235 2003-07-13  Havoc Pennington  <hp@pobox.com>
10236
10237         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10238         fields to DBusObjectVTable and DBusObjectInfo
10239
10240 2003-07-12  Havoc Pennington  <hp@pobox.com>
10241
10242         * dbus/dbus-object-registry.c: implement unit test,
10243         fix bugs discovered in process
10244
10245         * dbus/dbus-connection.c: remove handler_table and
10246         register_handler(), add DBusObjectRegistry usage
10247
10248         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10249         (dbus_object_id_set_null): new functions
10250
10251 2003-07-08  Havoc Pennington  <hp@pobox.com>
10252
10253         * dbus/dbus-object.c: implement some of this
10254
10255         * dbus/dbus-object-registry.c
10256         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10257         param
10258         (_dbus_object_registry_new): handle OOM
10259
10260 2003-07-08  Havoc Pennington  <hp@pobox.com>
10261
10262         * dbus/dbus-object.h: sketch out an API for registering objects
10263         with a connection, that allows us to use as little as 24 bytes
10264         per object and lets application code represent an object in 
10265         any conceivable way.
10266
10267         * dbus/dbus-object-registry.c: implement the hard bits of the
10268         DBusConnection aspect of object API. Not yet wired up.
10269         
10270 2003-07-06  Havoc Pennington  <hp@pobox.com>
10271
10272         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10273         (_dbus_marshal_object_id): new
10274         (_dbus_demarshal_object_id): new
10275         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10276         consolidate identical switch cases. Don't conditionalize handling
10277         of DBUS_TYPE_UINT64, need to handle the type always.
10278         (_dbus_marshal_validate_arg): consolidate identical cases, and
10279         handle DBUS_TYPE_OBJECT_ID
10280
10281         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10282
10283         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10284
10285 2003-09-28  Havoc Pennington  <hp@pobox.com>
10286
10287         * real 0.13 release
10288
10289 2003-09-28  Havoc Pennington  <hp@pobox.com>
10290
10291         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10292         to work with Debian db2html
10293
10294 2003-09-28  Havoc Pennington  <hp@pobox.com>
10295
10296         * configure.in: 0.13
10297
10298         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10299         stylesheet-images for benefit of Debian
10300         
10301         Change back to using filesystem-linked sockets for the system
10302         bus, so only root can create the default system bus address.
10303         
10304         * bus/system.conf.in: change to use
10305         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10306
10307         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10308         from here.
10309
10310         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10311         here, and AC_DEFINE DBUS_SYSTEM_PATH
10312
10313 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10314
10315         * doc/TODO:
10316         * doc/busconfig.dtd:
10317         Add busconfig DTD.
10318         
10319 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10320
10321         * doc/dbus-specification.sgml:
10322         Add activation reply values.
10323         
10324 2003-08-05  Havoc Pennington  <hp@redhat.com>
10325
10326         * configure.in: 0.12
10327
10328 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10329
10330         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10331         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10332         (add_watch), (remove_watch), (create_source):
10333         Refcount fds, fixes some reentrancy issues.
10334         
10335 2003-07-30  Havoc Pennington  <hp@redhat.com>
10336
10337         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10338         bus address to be abstract if we have abstract sockets
10339
10340         * NEWS: update
10341
10342 2003-07-28  Havoc Pennington  <hp@redhat.com>
10343
10344         * bus/messagebus.in: fix to avoid processname/servicename 
10345         confusion, from Michael Kearey
10346         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10347         
10348 2003-07-23  Havoc Pennington  <hp@pobox.com>
10349
10350         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10351         fix from Andy Hanton to remove broken "+1"
10352
10353 2003-07-16  Havoc Pennington  <hp@pobox.com>
10354
10355         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10356         babysitter process, as suggested by Thomas Leonard, so 
10357         an "eval `dbus-launch --exit-with-session`" will actually 
10358         return
10359
10360 2003-07-16  Havoc Pennington  <hp@pobox.com>
10361
10362         * configure.in: print out EXPANDED_* variables in the summary at
10363         the end; clean up the code that computes EXPANDED_ variables and
10364         get the ones using exec_prefix right. Should make things work
10365         when you build without --prefix
10366
10367 2003-06-29  Havoc Pennington  <hp@pobox.com>
10368
10369         * mono/Test.cs (class Test): fire up a main loop and run it
10370
10371         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10372         done once, the app has to do it
10373
10374 2003-06-26  Havoc Pennington  <hp@pobox.com>
10375
10376         * mono/Connection.cs: set up connection with the glib main loop
10377
10378 2003-07-01  Havoc Pennington  <hp@redhat.com>
10379
10380         * doc/dbus-specification.sgml: clarify the format of a type code,
10381         change suggested by Jim Blandy
10382
10383 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10384
10385         * doc/Makefile.am:
10386         * tools/Makefile.am: Don't assume srcdir == builddir.
10387
10388         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10389         the allocated block.
10390         (_dbus_memory_test): New function.
10391         * dbus/dbus-test.h: Add _dbus_memory_test ().
10392         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10393
10394         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10395         of %c%c%c%c.
10396         (dbus_message_new): Remove obsolete @todo.
10397
10398         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10399         (_dbus_marshal_set_uint64): Fix comment.
10400
10401         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10402         hardcode FIELD_REPLY_SERIAL.
10403
10404         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10405         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10406
10407         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10408         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10409
10410 2003-06-24  Havoc Pennington  <hp@pobox.com>
10411
10412         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10413
10414 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10415
10416         * configure.in:
10417         * gcj/.cvsignore:
10418         * gcj/Hello.java:
10419         * gcj/Makefile.am:
10420         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10421         * gcj/org/.cvsignore:
10422         * gcj/org/Makefile.am:
10423         * gcj/org/freedesktop/.cvsignore:
10424         * gcj/org/freedesktop/Makefile.am:
10425         * gcj/org/freedesktop/dbus/.cvsignore:
10426         * gcj/org/freedesktop/dbus/Makefile.am:
10427         * gcj/org/freedesktop/dbus/Message.java: (Message),
10428         (Message.Message):
10429         * gcj/org/freedesktop/dbus/natMessage.cc:
10430         Fix the build system.
10431
10432 2003-06-22  Havoc Pennington  <hp@pobox.com>
10433
10434         * mono/Connection.cs: add more bindings
10435
10436         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10437         more than once.
10438
10439 2003-06-22  Havoc Pennington  <hp@pobox.com>
10440
10441         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10442         Start wrapping more stuff.
10443
10444 2003-06-22  Havoc Pennington  <hp@pobox.com>
10445
10446         * mono/Message.cs: implement Message.Wrap() that ensures we only
10447         have a single C# wrapper per DBusMessage, assuming it works which
10448         it probably doesn't.
10449
10450         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10451         (dbus_message_free_data_slot): new
10452         (dbus_message_set_data): new
10453         (dbus_message_get_data): new
10454
10455 2003-06-22  Havoc Pennington  <hp@pobox.com>
10456
10457         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10458         (_dbus_data_slot_allocator_alloc): rework these to keep a
10459         reference count on each slot and automatically manage a global
10460         slot ID variable passed in by address
10461
10462         * bus/bus.c: convert to new dataslot API
10463
10464         * dbus/dbus-bus.c: convert to new dataslot API
10465
10466         * dbus/dbus-connection.c: convert to new dataslot API
10467
10468         * dbus/dbus-server.c: convert to new dataslot API
10469
10470         * glib/dbus-gmain.c: ditto
10471
10472         * bus/test.c: ditto
10473
10474         * bus/connection.c: ditto
10475
10476 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10477
10478         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10479         after the gcj checks so that the correct configuration tags
10480         will be added to libtool.
10481
10482         * dbus-glib-1.pc.in: No need to specify any includes since
10483         dbus-1.pc.in has those.
10484
10485 2003-06-22  Havoc Pennington  <hp@pobox.com>
10486
10487         * mono/*, gcj/*, configure.in, Makefile.am:
10488         Check in makefiles and subdirs for mono and gcj bindings.
10489         Neither binding actually exists, just trying to get through
10490         all the build and other boring bits.
10491
10492 2003-06-21  Philip Blundell  <philb@gnu.org>
10493
10494         * tools/dbus-monitor.1: Updated.
10495
10496         * tools/dbus-send.1: Likewise.
10497
10498 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10499
10500         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10501         for hangup and error after checking read so we won't discard
10502         pending data if both hangup and read are set.
10503
10504 2003-06-19  Philip Blundell  <philb@gnu.org>
10505
10506         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10507
10508         * tools/dbus-send.c: Accept both --system and --session.
10509
10510         * tools/dbus-monitor.c: Same here.
10511
10512 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10513
10514         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10515         from C++ (Patch by Miloslav Trmac).
10516
10517 2003-06-15  Joe Shaw  <joe@assbarn.com>
10518
10519         * configure.in: Check for socklen_t.
10520
10521         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10522
10523         * test/test-segfault.c: Add #include <sys/time.h>
10524
10525         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10526         dbus-launch needs it.
10527
10528 2003-06-09  Havoc Pennington  <hp@redhat.com>
10529
10530         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10531         SUN_LEN, it breaks abstract socket usage
10532
10533         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10534         starts of lines.
10535
10536 2003-06-04  Havoc Pennington  <hp@pobox.com>
10537
10538         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10539         using unix:abstract=/foo, and when listening in a tmpdir
10540         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10541
10542         * dbus/dbus-transport.c (_dbus_transport_open): support
10543         unix:abstract=/foo
10544
10545         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10546         support abstract sockets
10547
10548         * dbus/dbus-transport-unix.c
10549         (_dbus_transport_new_for_domain_socket): support abstract sockets
10550
10551         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10552         toggle as an argument, implement abstract namespace support
10553         (_dbus_listen_unix_socket): ditto
10554
10555         * configure.in: add --enable-abstract-sockets and implement
10556         a configure check for autodetection of the right value.
10557
10558 2003-06-01  Havoc Pennington  <hp@pobox.com>
10559
10560         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10561         in /tmp (though on Linux this will end up being useless,
10562         when we add abstract namespace support)
10563
10564         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10565         subst'ing it
10566
10567 2003-05-28  Colin Walters  <walters@verbum.org>
10568
10569         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10570
10571 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10572
10573         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10574
10575 2003-05-17  Colin Walters  <walters@gnu.org>
10576
10577         * tools/dbus-send.c: Don't exit with an error code if --help was
10578         passed.  Default to using the session bus instead of the system
10579         one.
10580
10581         * tools/dbus-launch.c: Ditto.
10582
10583         * tools/dbus-monitor.c: Ditto.
10584
10585         * tools/dbus-send.1: Update with new arguments.
10586
10587         * tools/dbus-launch.c: Emit code to export variables.  New
10588         arguments -s and -c to specify shell syntax, and a bit of code to
10589         autodetect syntax.  Also, allow specifying a program to run.
10590
10591         * tools/dbus-launch.1: Update with new arguments.
10592
10593         * tools/dbus-send.1: Ditto.
10594
10595         * tools/dbus-monitor.1: Ditto.
10596
10597 2003-05-17  Havoc Pennington  <hp@pobox.com>
10598
10599         * bus/config-parser.c (merge_included): merge in policies from
10600         child configuration file.
10601
10602         * bus/policy.c (bus_policy_merge): function to merge two policies
10603         together
10604
10605 2003-05-16  Havoc Pennington  <hp@redhat.com>
10606
10607         * dbus/dbus-connection.c: disable verbose lock spew
10608
10609         * tools/dbus-send.c: add --print-reply command line option
10610
10611         * tools/dbus-print-message.h (print_message): new util function
10612         shared by dbus-send and dbus-monitor
10613
10614         * tools/dbus-monitor.c (handler_func): exit on disconnect
10615
10616         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10617         disconnected, don't try to use the read_watch
10618
10619         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10620         so we can find this bug more easily
10621
10622 2003-05-16  Havoc Pennington  <hp@redhat.com>
10623
10624         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10625         NULL as DBusHashTable is annoyingly likely to do.
10626
10627 2003-05-16  Colin Walters  <walters@verbum.org>
10628
10629         * tools/dbus-monitor.c: Add --session argument and usage()
10630         function.
10631
10632         * tools/dbus-monitor.1: Update with new --session arg.
10633
10634         * bus/Makefile.am (install-data-hook): Create
10635         $(libdir)/dbus-1.0/services so that the session bus is happy.
10636
10637 2003-05-15  Havoc Pennington  <hp@redhat.com>
10638
10639         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10640         on non-x86. ifdef's are evil.
10641
10642 2003-05-15  Havoc Pennington  <hp@redhat.com>
10643
10644         * configure.in: 0.11
10645
10646         * NEWS: update
10647
10648         * bus/Makefile.am (initddir): apparently we are supposed to put
10649         init scripts in /etc/rc.d/init.d not /etc/init.d
10650
10651         * bus/Makefile.am: remove the "you must --enable-tests to make
10652         check" as it broke distcheck
10653
10654         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10655
10656 2003-05-13  James Willcox  <jwillcox@gnome.org>
10657
10658         * configure.in:
10659         * bus/activation.c: (bus_activation_service_created),
10660         (bus_activation_activate_service):
10661         * bus/driver.c: (bus_driver_send_service_deleted),
10662         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10663         (bus_driver_send_service_acquired),
10664         (bus_driver_send_welcome_message),
10665         (bus_driver_handle_list_services):
10666         * bus/session.conf.in:
10667         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10668         (dbus_bus_service_exists), (dbus_bus_activate_service):
10669         * dbus/dbus-bus.h:
10670
10671         Add some convenience API which lets you activate a service, and did a
10672         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10673         and dbus_message_get_args()
10674
10675 2003-05-11  Havoc Pennington  <hp@pobox.com>
10676
10677         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10678         calling _dbus_marshal_validate_arg() for every byte in a byte
10679         array, etc.
10680
10681         * dbus/dbus-message-handler.c: use atomic reference counting to
10682         reduce number of locks slightly; the global lock in here sucks
10683
10684         * dbus/dbus-connection.c
10685         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10686         update_dispatch_status that can be called with lock held; then use
10687         in a couple places to reduce locking/unlocking
10688         (dbus_connection_send): hold the lock over the whole function
10689         instead of acquiring it twice.
10690
10691         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10692
10693         * bus/connection.c (bus_connections_setup_connection): fix access
10694         to already-freed memory.
10695
10696         * dbus/dbus-connection.c: keep a little cache of linked list
10697         nodes, to avoid using the global linked list alloc lock in the
10698         normal send-message case. Instead we just use the connection lock
10699         that we already have to take.
10700
10701         * dbus/dbus-list.c (_dbus_list_find_last): new function
10702
10703         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10704         change to use a struct for the atomic type; fix docs,
10705         they return value before increment, not after increment.
10706
10707         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10708         (_dbus_string_append_8_aligned): new functions to try to
10709         microoptimize this operation.
10710         (reallocate_for_length): break this out of set_length(), to
10711         improve profile info, and also so we can consider inlining the
10712         set_length() part.
10713
10714         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10715         strings with some preallocation, cuts down on our calls to realloc
10716         a fair bit. Though if we can get the "move entire string to empty
10717         string" optimization below to kick in here, it would be better.
10718
10719         * dbus/dbus-string.c (_dbus_string_move): just call
10720         _dbus_string_move_len
10721         (_dbus_string_move_len): add a special case for moving
10722         an entire string into an empty string; we can just
10723         swap the string data instead of doing any reallocs.
10724         (_dbus_string_init_preallocated): new function
10725
10726 2003-05-11  Havoc Pennington  <hp@pobox.com>
10727
10728         Write a "test-profile" that does echo client-server with threads;
10729         profile reveals lock contention, memcpy/realloc of buffers, and
10730         UTF-8 validation as hot spots. 20% of lock contention eliminated
10731         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10732         contention is global mempool locks for GList and DBusList.
10733
10734         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10735         x86 implementation
10736
10737         * dbus/dbus-connection.c (struct DBusConnection): use
10738         dbus_atomic_t for the reference count
10739
10740         * dbus/dbus-message.c (struct DBusMessage): declare
10741         dbus_atomic_t values as volatile
10742
10743         * configure.in: code to detect ability to use atomic integer
10744         operations in assembly, from GLib patch
10745
10746         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10747         time, tired of it being wrong in threads and forked processes
10748
10749         * glib/test-profile.c: a little program to bounce messages back
10750         and forth between threads and eat CPU
10751
10752         * dbus/dbus-connection.c: add debug spew macros for debugging
10753         thread locks; include config.h at top; fix deadlock in
10754         dbus_connection_flush()
10755
10756 2003-05-08  Havoc Pennington  <hp@pobox.com>
10757
10758         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10759         data from getting written, and there wasn't a good reason to
10760         use _exit really.
10761
10762         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10763         dbus_verbose lines in test coverage
10764         (main): add list of functions sorted by # of untested blocks
10765         to the coverage report
10766
10767         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10768
10769         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10770
10771         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10772         extend test coverage
10773
10774         * test/data/auth/cancel.auth-script: test canceling an
10775         authentication
10776
10777         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10778         aren't used. in CVS history if we end up needing them.
10779
10780 2003-05-04  Havoc Pennington  <hp@pobox.com>
10781
10782         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10783         unit test
10784
10785         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10786         function, which assumed length was in # of strings, not bytes
10787
10788         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10789         missing coverage
10790
10791         * dbus/dbus-connection.c
10792         (_dbus_connection_queue_received_message): disable function for
10793         now, we are only using it in test mode
10794
10795         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10796         remove a mistaken FIXME
10797
10798 2003-05-04  Havoc Pennington  <hp@pobox.com>
10799
10800         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10801         unlock mutex on successful return, patch from Anders Gustafsson
10802
10803 2003-05-04  Havoc Pennington  <hp@pobox.com>
10804
10805         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10806         Anders Gustafsson
10807
10808 2003-05-04  Havoc Pennington  <hp@pobox.com>
10809
10810         * tools/dbus-launch.c: implement
10811
10812         * bus/main.c (main), bus/bus.c (bus_context_new):
10813         implement --print-pid and --fork
10814
10815 2003-05-03  Havoc Pennington  <hp@redhat.com>
10816
10817         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10818         the address had no value, and add to test suite. Fix and
10819         regression test from Miloslav Trmac
10820
10821 2003-05-03  Havoc Pennington  <hp@pobox.com>
10822
10823         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10824         watch is invalid when handled
10825
10826         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10827         dbus-launch utility to launch the bus from a shell script.  Didn't
10828         actually implement dbus-launch yet, it's just a placeholder still.
10829
10830 2003-05-03  Havoc Pennington  <hp@pobox.com>
10831
10832         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10833         daemon; also documents daemon config file, so replaces
10834         doc/config-file.txt. Corrected some stuff from config-file.txt in
10835         the process of moving it.
10836
10837 2003-05-03  Havoc Pennington  <hp@pobox.com>
10838
10839         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10840         add some man pages
10841
10842 2003-05-03  Colin Walters  <walters@verbum.org>
10843
10844         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10845         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10846
10847         * Makefile.am: Update to use new .pc versioning scheme.
10848
10849 2003-05-02  Havoc Pennington  <hp@redhat.com>
10850
10851         * bus/system.conf.in: allow send/receive to/from message bus
10852         service
10853
10854 2003-04-30  Havoc Pennington  <hp@redhat.com>
10855
10856         * configure.in: print a note when building with unit tests and
10857         without assertions
10858
10859 2003-04-30  Havoc Pennington  <hp@redhat.com>
10860
10861         * Makefile.am: add a check-local that complains if you didn't
10862         configure with --enable-tests
10863
10864 2003-04-29  Havoc Pennington  <hp@redhat.com>
10865
10866         * glib/dbus-gmain.c: docs cleanups
10867
10868         * dbus/dbus-types.h: add docs on int64 types
10869
10870         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10871         public API docs section
10872
10873 2003-04-29  Havoc Pennington  <hp@redhat.com>
10874
10875         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10876         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10877         parallel install API version, not with the D-BUS package version.
10878
10879         * HACKING: move some of README over here
10880
10881         * README: updates, and document API/ABI policy
10882
10883         * configure.in: reindentation
10884
10885 2003-04-29  Havoc Pennington  <hp@redhat.com>
10886
10887         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10888         to use this library" to be sure people have the right
10889         expectations.
10890
10891 2003-04-28  Havoc Pennington  <hp@redhat.com>
10892
10893         * configure.in: add --enable-docs which by default is auto yes if
10894         doxygen and db2html found, no otherwise; but can be forced on/off
10895
10896         * doc/Makefile.am: conditionalize whether to build docs on
10897         --enable-docs
10898
10899 2003-04-28  Havoc Pennington  <hp@redhat.com>
10900
10901         * configure.in: 0.10
10902
10903         * NEWS: update
10904
10905         * bus/system.conf.in: add <includedir>system.d</includedir>
10906
10907         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10908         username was provided but not uid
10909
10910         * bus/config-parser.c (struct BusConfigParser): keep track of
10911         whether the parser is toplevel or was included; change some
10912         of the error handling if it's included.
10913
10914 2003-04-27  Havoc Pennington  <hp@pobox.com>
10915
10916         Unbreak my code...
10917
10918         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10919         report correct status if we finish processing authentication
10920         inside this function.
10921
10922         * bus/activation.c (try_send_activation_failure): use
10923         bus_transaction_send_error_reply
10924
10925         * bus/connection.c (bus_connection_get_groups): return an error
10926         explaining the problem
10927
10928         * bus/bus.c (bus_context_check_security_policy): implement
10929         restriction here that inactive connections can only send the
10930         hello message. Also, allow bus driver to send anything to
10931         any recipient.
10932
10933         * bus/connection.c (bus_connection_complete): create the
10934         BusClientPolicy here instead of on-demand.
10935         (bus_connection_get_policy): don't return an error
10936
10937         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10938         sender field in message being replied to
10939
10940         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10941         causing it to return FALSE always
10942
10943         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10944         we checked sender rather than destination
10945
10946 2003-04-25  Havoc Pennington  <hp@redhat.com>
10947
10948         test suite is slightly hosed at the moment, will fix soon
10949
10950         * bus/connection.c (bus_connections_expire_incomplete): fix to
10951         properly disable the timeout when required
10952         (bus_connection_set_name): check whether we can remove incomplete
10953         connections timeout after we complete each connection.
10954
10955         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10956         probably still broken.
10957
10958         * bus/services.c (bus_registry_acquire_service): implement max
10959         number of services owned, and honor allow/deny rules on which
10960         services a connection can own.
10961
10962         * bus/connection.c (bus_connection_get_policy): report errors here
10963
10964         * bus/activation.c: implement limit on number of pending
10965         activations
10966
10967 2003-04-25  Havoc Pennington  <hp@redhat.com>
10968
10969         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10970         where we used >= 0 instead of != DBUS_UID_UNSET.
10971
10972 2003-04-25  Havoc Pennington  <hp@redhat.com>
10973
10974         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10975         were toggled without add/remove, fix from Anders Gustafsson
10976
10977 2003-04-24  Havoc Pennington  <hp@redhat.com>
10978
10979         * test/data/valid-config-files/basic.conf: add <limit> tags to
10980         this test
10981
10982         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10983         <limit> tag in configuration file.
10984
10985 2003-04-24  Havoc Pennington  <hp@redhat.com>
10986
10987         * bus/dispatch.c: somehow missed some name_is
10988
10989         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10990         (_dbus_timeout_set_interval): new
10991
10992         * bus/connection.c (bus_connections_setup_connection): record time
10993         when each connection is first set up, and expire them after the
10994         auth timeout passes.
10995
10996 2003-04-24  Havoc Pennington  <hp@redhat.com>
10997
10998         * dbus/dbus-message.c (dbus_message_name_is): rename
10999         (dbus_message_service_is): rename
11000         (dbus_message_sender_is): rename
11001         (dbus_message_get_service): rename
11002
11003 2003-04-24  Havoc Pennington  <hp@redhat.com>
11004
11005         * configure.in: add --enable-checks
11006
11007         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11008
11009         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11010         to use thread locks.
11011         (_dbus_connection_handler_destroyed_locked): move some private
11012         functions into proper docs group
11013
11014         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11015         _dbus_return_val_if_fail
11016
11017         Throughout: use dbus_return_if_fail
11018
11019 2003-04-23  James Willcox  <jwillcox@gnome.org>
11020
11021         * glib/dbus-glib.h:
11022         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11023         (dbus_connection_setup_with_g_main),
11024         (dbus_server_setup_with_g_main):
11025         * glib/test-dbus-glib.c: (main):
11026         * glib/test-thread-client.c: (main):
11027         * glib/test-thread-server.c: (new_connection_callback), (main):
11028         * tools/dbus-monitor.c: (main):
11029
11030         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11031         and dbus_server_setup_with_g_main().
11032
11033 2003-04-20  Havoc Pennington  <hp@pobox.com>
11034
11035         * doc/dbus-specification.sgml: document the restrictions on
11036         message and service names
11037
11038 2003-04-22  Havoc Pennington  <hp@redhat.com>
11039
11040         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11041         support, and do some code cleanups to share more code and
11042         speed up array marshal/demarshal.
11043
11044         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11045
11046         * configure.in: generate dbus-arch-deps.h
11047
11048         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11049         64-bit typecodes
11050
11051 2003-04-22  Havoc Pennington  <hp@redhat.com>
11052
11053         * test/data/valid-messages/opposite-endian.message: fix test
11054         to use proper type for rply field
11055
11056         * test/data/invalid-messages: add tests for below validation
11057
11058         * dbus/dbus-message.c (decode_header_data): validate field types,
11059         and validate that named fields are valid names
11060         (decode_name_field): consider messages in the
11061         org.freedesktop.Local. namespace to be invalid.
11062
11063         * dbus/dbus-string.c (_dbus_string_validate_name): new
11064
11065 2003-04-19  Havoc Pennington  <hp@pobox.com>
11066
11067         * bus/driver.c (bus_driver_handle_hello): check limits and
11068         return an error if they are exceeded.
11069
11070         * bus/connection.c: maintain separate lists of active and inactive
11071         connections, and a count of each. Maintain count of completed
11072         connections per user. Implement code to check connection limits.
11073
11074         * dbus/dbus-list.c (_dbus_list_unlink): export
11075
11076         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11077         number of bytes in the message queue for a connection
11078
11079 2003-04-18  Havoc Pennington  <hp@pobox.com>
11080
11081         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11082
11083         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11084         memleaks
11085
11086         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11087         on realloc be sure to update the pointer in the keyring
11088
11089         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11090         offset to avoid writing to unallocated memory
11091
11092         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11093         try the next mechanism, so we properly handle OOM
11094
11095         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11096         on OOM.
11097         (_dbus_keyring_new): fix OOM bug
11098         (_dbus_keyring_new_homedir): always set error; impose a maximum
11099         number of keys we'll load from the file, mostly to speed up the
11100         test suite and make its OOM checks more useful, but also for
11101         general sanity.
11102
11103         * dbus/dbus-auth.c (process_error_server): reject authentication
11104         if we get an error from the client
11105         (process_cancel): on cancel, send REJECTED, per the spec
11106         (process_error_client): send CANCEL if we get an error from the
11107         server.
11108
11109 2003-04-18  Havoc Pennington  <hp@pobox.com>
11110
11111         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11112         debug spew
11113
11114         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11115         handling problem
11116
11117         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11118         about DBUS_TEST_HOMEDIR once
11119
11120         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11121         the environment
11122
11123         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11124         config file so we test the right thing
11125
11126         Throughout: assorted docs improvements
11127
11128 2003-04-18  Havoc Pennington  <hp@pobox.com>
11129
11130         * glib/dbus-gmain.c: adapt to watch changes
11131
11132         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11133
11134         * dbus/dbus-server.h: remove dbus_server_handle_watch
11135
11136         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11137
11138         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11139         like DBusTimeout, so we don't need dbus_connection_handle_watch
11140         etc.
11141
11142 2003-04-17  Havoc Pennington  <hp@redhat.com>
11143
11144         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11145         database usage so it all goes via the DBusUserDatabase cache.
11146
11147 2003-04-17  Havoc Pennington  <hp@redhat.com>
11148
11149         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11150         there was an OOM watch we skipped, we always return TRUE so we
11151         iterate again to have a look at it again. Fixes test suite hang.
11152         Code rearrangement also lets us lose some memset and only iterate
11153         over callbacks once.
11154
11155         * bus/driver.c (bus_driver_handle_message): sense of test for
11156         reply was backward
11157
11158 2003-04-16  Havoc Pennington  <hp@pobox.com>
11159
11160         * doc/dbus-specification.sgml: make spec say serials are unsigned
11161
11162         * dbus/dbus-message.h: change message serials to unsigned
11163
11164         * dbus/dbus-connection.c: adapt to message serials being unsigned
11165
11166 2003-04-15  Havoc Pennington  <hp@pobox.com>
11167
11168         * bus/bus.c: create and keep around a shared DBusUserDatabase
11169         object.
11170
11171         * bus/connection.c (bus_connection_get_groups): don't cache
11172         groups for user in the connection object, since user database
11173         object now does that.
11174
11175 2003-04-16  Havoc Pennington  <hp@redhat.com>
11176
11177         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11178         list of size counters
11179         (_dbus_message_loader_putback_message_link): put back a popped link
11180
11181         * dbus/dbus-connection.c
11182         (dbus_connection_set_max_live_messages_size): rename
11183         max_received_size
11184         (dbus_connection_get_outgoing_size): get size of outgoing
11185         queue
11186         (_dbus_connection_set_connection_counter): remove this cruft
11187
11188 2003-04-14  Havoc Pennington  <hp@redhat.com>
11189
11190         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11191         caching, but at some point we might want to be able to use a
11192         different database.
11193
11194         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11195         SHA1 conf file to test the sha1 auth mechanism, since the regular
11196         test always uses EXTERNAL when available.
11197
11198         * configure.in,
11199         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11200         add conf file that requires use of sha1 auth
11201
11202 2003-04-13  Havoc Pennington  <hp@pobox.com>
11203
11204         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11205         from Philip Blundell to send messages and monitor them.
11206
11207 2003-04-13  Havoc Pennington  <hp@pobox.com>
11208
11209         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11210         callbacks
11211
11212         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11213         users
11214
11215         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11216         fix to only recover unused bytes if we're already authenticated
11217         (_dbus_transport_get_is_authenticated): fix to still mark us
11218         authenticated if there are unused bytes.
11219
11220         * bus/dispatch.c: implement security policy checking
11221
11222         * bus/connection.c (bus_transaction_send_from_driver): new
11223
11224         * bus/bus.c (bus_context_check_security_policy): new
11225
11226         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11227         now we just set the DBusError and it gets converted to an error
11228         reply.
11229
11230         * bus/connection.c (allow_user_function): enable code using actual
11231         data from the config file
11232
11233         * bus/policy.c (list_allows_user): handle wildcard rules for
11234         user/group connection perms
11235
11236 2003-04-13  Havoc Pennington  <hp@pobox.com>
11237
11238         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11239
11240         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11241
11242         * bus/policy.c (bus_policy_append_mandatory_rule)
11243         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11244         (bus_policy_append_group_rule): new functions
11245
11246 2003-04-12  Havoc Pennington  <hp@pobox.com>
11247
11248         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11249
11250         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11251         the pid/gid/uid, just for paranoia.
11252
11253         * test/break-loader.c (randomly_do_n_things): find a byte
11254         containing a type code, and randomly change it to a different
11255         type code.
11256
11257 2003-04-12  Havoc Pennington  <hp@pobox.com>
11258
11259         * bus/policy.h: change BusPolicy to be the thing from the config
11260         file, and rename old BusPolicy to BusClientPolicy
11261
11262         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11263         match change in how policy works
11264
11265         * dbus/dbus-internals.h: mark assert_not_reached as
11266         __attribute((noreturn))__
11267
11268 2003-04-11  Havoc Pennington  <hp@redhat.com>
11269
11270         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11271         the broadcast service. Use boolean return for ServiceExists.
11272
11273 2003-04-11  Havoc Pennington  <hp@redhat.com>
11274
11275         * configure.in: add another directory to look for qt in.
11276
11277 2003-04-11  Havoc Pennington  <hp@redhat.com>
11278
11279         * AUTHORS: add Colin Walters
11280
11281 2003-04-11  Havoc Pennington  <hp@redhat.com>
11282
11283         * NEWS: update
11284
11285         * configure.in: 0.9
11286
11287 2003-04-11  Havoc Pennington  <hp@redhat.com>
11288
11289         * bus/messagebus.in: remove pid file when stopping the
11290         message bus, since the bus won't have privileges to remove it
11291         itself.
11292
11293 2003-04-11  Havoc Pennington  <hp@redhat.com>
11294
11295         * bus/bus.c (bus_context_new): move credentials change after
11296         creating pidfile
11297
11298 2003-04-11  Havoc Pennington  <hp@pobox.com>
11299
11300         * test/decode-gcov.c: add "below average functions" to the
11301         coverage report, and change how some of the code works.
11302
11303         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11304         not in the coverage stats.
11305
11306         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11307         couple places so running the test suite doesn't result in megaspam.
11308
11309 2003-04-11  Havoc Pennington  <hp@pobox.com>
11310
11311         * bus/dispatch.c (check_existent_service_activation): accept a no
11312         memory error in a place we didn't before
11313
11314         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11315         in case the first one failed," since the test suite is less
11316         broken now.
11317
11318 2003-04-10  Havoc Pennington  <hp@pobox.com>
11319
11320         * bus/dispatch.c (check_segfault_service_activation): add test
11321         for launching an executable that just crashes.
11322
11323         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11324         don't leave a million cores. We'll see how portable this is.
11325
11326 2003-04-10  Havoc Pennington  <hp@pobox.com>
11327
11328         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11329         the possible parent failures before we fork, so that we don't
11330         fail to create a babysitter after creating the child.
11331
11332         * bus/activation.c (bus_activation_activate_service): kill child
11333         if we don't successfully complete the activation.
11334
11335 2003-04-10  Havoc Pennington  <hp@redhat.com>
11336
11337         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11338         the connection if it's disconnected
11339
11340         * bus/activation.c (bus_activation_service_created): use new
11341         transaction features to roll back removal of pending activation if
11342         we don't successfully create the service after all. Don't remove
11343         pending activation if the function fails.
11344
11345         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11346         (_dbus_list_insert_after_link): new code to facilitate
11347         services.c fixes
11348
11349         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11350         new functionality, so we can preallocate the ability to insert
11351         into a hash table.
11352
11353         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11354         allowing us to put custom hooks in a transaction to be used for
11355         cancelling said transaction
11356
11357         * doc/dbus-specification.sgml: add some discussion of secondary
11358         service owners, and disallow zero-length service names
11359
11360         * bus/services.c (bus_registry_acquire_service): new function,
11361         splits out part of bus_driver_handle_acquire_service() and fixes
11362         a bug where we didn't remove the service doing the acquiring
11363         from the secondary queue if we failed to remove the current owner
11364         from the front of the queue.
11365
11366 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11367
11368         * doc/dbus-specification.sgml:
11369         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11370
11371 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11372
11373         * bus/.cvsignore:
11374         * glib/.cvsignore:
11375         * test/.cvsignore:
11376         Added files to cvsignore
11377
11378         * dbus/dbus-message.h:
11379         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11380         Make get_named() take two out argument and return a boolean.
11381         (dbus_message_iter_get_args_valist):
11382         Update usage of get_named().
11383         (dbus_message_iter_append_byte):
11384         Fix typo
11385         (dbus_message_iter_append_named)
11386         Fix typo
11387         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11388         More tests.
11389
11390 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11391
11392         * dbus/dbus-marshal.[ch]:
11393         Add array_type_pos argument to _dbus_marshal_validate_arg.
11394         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11395
11396         * dbus/dbus-message.[ch]:
11397         Multi-dimensional arrays have full type specification in the
11398         outermost array. Iter code re-arranged to handle this.
11399         Added some more iter tests.
11400
11401         * doc/dbus-specification.sgml:
11402         Add me to authors.
11403         Remove old FIXME.
11404         Update new array encoding description.
11405         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11406
11407         * test/data/invalid-messages/array-with-mixed-types.message:
11408         * test/data/valid-messages/array-of-array-of-uint32.message:
11409         Change to the new array format.
11410
11411         * test/data/invalid-messages/too-short-dict.message:
11412         Fix bug in test.
11413
11414         * test/data/valid-messages/recursive-types.message:
11415         Fix up and extend test.
11416
11417 2003-04-10  Havoc Pennington  <hp@pobox.com>
11418
11419         * bus/dispatch.c: lots of fixes
11420
11421         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11422         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11423         that was crack, broke the test service.
11424
11425         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11426         handling to avoid piling up errors if we get a failure on the
11427         first address.
11428
11429         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11430         pid in assertion failures.
11431
11432         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11433         to some fixed size of file descriptor array. Don't return TRUE
11434         anytime a timeout exists, that led to lots of busy loop silliness
11435         in the tests.
11436
11437 2003-04-09  Havoc Pennington  <hp@redhat.com>
11438
11439         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11440         I'd checked this in earlier but hadn't.
11441
11442 2003-04-09  Havoc Pennington  <hp@redhat.com>
11443
11444         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11445         the activation test (man this is getting old!)
11446
11447 2003-04-09  Havoc Pennington  <hp@redhat.com>
11448
11449         * test/test-utils.c: use dispatch status function to fix this up
11450
11451         * bus/connection.c (connection_watch_callback): don't dispatch
11452         from here
11453         (connection_timeout_callback): don't dispatch from here
11454         (bus_connections_setup_connection): set the dispatch status function
11455         (bus_connection_disconnected): unset it
11456
11457         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11458         used to add a connection to be dispatched
11459         (_dbus_loop_iterate): do the dispatching at the end of each
11460         iteration
11461
11462         * dbus/dbus-connection.c
11463         (dbus_connection_set_dispatch_status_function): new function
11464         allowing us to fix up main loop usage
11465         (_dbus_connection_last_unref): free all the various function
11466         user data
11467         (dbus_connection_dispatch): call the DispatchStatusFunction
11468         whenever this function returns
11469         (dbus_connection_handle_watch): call DispatchStatusFunction
11470         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11471         (reply_handler_timeout): call DispatchStatusFunction
11472         (dbus_connection_flush): call DispatchStatusFunction
11473
11474 2003-04-09  Havoc Pennington  <hp@redhat.com>
11475
11476         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11477         a memory leak
11478
11479         * bus/dispatch.c (check_service_activated): fix bug in test
11480
11481         * dbus/dbus-mainloop.c (check_timeout): fix this up
11482
11483         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11484         verbose output so we can sort out output from different processes,
11485         e.g. in the activation case.
11486
11487 2003-04-08  Colin Walters  <walters@gnu.org>
11488
11489         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11490         the pid file.
11491         (bus_context_new): Set it.
11492         (bus_context_unref): Use it to delete the pid file.
11493
11494 2003-04-08  Havoc Pennington  <hp@redhat.com>
11495
11496         * test/data/invalid-messages/array-with-mixed-types.message:
11497         regression test that fails for the moment
11498
11499         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11500         tests for convenience
11501
11502         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11503         array of nil, it broke things.
11504
11505         * test/data/invalid-messages/array-of-nil.message: regression test
11506
11507         * test/data/valid-messages/array-of-array-of-uint32.message:
11508         happened to write this so added it to suite
11509
11510 2003-04-08  Havoc Pennington  <hp@redhat.com>
11511
11512         * bus/driver.c (bus_driver_handle_acquire_service): init
11513         retval/reply before checking name
11514
11515         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11516         recursion depth argument
11517
11518         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11519         in the public struct for future extension
11520
11521         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11522         typo
11523
11524         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11525         message
11526
11527         * doc/dbus-specification.sgml: fix typo
11528
11529 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11530
11531         Implemented recursive types, named types and new-style iters
11532
11533         * bus/driver.c:
11534         * glib/test-thread-client.c: (thread_func):
11535         * glib/test-thread-server.c: (handle_test_message):
11536         * test/test-service.c: (handle_echo):
11537         Update to new api
11538
11539         * dbus/Makefile.am:
11540         * dbus/dbus-dict.c:
11541         * dbus/dbus-dict.h:
11542         * dbus/dbus.h
11543         Remove DBusDict
11544
11545         * dbus/dbus-internals.c: (_dbus_type_to_string):
11546         Update for new types.
11547
11548         * dbus/dbus-marshal.[ch]:
11549         Implement recursive types and the new marshalling format.
11550         Remove hardcoded dict marshalling.
11551         Marshal named types.
11552
11553         * dbus/dbus-message-builder.c:
11554         Add BYTE_ARRAY.
11555         Remove references to old types
11556
11557         * dbus/dbus-message.[ch]:
11558         New non-refcounted iter API that supports recursive iters.
11559         Use iters for appending, including support for recursive
11560         iters.
11561         Add byte and named type support.
11562         Update everything to new marshalling formats.
11563         Add tests for new API.
11564
11565         * dbus/dbus-protocol.h:
11566         Remove old array types.
11567         Add types: BYTE, ARRAY, DICT, NAMED
11568
11569         * dbus/dbus-string.c:
11570         * dbus/dbus-sysdeps.c:
11571         Make parse_double locale safe.
11572
11573         * dbus/dbus-test-main.c:
11574         Call setlocale.
11575
11576         * dbus/dbus-test.c:
11577         Kill dict test
11578
11579         * doc/dbus-specification.sgml:
11580         Update spec
11581
11582         * test/data/incomplete-messages/missing-body.message:
11583         * test/data/invalid-messages/bad-boolean.message:
11584         * test/data/invalid-messages/bad-boolean-array.message:
11585         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11586         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11587         * test/data/invalid-messages/too-short-dict.message:
11588         * test/data/valid-messages/dict-simple.message:
11589         * test/data/valid-messages/dict.message:
11590         * test/data/valid-messages/emptiness.message:
11591         * test/data/valid-messages/lots-of-arguments.message:
11592         * test/data/valid-messages/no-padding.message:
11593         * test/data/valid-messages/recursive-types.message:
11594         Add missing NAME fields
11595         Fix up dicts & arrays
11596
11597         * test/data/invalid-messages/dict-with-nil-value.message:
11598         Removed, this is not invalid anymore.
11599
11600         * test/data/valid-messages/recursive-types.message:
11601         Add new test for deeply recursive types.
11602
11603 2003-04-07  Havoc Pennington  <hp@pobox.com>
11604
11605         * bus/driver.c (bus_driver_handle_acquire_service): return an
11606         error if you try to acquire a service that starts with ':'
11607
11608 2003-04-07  Havoc Pennington  <hp@redhat.com>
11609
11610         * doc/dbus-specification.sgml: require that base service names
11611         start with ':' and that the base service is created/deleted
11612         as first and last things a connection does on the bus
11613
11614         * bus/dispatch.c (check_existent_service_activation): lots more
11615         work on the activation test; it doesn't fully pass yet...
11616
11617         * test/test-service.c (main): fix so we don't memleak the
11618         connection to the message bus
11619         (filter_func): accept a message asking us to exit
11620
11621 2003-04-06  Havoc Pennington  <hp@pobox.com>
11622
11623         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11624         from Colin Walters
11625
11626         * configure.in: fixes to Qt detection from Colin Walters
11627
11628         * doc/Makefile.am: Only remove generated docbook dirs if they
11629         exist, from Colin Walters
11630
11631         * dbus/dbus-bus.c: change how we set well-known connections to
11632         NULL, so that it works if a single connection is stored in
11633         two well-known array slots.
11634
11635         * test/Makefile.am: remove a lot of stuff that isn't immediately
11636         useful, it's in CVS history if we want it.
11637
11638         * test/test-service.c: use dbus-mainloop instead of that
11639         watch.[hc] crack
11640
11641 2003-04-06  Havoc Pennington  <hp@pobox.com>
11642
11643         * dbus/Makefile.am: split lists of sources into stuff that goes in
11644         the library, util functions that go in the lib and are also used
11645         elsewhere, and util functions that are used in tests/daemon but
11646         don't go in the lib.
11647
11648         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11649         here so it can be used in test binaries also
11650
11651 2003-04-06  Havoc Pennington  <hp@pobox.com>
11652
11653         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11654         here in the parent process, so we can return an error if it
11655         fails. Also, move some of the code into the child so the parent
11656         is less hosed if we fail midway through.
11657
11658         * bus/bus.c (bus_context_new): move pidfile detection further up
11659         in the function, before we start overwriting sockets and such.
11660
11661         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11662
11663         * configure.in: add --with-system-pid-file and --with-system-socket
11664
11665 2003-04-06  Colin Walters  <walters@verbum.org>
11666
11667         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11668
11669         * bus/system.conf.in: Declare a pidfile.
11670
11671         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11672         create one (if appropriate).
11673
11674         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11675         (struct BusConfigParser) [pidfile]: New.
11676         (element_type_to_name, merge_included, start_busconfig_child)
11677         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11678         (bus_config_parser_unref): Free it.
11679         (bus_config_parser_get_pidfile): New function.
11680
11681         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11682
11683         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11684
11685         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11686
11687         * dbus/dbus-sysdeps.h: Prototype it.
11688
11689 2003-04-06  Havoc Pennington  <hp@pobox.com>
11690
11691         * bus/bus.c (bus_context_new): print the address in here, rather
11692         than in main(), because we need to do it before forking the daemon
11693
11694         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11695         on the service nonexistent error
11696
11697         * bus/driver.c (bus_driver_handle_acquire_service): set the
11698         sender on the AcquireService reply
11699
11700         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11701         server also listen on a UNIX socket so services can connect to it.
11702
11703 2003-04-06  Havoc Pennington  <hp@pobox.com>
11704
11705         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11706         so it detects deadlocks and also we actually init threads when
11707         debugging.
11708
11709 2003-04-06  Havoc Pennington  <hp@pobox.com>
11710
11711         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11712         save the domain socket name, and unlink it when we disconnect the
11713         server. Means that at least when we exit normally, we won't leave
11714         a bunch of junk in /tmp
11715
11716         * dbus/dbus-transport-unix.c
11717         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11718         memory management). (I was making a real change here but then
11719         didn't)
11720
11721 2003-04-06  Havoc Pennington  <hp@pobox.com>
11722
11723         * bus/bus.c (bus_context_new): fix wrong handling of
11724         server_data_slot_unref() in the error case.
11725
11726         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11727         "(condition) != 0" to _dbus_real_assert so that
11728         "_dbus_assert (pointer)" doesn't cause a warning
11729
11730         * bus/main.c (main): accept --print-address option to print out
11731         the message bus address
11732
11733         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11734
11735         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11736         "tmpdir" option to unix: address on client side
11737
11738         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11739         to unix: address
11740
11741         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11742         we can use to create sockets in the test suite.
11743
11744         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11745         cleanly. To be used for testing.
11746
11747         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11748
11749         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11750
11751         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11752         handle trying to call this when there's no servers active
11753
11754 2003-04-05  Havoc Pennington  <hp@pobox.com>
11755
11756         * NEWS: update
11757
11758         * configure.in: 0.8
11759
11760 2003-04-05  Havoc Pennington  <hp@pobox.com>
11761
11762         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11763         crash on startup. Need to get "try starting the daemon"
11764         in the test suite I guess. ;-)
11765
11766         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11767         tracked the number of open connections; it's better done in
11768         application-specific code as you want it to span all servers etc.
11769
11770 2003-04-05  Havoc Pennington  <hp@pobox.com>
11771
11772         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11773         patch from Colin Walters
11774
11775 2003-04-05  Havoc Pennington  <hp@pobox.com>
11776
11777         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11778         reality; in fact multiple mechanisms are allowed.
11779
11780         * dbus/dbus-internals.c (_dbus_real_assert)
11781         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11782         _dbus_assert_not_reached() into functions, so that they don't show
11783         up in basic block counts for test coverage, and don't use up as
11784         much disk space. Does mean slower execution speed though, so
11785         assumes --disable-asserts is the normal production case.
11786
11787 2003-04-05  Havoc Pennington  <hp@pobox.com>
11788
11789         * test/Makefile.am (dist-hook): also dist *.in files
11790
11791         * NEWS: update
11792
11793         * configure.in: 0.7
11794
11795 2003-04-05  Havoc Pennington  <hp@pobox.com>
11796
11797         * dbus/dbus-string.c: docs warning
11798
11799         * dbus/dbus-spawn.c: missing docs
11800
11801         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11802
11803 2003-04-05  Havoc Pennington  <hp@pobox.com>
11804
11805         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11806         magic from GLib
11807
11808         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11809         to -1 once we've reaped the babysitter
11810         (_dbus_babysitter_handle_watch): do as much work as we can, not
11811         just one go of it
11812
11813         * bus/activation.c: add code using DBusBabysitter so that we
11814         handle it when a service fails to start up properly.
11815         (bus_activation_service_created): don't remove the activation
11816         entries as we go, just let them get removed when we free the pending
11817         activation. Unref reply messages after sending them.
11818
11819 2003-04-05  Havoc Pennington  <hp@pobox.com>
11820
11821         * test/decode-gcov.c (main): print per-directory stats in the report
11822
11823         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11824
11825 2003-04-05  Havoc Pennington  <hp@pobox.com>
11826
11827         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11828
11829         * test/decode-gcov.c: hack up a little program to suck data
11830         out of gcov files. Yes this is sort of silly.
11831
11832         * configure.in: define something in config.h and do an
11833         AM_CONDITIONAL when gcov is enabled
11834
11835 2003-04-04  Havoc Pennington  <hp@redhat.com>
11836
11837         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11838         return a "babysitter" object that is used to monitor the status of
11839         the spawned process and reap it when required.
11840
11841         * test/test-segfault.c, test/test-exit.c,
11842         test/test-sleep-forever.c: binaries that do various lame things,
11843         used in the test suite.
11844
11845         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11846
11847 2003-04-03  Havoc Pennington  <hp@pobox.com>
11848
11849         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11850         in preparation for modifying it, dbus-sysdeps is getting
11851         a bit unmanageable.
11852
11853 2003-04-03  Havoc Pennington  <hp@redhat.com>
11854
11855         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11856         have multiple ones
11857
11858         * bus/*.[hc]: adapt to mainloop change
11859
11860 2003-04-03  Havoc Pennington  <hp@redhat.com>
11861
11862         * bus/activation.c (load_directory): fix up memleaks
11863         (bus_activation_entry_free): free the entry
11864
11865         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11866         we get one from the message bus; fix memleaks.
11867
11868         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11869
11870 2003-04-03  Havoc Pennington  <hp@pobox.com>
11871
11872         * bus/config-parser.c (bus_config_parser_unref): free
11873         list of mechanisms, bug discovered by test suite enhancements
11874         (putting system.conf and session.conf into suite)
11875
11876         * test/Makefile.am, test/test-service.c: add placeholder for a
11877         test service that we'll activate as part of test suite. Doesn't
11878         do anything yet.
11879
11880         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11881         setting NULL value, and use system malloc not dbus_malloc()
11882         when we have unavoidable memleakage.
11883
11884         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11885         didn't work, and support DBUS_BUS_ACTIVATION.
11886
11887         * bus/activation.c (child_setup): pass our well-known bus type to
11888         the child
11889
11890         * bus/config-parser.c: support <type> to specify well-known type
11891
11892         * doc/dbus-specification.sgml: document the env variables to
11893         locate well-known buses and find service activator
11894
11895 2003-04-02  Havoc Pennington  <hp@redhat.com>
11896
11897         * test/Makefile.am (all-local): add a rule to copy tests to
11898         builddir, so we can have generated tests. Use this to remove the
11899         silly hack for testing system.conf and session.conf. Will use this
11900         shortly to generate .service files pointing to test binaries.
11901
11902 2003-04-02  Havoc Pennington  <hp@redhat.com>
11903
11904         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11905         current alloc and needed new length, not max of the doubled
11906         allocation and needed new length. Also, when building tests,
11907         don't do the double-allocation stuff, just realloc every time.
11908
11909 2003-04-02  Havoc Pennington  <hp@redhat.com>
11910
11911         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11912         in error messages
11913         (_dbus_string_get_dirname): new
11914         (_dbus_sysdeps_test): new
11915         (_dbus_directory_open): include dirnames in error messages
11916
11917         * bus/config-parser.c: interpret <include> and <includedir> and
11918         <servicedir> relative to config file location if the given
11919         filename is not absolute.
11920
11921         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11922
11923 2003-04-02  Havoc Pennington  <hp@redhat.com>
11924
11925         * bus/connection.c (bus_transaction_send_error_reply): set sender
11926         service for the error, and unref the reply on success
11927
11928         * bus/activation.c: convert to use BusTransaction so OOM can be
11929         handled correctly
11930         (bus_activation_service_created): set sender of the message
11931
11932 2003-04-01  Havoc Pennington  <hp@redhat.com>
11933
11934         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11935         <includedir> (at least mostly)
11936
11937         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11938         first, then the user ID
11939
11940 2003-04-01  Havoc Pennington  <hp@pobox.com>
11941
11942         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11943         function
11944
11945         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11946
11947         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11948
11949         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11950         socket 0777, and unlink any existing socket.
11951
11952         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11953         the configuration file so specifies; set up auth mechanism
11954         restrictions
11955
11956         * bus/config-parser.c (bus_config_parser_content): add support
11957         for <fork> option and fill in code for <auth>
11958
11959         * bus/system.conf.in: add <fork/> to default configuration,
11960         and limit auth mechanisms to EXTERNAL
11961
11962         * doc/config-file.txt (Elements): add <fork>
11963
11964         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11965         (_dbus_change_identity): new function
11966
11967 2003-03-31  Havoc Pennington  <hp@redhat.com>
11968
11969         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11970         (_dbus_listen_unix_socket): fix off-by-one error in null
11971         termination spotted by Nalin
11972
11973 2003-03-31  Havoc Pennington  <hp@redhat.com>
11974
11975         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11976         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11977         having a real home directory available.
11978
11979 2003-03-31  Havoc Pennington  <hp@redhat.com>
11980
11981         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11982
11983         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11984
11985         * configure.in: add support for specifying a style of init script
11986         to install
11987
11988 2003-03-31  Havoc Pennington  <hp@redhat.com>
11989
11990         Fix some annoying DBusString API and fix all affected code.
11991
11992         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11993         max_length argument
11994         (_dbus_string_get_data): change to return string instead of using
11995         an out param
11996         (_dbus_string_get_const_data): ditto
11997         (_dbus_string_get_data_len): ditto
11998         (_dbus_string_get_const_data_len): ditto
11999
12000 2003-03-31  Havoc Pennington  <hp@redhat.com>
12001
12002         * bus/main.c (main): fix up the command line arguments to be nicer
12003
12004 2003-03-31  Havoc Pennington  <hp@redhat.com>
12005
12006         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12007         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12008         final location that lands in the config file
12009
12010         * bus/config-loader-expat.c (bus_config_load): fix type of
12011         XML_Parser variable
12012
12013         * doc/TODO: remove TODO item for dbus_bus_get()
12014
12015         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12016
12017 2003-03-31  Havoc Pennington  <hp@pobox.com>
12018
12019         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12020         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12021         argument since they are always client side
12022
12023         * dbus/dbus-server.c (dbus_server_get_address): new function
12024
12025         * bus/main.c (main): take the configuration file as an argument.
12026
12027         * test/data/valid-config-files/debug-allow-all.conf: new file to
12028         use with dispatch.c tests for example
12029
12030         * bus/test-main.c (main): require test data dir
12031
12032         * bus/bus.c (bus_context_new): change this to take a
12033         configuration file name as argument
12034
12035         * doc/config-file.txt (Elements): add <servicedir>
12036
12037         * bus/system.conf, bus/session.conf: new files
12038
12039         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12040         well-known socket if none set
12041
12042         * configure.in: create system.conf and session.conf
12043
12044 2003-03-30  Havoc Pennington  <hp@pobox.com>
12045
12046         * bus/config-parser.c: hacking
12047
12048         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12049         to shut down, since it could cause weirdness with the DBusList
12050         lock
12051
12052         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12053         link-oriented stack routines
12054         (alloc_link): free the mempool if the first alloc from it fails
12055
12056         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12057
12058         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12059         from GLib
12060         (_dbus_string_skip_white): new
12061
12062         * doc/config-file.txt (Elements): add <includedir>
12063
12064 2003-03-28  Havoc Pennington  <hp@pobox.com>
12065
12066         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12067         (_dbus_string_copy_data): new functions
12068
12069 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12070
12071         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12072         * dbus/dbus-bus.h:
12073         Add dbus_bus_get.
12074
12075         * dbus/dbus-memory.c:
12076         Fix a doc comment.
12077
12078 2003-03-28  Havoc Pennington  <hp@pobox.com>
12079
12080         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12081         I think it may have just been superstition. Not sure.
12082
12083         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12084         failures that were not being handled.
12085
12086         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12087
12088         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12089         row that will fail on out-of-memory.
12090
12091         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12092         function for testing out-of-memory handling.
12093
12094         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12095         allocation functions, they do map exactly to the expat ones.
12096
12097 2003-03-27  Havoc Pennington  <hp@redhat.com>
12098
12099         * bus/config-loader-libxml.c (bus_config_load): add another error
12100         check
12101
12102 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12103
12104         * doc/TODO:
12105         Add note about automatic service activation.
12106
12107         * doc/dbus-specification.sgml:
12108         Rename the specification and clarify a few things.
12109
12110 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12111
12112         * Doxyfile.in:
12113         * dbus/dbus-address.c:
12114         * dbus/dbus-dict.c:
12115         * dbus/dbus-marshal.c:
12116         * dbus/dbus-server-debug-pipe.c:
12117         * dbus/dbus-transport-unix.c:
12118         Fix documentation warnings.
12119
12120 2003-03-26  Havoc Pennington  <hp@pobox.com>
12121
12122         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12123         after every test so it's quick and easy to see which leaked, and
12124         so we test multiple dbus_shutdown() calls
12125
12126         * configure.in: change configure.in XML stuff to also support
12127         expat
12128
12129         * config-loader-libxml.c: some hacking
12130
12131         * config-loader-expat.c: some hacking
12132
12133         * config-parser.c: some hacking, plus tests
12134
12135 2003-03-25  Havoc Pennington  <hp@redhat.com>
12136
12137         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12138
12139         * configure.in: add --with-xml option to specify XML library,
12140         right now only libxml is supported.
12141
12142         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12143         nonworking code between home and work, still just stubs
12144
12145 2003-03-24  Havoc Pennington  <hp@redhat.com>
12146
12147         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12148         file
12149
12150         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12151         NULL argument for "message" if the error is a well-known one,
12152         fill in a generic message in this case.
12153
12154         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12155         favor of DBusError
12156
12157         * bus/test.c (bus_test_flush_bus): add
12158
12159         * bus/policy.c (bus_policy_test): test code stub
12160
12161 2003-03-24  Havoc Pennington  <hp@pobox.com>
12162
12163         * bus/connection.c (bus_connections_setup_connection): set up
12164         the "can this user connect" function, but it always returns
12165         TRUE until we have a config file parser so we can have a config
12166         file that allows connections.
12167
12168 2003-03-23  Havoc Pennington  <hp@pobox.com>
12169
12170         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12171         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12172         the mutex, so we can check for proper memory management
12173         and OOM handling.
12174
12175         * dbus/dbus-dataslot.c: remove the mutex from
12176         DBusDataSlotAllocator and lock it manually when using it,
12177         to simplify fitting it into the global slots framework.
12178
12179         * dbus/dbus-threads.c (init_static_locks): rework how we're
12180         handling global locks so they are easily shut down.
12181
12182         * bus/policy.c (bus_policy_append_rule): fix
12183
12184         * bus/test-main.c (main): check for memleaks
12185
12186         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12187         test suite check for memleaks
12188
12189         * dbus/dbus-memory.c: add support in test mode for tracking
12190         number of outstanding blocks
12191
12192 2003-03-23  Havoc Pennington  <hp@pobox.com>
12193
12194         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12195         policies code
12196
12197         * dbus/dbus-hash.h: add ULONG hash keys
12198
12199         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12200         (_dbus_get_group_id): new function
12201
12202 2003-03-20  Havoc Pennington  <hp@redhat.com>
12203
12204         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12205         new function
12206         (dbus_connection_get_unix_user): new function
12207
12208 2003-03-20  Havoc Pennington  <hp@pobox.com>
12209
12210         * bus/connection.c (bus_connection_send_oom_error): assert that
12211         message has a sender
12212         (connection_execute_transaction): ditto
12213         (bus_connection_preallocate_oom_error): fix to set the sender, and
12214         set recipient to the destination service, not the bus driver
12215
12216         * bus/policy.c: hacking
12217
12218         * dbus/dbus-message.c (dbus_message_service_is): new function
12219         (dbus_message_sender_is): new
12220
12221 2003-03-19  Havoc Pennington  <hp@redhat.com>
12222
12223         * bus/policy.c: start sketching code for policy restrictions on
12224         what connections can do.
12225
12226 2003-03-18  Havoc Pennington  <hp@redhat.com>
12227
12228         * doc/TODO: some notes on high-level todo items. Little nitpick
12229         stuff is all in @todo, so no need to add it here.
12230
12231         * doc/config-file.txt: some notes on how config file might look
12232
12233 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12234
12235         * configure.in: 0.6
12236
12237         * NEWS: Update.
12238
12239 2003-03-17  Havoc Pennington  <hp@redhat.com>
12240
12241         * dbus/dbus-internals.h: add gcc attributes so that
12242         our printf-style functions warn on bad arguments to
12243         format
12244
12245         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12246         format bug
12247
12248         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12249         printf format bug
12250
12251 2003-03-17  Havoc Pennington  <hp@redhat.com>
12252
12253         * bus/test-main.c (main): make it print something as it runs
12254         so make check doesn't look stuck
12255
12256         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12257         from CVS, now obsolete
12258
12259 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12260
12261         * bus/dispatch.c: (bus_dispatch):
12262         Refetch the service name since it may have been reallocated
12263         when dbus_message_set_sender was called.
12264
12265         * dbus/dbus-sysdeps.c: (_dbus_accept):
12266         Add address and address length variables and use them to stop
12267         valgrind from complaining.
12268
12269 2003-03-17  Havoc Pennington  <hp@pobox.com>
12270
12271         All tests pass, no memleaks, no valgrind complaints.
12272
12273         * bus/test.c: refcount handler_slot
12274
12275         * bus/connection.c (bus_connections_new): refcount
12276         connection_data_slot
12277
12278         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12279         bytes so that auth scripts pass.
12280
12281         * bus/dispatch.c: init message_handler_slot so it gets allocated
12282         properly
12283
12284         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12285
12286         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12287         dealloc server_pipe_hash when no longer used for benefit of
12288         leak checking
12289
12290         * dbus/dbus-auth.c (process_command): memleak fix
12291
12292         * bus/dispatch.c (check_hello_message): memleak fix
12293
12294 2003-03-16  Havoc Pennington  <hp@pobox.com>
12295
12296         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12297
12298 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12299
12300         * bus/activation.c (bus_activation_activate_service): Append
12301         the pending activation entry to the list of pending activations.
12302
12303 2003-03-16  Havoc Pennington  <hp@pobox.com>
12304
12305         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12306         connections
12307
12308         * dbus/dbus-address.c (create_entry): fix OOM handling when
12309         failing to alloc entry->method
12310
12311 2003-03-16  Havoc Pennington  <hp@pobox.com>
12312
12313         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12314         the watch
12315
12316         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12317         add some missing dbus_set_result
12318
12319         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12320         alloc the DBusMessageHandler
12321
12322         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12323         the transport here, since we call this from the finalizer; it
12324         resulted in a double-finalize.
12325
12326         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12327         where we tried to use transport->connection that was NULL,
12328         happened when transport was disconnected early on due to OOM
12329
12330         * bus/*.c: adapt to handle OOM for watches/timeouts
12331
12332         * dbus/dbus-transport-unix.c: port to handle OOM during
12333         watch handling
12334
12335         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12336         reference to unused bytes instead of a copy
12337
12338         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12339         out of memory
12340
12341         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12342         FALSE on OOM
12343
12344         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12345         of memory
12346
12347 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12348
12349         * doc/dbus-specification.sgml:
12350         Document reply message for ActivateService.
12351
12352 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12353
12354         * bus/activation.c: (bus_pending_activation_entry_free),
12355         (bus_pending_activation_free), (bus_activation_new),
12356         (bus_activation_unref), (bus_activation_service_created),
12357         (bus_activation_activate_service):
12358         * bus/activation.h:
12359         * bus/bus.c: (bus_context_new):
12360         * bus/desktop-file.c: (new_section):
12361         * bus/driver.c: (bus_driver_send_service_deleted),
12362         (bus_driver_handle_activate_service):
12363         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12364         * bus/services.h:
12365         * dbus/dbus-connection.c:
12366         (dbus_connection_send_with_reply_and_block):
12367         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12368         * dbus/dbus-protocol.h:
12369         Make activation work better. Now pending activations will be queued
12370         and the daemon won't try to activate services that are already registered.
12371
12372 2003-03-16  Havoc Pennington  <hp@pobox.com>
12373
12374         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12375         connection data
12376
12377         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12378         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12379
12380 2003-03-16  Havoc Pennington  <hp@pobox.com>
12381
12382         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12383         this. always run the test suite before commit...
12384
12385         * bus/*: adapt to DBusConnection API changes
12386
12387         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12388         requires renaming stuff to avoid dbus_connection_dispatch name
12389         conflict.
12390
12391         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12392         function
12393
12394         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12395         separate from _dbus_message_loader_return_buffer()
12396
12397         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12398         this, because it's now always broken to use; the number of
12399         messages in queue vs. the number still buffered by the message
12400         loader is undefined/meaningless. Should use
12401         dbus_connection_get_dispatch_state().
12402         (dbus_connection_dispatch): rename from
12403         dbus_connection_dispatch_message
12404
12405 2003-03-16  Havoc Pennington  <hp@pobox.com>
12406
12407         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12408         implementation
12409
12410 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12411
12412         * dbus/dbus-connection.c:
12413         (dbus_connection_send_with_reply_and_block):
12414         Decrease connection->n_incoming when removing an entry
12415         from the list.
12416         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12417         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12418         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12419         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12420         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12421         (dbus_dict_get_byte_array):
12422         Handle NULL arrays and strings. Also add support for byte arrays.
12423
12424         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12425         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12426         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12427         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12428         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12429         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12430         * dbus/dbus-marshal.h:
12431         Add support for marshalling and demarshalling empty arrays and strings.
12432
12433         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12434         (dbus_message_append_string_array),
12435         (dbus_message_iter_get_boolean),
12436         (dbus_message_iter_get_boolean_array),
12437         (dbus_message_iter_get_int32_array),
12438         (dbus_message_iter_get_uint32_array),
12439         (dbus_message_iter_get_double_array),
12440         (dbus_message_iter_get_byte_array),
12441         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12442         (check_message_handling):
12443         Add support for getting empty arrays and dicts.
12444
12445         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12446         Don't do any validation at all for now, that's better than just checking
12447         for ASCII.
12448
12449         * test/data/valid-messages/emptiness.message:
12450         New test message with lots of empty arrays.
12451
12452 2003-03-16  Havoc Pennington  <hp@pobox.com>
12453
12454         * dbus/dbus-connection.c
12455         (_dbus_connection_queue_received_message_link): new function that
12456         can't fail due to OOM
12457
12458         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12459         new function pops a message together with a list link
12460         containing it.
12461
12462         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12463         message queuing functions to avoid needing to alloc memory
12464
12465 2003-03-16  Havoc Pennington  <hp@pobox.com>
12466
12467         Oops - test code was only testing failure of around 30 of the
12468         mallocs in the test path, but it turns out there are 500+
12469         mallocs. I believe this was due to misguided linking setup such
12470         that there was one copy of dbus_malloc etc. in the daemon and one
12471         in the shared lib, and only daemon mallocs were tested. In any
12472         case, the test case now tests all 500+ mallocs, and doesn't pass
12473         yet, though there are lots of fixes in this patch.
12474
12475         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12476         this so that it doesn't need to allocate memory, since it
12477         has no way of indicating failure due to OOM (and would be
12478         annoying if it did).
12479
12480         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12481
12482         * bus/Makefile.am: rearrange to create two self-contained
12483         libraries, to avoid having libraries with overlapping symbols.
12484         that was resulting in weirdness, e.g. I'm pretty sure there
12485         were two copies of global static variables.
12486
12487         * dbus/dbus-internals.c: move the malloc debug stuff to
12488         dbus-memory.c
12489
12490         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12491         empty.
12492
12493         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12494
12495         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12496         on failure.
12497
12498         * bus/dispatch.c (bus_dispatch_add_connection): free
12499         message_handler_slot when no longer using it, so
12500         memory leak checkers are happy for the test suite.
12501
12502         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12503
12504         * bus/bus.c (new_connection_callback): disconnect in here if
12505         bus_connections_setup_connection fails.
12506
12507         * bus/connection.c (bus_connections_unref): fix to free the
12508         connections
12509         (bus_connections_setup_connection): if this fails, don't
12510         disconnect the connection, just be sure there are no side
12511         effects.
12512
12513         * dbus/dbus-string.c (undo_alignment): unbreak this
12514
12515         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12516         leaking
12517         (_dbus_auth_new): fix the order in which we free strings
12518         on OOM failure
12519
12520         * bus/connection.c (bus_connection_disconnected): fix to
12521         not send ServiceDeleted multiple times in case of memory
12522         allocation failure
12523
12524         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12525         get the base service name
12526         (dbus_bus_register_client): don't return base service name,
12527         instead store it on the DBusConnection and have an accessor
12528         function for it.
12529         (dbus_bus_register_client): rename dbus_bus_register()
12530
12531         * bus/dispatch.c (check_hello_message): verify that other
12532         connections on the bus also got the correct results, not
12533         just the one sending hello
12534
12535 2003-03-15  Havoc Pennington  <hp@pobox.com>
12536
12537         Make it pass the Hello handling test including all OOM codepaths.
12538         Now to do other messages...
12539
12540         * bus/services.c (bus_service_remove_owner): fix crash when
12541         removing owner from an empty list of owners
12542         (bus_registry_ensure): don't leave service in the list of
12543         a connection's owned services if we fail to put the service
12544         in the hash table.
12545
12546         * bus/connection.c (bus_connection_preallocate_oom_error): set
12547         error flag on the OOM error.
12548
12549         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12550         handle _dbus_transport_set_connection failure
12551
12552         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12553         to create watches up front and simply enable/disable them as
12554         needed.
12555         (unix_connection_set): this can now fail on OOM
12556
12557         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12558         of enabling/disabling a watch or timeout.
12559
12560         * bus/loop.c (bus_loop_iterate): don't touch disabled
12561         watches/timeouts
12562
12563         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12564
12565 2003-03-15  Havoc Pennington  <hp@pobox.com>
12566
12567         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12568         write useful test code, after all that futzing around ;-)
12569
12570         Test does not yet pass because we can't handle OOM in
12571         _dbus_transport_messages_pending (basically,
12572         dbus_connection_preallocate_send() does not prealloc the write
12573         watch). To fix this, I think we need to add new stuff to
12574         set_watch_functions, namely a SetEnabled function so we can alloc
12575         the watch earlier, then enable it later.
12576
12577         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12578         dbus-memory.c to the convenience lib
12579
12580         * bus/test.c: rename some static functions to keep them clearly
12581         distinct from stuff in connection.c. Handle client disconnection.
12582
12583 2003-03-14  Havoc Pennington  <hp@pobox.com>
12584
12585         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12586         transport, tests more of the real codepath. Set up clients
12587         with bus_setup_debug_client.
12588
12589         * bus/test.c (bus_setup_debug_client): function to set up debug
12590         "clients" on the main loop
12591
12592         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12593         support
12594
12595         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12596         server type
12597
12598         * dbus/dbus-server-debug.c: support a debug server based on pipes
12599
12600         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12601         (_dbus_close): new function
12602
12603         * configure.in: check for socketpair
12604
12605 2003-03-14  Havoc Pennington  <hp@redhat.com>
12606
12607         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12608         cheesy hack
12609
12610         * dbus/dbus-transport-debug.c: rework this a good bit to be
12611         less complicated. hopefully still works.
12612
12613         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12614         manually
12615
12616         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12617         after running it
12618
12619         * dbus/dbus-message.c (dbus_message_copy): rename from
12620         dbus_message_new_from_message, fix it up to copy
12621         all the message fields, add test case
12622
12623         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12624         not quite passing yet
12625
12626 2003-03-14  Havoc Pennington  <hp@pobox.com>
12627
12628         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12629         until no work remains" in test code. (the large diff here
12630         is just code movement, no actual changes)
12631
12632         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12633         1, no point waiting around for test code.
12634         (_dbus_server_debug_accept_transport): unref the timeout
12635         after adding it (right?)
12636
12637         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12638
12639 2003-03-13  Havoc Pennington  <hp@redhat.com>
12640
12641         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12642         out of memory
12643
12644         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12645         of memory
12646
12647         * dbus/dbus-connection.h: Make AddWatchFunction and
12648         AddTimeoutFunction return a bool so they can fail on out-of-memory
12649
12650         * bus/bus.c (bus_context_new): set up timeout handlers
12651
12652         * bus/connection.c (bus_connections_setup_connection): set up
12653         timeout handlers
12654
12655         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12656         can fail
12657
12658         * bus/bus.c (bus_context_new): adapt to changes
12659
12660         * bus/connection.c: adapt to changes
12661
12662         * test/watch.c: adapt to DBusWatch changes
12663
12664         * bus/dispatch.c (bus_dispatch_test): started adding this but
12665         didn't finish
12666
12667 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12668
12669         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12670
12671 2003-03-13  Havoc Pennington  <hp@pobox.com>
12672
12673         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12674         set up a test framework as for the library
12675
12676 2003-03-12  Havoc Pennington  <hp@pobox.com>
12677
12678         Throughout: purge global variables, introduce BusActivation,
12679         BusConnections, BusRegistry, etc. objects instead.
12680
12681         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12682         message bus object
12683
12684         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12685         going to redo this a bit differently I think
12686
12687 2003-03-12  Havoc Pennington  <hp@redhat.com>
12688
12689         Mega-patch that gets the message bus daemon initially handling
12690         out-of-memory. Work still needed. Also lots of random
12691         moving stuff to DBusError instead of ResultCode.
12692
12693         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12694
12695         * dbus/dbus-connection.c
12696         (dbus_connection_send_with_reply_and_block): use DBusError
12697
12698         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12699         DBusResultCode
12700
12701         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12702         code here, as the only failure possible is OOM.
12703
12704         * bus/connection.c (bus_connection_disconnect):
12705         rename bus_connection_disconnected as it's a notification only
12706
12707         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12708         "name" on get_args failure, should be done by get_args;
12709         don't disconnect client for bad args, just return an error.
12710         (bus_driver_handle_service_exists): ditto
12711
12712         * bus/services.c (bus_services_list): NULL-terminate returned array
12713
12714         * bus/driver.c (bus_driver_send_service_lost)
12715         (bus_driver_send_service_acquired): send messages from driver to a
12716         specific client to the client's unique name, not to the broadcast
12717         service.
12718
12719         * dbus/dbus-message.c (decode_header_data): reject messages that
12720         contain no name field
12721         (_dbus_message_get_client_serial): rename to
12722         dbus_message_get_serial and make public
12723         (_dbus_message_set_serial): rename from set_client_serial
12724         (_dbus_message_set_reply_serial): make public
12725         (_dbus_message_get_reply_serial): make public
12726
12727         * bus/connection.c (bus_connection_foreach): allow stopping
12728         iteration by returning FALSE from foreach function.
12729
12730         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12731         (dbus_connection_free_preallocated_send)
12732         (dbus_connection_preallocate_send): new API for sending a message
12733         without possibility of malloc failure.
12734         (dbus_connection_send_message): rename to just
12735         dbus_connection_send (and same for whole function family)
12736
12737         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12738
12739         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12740
12741         * bus/activation.c: handle/return errors
12742
12743         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12744
12745         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12746         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12747         (_dbus_result_from_errno): move to this file
12748
12749 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12750
12751         * dbus/dbus-marshal.c:
12752         (_dbus_marshal_set_string):
12753         Take a length argument so we can marshal the correct string
12754         length.
12755
12756         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12757         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12758         (_dbus_marshal_test):
12759         * dbus/dbus-marshal.h:
12760         Add support for marshalling and demarshalling dicts.
12761
12762         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12763         Add support for TYPE DICT.
12764
12765         * dbus/dbus-message.c: (set_string_field):
12766         Adjust header padding.
12767
12768         (dbus_message_append_args_valist), (dbus_message_append_dict),
12769         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12770         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12771         (check_message_handling), (check_have_valid_message):
12772         * dbus/dbus-message.h:
12773         Add functions for setting and getting dicts.
12774
12775         * dbus/dbus-protocol.h:
12776         Add DBUS_TYPE_DICT.
12777
12778         * dbus/dbus.h:
12779         Add dbus-dict.h
12780
12781         * doc/dbus-specification.sgml:
12782         Add information about how dicts are marshalled.
12783
12784         * test/data/invalid-messages/dict-with-nil-value.message:
12785         * test/data/invalid-messages/too-short-dict.message:
12786         * test/data/valid-messages/dict-simple.message:
12787         * test/data/valid-messages/dict.message:
12788         Add sample messages containing dicts.
12789
12790 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12791
12792         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12793
12794 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12795
12796         * dbus/Makefile.am:
12797         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12798         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12799         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12800         (dbus_dict_set_double), (dbus_dict_set_string),
12801         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12802         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12803         (dbus_dict_set_string_array), (_dbus_dict_test):
12804         * dbus/dbus-dict.h:
12805         Fix according to comments from Havoc.
12806
12807 2003-03-06  Michael Meeks  <michael@server.home>
12808
12809         * configure.in: if we don't have kde-config, disable have_qt.
12810
12811 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12812
12813         * dbus/Makefile.am:
12814         Add dbus-dict.[ch]
12815
12816         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12817         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12818         (dbus_dict_remove), (dbus_dict_get_value_type),
12819         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12820         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12821         (dbus_dict_put_double), (dbus_dict_put_string),
12822         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12823         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12824         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12825         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12826         (dbus_dict_get_double), (dbus_dict_get_string),
12827         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12828         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12829         (dbus_dict_get_string_array), (_dbus_dict_test):
12830         * dbus/dbus-dict.h:
12831         Add DBusDict implementation
12832
12833         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12834         * dbus/dbus-test.h:
12835         Add _dbus_dict_test
12836
12837 2003-03-04  Havoc Pennington  <hp@pobox.com>
12838
12839         * test/data/auth/*: adapt to changes
12840
12841         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12842         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12843         userid
12844
12845         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12846         more stuff from being in a context name, to make the protocol
12847         simpler to deal with
12848
12849         * dbus/dbus-errors.c (dbus_error_has_name): new function
12850         (dbus_error_is_set): new function
12851
12852         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12853         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12854
12855         * dbus/dbus-connection.c (dbus_connection_flush): also read
12856         messages during a flush operation
12857
12858         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12859
12860 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12861
12862         * configure.in: Check for gethostbyname on Solaris.
12863
12864         * dbus/dbus-transport.c: (_dbus_transport_open):
12865         Remove duplicate "tcp" entry.
12866
12867         * doc/dbus-specification.sgml:
12868         Clarify some things.
12869
12870 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12871
12872         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12873         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12874         (_dbus_keyring_test):
12875         * dbus/dbus-md5.c: (_dbus_md5_compute):
12876         * dbus/dbus-sha.c: (_dbus_sha_compute):
12877         Plug memory leaks.
12878
12879 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12880
12881         * README: Add some things.
12882
12883 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12884
12885         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12886         after case DBUS_TYPE_BOOELAN.
12887
12888 2003-03-02  Havoc Pennington  <hp@pobox.com>
12889
12890         * test/break-loader.c (randomly_set_extreme_ints): add test that
12891         sets really huge and small integers
12892
12893         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12894         that length of boolean array fits in the string, and that
12895         string has room for boolean value in single-bool case.
12896
12897         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12898         optional value to "ALIGN" command which is what to fill the
12899         alignment with.
12900
12901         * test/data/valid-messages/no-padding.message: add regression
12902         test for the message padding problem
12903
12904 2003-03-02  Havoc Pennington  <hp@pobox.com>
12905
12906         * dbus/dbus-message.c (decode_header_data): fix to always init
12907         message_padding, from Benjamin Dauvergne
12908
12909 2003-03-02  Havoc Pennington  <hp@pobox.com>
12910
12911         * configure.in: 0.5
12912
12913         * NEWS: Update.
12914
12915 2003-03-01  Joe Shaw  <joe@assbarn.com>
12916
12917         * configure.in: Check for "struct cmsgcred" and try to access its
12918         members for BSD-like unices.
12919
12920         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12921         _dbus_read_credentials_unix_socket().
12922         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12923         read() for reading the credential byte off the unix socket.  Use
12924         struct cmsgcred on systems that support it.
12925
12926 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12927
12928         * glib/Makefile.am:
12929         * configure.in:
12930         Make gthreads-2.0 dependency optional. Don't build thread test if
12931         its not found.
12932
12933 2003-02-27  Havoc Pennington  <hp@pobox.com>
12934
12935         * dbus/dbus-connection.c
12936         (dbus_connection_send_message_with_reply_and_block): fix doh!
12937         doh! doh! bug that resulted in never removing a reply from the
12938         queue, no wonder we called get_reply_serial so much ;-)
12939
12940         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12941         and client serial instead of demarshaling them every time
12942
12943 2003-02-27  Havoc Pennington  <hp@pobox.com>
12944
12945         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12946         more inlined, using dbus-string-private.h, speeds things up
12947         substantially
12948
12949         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12950         when freeing the string
12951         (_dbus_string_steal_data): fix for align offset
12952         (undo_alignment): new function
12953
12954 2003-02-26  Havoc Pennington  <hp@redhat.com>
12955
12956         All kinds of audit fixes from Owen, plus initial attempt to
12957         handle unaligned memory returned from malloc.
12958
12959         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12960         leave room for align_offset and nul byte
12961         (fixup_alignment): function to track an align_offset and
12962         ensure real->str is aligned
12963         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12964         to allow a nul byte plus align offset
12965         (_dbus_string_lock): fix overflow issue
12966         (_dbus_string_init_const_len): add assertions on sanity of len,
12967         assign allocated to be ALLOCATION_PADDING larger than len
12968         (set_length): fixup the overflow handling
12969         (_dbus_string_get_data_len): fix overflow in assertion
12970         (open_gap): detect overflow in size of gap to be opened
12971         (_dbus_string_lengthen): add overflow check
12972         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12973         (_dbus_string_append): add overflow check
12974         (_dbus_string_append_unichar): overflow
12975         (_dbus_string_delete): fix overflow in assertion
12976         (_dbus_string_copy_len): overflow in assertion
12977         (_dbus_string_replace_len): overflows in assertions
12978         (_dbus_string_find): change to implement in terms of
12979         _dbus_string_find_to
12980         (_dbus_string_find_to): assorted fixage
12981         (_dbus_string_equal_c_str): assert c_str != NULL,
12982         fix logic so the function works
12983         (_dbus_string_ends_with_c_str): fix overflow thingy
12984         (_dbus_string_base64_encode): overflow fix
12985         (_dbus_string_validate_ascii): overflow
12986         (_dbus_string_validate_nul): overflow
12987
12988 2003-02-26  Havoc Pennington  <hp@redhat.com>
12989
12990         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12991
12992 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12993
12994         * configure.in:
12995         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12996
12997         * dbus/dbus-connection.c:
12998         * dbus/dbus-connection.h:
12999         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13000         Add dbus_connection_set_wakeup_main_function and use it when queueing
13001         incoming and outgoing messages.
13002
13003
13004         * dbus/dbus-dataslot.c:
13005         Threadsafe usage of DBusDataSlotAllocator
13006
13007         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13008         dbus_new can fail.
13009
13010         * dbus/dbus-server-unix.c:
13011         Add todo comment
13012
13013         * glib/dbus-gmain.c:
13014         Implement the new wakeup functions for glib.
13015
13016         * glib/Makefile.am:
13017         * glib/test-thread-client.c:
13018         * glib/test-thread-server.c:
13019         * glib/test-thread.h:
13020         Initial cut at some thread test code. Not really done yet.
13021
13022 2003-02-26  Havoc Pennington  <hp@pobox.com>
13023
13024         * dbus/dbus-connection.c
13025         (dbus_connection_send_message_with_reply_and_block): fix crash
13026         where we ref'd the outgoing message instead of the returned reply
13027
13028         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13029         at the end of this function, so if we didn't need to read for
13030         authentication, we reinstall it for receiving messages
13031
13032         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13033         a NULL sender for peer-to-peer case
13034
13035         * dbus/dbus-transport-unix.c (check_read_watch): handle
13036         !authenticated case correctly
13037
13038         * glib/dbus-gmain.c: add support for DBusServer
13039
13040         * dbus/dbus-server.c: add data slot support
13041
13042         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13043         return values and handle errors
13044
13045         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13046         DBusConnection
13047
13048         * Doxyfile.in (INPUT): add glib subdir
13049
13050         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13051         setup_with_g_main instead of hookup_with_g_main; write docs
13052
13053 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13054
13055         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13056         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13057         * dbus/dbus-message.c: (dbus_message_append_boolean),
13058         (dbus_message_append_boolean_array),
13059         (dbus_message_get_args_valist), (_dbus_message_test):
13060         * dbus/dbus-message.h:
13061         * doc/dbus-specification.sgml:
13062         Various fixes as pointed out by Havoc.
13063
13064         * test/data/invalid-messages/bad-boolean-array.message:
13065         * test/data/invalid-messages/bad-boolean.message:
13066         Add invalid boolean value test cases.
13067
13068 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13069
13070         * dbus/dbus-internals.c: (_dbus_type_to_string):
13071         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13072         (_dbus_marshal_validate_arg):
13073         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13074         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13075         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13076         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13077         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13078         (dbus_message_iter_get_double),
13079         (dbus_message_iter_get_boolean_array), (message_iter_test):
13080         * dbus/dbus-message.h:
13081         * dbus/dbus-protocol.h:
13082         * doc/dbus-specification.sgml:
13083         * test/data/valid-messages/lots-of-arguments.message:
13084         Add support for boolean and boolean array types.
13085
13086 2003-02-23  Havoc Pennington  <hp@pobox.com>
13087
13088         * dbus/dbus-keyring.c: finish most of this implementation and
13089         simple unit test
13090
13091         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13092         these barf if the error isn't cleared to NULL
13093
13094         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13095         (_dbus_create_directory): new function
13096
13097         * dbus/dbus-errors.c (dbus_set_error): fix warning
13098
13099         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13100         (_dbus_string_hex_decode): new function
13101         (test_hex_roundtrip): test code
13102
13103         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13104
13105         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13106
13107         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13108         the save-to-temp/rename trick to atomically write the new file
13109         (_dbus_string_parse_uint): new function
13110
13111 2003-02-22  Havoc Pennington  <hp@pobox.com>
13112
13113         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13114
13115 2003-02-22  Havoc Pennington  <hp@pobox.com>
13116
13117         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13118         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13119
13120         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13121
13122         * dbus/test/data/sha-1: add US government test suite for SHA-1
13123
13124 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13125
13126         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13127         Make string arrays NULL-terminated.
13128
13129         * dbus/dbus-memory.c: (dbus_free_string_array):
13130         * dbus/dbus-memory.h:
13131         New function for freeing NULL-terminated string arrays.
13132
13133         * dbus/dbus-message-builder.c: (append_quoted_string),
13134         (_dbus_message_data_load):
13135         Add support for array types.
13136
13137         * dbus/dbus-message.c: (check_message_handling):
13138         Add more types as test cases.
13139
13140         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13141         (_dbus_string_parse_double):
13142         Add the start offset to the end offset.
13143
13144         * test/data/valid-messages/lots-of-arguments.message:
13145         New test message with lots of arguments.
13146
13147 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13148
13149         * dbus/dbus-message.c: (dbus_message_append_nil),
13150         (dbus_message_append_int32), (dbus_message_append_uint32),
13151         (dbus_message_append_double), (dbus_message_append_string),
13152         (dbus_message_append_int32_array),
13153         (dbus_message_append_uint32_array),
13154         (dbus_message_append_double_array),
13155         (dbus_message_append_byte_array),
13156         (dbus_message_append_string_array):
13157         Fix all out-of-memory handling in these functions.
13158
13159 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13160
13161         * dbus/dbus-message.c: (dbus_message_append_nil):
13162         Fix a silly.
13163
13164 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13165
13166         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13167         (dbus_message_append_nil), (dbus_message_append_int32_array),
13168         (dbus_message_append_uint32_array),
13169         (dbus_message_append_double_array),
13170         (dbus_message_append_byte_array),
13171         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13172         (dbus_message_iter_get_int32_array),
13173         (dbus_message_iter_get_uint32_array),
13174         (dbus_message_iter_get_double_array),
13175         (dbus_message_iter_get_byte_array),
13176         (dbus_message_iter_get_string_array):
13177
13178         * dbus/dbus-message.h:
13179         Add functions for appending and getting arrays.
13180
13181 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13182
13183         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13184         element size at least 8 bytes, fixes mempool tests on
13185         64-bit machines.
13186
13187 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13188
13189         * dbus/dbus-transport-unix.c (unix_do_iteration):
13190         Unlock the connection mutex during a blocking select call.
13191         Add todo about how we need a way to wake up the select.
13192
13193         * dbus/dbus-connection-internal.h:
13194         * dbus/dbus-connection.c:
13195         Add _dbus_connection_lock and _dbus_connection_unlock.
13196
13197 2003-02-19  Havoc Pennington  <hp@pobox.com>
13198
13199         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13200         Doxyfile.in, not Doxyfile
13201
13202         * dbus/dbus-keyring.c: do some hacking on this
13203
13204         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13205
13206         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13207         dbus_error_init
13208         (dbus_set_error): remove dbus_error_init, check for message ==
13209         NULL *before* we sprintf into it, and add @todo about including
13210         system headers in this file
13211
13212         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13213
13214         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13215
13216         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13217         get various bits of user information based on either username
13218         or user ID
13219         (_dbus_homedir_from_username): new function
13220
13221 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13222
13223         * configure.in:
13224         Add check for nonposix getpwnam_r
13225
13226         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13227         Align the pool element size to a sizeof (void *) boundary.
13228
13229         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13230         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13231         General Solaris fixes.
13232
13233         * test/data/valid-messages/simplest-manual.message:
13234         Explicitly state that we want little-endian packing.
13235
13236 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13237
13238         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13239
13240         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13241         Added to create a transport connecting using a tcp/ip socket.
13242
13243         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13244         to a tcp socket at given host and port.
13245         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13246         hostname and port.
13247
13248         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13249
13250         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13251         Added to create a server listening on a TCP/IP socket.
13252
13253 2003-02-19  Havoc Pennington  <hp@pobox.com>
13254
13255         Throughout: mop up all the Doxygen warnings and undocumented
13256         stuff.
13257
13258         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13259         to search any paths.
13260
13261         * dbus/dbus-threads.c: move global mutex initializers to
13262         dbus-internals.h, multiple prototypes was confusing doxygen
13263         besides being kind of ugly
13264
13265         * Doxyfile (PREDEFINED): have Doxygen define
13266         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13267         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13268         (do not abuse the feature! it's for stuff like the autogenerated
13269         macros in dbus-md5.c, not just for things you don't feel like
13270         documenting...)
13271
13272 2003-02-18  Havoc Pennington  <hp@pobox.com>
13273
13274         * dbus/dbus-string.c (_dbus_string_zero): new function
13275
13276         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13277         wrap it in some dbus-friendly API
13278
13279         * dbus/dbus-types.h: add 16-bit types
13280
13281 2003-02-18  Joe Shaw  <joe@assbarn.com>
13282
13283         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13284         credentials from our currently running process.
13285         (get_word): Fix a buglet where we were copying the entire length
13286         instead of relative to our position.
13287
13288         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13289         keys on the stack... it's 640k of data.
13290
13291         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13292         read the credentials byte off the socket, even if we don't have
13293         SO_PEERCRED.
13294         (_dbus_poll): Implement poll() using select() for systems which
13295         don't have it.
13296
13297         * glib/test-dbus-glib.c (main): Print out an error if no
13298         parameters are given.
13299
13300         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13301         can fallback to a secondary auth mechanism if the first fails.
13302
13303 2003-02-18  Havoc Pennington  <hp@pobox.com>
13304
13305         * AUTHORS: add Alex
13306
13307 2003-02-17  Havoc Pennington  <hp@pobox.com>
13308
13309         * doc/dbus-specification.sgml: lots of cosmetic
13310         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13311         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13312         s/server/bus/ (except in authentication section). Add a section
13313         "Message Bus Message Routing"
13314
13315 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13316
13317         Release 0.4
13318
13319         * NEWS: Update
13320
13321 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13322
13323         * doc/dbus-specification.sgml:
13324         Specification updates.
13325
13326 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13327
13328         * bus/activation.c: (bus_activation_init), (child_setup),
13329         (bus_activation_activate_service):
13330         * bus/activation.h:
13331         * bus/main.c: (main):
13332         Set DBUS_ADDRESS environment variable.
13333
13334         * dbus/dbus-errors.c: (dbus_set_error):
13335         Don't use va_copy since that's a C99 feature.
13336
13337         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13338         (_dbus_spawn_async):
13339         * dbus/dbus-sysdeps.h:
13340         Add child_setup_func to _dbus_spawn_async.
13341
13342         * doc/dbus-specification.sgml:
13343         Update specification.
13344
13345         * test/spawn-test.c: (setup_func), (main):
13346         Fix test.
13347
13348 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13349
13350         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13351         Added todo.
13352
13353 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13354
13355         * doc/.cvsignore:
13356         * doc/Makefile.am:
13357         * doc/dbus-test-plan.sgml:
13358         Add test plan document.
13359
13360         * test/Makefile.am:
13361         Fix distcheck.
13362
13363 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13364
13365         * dbus/dbus-message.c: (decode_header_data),
13366         (_dbus_message_loader_return_buffer):
13367         Set the header padding amount when loading a message.
13368
13369 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13370
13371         * bus/dispatch.c: (send_one_message):
13372         Only send broadcast messages to registered connections.
13373
13374         * dbus/dbus-message.c: (dbus_message_name_is):
13375         * dbus/dbus-message.h:
13376         New convenience function.
13377
13378         * dbus/dbus-transport-debug.c: (do_reading):
13379         Only dispatch one message per run.
13380
13381         * test/Makefile.am:
13382         * test/bus-test.c: (new_connection_callback), (die),
13383         (test_hello_client1_handler), (test_hello_client2_handler),
13384         (test_hello_replies), (main):
13385
13386         * test/bus-test-loop.[ch]:
13387         Add these.
13388
13389 2003-02-16  Havoc Pennington  <hp@pobox.com>
13390
13391         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13392         backward conditional
13393
13394 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13395
13396         * dbus/dbus-connection.c:
13397         Implement sent_message_with_reply. (with_reply_and block is still
13398         busted).
13399         Made dispatch_message not lose message if OOM.
13400
13401         * dbus/dbus-errors.h:
13402         Add NoReply error (for reply timeouts).
13403
13404 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13405
13406         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13407         Actually free keys and values when destroying hashtable.
13408
13409 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13410
13411         * dbus/dbus-auth.c: (client_try_next_mechanism):
13412         Plug a leak.
13413
13414         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13415         Return TRUE if there's no thread implementation around.
13416
13417         * glib/dbus-gmain.c: (free_source),
13418         (dbus_connection_hookup_with_g_main):
13419         Make sure to remove the GSource when the connection is finalized.
13420
13421 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13422
13423         * bus/dispatch.c: (bus_dispatch_message_handler):
13424         * dbus/dbus-errors.h:
13425         Return an error if someone tries to send a message to a service
13426         that doesn't exist.
13427
13428 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13429
13430         * bus/activation.c: (load_directory), (bus_activation_init),
13431         (bus_activation_activate_service):
13432         * bus/activation.h:
13433         * bus/driver.c:
13434         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13435         More work on the activation handling.
13436
13437         * dbus/dbus-errors.h:
13438         Add some error messages
13439
13440         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13441         * dbus/dbus-message.h:
13442         New function that creates an error message.
13443
13444         * dbus/dbus-protocol.h:
13445         Add ACTIVATE_SERVER message.
13446
13447         * dbus/dbus-server-unix.c: (unix_handle_watch),
13448         (_dbus_server_new_for_domain_socket):
13449         Call _dbus_fd_set_close_on_exec.
13450
13451         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13452         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13453         (_dbus_fd_set_close_on_exec):
13454         * dbus/dbus-sysdeps.h:
13455         Add _dbus_fd_set_close_on exec function. Also add function that checks
13456         that all open fds are set to close-on-exec and warns otherwise.
13457
13458         * dbus/dbus-transport-unix.c:
13459         (_dbus_transport_new_for_domain_socket):
13460         Call _dbus_fd_set_close_on_exec.
13461
13462 2003-02-16  Havoc Pennington  <hp@pobox.com>
13463
13464         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13465         allow people to avoid setting SIGPIPE to SIG_IGN
13466         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13467         we've been asked not to
13468
13469 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13470
13471         * dbus/dbus-list.c: (_dbus_list_append_link),
13472         (_dbus_list_prepend_link):
13473         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13474         (dbus_realloc):
13475         Warning fixes.
13476
13477 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13478
13479         * bus/Makefile.am:
13480         * bus/activation.c: (bus_activation_entry_free),
13481         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13482         * bus/activation.h:
13483         * bus/main.c: (main):
13484         Add simple activation support, doesn't work yet though.
13485
13486 2003-02-15   Zack Rusin  <zack@kde.org>
13487
13488         * qt/dbus-qthread.cpp:  small casting fix
13489
13490 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13491
13492         * dbus/dbus-errors.c: (dbus_set_error):
13493         * dbus/dbus-errors.h:
13494         Add a few errors and make dbus_set_error void.
13495
13496         * dbus/dbus-sysdeps.c:
13497         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13498         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13499         * dbus/dbus-sysdeps.h:
13500         Add _dbus_spawn_async.
13501
13502         * test/spawn-test.c: (main):
13503         Test for _dbus_spawn_async.
13504
13505 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13506
13507         * dbus/dbus-internals.h:
13508         Fix build without tests.
13509
13510         * dbus/dbus-list.c: (alloc_link):
13511         Fix a segfault when a malloc fails.
13512
13513         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13514         (dbus_malloc0), (dbus_realloc):
13515         Add support for malloc debugging.
13516
13517 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13518
13519         * dbus/dbus-threads.c:
13520         * dbus/dbus-threads.h:
13521         Add condvars. Remove static mutext from API.
13522         Implement static mutexes by initializing them from threads_init.
13523
13524         * glib/dbus-gthread.c:
13525         * qt/dbus-qthread.cpp:
13526         Update with the thread api changes.
13527
13528
13529         * dbus/dbus-list.c:
13530         * dbus/dbus-list.h:
13531         Turn StaticMutex into normal mutex + init function.
13532         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13533         _dbus_list_append_link, _dbus_list_prepend_link
13534
13535
13536         * dbus/dbus-sysdeps.c:
13537         * dbus/dbus-sysdeps.h:
13538         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13539         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13540
13541         * dbus/dbus-protocol.h:
13542         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13543
13544         * dbus/dbus-message.c:
13545         Make ref/unref atomic.
13546         Fix some docs.
13547
13548         * dbus/dbus-connection-internal.h:
13549         * dbus/dbus-connection.c:
13550         * dbus/dbus-connection.h:
13551         Make threadsafe.
13552         Change _peek to _borrow,_return & _steal_borrowed.
13553         Change disconnect callback to event.
13554         Make dbus_connection_dispatch_messages reentrant.
13555
13556         * dbus/dbus-transport.c:
13557         Don't ref the connection on calls to the transport
13558         implementation.
13559
13560         * dbus/dbus-message-handler.c:
13561         Make threadsafe.
13562
13563         * glib/dbus-gmain.c:
13564         Don't use peek_message anymore
13565
13566         * test/Makefile.am:
13567         * test/debug-thread.c:
13568         * test/debug-thread.h:
13569         Simple thread implementation that asserts() on deadlocks in
13570         single-threaded code.
13571
13572         * test/bus-test.c:
13573         (main) Call debug_threads_init.
13574
13575         * test/watch.c:
13576         Use disconnect message instead of disconnect callback.
13577
13578         * bus/connection.c:
13579         * bus/connection.h:
13580         Don't call dbus_connection_set_disconnect_function. Instead export
13581         bus_connection_disconnect.
13582
13583         * bus/dispatch.c:
13584         Call bus_connection_disconnect when we get a disconnected message.
13585
13586 2003-02-15  Havoc Pennington  <hp@pobox.com>
13587
13588         * dbus/dbus-message.c (dbus_message_new): fool around with the
13589         docs
13590
13591 2003-02-14  Havoc Pennington  <hp@pobox.com>
13592
13593         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13594
13595         * dbus/dbus-memory.c: fail if the debug functions indicate we
13596         should
13597
13598         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13599         (_dbus_decrement_fail_alloc_counter): debug functions to
13600         simulate memory allocation failures
13601
13602 2003-02-14  Havoc Pennington  <hp@pobox.com>
13603
13604         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13605         to DBusError
13606
13607 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13608
13609         * bus/driver.c: (bus_driver_handle_hello):
13610         * bus/driver.h:
13611         * bus/services.c: (bus_service_lookup):
13612         Reorder message sending so we get a more sane order.
13613
13614         * test/bus-test.c: (message_handler):
13615         Fix tyop.
13616
13617 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13618
13619         * bus/driver.c: (bus_driver_send_service_deleted),
13620         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13621         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13622         (bus_driver_send_welcome_message),
13623         (bus_driver_handle_list_services),
13624         (bus_driver_handle_acquire_service),
13625         (bus_driver_handle_service_exists):
13626         * dbus/dbus-bus.c: (dbus_bus_register_client),
13627         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13628         * dbus/dbus-errors.c: (dbus_result_to_string):
13629         * dbus/dbus-errors.h:
13630         * dbus/dbus-message.c: (dbus_message_append_args),
13631         (dbus_message_append_args_valist), (dbus_message_get_args),
13632         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13633         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13634         (dbus_message_iter_get_byte_array),
13635         (dbus_message_iter_get_string_array), (message_iter_test),
13636         (check_message_handling), (_dbus_message_test):
13637         * dbus/dbus-message.h:
13638         * test/bus-test.c: (main):
13639         Change fields to arguments in messages, so that they won't be
13640         confused with header fields.
13641
13642         * glib/test-dbus-glib.c: (main):
13643         Remove append_fields from hello message.
13644
13645 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13646
13647         * dbus/dbus-errors.c:
13648         * dbus/dbus-message.c:
13649         * dbus/dbus-string.c:
13650         Documentation fixes.
13651
13652 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13653
13654         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13655         (remove_timeout):
13656         Implement support for timeouts in dbus-glib.
13657
13658 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13659
13660         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13661         * dbus/dbus-message.c: (process_test_subdir):
13662         * test/break-loader.c: (find_breaks_based_on):
13663         Plug some memory leaks.
13664
13665 2003-02-13  Richard Hult  <rhult@codefactory.se>
13666
13667         * bus/main.c: Fix build.
13668
13669         * dbus/dbus-errors.h:
13670         * dbus/dbus-errors.c: Fix copyright for Anders.
13671
13672 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13673
13674         * bus/Makefile.am:
13675         Add utils.[ch]
13676
13677         * bus/connection.c: (bus_connection_foreach):
13678         Fix a warning.
13679
13680         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13681         (unescape_string), (new_section), (parse_section_start),
13682         (parse_key_value), (report_error), (bus_desktop_file_load),
13683         (bus_desktop_file_get_string):
13684         * bus/desktop-file.h:
13685         Use DBusError for error reporting.
13686
13687         * bus/dispatch.c: (send_one_message),
13688         (bus_dispatch_message_handler):
13689         * bus/driver.c: (bus_driver_send_service_deleted),
13690         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13691         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13692         (bus_driver_send_welcome_message),
13693         (bus_driver_handle_list_services),
13694         (bus_driver_handle_acquire_service),
13695         (bus_driver_handle_service_exists):
13696         * bus/loop.c: (bus_loop_run):
13697         * bus/main.c:
13698         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13699
13700         * bus/utils.c: (bus_wait_for_memory):
13701         * bus/utils.h:
13702         New files with general utility functions.
13703
13704         * dbus/dbus-internals.h:
13705         Remove _DBUS_HANDLE_OOM.
13706
13707 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13708
13709         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13710         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13711         * dbus/dbus-errors.h:
13712         Add DBusError structure.
13713
13714 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13715
13716         * test/data/valid-messages/standard-acquire-service.message:
13717         * test/data/valid-messages/standard-hello.message:
13718         * test/data/valid-messages/standard-list-services.message:
13719         * test/data/valid-messages/standard-service-exists.message:
13720         Add some standard messages.
13721
13722 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13723
13724         * bus/driver.c: (bus_driver_send_welcome_message),
13725         (bus_driver_handle_list_services),
13726         (bus_driver_handle_acquire_service),
13727         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13728         Update for API changes in libdbus.
13729
13730         * dbus/dbus-message.c: (dbus_message_new_reply):
13731         * dbus/dbus-message.h:
13732         Remove the name argument. The spec states that replies shouldn't
13733         have a name.
13734
13735 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13736
13737         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13738         (report_error), (bus_desktop_file_load), (lookup_section),
13739         (lookup_line), (bus_desktop_file_get_raw),
13740         (bus_desktop_file_get_string):
13741         * bus/desktop-file.h:
13742         Some fixes, and new functions for getting a key value from a section.
13743
13744 2003-02-13  Havoc Pennington  <hp@pobox.com>
13745
13746         * test/data/auth/fail-after-n-attempts.auth-script: new test
13747
13748         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13749         reject the client.
13750
13751 2003-02-13  Havoc Pennington  <hp@pobox.com>
13752
13753         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13754         dbus_credentials_match were backward
13755
13756         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13757         NO_CREDENTIALS and ROOT_CREDENTIALS
13758
13759         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13760         into here. Never process more commands after we've reached an
13761         end state; store further data as unused bytes.
13762
13763         * test/data/auth/*: add more auth tests
13764
13765         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13766         command to match exact string and EXPECT_UNUSED to match unused
13767         bytes
13768
13769         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13770
13771 2003-02-12  Havoc Pennington  <hp@pobox.com>
13772
13773         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13774         \r off of popped lines
13775
13776         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13777         scripts
13778
13779         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13780         SEND, append \r\n
13781
13782 2003-02-12  Havoc Pennington  <hp@pobox.com>
13783
13784         * dbus/Makefile.am: remove break-loader from the build, since it
13785         moved.
13786
13787         * configure.in: add --enable-gcov to turn on coverage profiling
13788         flags and disable optimization
13789
13790 2003-02-10  Havoc Pennington  <hp@pobox.com>
13791
13792         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13793         initial cut at test framework for DBusAuth from laptop.
13794         Doesn't quite work yet but it compiles and I need to get
13795         it off the 266mhz laptop. ;-)
13796
13797         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13798         fix a memleak in error case
13799
13800 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13801
13802         * bus/Makefile.am:
13803         * bus/desktop-file.c:
13804         * bus/desktop-file.h:
13805         Add a desktop file parser.
13806
13807 2003-02-11  Zack Rusin  <zack@kde.org>
13808
13809         * qt/message.[h|cpp]: sample implementation
13810         of the KDE wrapper for DBusMessage
13811
13812 2003-02-09  Zack Rusin  <zack@kde.org>
13813
13814         * test/bus-test.c: make_it_compile
13815         * doc/dbus-specification.sgml: minimal semantic fix
13816
13817 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13818
13819         Release 0.3
13820
13821         * NEWS: Update
13822
13823 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13824
13825         * dbus/Makefile.am:
13826         * dbus/dbus-break-loader.c:
13827         * test/Makefile.am:
13828         * test/break-loader.c:
13829         Move dbus-break-loader to test/ and rename it to break-loader.
13830
13831 2003-02-02  Havoc Pennington  <hp@pobox.com>
13832
13833         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13834         for code to manage cookies in your home directory
13835
13836         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13837
13838         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13839         to authenticate, then disconnect the client.
13840
13841 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13842
13843         * dbus/dbus-message.c (dbus_message_append_fields):
13844         Correct docs.
13845
13846 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * doc/dbus-specification.sgml:
13849         Update address format section.
13850
13851 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13852
13853         * test/Makefile.am:
13854         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13855         (message_handler), (new_connection_callback), (loop_quit),
13856         (loop_run), (main):
13857         Add bus test.
13858
13859 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13860
13861         * bus/driver.c: (bus_driver_handle_service_exists):
13862         Simplify the code a bit.
13863
13864         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13865         Fix a silly.
13866
13867 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13868
13869         * bus/Makefile.am:
13870         Add libdbus-daemon.la and link to it.
13871
13872 2003-02-01  James Willcox  <jwillcox@gnome.org>
13873
13874         * bus/driver.c: (bus_driver_handle_own_service):
13875         Actually include the service reply code in the message.
13876
13877 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13878
13879         * bus/driver.c: (bus_driver_handle_service_exists):
13880         Don't unref the incoming message.
13881
13882 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13883
13884         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13885
13886 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13887
13888         * dbus/dbus-server.c: (dbus_server_listen):
13889         * dbus/dbus-transport.c: (_dbus_transport_open):
13890         ifdef out the calls to the debug transport and server.
13891
13892 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13893
13894         * dbus/dbus-watch.c (dbus_watch_get_flags):
13895         Add note in the docs that ERROR or HANGUP won't be returned
13896         and are assumed always on.
13897
13898         * glib/dbus-gmain.c (add_watch):
13899         Always add IO_ERR | IO_HUP
13900
13901         * dbus/dbus-message.h:
13902         Add semicolon after dbus_message_iter_get_string_array().
13903         Makes qt code build again
13904
13905 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13906
13907         * bus/driver.c: (create_unique_client_name),
13908         (bus_driver_handle_hello):
13909         Don't take a name, just use a numeric id to identify
13910         each client.
13911
13912         * dbus/Makefile.am:
13913         * dbus/dbus-bus.c: (dbus_bus_register_client),
13914         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13915         * dbus/dbus-bus.h:
13916         Add new convenience functions for communicating with the bus.
13917
13918         * dbus/dbus-message.h:
13919
13920         * dbus/dbus-protocol.h:
13921         Fix a typo.
13922
13923 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13924
13925         * dbus/dbus-message.c (dbus_message_append_fields):
13926         Add some more doc comments.
13927
13928 2003-02-01  Havoc Pennington  <hp@pobox.com>
13929
13930         * dbus/dbus-break-loader.c (randomly_modify_length): change
13931         a 4-byte value in the message as if it were a length
13932
13933         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13934         execute bit on saved files
13935
13936 2003-02-01  Havoc Pennington  <hp@pobox.com>
13937
13938         * dbus/dbus-break-loader.c (main): new program to find messages
13939         that break the loader.
13940
13941         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13942         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13943
13944         * dbus/dbus-string.c (_dbus_string_set_byte): new
13945
13946 2003-01-31  Havoc Pennington  <hp@pobox.com>
13947
13948         * dbus/dbus-message.c: refactor the test code to be more general,
13949         in preparation for writing a "randomly permute test cases to
13950         try to break the loader" program.
13951
13952 2003-01-31  Havoc Pennington  <hp@pobox.com>
13953
13954         * doc/dbus-specification.sgml: work on the specification
13955
13956         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13957         the protocol version of the message.
13958
13959         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13960         no longer specifies that.
13961         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13962         1/2/3/4)
13963
13964         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13965         "break" for DBUS_TYPE_NIL, remove @todo
13966
13967 2003-01-31  Havoc Pennington  <hp@pobox.com>
13968
13969         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13970         just set_is_error/get_is_error as this is a commonly-used
13971         function, and write docs.
13972
13973 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13974
13975         * dbus/dbus-address.c: (dbus_address_entry_free):
13976         Free key and value lists.
13977
13978         * dbus/dbus-internals.c: (_dbus_type_to_string):
13979         Add the types we didn't have.
13980
13981         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13982         (_dbus_marshal_validate_arg):
13983         Add NIL types.
13984
13985         * dbus/dbus-message.c: (dbus_message_set_sender):
13986         Remove todo about being able to set sender to NULL.
13987
13988         (dbus_message_set_is_error_reply),
13989         (dbus_message_get_is_error_reply):
13990         * dbus/dbus-message.h:
13991         New functions.
13992
13993         * dbus/dbus-protocol.h:
13994         Add error reply flag.
13995
13996         * test/data/valid-messages/opposite-endian.message:
13997         Add NIL type to test.
13998
13999 2003-01-31  Havoc Pennington  <hp@pobox.com>
14000
14001         * doc/dbus-specification.sgml: fully specify the header.  Add
14002         flags and major protocol version, and change header/body len to
14003         unsigned.
14004
14005         * dbus/dbus-message-builder.c (append_saved_length): append length
14006         as uint32
14007
14008         * dbus/dbus-message.c (dbus_message_create_header): change header
14009         length and body length to unsigned. Add the new fields from the
14010         spec
14011         (_dbus_message_loader_return_buffer): unsigned header/body len
14012
14013 2003-01-30  Havoc Pennington  <hp@pobox.com>
14014
14015         * dbus/dbus-auth.c: rework to use only REJECTED, no
14016         MECHANISMS
14017
14018         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14019         use REJECTED, suggested by Mark McLoughlin
14020
14021 2003-01-30  Havoc Pennington  <hp@pobox.com>
14022
14023         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14024         a better way to report errors here. e.g.  "unix address lacks
14025         path" or something. also "no such file" when the path doesn't
14026         exist, etc.
14027
14028         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14029         leaking list nodes
14030         (dbus_parse_address): add @todo about documenting address format,
14031         and allowing , and ; to be escaped
14032
14033 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14034
14035         * dbus/Makefile.am:
14036         Add dbus-address.[ch]
14037
14038         * dbus/dbus-address.c: (dbus_address_entry_free),
14039         (dbus_address_entries_free), (create_entry),
14040         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14041         (dbus_parse_address), (_dbus_address_test):
14042         * dbus/dbus-address.h:
14043         New files for dealing with address parsing.
14044
14045         * dbus/dbus-connection.c:
14046         Document timeout functions.
14047
14048         * dbus/dbus-message.c:
14049         Document dbus_message_new_from_message.
14050
14051         * dbus/dbus-server-debug.c:
14052         Document.
14053
14054         * dbus/dbus-server.c: (dbus_server_listen):
14055         Parse address and use correct server implementation.
14056
14057         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14058         * dbus/dbus-string.h:
14059         New function with test.
14060
14061         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14062         * dbus/dbus-test.h:
14063         Add address tests.
14064
14065         * dbus/dbus-transport-debug.c:
14066         Document.
14067
14068         * dbus/dbus-transport.c: (_dbus_transport_open):
14069         Parse address and use correct transport implementation.
14070
14071 2003-01-30  Havoc Pennington  <hp@pobox.com>
14072
14073         * dbus/dbus-message.c: use message->byte_order instead of
14074         DBUS_COMPILER_BYTE_ORDER throughout.
14075         (dbus_message_create_header): pad header to align the
14076         start of the body of the message to 8-byte boundary
14077
14078         * dbus/dbus-marshal.h: make all the demarshalers take const
14079         DBusString arguments.
14080
14081         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14082         validate message args here, so we don't have to do slow validation
14083         later, and so we catch bad messages as they are incoming. Also add
14084         better checks on header_len and body_len. Also fill in
14085         message->byte_order
14086
14087         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14088         implemented properly)
14089         (_dbus_string_validate_nul): new function to check all-nul
14090
14091         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14092         get_arg_end_pos and remove all validation
14093         (_dbus_marshal_validate_arg): actually do validation here.
14094
14095 2003-01-29  Havoc Pennington  <hp@pobox.com>
14096
14097         * dbus/dbus-message.c (check_message_handling): fix assertion
14098         failure on set_client_serial
14099
14100 2003-01-28  Havoc Pennington  <hp@pobox.com>
14101
14102         * dbus/dbus-server-debug.c: Add doc section comments
14103
14104         * dbus/dbus-transport-debug.c: add doc section comments
14105
14106 2003-01-28  Havoc Pennington  <hp@redhat.com>
14107
14108         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14109         the reverse order from how I had it
14110         (_dbus_string_base64_encode): reverse encoding order. I was
14111         basically byteswapping everything during encoding.
14112
14113 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14114
14115         * dbus/dbus-connection-internal.h:
14116         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14117         (_dbus_connection_remove_timeout):
14118         Add functions for adding and removing timeouts.
14119
14120         * dbus/dbus-message.c: (dbus_message_new_from_message):
14121         Add new function that takes a message and creates an exact
14122         copy of it, but with the refcount set to 1.
14123         (check_message_handling):
14124         Fix build error.
14125
14126         * dbus/dbus-server-protected.h:
14127         * dbus/dbus-server.c: (_dbus_server_init_base),
14128         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14129         (dbus_server_set_timeout_functions):
14130         (_dbus_server_remove_timeout):
14131         New functions so that a server can add and remove timeouts.
14132
14133         (dbus_server_listen):
14134         Add commented out call to dbus_server_debug_new.
14135
14136         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14137         Actually set the handler, doh.
14138
14139         * dbus/dbus-transport.c: (_dbus_transport_open):
14140         Add commented out call to dbus_transport_debug_client_new.
14141
14142         * dbus/Makefile.am:
14143         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14144
14145 2003-01-28  Havoc Pennington  <hp@pobox.com>
14146
14147         * dbus/dbus-message.c (check_message_handling): function to check
14148         on the loaded message, iterates over it etc.
14149
14150 2003-01-28  Havoc Pennington  <hp@pobox.com>
14151
14152         * test/Makefile.am (dist-hook): fix make distdir
14153
14154         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14155
14156 2003-01-27  Havoc Pennington  <hp@pobox.com>
14157
14158         * dbus/dbus-mempool.c (time_for_size): replace printf with
14159         _dbus_verbose
14160
14161         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14162         empty lines; fix the SAVE_LENGTH stuff to be
14163         START_LENGTH/END_LENGTH so it actually works; couple other
14164         bugfixes
14165
14166         * test/Makefile.am (dist-hook): add dist-hook for .message files
14167
14168         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14169         can be constant or locked.
14170         (_dbus_string_free): allow freeing a const string as
14171         documented/intended
14172
14173         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14174
14175         * dbus/dbus-test-main.c (main): take an argument which is the
14176         directory containing test data
14177
14178         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14179         argument to this and load all the messages in test/data/
14180         checking that they can be loaded or not loaded as appropriate.
14181
14182 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14183
14184         * bus/dispatch.c: (bus_dispatch_message_handler):
14185         Dispatch messages sent to services.
14186
14187         * bus/driver.c: (bus_driver_send_service_deleted),
14188         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14189         (bus_driver_send_service_acquired):
14190         Add helper functions for sending service related messages.
14191
14192         (bus_driver_send_welcome_message):
14193         Send HELLO_REPLY instead of WELCOME.
14194
14195         (bus_driver_handle_list_services):
14196         Send LIST_SERVICES_REPLY instead of SERVICES.
14197
14198         (bus_driver_handle_own_service),
14199         (bus_driver_handle_service_exists):
14200         New message handlers.
14201
14202         (bus_driver_handle_message):
14203         Invoke new message handlers.
14204
14205         (bus_driver_remove_connection):
14206         Don't remove any services here since that's done automatically
14207         by bus_service_remove_owner now.
14208
14209         * bus/driver.h:
14210         New function signatures.
14211
14212         * bus/services.c: (bus_service_add_owner):
14213         Send ServiceAcquired message if we're the only primary owner.
14214
14215         (bus_service_remove_owner):
14216         Send ServiceAcquired/ServiceLost messages.
14217
14218         (bus_service_set_prohibit_replacement),
14219         (bus_service_get_prohibit_replacement):
14220         Functions for setting prohibit replacement.
14221
14222         (bus_service_has_owner):
14223         New function that checks if a connection is in the owner queue of
14224         a certain service.
14225
14226         * bus/services.h:
14227         Add new function signatures.
14228
14229         * dbus/dbus-list.c: (_dbus_list_test):
14230         Add tests for _dbus_list_remove_last and traversing the list backwards.
14231
14232         * dbus/dbus-list.h:
14233         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14234         go any further, so return NULL then.
14235
14236         * dbus/dbus-protocol.h:
14237         Add new messages, service flags and service replies.
14238
14239 2003-01-26  Havoc Pennington  <hp@pobox.com>
14240
14241         * dbus/dbus-message-builder.c: implement, completely untested.
14242
14243         * test/data/*: add data to be used in testing.
14244         ".message" files are our simple loadable text format.
14245         ".message-raw" will be binary dumps of messages.
14246
14247         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14248
14249 2003-01-26  Havoc Pennington  <hp@pobox.com>
14250
14251         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14252
14253         * dbus/dbus-errors.c (dbus_result_to_string): add
14254         file errors
14255
14256         * dbus/dbus-message-builder.c: new file, will contain code to load
14257         up messages from files. Not implemented yet.
14258
14259 2003-01-26  Havoc Pennington  <hp@pobox.com>
14260
14261         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14262         the sender by setting to NULL
14263
14264 2003-01-26  Havoc Pennington  <hp@pobox.com>
14265
14266         The unit tests pass, but otherwise untested.  If it breaks, the
14267         tests should have been better. ;-)
14268
14269         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14270         the connection.
14271
14272         * dbus/dbus-message.c: redo everything so we maintain
14273         message->header as the only copy of the various fields.
14274         This avoids the possibility of out-of-memory in some cases,
14275         for example dbus_message_lock() can't run out of memory anymore,
14276         and avoids extra copying. Figured I may as well go ahead and do
14277         this since it was busted for dbus_message_lock to not return
14278         failure on OOM, and dbus_message_write_header was totally
14279         unchecked for OOM. Also fixed some random other bugs.
14280
14281         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14282         that strings are nul-terminated. Also, end_pos can be equal
14283         to string length just not greater than, I think.
14284         (_dbus_marshal_set_int32): new function
14285         (_dbus_marshal_set_uint32): new function
14286         (_dbus_marshal_set_string): new function
14287
14288         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14289         a warning, init timeout_list to NULL
14290         (dbus_connection_send_message): don't use uninitialized variable
14291         "serial"
14292
14293         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14294
14295 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14296
14297         * bus/driver.c: (bus_driver_handle_hello),
14298         (bus_driver_send_welcome_message):
14299         Plug leaks
14300
14301 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14302
14303         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14304         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14305         (dbus_connection_unref):
14306         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14307         * dbus/dbus-message.c: (dbus_message_unref),
14308         Plug memory leaks.
14309
14310         (dbus_message_get_fields):
14311         Remove debugging printout.
14312
14313         (_dbus_message_loader_return_buffer):
14314         Don't store the header string.
14315
14316         (_dbus_message_test):
14317         Plug leaks.
14318
14319 2003-01-26  Richard Hult  <rhult@codefactory.se>
14320
14321         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14322         the file descriptor list, since it can change under us.
14323
14324 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14325
14326         * glib/dbus-gmain.c: (dbus_connection_prepare),
14327         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14328         (remove_watch), (dbus_connection_hookup_with_g_main):
14329         Rewrite the glib handling to use its own GSource instead of a
14330         GIOChannel so we can catch messages put in the queue while waiting
14331         for a reply.
14332
14333 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14334
14335         * bus/Makefile.am:
14336         * bus/connection.c: (connection_disconnect_handler),
14337         (connection_watch_callback), (bus_connection_setup):
14338         * bus/dispatch.c: (send_one_message),
14339         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14340         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14341         * bus/dispatch.h:
14342         * bus/driver.c: (bus_driver_send_service_deleted),
14343         (bus_driver_send_service_created), (bus_driver_handle_hello),
14344         (bus_driver_send_welcome_message),
14345         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14346         (bus_driver_handle_message):
14347         * bus/driver.h:
14348         Refactor code, put the message dispatching in its own file. Use
14349         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14350         is disconnected.
14351
14352 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14353
14354         * dbus/dbus-internals.h:
14355         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14356
14357         * dbus/dbus-message.c: (dbus_message_get_sender):
14358         * dbus/dbus-message.h:
14359         Implement dbus_message_get_sender.
14360
14361         * dbus/dbus-protocol.h:
14362         Add message and service defines.
14363
14364 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14365
14366         * dbus/dbus-connection.c: (dbus_connection_send_message):
14367         * dbus/dbus-message-internal.h:
14368         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14369         (dbus_message_write_header):
14370         Remove _dbus_messag_unlock and don't set the client serial on a
14371         message if one already exists.
14372
14373 2003-01-24  Havoc Pennington  <hp@pobox.com>
14374
14375         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14376         list_pool
14377
14378         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14379         on OOM
14380
14381 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14382
14383         * dbus/dbus-list.c: (alloc_link), (free_link):
14384         Use a memory pool for the links.
14385
14386 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14387
14388         * bus/connection.c: (bus_connection_foreach):
14389         * bus/connection.h:
14390         Add new bus_connection_foreach function.
14391
14392         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14393         Add function that broadcasts a message to all clients.
14394
14395         (bus_driver_send_service_created), (bus_driver_handle_hello),
14396         (bus_driver_send_welcome_message),
14397         (bus_driver_handle_list_services), (bus_driver_message_handler):
14398         Implement functions that take care of listing services, and notifying
14399         clients when new services are created.
14400
14401         * bus/services.c: (bus_services_list):
14402         * bus/services.h:
14403         Add new function that returns an array of strings with the currently
14404         registered services.
14405
14406         * glib/dbus-glib.h:
14407         * glib/dbus-gmain.c:
14408         Update copyright year.
14409
14410 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14411
14412         * dbus/dbus-connection.c: (dbus_connection_send_message):
14413         Unlock the message in case it was sent earlier.
14414
14415         (dbus_connection_send_message_with_reply_and_block):
14416         Remove the reply message from the list.
14417
14418         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14419         Set array_len and new_pos correctly.
14420
14421         (_dbus_marshal_test):
14422         Remove debug output.
14423
14424         * dbus/dbus-message-internal.h:
14425         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14426         New function that returns the reply serial.
14427
14428         (_dbus_message_unlock):
14429         New function that unlocks a message and resets its header.
14430
14431         (dbus_message_append_string_array),
14432         (dbus_message_get_fields_valist),
14433         (dbus_message_iter_get_field_type),
14434         (dbus_message_iter_get_string_array),
14435         (dbus_message_get_fields),
14436         (dbus_message_append_fields_valist):
14437         Handle string arrays.
14438
14439         (dbus_message_set_sender):
14440         Make this function public since the bus daemon needs it.
14441
14442         (decode_header_data):
14443         Set the reply serial to -1 initially.
14444
14445         * dbus/dbus-message.h:
14446         Add dbus_message_set_sender.
14447
14448 2003-01-24  Havoc Pennington  <hp@pobox.com>
14449
14450         * doc/dbus-specification.sgml: add some stuff
14451
14452 2003-01-22  Havoc Pennington  <hp@pobox.com>
14453
14454         * doc/dbus-specification.sgml: Start to document the protocol.
14455
14456 2003-01-22  Havoc Pennington  <hp@pobox.com>
14457
14458         * dbus/dbus-connection.c
14459         (dbus_connection_send_message_with_reply_and_block): add some @todo
14460
14461         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14462
14463 2003-01-21  Havoc Pennington  <hp@pobox.com>
14464
14465         (patch untested because can't compile)
14466
14467         * bus/driver.c (create_unique_client_name): make this function
14468         never recycle client names. Also, caller should initialize
14469         the DBusString.
14470
14471         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14472
14473 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14474
14475         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14476         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14477         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14478         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14479         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14480         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14481         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14482         * dbus/dbus-marshal.h:
14483         * dbus/dbus-protocol.h:
14484         Add support for marshalling and demarshalling integer, double
14485         and string arrays.
14486
14487 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14488
14489         * bus/Makefile.am:
14490         Add driver.[ch]
14491
14492         * bus/connection.c: (connection_disconnect_handler):
14493         Remove the connection from the bus driver's list.
14494
14495         (connection_watch_callback): Dispatch messages.
14496
14497         (free_connection_data): Free connection name.
14498
14499         (bus_connection_setup): Add connection to the bus driver's list.
14500         (bus_connection_remove_owned_service):
14501         (bus_connection_set_name), (bus_connection_get_name):
14502         Add functions for setting and getting the connection's name.
14503
14504         * bus/connection.h:
14505         Add function headers.
14506
14507         * bus/driver.c: (create_unique_client_name),
14508         (bus_driver_handle_hello_message),
14509         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14510         (bus_driver_add_connection), (bus_driver_remove_connection):
14511         * bus/driver.h:
14512         * bus/main.c:
14513         * bus/services.c: (bus_service_free):
14514         * bus/services.h:
14515         New file that handles communication and registreation with the bus
14516         itself.
14517
14518 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14519
14520         * dbus/dbus-connection.c: (dbus_connection_send_message):
14521         Add a new client_serial parameter.
14522
14523         (dbus_connection_send_message_with_reply):
14524         Remove a @todo since we've implemented the blocking function.
14525
14526         (dbus_connection_send_message_with_reply_and_block):
14527         New function that sends a message and waits for a reply and
14528         then returns the reply.
14529
14530         * dbus/dbus-connection.h:
14531         Add new functions.
14532
14533         * dbus/dbus-errors.c: (dbus_result_to_string):
14534         * dbus/dbus-errors.h:
14535         Add new DBUS_RESULT.
14536
14537         * dbus/dbus-message-internal.h:
14538         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14539         (_dbus_message_set_sender), (dbus_message_write_header),
14540         (dbus_message_new_reply), (decode_header_data),
14541         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14542         * dbus/dbus-message.h:
14543         Add new functions that set the reply serial and sender.
14544         Also marshal and demarshal them correctly and add test.
14545
14546         * dbus/dbus-protocol.h:
14547         Add new DBUS_MESSAGE_TYPE_SENDER.
14548
14549         * glib/dbus-glib.h:
14550         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14551         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14552         (dbus_connection_hookup_with_g_main):
14553         * glib/test-dbus-glib.c: (main):
14554         Rewrite to use GIOChannel and remove the GSource crack.
14555
14556         * test/echo-client.c: (main):
14557         * test/watch.c: (check_messages):
14558         Update for changed APIs
14559
14560 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14561
14562         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14563
14564         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14565         Create a DBusTimeoutList.
14566         (dbus_connection_set_timeout_functions): Add new function to
14567         set timeout callbacks
14568
14569         * dbus/dbus-connection.h: Add public DBusTimeout API.
14570
14571         * dbus/dbus-message.c: (dbus_message_get_service):
14572         * dbus/dbus-message.h:  New function.
14573
14574         * dbus/dbus-server.c: Fix small doc typo.
14575
14576         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14577
14578 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14579
14580         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14581         of the string, just as long as specified.
14582
14583 2003-01-19  Havoc Pennington  <hp@pobox.com>
14584
14585         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14586         new function
14587
14588         * dbus/dbus-server.c (dbus_server_set_max_connections)
14589         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14590         keep track of current number of connections, and add API for
14591         setting a max (but haven't implemented enforcing the max yet)
14592
14593 2003-01-18  Havoc Pennington  <hp@pobox.com>
14594
14595         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14596         reading/writing if read_watch != NULL or write_watch != NULL.
14597
14598         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14599         the message loader code to actually load message->header and
14600         message->body into the newly-created message.
14601
14602         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14603         in OOM case
14604
14605         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14606         (dbus_connection_get_max_message_size)
14607         (dbus_connection_set_max_live_messages_size)
14608         (dbus_connection_get_max_live_messages_size): implement some
14609         resource limitation functions
14610
14611         * dbus/dbus-resources.c: new file implementing some of the
14612         resource limits stuff
14613
14614         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14615         missing docs, add @todo to handle OOM etc.
14616
14617         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14618         docs
14619
14620 2003-01-18  Havoc Pennington  <hp@pobox.com>
14621
14622         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14623         connection if it hasn't been already.
14624
14625         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14626         replace with DisconnectFunction.
14627
14628 2003-01-18  Havoc Pennington  <hp@pobox.com>
14629
14630         Building --disable-verbose-mode --disable-asserts --disable-tests
14631         cuts the library from 112K to 45K or so
14632
14633         * configure.in: check for varargs macro support,
14634         add --enable-verbose-mode, --enable-asserts.
14635
14636         * dbus/dbus-internals.h (_dbus_assert): support
14637         DBUS_DISABLE_ASSERT
14638         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14639
14640 2003-01-18  Havoc Pennington  <hp@pobox.com>
14641
14642         * dbus/dbus-test.c: include config.h so that tests actually run
14643
14644         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14645         so the failure mode when that assumption fails will be plenty
14646         obvious.
14647
14648 2003-01-18  Havoc Pennington  <hp@pobox.com>
14649
14650         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14651
14652         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14653         the distribution
14654
14655         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14656         since we don't want to use those in make check
14657
14658 2003-01-15  Havoc Pennington  <hp@redhat.com>
14659
14660         Release 0.2
14661
14662         * NEWS: update
14663
14664 2003-01-15  Havoc Pennington  <hp@redhat.com>
14665
14666         * test/Makefile.am: fix so that test source code ends up in the
14667         distribution on make distcheck
14668
14669 2003-01-15  Havoc Pennington  <hp@redhat.com>
14670
14671         Release 0.1.
14672
14673         * NEWS: update
14674
14675 2003-01-15  Havoc Pennington  <hp@redhat.com>
14676
14677         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14678         fix build when --disable-tests
14679
14680         * Makefile.am (EXTRA_DIST): put HACKING in here
14681
14682         * HACKING: document procedure for making a tarball release.
14683
14684 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14685
14686         * bus/connection.c: (connection_error_handler),
14687         (bus_connection_setup):
14688         * bus/main.c: (main):
14689         Make sure that the DBusConnectionData struct is NULLed
14690         out to prevent a segfault.
14691
14692         * dbus/dbus-errors.c: (dbus_result_to_string):
14693         * dbus/dbus-errors.h:
14694         * dbus/dbus-message.c: (dbus_message_get_fields),
14695         (dbus_message_get_fields_valist), (_dbus_message_test):
14696         * dbus/dbus-message.h:
14697         Make dbus_message_get_fields return a result code so we can
14698         track invalid fields as well as oom.
14699
14700 2003-01-11  Havoc Pennington  <hp@pobox.com>
14701
14702         * configure.in: change --enable-test/--enable-ansi action-if-given
14703         to enable_foo=$enableval instead of enable_foo=yes
14704
14705 2003-01-08  Havoc Pennington  <hp@pobox.com>
14706
14707         * dbus/dbus-string.c (_dbus_string_align_length): new function
14708
14709         * dbus/dbus-test-main.c: move main() for test app here
14710         * dbus/dbus-test.c
14711         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14712         symbol to run tests, because dbus-test isn't in the main
14713         library
14714
14715         Code review nitpicks.
14716
14717         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14718         for people with narrow emacs ;-). Assert client_serial was filled
14719         in. Assert message->name != NULL.
14720         (dbus_message_append_fields): have "first_field_type" arg separate
14721         from va list, needed for C++ binding that also uses varargs IIRC
14722         and helps with type safety
14723         (dbus_message_new): add @todo about using DBusString to store
14724         service/name internally
14725         (dbus_message_new): don't leak ->service and ->name on OOM later
14726         in the function
14727         (dbus_message_unref): free the service name
14728         (dbus_message_get_fields): same change to varargs
14729         i.e. first_field_type
14730         (_dbus_message_loader_return_buffer): assert that the message data
14731         is aligned (if not it's a bug in our code). Put in verbose griping
14732         about why we set corrupted = TRUE.
14733         (decode_header_data): add FIXME that char* is evil.  Was going to
14734         add FIXME about evil locale-specific string.h strncmp, but just
14735         switched to wacky string-as-uint32 optimization. Move check for
14736         "no room for field name" above get_const_data_len() to avoid
14737         assertion failure in get_const_data_len if we have trailing 2
14738         bytes or the like. Check for service and name fields being
14739         provided twice. Don't leak service/name on error. Require field
14740         names to be aligned to 4 bytes.
14741
14742         * dbus/dbus-marshal.c: move byte swap stuff to header
14743         (_dbus_pack_int32): uscore-prefix
14744         (_dbus_unpack_int32): uscore-prefix
14745         (_dbus_unpack_uint32): export
14746         (_dbus_demarshal_string): add @todo complaining about use of
14747         memcpy()
14748         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14749         handling allowing corrupt data to go unchecked
14750
14751 2003-01-08  Havoc Pennington  <hp@redhat.com>
14752
14753         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14754         to the select() as needed for authentication. (should be using
14755         _dbus_poll() not select, but for another day)
14756
14757         * dbus/dbus.h: include dbus/dbus-protocol.h
14758
14759 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14760
14761         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14762         dbus-connection.h
14763
14764 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14765
14766         * dbus/dbus-internals.c: (_dbus_type_to_string):
14767         New function that returns a string describing a type.
14768
14769         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14770         * dbus/dbus-marshal.h:
14771         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14772         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14773         (dbus_message_iter_get_byte_array):
14774         * dbus/dbus-message.h:
14775         Add new convenience functions for appending and getting message fields.
14776         Also add demarshalling routines for byte arrays.
14777
14778 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14779
14780         * dbus/dbus-connection-internal.h:
14781         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14782         (_dbus_connection_get_next_client_serial),
14783         (dbus_connection_send_message):
14784         * dbus/dbus-internals.h:
14785         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14786         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14787         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14788         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14789         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14790         (_dbus_verbose_bytes), (_dbus_marshal_test):
14791         * dbus/dbus-marshal.h:
14792         * dbus/dbus-message-internal.h:
14793         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14794         (dbus_message_write_header), (_dbus_message_lock),
14795         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14796         (dbus_message_get_name), (dbus_message_append_int32),
14797         (dbus_message_append_uint32), (dbus_message_append_double),
14798         (dbus_message_append_string), (dbus_message_append_byte_array),
14799         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14800         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14801         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14802         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14803         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14804         (decode_header_data), (_dbus_message_loader_return_buffer),
14805         (message_iter_test), (_dbus_message_test):
14806         * dbus/dbus-message.h:
14807         * dbus/dbus-protocol.h:
14808         * dbus/dbus-test.c: (main):
14809         * dbus/dbus-test.h:
14810         * glib/test-dbus-glib.c: (message_handler), (main):
14811         * test/echo-client.c: (main):
14812         * test/watch.c: (check_messages):
14813         Make messages sendable and receivable for real.
14814
14815 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14816
14817         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14818         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14819         * dbus/dbus-message.c: (dbus_message_append_int32),
14820         (dbus_message_append_uint32), (dbus_message_append_double),
14821         (dbus_message_append_string), (dbus_message_append_byte_array):
14822         Handle OOM restoration.
14823
14824 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14825
14826         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14827         (_dbus_demarshal_string), (_dbus_marshal_test):
14828         * dbus/dbus-marshal.h:
14829         * dbus/dbus-message.c: (dbus_message_get_name),
14830         Document these functions.
14831
14832         (dbus_message_append_int32), (dbus_message_append_uint32),
14833         (dbus_message_append_double), (dbus_message_append_string),
14834         (dbus_message_append_byte_array):
14835         * dbus/dbus-message.h:
14836         Add functions for adding message fields of different types.
14837
14838         * dbus/dbus-protocol.h:
14839         Add the different types.
14840
14841 2003-01-05  Havoc Pennington  <hp@pobox.com>
14842
14843         * bus/connection.c: implement routines for handling connections,
14844         first thing is keeping a list of owned services on each connection
14845         and setting up watches etc.
14846
14847         * bus/services.c: implement a mapping from service names to lists
14848         of connections
14849
14850         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14851
14852         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14853         to use static mutexes for global data
14854
14855         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14856         collection of functions to set/get application-specific data
14857         on the DBusConnection.
14858
14859 2003-01-04  Havoc Pennington  <hp@pobox.com>
14860
14861         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14862         (_dbus_poll): new function
14863
14864         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14865         copied from GLib
14866
14867         * bus/loop.c: initial code for the daemon main loop
14868
14869 2003-01-04  Havoc Pennington  <hp@pobox.com>
14870
14871         * test/watch.c (error_handler): make it safe if the error handler
14872         is called multiple times (if we s/error handler/disconnect
14873         handler/ we should just guarantee it's called only once)
14874
14875         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14876         error handler on disconnect (it's quite possible we should
14877         just change the error handler to a "disconnect handler," I'm
14878         not sure we have any other meaningful errors)
14879
14880         * configure.in: check for getpwnam_r
14881
14882         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14883         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14884         mechanism as in SASL spec, using socket credentials
14885
14886         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14887         (_dbus_send_credentials_unix_socket): new function
14888
14889         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14890         dbus_accept()
14891         (_dbus_write): only check errno if <0 returned
14892         (_dbus_write_two): ditto
14893
14894 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14895
14896         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14897         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14898         (_dbus_marshal_test):
14899         * dbus/dbus-marshal.h:
14900         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14901         to _dbus_marshal_utf8_string. Also fix some tests.
14902
14903 2002-12-28  Harri Porten  <porten@kde.org>
14904
14905         * configure.in: added check for C++ compiler and a very cheesy
14906         check for the Qt integration
14907
14908         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14909
14910         * qt/Makefile.am: added
14911
14912         * qt/.cvsignore: added
14913
14914         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14915         latter, added #ifdef QT_THREAD_SUPPORT guard.
14916
14917         * dbus/Makefile.am: added missing headers for make dist
14918
14919 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14920
14921         * dbus/Makefile.am: fixup export-symbols-regex.
14922
14923 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14924
14925         * acinclude.m4: Add this file and put the
14926         PKG_CHECK_MODULE macro in it.
14927
14928 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14929
14930         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14931         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14932         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14933         (_dbus_marshal_test):
14934         Make the demarshalling routines align the pos argument.
14935         Add string marshalling tests and fix the obvious bugs
14936         discovered.
14937
14938 2002-12-26  Havoc Pennington  <hp@pobox.com>
14939
14940         * dbus/dbus-auth.c: fixes fixes fixes
14941
14942         * dbus/dbus-transport-unix.c: wire up support for
14943         encoding/decoding data on the wire
14944
14945         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14946         (_dbus_auth_decode_data): append to target string
14947         instead of nuking it.
14948
14949 2002-12-26  Havoc Pennington  <hp@pobox.com>
14950
14951         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14952         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14953         doh
14954
14955         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14956         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14957         now). Main point is because I wanted unpack_uint32 to implement
14958         _dbus_verbose_bytes
14959         (_dbus_verbose_bytes): new function
14960
14961         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14962
14963         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14964         mechanism to handle a corrupt message stream
14965         (_dbus_message_loader_new): fix preallocation to only prealloc,
14966         not prelengthen
14967
14968         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14969         (_dbus_string_test): enhance tests for copy/move and fix the
14970         functions
14971
14972         * dbus/dbus-transport-unix.c: Hold references in more places to
14973         avoid reentrancy problems
14974
14975         * dbus/dbus-transport.c: ditto
14976
14977         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14978         leak reference count in no-message case
14979
14980         * test/watch.c (do_mainloop): handle adding/removing watches
14981         during iteration over the watches. Also, ref the connection/server
14982         stored on a watch, so we don't try to mangle a destroyed one.
14983
14984         * dbus/dbus-transport-unix.c (do_authentication): perform
14985         authentication
14986
14987         * dbus/dbus-auth.c (get_state): add a state
14988         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14989         (_dbus_auth_get_unused_bytes): append the unused bytes
14990         to the passed in string, rather than prepend
14991
14992         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14993         the auth conversation DBusAuth
14994
14995         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14996         (_dbus_transport_new_for_domain_socket): when creating a
14997         transport, pass in whether it's a client-side or server-side
14998         transport so we know which DBusAuth to create
14999
15000 2002-12-03  Havoc Pennington  <hp@pobox.com>
15001
15002         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15003         _after_ finalizing the derived members
15004         (unix_connection_set): unref watch if we fail to add it
15005
15006         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15007         transport first, so that the connection owned by the
15008         transport will be valid as the transport finalizes.
15009
15010         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15011         if necessary, and remove watches from the connection.
15012
15013         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15014
15015 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15016
15017         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15018         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15019         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15020         (_dbus_marshal_test):
15021         * dbus/dbus-marshal.h:
15022         Add string marshal functions and have the demarshal functions
15023         return the new position.
15024
15025 2002-12-25  Havoc Pennington  <hp@pobox.com>
15026
15027         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15028         it is a simple protocol that just maps directly to SASL.
15029
15030         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15031         initial implementation, not actually used yet.
15032
15033         * dbus/dbus-string.c (_dbus_string_find): new function
15034         (_dbus_string_equal): new function
15035         (_dbus_string_base64_encode): new function
15036         (_dbus_string_base64_decode): new function
15037
15038 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15039
15040         * dbus/Makefile.am:
15041         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15042         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15043         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15044         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15045         * dbus/dbus-marshal.h:
15046         * dbus/dbus-protocol.h:
15047         * dbus/dbus-test.c: (main):
15048         * dbus/dbus-test.h:
15049         Add un-optimized marshalling/demarshalling routines.
15050
15051 2002-12-25  Harri Porten  <porten@kde.org>
15052
15053         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15054
15055 2002-12-24  Zack Rusin  <zack@kde.org>
15056
15057         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15058         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15059         main loop stuff
15060
15061 2002-12-24  Havoc Pennington  <hp@pobox.com>
15062
15063         * glib/dbus-gthread.c: fix include
15064
15065         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15066         I think glib API needs to change, though, as you don't
15067         want to use DBusMessageFunction, you want to use the
15068         DBusMessageHandler object. Probably
15069         dbus_connection_open_with_g_main_loop()
15070         and dbus_connection_setup_g_main_loop() or something like that
15071         (but think of better names...) that just create a connection
15072         that has watch/timeout functions etc. already set up.
15073
15074         * dbus/dbus-connection.c
15075         (dbus_connection_send_message_with_reply): new function just to
15076         show how the message handler helps us deal with replies.
15077
15078         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15079
15080         * dbus/dbus-string.c (_dbus_string_test): free a string that
15081         wasn't
15082
15083         * dbus/dbus-hash.c: use memory pools for the hash entries
15084         (rebuild_table): be more paranoid about overflow, and
15085         shrink table when we can
15086         (_dbus_hash_test): reduce number of sprintfs and write
15087         valid C89. Add tests for case where we grow and then
15088         shrink the hash table.
15089
15090         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15091
15092         * dbus/dbus-connection.c (dbus_connection_register_handler)
15093         (dbus_connection_unregister_handler): new functions
15094
15095         * dbus/dbus-message.c (dbus_message_get_name): new
15096
15097         * dbus/dbus-list.c: fix docs typo
15098
15099         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15100         an object representing a handler for messages.
15101
15102 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15103
15104         * glib/dbus-glib.h:
15105         * glib/dbus-gthread.c: (dbus_gthread_init):
15106         Don't use the gdbus prefix for public functions.
15107
15108 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15109
15110         * Makefile.am:
15111         * configure.in:
15112         Add GLib checks and fixup .pc files
15113
15114         * glib/Makefile.am:
15115         * glib/dbus-glib.h:
15116         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15117         (gdbus_connection_check), (gdbus_connection_dispatch),
15118         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15119         (dbus_connection_gsource_new):
15120         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15121         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15122         * glib/test-dbus-glib.c: (message_handler), (main):
15123         Add GLib support.
15124
15125 2002-12-15  Harri Porten  <porten@kde.org>
15126
15127         * autogen.sh: check for libtoolize before attempting to use it
15128
15129         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15130         struct.
15131
15132         * .cvsignore: ignore more stamp files
15133
15134         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15135
15136         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15137         without make install.
15138
15139 2002-12-15  Havoc Pennington  <hp@pobox.com>
15140
15141         * dbus/dbus-threads.c: add thread stubs that a higher library
15142         layer can fill in. e.g. the GLib wrapper might fill them in with
15143         GThread stuff. We still need to use this thread API to
15144         thread-safe-ize the library.
15145
15146 2002-12-12  Havoc Pennington  <hp@pobox.com>
15147
15148         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15149         below new interfaces and include fewer system headers.
15150
15151         * dbus/dbus-sysdeps.c (_dbus_read): new function
15152         (_dbus_write): new function
15153         (_dbus_write_two): new function
15154         (_dbus_connect_unix_socket): new function
15155         (_dbus_listen_unix_socket): new function
15156
15157         * dbus/dbus-message-internal.h: change interfaces to use
15158         DBusString
15159
15160 2002-12-11  Havoc Pennington  <hp@pobox.com>
15161
15162         * dbus/dbus-types.h: add dbus_unichar
15163
15164         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15165
15166         * dbus/dbus-connection.c (dbus_connection_send_message): return
15167         TRUE on success
15168
15169         * dbus/dbus-transport.c: include dbus-watch.h
15170
15171         * dbus/dbus-connection.c: include dbus-message-internal.h
15172
15173         * HACKING: add file with coding guidelines stuff.
15174
15175         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15176         handling here, for security purposes (as in vsftpd). Not actually
15177         using this class yet.
15178
15179         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15180         system/libc usage here, as in vsftpd, for ease of auditing (and
15181         should also simplify portability). Haven't actually moved all the
15182         system/libc usage into here yet.
15183
15184 2002-11-25  Havoc Pennington  <hp@pobox.com>
15185
15186         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15187         always print the first verbose message.
15188
15189 2002-11-24  Havoc Pennington  <hp@pobox.com>
15190
15191         * test/echo-client.c, test/echo-server.c: cheesy test
15192         clients.
15193
15194         * configure.in (AC_CHECK_FUNCS): check for writev
15195
15196         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15197         function
15198
15199         * dbus/dbus-list.c (_dbus_list_foreach): new function
15200
15201         * dbus/dbus-internals.c (_dbus_verbose): new function
15202
15203         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15204         representing a server that listens for connections.
15205
15206         * dbus/.cvsignore: create
15207
15208         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15209         public API for reporting errors
15210
15211         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15212         public object representing a connection that
15213         sends/receives messages. (Same object used for
15214         both client and server.)
15215
15216         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15217         Basic abstraction for different kinds of stream
15218         that we might read/write messages from.
15219
15220 2002-11-23  Havoc Pennington  <hp@pobox.com>
15221
15222         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15223         _DBUS_INT_MAX
15224
15225         * dbus/dbus-test.c (main): add list test, and include
15226         dbus-test.h as intended
15227
15228         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15229         (_dbus_hash_table_remove_int): return value indicates
15230         whether the entry existed to remove
15231
15232         * dbus/dbus-list.c: add linked list utility class,
15233         with docs and tests
15234
15235         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15236         array sometimes.
15237
15238 2002-11-23  Havoc Pennington  <hp@pobox.com>
15239
15240         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15241         DBUS_END_DECLS to nothing, that should fix this once and for all
15242
15243         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15244
15245         * dbus/dbus-message.c, dbus/dbus-hash.c:
15246         add some missing @brief
15247
15248 2002-11-23  Havoc Pennington  <hp@pobox.com>
15249
15250         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15251         to avoid confusing Doxygen
15252
15253         * dbus/dbus-hash.c: @} not }@
15254
15255         * dbus/dbus-message.c (struct DBusMessage): split out
15256         internals docs
15257
15258 2002-11-23  Havoc Pennington  <hp@pobox.com>
15259
15260         * configure.in: pile on more warning flags if using gcc
15261
15262         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15263         to document static functions
15264
15265         * configure.in: add summary to end of configure so it
15266         looks nice and attractive
15267
15268         * dbus/dbus-hash.c: finish implementation and write unit
15269         tests and docs
15270
15271         * configure.in: add --enable-tests to enable unit tests
15272
15273         * dbus/dbus-test.c: test program to run unit tests
15274         for all files in dbus/*, initially runs a test for
15275         dbus-hash.c
15276
15277         * dbus/dbus-internals.h: file to hold some internal utility stuff
15278
15279 2002-11-22  Havoc Pennington  <hp@redhat.com>
15280
15281         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15282         "ported" away from Tcl
15283
15284         * dbus/dbus-types.h: header for types such as dbus_bool_t
15285
15286 2002-11-22  Havoc Pennington  <hp@redhat.com>
15287
15288         * dbus/dbus.h: fixups for doc warnings
15289
15290         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15291         macros
15292         (QUIET): make it quiet so we can see warnings
15293
15294         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15295
15296 2002-11-22  Havoc Pennington  <hp@redhat.com>
15297
15298         * Makefile.am: include "Doxyfile" target in all-local
15299
15300         * configure.in: generate the Doxyfile
15301
15302         * Doxyfile.in: move Doxyfile here, so we can use
15303         configure to generate a Doxyfile with the right
15304         version number etc.
15305
15306 2002-11-22  Havoc Pennington  <hp@redhat.com>
15307
15308         * dbus/dbus-message.c: move inline docs into .c file
15309
15310         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15311         so all docs are under doc/
15312         (MAN_EXTENSION): generate man pages. Use extension
15313         ".3dbus" which matches ".3qt" on my system,
15314         I guess this is OK, I don't know really.
15315         (FILE_PATTERNS): look for .c files not .h, makes sense
15316         for plain C I think
15317
15318 2002-11-22  Havoc Pennington  <hp@pobox.com>
15319
15320         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15321         because any app can be a server, and any app can be a client,
15322         the bus is a special kind of server.
15323
15324 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15325
15326         * Doxyfile : adding. Still needs Makefile rules to be generated
15327         automatically (just run "doxygen" in the toplevel dir for now to
15328         generate docs)
15329
15330         * dbus/dbus-message.h : Adding sample docs (javadoc since
15331         resembles gtk-doc a little more)
15332
15333         * dbus/dbus.h : Adding sample docs
15334
15335 2002-11-21  Havoc Pennington  <hp@redhat.com>
15336
15337         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15338         so we can allow ourselves to include files directly,
15339         instead of having to use dbus.h
15340
15341         * dbus/dbus.h: fill in
15342
15343         * dbus/dbus-message.h: sketch out a sample header file.
15344         Include griping if you include it directly instead of
15345         via dbus.h
15346
15347         * dbus/dbus-macros.h: new file with macros for extern "C",
15348         TRUE/FALSE, NULL, etc.
15349
15350         * doc/file-boilerplate.c: put include guards in here
15351
15352 2002-11-21  Havoc Pennington  <hp@redhat.com>
15353
15354         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15355
15356         * COPYING: include the GPL as well, and license code
15357         under both AFL and GPL.
15358
15359 2002-11-21  Havoc Pennington  <hp@redhat.com>
15360
15361         * acconfig.h: get rid of this
15362
15363         * autogen.sh (run_configure): add --no-configure option
15364
15365         * configure.in: remove AC_ARG_PROGRAM to make
15366         autoconf complain less. add AC_PREREQ.
15367         add AC_DEFINE third arg.
15368
15369 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15370
15371         * doc/Makefile.am:
15372         Fix references so we can distcheck.
15373
15374 2002-11-21  Havoc Pennington  <hp@redhat.com>
15375
15376         * Initial module creation
15377