2006-12-13 Ralf Habacker <ralf.habacker@freenet.de>
[platform/upstream/dbus.git] / ChangeLog
1 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
4         correctness fix. - Patch from Christian Ehrlicher
5
6 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
7
8         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
9         we should also use it. - Patch from Christian Ehrlicher
10
11 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
12   
13         * dbus-sysdeps-util.c: added win32 related tests
14
15 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
16
17         * dbus/dbus-string.c (_dbus_string_pop_line),
18         bus/desktop-file.c (parse_section_start,
19         parse_comment_or_blank,parse_key_value,): uses
20         _dbus_string_find_eol() to support platform independent eol style.
21
22 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
23
24         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
25         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
26               _dbus_string_find_eol().
27         Approved by: Havoc Pennington.
28
29 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
30
31         * configure.in: Added switch to disable user_database caching.
32
33         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
34         be able disable user_dabase caching.
35
36 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
37
38         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
39         struct. It is unnecessary we have a global one already. Also remove 
40         bus_context_get_user_database function, it is no longer needed.
41         Flush the global database on reload.
42
43         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
44         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
45
46         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
47         Add _dbus_user_database_flush_system. 
48         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
49         Small unrelated change in _dbus_is_a_number: change 
50         _dbus_string_parse_int to _dbus_string_parse_uint. 
51
52         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
53         _dbus_groups_from_uid.
54
55         * bus/policy.c, bus/policy.h: Change call to 
56         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
57         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
58         needs it.
59
60 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
61
62         * bus/signal.c: Fix match_rule_equal errata
63         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
64         <kimmo.hamalainen@nokia.com>)
65
66 2006-11-19  Thiago Macieira  <thiago@kde.org>
67
68         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
69         _dbus_pthread_condvar_wait,
70         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
71         pthread_self() after coming back from a conditional variable
72         wait as well as in one codepath where it was forgotten.
73         Approved by: Havoc Pennington.
74
75 2006-11-17  Havoc Pennington  <hp@redhat.com>
76
77         * update-dbus-docs.sh: allow setting fd.org username via env
78         variable. Make it run autogen with --enable-xml-docs=yes
79         --enable-doxygen-docs=yes so configure will fail if the required
80         tools are missing.
81
82 2006-11-17  Havoc Pennington  <hp@redhat.com>
83
84         * doc/dbus-faq.xml: minor FAQ tweaks
85
86 2006-11-14  Havoc Pennington  <hp@redhat.com>
87         
88         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
89         dbus_get_local_machine_id() to its own file, no substantive
90         changes. There are a couple other things we might want to add that
91         are "misc" so moving out of dbus-connection.[hc] which is big
92         enough already.
93         
94 2006-11-14  Havoc Pennington  <hp@redhat.com>
95
96         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
97         UUID had the timestamp last, but the implementation had it first;
98         move it to last since I think it's a tiny bit nicer (easier to
99         compare at a glance, faster to sort, less code), and will not
100         cause any practical compatibility problems. Also, always convert
101         the timestamp to big endian.
102
103         * doc/dbus-specification.xml: Clean up the docs on the UUID.
104
105         * tools/dbus-uuidgen.1: more prominently say it is not suitable
106         as a replacement for regular uuidgen/RFC4122.
107
108 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
109
110         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
111         the correct value so we don't assert when initalizing recursive threads
112
113         * test/name-test/test-thread-init.c: call dbus_threads_init_default
114         instead of _dbus_threads_init_debug since it is more of a real world
115         test
116
117 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
118
119         * Released 1.0.0
120
121 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
122
123         * AUTHORS: added Peter and Tor of windows porting fame
124
125 2006-11-08  Havoc Pennington  <hp@redhat.com>
126
127         * doc/dbus-specification.xml: add a note about protocol stability
128
129         * doc/TODO: Remove "important for 1.0" section, replace with
130         "important for 1.2" section
131         
132 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
133
134         * README: remove some of the out of date flags
135
136         * doc/TODO: Remove todo items which are done
137
138 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
139
140         * tools/dbus-monitor.c: Handle sigint so we flush stdout
141         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
142
143 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
144
145         * tools/dbus-monitor.1: update the manpage for dbus-monitor
146         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
147
148 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
149
150         * AUTHORS: Update with all people listed in the ChangeLog
151
152 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
153
154         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
155         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
156
157 2006-11-07  Havoc Pennington  <hp@redhat.com>
158
159         * HACKING: Update release instructions to include stuff about
160         stable releases, branching, etc. May not be totally correct,
161         please fix if needed, but keep instructions up-to-date so we do
162         each stable release consistently in the future.
163
164 2006-11-07  Havoc Pennington  <hp@redhat.com>
165
166         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
167         documentation updates. Bump faq/spec versions (not to 1.0; I don't
168         think the spec will be "finished"/1.0 when we ship the 1.0 library).
169
170 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
171
172         * bus/bus.c: Missed patch - pass in the context to the directory watch
173
174 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
175
176         * Released D-Bus 1.0 RC 3(0.95)
177
178 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
179
180         * bus/activation.c (bus_activation_new): don't fail if we can not read
181         the directory as it may not exist
182
183 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
184
185         * bus/config-parser.c (service_dirs_find_dir): use 
186         _dbus_list_get_next_link so we don't get stuck in an infinite loop
187         (start_busconfig_child): move processing of standard_session_servicedirs
188         tags here because they have no content
189         (bus_config_parser_content): check we don't have content in 
190         standard_session_servicedirs tag
191
192 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
193
194         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
195         Packagers need to own this directory
196
197 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
198
199         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
200         <standard_session_servicedirs> tag with a <sevicedir> tag that
201         points to the test service directory
202
203 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
204
205         * configure.in: Add a check for DIR *dirp->dd_fd
206
207         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
208         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
209         of both Solaris and Irix
210
211 2006-11-01  Havoc Pennington  <hp@redhat.com>
212
213         * bus/dbus-daemon.1.in: document standard_session_servicedirs
214
215 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
216
217         * configure.in: expose DBUS_DATADIR
218         
219         * bus/config-parser.c: add the standard_session_servicedirs element
220         to the parser
221         (bus_config_parser_content): process the standard_session_servicedirs
222         element by getting the standard directories from sysdeps and merging
223         them into the service directory list
224         (test_default_session_servicedirs): make sure we get what we expect
225
226         * bus/session.conf.in: replace the servicedir tag with the 
227         standard_session_servicedirs tag
228
229         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
230         dbus-sysdeps.h to avoid circular header dependencies
231
232         * dbus/dbus-sysdeps.h: add the typedef of DBusList
233
234         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
235         which takes a string of directories delimited by colons, parses them 
236         out, appends a suffix and puts them in a list ignoring empty elements
237         (_dbus_get_standard_session_servicedirs): returns the standard 
238         directories for a session bus to look for service activation files
239         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
240         DBUS_DATADIR directories
241
242         * test/data/valid-config-files/many-rules.conf: add the 
243         standard_session_servicedirs tag to the valid config file tests
244
245 2006-10-30  Havoc Pennington  <hp@redhat.com>
246
247         * tools/dbus-launch.1, doc/TODO: capture intent to change the
248         command line options of dbus-launch a bit post 1.0
249
250 2006-10-27  Havoc Pennington  <hp@redhat.com>
251         
252         * dbus/dbus-connection.c (dbus_connection_open_private): document
253         how to choose shared vs. private connections
254
255 2006-10-27  Havoc Pennington  <hp@redhat.com>
256
257         * dbus/dbus-test.c: enclose more of the file in the
258         DBUS_BUILD_TESTS check.
259
260         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
261         DBUS_DISABLE_ASSERT case.
262
263         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
264         that it only works on the server side
265
266         * dbus/dbus-bus.c: add a global lock covering the BusData we
267         attach to each connection
268         (internal_bus_get): lock our access to the BusData
269         (dbus_bus_register): lock the entire registration process
270         with _DBUS_LOCK(bus_datas). If we get the lock and 
271         registration is already complete, silently return (vs. previous
272         behavior of aborting).
273         (dbus_bus_set_unique_name): lock the BusData
274         (dbus_bus_get_unique_name): lock the BusData
275
276 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
277
278         * bus/config-parser.c (service_dirs_find_dir, 
279         service_dirs_append_unique_or_free, 
280         service_dirs_append_link_unique_or_free): New static methods
281         for only appending unique service directory names into
282         the service directory list
283         (merge_included, bus_config_parser_content): Only add unique
284         service directory names into the list
285
286 2006-10-27  Havoc Pennington  <hp@redhat.com>
287
288         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
289         variables volatile, suggested by Thiago. Document struct fields.
290         (PTHREAD_CHECK): remove pthread error checking if assertions are
291         disabled, should reduce the no-assertions case to the bare
292         minimum code.
293
294 2006-10-26  Havoc Pennington  <hp@redhat.com>
295         
296         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
297         to be recursive
298         (_dbus_pthread_mutex_unlock): make it recursive
299         (_dbus_pthread_condvar_wait): save/restore the recursion count
300         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
301
302 2006-10-26  Havoc Pennington  <hp@redhat.com>
303
304         * doc/dbus-specification.xml: clarify the UUID text slightly
305
306         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
307         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
308         in preparation for being able to extend them for e.g. recursive
309         mutexes.
310
311 2006-10-26  Havoc Pennington  <hp@redhat.com>
312
313         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
314         condition variables relate to recursive mutexes.
315         
316         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
317         dbus/dbus-threads.c: Split the platforms-specific thread 
318         implementations into their own files.
319         
320         * dbus/dbus-sysdeps-pthread.c
321         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
322         was backward. Not that anything uses it.
323
324 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
325
326         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
327         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
328         needs to be cleaned up more.
329
330         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
331         up the CREDS issue.
332
333 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
334
335         * configure.in, dbus-1.pc.in: Check to see if thread methods 
336         are in glibc or libpthread and add -lpthread to the link stage 
337         if it is the latter
338
339 2006-10-26  Thiago Macieira  <thiago@kde.org>
340
341         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
342         bug 8780: the connection lock is only required while recording
343         the shared connection, so protect only that code
344         section. Don't require connection_lookup_shared to return a
345         locked connection.
346
347 2006-10-26  Thiago Macieira  <thiago@kde.org>
348
349         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
350         check if get_machine_uuid() returns NULL before proceeding any
351         further: we can't init the X atoms or create a session file
352         name if there is no machine ID.
353         This solves a crash reported by some users if
354         --exit-with-session was used without --autolaunch=<machine-id>
355
356 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
357
358         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
359         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
360
361         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
362         before we run dbus-launch
363
364         * configure.in: define TEST_BUS_BINARY to be the full path to 
365         dbus-daemon in the build root 
366
367 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
368
369         * dbus/Makefile.am:
370         * tools/Makefile.am:
371         * toos/dbus-uuidgen.1:
372                 Move the machine-id file to /var/lib/dbus 
373
374 2006-10-24  David Zeuthen  <davidz@redhat.com>
375
376         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
377         _dbus_assert (thread_init_generation != _dbus_current_generation)
378         not _dbus_assert (thread_init_generation == _dbus_current_generation)
379
380 2006-10-24  Thiago Macieira  <thiago@kde.org>
381
382         * dbus/dbus-sysdeps.h:
383         * dbus/dbus-sysdeps-unix.c: Add function
384         _dbus_make_file_world_readable that chmods a file to 0644.
385
386         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
387         Avoid writing to the static "argv" array, thereby avoiding a
388         COW on the child process.
389
390         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
391         call _dbus_make_file_world_readable on the created file.
392
393 2006-10-23  David Zeuthen  <davidz@redhat.com>
394
395         * dbus/dbus-memory.c: Use atomic variable to protect
396         n_blocks_outstanding otherwise OOM will be reported using SMP on
397         some arches
398         
399         * bus/dispatch.c: Add missing end of line characters
400
401         * bus/desktop-file.c (parse_section_start, parse_key_value) 
402         (bus_desktop_file_load): Propertly handle OOM
403
404         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
405         thread_init_generation equals _dbus_current_generation, not 0
406
407 2006-10-22  Havoc Pennington  <hp@redhat.com>
408
409         * dbus/dbus-connection-internal.h: move prototype of
410         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
411         it isn't in a public header and doesn't end up in the DBusBus
412         group in Doxygen
413
414 2006-10-21  Havoc Pennington  <hp@redhat.com>
415
416         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
417         the tarball if packagers want to run it
418
419         * cleanup-man-pages.sh: Add a script which munges all the internal
420         API man pages out of the Doxygen output. This reduces the size of
421         the installed man pages from 7 to 2 megs, and avoids
422         namespace-polluting pages. Right now (like Doxygen) this script
423         isn't in the build, it's something packagers can do manually.
424
425 2006-10-21  Havoc Pennington  <hp@redhat.com>
426
427         * dbus/dbus-connection.h: don't include the watch/timeout
428         functions in connection section
429
430 2006-10-21  Havoc Pennington  <hp@redhat.com>
431
432         * Documentation! Whee! Doxygen now 100% silent. If you make it
433         angry again, you will be punished.
434         
435 2006-10-21  Havoc Pennington  <hp@redhat.com>
436
437         * More documentation - all public API now documented according to
438         Doxygen
439
440 2006-10-21  Havoc Pennington  <hp@redhat.com>
441
442         * Document a bunch of undocumented stuff
443         
444 2006-10-21  Havoc Pennington  <hp@redhat.com>
445
446         * Clean up Doxygen group markers for public API so Doxygen finds
447         everything (not comprehensively fixed for private API).
448         Means all remaining Doxygen warnings are just about missing docs
449         and thus pretty simple to resolve.
450         
451 2006-10-21  Havoc Pennington  <hp@redhat.com>
452         
453         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
454
455         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
456         as DBUS_GNUC_DEPRECATED
457
458 2006-10-21  Havoc Pennington  <hp@redhat.com>
459
460         * Move all private API into the private Doxygen group sections of
461         the files, so they don't show up in the public API docs
462         
463 2006-10-21  Havoc Pennington  <hp@redhat.com>
464
465         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
466         dbus_message_iter_get_array_len().
467
468         * throughout: documentation improvements.
469
470 2006-10-20  Havoc Pennington  <hp@redhat.com>
471
472         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
473         matter, and the message-loader-breaker thing since nobody is going
474         to do it.  Add an item to 1.0 about supporting recursive locks
475         in dbus_threads_init_default() though, since it should be easy.
476
477         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
478         Fix this in the !dispatch case to avoid busy-looping after
479         disconnection
480
481         * More misc docs improvements
482
483 2006-10-19  Havoc Pennington  <hp@redhat.com>
484
485         * more Doxygen-related fixes (lots of moving things from the
486         public to internal section in dbus-connection.c)
487
488 2006-10-19  Havoc Pennington  <hp@redhat.com>
489
490         * Fix a pile of Doxygen warnings and missing docs
491
492 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
493
494         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
495         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
496         instead of a void *.  kqueue uses this to get the context's loop
497         while the other modules ignore the parameter.  This allows us to
498         avoid platform conditionals
499
500         * bus/bus.c (process_config_postinit): Pass in the context to the 
501         watch
502
503 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
504
505         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
506         when starting the system bus
507
508 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
509
510         * configure.in: More fixups for cross compile (Patch from 
511         Marco Pracucci <development at pracucci dot com>)
512
513 2006-10-17  Havoc Pennington  <hp@redhat.com>
514
515         * tools/dbus-send.c (main): don't close shared connection, fix
516         from Timo Hoenig
517
518 2006-10-17  Havoc Pennington  <hp@redhat.com>
519
520         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
521
522         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
523         since realistically it doesn't look like we'll be changing it
524         anymore.
525
526 2006-10-17  Havoc Pennington  <hp@redhat.com>
527
528         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
529         be used for return_if_fail type warnings; prefixes the pid, and
530         fatal by default.
531
532 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
533
534         * configure.in: Released 1.0 RC 2(0.94)
535         Add check for -fPIC and enable it if available
536
537 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
538
539         * doc/TODO: Remove the check TODO item
540
541 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
542
543         * dbus-transport-socket.c (exchange_credentials):
544         Print out more detailed errors if reading or sending
545         credentials fail (Patch from Julio M. Merino Vidal 
546         <jmmv at NetBSD dot org>)
547
548 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
549
550         * configure.in: when checking for posix getpwnam_r assume true
551         for cross compiles
552
553 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
554
555         * configure.in: Check for gethostbyname first before we check for it
556         in libnsl.  On gnu systems it is implemeneted 
557
558 2006-10-13  Havoc Pennington  <hp@redhat.com>
559
560         * dbus/dbus-connection.c
561         (dbus_connection_send_with_reply_and_block): fix to handle closed
562         connections, from Tambet Ingo bug #8631
563
564 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
565
566         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
567
568 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
569
570         * test/name-test/Makefile.am: don't link against both libdbus and
571         libdbus-convenience
572
573 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
574
575         * configure.in: check for dirfd even if it is a macro
576         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
577
578 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
579
580         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
581         avoid using dirfd on systems that don't have dirfd 
582         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
583
584 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
585
586         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
587         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
588
589         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
590         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
591         macro because _dbus_abort calls it
592
593         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
594         works
595
596 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
597
598         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
599         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
600
601 2006-10-02  Thiago Macieira  <thiago@kde.org>
602
603         * tools/dbus-launch.c (main): make it complain and abort
604         execution in case an unknown option is given. Also, process
605         the '--' argument as the end of arguments.
606
607 2006-10-01  Havoc Pennington  <hp@redhat.com>
608
609         * tools/dbus-launch.c (print_variables): if no syntax is given,
610         don't print something that's sort-of-half-sh-syntax, just print
611         a plain key-value pairs thing.
612
613         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
614         the local machine representation (but still have the hostname in
615         the display). Remove the hostname from the display if it is
616         localhost. Change session files to be named
617         ~/.dbus/session-bus/machine-display. Change X atoms to be
618         underscore-prefixed so nobody whines about ICCCM compliance.
619         Otherwise name them the same as the env variables.
620         Change session file format to include key-value pairs and an
621         explanatory comment. Keys are the same as the env variables.
622         (set_address_in_x11): X property format can't depend on
623         sizeof(pid_t) on a particular machine, fix to always be 32 bits
624
625         * tools/dbus-launch.c: make --autolaunch take a machine id
626         argument. If --autolaunch is used with a program to run, complain
627         for now (but add a FIXME). Also, don't look for existing bus if 
628         there's a program to run (but add a FIXME).
629
630         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
631         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
632         just to get this, and avoids duplicating uuid-reading code).
633
634         * tools/dbus-launch.1: clarify various things
635         
636 2006-10-01  Havoc Pennington  <hp@redhat.com>
637
638         * test/test-service.c (path_message_func): remove broken extra
639         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
640
641         * test/test-shell-service.c (path_message_func): same fix
642         
643         * dbus/dbus-connection.c
644         (_dbus_connection_get_dispatch_status_unlocked): break up the
645         function a little for clarity and fix the notification of
646         dbus-bus.c to not require dispatch to be complete
647
648         * dbus/dbus-connection.c (dbus_connection_unref): improve the
649         warning when you try to finalize an open connection.
650         
651 2006-10-01  Havoc Pennington  <hp@redhat.com>
652
653         * dbus/dbus-bus.c
654         (internal_bus_get): only weak ref the connection; this means 
655         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
656         called safely in any context
657         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
658         unref
659
660         * dbus/dbus-connection.c
661         (_dbus_connection_get_dispatch_status_unlocked): move
662         _dbus_bus_notify_shared_connection_disconnected_unlocked here
663         when queuing Disconnected instead of when the Disconnected message
664         arrives, so dbus_bus_get() won't return closed connections.
665         
666 2006-10-01  Havoc Pennington  <hp@redhat.com>
667
668         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
669         Add a hack to make DBusNewConnectionFunction work right.
670
671         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
672         the hack here. Also, fix the todo about refcount leak.
673         
674         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
675         and use the hack here
676         
677         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
678         "shareable" flag; this was completely broken, since it meant 
679         dbus_connection_open() returned a connection of unknown
680         shared-ness. Now, we always hold a ref on anything opened 
681         as shareable.
682
683         Move the call to notify dbus-bus.c into
684         connection_forget_shared_unlocked, so libdbus consistently forgets
685         all its knowledge of a connection at once. This exposed numerous
686         places where things were totally broken if we dropped a ref inside
687         get_dispatch_status_unlocked where
688         connection_forget_shared_unlocked was previously, so move
689         connection_forget_shared_unlocked into
690         _dbus_connection_update_dispatch_status_and_unlock. Also move the
691         exit_on_disconnect here.
692
693         (shared_connections_shutdown): this assumed weak refs to the
694         shared connections; since we have strong refs now, the assertion 
695         was failing and stuff was left in the hash. Fix it to close
696         still-open shared connections.
697         
698         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
699         debug pipe connections
700         
701         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
702         dbus-bus.c if the closed connection is in fact shared
703         (_dbus_connection_close_possibly_shared): rename from 
704         _dbus_connection_close_internal
705         (dbus_connection_close, dbus_connection_open,
706         dbus_connection_open_private): Improve docs to explain the deal
707         with when you should close or unref or both
708
709         * dbus/dbus-bus.c
710         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
711         from _dbus_bus_check_connection_and_unref_unlocked and modify to
712         loop over all connections
713
714         * test/test-utils.c (test_connection_shutdown): don't try to close
715         shared connections.
716
717         * test/name-test/test-threads-init.c (main): fix warnings in here
718
719         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
720         env variable to cause blocking waiting for gdb; drop
721         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
722         unconditionally.
723
724         * configure.in: add -export-dynamic to libtool flags if assertions enabled
725         so _dbus_print_backtrace works.
726
727         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
728         instead of _dbus_verbose to print the backtrace, and diagnose lack 
729         of -rdynamic/-export-dynamic
730         
731 2006-09-30  Havoc Pennington  <hp@redhat.com>
732
733         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
734         (internal_bus_get): fix screwy code formatting. whoever committed
735         that was not paying attention!
736
737 2006-09-30  Havoc Pennington  <hp@redhat.com>
738
739         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
740         reflect addition of interfaces.
741
742         * doc/dbus-specification.xml: describe a new
743         org.freedesktop.DBus.Peer.GetMachineId method
744
745         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
746         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
747         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
748         at end of skip_white
749         (_dbus_string_chop_white): new function
750
751         * bus/connection.c (bus_connections_setup_connection): call
752         dbus_connection_set_route_peer_messages.
753
754         * dbus/dbus-connection.c
755         (_dbus_connection_peer_filter_unlocked_no_update): modify to
756         support a GetMachineId method.
757
758         Also, support a new flag to let the bus pass peer methods through
759         to apps on the bus, which can be set with
760         dbus_connection_set_route_peer_messages.
761
762         Finally, handle and return an error for anything unknown on the
763         Peer interface, which will allow us to extend the Peer interface
764         in the future without fear that we're now intercepting something
765         apps were wanting to see.
766         
767         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
768         dbus/dbus-uuidgen.c
769
770         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
771         binary here, since most of the code is already in libdbus
772
773         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
774         uuid from the system config file
775
776         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
777         (_dbus_read_uuid_file_without_creating) 
778         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
779         uuid-related functions, partly factored out from dbus-server.c
780
781         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
782         DBUS_ERROR_FILE_EXISTS instead of EEXIST
783
784         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
785
786         * tools/dbus-cleanup-sockets.1: explain what the point of this
787         thing is a bit more
788
789         * autogen.sh (run_configure): add --config-cache to default
790         configure args
791
792         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
793         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
794
795         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
796         don't try to save address, fixes crash in make check
797         
798 2006-09-30  Thiago Macieira  <thiago@kde.org>
799
800         * configure.in: add DBUS_BINDIR as a #define to C source code.
801
802         * tools/dbus-launch.c
803         * tools/dbus-launch.h
804         * tools/dbus-launch-x11.c:
805         * tools/dbus-launch.1: Add the --autolaunch option to
806         dbus-launch, which makes it scan for an existing session
807         started with --autolaunch. With that option, it also creates
808         an X11 window and saves the bus address and PID to it.
809
810         * dbus/dbus-sysdeps.h:
811         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
812         a function that runs "dbus-launch --autolaunch" to retrieve
813         the running D-Bus session address (or start one if none was running)
814
815         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
816         address protocol, which tries to get the running session from
817         dbus-launch.
818
819         * dbus/dbus-bus.c:
820         * dbus/dbus-internals.h: Make "autolaunch:" be the default
821         D-Bus session bus address.
822
823         * dbus/dbus-connection.c: Fix horrible typo in error message.
824
825 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
826
827         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
828
829 2006-09-17  Havoc Pennington  <hp@redhat.com>
830
831         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
832         fix so that if unix_user_function is set on windows, we still
833         do the default check that the auth identity matches the bus identity
834
835 2006-09-16  Havoc Pennington  <hp@redhat.com>
836
837         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
838         to _dbus_transport_open_platform_specific,
839         _dbus_transport_open_socket,
840         and _dbus_transport_open_debug_pipe
841
842         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
843
844 2006-09-16  Havoc Pennington  <hp@redhat.com>
845
846         Attempt auditing public API to remove all cases where a Unix
847         function returns weird emulated goo to Windows. This probably 
848         breaks the bus daemon on Windows, to fix it again we may 
849         need to stop processing unix-specific config options on Windows,
850         and may need to add Windows-specific public API or config options.
851         
852         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
853         to reflect added interfaces; should not break soname.
854         
855         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
856         not invoke unix user function on Windows. Kind of a hacky fix, but 
857         we don't want a "unix uid" leaking out on Windows.
858
859         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
860         to get the socket fd on Windows or UNIX
861         (dbus_connection_get_unix_fd): make this always fail on Windows
862
863 2006-09-16  Havoc Pennington  <hp@redhat.com>
864
865         * dbus/dbus-server.c (dbus_server_listen): change how this works
866         to be able to delegate to a set of handlers that can succeed,
867         fail, or choose not to handle. Allows us to have 
868         dbus_server_listen_platform_specific.
869
870         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
871         factor out the tcp socket stuff to be used on windows, leaving
872         unix domain socket only in dbus-socket-unix.c
873
874         * dbus/dbus-transport-socket.c
875         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
876         stuff to be used on windows, leaving unix domain socket only 
877         in dbus-transport-unix.c
878
879         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
880         temporary hack to be sure this fails on windows
881         (dbus_connection_get_unix_process_id): ditto
882
883 2006-09-16  Havoc Pennington  <hp@redhat.com>
884
885         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
886         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
887         _dbus_open_socket so the domain/type/protocol from system headers
888         are not required. This is kind of pointless though unless we move
889         part of _dbus_connect_tcp_socket into sysdeps.c instead of
890         sysdeps-unix.c, which would mean adding a wrapper around
891         bind/listen/etc.
892         Also, add DBusError to the socket-opening functions so they 
893         don't require use of errno.
894
895 2006-09-16  Havoc Pennington  <hp@redhat.com>
896
897         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
898         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
899
900         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
901         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
902         functions specifically for sockets only, and move generic 
903         read/write/open/close into unix-specific code.
904
905 2006-09-14  Havoc Pennington  <hp@redhat.com>
906
907         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
908         complaint about accessing revents when poll returns 0, from Julian Seward.
909
910 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
911
912         * Released 1.0 RC 1 (0.93) 
913
914 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
915
916         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
917         use _dbus_close instead of close
918
919 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
920
921         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
922         credentials.  Fixes "external" authentication under e.g. NetBSD
923         which does not support any other socket credentials mechanism.
924         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
925
926 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
927
928         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
929         dbus_threads_init and be used by the dbus mutex functions to
930         avoid deadlocks.
931
932         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
933
934 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
935
936         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
937         use threadsafe readdir_r instead of readdir
938
939 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
940
941         * dbus-threads.c (dbus_threads_init_default): New method for
942         initializing the internal thread implementation (Patch from
943         Alexander Larsson <alexl at redhat dot com>)
944
945 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
946
947         * remove a bunch of todo items from the 1.0 list
948
949 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
950
951         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
952         key not found
953
954 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
955
956         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
957         complex debugging code
958
959         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
960         between the test suite ifdefs
961         (_dbus_verbose_bytes): return if verbosity is not enabled 
962
963 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
964
965         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
966         remove DBusMark
967
968 2006-09-10  Havoc Pennington  <hp@redhat.com>
969
970        patch mostly by Peter Kümmel, bug #8211
971         
972         * dbus/dbus-sysdeps-unix.c: new file, which splits out
973         unix-specific stuff in dbus-sysdeps.c
974
975         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
976         and move unix-specific stuff to dbus-sysdeps-unix.c
977
978         * configure.in: check HAVE_ERRNO_H
979         
980 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
981
982         * bus/test-main.c (main): Initialize threading during tests
983
984         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
985         Unlock connection on error
986         (generate_local_error_message): static method for generating
987         an error message when we don't have a message to reply to
988         (_dbus_connection_block_pending_call): Send a disconnect error
989         instead of just a timeout (NULL) when the bus gets disconnected
990         while blocking for a reply.
991         
992 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
993
994         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
995         filters (Patch from Kimmo Hämäläinen 
996         <kimmo dot hamalainen at nokia dot com>)
997
998 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
999
1000         * dbus/dbus-connection-internal.h: Add prototype for 
1001         _dbus_connection_test_get_locks to remove warning
1002
1003 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1004
1005         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1006         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1007         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1008
1009 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1010
1011         * Clean up close calls to use _dbus_close (Patch from 
1012         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1013
1014 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1015
1016         * doc/TODO:
1017         - Remove pending call locking todo item
1018         - dbus_connection_open now holds hard ref.  Remove todo item
1019         - do proper locking on _dbus_bus_check_connection_and_unref
1020           and handle DBUS_BUS_STARTER. Remove todo item
1021         - Warn on closing of a shared connection.  Remove todo item
1022
1023         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1024         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1025         so we don't get the warning when closing shared connections
1026
1027         * test/test-service.c, test/test-shell-service.c: Applications
1028         don't close shared connections themselves so we unref instead of
1029         close
1030
1031         * test/test-utils.c (test_connection_shutdown): Close the connection
1032
1033         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1034         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1035         method on a locked connection.  
1036         Make sure we call _dbus_connection_unref_unlocked instead of 
1037         dbus_connection_unref also.
1038         Handle DBUS_BUS_STARTER correctly
1039
1040         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1041         Mark as shared and hard ref the connection
1042         (connection_forget_shared_unlocked): Remove the hard ref from the 
1043         connection
1044         (_dbus_connection_close_internal_and_unlock):  New internal function
1045         which takes a locked connection and unlocks it after closing it
1046         (_dbus_connection_close_internal): New internal function which acts
1047         like the origonal dbus_connection_close method by grabbing a connection
1048         lock and calling _dbus_connection_close_internal_and_unlock
1049         (dbus_connection_close): Public close method, warns when the app
1050         trys to close a shared connection
1051
1052 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1053
1054         * bus/driver.c:
1055         (bus_driver_generate_introspect_string): New method for populating
1056         a DBusString with the introspect data
1057         (bus_driver_handle_introspect): Move introspect generation code to 
1058         bus_driver_generate_introspect_string
1059
1060         * bus/main.c:
1061         (introspect): New function which prints out the intropect data and
1062         exits
1063         (main): Add a --introspect switch
1064
1065 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1066
1067         * doc/TODO: Removed dtd publishing item.  
1068         It seems the dtd has already been added at
1069         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1070
1071 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1072
1073         * doc/TODO, various source files: Audited todo's and FIXME's and
1074         prepended the ones we should be looking at with 1.0.  Those
1075         prepended with 1.0? need clerification or might not be needed
1076         for 1.0
1077
1078 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1079
1080         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1081         NULL in the public API (Patch from Kimmo Hämäläinen 
1082         <kimmo dot hamalainen at nokia dot com>)
1083
1084 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1085
1086         * configure.in: Fix for OS-X compile time endian issues (patch from
1087         Benjamin Reed <ranger at befunk dot com>)
1088
1089 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1090
1091         * configure.in: Check for no-common compiler flag (OS-X fix from
1092         Benjamin Reed <ranger at befunk dot com>)
1093
1094 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1095
1096         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1097         <fcrozat at mandriva dot com>)
1098
1099 2006-08-29  Havoc Pennington  <hp@redhat.com>
1100
1101         * test/test-service.c (path_message_func): fix lack of return value
1102
1103         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1104         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1105         any more sense than on anything else in this file.
1106         (_dbus_get_tmpdir): add const to return value, and keep the
1107         results of the various getenv around in a static variable.
1108
1109 2006-08-29  Havoc Pennington  <hp@redhat.com>
1110
1111         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1112         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1113
1114 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1115
1116         * test/Makefile.am: change find to use syntax that works with non
1117         gnu versions of find
1118
1119 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1120
1121         * dbus/dbus-transport.c: fix invalid deref when checking if
1122         a vtable method exists (Patch from Christian Ehrlicher 
1123         <ch dot ehrlicher at gmx dot de>)
1124
1125 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1126
1127         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1128         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1129         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1130         <bernard at brenda-arkle dot demon dot co dot uk>)
1131
1132 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1133
1134         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1135         default case
1136
1137 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1138
1139         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1140         it works on any system providing this interface, not only FreeBSD.
1141         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1142
1143 2006-08-20  Havoc Pennington  <hp@redhat.com>
1144
1145         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1146         the docs
1147
1148 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1149
1150         * Released 0.92 
1151
1152 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1153
1154         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1155         to reflect the init late change
1156
1157         * bus/bus.c (bus_context_new): Check user before we fork so we can
1158         print out an error message a user will be able to see
1159
1160 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1161
1162         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1163
1164         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1165         Add two more global locks for use on windows platforms.  These are
1166         unused on non-windows platforms but are not ifdefed out to avoid
1167         potential bugs (i.e. the few bytes lost does not warrent the extra
1168         maintanence and complexity that having seperate sets of locks would
1169         cause)
1170
1171 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1172
1173         * bus/services.c (bus_registry_acquire_service): Return an error
1174         when an application tries to register the org.freedesktop.DBus Bus Name
1175
1176         * bus/services.c (bus_registry_release_service): Return an error
1177         when an application tries to release the org.freedesktop.DBus Bus Name
1178
1179 2006-08-17  Alp Toker  <alp@atoker.com>
1180
1181         * doc/dbus-specification.xml: Fix some minor typos.
1182
1183 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1184
1185         * configure.in: use $with_init_scripts instead of $operating_system
1186         to determine where to store the pid since the init scripts manipulate 
1187         the pid file (patch from Marcelo Ricardo Leitner 
1188         <marcelo dot leitner at terra dot com dot br>.  
1189
1190 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1191
1192         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1193         static DBusList *uninitialized_condvar_list to support new late 
1194         initialization threading model.  In this model threads can be initialized
1195         even after the D-Bus API has been used but still needs to be initialized 
1196         before the second thread has been started.  Mutexes and condvar addresses
1197         are stored in the two static lists and are replaced with actuall locks
1198         when threads are initalized.
1199         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1200         the location into the static list
1201         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1202         from the static list and freeing the mutex
1203         (_dbus_condvar_new_at_location): New method for creating a conditional 
1204         variable and placing the location into the static list
1205         (_dbus_condvar_free_at_location): New method for removing a conditional
1206         variable location from the static list and freeing the conditional variable 
1207         (init_uninitialized_locks): Atomic method which goes through the static 
1208         lists of mutex and condvar location and updates them with actuall locks
1209         (init_global_locks): changed to init_locks
1210         
1211         * dbus/dbus-connection.c:
1212         (_dbus_connection_test_get_locks): New method for tests to check connections
1213         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1214         condvar API
1215         (dbus_connection_allocate_data_slot): Pass in the global lock address
1216         to _dbus_data_slot_allocator_alloc
1217
1218         * dbus/dbus-dataslot.c:
1219         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1220         instead of the mutex itself
1221
1222         * dbus/dbus-message.c:
1223         (dbus_message_allocate_data_slot): Pass in the global lock address
1224         to _dbus_data_slot_allocator_alloc
1225
1226         * dbus/dbus-pending-call.c:
1227         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1228         to _dbus_data_slot_allocator_alloc
1229
1230         * dbus/dbus-server.c:
1231         (_dbus_server_init_base): Use the new at_location mutex API
1232         (dbus_server_allocate_data_slot): Pass in the global lock address
1233         to _dbus_data_slot_allocator_alloc
1234
1235         * test/name-test/test-threads-init.c: New test case for late thread
1236         initialization
1237
1238 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1239
1240         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1241         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1242         causes compile problems when asserts are turned off
1243         Keeping _dbus_warn for printing out the message so even if
1244         asserts are turned off the user gets the messages that something is 
1245         wrong 
1246
1247 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1248
1249         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1250
1251         * bus/services.c (bus_service_list_queued_owners):
1252         Add a pointer cast to fix compiler warning
1253
1254         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1255         return a NULL instead of FALSE since the return type
1256         is not expecting a boolean
1257
1258         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1259         Remove unused variable
1260
1261         * dbus/dbus-marshal-recursive-util.c (node_new):
1262         return a NULL instead of FALSE since the return type
1263         is not expecting a boolean
1264
1265         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1266         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1267         because we are expecting a pointer not a boolean
1268
1269         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1270         add void as the parameter so some compilers
1271         don't complain
1272
1273         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1274           _dbus_transport_new_for_tcp_socket):
1275         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1276         because we are expecting a pointer not a boolean
1277
1278         * test/shell-test.c (test_command_line):
1279         cast the second argument to _dbus_list_append to avoid compiler
1280         warnings
1281
1282         * test/test-names.c (main): remove unused variable
1283
1284         * test/test-service.c (check_hello_from_self_reply):
1285         Initialize echo_message and echo_reply to NULL
1286         
1287         * test/test-shell-service.c (handle_echo):
1288         Remove unused variable and cast the third parameter passed to
1289         dbus_connection_get_object_path_data to avoid compiler warrnings
1290
1291         * test/name-test/test-names.c (clear_message_queue):
1292         Remove unused function
1293
1294         * test/name-test/test-pending-call-dispatch.c:
1295         Fix format string in printf
1296
1297
1298 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1299
1300         * dbus/dbus-bus.c:
1301         * test/name-test/test-names.c:
1302         Remove test method dbus_bus_connection_get_unique_name because 
1303         we already have public method dbus_bus_get_unique_name that 
1304         does the exact same thing
1305
1306 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1307
1308         * dbus/dbus-signature.c:
1309         fix typos in Julio's previous patch which cause make check to fail
1310
1311 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1312
1313         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1314         In any case it was wrong since this is a test checking to see if
1315         address parsing is correct.  There was no need to get the true
1316         tmp directory.  
1317
1318 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1319
1320         * dbus/dbus-macros.h: Revert the addition of stddef.h
1321         as we should not be adding it to library headers 
1322
1323 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1324
1325         * dbus/dbus-signature.c:
1326         Fix the unit tests so that they work if assertions are not enabled.
1327         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1328
1329 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1330
1331         * tools/run-with-tmp-session-bus.sh:
1332         * test/name-test/run-test.sh:
1333         Remove bashisms (patch from Julio M. Merino Vidal
1334         <jmmv at NetBSD dot org>)
1335
1336 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1337
1338         * configure.in: add a version (>= 2.6.0) check for libxml2
1339
1340 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * configure.in: make sure the compiler supports -Wfloat-equal
1343         
1344         * bus/dir-watch-dnotify.c: move functional code after 
1345         variable declerations (C99 fix)  (patches from Jens Granseuer
1346         <jensgr at gmx dot net>
1347
1348 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1349
1350         * dbus/dbus-macros.h:
1351         add #include <stddef.h> so that Sun compilers don't complain about
1352         the defining NULL
1353
1354 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * dbus/dbus-sysdeps.c:
1357         * dbus/dbus-address.c:
1358         * bus/activation.c:
1359         * test/shell-test.c:
1360         don't hardcode tmp directory (patch from Dave Meikle 
1361         <dmk at davemeikle dot co dot uk>)
1362
1363 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1366         Change an assert to a detailed warning and abort.  
1367         When allocator->lock != mutex it indicates that the user has failed
1368         to initalize threads before using the D-Bus library.  This warning
1369         helps the user identify the issue and fix their app.
1370
1371 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1372
1373         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1374         with cleanups of bugs found from Coverity reports:
1375
1376         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1377         close the file on error to avoid a leak
1378
1379         * bus/expirelist.c (bus_expire_list_test):
1380         Check for NULL on dbus_new0
1381
1382         * bus/activation.c (update_directory):
1383         remove dead code
1384
1385         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1386         Fix some leaks
1387
1388         * bus/bus.c (process_config_every_time):
1389         Fixed a leak
1390
1391         * bus/desktop-file.c (parse_key_value):
1392         Fixed leak
1393
1394         * bus/selinux.c (bus_selinux_id_table_insert):
1395         Fixed leak
1396
1397 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1398
1399         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1400         remove dead code
1401
1402 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1405         #!/bin/bash
1406
1407 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * Doxyfile.in: fix the INPUT line so we can generate docs 
1410         when sourcedir != builddir (patch from Cygwin Ports maintainer
1411         <yselkowitz at users dot sourceforge dot net>
1412
1413 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1414
1415         * dbus/dbus-sysdeps.h:
1416         * dbus/dbus-sysdeps.c: 
1417         * dbus/dbus-string.c: 
1418         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1419         GLib's function which does the same thing
1420
1421         * configure.in:
1422         * bus/Makefile.am:
1423         * bus/dir-watch-default.c:
1424         * bus/dir-watch-dnotify.c:
1425         * bus/dir-watch-kqueue.c:
1426         Add kqueue directory watching for freebsd and split the directory
1427         watching code into seperate files per method/arch
1428         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1429
1430 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1431
1432         * configure.in:
1433         * tools/Makefile.am:
1434         * tools/dbus-launch.c:
1435         * bus/Makefile.am:
1436         allow --with-dbus-daemondir switch to be used to make the
1437         daemon install to a seperate bindir like /usr/libexec
1438         (patch from Brian Cameron <brian dot cameron at sun dot com)
1439
1440 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1441
1442         * bus/Makefile.am (install-data-hook): removed the slash after 
1443         $(DESTDIR) so we don't get the double slash which does not work
1444         in windows (patch from Andras Porjesz 
1445         <andras dot porjesz at siemens dot com>)
1446
1447 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1448
1449         * dbus/dbus-sysdeps.h:
1450         * dbus/dbus-sysdeps.c: 
1451           add _dbus_printf_length (patch from Peter Kümmel 
1452           <syntheticpp at gmx dot net>)
1453
1454 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1455
1456         * dbus/dbus-internals.c: unistd.h is not used 
1457         (_dbus_verbose_real): only enable verbose printing 
1458         if DBUS_VERBOSE environment var is set to '1'
1459         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1460
1461 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1462
1463         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1464         so we still compile on older gcc (patch from Frederic Peters 
1465         <fpeters at 0d dot be>
1466
1467 2006-08-04  Havoc Pennington  <hp@redhat.com>
1468
1469         * configure.in: add -Wdeclaration-after-statement
1470
1471         * dbus/dbus-connection.c: change all the pending call stuff to
1472         reflect the fact that pending call operations use the connection
1473         lock
1474
1475         * dbus/dbus-pending-call.c: add locking here
1476
1477         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1478         field const consistent with how message field is done
1479
1480 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1481
1482         * s/D-BUS/D-Bus/g
1483
1484 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1485
1486         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1487         <in7y118 at public.uni-hamburg dot de> - fix invalid
1488         read/write reported by valgrind
1489
1490 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1491
1492         * Released 0.91
1493
1494 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1495
1496         * dbus/dbus-connection.c:
1497         (_dbus_connection_attach_pending_call_unlocked):
1498         (connection_timeout_and_complete_all_pending_calls_unlocked):
1499         Make sure we set timeout_added on pending calls to FALSE when
1500         we remove the timeout from the connection
1501
1502 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1503
1504         * Removed some extra bindings stuff lingering around (thanks timo)
1505         * dbus-pendingcall.c (_dbus_pending_call_new): 
1506         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1507         when we tried to take a lock on an already locked connection
1508
1509 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1510
1511         * Released 0.90
1512
1513 2006-07-17  Havoc Pennington  <hp@redhat.com>
1514
1515         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1516         ints, reported by Owen Taylor
1517
1518 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1519
1520         * doc/TODO:
1521         * dbus/dbus-bus.c:
1522         * dbus-errors.c:
1523         * dbus/dbus-marshal-validate.c:
1524           Removed TODO items which were fixed or are no longer relevent
1525
1526 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1527
1528         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1529         Remove stray files from the stripped bindings
1530
1531 2006-07-16  Havoc Pennington  <hp@redhat.com>
1532
1533         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1534         Improve the error message on reply timeout
1535
1536 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1537
1538         * Remove all bindings
1539
1540 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1541
1542         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1543         and set pending_reply out arg to NULL is connection is disconnected
1544         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1545         static method for cleaning up pending calls on disconnect
1546         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1547         calls queued timeouts on disconnect 
1548
1549          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1550         Remove 
1551
1552 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1553
1554         * bus/activation.[ch] (bus_activation_list_services): new function to 
1555         get the list of services that can be activated
1556
1557         * bus/dispatch.c: test coverage for the new bus method
1558         ListActivatableNames
1559
1560         * bus/driver.c: new bus method ListActivatableNames to get the list of
1561         services that can be activated
1562
1563         * doc/dbus-specification.xml: ListActivatableNames method documentation
1564
1565 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1566         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1567         source files
1568
1569 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1570         * dbus/dbus-message-factory.c:
1571         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1572
1573 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1574         * dbus/dbus-connection-internal.h:
1575         * dbus/dbus-connection.c:
1576         * file dbus/dbus-pending-call.c:
1577         * dbus/dbus-pending-call.h:
1578         Make DBusPendingCall an opaque type even to D-Bus internals
1579
1580 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1581
1582         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1583         connection_close
1584
1585         * dbus/dbus-connection.c: include dbus-bus.h
1586         (_dbus_connection_read_write_dispatch): make static
1587
1588 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1589
1590         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1591         function
1592         (dbus_connection_dispatch): On disconnect unref any shared connections
1593
1594         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1595         for cleaning up shared connections on disconnect
1596         (internal_bus_get): get a hard refrence to shared connections when
1597         they are created
1598         
1599         * doc/TODO: Remove items which are no longer relevent or have been fixed
1600         Split 1.0 todo items with a 0.90 freeze todo list
1601  
1602 2006-06-14  Ross Burton  <ross@openedhand.com>
1603
1604         * glib/dbus-gobject.c:
1605         Free a leaking GArray (surely not!) in dbus_g_method_return.
1606
1607 2006-06-14  Ross Burton  <ross@openedhand.com>
1608
1609         * tools/Makefile.am:
1610         * tools/dbus-monitor.c:
1611         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1612         Habacker).
1613         
1614 2006-06-14  Ross Burton  <ross@openedhand.com>
1615
1616         * tools/dbus-print-message.c:
1617         Also print the object path when outputting signals or method calls.
1618
1619 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1620
1621         * qt/src/Makefile.am: install the qdbus.h header.
1622         This allows people to actually use the installed code.
1623
1624 2006-06-12  Ross Burton  <ross@openedhand.com>
1625
1626         * glib/dbus-gproxy.c:
1627         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1628
1629 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1630
1631         * Released 0.62
1632
1633 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1634
1635         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1636         break pedantic builds. Closes bug 6043 (patch approved by
1637         Havoc back in February).
1638
1639 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1640
1641         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1642         that took a QDBusMessage parameter.
1643         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1644         * qt/tools/dbus.cpp: Don't use automatic call because we might
1645         be calling an async method: request a reply.
1646
1647 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1648
1649         * test/qt/*: Update the testcases, including testing the new
1650         functionality of sending null QByteArray and QString over the
1651         bus. Add new headertest test and restore the old
1652         qdbusxmlparser test.
1653
1654 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1655
1656         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1657         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1658
1659         * qt/examples/Makefile.am:
1660         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1661         form.
1662
1663         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1664         QByteArray() (nulls) over the bus.
1665         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1666         the one that has the signature suffix stripped.
1667         * qt/src/qdbusreply.h: Make some methods const.
1668
1669 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1670
1671         Patch from Timo Hoenig <thoenig@suse.de>.
1672
1673         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1674         required during build to EXTRA_DIST.
1675         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1676         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1677         * configure.in: Fix "make dist", take care that the Makefile for
1678         qt/dbus is being generated.
1679
1680 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1681
1682         * bus/bus.c: Fix eavesdropping on method calls
1683
1684 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1685
1686         * configure.in:
1687         * dbus/dbus-userdb-util.c:
1688         Add Solaris console owner patch from Artem Kachitchkine
1689
1690 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1691
1692         * qt/Makfile.am:
1693         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1694         reorganisation. Thanks to Timo Hoenig for pointing this out.
1695
1696 2006-06-06  Robert McQueen  <robot101@debian.org>
1697
1698         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1699           call to dbus_g_type_get_struct.
1700
1701 2006-06-06  Robert McQueen  <robot101@debian.org>
1702
1703         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1704           pointers were put into a GPtrArray-based specialised collection, and
1705           then freed along with the array. GValues which you add into
1706           collections or maps which have the NOCOPY flag set are assumed to not
1707           belong to the caller, so rather than the existing pointer-stealing
1708           semantics, they are copied instead. Given that the main consumers of
1709           this abstraction are the bindings themselves, I don't think this is
1710           too bad, but others should watch their choice of take vs set_static.
1711
1712 2006-06-06  Robert McQueen  <robot101@debian.org>
1713
1714         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1715           of g_slist_prepend not being used. Fixed copying of slist-based
1716           specialised collections, then wrote a test case and found that it was
1717           all broken. Went on to fix iterating and appending too. Good thing
1718           nobody uses this code yet.
1719
1720 2006-06-06  Robert McQueen  <robot101@debian.org>
1721
1722         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1723           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1724           are discarded without unsetting, so it makes no difference whether
1725           we take or set_static). Remove cases for G_TYPE_POINTER because
1726           there really is nothing useful we can do with them in our
1727           specialised types - we *need* boxed copy/free functions at the very
1728           least.
1729
1730 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1731
1732         * qt/dbus: Add directory. I had forgotten to add this
1733         yesterday after the move...
1734
1735         * qt/examples/Makefile.am:
1736         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1737
1738         * qt/tools/Makefile.am:
1739         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1740         Added feature to get and set properties.
1741         Added validation of service, object path and interface names.
1742
1743         * qt/tools/dbusidl2cpp.cpp: Two new features:
1744         1) Allow specifying both the header and the source file names,
1745         by separating them with a colon.
1746         2) Don't write an interface output if the -p switch wasn't
1747         given, but the -a was.
1748
1749         * qt/src/*: Fix usage of Iterators and ConstIterators.
1750         Fix shadowing of variables by other variables (-Wshadow).
1751         Fix keyword-cleanliness in headers.
1752         Fix ASCII-cast (QLatin1String, QLatin1Char).
1753         Fix validation of member names.
1754         Add extra checking of introspection data during XML parsing.
1755         Various bug fixes.
1756
1757 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1758
1759         * dbus/Makefile.am:
1760         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1761         qt/dbus/qdbus.h now.
1762
1763 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1764
1765         * configure.in: Make --disable-qt actually do
1766           something. Patch inspired by Zack Rusin.
1767
1768 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1769
1770         * qt/: Update to Subversion r548032.
1771         This includes a big reorganisation of the files inside the
1772         subdir.
1773
1774 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1775
1776         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1777         clear:  
1778         "Failed to connect to socket <host>:<port> <error>" instead of
1779         "Failed to connect to socket <host>: <error>:<port>"
1780
1781         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1782         for a tcp transport. 
1783
1784 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1785
1786         * qt/*: Update the QtDBus bindings up to revision 546310 in
1787         Subversion.
1788         This adds the dbuscpp2xml tool, that parses a C++ header and
1789         outputs a D-BUS Introspection XML.
1790
1791 2006-05-21  Havoc Pennington  <hp@redhat.com>
1792
1793         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1794         is not NULL when it shouldn't be. Also a couple of possible fixes
1795         for #4637 though I don't understand why the bug happens, to be
1796         honest... also the object constructor has an assert name != NULL
1797         and the name is only currently NULL for peer-to-peer proxies that 
1798         I don't think anyone uses? So it should be asserting.
1799         Anyway, for now at least see if we get an earlier assertion failure.
1800
1801         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1802         apparently broken code to be sure the tests fail and someone 
1803         will fix them...
1804
1805 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1806
1807         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1808         and arrays when they had a single element: has_next returns
1809         false, even before you read the element. So, instead, check
1810         the array length.
1811
1812 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1813
1814         * qt/qdbusmessage.cpp:
1815         * qt/qdbustypehelper_p.h:
1816         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1817         the list is a const-reference
1818
1819 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1820
1821         * Adding old doc patch that never got applied
1822         
1823         * dbus/bus.c (dbus_bus_add_match): Add documentation
1824
1825         * doc/dbus-specification.xml: Add documentation for the match rules
1826           and the AddMatch and RemoveMatch methods
1827
1828 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1829
1830         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1831         call (r535506)
1832
1833         * qt/dbusidl2cpp.cpp:
1834         * qt/qdbusabstractadaptor.cpp:
1835         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1836         sibling of the QDBusAbstractAdaptor objects instead of the
1837         parent. (r535848)
1838
1839         * qt/dbusidl2cpp.cpp:
1840         * qt/qdbusabstractinterface.cpp:
1841         * qt/qdbusabstractinterface.h:
1842         * qt/qdbusabstractinterface_p.h:
1843         * qt/qdbusinterface.cpp: Make properties in interfaces
1844         actually work. The code that was generated would not compile,
1845         due to moc calls to functions that did not exist. They now
1846         shall. (r536571)
1847
1848 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1849
1850         * Makefile.am:
1851         * configure.in:
1852         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1853         Thanks to Brad Hards for providing the patch
1854
1855 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1856
1857         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1858         call. (r535506)
1859
1860 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1861
1862         * qt/examples/dbus.cpp: Enhance error messages and use
1863         QDBusInterfacePtr.
1864
1865 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1866
1867         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1868         and disable the copy operators. (r533772, r534746)
1869
1870         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1871
1872         * qt/qdbusabstractinterface.cpp:
1873         * qt/qdbusabstractinterface.h: Change the default call mode to
1874         not use the event loop. Add convenience call() methods that
1875         take a CallMode parameter. (r534042)
1876
1877         * qt/qdbusconnection.h: Change the default call mode to not
1878         use the event loop. (r534042)
1879
1880         * qt/qdbusinterface.cpp:
1881         * qt/qdbusinterface.h: Add a method to tell us if the
1882         interface is valid (since we don't return a null pointer
1883         anymore) (r534099)
1884
1885         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1886         (r534101)
1887
1888         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1889         function in two so taht we get the chance to introspect
1890         without having a QDBusMessage (r534102)
1891
1892         * qt/qdbusbus.h:
1893         * qt/qdbusconnection.cpp:
1894         * qt/qdbusconnection_p.h:
1895         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1896         avoid a round-trip to the server when attempting to introspect
1897         one of our own objects. Also make sure the filter functions
1898         match the empty interface as well. (r534108)
1899         Don't keep the connection names. Instead, trust the unique
1900         connection name (r534111)
1901         Remove event loop usage (r534112)
1902
1903 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1904
1905         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1906         Brad Hards.
1907
1908 2006-04-28  Robert McQueen  <robot101@debian.org>
1909
1910         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1911         any order, making it easier for people who inherit from this
1912         object.
1913
1914 2006-04-28  Robert McQueen  <robot101@debian.org>
1915
1916         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1917         of memory from within pointer arrays and lists. Fixes bug #6300.
1918
1919 2006-04-28  Robert McQueen  <robot101@debian.org>
1920
1921         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1922         generating struct signatures. Fixes bug #6083.
1923
1924 2006-04-28  Robert McQueen  <robot101@debian.org>
1925
1926         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1927         to qdbusconnection_p.moc.
1928
1929 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1930
1931         * README, INSTALL: Doc fixes
1932         Patch from Brad Hards <bradh at frogmouth.net>
1933
1934 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1935
1936         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1937         the dynamic meta object. No need to guess which interface to
1938         call.
1939
1940 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1941
1942         * qt/qdbusconnection_p.h:
1943         * qt/qdbusmetaobject.cpp:
1944         * qt/qdbusmetaobject_p.h:
1945         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1946         for the dynamic meta object. No need to guess which
1947         interface to call.
1948         * qt/qdbusabstractinterface_p.h:
1949         * qt/qdbusconnection.cpp:
1950         * qt/qdbusintegrator.cpp:
1951         * qt/qdbusinterface.cpp:
1952         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1953         Add a QDBusRef that looks and behaves like DCOPRef.
1954
1955 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1956
1957         * dbus/dbus-connection.c: Interfaces are optional in method
1958         calls, so don't give up if the interface parameter is NULL.
1959         Patch reviewed by Havoc Pennington.
1960
1961 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1962
1963         * qt/qdbusreply.h: Add default constructor and operator=
1964           (r532625)
1965         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1966           in public headers (r532952)
1967         * qt/qdbusabstractinterface.cpp:
1968         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1969           make it the default (r532951)
1970
1971 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1972
1973         * dbus/dbus-connection.c: Fix asserts
1974         Patch from Tim Moloney <t.moloney at verizon.net>
1975
1976 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1977
1978         * mono/Connection.cs, mono/Message.cs: Check Target type
1979         Patch from Aaron Bockover (abockover at novell.com)
1980
1981 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1982
1983         * INSTALL: fine-tune the requirements for the Qt4 binding.
1984
1985 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1986
1987         * tools/dbus-print-message.c: Added support for printing of all 
1988           remaining data types. Fixed logic for indentation of compound
1989           data types.
1990         
1991 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1992
1993         * INSTALL: fill out content of file providing DBus specific
1994           build installations, followed by generic Auto* INSTALL file
1995           content
1996         
1997 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1998
1999         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2000           Patch by Stefan Eilers. (r529537)
2001
2002 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2003
2004         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2005           contents (r528208)
2006
2007 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2008
2009         * qt/Makefile.am: fix the dependency for
2010           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2011           not in qdbusconnection.cpp.
2012           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2013           spotting this.
2014
2015 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2016
2017         * qt/examples/listnames.cpp:
2018         * qt/examples/Makefile.am: Three ways to list the names on the
2019           bus.
2020
2021 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2022
2023         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2024           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2025
2026 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2027
2028         Merge from Subversion:
2029         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2030           something that exists (r526315)
2031         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2032           slots/signals (r526316)
2033         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2034           also return an unknown-method error if the parameters don't
2035           match for org.freedesktop.DBus.Properties. (r526842)
2036         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2037         * qt/qdbusintegrator.cpp: Restore the proper order of
2038           delivery: don't make method returns be delivered on priority
2039           (r528150)
2040
2041 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2042
2043         * configure.in qt/Makefile.am: add qt/examples
2044         * qt/examples: Add QtDBus example programs:
2045           - hello: Hello, World
2046           - ping: Simple method-calling program
2047           - pong: Simple object-exporting program (not using adaptors)
2048           - complexping: Interactive method-calling program 
2049                 (also gets and sets properties).
2050           - complexpong: Sample program exporting methods, signals and
2051                 properties, using adaptors.
2052           - dbus: Simple implementation of a generic method-calling
2053                 program, similar to 'dbus-send', but with semantics
2054                 similar to 'dcop'.
2055           - chat: Simplistic chat program, implemented using signals
2056                 and the system bus. Looks like IRC.
2057
2058 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2059
2060         * configure.in: Detect QtGui (necessary for one of the
2061           example programs). Note: this increases the minimum required
2062           version of Qt to 4.1.3.
2063
2064 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2065
2066         * test/qt/*: Sync with KDE Subversion revision 523647.
2067         Update the testcases to the new API. Remove testcases for
2068         classes that are no longer public or have been removed.
2069
2070 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2071
2072         * qt/*: 
2073         * dbus/qdbus.h: Sync with KDE Subversion revision
2074         523647. Hopefully, this will be the last of the
2075         source-incompatible changes. Documentation has been improved;
2076         support for QList<basic-types> has been added; QDBusObject is
2077         gone; QDBus(Abstract)Interface is now a QObject with
2078         auto-generated meta-object; QDBusIntrospection is marked
2079         private, since QMetaObject can be used now; lots of bugfixes.
2080
2081 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2082
2083         Patch from Milosz Derezynski <internalerror at gmail.com>
2084         
2085         * configure.in:
2086         Output the service directory in the configure summary
2087
2088         * dbus-1.pc.in:
2089         Add session_bus_services_dir
2090
2091 2006-03-10  Ross Burton  <ross@openedhand.com>
2092
2093         * tools/dbus-print-message.c:
2094         Add support for object paths and signatures.
2095
2096 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2097
2098         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2099         config reload.
2100         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2101         information caches
2102         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2103         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2104         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2105         * dbus/dbus-userdb.h: Add function to flush all user/group information
2106         caches.
2107
2108 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2109
2110         * qt/dbusidl2cpp.cpp:
2111         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2112         for dcopidl2cpp, found in the KDE installations (or the more
2113         modern kalyptus): generate Qt4 C++ code for the input XML
2114         introspection. Currently no IDL parsing.
2115
2116 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2117
2118         * test/qt/*: Update the self-tests.
2119
2120 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2121
2122         * qt/*: 
2123         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2124         represents the first feature-complete version of the Qt4
2125         bindings since I took ove maintainership.
2126
2127 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2128
2129         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2130         dir. This is C++, so we can't use the DBus ones.
2131
2132 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2133
2134         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2135         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2136
2137 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2138
2139         * dbus/dbus-connection.c: 
2140         (_dbus_connection_block_pending_call):
2141         Check to see if our data has already been read off the connection
2142         by another blocking pending call before we block in poll.
2143         (check_for_reply_and_update_dispatch_unlocked):
2144         Code taken from _dbus_connection_block_pending_call - checks for
2145         an already read reply and updates the dispatch if there is one.
2146
2147         * test/name-test/test-pending-call-dispatch.c:
2148         New test for making sure we don't get stuck polling a 
2149         dbus connection which has no data on the socket when
2150         blocking out of order on two or more pending calls.
2151
2152 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2153
2154         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2155         make/automake don't detect that we're talking about the same
2156         .lo file if I specify the full path to the source files.
2157
2158 2006-02-26  Havoc Pennington  <hp@redhat.com>
2159
2160         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2161
2162         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2163         session bus variable is unset, suggest "man dbus-launch" and "man
2164         dbus-daemon" to figure out how to fix the problem
2165
2166 2006-02-25  Havoc Pennington  <hp@redhat.com>
2167
2168         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2169         should make this thing use the new glib options parser
2170
2171 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2172
2173         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2174         .lo files taking moc sources.
2175
2176 2006-02-25  Havoc Pennington  <hp@redhat.com>
2177
2178         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2179         and install it as a public header
2180
2181 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2182
2183         * Released 0.61
2184
2185 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2186         
2187         * proxies.py: Fix the callchain
2188
2189 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2190         
2191         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2192
2193         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2194         dbus/dbus-sysdeps.c
2195
2196         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2197         call _dbus_group_info_free_allocated which causes infinite loop,
2198         correctly call _dbus_group_info_free
2199
2200 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2201
2202         * qt/qdbusinterface_p.h:
2203         * qt/qdbusinterface.cpp: Use the standard
2204         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2205         calls instead of creating one for us.
2206
2207         * qt/qdbusconnection_p.h:
2208         * qt/qdbusintegrator.cpp: Remove debugging code.
2209
2210         * qt/qdbusintegrator.cpp:
2211         * qt/qdbusmessage.cpp:
2212         * qt/qdbusmessage_p.h:
2213         * qt/qdbusmessage.h: Change the behaviour of automatic
2214         reply-sending: now a reply is always sent, unless the caller
2215         didn't request one or if the user slot has already sent one.
2216
2217 2006-02-16  Robert McQueen  <robot101@debian.org>
2218
2219         * configure.in: Patch from Debian packages by Sjoerd Simons
2220         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2221         arguments so it's possible to build both bindings in the
2222         same tree.
2223
2224         * qt/Makefile.am: Fix truncated value so that make dist works.
2225
2226 2006-02-16  Robert McQueen  <robot101@debian.org>
2227
2228         * acinclude.m4, configure.in: Patch from Brad Hards
2229         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2230         improving quoting, re-ordering a few checks, and a few other
2231         aesthetic tidy-ups.
2232
2233 2006-02-16  Robert McQueen  <robot101@debian.org>
2234
2235         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2236         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2237         assertion that the next element to read from the iter is fixed in
2238         size. This is not the case when you are at the end of the iter,
2239         because the next element type is INVALID.
2240
2241         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2242         a bogus assert which means that you may not initialise a 0-length
2243         string unless you provide a non-NULL pointer. This prevented
2244         you from marshalling messages containing zero-length arrays in
2245         some cases.
2246
2247         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2248         from Rob to correct bogus asserts when trying to demarshal an
2249         array and get_fixed_array got you 0 elements. Append nothing to
2250         the GArray in this case.
2251
2252         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2253         an empty array via the glib bindings. Without all of the above
2254         patches, this new test fails.
2255
2256 2006-02-16  Robert McQueen  <robot101@debian.org>
2257
2258         * glib/dbus-gmain.c: Make the previous commit compile.
2259
2260         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2261         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2262         specify sender_keyword="foo", path_keyword="bar" when adding
2263         a signal listener, so that you can bind to signals generically
2264         but still do something useful in your callback.
2265
2266         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2267         chars so that they're not cast to chars and made negative. Thanks
2268         to Jakub Stachowski for reporting this and testing the fix.
2269
2270 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2271
2272         * dbus/dbus-glib.h:
2273         * glib/dbus-gmain.h:
2274         (dbus_g_connection_open): new method for openning
2275         a connection to an arbitrary address in the glib bindings
2276
2277         * ChangeLog: checkin last entry which doesn't seem to be commited
2278
2279 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2280
2281         * tools/dbus-launch.c: Fixed sh syntax output
2282
2283 2006-02-13  Robert McQueen  <robot101@debian.org>
2284
2285         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2286         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2287         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2288         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2289         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2290         missing piece of the glib bindings jigsaw puzzle. This modifies
2291         the existing specialised types to have N type parameters (rather
2292         than the current 1 or 2 for arrays and dictionaries respectively).
2293         You can then use this to get a glib type to represent any arbitrary
2294         D-Bus struct type using dbus_g_type_get_struct. The only
2295         implementation of these types is with GValueArrays as before,
2296         but it's now possible to store these in arrays, emit them in
2297         signals, etc.
2298
2299 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2300
2301         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2302         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2303         <thiago.macieira at trolltech.com>
2304
2305 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2306
2307         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2308         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2309
2310 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2311
2312         * bus/connection.c (bus_connections_expect_reply): Make
2313         pending reply limit not common to all connections (Bug #5416)
2314         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2315
2316 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2317
2318         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2319
2320 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2321
2322         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2323         patch from Doug Goldstein <cardoe at gentoo.org>
2324
2325 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2326
2327         * mono/Arguments.cs: Fix a magic number in the mono bindings
2328         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2329
2330 2006-01-27  Robert McQueen  <robot101@debian.org>
2331
2332         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2333         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2334         when generating the client-side methods, instead of overloading
2335         CSymbol which broke everything horribly. My apologies.
2336
2337 2006-01-27  Robert McQueen  <robot101@debian.org>
2338
2339         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2340         by me and Rob Taylor to add a simple_free function to D-Bus map
2341         and collection types, which allows those types which can be freed
2342         with a GDestroyNotify (such as GHashTables and GArrays, but not
2343         GPtrArrays) to be stored as the values in hashtables.
2344
2345         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2346         Patch by Rob Taylor to add nested dicts to the glib tests to check
2347         the above code works, and appears not to leak when called repeatedly.
2348
2349 2006-01-27  Robert McQueen  <robot101@debian.org>
2350
2351         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2352         to free a D-Bus allocated string with dbus_free () instead of
2353         g_free ().
2354
2355 2006-01-27  Iain Holmes  <iain@openedhand.com>
2356
2357         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2358         method from being called multiple times.
2359
2360 2006-01-19  Robert McQueen  <robot101@debian.org>
2361
2362         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2363         <rob.taylor@collabora.co.uk> to add support for generating bindings
2364         to arrays that are represented as GPtrArrays rather than GArrays (ie
2365         size-variable things, such as strings, objects, structs, etc).
2366
2367 2006-01-05  Robert McQueen  <robot101@debian.org>
2368
2369         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2370         <ricardo.kekki@movial.fi> to make it possible to inherit from
2371         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2372         a private part, and moving the setting of the DBusGProxyManager into a
2373         connection property, allowing proper GObject construction.
2374
2375 2006-01-05  Robert McQueen  <robot101@debian.org>
2376
2377         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2378         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2379         annotations when generating glib client bindings.
2380
2381 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2382
2383         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2384
2385         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2386
2387 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2388
2389         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2390
2391 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2392
2393         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2394
2395 2005-12-19  Ross Burton  <ross@openedhand.com>
2396
2397         * doc/dbus-tutorial.xml:
2398         Document the Glib client-side bindings, and list all possible annotations.
2399
2400 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2401
2402         * dbus/bus.c (dbus_bus_release_name): Add documentation
2403
2404 2005-12-06  Robert McQueen  <robot101@debian.org>
2405
2406         * python/service.py: s/sucessful/successful/ so we're allocating to
2407         and reading from the same variable. Oops.
2408
2409 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2410
2411         * Released 0.60
2412
2413 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2414
2415         * test/qt/Makefile.am: build from srcdir
2416
2417         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2418         Note - this code is wrong and needs to be fixed by the Qt binding
2419         developers.  The flags should be treated as bitfields and not enums.
2420
2421         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2422
2423 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2424
2425         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2426           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2427           in production code
2428
2429 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2430
2431         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2432         method for getting messages off the bus in the absence of a
2433         mainloop.  This method is much like 
2434         dbus_connection_read_write_dispatch except it does not dispatch
2435         the messages to a registered filter function.  Instead it
2436         allows a developer to process messages by directly popping
2437         them off the bus.
2438
2439 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2440
2441         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2442         the parser to continue instead of returning error
2443         (bus_desktop_file_load): Do not free parser data when
2444         parse_section_start or parse_key_value fails because it was 
2445         already freed by parser_free (patch from Carlos Garcia Campos  
2446         <carlosgc at gnome.org>)
2447
2448 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2449
2450         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2451         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2452         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2453         test/test-segfault.c, test/test-utils.c,
2454         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2455         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2456         Various cleanup of dead code and compiler warnings (patch from
2457         Kjartan Maraas <kmaraas at gnome.org>) 
2458
2459 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2460
2461         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2462         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2463
2464 2005-11-27  Robert McQueen  <robot101@debian.org>
2465
2466         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2467         part of the preceding one. Oops. Merge patch by Johan Hedberg
2468         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2469         on big-endian platforms.
2470
2471         * test/python/test-client.py: Add some 16-bit integers to the test
2472         values.
2473
2474 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2475
2476         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2477         method return message for property getters
2478
2479 2005-11-27  Robert McQueen  <robot101@debian.org>
2480
2481         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2482         with type v of an instance of dbus.Variant(foo, type='x') caused
2483         it to be boxed twice before sending over the bus.
2484
2485         * python/dbus_bindings.pyx, python/service.py,
2486         test/python/test-client.py: Update the constants for the new
2487         request_name flags, and update comments/test cases now that queueing
2488         is the default action.
2489
2490 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2491
2492         * configure.in:
2493         - Change version to 0.60 for impending release
2494         - upped the sonames because of ABI and API breakage
2495
2496 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2497
2498         * configure.in: Add test/name-test/Makefile to the generated
2499         Makefile list
2500
2501         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2502         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2503         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2504         not to queue an ower if it can't be the primary owner
2505
2506         * bus/bus.h: Add new internal BusOwner struct
2507
2508         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2509         to bus_registry_ensure and don't set the prohibit_replacement flag
2510         since they are now set per BusOwner and not per name.
2511         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2512         that returns the list of connections in a name's connection queue
2513         
2514         * bus/services.c (struct BusService): remove prohibit_replacement field
2515         (struct BusOwner): new struct for keeping track of queued connections
2516         and their associated flags for the queue
2517         (struct BusRegistry): add a BusOwner memory pool
2518         (bus_registry_new): initialize the BusOwner memory pool
2519         (bus_registry_unref): free the BusOwner memory pool
2520         (_bus_service_find_owner_link): new internal method for
2521         searching the queue for a specific connection
2522         (bus_owner_set_flags): new method for adding setting the flags on a
2523         bus owner
2524         (bus_owner_new): new method that creates a BusOwner object from the
2525         pool and sets its flags
2526         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2527         (bus_registry_ensure): Add the flags parameter
2528         (bus_registry_acquire_service): Switch from using raw connections to
2529         using the BusOwner struct
2530         Add new state machine for dealing with the new set of flags
2531         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2532         cancel_ownership, free_ownership_cancel_data, 
2533         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2534         restore_ownership, free_ownership_restore_data, 
2535         add_restore_ownership_to_transaction): Switch to using BusOwner 
2536         instead of raw connections
2537         (bus_service_add_owner): Add flags parameter
2538         Switch to using BusOwner instead of raw connections
2539         Add state machine for dealing with the new set of flags
2540         (bus_service_swap_owner): Swaps the first and second owners in the
2541         queue.  Used to make sure proper signals are sent when a service looses 
2542         or gains primary ownership.  We never insert an owner at the top of the
2543         queue.  Instead we insert it in the second position and then swap.
2544         (bus_service_remove_owner): Remove the owner from the queue sending
2545         out the NameLost and NameOwnerChanged signals if the we were the 
2546         primary owner
2547         (bus_service_get_primary_owners_connection): New method that extracts
2548         the connection from the primary owner
2549         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2550         connection
2551         (bus_service_get_allow_replacement): Changed from the old 
2552         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2553         primary owner and returns if it can be replaced or not
2554         (bus_service_set_prohibit_replacement): removed
2555         (bus_service_has_owner): returns TRUE if and owner with
2556         the specified connection exists in the queue
2557         
2558         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2559         method that only compiles if tests are enabled.  Allows us to get the 
2560         unique name of a connection so we can check it against the queue when
2561         doing regression tests
2562
2563         * bus/activation.c (bus_activation_send_pending_auto_activate),
2564         bus/dispatch.c (bus_dispatch),  
2565         bus/driver.c (bus_driver_handle_get_service_owner, 
2566         bus_driver_handle_get_connection_unix_user, 
2567         bus_driver_handle_get_connection_unix_process_id,
2568         bus_driver_handle_get_connection_selinux_security_context),
2569         bus/signals.c (connection_is_primary_owner): 
2570         use bus_service_get_primary_owners_connection instead of
2571         bus_service_get_primary_owner
2572
2573         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2574         _dbus_listen_unix_socket): Calculate the length of the socket
2575         path and use that instead of using a fixed length which was
2576         causing socket names to contain many trailing Nul bytes.
2577
2578         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2579         (dbus_g_method_get_sender): New method for extracting the sender 
2580         from a DBusGMethodInvocation
2581         (dbus_g_method_return_get_reply): changed name to 
2582         dbus_g_method_get_reply
2583         (dbus_g_method_return_send_reply): changed name to
2584         dbus_g_method_send reply
2585
2586         * doc/dbus-specification.xml: New docs that describe how the new
2587         queueing system works and talks about the changes to the how
2588         we specify socket names
2589
2590         * glib/examples/example-service.c, 
2591         glib/examples/example-signal-emitter.c,
2592         glib/examples/statemachine/statemachine-server.c:
2593         Changed the RequestName flags to the new system
2594
2595         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2596         regression test suite for testing various states of the new
2597         queueing system
2598         
2599 2005-11-15  Robert McQueen  <robot101@debian.org>
2600
2601         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2602         Taylor to add two methods, dbus_g_method_return_get_reply and
2603         dbus_g_method_return_send_reply, to allow you to get the reply
2604         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2605         and send it. The GLib bindings can't marshal a return value of
2606         something like a(s) if the array is empty - ultimately they should be
2607         made to heed the signature of the out arguments as the Python bindings
2608         now can, but this is a workable interim solution which might have
2609         other applications.
2610
2611 2005-11-15  Robert McQueen  <robot101@debian.org>
2612
2613         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2614         method to org.freedesktop.DBus to release a bus name or give up
2615         waiting in the queue for it.
2616
2617         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2618         dbus_bus_release_name method to send the ReleaseName method calls.
2619         Add constants for the return values to dbus/dbus-shared.h.
2620
2621         * doc/dbus-specification.xml: Document the new ReleaseName method
2622         in the specification.
2623
2624         * python/dbus_bindings.pyx: Add a low-level python binding for the
2625         release name method.
2626
2627         * python/exceptions.py, python/service.py: Make freeing BusName
2628         objects release the name. Add a NameExistsException, and fix a
2629         bug with creating UnknownMethodException.
2630
2631         * test/python/test-client.py: Add tests for freeing BusName
2632         objects causing names to be released.
2633
2634 2005-11-14  Robert McQueen  <robot101@debian.org>
2635
2636         * python/service.py: Include the traceback in the error reply when we
2637         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2638
2639 2005-11-14  David Zeuthen  <davidz@redhat.com>
2640
2641         Patch from Timo Hoenig <thoenig@suse.de>.
2642
2643         * bus/bus.c: I've recently investigated why the automatic reload
2644         of configuration files does not work as expected.
2645
2646         Currently, reloading configuration files does only work when
2647         running dbus-daemon with --nodaemon.  If we are running as daemon
2648         we're hitting a dnotify bug once we fork the process.
2649
2650         We're initializing the dnotify fds before calling fork().  Once
2651         the child process forked it does still have the fds (and they
2652         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2653         getting SIGIO as changes are made to the configuration files.
2654
2655         The attached patch moves the initialization of the dnotify fds to
2656         process_config_postinit().  This is safe for all current code
2657         paths and solves the dnotify disfunction.  If we're running
2658         dbus-daemon as daemon the fds for dnotify are now being
2659         initialized after fork() for the child process.
2660
2661         * configure.in: The current configure.in check for dnotify probes
2662         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2663         match for 'xlinux', too. Additionally I have adapted the configure
2664         option's style to match with the others.
2665
2666 2005-11-14  Robert McQueen  <robot101@debian.org>
2667
2668         * python/decorators.py, python/service.py: Add a new argument to the
2669         dbus.service.method decorator called sender_keyword, which if set,
2670         specifies the name of an argument which will be provided the bus
2671         name of the method caller.
2672
2673         * test/python/test-client.py, test/python/test-service.py: Add a
2674         method and test to check the sender_keyword functionality.
2675
2676 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2677
2678         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2679         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2680         Simons <sjoerd at luon.net>)
2681
2682         * AUTHORS: Add Robert McQueen for his work on the Python
2683         Bindings and other parts of D-Bus
2684
2685 2005-11-07  Robert McQueen  <robot101@debian.org>
2686
2687         * python/decorators.py: Change emit_signal function to use the
2688         signature annotation of the signal when marhsalling the arguments from
2689         the service. Fix a bug where the code checking signature length
2690         against argument length referenced the wrong variable.
2691
2692         * python/introspect_parser.py: Avoid adding the type signature of
2693         signal arguments to any methods which occur after them in the
2694         introspection data (!) by making the parser a little more careful
2695         about its current state.
2696
2697         * python/service.py: Remove debug prints from last commit (again :D).
2698
2699         * test/python/test-client.py, test/python/test-service.py: Add test
2700         signals with signature decorators to test the strict marshalling code
2701         gives errors at the right time. Could do with checking the signals
2702         actually get emitted too, given that the test does nothing with
2703         signals at the moment...
2704
2705 2005-11-07  Robert McQueen  <robot101@debian.org>
2706
2707         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2708         instances to stop madness of creating new instances representing
2709         the same bus connection all the time, rendering any tracking of
2710         match rules and bus names quite meaningless. Caught a bug where
2711         the private argument to SessionBus() and friends was being passed
2712         in as use_default_mainloop by mistake. Still some problems with
2713         multiple dbus_binding.Connection instances representing the same
2714         low-level connection (eg when you use both SessionBus() and
2715         StarterBus() in same process), but it's a lot better now than it
2716         was.
2717
2718         * python/dbus_bindings.pyx: Add constants with the return values
2719         for bus_request_name().
2720
2721         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2722         and retrieve the same instances for the same name, so deletion can be
2723         done with refcounting. Also now throws some kind of error if you
2724         don't actually get the name you requested, unlike previously...
2725
2726         * test/python/test-client.py: Add tests for instance caching of buses
2727         and bus name objects.
2728
2729 2005-11-04  Robert McQueen  <robot101@debian.org>
2730
2731         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2732         marshalling of boolean values. Add some booleans to the values in
2733         the test client.
2734
2735         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2736         argument to the dbus.service.method decorator, which allows you to
2737         name arguments to take two callback functions for replying with
2738         return values or an exception.
2739
2740         * test/python/test-client.py, test/python/test-service.py: Add test
2741         case using asynchronous method reply functions, both return values and
2742         errors, and from within both the function itself and from a mainloop
2743         callback.
2744
2745         * python/decorators.py, python/service.py: Perform checking that the
2746         number of method/signal arguments matches the number of types in the
2747         signature at class loading time, not when you first introspect the
2748         class.
2749
2750         * python/service.py: Remove debug print left by the last commit.
2751
2752 2005-11-03  Robert McQueen  <robot101@debian.org>
2753
2754         * python/service.py: Heavy refactoring of method invocation, with
2755         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2756         in favour of a new _message_cb that uses seperate functions for
2757         looking up the method to call, marshalling the return values, and
2758         sending exceptions as errors, and is easier to follow as a
2759         consequence.  Fixes some corner cases about returning things that
2760         don't match your declared out_signature, allows exceptions to define
2761         _dbus_error_name and have it be sent over the bus as the error name,
2762         and paves the way for cool stuff like heeding the message no reply
2763         flag, asynchronous method implementations, informing the method of the
2764         sender, and including backtraces in the error messages.
2765
2766         * test/python/test-client.py: Catch and print exceptions thrown in the
2767         async callback tests, rather than passing them to the low-level
2768         bindings to be ignored in a noisy and frustrating manner.
2769
2770 2005-11-03  Robert McQueen  <robot101@debian.org>
2771
2772         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2773         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2774         tweak others to be consistent.
2775
2776         * test/python/test-client.py: Tweak output of testInheritance.
2777
2778 2005-10-29  Robert McQueen  <robot101@debian.org>
2779
2780         * python/service.py: Major changes to allow multiple inheritance
2781         from classes that define D-Bus interfaces:
2782         
2783          1. Create a new Interface class which is the parent class of
2784             Object, and make the ObjectType metaclass into InterfaceType.
2785         
2786          2. Patch written with Rob Taylor to replace use of method_vtable
2787             with code that walks the class's __MRO__ (method resolution order)
2788             to behave like Python does when invoking methods and allow
2789             overriding as you'd expect. Code is quite tricky because
2790             we have to find two methods, the one to invoke which has the
2791             right name and isn't decorated with the /wrong/ interface,
2792             and the one to pick up the signatures from which is decorated
2793             with the right interface.
2794         
2795             The same caveats apply as to normal multiple inheritance -
2796             this has undefined behaviour if you try and inherit from two
2797             classes that define a method with the same name but are
2798             decorated with different interfaces. You should decorate
2799             your overriding method with the interface you want.
2800         
2801          3. Replace grungy introspection XML generation code in the metaclass
2802             with dictionaries that cope correctly with multiple inheritance
2803             and the overriding of methods. This also uses the signature
2804             decorations to provide correct introspection data, including
2805             the debut appearance of the types of your return values. :D
2806
2807         * test/python/test-client.py, test/python/test-service.py: Add a test
2808         case to try invoking an method that overrides one inherited from a
2809         D-Bus interface class.
2810
2811 2005-10-29  Robert McQueen  <robot101@debian.org>
2812
2813         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2814         Add checking for the end of struct character when marshalling a
2815         struct in MessageIter.append_strict.
2816
2817         * python/examples/example-service.py,
2818         python/examples/gconf-proxy-service.py,
2819         python/examples/gconf-proxy-service2.py: Update to use gobject
2820         mainloop directly rather than appearing to depend on gtk.
2821
2822         * python/test/test-client.py, python/test/test-server.py: Remove
2823         obsolete and broken test scripts for old bindings. We have up to date
2824         and working tests in test/python/.
2825
2826 2005-10-29  Robert McQueen  <robot101@debian.org>
2827
2828         * python/decorators.py: Add optional arguments to the method and
2829         signal decorators to allow you to specify the signature of arguments
2830         and return values. Preserve the doc strings of signal functions in the
2831         decorated version, for pydoc and friends.
2832
2833         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2834         parse_signature_block function with an iterable dbus.Signature()
2835         type. Fix a bug in MessageIter.append_strict where you could append
2836         anything by claiming it was a string.
2837
2838         * python/service.py: Use the out_signature decoration on methods to
2839         marshal return values, meaning you no longer require dbus.Array()
2840         or dbus.Dictionary() to indicate the type when returning empty
2841         arrays or dictionaries. Fix a bug where exceptions which are defined
2842         in __main__ are not turned into error replies.
2843
2844         * test/python/test-client.py, test/python/test-service.py: Add test
2845         for correct marshalling of return values according to out_signature.
2846         Fix a bug in the async call test where the error_handler is missing a
2847         self argument.
2848
2849 2005-10-29  Robert McQueen  <robot101@debian.org>
2850
2851         * glib/Makefile.am, glib/examples/Makefile.am,
2852         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2853         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2854
2855         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2856
2857         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2858         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2859         the command line.
2860
2861 2005-10-27  Ross Burton  <ross@openedhand.com>
2862
2863         * dbus/dbus-marshal-header.c:
2864         Remove dead code.
2865
2866         * glib/dbus-gobject.c:
2867         Stop compiler warning.
2868
2869 2005-10-25  Ross Burton  <ross@openedhand.com>
2870
2871         * dbus/dbus-auth.c:
2872         * dbus/dbus-server-unix.c:
2873         * dbus/dbus-transport-unix.c:
2874         * glib/dbus-gmain.c:
2875         * glib/dbus-gobject.c:
2876         Add some const keywords.
2877
2878 2005-10-25  Ross Burton  <ross@openedhand.com>
2879
2880         * doc/dbus-specification.xml:
2881         Document the NoReply annotation.
2882
2883         * glib/dbus-binding-tool-glib.h:
2884         * glib/dbus-binding-tool-glib.c:
2885         Respect the NoReply annotation.
2886
2887 2005-10-24  Robert McQueen <robot101@debian.org>
2888
2889         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2890         derive from unicode instead of str, and encode/decode UTF-8 when
2891         marshalling/unmarshalling bus messages
2892
2893         * python/introspect_parser.py: encode introspection data as UTF-8
2894         before passing the buffer into libxml2
2895
2896         * test/python/test-client.py: add unicode test strings
2897
2898         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2899         ignore generated python test files
2900
2901 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2902
2903         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2904         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2905         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2906
2907         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2908         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2909         when constructing struct signatures
2910
2911         * python/_dbus.py (Bus): handle private connections using the
2912         private keyword in the constructor. defaults to private=False
2913         (Bus::close): new method to close a connection to the bus
2914
2915         * python/dbus_bindings.pyx (Connection::close): renamed method
2916         was previously called disconnect
2917         (bus_get): now supports getting a private connection
2918
2919         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2920         keyword is set to True.  if it is, execute the method without waiting
2921         for a reply
2922         (ProxyObject::_introspect_execute_queue): new method for executing
2923         all the pending methods that were waiting for the introspect to
2924         finish.  this is called when introspect either succeeds or fails
2925         (ProxyObject::_introspect_error_handler): call queued methods
2926
2927 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2928
2929         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2930         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2931
2932         * python/service.py (Object::_message_cb): handle exceptions correctly
2933         by sending them over the wire to the calling app.  This makes sure
2934         the client returns immediately instead of waiting the 15 seconds to
2935         timeout.
2936
2937         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2938         Add a test to benchmark how long it takes to introspect a service and 
2939         call a method which returns a large element (pretty fast)
2940
2941         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2942         method which pushes a lot of data
2943
2944 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2945
2946         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2947         reclaim memory outside of the loop and use del istead of just setting
2948         the key to None
2949
2950 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2951
2952         * python/service.py (ObjectType::_reflect_on_signal): Always close
2953         signal tag even when there are no arguments
2954
2955 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2956
2957         * configure.in: Set mono, mono-docs and Qt3 to default
2958         to no instead of auto when building.  These bindings do not
2959         have full time maintainers and will not be supported for the
2960         1.0 release.
2961
2962 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2963
2964         patches from Michael Krivoruchko <misha at sun.com>: 
2965         
2966         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2967         _dbus_connection_message_sent, 
2968         _dbus_connection_send_preallocated_unlocked_no_update, 
2969         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2970         is NULL when calling _dbus_verbose
2971
2972         * configure.in: check for functions getpeerucred and getpeereid
2973
2974         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2975         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2976         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2977         Patch was only tested on Solaris 10 x86 so it might be issues
2978         with other platforms (i.e. BSDs and MacOSX)
2979         
2980
2981 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2982
2983         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2984         instead of marshal basic so we can handle recursive types in a variant
2985
2986         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2987         in variants
2988
2989         * test/glib/test-service-glib.c, test-service-glib.xml
2990         (my_object_echo_variant [EchoVariant], 
2991         my_object_process_variant_of_array_of_ints123
2992         [ProcessVariantOfArrayOfInts123]): 
2993         Add two test methods
2994
2995         * python/introspect_parser.py: New module for parsing introspect
2996         data.
2997
2998         * python/dbus_bindings.pyx:
2999         (various places): when throwing errors fix to use errormsg instead 
3000         of message local variable because Pyrex can get confused with other 
3001         message variables (initial patch by Robert McQueen 
3002         <robert.mcqueen at collabora.co.uk>)
3003         (MessageIter::parse_signature_block): new method for getting the next
3004         block in a signiture.
3005         (MessageIter::append_strict): new method for appending values strictly
3006         using the passed in signature instead of guessing at the type
3007         (MessageItter:: append_dict, append_struct, append_array): use 
3008         signatures to marshal children if the signature is available
3009         
3010         * python/exceptions.py (IntrospectionParserException): new exception
3011
3012         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3013         introspected signatures if available, else we fall back to the
3014         old way of doing things.
3015         (ProxyObject::_introspect_reply_handler ): parse introspection data
3016         
3017         * python/service.py (ObjectType::_reflect_on_method): Properly
3018         terminate <method> if there are no args in the reflection data
3019
3020         * test/python/test-client.py: add tests for talking with the GLib
3021         test server.  This gives us better coverage for introspection since
3022         python to python will always generate arguments as variants.  It also
3023         allows us to test the robustness of the GLib bindings and interlanguage
3024         communications.
3025
3026         
3027 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3028
3029         * bus/driver.c (bus_driver_handle_introspect): Add signals
3030         to the introspect data. (patch from Daniel P. Berrange 
3031         <dan at berrange.com>)
3032
3033         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3034         
3035         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3036         _dbus_connection_run_builtin_filters): Changed these to
3037         be unlock_no_update functions and call 
3038         _dbus_connection_send_unlocked_no_update instead of
3039         dbus_connection_send to avoid locking errors.
3040         
3041         * doc/TODO: Removed the make Ping test TODO
3042         
3043 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3044
3045         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3046         We now copy the message from a DBusError and then free 
3047         the error object befor throwing the error
3048
3049         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3050         DBusBindingOutputMode enum which was causing a warning.
3051         #include <time.h> so using time_t is explicitly defined
3052
3053 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3054
3055         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3056         - dbus/dbus-bus.c
3057         (internal_bus_get): new method that take over the heavy lifting
3058         of dbus_bus_get and adds the ability to get a private connection
3059         to the bus
3060         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3061         interface as in previous versions
3062         (dbus_bus_get_private): new method that is a wrapper to 
3063         internal_bus_get to get a private connection to the bus
3064
3065         - dbus/dbus-bus.h
3066         (dbus_bus_get_private): add as a public libdbus interface
3067
3068         - dbus-1.pc.in: output system_bus_default_address and 
3069         sysconfdir variables so apps can use them when compiling
3070
3071 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3072         * dbus/qt: New Qt bindings
3073
3074 2005-09-12  Waldo Bastian  <bastian@kde.org>
3075
3076         * dbus/dbus-marshal-validate.c,
3077         doc/dbus-specification.xml, test/Makefile.am,
3078         test/test-names.c: allow hyphens in bus names.
3079
3080 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3081
3082         * test/data/auth/fallback.auth-script: we don't
3083         retry the EXTERNAL method when we know its going
3084         to fail anymore.
3085
3086 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3087
3088         * dbus/dbus-connection-internal.h: rename
3089         (add|remove|toggle)_(watch|timeout) to unlocked()
3090         
3091         * dbus/dbus-connection.c: ditto.
3092         
3093         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3094         Update some callers for the renaming.
3095
3096 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3097
3098         * dbus/dbus-auth.c: (record_mechanisms): don't
3099         retry the first auth mechanism because we know
3100         we're just going to get rejected again.
3101         
3102         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3103         Fix thinko ... and what a nasty little bugger to
3104         track down you were ...
3105
3106         * dbus/dbus-connection.c:
3107         (_dbus_connection_add_watch),
3108         (_dbus_connection_remove_watch): add note about
3109         these needing the connection to be locked.
3110         (_dbus_connection_get_dispatch_status_unlocked):
3111         set status to DATA_REMAINS when we queue the
3112         disconnected message.
3113         
3114         * bus/dispatch.c:
3115         (bus_dispatch): fix warning.
3116         (check_existent_service_no_auto_start):
3117         Expect ChildSignaled error too.
3118         (check_existent_hello_from_self): fix another
3119         couple of warnings.
3120         
3121 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3122
3123         Patches from James Willcox <snorp@snorp.net>
3124
3125         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3126
3127         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3128         support array "out" parameters.
3129
3130         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3131         for 16-bit int support.
3132
3133 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3134
3135         * Released 0.50
3136
3137         * Patch from Steve Grubb:
3138         - bus/activation.c (bus_activation_service_reload_test): clean up
3139         some indentation
3140         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3141         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3142         buffer overflows in the test suite.  This is non critical because
3143         it can not be exploited and this code is only run when doing a 
3144         make check.
3145
3146         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3147         - configure.in: Don't check and link against kdecore, only qt headers
3148         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3149         - gcj/org/freedesktop/dbus/Makefile.am:
3150         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3151         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3152         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3153         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3154         - tools/Makefile.am: Add platform extentions to binaries 
3155         (i.e. .exe on windows)
3156
3157         * configure.in: 
3158         - Make it so if no suitable version of python is found we only 
3159         disable building python instead of exiting the configure script
3160         - Require version 2.4 of glib for glib bindings
3161         - Up version to 0.50
3162
3163         * python/__init__.py: Sync version with libdbus to (0,50,0)
3164         
3165 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3166
3167         * dbus/dbus-object-tree.c (find_subtree_recurse):
3168         a couple of optimizations (bug #710):
3169         - do a binary search in the tree
3170         - insert a new child at the right place directly, no need for
3171           qsort anymore
3172         - do the "double alloc" thing when allocating children
3173
3174 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3175
3176         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3177
3178         * python/dbus_bindings.pyx: Memory management foo
3179         (global): remove hacky _user_data_references global list
3180         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3181         tuples. Unref user_data
3182         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3183         (Connection::__del__): Remove and replace with __dealloc__ method
3184         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3185         to keep tuple from being deallocated instead of the global var hack
3186         (Connection::register_object_path): Stuff user_data into a tuple.
3187         Use Py_INCREF to keep tuple from being deallocated instead of the 
3188         global var hack
3189         (Connection::register_fallback): Stuff user_data into a tuple.
3190         Use Py_INCREF to keep tuple from being deallocated instead of the 
3191         global var hack
3192         (GIL_safe_pending_call_notification): Don't unref the message
3193         because it gets unreffed when going out of scope.  Py_XDECREF
3194         the user_data
3195         (PendingCall::__del__): Remove and replace with __dealloc__ method
3196         (PendingCall::set_notify): ref the pending call because we will
3197         need it to stick around for when the notify callback gets called
3198         (Message::__del__): Remove and replace with __dealloc__ method
3199
3200         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3201         gthreads_init to match up with the dbus call
3202
3203         * python/glib.py (init_threads): Changed to threads_init to match
3204         up with gobject.threads_init().  init_threads is kept for backwards
3205         compat but will most likely be deprecated in the future
3206
3207         * test/python/test-client.py: 
3208         - revamp to use Python's unittest functionality
3209         - add async call tests
3210         - setup threads in glib and dbus so we make sure locks are working
3211         
3212 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3213
3214         * python/dbus_bindings.pyx 
3215         (_pending_call_notification, cunregister_function_handler, 
3216         cmessage_function_handler): All callback functions have been rearranged 
3217         to workaround a bug in Pyrex when working with the GIL which is Python's 
3218         global lock when dealing with threads.  They have been split into
3219         a wrapper function (which assumes the name of the old function) and
3220         a _GIL_safe_<function name> function which contains the functionality
3221         of the old function.  This ensures that Pyrex does not write code
3222         the lock is released.
3223         
3224
3225 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3226
3227         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3228         GIL global lock when calling back into Python
3229
3230 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3231
3232         * Release 0.36.2
3233
3234         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3235
3236         * bus/policy.c (bus_policy_allow_user): change default "user is
3237         allowed" to be "user has same uid as the bus itself"; any
3238         allow/deny rules will override.
3239
3240         * bus/session.conf.in: don't allow all users, since now by default
3241         the user that ran the bus can connect.
3242
3243 2005-08-26  Colin Walters  <walters@verbum.org>
3244
3245         * tools/dbus-print-message.c (print_message): Flush stdout
3246         after printing a message, so that redirecting to a file, then
3247         hitting Ctrl-C works.
3248
3249 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3250
3251         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3252         (EmptyMessage): new class that subclasses Message.  This is a workaround
3253         to a Pyrex bug that fails to call __del__ when the Message object goes out
3254         of scope.  For some reason subclassing Message fixes this bug
3255         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3256         - s/Message(_create=0)/EmptyMessage everywhere else
3257         
3258         * test/python/test-{server|client}.py: add the python/.libs directory
3259         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3260         get picked up from the system
3261
3262 2005-08-25  Colin Walters  <walters@verbum.org>
3263
3264         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3265         to Ryan Lortie for the suggestion.
3266
3267 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3268
3269         * test/python: Add python regression test
3270
3271         * configure.in: Add test/python/Makefile
3272
3273         * test/Makefile.am: Add the python directory to SUBDIRS
3274
3275 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3276
3277         * Release 0.36.1
3278
3279         * python/_dbus.py: 
3280         (Interface::connect_to_signal): propigate keywords for match on args
3281         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3282
3283         * python/proxies.py (ProxyObject::connect_to_signal):
3284         propigate keywords for match on args
3285
3286         * Makefile.am: point everything to pyexecdir since python borks
3287         on multilib
3288
3289 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3290
3291         * Release 0.36
3292
3293 2005-08-23  Colin Walters  <walters@verbum.org>
3294
3295         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3296
3297 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3298
3299         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3300         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3301         of defining DBusConnection ourselves.
3302
3303 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3304
3305         * python/dbus.pth: New path file to fix up problems when installing
3306         c libraries to lib64 and python files to lib.
3307
3308         * python/Makefile.am: install dbus.pth in the correct spot
3309
3310 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3311         * ChangeLog: clean up my last entry a bit
3312
3313         * doc/introspect.xsl: New stylesheet for converting introspection data
3314         into browser renderable xhtml. Contributed by Lennart Poettering.
3315
3316         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3317         Poettering.
3318
3319         * doc/dbus-tutorial.xml: 
3320         - Add Colin Walter to the Authors section for authoring the GLib
3321         section
3322         - Add descriptions of the new signature and type functionality
3323         in the Python complex type mapping section
3324         - Add a sidenote on the new args matching functionality in 
3325         the Python bindings
3326         - Fixed up some of the examples to use the gobject.MainLoop
3327         instead of gtk.main
3328         
3329         * python/_dbus.py:
3330         (Bus::_create_args_dict): New. Converts a hash of arg matches
3331         to a more useable format
3332         (Bus::add_signal_receiver): add a **keywords parameter for catching
3333         arg match parameters
3334         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3335         arg match parameters
3336         
3337         * python/matchrules.py:
3338         (MatchTree::exec_matches): Check for arg matches
3339         (SignalMatchRule::add_args_match): New method
3340         (SignalMatchRule::execute): Added args_list parameter as an optimization
3341         so we don't have to marshal the args more than once
3342         (SignalMatchRule::match_args_from_list): New method that checks to see
3343         if the rule's arg matches match an argument list.  Only arguments
3344         set in the rule are checked.
3345         (SignalMatchRule::match_args_from_rule): New method that checks to see
3346         if the rule's arg matches match another rule's.  All args have to match
3347         in order for this method to return true.  If either rule has more args
3348         then it is not a match.
3349         (SignalMatchRule::is_match): Add args match
3350         (SignalMatchRule::repr): Add args to the final output if they exist
3351
3352 2005-08-17  Ross Burton  <ross@burtonini.com>
3353
3354         * glib/dbus-gproxy.c:
3355         (dbus_g_proxy_call_no_reply): unref the message once sent.
3356         (dbus_g_proxy_call): protect against NULL proxy.
3357
3358 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3359
3360         * python/__init__.py: Version updated (0, 43, 0)
3361         
3362         * python/dbus_bindings.pyx: 
3363         - Fixed type objects to have self passed into __init__
3364         - Added the Variant type
3365         - Add the ability to specify types or signatures for Array, Variant 
3366         and Dictionary
3367         (Connection::send_with_reply_handlers): return a PendingCall object
3368         (_pending_call_notification): handle the case when an error is returned 
3369         without an error message in the body
3370         (MessageIter::get_boolean): return True or False instead of an integer
3371         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3372         and add checks for objects with embeded signatures or types (Array, 
3373         Variant and Dictionary)
3374         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3375         (MessageIter::append_dict): handle embeded types or signatures
3376         (MessageIter::append_array): handle embeded types or signatures
3377         (MessageIter::append_variant): new method
3378         
3379         * python/proxies.py:
3380         (DeferedMethod): New. Dummy executable object used when queuing calls 
3381         blocking on introspection data
3382         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3383         or shorter timeouts for method calls
3384         (ProxyObject): Add first pass at an introspection state machine
3385         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3386         introspection. 
3387         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3388         the usual mechanisms for sending messages.  This is to avoid a deadlock
3389         where the Intospect call would be queued waiting for the Introspect 
3390         call to finish ;-)
3391         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3392         when introspection returns with no error
3393         (ProxyObject::_introspect_error_handler): New.  This method is called 
3394         when introspection encounters an error
3395         (ProxyObject::__getattr__): Code to handle different introspection 
3396         states.  Queue async calls or block blocking calls if we are 
3397         introspecting.  Pass through as normal if we are not or are done with 
3398         introspecting.
3399         
3400         * python/service.py: Import signal and method from decorators.py
3401
3402         * python/types.py: Add Variant type
3403
3404 2005-08-16  Colin Walters  <walters@verbum.org>
3405
3406         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3407         DBusError message is NULL.
3408
3409 2005-08-09  Havoc Pennington  <hp@redhat.com>
3410
3411         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3412         malloc'd copy of the name parameter
3413
3414 2005-08-09  Havoc Pennington  <hp@redhat.com>
3415
3416         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3417         warning if the reply serial is set to 0
3418
3419 2005-08-04  Colin Walters  <walters@verbum.org>
3420
3421         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3422         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3423         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3424         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3425         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3426         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3427         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3428         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3429         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3430         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3431         
3432         Prefix name with _ to ensure they're not exported.  All callers
3433         updated.
3434
3435         * glib/dbus-gvalue.c (typecode_to_gtype)
3436         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3437         (signature_iter_to_g_type_dict)
3438         (signature_iter_to_g_type_array)
3439         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3440         (dbus_gtypes_from_arg_signature):
3441         Move to dbus-gsignature.c.
3442
3443         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3444         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3445         (dbus_binding_tool_output_glib_client): Ditto.
3446
3447         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3448         and dbus-gsignature.h
3449
3450         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3451         unused variable.
3452
3453 2005-08-03  Colin Walters  <walters@verbum.org>
3454
3455         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3456         catch any incompatible changes accidentally made.
3457
3458 2005-08-03  Havoc Pennington  <hp@redhat.com>
3459
3460         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3461         typo, from Julien Puydt
3462
3463         * bus/connection.c (bus_connection_disconnected): we were always
3464         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3465
3466 2005-08-01  Colin Walters  <walters@verbum.org>
3467
3468         Patch from Joe Markus Clarke:   
3469         
3470         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3471         use-after-free.
3472
3473 2005-08-01  Colin Walters  <walters@verbum.org>
3474         
3475         Patch from Joe Markus Clarke:   
3476         
3477         * tools/dbus-send.c (main): 
3478         
3479         Don't use C99 style initializers (bug #3933).
3480         
3481 2005-08-01  Colin Walters  <walters@verbum.org>
3482
3483         Patch from Joe Markus Clarke:   
3484
3485         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3486         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3487         * glib/dbus-gobject.c (write_interface):
3488
3489         Don't use C99 style initializers (bug #3933).
3490
3491 2005-07-31  Havoc Pennington  <hp@redhat.com>
3492
3493         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3494         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3495
3496 2005-07-30  Havoc Pennington  <hp@redhat.com>
3497
3498         * fix a bunch of Doxygen warnings and mistakes
3499
3500 2005-07-30  Havoc Pennington  <hp@redhat.com>
3501
3502         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3503         DBUS_BUILD_TESTS since it's now used in production code
3504
3505 2005-07-29  Havoc Pennington  <hp@redhat.com>
3506
3507         * test/glib/test-profile.c (write_junk): initialize the junk
3508         buffer so valgrind doesn't have a breakdown
3509
3510 2005-07-29  Havoc Pennington  <hp@redhat.com>
3511
3512         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3513         (match_rule_matches): remove unused arg
3514         (test_matching): add tests for match_rule_matches()
3515
3516         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3517         do arg0='foo' arg5='bar' in the match rules
3518         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3519
3520         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3521
3522 2005-07-29  Ross Burton  <ross@openedhand.com>
3523
3524         * dbus/dbus-connection.c:
3525         Don't create a DBusCondVar which is never used.
3526
3527 2005-07-27  Ross Burton  <ross@openedhand.com>
3528
3529         * dbus/dbus-message.c:
3530         Reduce the size of the maximum cached message to 10K.
3531
3532 2005-07-25  Ross Burton  <ross@openedhand.com>
3533
3534         * glib/dbus-gproxy.c:
3535         Remove matches when all proxies are unregistered.
3536
3537 2005-07-24  Colin Walters  <walters@verbum.org>
3538
3539         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3540         typedata; recursive arrays won't have it.
3541
3542         * test/glib/test-dbus-glib.c:
3543         * test/glib/test-service-glib.c:
3544         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3545         
3546 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3547
3548         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3549         proxies.py, service.py: Cleanup of code after running it through the
3550         pyflakes code checker mostly dealing with undefined names.  
3551         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3552
3553 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3554
3555         * NEWS: Update to 0.35.2
3556
3557 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3558
3559         * python/_dbus.py: Remove import of the dbus.services
3560         module as it no longer exists (patch from Dimitur Kirov)
3561
3562         * python/service.py (Object::__init__): Fixed typo
3563         s/name/bus_name (patch from Dimitur Kirov)
3564
3565         * python/examples/example-signal-emitter.py: import dbus.glib
3566         to get the main loop and use glib mainloop instead of gtk so
3567         X doesn't have to be running.
3568
3569         * python/examples/example-signal-recipient.py: import dbus.glib
3570         to get the main loop and use glib mainloop instead of gtk so
3571         X doesn't have to be running. Import the decorators module
3572         directly.
3573
3574         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3575         didn't pick up on but are needed to build
3576
3577         * configure.in: upped version to 0.35.2
3578
3579         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3580         added Colin Walters' SELinux API rename patch from head 
3581         s/unix sercurity context/selinux security context/
3582
3583 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3584
3585         * python/Makefile.am: dbus_binding.pxd.in should be included 
3586         in EXTRA_DIST not dbus_binding.pxd
3587         fix up $(srcdir) hopefully for the last time
3588
3589         * NEWS: Update to 0.35.1
3590
3591 2005-07-16  Colin Walters  <walters@verbum.org>
3592
3593         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3594         from bus_driver_handle_get_connection_unix_security_context.  Update for
3595         error usage.
3596         (message_handlers): Update for renames.
3597
3598         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3599         _dbus_string_init failure correctly.
3600         (bus_selinux_append_context): Convert SID to context.  Append it
3601         as a byte array.
3602         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3603         hasn't been called.
3604
3605         * bus/selinux.h: Update prototype.
3606
3607         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3608         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3609
3610 2005-07-15  Colin Walters  <walters@verbum.org>
3611
3612         * doc/TODO: Add note about convenience wrappers.
3613
3614 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3615
3616         * NEWS: Update to 0.35
3617
3618 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3619
3620         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3621         so distcheck doesn't fail
3622
3623         * glib/examples/Makefile.am: Add example-service.xml and 
3624         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3625
3626         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3627         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3628
3629         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3630         compiler looks in the right places during distcheck
3631
3632 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3633
3634         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3635         to fail
3636
3637 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3638
3639         * python/examples/example-service.py,
3640         python/examples/example-signal-emitter.py: Fixed up examples
3641         for API changes
3642
3643 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3644
3645         * python/__init__.py: Upped to version (0,42,0) because of
3646         the API change
3647
3648 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3649
3650         * ChangeLog: fix date in last entry
3651
3652         * configure.in, bus/system.conf.in: add the ability to configure 
3653         the system bus user at compiletime with the --with-dbus-user flag
3654         (patch from Kristof Vansant)
3655
3656 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3657
3658         * bus/dispatch.c, test/test-service.c: Add testcase
3659         for sending messages to oneself (TODO item).
3660
3661         * python/service.py (class Object): Swap ordering of bus_name 
3662         and object_path parameters to better support inheritance.
3663
3664         * doc/dbus-tutorial.xml: change Python docs to reflect change
3665         in parameter ordering and fix the inheritance section.
3666
3667         * doc/TODO: remove sending message to oneself TODO item
3668
3669 2005-07-15  Ross Burton  <ross@openedhand.com>
3670
3671         * glib/dbus-gproxy.c:
3672         Fix a leak when calling methods via the proxy.
3673
3674 2005-07-15  Colin Walters  <walters@verbum.org>
3675
3676         * bus/selinux.c (bus_selinux_append_context): Wrap in
3677         HAVE_SELINUX.
3678
3679 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3680
3681         * python/_dbus.py (Bus::remove_signal_receiver):
3682         don't add a callback to the match if none has been passed in
3683         
3684         * python/matchrules.py (SignalMatchTree::remove): if the rule
3685         being matched does not have a callback treat it as a wildcard
3686         fix matching logic
3687
3688         * doc/dbus-tutorial.xml: Add Python tutorial
3689
3690 2005-07-14  Colin Walters  <walters@verbum.org>
3691
3692         * bus/driver.c
3693         (bus_driver_handle_get_connection_unix_security_context): New function.
3694         (message_handlers): Add.
3695
3696         * bus/selinux.c (bus_selinux_append_context): New function; appends
3697         security context to message.
3698
3699         * bus/selinux.h: Prototype.
3700
3701         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3702
3703 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3704
3705         * bus/activation.c: clean up all tabs to be 8 spaces 
3706         (bus_activation_activate_service): make sure we clean up
3707         if activation fails
3708
3709         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3710         (check_shell_fail_service_auto_start): New function
3711         tests to make sure we get fail properly when trying to auto start a service
3712         with a faulty command line
3713         (check_shell_service_success_auto_start): New function tests to make sure
3714         auto started services get the arguments on the command line
3715
3716         * test/test-shell-service.c: Added service for testing auto-starting with 
3717         command line arguments
3718
3719         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3720         test/data/valid-service-files/debug-shell-echo-success.service.in:
3721         Added service files for testing auto-starting with command line arguments
3722
3723         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3724
3725 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3726
3727         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3728         
3729         * dbus/Makefile.am: added new files to build.
3730
3731         * bus/activation.c (bus_activation_activate_service): support
3732         activation commands with parameters.
3733
3734         * test/shell-test.c: added test program for the shell parsing
3735         code.
3736
3737 2005-07-13  David Zeuthen  <davidz@redhat.com>
3738
3739         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3740         64 bit signed and unsigned parameters
3741
3742 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3743
3744         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3745
3746         * python/service.py (class Name): renamed BusName to make it clearer
3747         what the object is for (a name on the bus)
3748
3749         * python/examples/example-service.py,
3750         python/examples/example-signal-emitter.py: change the Name object to
3751         BusName
3752
3753 2005-07-12  Colin Walters  <walters@verbum.org>
3754
3755         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3756
3757         * tools/dbus-launch.c: Include sys/select.h.
3758
3759 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3760         * python/dbus_bindings.pyx.in: removed
3761
3762         * python/dbus_bindings.pyx: Added.
3763         - Fixed some memleaks (patch from 
3764         Sean Meiners <sean.meiners@linspireinc.com>)
3765         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3766         own pxd file (Pyrex definition)
3767         - Broke out glib dependancies into its own pyx module
3768         
3769         * python/dbus_bindings.pdx: Added.
3770         - Defines C class Connection for exporting to other modules
3771
3772         * python/dbus_glib_bindings.pyx: Added.
3773         - New module to handle lowlevel dbus-glib mainloop integration
3774
3775         * python/glib.py: Added.
3776         - Registers the glib mainloop when you import this module
3777
3778         * python/services.py: Removed (renamed to service.py)
3779         
3780         * python/service.py: Added.
3781         - (class Server): renamed Name
3782
3783         * python/__init__.py: Bump ro version (0,41,0)
3784         -don't import the decorators or service module
3785         by default.  These now reside in the dbus.service namespace
3786
3787         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3788         setup function on creation 
3789
3790         * python/examples/example-service.py,
3791         python/examples/example-signal-emitter.py: update examples
3792
3793         * python/examples/gconf-proxy-service.py,
3794         python/examples/gconf-proxy-service2.py: TODO fix these up
3795
3796         * doc/TODO: Addition
3797         - Added a Python Bindings 1.0 section
3798         - added "Add match on args or match on details to match rules"
3799
3800
3801 2005-07-12  Colin Walters  <walters@verbum.org>
3802
3803         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3804         (statemachine-glue.h): 
3805         * glib/examples/Makefile.am (example-service-glue.h) 
3806         (example-signal-emitter-glue.h): 
3807         * glib/Makefile.am (dbus-glib-error-switch.h): 
3808         Add libtool --mode=execute so we use the built library instead
3809         of any installed one.
3810
3811 2005-07-11  Colin Walters  <walters@verbum.org>
3812
3813         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3814         (dbus_g_value_types_init): Remove assertion.
3815         (dbus_g_value_get_g_type, dbus_g_value_open)
3816         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3817         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3818         functions related to DBusGValue.  Now we marshal/demarshal
3819         structures as GValueArray.
3820         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3821         structures.
3822         (signature_iter_to_g_type_array): Don't call
3823         signature_iter_to_g_type_struct.
3824         (signature_iter_to_g_type_struct): Delete.
3825         (dbus_gvalue_to_signature): Delete.
3826         (dbus_gvalue_to_signature): New function with same name as other
3827         one; we can convert structures to signatures.
3828         (demarshal_valuearray): New function.
3829         (get_type_demarshaller): Use it.
3830         (demarshal_recurse): Delete.
3831         (marshal_proxy): New function.
3832         (marshal_map): Warn if we can't determine signature from type.
3833         (marshal_collection_ptrarray): Ditto.
3834         (marshal_collection_array): Ditto.
3835         (get_type_marshaller): Use marshal_valuearray.
3836         (marshal_recurse): Delete.
3837         (_dbus_gvalue_test): Add some tests.
3838
3839         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3840         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3841         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3842         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3843         (dbus_g_value_free): Remove prototypes.
3844
3845         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3846         G_TYPE_VALUE_ARRAY.
3847
3848         * glib/examples/example-service.c:
3849         * glib/examples/example-client.c: Implement GetTuple.
3850
3851         * test/glib/test-dbus-glib.c:
3852         * test/glib/test-service-glib.c:
3853         * test/glib/test-service-glib.xml: Add structure tests.
3854
3855 2005-07-10  Colin Walters  <walters@verbum.org>
3856
3857         * doc/TODO: Knock off some GLib items with this patch.
3858
3859         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3860         (_dbus_gvalue_signals_error): New functions.
3861
3862         * glib/dbus-gvalue-utils.h: Prototype them.
3863
3864         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3865         and change to not output const/retval flags for input args.  All
3866         callers updated.
3867         (invoke_object_method): Refactor to handle return values.  Add
3868         some more comments in various places.  Remove debug g_print.
3869
3870         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3871
3872         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3873         Handle G_TYPE_NONE.
3874         (compute_gsignature): New function; refactored from code from
3875         compute_marshaller and compute_marshaller_name.  Enhance to
3876         handle return values and async ops more cleanly.  Update for
3877         async ops returning NONE instead of BOOLEAN.
3878         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3879         and output appropriate string.
3880         (generate_glue): Handle return value annotation.  Also don't dump
3881         constness flag for input arguments.
3882
3883         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3884         files shared between installed library and utilities.
3885         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3886         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3887         binding tool can access gtype utility functions.
3888
3889         * test/glib/test-service-glib.c: 
3890         * test/glib/test-service-glib.xml: 
3891         * test/glib/test-dbus-glib.c: Add some tests for return values.
3892
3893 2005-07-09  Colin Walters  <walters@verbum.org>
3894
3895         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3896         argument if available, not method.
3897
3898         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3899         (invoke_object_method): First, remove some redundant
3900         GValues (object_value, error_value) in favor of working on
3901         array directly.  Second, rework constness to be less buggy.
3902         Now we iterate directly over the argument metadata instead
3903         of parallel iterating over output signature and metadata.
3904
3905         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3906
3907         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3908         annotation on input args.
3909         
3910 2005-07-09  Colin Walters  <walters@verbum.org>
3911
3912         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3913         Define.
3914
3915         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3916         annotation.
3917
3918         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3919         (method_dir_signature_from_object_info): Handle arg_iterate change.
3920         (write_interface): Ditto.
3921         (lookup_object_info): Don't barf if format_version is > 0.
3922         (invoke_object_method): Handle arg constness.
3923
3924         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3925         (arg_info_new): Create.
3926         (arg_info_unref): Destroy.
3927         (arg_info_get_annotations, arg_info_get_annotation) 
3928         (arg_info_add_annotation): New functions.
3929
3930         * glib/dbus-gidl.h: Prototype them.
3931
3932         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3933         args, disallow them in properties.
3934         (parse_annotation): Handle arg annotations.
3935
3936         * test/glib/test-service-glib.xml: 
3937         * test/glib/test-service-glib.c: Update to make some methods
3938         const.
3939
3940 2005-07-08  Colin Walters  <walters@verbum.org>
3941
3942         * test/glib/test-service-glib.xml: 
3943         * test/glib/test-service-glib.c:
3944         * test/glib/test-dbus-glib.c: Test a{sv}.
3945
3946         * glib/examples/statemachine/statemachine.c:
3947         * glib/examples/statemachine/statemachine-server.c:
3948         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3949         add progress bar, etc.
3950
3951         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3952         needed anymore due to generic array/map marshalling.
3953         (dbus_g_value_types_init): Don't register basic arrays or the
3954         string/string hash.
3955         (dbus_gtype_from_signature_iter): Don't try to recurse into
3956         variants.
3957         (dbus_gtype_to_signature): Check collection/map before type
3958         metadata.
3959         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3960         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3961         generic map creation/append functions instead of hash table
3962         specifically.
3963         (get_type_demarshaller): Handle maps.
3964         (demarshal_collection): Dispatch on collection type to either
3965         demarshal_collection_ptrarray or demarshal_collection_array.
3966         (get_type_marshaller): Handle maps.
3967         (marshal_collection): Dispatch collection type to either
3968         marshal_collection_ptrarray or marshal_collection_array.
3969         (_dbus_gvalue_test): New test.
3970
3971         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3972         (hash_free_from_gtype): Use it to free GValues.
3973         (hashtable_append): New function.
3974         (ptrarray_append): Fix prototype.
3975         (slist_append): Ditto.
3976         (_dbus_gvalue_utils_test): Extend tests.
3977
3978         * glib/dbus-gtype-specialized.c
3979         (dbus_g_type_specialized_init_append): Renamed from
3980         dbus_g_type_specialized_collection_init_append.  Remove const from
3981         value, since we steal it.
3982         (dbus_g_type_specialized_map_append): New function.
3983
3984         * glib/dbus-gtype-specialized.h: Update prototypes.
3985         Add DBusGTypeSpecializedMapAppendFunc.
3986
3987         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3988         _dbus_gvalue_test.
3989         
3990         * glib/dbus-gtest.h: Prototype it.
3991
3992 2005-07-08  Ross Burton  <ross@openedhand.com>
3993
3994         * dbus/dbus-glib.h:
3995         Add DBysGAsyncData for the async bindings.
3996
3997         * glib/dbus-binding-tool-glib.c:
3998         Re-enable the async bindings.
3999
4000         * test/glib/test-dbus-glib.c:
4001         Add a test for the generated async bindings.
4002
4003 2005-07-08  Colin Walters  <walters@verbum.org>
4004
4005         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4006         connection concept.
4007         
4008 2005-07-08  Colin Walters  <walters@verbum.org>
4009         
4010         * tools/Makefile.am: Kill of print-introspect in favor of using
4011         dbus-send --print-reply=literal.
4012
4013         * test/glib/test-service-glib.xml: 
4014         * test/glib/test-service-glib.c (my_object_get_objs): New test
4015         for "ao".
4016
4017         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4018         (main): Test GetObjs.
4019
4020         * glib/examples/statemachine/Makefile.am:
4021         * glib/examples/statemachine/sm-marshal.list:
4022         * glib/examples/statemachine/statemachine-client.c:
4023         * glib/examples/statemachine/statemachine-server.c:
4024         * glib/examples/statemachine/statemachine-server.xml:
4025         * glib/examples/statemachine/statemachine.c:
4026         * glib/examples/statemachine/statemachine.h:
4027         * glib/examples/statemachine/statemachine.xml:
4028
4029         New example.
4030
4031         * glib/examples/example-service.c (main): Move invocation
4032         of dbus_g_object_type_install_info earlier, to emphasize it
4033         should only be done once.
4034
4035         * glib/examples/example-signal-emitter.c (main): Ditto.
4036
4037         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4038
4039         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4040         (dbus_gvalue_marshal): Update prototypes.
4041
4042         * glib/dbus-gvalue.c: Update all marshalling functions to take
4043         const GValue instead of GValue.
4044         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4045         types.
4046         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4047         change.
4048         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4049         Return a newly-allocated string.
4050         (demarshal_proxy, demarshal_object_path, demarshal_object)
4051         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4052         we get the wrong types from message.
4053         (get_type_demarshaller): New function, extracted from
4054         dbus_gvalue_demarshal.
4055         (demarshal_collection): New function, demarshals generic
4056         collection.
4057         (dbus_gvalue_demarshal): Just invoke result of
4058         get_type_demarshaller.  Throw error if we don't have one.
4059         (marshal_garray_basic): Abort on OOM.
4060         (get_type_marshaller): New function, extracted from
4061         dbus_gvalue_marshal.
4062         (collection_marshal_iterator, marshal_collection): New functions;
4063         implements generic marshalling for an iteratable specialized
4064         collection.
4065         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4066
4067         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4068         G_TYPE_STRING.
4069         (ptrarray_value_from_gvalue): Ditto.
4070         (ptrarray_append, ptrarray_free): New functions.
4071         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4072         (slist_append, slist_end_append, slist_free): New functions.
4073         (dbus_g_type_specialized_builtins_init): Add append fuctions
4074         for GPtrArray and GSList.  Register GSList.
4075         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4076
4077         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4078         New.
4079         (dbus_g_type_specialized_collection_init_append)
4080         (dbus_g_type_specialized_collection_append)
4081         (dbus_g_type_specialized_collection_end_append): Prototype.
4082         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4083         end_append_func.
4084
4085         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4086         (dbus_g_type_specialized_collection_append) 
4087         (dbus_g_type_specialized_collection_end_append): New functions.
4088         (dbus_g_type_map_value_iterate): Take const GValue.
4089         (dbus_g_type_collection_value_iterate): Ditto.
4090
4091         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4092         _dbus_gvalue_utils_test.
4093         
4094         * glib/dbus-gtest.h: Prototype it.
4095
4096         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4097         using uninitialized owner_list.
4098         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4099         public API.
4100         (dbus_g_proxy_end_call_internal): Update to use error set
4101         from dbus_gvalue_demarshal instead of setting it here.
4102         (dbus_g_proxy_begin_call): Move return_if_fail here.
4103
4104         * glib/dbus-gobject.c (write_interface): Update for
4105         dbus_gtype_to_signature returning new string.
4106
4107         * configure.in: Add glib/examples/statemachine.
4108
4109 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4110
4111         * configure.in: Add a configure option, --with-console-auth-dir
4112         
4113         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4114         new setting.  Patch from Kay Sievers.
4115
4116 2005-07-06  Colin Walters  <walters@verbum.org>
4117
4118         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4119         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4120         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4121         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4122         Delete in favor of dbus_g_proxy_begin_call and
4123         dbus_g_proxy_cancel_call.
4124         (DBusGProxyCall, DBusGProxyCallNotify): New.
4125         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4126         data, and destroy function.  This replaces
4127         dbus_g_pending_call_set_notify.
4128         (dbus_g_proxy_cancel_call): Prototype.
4129         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4130
4131         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4132         pending_calls map.
4133         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4134         internal proxy for calls to the bus. Remove
4135         pending_nameowner_calls, now the internal proxy keeps track.
4136         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4137         pending_nameowner_calls.
4138         (got_name_owner_cb): Update prototype, and use
4139         dbus_g_proxy_end_call.
4140         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4141         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4142         favor of using internal proxy.
4143         (dbus_g_proxy_manager_unregister): Update to use
4144         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4145         (dbus_g_proxy_init): Initialize pending calls map.
4146         (dbus_g_proxy_constructor): New.
4147         (dbus_g_proxy_class_init): Add get/set property functions,
4148         constructor, and add NAME, PATH, and INTERFACE properties.
4149         (cancel_pending_call): New function.
4150         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4151         cancel them.
4152         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4153         (GPendingNotifyClosure): New structure.
4154         (d_pending_call_notify, d_pending_call_free): Moved here from
4155         dbus-glib.c.
4156         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4157         ordering.
4158         (manager_begin_bus_call): New internal function for talking to
4159         internal bus proxy.
4160         (dbus_g_proxy_new): Construct object using GObjet properties.
4161         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4162         Create closure of same, and insert call into map of pending calls.
4163         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4164         call.  Look up pending call in current set.  Remove it when we've
4165         completed.
4166         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4167         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4168         and destroy function directly.
4169         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4170         (dbus_g_proxy_call): Invoke with NULL callback.
4171         (dbus_g_proxy_cancel_call): New function, replaces
4172         dbus_g_pending_call_cancel.
4173
4174         * glib/dbus-gparser.c (validate_signature): Fix call to
4175         dbus_set_g_error.
4176
4177         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4178         New quark for attaching metadata to GType.
4179         (info_hash): Delete.
4180         (lookup_object_info): Look up using quark.
4181         (dbus_g_object_type_install_info): Check that a type is classed,
4182         not that it's an object.  Also just install type data using quark
4183         instead of using global hash.
4184
4185         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4186         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4187         (GPendingNotifyClosure): Delete.
4188         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4189         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4190
4191         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4192         client method generation until we can fix it...
4193         
4194         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4195         (load_from_service_thread_func): Ditto.
4196
4197         * tools/dbus-names-model.c (struct NamesModel): Hold
4198         DBusGProxyCall.
4199         (have_names_notify): Update prototype, use
4200         dbus_g_proxy_cancel_call.
4201         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4202
4203         * tools/dbus-monitor.c (filter_func): Update for print_message
4204         API change.
4205
4206         * test/glib/test-dbus-glib.c: Add more tests for async
4207         invocations.  Update many begin_call/end_call pairs to just use
4208         dbus_g_proxy_call.
4209
4210         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4211         allows us to dump print-introspect.c.
4212
4213         * tools/dbus-print-message.h (print_message): Add literal argument
4214         to print_message which is intended to allow printing arguments without
4215         metadata like "string=".
4216
4217         * tools/dbus-print-message.c (print_iter): Add literal argument.
4218         (print_message): Allow printing string messages literally.
4219
4220 2005-07-05  Colin Walters  <walters@verbum.org>
4221
4222         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4223         Remove value refcount leak, original patch from Jorn Baayen
4224         <jorn@openedhand.com>.  Also remove useless extra value in favor
4225         of prepending to value array directly.
4226
4227 2005-07-02  Colin Walters  <walters@verbum.org>
4228
4229         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4230
4231 2005-07-01  Colin Walters  <walters@verbum.org>
4232
4233         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4234         
4235         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4236         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4237         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4238         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4239
4240 2005-06-30  Colin Walters  <walters@verbum.org>
4241
4242         * test/glib/test-dbus-glib.c:
4243         * test/glib/test-service-glib.c:
4244         * test/glib/test-service-glib.xml: Update tests for new error
4245         setting bits, also add async tests (patch from Ross Burton).
4246
4247         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4248         DBUS_GLIB_THREADS_LIBS.
4249
4250         * glib/dbus-gproxy.c (get_name_owner)
4251         (dbus_g_pending_call_end_valist): Ditto.
4252
4253         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4254         domain (GQuark) to DBusGErrorInfo.  
4255         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4256         quark in error_metadata.  Take message interface as default
4257         error message interface.
4258         (gerror_to_dbus_error_message): Pass message interface.
4259         (dbus_set_g_error): Resurrected.
4260         (dbus_g_error_info_free): New function.
4261         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4262         of _peek to actually create the object class if it hasn't been
4263         created yet.
4264         (dbus_g_error_domain_register): New function.
4265
4266         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4267
4268         * glib/dbus-gparser.c (validate_signature): Ditto.
4269
4270         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4271         (dbus_g_error_domain_register): Prototype.
4272
4273         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4274         Update tests.
4275
4276 2005-06-29  Colin Walters  <walters@verbum.org>
4277
4278         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4279         DBUS_TYPE_G_OBJECT_PATH.
4280
4281         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4282         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4283         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4284         (dbus_g_object_path_get_g_type): New function.
4285         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4286         to DBUS_TYPE_G_OBJECT_PATH by default.
4287         (demarshal_proxy): Remove unused name variable.
4288         (demarshal_object_path, marshal_object_path): New functions.
4289         (demarshal_proxy_array, marshal_proxy_array): Delete.
4290         
4291         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4292         DBUS_TYPE_G_OBJECT_PATH to char *.
4293         (dbus_g_type_get_lookup_function): Map builtin
4294         DBUS_TYPE_G_OBJECT_PATH.
4295
4296         * test/glib/test-dbus-glib.c
4297         * test/glib/test-service-glib.c (my_object_objpath): 
4298         Adapt tests to new object path marshalling.
4299
4300 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4301
4302         * configure.in: force check for Python >= 2.4
4303
4304 2005-06-29  Colin Walters  <walters@verbum.org>
4305         
4306         Patch from Ross Burton <ross@openedhand.com>
4307         
4308         * glib/dbus-gobject.c (invoke_object_method): Unset object
4309         value in all cases, not only in async case.
4310
4311 2005-06-29  Colin Walters  <walters@verbum.org>
4312
4313         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4314         name_call for keeping track of any outgoing GetNameOwner call.
4315         Also add for_owner and associated.
4316         (struct _DBusGProxyManager): Add owner_names, which is hash table
4317         that maps a base name to a list of names it owns (that we're
4318         interested in).  Add pending_nameowner_calls which is a list of
4319         all outstanding GetNameOwner; avoids us having to iterate over
4320         every proxy.  Add unassociated_proxies which keeps track of name
4321         proxies with no associated name owner.
4322         (dbus_g_proxy_manager_unref): Destroy owner_names.
4323         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4324         name refcounts.
4325         (find_name_in_info, name_owner_foreach)
4326         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4327         (dbus_g_proxy_manager_monitor_name_owner)
4328         (dbus_g_proxy_manager_unmonitor_name_owner)
4329         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4330         New functions; they manipulate the owner_names mapping.
4331         (got_name_owner_cb): New function.
4332         (get_name_owner): New function, extracted from
4333         dbus_g_proxy_new_for_name_owner.
4334         (dbus_g_proxy_manager_register): For now we need to keep track of
4335         all NameOwnerChanged.  Also if the proxy is for a name, if we
4336         don't already know the name owner, queue a new GetNameOwner
4337         request and add it to our list of unassociated proxies.  Otherwise
4338         inc the refcount.
4339         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4340         cancel any pending GetNameOwner call, etc.
4341         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4342         the owner_names mapping to look up the current names for the
4343         signal source, and dispatch to any proxies for that name.
4344         (dbus_g_proxy_new): Initialize new members.
4345         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4346         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4347         (dbus_g_pending_call_end_valist): New function, extracted from
4348         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4349         but want to use the GLib infrastructure.  Also note how many
4350         arguments in reply were over.
4351         (dbus_g_pending_call_end): New function, just call
4352         dbus_g_pending_call_end_valist.
4353         (dbus_g_proxy_end_call_internal): Just call
4354         dbus_g_pending_call_end_valist.
4355
4356         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4357         of builtin marshaller for STRING_STRING_STRING.
4358
4359         * test/glib/test-dbus-glib.c: 
4360         * test/glib/test-service-glib.c:
4361         * test/glib/test-service-glib.xml:
4362         Extend tests to cover name proxies, destruction of owner proxies,
4363         etc.
4364         
4365         * glib/examples/example-signal-recipient.c
4366         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4367         
4368         * tools/dbus-send.c (main): Print D-BUS error name in addition
4369         to message.
4370
4371 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4372
4373         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4374         cmessage_function_handler): Patch from 
4375         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4376         by using the Py_GILState_Ensure/Release to synchronize with the
4377         python runtime.
4378         
4379 2005-06-28  Ray Strode  <rstrode@redhat.com>
4380
4381         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4382         babysitter helper process on last unref, bug #2813.
4383
4384 2005-06-27  Colin Walters  <walters@verbum.org>
4385
4386         * test/glib/test-dbus-glib.c: 
4387         * test/glib/test-service-glib.c:
4388         * test/glib/test-service-glib.xml:
4389         Test hash table signal emitting.
4390
4391         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4392         types to their fundamental basis types, since this is what
4393         marshallers operate on.  Also add an entry for VOID__BOXED.
4394         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4395
4396 2005-06-26  Havoc Pennington  <hp@redhat.com>
4397
4398         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4399         from Don Park
4400
4401 2005-06-26  Colin Walters  <walters@verbum.org>
4402
4403         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4404         (dbus_g_error_set): New public function from its ashes; used by
4405         both service-side method implementation and GLib bindings
4406         internals.
4407         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4408         (_dbus_glib_test): Add some tests.
4409
4410         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4411
4412         * test/glib/test-service-glib.c (my_object_throw_error): Use
4413         dbus_g_error_set.
4414
4415         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4416         errors thrown by dbus_g_error_set.
4417
4418         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4419
4420         * glib/dbus-gparser.c (validate_signature): Ditto.
4421
4422         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4423         (dbus_g_proxy_end_call_internal): Ditto.
4424
4425         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4426         converts DBUS_ERROR_x to DBUS_GERROR_x.
4427         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4428
4429         * doc/TODO: Remove error TODO.
4430
4431         * doc/dbus-tutorial.xml: Update with documentation about error
4432         handling.
4433
4434         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4435         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4436         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4437
4438 2005-06-22  Colin Walters  <walters@verbum.org>
4439         
4440         Patch from Ross Burton <ross@openedhand.com>
4441
4442         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4443
4444 2005-06-20  Colin Walters  <walters@verbum.org>
4445
4446         * configure.in: Add glib/examples.
4447
4448         * glib/Makefile.am: Add examples/
4449
4450         * glib/examples/.cvsignore
4451         * glib/examples/Makefile.am
4452         * glib/examples/example-client.c
4453         * glib/examples/example-service.c
4454         * glib/examples/example-service.xml
4455         * glib/examples/example-signal-emitter.c
4456         * glib/examples/example-signal-emitter.xml
4457         * glib/examples/example-signal-recipient.c:
4458         New files; GLib binding examples, ported from
4459         python/examples.
4460
4461 2005-06-20  Colin Walters  <walters@verbum.org>
4462
4463         * dbus/dbus-glib.h: 
4464         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4465         dbus_g_proxy_call.
4466
4467         * glib/dbus-binding-tool-glib.c: 
4468         * doc/dbus-tutorial.xml: 
4469         * test/glib/test-dbus-glib.c: Update for rename.
4470         
4471 2005-06-20  Colin Walters  <walters@verbum.org>
4472
4473         Patch suggested by Ross Burton <ross@openedhand.com>
4474
4475         * glib/dbus-gobject.c (export_signals): Free signal name.
4476         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4477         memory leak.  Add a bit of documentation.
4478         (dbus_g_method_return_error): Free context, and note we do
4479         so.
4480
4481 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4482
4483         * dbus/dbus-glib.h:
4484         * glib/dbus-gobject.c:
4485         * glib/dbus-gproxy.c:
4486         * glib/dbus-gvalue.c: Predeclare structs as 
4487         typedef struct _Something Something instead of 
4488         typedef struct Something Something, so we can 
4489         redeclare the prototypes. Other GNOME libraries 
4490         do this already.
4491
4492 2005-06-17  Colin Walters  <walters@verbum.org>
4493
4494         * tools/dbus-names-model.c (have_names_notify): Fix call
4495         to dbus_g_proxy_end_call.
4496         
4497 2005-06-17  Colin Walters  <walters@verbum.org>
4498
4499         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4500         spew warnings if we get malformed remote signals.
4501
4502         * glib/dbus-gobject.c (propsig_iterate): New function.
4503         (lookup_object_info): New function, extracted from
4504         lookup_object_and_method.
4505         (introspect_properties, introspect_signals): Delete; these
4506         are merged into write_interface.
4507         (write_interface): Write out signals and properties here;
4508         dump the org.gtk.object stuff and use the interface given
4509         in the introspection data blob.  Also fix up property XML.
4510         (lookup_values): New function.
4511         (introspect_interfaces): Gather a mapping from interface to a
4512         list of its methods, signals, and properties, then write out
4513         each interface.
4514         (lookup_object_and_method): Use lookup_object_info.
4515         (struct DBusGSignalClosure): Add interface.
4516         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4517         we can just use the constant data.
4518         (dbus_g_signal_closure_finalize): Don't free signal name.
4519         (signal_emitter_marshaller): Use interface from signal closure.
4520         (export_signals): Only export signals mentioned in introspection
4521         blob.
4522         (dbus_g_connection_register_g_object): Warn if we have no
4523         introspection data for an object.
4524         (funcsig_equal): Remove unused variable.
4525         (dbus_g_object_register_marshaller): Take varargs instead of
4526         list.
4527         (dbus_g_object_register_marshaller_array): New function,
4528         extracted from old dbus_g_object_register_marshaller.
4529
4530         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4531         signals and property data.
4532         (write_quoted_string): New function, extracted from generate_glue.
4533         (generate_glue): Write signals and properties to introspection
4534         blob.
4535
4536         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4537         exported_signals and exported_properties.
4538         (dbus_g_object_register_marshaller): Update prototype.
4539         (dbus_g_object_register_marshaller_array): Prototype.
4540         
4541         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4542
4543         * test/glib/test-service-glib.c: Add new test signals and method
4544         to emit them.
4545
4546         * test/glib/test-service-glib.xml: Add some test signals.
4547
4548         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4549         and my-object-marshal.h
4550         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4551         my-object-marshal.c.
4552         (my-object-marshal.c, my-object-marshal.h): Implement.
4553
4554         * test/glib/.cvsignore: Update.
4555
4556         * doc/TODO: Remove two GLib TODO items fixed by this
4557         patch.
4558
4559 2005-06-16  Colin Walters  <walters@verbum.org>
4560
4561         * doc/TODO: Update for GLib bindings.
4562         
4563 2005-06-16  Colin Walters  <walters@verbum.org>
4564
4565         * glib/dbus-binding-tool-glib.c:
4566         * glib/dbus-gobject.c:
4567         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4568         from Ross Burton, for his GLib bindings work.
4569
4570 2005-06-16  Colin Walters  <walters@verbum.org>
4571
4572         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4573         to iterate instead of walking to G_TYPE_INVALID.
4574
4575         Patch based on a patch from Ryan Gammon.
4576
4577 2005-06-16  Colin Walters  <walters@verbum.org>
4578
4579         * bus/bus.c (bus_context_new): Set parser to NULL
4580         after we unref it (Patch from Chris Boscolo, #2174).
4581         
4582 2005-06-16  Colin Walters  <walters@verbum.org>
4583
4584         * python/dbus_bindings.pyx.in: Import size_t,
4585         __int64_t, __uint64_t, and __signed.
4586
4587         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4588         Define cmsg struct, output it.
4589         (_dbus_read_credentials_unix_socket):
4590         Use cmsg struct.
4591         
4592         Patch from Joe Markus Clarke for FreeBSD support.
4593         
4594 2005-06-16  Colin Walters  <walters@verbum.org>
4595
4596         * tools/dbus-send.c (append_array): Use strtok.
4597         (append_dict): New function.
4598         (type_from_name): New function, extracted from main.
4599         (main): Handle sending dicts.
4600
4601         * tools/dbus-print-message.c (print_iter): Print dict
4602         entries.
4603         
4604 2005-06-16  Colin Walters  <walters@verbum.org>
4605
4606         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4607         values as the empty string (#2948).
4608         
4609 2005-06-16  Colin Walters  <walters@verbum.org>
4610
4611         * dbus/Makefile.am:
4612         * mono/doc/Makefile.am:
4613         * test/glib/Makefile.am:
4614
4615         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4616
4617 2005-06-16  Colin Walters  <walters@verbum.org>
4618
4619         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4620         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4621
4622         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4623         Increment pointer after swapping fixed array.  Add assertion
4624         for array length.
4625                 
4626 2005-06-15  Colin Walters  <walters@verbum.org>
4627
4628         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4629         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4630         
4631 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4632
4633         * NEWS: Update to 0.34
4634
4635 2005-06-15  David Zeuthen  <davidz@redhat.com>
4636
4637         * configure.in (LT_CURRENT): Revert back to 1 as the library
4638         hasn't changed and we've certainly not committed to protocol
4639         stability yet.  All this does is to break ABI. See commit note
4640         from hp@redhat.com 2005-05-05 for details.
4641         
4642 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4643
4644         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4645         (_dbus_connection_run_builtin_filters): New method
4646         (dbus_connection_dispatch): Run the builtin filters which in turn
4647         runs the peer filter which handles Ping messages.
4648
4649         * doc/TODO: 
4650          - Ping isn't handled: This patch fixes it
4651          
4652          - Add a test case for the Ping message: added TODO item
4653
4654 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4655
4656         * dbus/dbus-message.c:
4657         (dbus_message_has_path): New method
4658         (dbus_message_has_interface): New method
4659         (dbus_message_has_member): New method
4660
4661         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4662         New method
4663
4664         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4665         the keyring directory is private to the user
4666
4667         * doc/TODO:
4668          - The convenience functions in dbus-bus.h should perhaps have
4669          the signatures that they would have if they were autogenerated
4670          stubs. e.g. the acquire service function. We should also evaluate
4671          which of these functions to include, in light of the fact that
4672          GLib/Qt native stubs will probably also exist.: Punted
4673
4674          - add dbus_message_has_path(), maybe has_member/interface:
4675          fixed in this patch
4676
4677          - in dbus-keyring.c, enforce that the keyring dir is not
4678          world readable/writable: Fixed in this patch
4679
4680 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4681
4682         * dbus/dbus-marshal-validate.h: Added a new validation
4683         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4684         out of memory errors when validating signitures
4685
4686         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4687         in places where we previously used DBUS_VALID and a FALSE return 
4688         value to indicate OOM
4689         
4690         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4691         Use a stack to track the number of elements inside containers.  The 
4692         stack values are then used to validate that dict entries have only two
4693         elements within them.
4694         (validate_body_helper): check the reason for failure when validating
4695         varients
4696         
4697         * dbus/dbus-message.c (load_message): use 
4698         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4699         DBUS_VALID and a FALSE return value to indicate OOM
4700
4701         * doc/TODO: remove "- validate dict entry number of fields" as this
4702         patch fixes it
4703
4704 2005-06-14  David Zeuthen  <davidz@redhat.com>
4705
4706         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4707         watches (if applicable) and add new watches
4708
4709         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4710         (main): Setup SIGIO signal handler if using D_NOTIFY
4711
4712         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4713
4714         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4715         (merge_included): Also merge conf_dirs list
4716         (bus_config_parser_unref): Clear conf_dirs list
4717         (include_dir): Add directory to conf_dirs list
4718         (bus_config_parser_get_conf_dirs): New function
4719
4720         * bus/dir-watch.[ch]: New files
4721
4722         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4723
4724         * configure.in: Add checks for D_NOTIFY on Linux
4725
4726 2005-06-14  Colin Walters  <walters@verbum.org>
4727
4728         * glib/dbus-binding-tool-glib.c:
4729         * glib/dbus-gobject.c:
4730         * glib/dbus-gvalue.c: Fix indentation and brace style.
4731         
4732 2005-06-14  Ross Burton <ross@openedhand.com>.
4733
4734         * glib/dbus-glib.h: Make DBusGMethodInvocation
4735         a private structure.  Rearrange prototypes a bit.
4736         
4737         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4738         documentation for first_arg_type.
4739         
4740         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4741         here, add documentation.  Move dbus_g_method_return
4742         and dbus_g_method_return_error into public API
4743         section.
4744
4745 2005-06-14  Colin Walters  <walters@verbum.org>
4746
4747         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4748         Add missing return statements, noticed by Ross Burton.
4749         
4750 2005-06-13  Ross Burton <ross@openedhand.com>.
4751
4752         * glib/dbus-gobject.c: Handle errors on message
4753         demarshalling by sending error message back.
4754         * glib/dbus-gvalue.c: Initialize return variables.
4755
4756 2005-06-13  Colin Walters  <walters@verbum.org>
4757
4758         * glib/Makefile.am: Fix thinko in last patch.
4759
4760 2005-06-13  Colin Walters  <walters@verbum.org>
4761
4762         * glib/Makefile.am: Move dbus-gtype-specialized.c
4763         and dbus-gtype-specialized.h into a _HEADERS variable,
4764         install them.
4765
4766 2005-06-12  Colin Walters  <walters@verbum.org>
4767
4768         Async signals and various bugfixes and testing by
4769         Ross Burton <ross@openedhand.com>.
4770
4771         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4772         (dbus_gvalue_genmarshal_name_from_type)
4773         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4774         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4775         (dbus_g_value_types_init, dbus_gtype_from_signature)
4776         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4777         (dbus_gtypes_from_arg_signature): New function prototypes.
4778         (dbus_gvalue_demarshal): Take context and error arguments.
4779         (dbus_gvalue_demarshal_variant): New function.
4780         (dbus_gvalue_demarshal_message): New function.
4781         (dbus_gvalue_store): Delete.
4782
4783         * glib/dbus-gvalue.c:
4784
4785         File has been almost entirely rewritten; now we special-case
4786         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4787         hash tables correctly, etc.  Full support for recursive values
4788         is not yet complete.
4789
4790         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4791         argument of signal to G_TYPE_POINTER since we now pass a
4792         structure.
4793         (lookup_g_marshaller): Delete in favor of
4794         _dbus_gobject_lookup_marshaller.
4795         (marshal_dbus_message_to_g_marshaller): Use
4796         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4797         to handle remote signal callbacks.
4798         (dbus_g_proxy_new_from_proxy): New function; creates a new
4799         DBusGProxy by copying an existing one.
4800         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4801         (dbus_g_proxy_get_path): New functions.
4802         (dbus_g_proxy_marshal_args_to_message): New function;
4803         factored out of existing code.
4804         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4805         from a varargs array.
4806         (dbus_g_proxy_begin_call_internal): New function.
4807         (dbus_g_proxy_end_call_internal): New function.
4808         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4809         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4810         after collecting args into value array.
4811         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4812         invoke dbus_g_proxy_end_call_internal.
4813         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4814         end_call_internal.
4815         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4816         types.
4817         (array_free_all): New function.
4818         (dbus_g_proxy_add_signal): Take GTypes.
4819
4820         * glib/dbus-gobject.h:
4821         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4822         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4823         Prototype.
4824
4825         * glib/dbus-gobject.c: Add a global marshal_table hash which
4826         stores mappings from type signatures to marshallers.  Change lots
4827         of invocations of dbus_gtype_to_dbus_type to
4828         dbus_gtype_to_signature.
4829         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4830         (introspect_signals): Fix test for query.return_type.
4831         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4832         (invoke_object_method): Many changes.  Handle asynchronous
4833         invocations.  Convert arguments with
4834         dbus_gvalue_demarshal_message.  Handle errors.  Use
4835         DBusSignatureIter instead of strlen on args. Handle all arguments
4836         generically.  Special-case variants.
4837         (dbus_g_method_return, dbus_g_method_return_error): New function.
4838         (DBusGSignalClosure): New structure, closes over signal
4839         information.
4840         (dbus_g_signal_closure_new): New function.
4841         (dbus_g_signal_closure_finalize): New function.
4842         (signal_emitter_marshaller): New function; is special marshaller
4843         which emits signals on bus.
4844         (export_signals): New function; introspects object signals and
4845         connects to them.
4846         (dbus_g_object_type_install_info): Take GType instead of
4847         GObjectClass.
4848         (dbus_g_connection_register_g_object): Invoke export_signals.
4849         (dbus_g_connection_lookup_g_object): New function.
4850         (DBusGFuncSignature) New structure; used for mapping type
4851         signatures to marshallers.
4852         (funcsig_hash): New function; hashes DBusGFuncSignature.
4853         (funcsig_equal): New function; compares DBusGFuncSignature.
4854         (_dbus_gobject_lookup_marshaller): New function.
4855         (dbus_g_object_register_marshaller): New function; used to
4856         register a marshaller at runtime for a particular signature.
4857
4858         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4859
4860         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4861         which notes a server method implementation should be
4862         asynchronous.
4863
4864         * glib/dbus-binding-tool-glib.c
4865         (dbus_binding_tool_output_glib_server): Call
4866         dbus_g_value_types_init.
4867         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4868         variants specially.
4869         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4870         of a lookup function.
4871         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4872         (write_untyped_out_args): New method; write output arguments.
4873         (write_formal_declarations_for_direction): Function for
4874         writing prototypes.
4875         (write_formal_parameters_for_direction): Function for
4876         writing implementations.
4877         (write_typed_args_for_direction): Function for writing
4878         arguments prefixed with GTypes.
4879         (write_async_method_client): Write out async version
4880         of method.
4881
4882         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4883         (dbus_g_type_get_marshal_name): Move mapping from GType
4884         to marshal name into here.
4885         (dbus_g_type_get_c_name): Move into here.
4886         (compute_marshaller): Convert signature to type with
4887         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4888         (compute_marshaller_name): Ditto.
4889         (compute_marshaller): Handle async signal annotations.
4890         (gather_marshallers): Return if we don't have a known
4891         prefix.
4892         (generate_glue): Collect introspection blob here, and
4893         write all of the blob at the end.  This allows an object
4894         with multiple interfaces to work.
4895         Mark async methods in introspection blob.
4896
4897         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4898         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4899         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4900
4901         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4902         avoids people accidentally using DBUS_TYPE_* which should
4903         not be necessary anymore.
4904         Do include dbus-gtype-specialized.h, which are utilities
4905         for GLib container types.
4906         Add various #defines for types such as
4907         DBUS_TYPE_G_BOOLEAN_ARRAY.
4908         (DBusGValueIterator, DBusGValue): Define, not fully used
4909         yet.
4910         (dbus_g_value_get_g_type): Type for recursive value.
4911         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4912         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4913         (dbus_g_value_free): Prototypes.
4914         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4915         (dbus_g_proxy_set_interface): Prototype.
4916         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4917         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4918         types.
4919         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4920         Accessors.
4921         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4922         doing async invocations.
4923         (dbus_g_method_return, dbus_g_method_return_error):
4924         Prototypes.
4925         * doc/dbus-tutorial.xml: Update GLib section.
4926         
4927         * tools/dbus-viewer.c (load_child_nodes): Update
4928         for new invocation type of dbus_g_proxy_end_call.
4929         (load_from_service_thread_func): Ditto.
4930
4931         * tools/print-introspect.c (main): Ditto.
4932
4933         * tools/dbus-names-model.c (have_names_notify)
4934         (names_model_reload, names_model_set_connection)
4935         Use GTypes.
4936
4937         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4938         needed since Python bindings use GLib bindings.
4939
4940         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4941         Add --prefix argument.
4942
4943         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4944         unneeded --ignore-unsupported arg.
4945         
4946         * test/glib/test-service-glib.c: 
4947         * test/glib/test-service-glib.xml:
4948         * test/glib/test-dbus-glib.c: Add many more tests.
4949
4950 2005-06-06  David Zeuthen  <davidz@redhat.com>
4951
4952         * doc/TODO: Add item about need to remove deprecated functions.
4953
4954         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4955
4956         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4957         to repair the ABI which was broken with the last commit.
4958
4959 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4960
4961         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4962         (dbus_connection_disconnect): renamed to dbus_connection_close 
4963         for API symmetry with dbus_connection_open
4964         (_dbus_connection_open_internal): 
4965         s/dbus_connection_disconnect/dbus_connection_close
4966
4967         * dbus/dbus-bus.c (dbus_bus_get):
4968         s/dbus_connection_disconnect/dbus_connection_close
4969
4970         * bus/connection.c (bus_connections_unref, 
4971         bus_connections_setup_connection, bus_connections_expire_incomplete):
4972         s/dbus_connection_disconnect/dbus_connection_close
4973
4974         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4975         kill_client_connection_unchecked, check_hello_connection):
4976         s/dbus_connection_disconnect/dbus_connection_close
4977
4978         * bus/bus.c (new_connection_callback):
4979         s/dbus_connection_disconnect/dbus_connection_close
4980
4981         * tools/dbus-send.c (main):
4982         s/dbus_connection_disconnect/dbus_connection_close
4983
4984         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4985         s/dbus_connection_disconnect/dbus_connection_close
4986         
4987         * test/test-service.c (path_message_func, filter_func):
4988         s/dbus_connection_disconnect/dbus_connection_close
4989         
4990         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4991         
4992 2005-05-25  Colin Walters  <walters@verbum.org>
4993
4994         * dbus/dbus-protocol.h: Move various bus service #defines such
4995           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4996           dbus/dbus-shared.h.
4997         * dbus/dbus-shared.h: Various defines moved here.
4998         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4999
5000 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5001
5002         * python/__init__.py: Python bindings deserve a minor version
5003         update.  Upped to (0, 40, 2)
5004
5005 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5006
5007         * python/decorators.py: add explicitly_pass_message decorator
5008         for passing in the dbus message as keyword for edge case signal
5009         handling
5010
5011         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5012         to conform with what dbus expects for match rules
5013         (SignalMatchRule.execute): add the dbus message as a keyword
5014         if the signal handler has requested it
5015
5016         * python/examples/example/signal-recipient.py: added some more
5017         examples on how to hook up to signals
5018
5019 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5020
5021         * python/decorators.py: import dbus_bindings
5022
5023         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5024         SignalMatchNode): new classes that implement wildcard signal
5025         callback matching using a tree lookup. Heavily modified from a
5026         patch sent by Celso Pinto (fd.o bug #3241)
5027
5028         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5029         use new match classes to handle signals.
5030
5031 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5032         
5033         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5034
5035 2005-05-18  Havoc Pennington  <hp@redhat.com>
5036
5037         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5038         gettext. Not really worth requiring yet perhaps, but any
5039         production quality 1.0 would require it so we should go ahead and
5040         get things set up. We do have a couple token calls to
5041         bindtextdomain in the code already.
5042
5043 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5044
5045         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5046         when using recursive g_main_loops
5047
5048         * python/_dbus.py (class Bus): add the ProxyObjectClass
5049         alias for ProxyObject to make it easier for the Twisted 
5050         networking framework to integrate dbus.
5051
5052         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5053         alias for ProxyMethod to make it easier for the Twisted 
5054         networking framework to integrate dbus. 
5055
5056 2005-05-11  Ross Burton  <ross@openedhand.com>
5057
5058         * glib/dbus-glib-tool.c: Add --prefix argument.
5059         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5060         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5061         Add prefix argument.
5062         (generate_glue): Pass prefix argument down.
5063         (dbus_binding_tool_output_glib_server): Pass prefix to
5064         glib-genmarshal.
5065         
5066 2005-05-11  Colin Walters  <walters@verbum.org>
5067
5068         * tools/dbus-send.c (append_array): New function.
5069         (append_arg): Broken out from main.
5070         (main): Add cheesy hack to send arrays and variants.
5071         (usage): Update.
5072         * tools/dbus-print-message.c (print_iter): Broken out
5073         from main.
5074
5075 2005-05-11  Colin Walters  <walters@verbum.org>
5076
5077         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5078         New function, returns signature string for signature iter.
5079         * dbus/dbus-signature.h: Prototype it.
5080         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5081         New function, returns signature string for message iter.
5082         (dbus_message_iter_get_array_len): New function, returns
5083         length of array.
5084         (dbus_message_iter_get_fixed_array): Fix assertion; this
5085         function should be used when the iter is pointing to the
5086         contents of an array
5087         * dbus/dbus-message.h: Prototypes.
5088         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5089         New function; returns length of an array.
5090         * dbus/dbus-marshal-recursive.h: Prototype it.
5091         
5092 2005-05-11  Colin Walters  <walters@verbum.org>
5093
5094         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5095         compilation error.
5096         
5097 2005-05-08  Havoc Pennington  <hp@redhat.com>
5098
5099         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5100         daemon's pid, not the parent's pid, to the file descriptor.
5101         Reported by Taj Morton.
5102
5103 2005-05-05  Havoc Pennington  <hp@redhat.com>
5104
5105         * configure.in (LT_*): add notes on how the libtool versioning
5106         works to save thinking. Increment soname to indicate protocol
5107         breakage (though really the library interface hasn't changed I
5108         guess)
5109
5110         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5111         verify the GUID received from server matches what we were
5112         expecting, if we had an expectation
5113
5114         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5115         (_dbus_auth_get_guid_from_server): new function
5116         (send_begin): parse the OK args
5117
5118         * doc/dbus-specification.xml: add GUID to the auth protocol
5119
5120 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5121
5122         * Fix my name in previous changelog ;)
5123
5124         * python/proxies.py (ProxyObject.__getattr__): add further patch
5125         from Anthony Baxter to throw an AttributeError when python 
5126         __special__ functions are called instead of marshling them over 
5127         the bus (Bug#1685 comment 3).
5128
5129 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5130
5131         * python/Makefile.am: changed to use pyexecdir for the binding
5132         shared libraries (Bug#2494)
5133
5134         * python/exceptions.py: bring exceptions over from the bindings
5135         so they can be used in applications (Bug#2036)
5136         Make all exceptions derive from DBusException
5137
5138         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5139         of classes so that print obj doesn't throw an exception (Bug #1685)
5140
5141 2005-05-03  Ross Burton  <ross@openedhand.com>
5142
5143         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5144         Return if we get an error during registration.  Set up a
5145         weak reference on object to unregister if object is destroyed.
5146         (unregister_gobject): New function.
5147         
5148 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5149
5150         * python/dbus_bindings.pyx.in: 
5151         - added new type classes for hinting to the marashaler what type 
5152         to send over the wire
5153         - added int16 and uint16 marshalers
5154         - Fixed a bug in the type constants that caused int32 to go out
5155         as uint16 over the wire
5156         * python/dbus.py: split up into different files and renamed _dbus.py
5157         * python/__init__.py, python/_util.py, python/decorators.py, 
5158         python/exceptions.py, python/proxies.py, python/services.py,
5159         python/types.py: new files split off from dbus.py
5160         * python/Makefile.am: Add new files, remove dbus.py and 
5161         install all python files to <python module dir>/dbus
5162         * python/examples/*: Added #!/usr/bin/env python to the top of
5163         every example.  Patch provided by Tatavarty Kalyan
5164
5165 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5166
5167         * NEWS: Update to 0.33
5168
5169 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5170
5171         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5172         method for doing async calls
5173         (_pending_call_notification): New C function for handling pendning call
5174         callbacks
5175         (set_notify): New method for setting pending call notification
5176         
5177         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5178         Async capabilities added to remote method calls
5179         (Sender): class removed
5180         (RemoteService): class removed
5181         (ObjectTree): class removed for now
5182         (RemoteObject): Renamed to ProxyObject
5183         (RemoteMethod): Renamed to ProxyMethod
5184         (method): Decorator added for decorating python methods as dbus methods
5185         (signal): Decorator added for decorating python methods as signal emitters
5186         (ObjectType): Metaclass added for generating introspection data and the
5187         method callback vtable
5188         (Interface): Wrapper class added to wrap objects in a dbus interface
5189         (Object): Uses ObjectType as its metaclass and exports Introspect
5190         of the org.freedesktop.DBus.Introspectable interface
5191         (ValidationException, UnknownMethodException): new exceptions
5192
5193         * python/examples/*: Modified to fit with the new bindings
5194
5195 2005-04-23  Havoc Pennington  <hp@redhat.com>
5196
5197         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5198         reported by Tony Houghton
5199
5200         * test/test-service.c (main): test
5201         dbus_connection_get_object_path_data()
5202
5203         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5204         the exact_match
5205         (_dbus_object_tree_get_user_data_unlocked): new function used by
5206         dbus_connection_get_object_path_data()
5207         (do_register): add assertion test for get_user_data_unlocked
5208         (object_tree_test_iteration): more tests
5209
5210         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5211         new function from Dan Reed to let you get the user data from 
5212         dbus_connection_register_object_path()
5213
5214 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5215
5216         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5217         in numerous places that did not account for the NULL terminator
5218         (signature_from_seed): changed the manual string copy loop to 
5219         just use strcpy instead
5220         make check should now pass
5221
5222 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5223
5224         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5225         so that it allows messages that are not signals to pass in 
5226         NULL as the interface.
5227
5228 2005-04-18  David Zeuthen  <davidz@redhat.com>
5229
5230         * glib/dbus-gmain.c (io_handler_destroy_source): 
5231         (timeout_handler_destroy_source, connection_setup_free): 
5232         Also unref the source to avoid memory leaks.
5233
5234 2005-04-13  David Zeuthen  <davidz@redhat.com>
5235
5236         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5237         more reasonable, yet still totally arbitrary, value :-). 
5238
5239 2005-04-13  David Zeuthen  <davidz@redhat.com>
5240
5241         * doc/TODO: Added an "important for 1.0" item about selinux
5242         allow/deny messages
5243
5244 2005-04-13  David Zeuthen  <davidz@redhat.com>
5245
5246         * bus/selinux.c: Add c-file-style to top of file
5247         (log_audit_callback): Don't free the data here anymore
5248         (bus_selinux_check): Don't take spid and tpid since appending
5249         that to auxdata may OOM.
5250         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5251         to the caller if we are OOM by taking an error object.
5252         (bus_selinux_allows_send): -do-
5253
5254         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5255         and bus_selinux_allows_send
5256
5257         * bus/bus.c (bus_context_check_security_policy): Pass error and
5258         pass on OOM thrown by bus_selinux_allows_send()
5259
5260         * bus/services.c (bus_registry_acquire_service): Pass error and
5261         pass on OOM thrown by bus_selinux_allows_acquire_service()
5262
5263 2005-04-13  Havoc Pennington  <hp@redhat.com>
5264
5265         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5266         message at a time to avoid monopolizing the main loop, bug 
5267         #2953 from Benjamin Otte
5268
5269 2005-04-09  Havoc Pennington  <hp@redhat.com>
5270
5271         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5272         possible overlap, fix from Daniel Reed
5273         (fixup_alignment): fix signedness warnings
5274         (_dbus_string_append_unichar): ditto
5275
5276 2005-04-09  Havoc Pennington  <hp@redhat.com>
5277
5278         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5279
5280         * glib/dbus-glib-tool.c (main): fix warning
5281
5282         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5283
5284         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5285         add a new function that can be used in simple applications that
5286         don't have a main loop and are willing to block
5287
5288 2005-04-05  David Zeuthen  <davidz@redhat.com>
5289
5290         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5291
5292         * glib/dbus-gmain.c:
5293         (io_handler_destroy_source): Remove from list of IO handlers
5294         of the ConnectionSetup object
5295         (timeout_handler_destroy_source): -do- for timeout handlers
5296         (io_handler_source_finalized): Don't remove from list since
5297         we now do that in io_handler_destroy_source(). Renamed from
5298         io_handler_source_destroyed
5299         (timeout_handler_source_destroyed): -do- for timeout handlers
5300         (connection_setup_free): It is now safe to iterate over all
5301         IO and timeout handlers as the _destroy_source removes them
5302         from the list synchronously
5303
5304 2005-03-30  Havoc Pennington  <hp@redhat.com>
5305
5306         * configure.in: change check to gtk 2.4
5307
5308         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5309         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5310         to 2.4
5311
5312 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5313
5314         * News: Update 0.32
5315
5316         * HACKING: Fixed realease instructions.  configure.in should be updated to
5317           the next release by the person who made the last release.
5318
5319 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5320
5321         * python/lvalue_cast_post_process.py - removed.  Patch has been
5322           submitted to Pyrex maintainers that fixes gcc4.0 errors
5323
5324         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5325
5326 2005-03-24  Daniel Reed  <n@ml.org>
5327
5328         * tools/Makefile.am: Make print-introspect and
5329         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5330
5331 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5332
5333         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5334
5335         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5336           had in Red Hat packages for a while but for some reason never 
5337           got merged upstream
5338           (_dbus_is_a_number): New checks if a string
5339           can be converted to a number and does the conversion if it can
5340           (_dbus_user_database_lookup): Add check to see if the given username
5341           is a udi.  This allows udi's to be used instead of usernames in the
5342           config file.
5343           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5344           is a gdi.  This allows gdi's to be used instead of groupnames in the
5345           config file.
5346
5347 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5348
5349         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5350           code so that it compiles with gcc4.0
5351
5352         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5353           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5354           results back to dbus_binding.c
5355
5356 2005-03-20  Colin Walters  <walters@verbum.org>
5357
5358         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5359
5360         * configure.in: Require GTK+ 2.6.
5361         
5362 2005-03-20  Colin Walters  <walters@verbum.org>
5363
5364         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5365
5366 2005-03-17  Tom Parker  <palfrey@tevp.net>
5367
5368         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5369         print DBUS_UID_UNSET; instead print passed username.  Also
5370         be sure to actually use gid looked up in cache.
5371         
5372         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5373         for DBUS_GID_UNSET and groupname.
5374
5375 2005-03-17  Colin Walters  <walters@verbum.org>
5376
5377         * bus/print-introspect.c: Move to tools/.
5378         * bus/run-with-tmp-session-bus.sh: Ditto.
5379         
5380         * glib/Makefile.am (dbus-glib-bindings.h): Move
5381         generation to tools/Makefile.am.
5382
5383         * test/glib/run-test.sh: Update to handle move
5384         of run-with-tmp-session-bus.sh.
5385
5386         * test/glib/test-service-glib.c: Update to handle
5387         move of dbus-glib-bindings.h.
5388
5389         * tools/print-introspect.c: Moved here
5390         from bus/, and ported to GLib bindings.
5391
5392         * tools/run-with-tmp-session-bus.sh: Moved here
5393         from bus/.
5394
5395         * tools/Makefile.am: Generate dbus-glib-bindings.h
5396         and dbus-bus-introspect.xml here.
5397
5398         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5399         Update.
5400
5401 2005-03-17  Colin Walters  <walters@verbum.org>
5402
5403         * bus/driver.c (write_args_for_direction): Use
5404         _dbus_string_get_const_data to retrieve string;
5405         _dbus_string_get_const_data_len doesn't actually return
5406         a NULL-terminated substring.
5407
5408         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5409         (main): Change to use org_freedesktop_DBus_request_name
5410         instead of using g_proxy_begin_call/end_call.
5411
5412 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5413
5414         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5415         generating the finalizer.  Fixes from Ben Maurer.
5416
5417 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5418
5419         * mono/BusDriver.cs: Update method names: ListServices
5420         becomes ListNames; GetOwner becomes GetNameOwner.
5421
5422         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5423         onto the eval stack when removing the delegate.
5424
5425 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5426
5427         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5428         LT_CURRENT.  Set it to the autoconf variable.
5429                                                                                 
5430         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5431         classes that disconnects the signal handler delegate from the
5432         service object.  Fixes a big leak of proxy objects on the
5433         client side of things.  Patch from Ben Maurer
5434         <bmaurer@ximian.com>
5435
5436 2005-03-12  Colin Walters  <walters@verbum.org>
5437
5438         * bus/driver.c (write_args_for_direction): New function,
5439         parses a type signature into arguments and outputs to
5440         XML.
5441         (bus_driver_handle_introspect): Use it instead of
5442         hardcoding XML for certain signatures.
5443         
5444         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5445         dependency on dbus-daemon.
5446
5447         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5448         argument, pass it to dbus_binding_tool_output_glib_client.
5449
5450         * glib/dbus-binding-tool-glib.c
5451         (generate_client_glue): Protect against multiple inclusion.
5452         (dbus_binding_tool_output_glib_client): Add
5453         G_BEGIN_DECLS/G_END_DECLS.
5454
5455         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5456         Change to just take iface prefix directly.
5457         (write_formal_parameters): Clarify error message.
5458         (check_supported_parameters): New function; checks to see type
5459         signatures of method parameters are supported.
5460         (generate_client_glue): Handle ignore_unsupported flag.
5461         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5462         parameter.
5463
5464         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5465         --ignore-unsupported by default until glib bindings
5466         support arrays.
5467
5468 2005-03-11  Colin Walters  <walters@verbum.org>
5469
5470         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5471         install it.
5472
5473         * bus/print-introspect.c: New file; prints introspection
5474         data for a given name and object path.
5475
5476         * bus/run-with-tmp-session-bus.sh: New file, refactored
5477         from test/glib/run-test.sh.  Creates a temporary session
5478         bus and runs another program.
5479
5480         * test/glib/run-test.sh: Refactor to invoke
5481         run-with-tmp-session-bus.sh.
5482
5483         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5484         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5485         macros instead of hardcoding.
5486
5487         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5488
5489 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5490
5491         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5492         this unref; it doesn't match up evenly in some codepaths.
5493         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5494         this evenly matches with the ref near the top of this function.
5495
5496 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5497
5498         * dbus/dbus-object-tree.c
5499         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5500         and we try to unregister a path that's not registered, still go
5501         through the process of unlocking and don't just return.
5502
5503 2005-03-09  Colin Walters  <walters@verbum.org>
5504
5505         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5506         to this are generated for client-side wrappers.  Invokes a
5507         D-BUS method and returns reply values.  
5508
5509         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5510         function; writes signature string for argument direction.
5511         (write_args_for_direction): Change to pass input values directly
5512         instead of via address, and fix indentation.
5513         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5514         make generated wrappers inlineable.
5515
5516         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5517         note about using dbus_type_is_fixed.
5518
5519         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5520         dbus/dbus-signature.c as dbus_type_is_fixed.
5521
5522         All callers updated.
5523
5524         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5525         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5526
5527         * dbus/dbus-signature.h: Prototype.
5528
5529         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5530         error printf code.
5531
5532         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5533         appropriate instead of just freeing it.
5534         (main): Free returned strings using g_free.
5535
5536         * test/glib/Makefile.am (test-service-glib-glue.h)
5537         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5538
5539         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5540         simply maps a simple D-BUS type to GType.
5541         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5542         GType.
5543         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5544         initialize the value with it.
5545         (dbus_gvalue_binding_type_from_type): Unused, delete.
5546         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5547         various types instead of unmarshalling to value data directly.
5548         Remove can_convert boolean.
5549         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5550         returning directly instead of using can_convert boolean.
5551         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5552         Stores a GValue in a pointer to a value of its corresponding C
5553         type.
5554
5555         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5556         add dbus_gvalue_store.
5557
5558 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5559
5560         Fix a bunch of lifecycle and memory management problems
5561         in the mono bindings.
5562
5563         * mono/Arguments.cs (Arguments): Implement IDisposable
5564
5565         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5566         strictly a static class.
5567
5568         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5569         delegates into this file.
5570         (Connection): Implement IDisposable.
5571         (Dispose): Disconnect the connection and set the raw connection
5572         pointer to IntPtr.Zero.
5573         (~Connection): Call Dispose().
5574         (RegisterObjectPath): Added.  Manages the registration of object
5575         paths so we can cleanly disconnect them at dispose/finalize time.
5576         (UnregisterObjectPath): Ditto.
5577         (set_RawConnection): Unregister all of the object paths when
5578         changing the underlying DBusConnection.  Add them back onto the
5579         new connection, if any.
5580
5581         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5582         more unmanaged resources anymore, so it's not necessary.  Move all
5583         the DBusObjectPathVTable stuff out of here.
5584         (Handler): Save references to our delegates so that they don't get
5585         finalized.  Call Connection.RegisterObjectPath() instead of
5586         dbus_connection_register_object_path() directly.
5587         (Message_Called): Dispose the message after we're finished with
5588         it.
5589
5590         * mono/Message.cs (Message): Implement IDisposable.
5591         (Dispose): Dispose the Arguments, and set the RawMessage to
5592         IntPtr.Zero.
5593         (SendWithReplyAndBlock): We own the ref to the reply that comes
5594         back from dbus_connection_send_with_reply_and_block() so add a
5595         comment about that and unref it after we've constructed a managed
5596         MethodReturn class around it.  Fixes a big, big leak.
5597
5598         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5599         method.
5600         (BuildSignalHandler): After we've sent the Signal message, dispose
5601         of it.
5602         (BuildMethod): Dispose of the method call and reply messages after
5603         we've sent the message and extracted the data we want from the
5604         reply.
5605
5606         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5607         anymore.
5608         (Service_FilterCalled): Dispose of the message after we're
5609         finished with it.
5610
5611 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5612
5613         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5614         After we attach our pending call to the connection, unref
5615         it.  Fixes a leak.
5616  
5617         * mono/Connection.cs (set_RawConnection): Disconnect our
5618         filter and match callbacks from the old connection and
5619         reconnect them to the new connection, if any.
5620
5621         * mono/DBusType/Array.cs: "Code" is a static member, so
5622         don't use "this" to refer to it.  Fix for stricter checking
5623         in Mono 1.1.4.
5624  
5625         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5626         object path that we pass into unmanaged code.
5627  
5628         * mono/DBusType/String.cs (Append): Don't leak the string
5629         that we pass into unmanged code.
5630
5631 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5632         * NEWS: Update for 0.31
5633
5634         * configure.in: Release 0.31
5635         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5636
5637         * qt/Makefile.am: fixed build
5638
5639         * dbus/Makefile.am: soname bump for libdbus
5640
5641         * glib/Makefile.am: soname bump for libdbus-glib
5642
5643 2005-03-05  Havoc Pennington  <hp@redhat.com>
5644
5645         * dbus/dbus-sysdeps.c:
5646         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5647         value
5648         (_dbus_generate_random_bytes_buffer): fix return value
5649
5650         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5651         checks actually work, from Tom Parker <fdo@tevp.net>
5652
5653 2005-03-01  Colin Walters  <walters@verbum.org>
5654
5655         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5656         functions copied from dbus-glib-tool.c.
5657         (main): Convert lots of error code to use them.
5658         Also add some testing for introspection bits.
5659
5660 2005-03-01  Colin Walters  <walters@verbum.org>
5661         
5662         * doc/TODO: Remove introspection signature TODO.
5663
5664 2005-02-27  Colin Walters  <walters@verbum.org>
5665
5666         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5667         Change return value to const char * instead of int so we can do
5668         full signatures.
5669         (struct PropertyInfo, struct ArgInfo): Store char *.
5670         (property_info_new, arg_info_new): Update parameters, strdup.
5671         (property_info_unref, arg_info_unref): Free.
5672
5673         * glib/dbus-gidl.h: Update prototypes.
5674
5675         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5676         (validate_signature): New function, just validates signature and
5677         sets GError.
5678         (parse_property, parse_arg): Invoke validate_signature.  Store
5679         signature instead of just type code.
5680
5681         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5682         function to return a primary type for a signature, dropping
5683         information about types in container types.
5684         (dbus_gvalue_genmarshal_name_from_type)
5685         (dbus_gvalue_binding_type_from_type)
5686         (dbus_gvalue_ctype_from_type): Update to take full signature
5687          instead of type code.
5688         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5689
5690         * glib/dbus-gvalue.h: Update prototypes for above.
5691
5692         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5693         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5694         (introspect_properties, introspect_signals, write_interface):
5695         Update to handle signatures, and remove usage of
5696         _dbus_gutils_type_to_string.
5697         (handle_introspect): Print out type codes instead of e.g. "string"
5698         in hardcoded introspection XML; also use x_AS_STRING constants
5699         instead of hardcoding in string.
5700
5701         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5702         to string.  Remove usage of _dbus_gutils_type_to_string.
5703
5704         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5705
5706         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5707         deletion.
5708         
5709         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5710         (compute_marshaller_name, generate_glue): Handle signature change
5711         to string.
5712         (write_formal_parameters, write_args_for_direction): Ditto, and
5713         remove FIXME.
5714
5715         * tools/dbus-tree-view.c (type_to_string): Delete.
5716         (info_set_func_text): Update to print full signatures.
5717
5718         * test/glib/test-service-glib.xml: Change types to new
5719         introspection format.
5720
5721 2005-02-26  Havoc Pennington  <hp@redhat.com>
5722
5723         * doc/TODO: remove the "guid" item
5724
5725         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5726         (with_bus_thread_func): use open_private
5727
5728         * dbus/dbus-connection.c (dbus_connection_open_private): new
5729         function that works like the old dbus_connection_open()
5730         (dbus_connection_open): now returns an existing connection if
5731         possible
5732
5733         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5734         through the GUID to the transport
5735
5736         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5737         GUID in hex-encoded form.
5738
5739         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5740         pass GUID argument in to the transport
5741
5742         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5743         guid argument
5744
5745         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5746
5747         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5748
5749 2005-02-25  Havoc Pennington  <hp@redhat.com>
5750
5751         * doc/dbus-specification.xml: document the GUID thing
5752
5753         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5754         globally unique ID for the server, and put a "guid=hexencoded"
5755         field in the address
5756
5757         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5758
5759         * dbus/dbus-message.c: ditto
5760
5761         * dbus/dbus-dataslot.c: ditto
5762
5763         * dbus/dbus-list.c: ditto
5764
5765         * dbus/dbus-internals.h: wait, just include
5766         dbus-threads-internal.h here
5767         
5768         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5769         use in main library
5770
5771         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5772
5773 2005-02-24  Colin Walters  <walters@verbum.org>
5774
5775         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5776
5777 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5778
5779         * glib/Makefile.am: added dbus-gobject.h to sources list
5780         so distcheck doesn't fail
5781         
5782 2005-02-24  Havoc Pennington  <hp@redhat.com>
5783
5784         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5785         you must disconnect before unref, since locking and other things
5786         are screwed up otherwise. Fix assorted other locking stuff.
5787
5788         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5789         fix compilation
5790
5791         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5792         into a private header and don't export from the library
5793
5794         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5795
5796 2005-02-24  Colin Walters  <walters@verbum.org>
5797         
5798         * dbus/dbus-signature.c: New file; implements various functions
5799         related to type signatures.  Includes an interator for parsing,
5800         validation functions.
5801         (dbus_type_is_basic): Moved here from
5802         dbus-marshal-basic.c:_dbus_type_is_basic.
5803         (dbus_type_is_container): Moved here from
5804         dbus-marshal-basic.c:_dbus_type_is_container.
5805
5806         All callers of _dbus_type_is_container and _dbus_type_is_basic
5807         updated, and include dbus-signature.h.
5808
5809         * dbus/dbus-signature.h: New file; prototypes for the above.
5810
5811         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5812         dbus-signature.h.
5813
5814         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5815         function factored out of _dbus_first_type_in_signature.
5816         (_dbus_first_type_in_signature_c_str): New function; returns first
5817         type code for a type signature character.
5818
5819         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5820         handle function moves.
5821
5822         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5823
5824         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5825         function; skips to next complete type in type signature.
5826         Implemented using previous skip_one_complete_type.  Now
5827         skip_one_complete_type just delegates to
5828         _dbus_type_signature_next.
5829
5830         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5831         to dbus-signature.c
5832         (_dbus_type_is_container): Ditto.
5833
5834         * doc/dbus-specification.xml: Update introspection sample to
5835         use real type signatures.
5836
5837         * dbus/dbus-test.h: Prototype signature test.
5838
5839         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5840         signature tests.
5841
5842         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5843
5844 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5845
5846         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5847         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5848
5849 2005-02-21  Colin Walters  <walters@verbum.org>
5850
5851         * dbus/dbus-test-main.c (main): Take optional specific test
5852         argument.
5853
5854         * dbus/dbus-test.c (run_test): New function, runs a test function
5855         with no data directory.
5856         (run_data_test): Like above, but takes data directory.
5857         (dbus_internal_do_not_use_run_tests): Take
5858         specific test argument.  Replace lots of cut n' paste code
5859         with run_test and run_data_test.
5860
5861         * dbus/dbus-test.h: Update prototype for
5862         dbus_internal_do_not_use_run_tests.
5863
5864 2005-02-20  Havoc Pennington  <hp@redhat.com>
5865
5866         Fix bugs reported by Daniel P. Berrange
5867         
5868         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5869         (protected_change_watch): new function
5870         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5871         (_dbus_server_add_watch): change to work like the
5872         dbus-connection.c equivalents; like those, probably kind of
5873         busted, but should at least mostly work for now
5874         (dbus_server_disconnect): drop the lock if we were already
5875         disconnected, patch from Daniel P. Berrange
5876
5877         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5878         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5879         same stuff
5880
5881         * doc/TODO: todo about unscrewing this mess
5882
5883 2005-02-19  Colin Walters  <walters@verbum.org>
5884
5885         * glib/dbus-binding-tool-glib.c
5886         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5887
5888         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5889         as errno.h and sys/stat.h.
5890         (lose): New function, prints error with
5891         newline and exits.
5892         (lose_gerror): Similar, but takes GError for message.
5893         (main): Add --output argument to specify output file to write to,
5894         instead of always printing to stdout.  In this mode, determine
5895         timestamps on source files to see whether any are newer than the
5896         target file.  If not, exit.  Also convert a number of error
5897         messages to use lose (since it's shorter), and switch to using
5898         g_io_channel_shutdown.
5899
5900 2005-02-19  Havoc Pennington  <hp@redhat.com>
5901
5902         * glib/dbus-gobject.c
5903         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5904
5905         * glib/dbus-glib.c: fix doxygen warnings
5906
5907         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5908         is found on an <arg>
5909
5910 2005-02-17  Colin Walters  <walters@verbum.org>
5911
5912         * glib/dbus-gobject.h: Don't export
5913         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5914         
5915         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5916         (invoke_object_method): Handle it.
5917
5918         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5919         Handle rename.
5920         
5921 2005-02-17  Colin Walters  <walters@verbum.org>
5922
5923         * bus/.cvsignore, doc/.cvsignore
5924         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5925         Update.
5926
5927 2005-02-17  Colin Walters  <walters@verbum.org>
5928         
5929         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5930         Rename to DBUS_SERVICE_DBUS.
5931         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5932         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5933         Change the value from "org.freedesktop.Local"
5934         to "org.freedesktop.DBus.Local".
5935         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5936         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5937         DBUS_INTERFACE_INTROSPECTABLE.
5938         Change the value from "org.freedesktop.Introspectable"
5939         to "org.freedesktop.DBus.Introspectable".
5940         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5941         DBUS_INTERFACE_PROPERTIES.
5942         Change the value from "org.freedesktop.Properties"
5943         to "org.freedesktop.DBus.Properties".
5944         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5945         DBUS_INTERFACE_PEER.
5946         Change the value from "org.freedesktop.Peer"
5947         to "org.freedesktop.DBus.Peer".
5948         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5949         DBUS_INTERFACE_LOCAL.
5950         Change the value from "org.freedesktop.Local"
5951         to "org.freedesktop.DBus.Local".
5952
5953         All other users of those constants have been changed.
5954
5955         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5956
5957         * glib/dbus-gobject.c (handle_introspect): Use constants.
5958
5959         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5960
5961 2005-02-17  Colin Walters  <walters@verbum.org>
5962
5963         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5964         (parse_node, parse_interface, parse_method, parse_signal)
5965         (parse_property, parse_annotation): Lose if we're currently in an
5966         annotation.
5967         (parse_annotation): New function.
5968         (parser_start_element, parser_end_element): Handle annotation.
5969         (parse_method, parse_interface): Remove support for c_name attribute,
5970         switch to annotations.
5971
5972         * glib/dbus-gidl.h (interface_info_get_binding_names)
5973         (method_info_get_binding_names)
5974         (interface_info_get_binding_name, method_info_get_binding_name)
5975         (interface_info_set_binding_name, method_info_set_binding_name):
5976         Remove.
5977         (interface_info_get_annotations, method_info_get_annotations)
5978         (interface_info_get_annotation, method_info_get_annotation)
5979         (interface_info_add_annotation, method_info_add_annotation):
5980         Prototype.
5981
5982         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5983         for "bindings".
5984         (struct MethodInfo): Ditto.
5985         Straightfoward conversion of binding methods into annotation methods
5986         as prototyped.
5987
5988         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5989
5990         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5991
5992         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5993         Use new annotation API.
5994
5995         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5996         annotation element.
5997         
5998         * doc/dbus-specification.xml: Discuss introspection annotations,
5999         include list of well-known annotations.
6000
6001         * test/glib/test-service-glib.xml: Make validate against new DTD.
6002
6003 2005-02-17  Colin Walters  <walters@verbum.org>
6004
6005         This patch is based on initial work from
6006         Paul Kuliniewicz <kuliniew@purdue.edu>.
6007
6008         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6009         initialization of GValue from dbus type to here.
6010         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6011         for the "glib-genmarshal" program from a DBus type.
6012         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6013         into the C name for it we use in the glib bindings.
6014         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6015         glib C type (not GValue).
6016         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6017
6018         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6019         from dbus-gobject.c.
6020
6021         * glib/dbus-gutils.h: Prototype it.
6022
6023         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6024         (marshal_dbus_message_to_g_marshaller): Use new shared function
6025         dbus_glib_marshal_dbus_message_to_gvalue_array.
6026
6027         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6028         Will be changed once we have annotations.
6029
6030         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6031         GStaticRWLock.  Callers updated.
6032         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6033         (string_table_next): New function for iterating over zero-terminated
6034         string value array.
6035         (string_table_lookup): New function; retrieves specific entry in
6036         array.
6037         (get_method_data): New function; look up method data in object data chunk.
6038         (object_error_domain_prefix_from_object_info)
6039         (object_error_code_from_object_info): New functions, but not implemented yet.
6040         (method_interface_from_object_info): New function; retrieve interface name.
6041         (method_name_from_object_info): New function; retrieve method name.
6042         (method_arg_info_from_object_info): New function; retrieve argument data.
6043         (arg_iterate): New function; iterates over serialized argument data.
6044         (method_dir_signature_from_object_info): New function; returns a
6045         GString holding type signature for arguments for just one
6046         direction (input or output).
6047         (method_input_signature_from_object_info)
6048         (method_output_signature_from_object_info): New functions.
6049         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6050         converts dbus message arguments into a GValue array.  Used for both
6051         signal handling and method invocation.
6052         (struct DBusGlibWriteIterfaceData): New utility structure.
6053         (write_interface): New function; generate introspection XML for
6054         an interface.
6055         (introspect_interfaces): New function; gathers all interface->methods,
6056         generates introspection XML for them.
6057         (handle_introspect): Invoke introspect_interfaces.
6058         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6059         (lookup_object_and_method): New function; examines an incoming message
6060         and attempts to match it up (via interface, method name, and argument
6061         signature) with a known object and method.
6062         (gerror_domaincode_to_dbus_error_name): New function; converts a
6063         GError domain and code into a DBus error name.  Needs GError data
6064         added to object introspection to work well.
6065         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6066         GError.
6067         (invoke_object_method): New function to invoke an object method
6068         looked up via lookup_object_and_method.  Parses the incoming
6069         message, turns it into a GValue array, then invokes the marshaller
6070         specified in the DBusGMethodInfo.  Creates a new message with
6071         either return values or error message as appropriate.
6072         (gobject_message_function): Invoke lookup_object_and_method and
6073         invoke_object_method.
6074
6075         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6076         (enum DBusBindingOutputMode): New enum for binding output modes.
6077         (pretty_print): Print binding names.
6078         (dbus_binding_tool_error_quark): GError bits.
6079         (version): Fix typo.
6080         (main): Create GIOChannel for output.  Parse new --mode argument,
6081         possible values are "pretty-print", "glib-server", "glib-client".
6082         Use mode to invoke appropriate function.
6083         
6084         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6085
6086         * glib/dbus-glib-tool.h: New header, just includes GError bits
6087         for now.
6088
6089         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6090         maps binding style to name.
6091         (struct MethodInfo): Ditto.
6092         (get_hash_keys, get_hash_key): Utility function, returns keys for
6093         a GHashTable.
6094         (interface_info_new, method_info_new): Initialize bindings.
6095         (interface_info_unref, method_info_unref): Destroy bindings.
6096         (method_info_get_binding_names, method_info_get_binding_name)
6097         (interface_info_get_binding_names, interface_info_get_binding_name):
6098         Functions for retrieving binding names.
6099         (method_info_set_binding_name, interface_info_set_binding_name):
6100         Functions for setting binding names.
6101
6102         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6103         for glib binding generation.
6104
6105         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6106         and client-side glib glue generation.
6107
6108         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6109         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6110         dbus-glib-tool.h.
6111
6112         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6113         of using GClosureMarshal directly.
6114         (struct DBusGObjectInfo): Add n_infos member.
6115
6116         * test/glib/test-service-glib.xml: New file; contains introspection data
6117         for MyTestObject used in test-service-glib.c.
6118
6119         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6120         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6121         (my_object_uppercase, my_object_many_args): New test methods.
6122         (main): Use dbus_g_object_class_install_info to include generated object
6123         info.
6124
6125         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6126         as well as client-side bindings.
6127
6128         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6129         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6130         using both the dbus_gproxy stuff directly as well as the generated bindings.
6131
6132 2005-02-15  Havoc Pennington  <hp@redhat.com>
6133
6134         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6135         complete a pending call, don't run filters first.
6136
6137         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6138         dbus_pending_call_steal_reply
6139
6140         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6141         _dbus_connection_block_pending_call
6142         (dbus_pending_call_get_reply): change to steal_reply and return a
6143         ref
6144
6145         * dbus/dbus-connection.c
6146         (dbus_connection_send_with_reply_and_block): port to work in terms
6147         of DBusPendingCall
6148         (_dbus_connection_block_pending_call): replace block_for_reply
6149         with this
6150
6151 2005-02-14  Havoc Pennington  <hp@redhat.com>
6152
6153         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6154         properly handle looking up group information by name; fix 
6155         from j@bootlab.org
6156
6157 2005-02-13  Havoc Pennington  <hp@redhat.com>
6158
6159         * dbus/dbus-connection.c (dbus_connection_return_message) 
6160         (dbus_connection_borrow_message): hold dispatch lock while message
6161         is outstanding
6162         (_dbus_connection_block_for_reply): hold dispatch lock while we
6163         block for the reply, so nobody steals our reply
6164         (dbus_connection_pop_message): hold the dispatch lock while we
6165         pluck the message
6166
6167 2005-02-13  Havoc Pennington  <hp@redhat.com>
6168
6169         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6170         (_dbus_connection_release_dispatch)
6171         (_dbus_connection_acquire_io_path)
6172         (_dbus_connection_release_io_path): make the mutex and condvar
6173         control access to the "acquired" flag. Drop the connection lock
6174         while waiting on the condvar. Hopefully these are baby steps in
6175         roughly the right direction.
6176
6177 2005-02-13  Havoc Pennington  <hp@redhat.com>
6178
6179         * dbus/dbus-connection.c: use separate mutexes for the condition
6180         variables; this is some kind of baseline for sanity, but the
6181         condition variables still aren't used correctly afaict
6182
6183 2005-02-13  Havoc Pennington  <hp@redhat.com>
6184
6185         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6186         fix a double-unlock
6187
6188         * dbus/dbus-connection.c
6189         (_dbus_connection_detach_pending_call_unlocked): add this
6190
6191         Initial semi-correct pass through to fix thread locking; there are
6192         still some issues with the condition variable paths I'm pretty
6193         sure
6194         
6195         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6196         lock/unlock calls
6197
6198         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6199         rename to add _unlocked
6200         (struct DBusConnection): move "dispatch_acquired" and
6201         "io_path_acquired" to use only one bit each.
6202         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6203         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6204         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6205         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6206         (_dbus_connection_remove_timeout) 
6207         (_dbus_connection_toggle_timeout): drop lock when calling out to
6208         user functions; done in a hacky/bad way.
6209         (_dbus_connection_send_and_unlock): add a missing unlock
6210         (_dbus_connection_block_for_reply): add a missing unlock
6211
6212         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6213         drop lock in a hacky probably unsafe way to call out to user
6214         function
6215
6216 2005-02-12  Havoc Pennington  <hp@redhat.com>
6217
6218         * tools/dbus-tree-view.c (info_set_func_text): display more
6219         details on args
6220
6221         * bus/driver.c (bus_driver_handle_list_services): list the bus
6222         driver
6223
6224         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6225
6226         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6227         (method_info_get_n_args): new function
6228
6229 2005-02-12  Havoc Pennington  <hp@redhat.com>
6230
6231         * bus/driver.c (bus_driver_handle_introspect): add introspection
6232         for bus driver
6233
6234 2005-02-12  Havoc Pennington  <hp@redhat.com>
6235
6236         * bus/driver.c: put the signature of each bus driver method in the
6237         table of handlers and check it on incoming calls; this isn't
6238         really useful, but going to add introspect support in a minute.
6239
6240 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6241
6242         * mono/Connection.cs: The unpredictability of finalizers in mono
6243         prevents us from deterministically disconnecting the filters from
6244         the Service class's finalizer, so move tracking of filters and
6245         matches here.  Add API for that.
6246
6247         * mono/Service.cs: Remove the code, add code which calls the
6248         methods now on the Connection class.
6249
6250 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6251
6252         * python/dbus.py (class Sender): added to support dbus signals better
6253         (Bus::add_signal_receiver): added expand_args parameter which defaults
6254         to True.  When expand args is True the signal handler will pass the 
6255         message arguments as parameters to the signal handler.  If False
6256         revert to previous behavior where the signal handler must get the
6257         argument list from the message.  This is to help port applications
6258         like HAL that have a tendancy to send variable length argument lists.
6259         self._match_rule_to_receivers is now a dict of dicts.
6260         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6261         removing it from a list
6262         (Bus::_signal_func): change signal handlers so that interface,
6263         signal_name, service, path and message are packed into a Sender
6264         object and that is passed to the handler.  If expand_args is True
6265         extract the args list from the message and append it to the parameter
6266         list
6267         
6268         * python/dbus_bindings.pyx.in (class Signature): added to support 
6269         signiature types
6270         (MessageIter::__init__): changed iteration limit to match D-BUS
6271         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6272         STRUCT and VARIENT type support
6273         (MessageIter::python_value_to_dbus_sig): made recursive to support
6274         recursive types
6275         (MessageIter::append*): added Signature, dict, tuple 
6276         support
6277
6278         * python/examples/example-client.py: added examples of getting tuples
6279         and dicts
6280
6281         * python/examples/example-service.py: added examples of sending tuples
6282         and dicts
6283
6284         * python/examples/example-signal-recipient.py: Fixed to handle new
6285         signal callback format
6286
6287 2005-02-10  Havoc Pennington  <hp@redhat.com>
6288
6289         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6290         (call dbus_g_proxy_add_signal)
6291
6292         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6293         escape the hostname
6294         (_dbus_server_new_for_domain_socket): escape the path
6295
6296         * dbus/dbus-address.c (dbus_address_escape_value): new
6297         (dbus_address_unescape_value): new
6298         (dbus_parse_address): unescape values
6299
6300         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6301
6302         * doc/dbus-specification.xml: explain how to escape values in
6303         addresses
6304
6305 2005-02-10  Havoc Pennington  <hp@redhat.com>
6306
6307         * dbus/dbus-message-factory.c (generate_special): modify test to
6308         avoid using a non-basic dict key
6309
6310         * dbus/dbus-marshal-validate-util.c: add test for the below
6311
6312         * doc/dbus-specification.xml: require that dict keys are a basic
6313         type
6314
6315         * dbus/dbus-marshal-validate.c
6316         (_dbus_validate_signature_with_reason): require that dict key is a
6317         basic type
6318
6319 2005-02-10  Havoc Pennington  <hp@redhat.com>
6320
6321         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6322         change to be _and_unlock instead of _unlocked
6323
6324         * dbus/dbus-connection.c
6325         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6326         have no_update so we can find this bug quickly in future
6327
6328 2005-02-10  Havoc Pennington  <hp@redhat.com>
6329
6330         * dbus/dbus-message-util.c (verify_test_message): tests for string
6331         array
6332
6333         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6334         support for arrays of string/signature/path
6335
6336 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6337
6338         * dbus/dbus-connection.c
6339         (_dbus_connection_queue_received_message_link,
6340         _dbus_connection_message_sent): Add the path to
6341         the verbose output.
6342         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6343         _dbus_connection_send_preallocated_unlocked(), updated the
6344         dispatch status, and unlocks.  Fixes a bug where certain
6345         situations (like a broken pipe) could cause a Disconnect message
6346         to not be sent, tricking the bus into thinking a service was still
6347         there when the process had quit.
6348         (_dbus_connection_send_preallocated): Call
6349         _dbus_connection_send_preallocated_and_unlock().
6350         (_dbus_connection_send_and_unlock): Added.  Calls
6351         _dbus_connection_send_preallocated_and_unlock().
6352         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6353         (dbus_connection_send_with_reply): Update the dispatch status and
6354         unlock.
6355
6356         * mono/Service.cs (~Service): Added.  Removes the filter so that
6357         we don't get unmanaged code calling back into a GCed delegate.
6358         (RemoveFilter); Added.
6359
6360 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6361
6362         * dbus/dbus-message.c (dbus_message_iter_open_container):
6363         - Removed check for iterator type being an array because
6364         get_arg_type does not work with writer iterators
6365         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6366
6367 2005-02-07  Havoc Pennington  <hp@redhat.com>
6368
6369         * doc/dbus-specification.xml: some more language cleanups; add
6370         stuff about how to deal with invalid protocol and extension
6371         points; add _ to allowed chars in auth commands; add EXTENSION_
6372         auth command prefix
6373
6374 2005-02-06  Havoc Pennington  <hp@redhat.com>
6375
6376         * s/expected/required/ in a couple places for clarity
6377
6378 2005-02-07  Colin Walters  <walters@verbum.org>
6379
6380         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6381         sender or proposed_recipient.
6382
6383 2005-02-06  Havoc Pennington  <hp@redhat.com>
6384
6385         * dbus/dbus-message-factory.c (generate_special): more tests
6386
6387         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6388         array length that exceeds the maximum
6389
6390 2005-02-05  Havoc Pennington  <hp@redhat.com>
6391
6392         * dbus/dbus-message-factory.c (generate_special): more test cases,
6393         increasing coverage
6394
6395         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6396         reason why a signature was invalid
6397
6398         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6399         skip the length of the string before we look at it in validation
6400
6401         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6402         equal_substring
6403
6404         * dbus/dbus-message.c (_dbus_message_loader_new): default
6405         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6406
6407 2005-02-05  Havoc Pennington  <hp@redhat.com>
6408
6409         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6410         if the signature of a variant was empty
6411         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6412         struct with no element type)
6413
6414         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6415         mangled messages to break things
6416
6417 2005-02-04  Havoc Pennington  <hp@redhat.com>
6418
6419         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6420         g_quark_try_string() so it actually can return 0
6421         (dbus_g_proxy_connect_signal): ditto
6422
6423 2005-02-04  Havoc Pennington  <hp@redhat.com>
6424
6425         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6426         bogus warning
6427         (tristring_from_message): assert cleanly on null path/interface
6428         (should not be possible though I decided later)
6429         (dbus_g_proxy_dispose): move proxy manager unregistration here
6430         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6431         g_return_if_fail() checks
6432
6433 2005-02-04  Havoc Pennington  <hp@redhat.com>
6434
6435         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6436
6437         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6438         (with some minor changes)
6439
6440         * doc/dbus-specification.xml: add deprecated attribute to
6441         introspection format
6442
6443 2005-01-31  Havoc Pennington  <hp@redhat.com>
6444
6445         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6446         think it's sort of right
6447
6448 2005-01-30  Havoc Pennington  <hp@redhat.com>
6449
6450         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6451
6452 2005-01-30  Havoc Pennington  <hp@redhat.com>
6453
6454         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6455
6456         * autogen.sh: change to autotools 1.9
6457
6458         * glib/dbus-gproxy.c: completely change how signals work
6459         (dbus_g_proxy_add_signal): new function to specify signature of a
6460         signal
6461         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6462         and g_warning if the incoming message has the wrong signature.
6463
6464 2005-01-30  Havoc Pennington  <hp@redhat.com>
6465
6466         * tools/dbus-names-model.c (have_names_notify): fix this
6467
6468         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6469         up the string array handling a bit 
6470
6471 2005-01-30  Havoc Pennington  <hp@redhat.com>
6472
6473         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6474         (dbus_g_pending_call_cancel): new function
6475
6476         * dbus/dbus-glib.h: move GType decls for connection/message here;
6477         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6478         here, just kind of rationalizing how we handle all that
6479
6480         * tools/dbus-names-model.c: new file for a tree model listing the
6481         services on a bus
6482
6483         * tools/dbus-tree-view.c (model_new): use proper typing on the
6484         model rows
6485
6486 2005-01-30  Havoc Pennington  <hp@redhat.com>
6487
6488         * glib/dbus-gmain.c: add a custom GSource back that just checks
6489         whether the message queue has anything in it; otherwise, there are 
6490         cases where we won't see messages in the queue since there was no 
6491         IO visible to the glib main loop
6492
6493         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6494         increase default message timeout to 25 seconds
6495
6496 2005-01-30  Havoc Pennington  <hp@redhat.com>
6497
6498         * test/glib/test-profile.c (no_bus_stop_server): remove the
6499         warning about the g_warning that I just fixed
6500
6501         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6502         custom source, seems to be a lot easier to understand and work
6503         better.
6504
6505 2005-01-30  Havoc Pennington  <hp@redhat.com>
6506
6507         I think this main loop thing is conceptually broken, but here are 
6508         some band aids. I'll maybe rewrite it in a minute.
6509         
6510         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6511         custom GSource, so don't pass it in; confusing
6512         (gsource_server_finalize, gsource_connection_finalize): add
6513         finalize handlers that remove all the watches.  
6514
6515 2005-01-30  Havoc Pennington  <hp@redhat.com>
6516
6517         * glib/dbus-gobject.c (introspect_properties): fix the XML
6518         generated
6519
6520         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6521         which effectively detects the use of freed messages
6522
6523         * glib/dbus-gobject.c (handle_introspect): modify and return the
6524         reply message instead of the incoming message
6525
6526         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6527         gee, maybe it should SEND THE XML instead of just making a string
6528         and freeing it again ;-)
6529
6530         * tools/dbus-print-message.c (print_message): improve printing of
6531         messages
6532
6533         * configure.in: add debug-glib.service to the output
6534
6535 2005-01-30  Havoc Pennington  <hp@redhat.com>
6536
6537         dbus-viewer introspected and displayed the bus driver
6538         
6539         * dbus/dbus-object-tree.c 
6540         (object_tree_test_iteration): add tests for a handler registered on "/"
6541
6542         * dbus/dbus-object-tree.c
6543         (_dbus_decompose_path): fix to handle path "/" properly
6544         (run_decompose_tests): add tests for path decomposition
6545         
6546         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6547         properly
6548
6549         * glib/dbus-gobject.c (handle_introspect): fix quotes
6550
6551         * test/glib/run-test.sh: support launching the bus, then running
6552         dbus-viewer
6553
6554         * test/glib/test-service-glib.c (main): put in a trivial gobject
6555         subclass and register it on the connection
6556
6557         * bus/driver.c (bus_driver_handle_introspect): implement
6558         introspection of the bus driver service
6559
6560         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6561         identifiers, doctype decl
6562
6563         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6564         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6565         returning the service unchanged.
6566         (bus_driver_handle_message): remove old check for reply_serial in
6567         method calls, now the message type deals with that
6568         (bus_driver_handle_message): handle NULL interface
6569
6570         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6571
6572         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6573         -1 for len
6574
6575         * tools/dbus-viewer.c: add support for introspecting a service on
6576         a bus
6577
6578         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6579         (dbus_g_pending_call_unref): add
6580
6581 2005-01-29  Havoc Pennington  <hp@redhat.com>
6582
6583         * tools/dbus-tree-view.c: add support for displaying properties.
6584         (run dbus-viewer with an introspect xml file as arg, then resize
6585         the window so the tree elements show up, not sure what that is)
6586
6587         * glib/dbus-gobject.c (handle_introspect): return
6588         org.freedesktop.Properties and org.freedesktop.Introspectable
6589         interfaces when we are introspected.
6590
6591         * doc/dbus-specification.xml: allow empty interface name when 
6592         Get/Set a property
6593
6594 2005-01-29  Havoc Pennington  <hp@redhat.com>
6595
6596         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6597         though it uses glib, it could be extended for any binding in
6598         principle
6599
6600         * glib/dbus-gobject.c (gobject_message_function): change to the
6601         new way properties work
6602
6603         * dbus/dbus-protocol.h: add the new interfaces
6604
6605         * doc/dbus-specification.xml: document the introspection format,
6606         Introspectable interface, and add an org.freedesktop.Properties
6607         interface.
6608
6609         * glib/dbus-gparser.c: add support for a <property> element
6610
6611         * glib/dbus-gidl.c: add PropertyInfo
6612
6613         * glib/dbus-gobject.c (handle_introspect): put the outermost
6614         <node> outside the signal and property descriptions.
6615         (introspect_properties): export properties as <property> rather
6616         than as method calls
6617
6618 2005-01-28  Havoc Pennington  <hp@redhat.com>
6619
6620         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6621         related to authentication protocol
6622
6623 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6624
6625         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6626                 - BUS_ACTIVATION -> BUS_STARTER
6627                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6628                 - class MessageIter (__init__): Added recursion checking 
6629                 so we throw a nice error instead of just disconnecting from the
6630                 bus.
6631                 (get): Added arg_type parameter for recursion.
6632                 Removed the nil type
6633                 Added signiture type placeholder (not implemented)
6634                 Added struct type placeholder (not implemented)
6635                 Added varient type placeholder (not implemented)
6636                 Commented out dict type for now     
6637                 (get_element_type): renamed from get_array_type
6638                 (get_*): changed to use the dbus_message_iter_get_basic API
6639                 (get_*_array): removed in favor of recursive get_array method
6640                 (get_array): new recursive method which calls get to marshal
6641                 the elements of the array
6642                 (value_to_dbus_sig): New method returns the corrasponding
6643                 dbus signiture to a python value
6644                 (append): Comment out dict handling for now
6645                 Handle lists with the new recursive API
6646                 Comment out None handling for now
6647                 (append_nil): removed
6648                 (append_*): changed to use dbus_message_iter_append_basic API
6649                 (append_*_array): removed in favor of recursive append_array 
6650                 method
6651                 (__str__): Make it easier to print out recursive iterators
6652                 for debugging
6653                 - class Message (__str__): moved type inspection to the
6654                 MessageIter class' __str__ method
6655                 (get_iter): Added an append parameter wich defaults to False
6656                 If True use the new API's to create an append iterator
6657
6658         * python/dbus.py: Update to use new bindings API
6659                 - TYPE_ACTIVATION -> TYPE_STARTER
6660                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6661                 - class ActivationBus -> class StarterBus
6662                 - class RemoteObject (__call__): get an append iterator
6663                 - (_dispatch_dbus_method_call): get an append iterator
6664                 - class Object (emit_signal): get an append iterator
6665
6666         * python/examples/: Fixed up the examples to work with the new API
6667                 
6668 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6669
6670         * configure.in: Bump version up to 0.30.
6671
6672         * HACKING: Add a release item to bump the version number up after 
6673         a release.
6674
6675 2005-01-28  Havoc Pennington  <hp@redhat.com>
6676
6677         * doc/dbus-specification.xml: update to describe 16-bit types and
6678         dict entries
6679
6680         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6681         assertion
6682
6683         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6684         type
6685
6686         * dbus/dbus-marshal-recursive.c: implement
6687
6688 2005-01-27  Havoc Pennington  <hp@redhat.com>
6689
6690         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6691
6692         * configure.in: find the right type for 16 and 32 bit ints as well
6693         as 64
6694
6695         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6696         the 16-bit types so people don't have to stuff them in 32-bit or
6697         byte arrays.
6698
6699 2005-01-27  Havoc Pennington  <hp@redhat.com>
6700
6701         * dbus/dbus-message.c: byteswap the message if you init an
6702         iterator to read/write from it
6703         
6704         * dbus/dbus-marshal-byteswap.c: new file implementing 
6705         _dbus_marshal_byteswap()
6706
6707         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6708
6709 2005-01-26  Havoc Pennington  <hp@redhat.com>
6710         
6711         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6712         build, apparently - nobody noticed?)
6713         
6714 2005-01-26  Havoc Pennington  <hp@redhat.com>
6715
6716         * dbus/dbus-marshal-recursive.h: remove todo comment
6717
6718 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6719
6720         * Land the mono binding changes to conform to the new APIs.
6721
6722         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6723         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6724
6725         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6726         type code as a string.
6727         (InitAppending): Rename dbus_message_append_iter_init() to
6728         dbus_message_iter_init_append().
6729
6730         * mono/BusDriver.cs: Rename ServiceEventHandler to
6731         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6732         Rename ServiceOwnerChanged to NameOwnerChanged.
6733
6734         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6735         underlying C call.
6736
6737         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6738
6739         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6740         dbus_bus_acquire_service() to dbus_bus_request_name().
6741
6742         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6743         of Type.UnderlyingSystemType to get the correct element type for
6744         the array.
6745         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6746         dbus_message_get_{element|arg}_type() instead of
6747         dbus_message_iter_init_array_iterator().
6748         (Append): Replace dbus_message_iter_append_array() with
6749         dbus_message_iter_open_container() and
6750         dbus_message_iter_close_container().
6751
6752         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6753         types have been removed.
6754         
6755         * mono/DBusType/*.cs: Replace calls of
6756         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6757         but specify the type in the DllImport extern declaration.  Ditto
6758         for dbus_message_iter_append_[type]() ->
6759         dbus_message_iter_append_basic().
6760
6761         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6762         NameOwnerChangedHandler.
6763
6764 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6765
6766         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6767                 - get_base_service -> get_unique_name
6768                 - bus_get_base_service -> bus_get_unique_name
6769                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6770                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6771                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6772                 - bus_activate_service -> bus_start_service_by_name
6773                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6774                 - bus_acquire_service -> bus_request_name
6775                 - dbus_bus_acquire_service -> dbus_bus_request_name
6776                 - bus_service_exists -> bus_name_has_owner
6777                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6778
6779         * python/dbus.py: Rename of methods
6780                 - activate_service -> start_service_by_name
6781                 - bus_acquire_service -> bus_request_name
6782                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6783                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6784
6785         
6786 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6787
6788         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6789         signature for the method that can't be found.
6790
6791         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6792         the message has any arguments, we need to call
6793         _dbus_type_reader_get_current_type(), not
6794         _dbus_type_reader_has_next().
6795
6796 2005-01-24  Havoc Pennington  <hp@redhat.com>
6797
6798         * dbus/dbus-message-factory.c: more testing of message validation
6799
6800         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6801         header
6802
6803 2005-01-23  Havoc Pennington  <hp@redhat.com>
6804
6805         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6806         get this all working, not many tests in the framework yet though
6807
6808 2005-01-22  Havoc Pennington  <hp@redhat.com>
6809
6810         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6811         tutorial, based on work from David Wheeler.
6812
6813 2005-01-21  Havoc Pennington  <hp@redhat.com>
6814
6815         * dbus/dbus-bus.c: add more return_if_fail checks
6816
6817         * dbus/dbus-message.c (load_message): have the "no validation"
6818         mode (have to edit the code to toggle the mode for now though)
6819
6820         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6821         skips all validation; I want to use this at least for benchmark
6822         baseline, I'm not sure if it should be a publicly-available switch.
6823
6824 2005-01-21  Havoc Pennington  <hp@redhat.com>
6825
6826         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6827         toplevel doxygen group as the low-level API stuff
6828
6829         * dbus/dbus.h: note that libdbus is the low-level API
6830
6831 2005-01-20  Havoc Pennington  <hp@redhat.com>
6832
6833         * update-dbus-docs.sh: script to update docs on the web site, only
6834         works for me though. neener.
6835
6836 2005-01-20  Havoc Pennington  <hp@redhat.com>
6837
6838         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6839         code can reveal bugs in it
6840
6841 2005-01-20  Havoc Pennington  <hp@redhat.com>
6842
6843         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6844         select() version, patches from Tor Lillqvist
6845
6846 2005-01-20  Havoc Pennington  <hp@redhat.com>
6847
6848         * doc/dbus-tutorial.xml: replace > with &gt;
6849
6850         * bus/services.c (bus_registry_acquire_service): validate the name
6851         and return a better error if it's no good.
6852
6853         * doc/dbus-specification.xml: note NO_AUTO_START change
6854
6855         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6856         from AUTO_START, we're toggling the default
6857
6858         * bus/dispatch.c: adapt the tests to change of auto-start default
6859
6860 2005-01-18  Havoc Pennington  <hp@redhat.com>
6861
6862         * rename dbus-daemon-1 to dbus-daemon throughout
6863
6864 2005-01-18  Havoc Pennington  <hp@redhat.com>
6865
6866         * Throughout, grand renaming to strip out the use of "service",
6867         just say "name" instead (or "bus name" when ambiguous).  Did not
6868         change the internal code of the message bus itself, only the
6869         programmer-facing API and messages.
6870         
6871         * doc/dbus-specification.xml: further update the message bus section
6872         
6873         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6874         in error case
6875
6876 2005-01-17  Havoc Pennington  <hp@redhat.com>
6877
6878         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6879         ever
6880
6881         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6882         "invalid name character" not only non-ASCII
6883
6884         * doc/dbus-specification.xml: further update spec, message bus 
6885         parts are still out-of-date but the marshaling etc. stuff is now
6886         accurate-ish
6887
6888 2005-01-17  Havoc Pennington  <hp@redhat.com>
6889
6890         * doc/dbus-specification.xml: partially update spec
6891
6892 2005-01-17  Havoc Pennington  <hp@redhat.com>
6893
6894         * Throughout, align variant bodies according to the contained
6895         type, rather than always to 8. Should save a fair bit of space in
6896         message headers.
6897         
6898         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6899         fix handling of case where p == end
6900
6901         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6902
6903 2005-01-17  Havoc Pennington  <hp@redhat.com>
6904
6905         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6906
6907         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6908         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6909         are marshaling/unmarshaling a boolean.
6910
6911 2005-01-16  Havoc Pennington  <hp@redhat.com>
6912
6913         This is about it on what can be disabled/deleted from libdbus
6914         easily, back below 150K anyhow. Deeper cuts are more work than 
6915         just turning the code off as I've done here.
6916         
6917         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6918         signed int convenience funcs
6919
6920         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6921         verbose mode
6922
6923         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6924         things out of libdbus
6925
6926         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6927         
6928         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6929         tests-enabled-only, though it should probably be deleted)
6930
6931         * dbus/dbus-message-util.c: same stuff
6932
6933         * dbus/dbus-auth-util.c: same stuff
6934
6935 2005-01-16  Havoc Pennington  <hp@redhat.com>
6936
6937         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6938
6939         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6940         way for stripping down dbus-userdb.c stuff included in libdbus.
6941         Rename _dbus_parse_uid for consistency.
6942
6943 2005-01-16  Havoc Pennington  <hp@redhat.com>
6944
6945         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6946         name the assertion failed in
6947
6948         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6949         (_dbus_return_val_if_fail): assert that the name of the function
6950         containing the check doesn't start with '_', since we only want to 
6951         use checks on public functions
6952         
6953         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6954         checks to assertions
6955
6956         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6957         change checks to asserts for private function
6958
6959         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6960         to asserts for private function
6961
6962         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6963         broken assertion that was breaking make check
6964         (_dbus_type_reader_array_is_empty): remove this rather than fix
6965         it, was only used in assertions
6966
6967 2005-01-16  Havoc Pennington  <hp@redhat.com>
6968
6969         * test/unused-code-gc.py: hacky script to find code that's used
6970         only by the bus (not libdbus) or used only by tests or not used at
6971         all. It has some false alarms, but looks like we can clean up a
6972         lot of size from libdbus.
6973
6974         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6975         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6976         
6977 2005-01-16  Havoc Pennington  <hp@redhat.com>
6978
6979         * Add and fix docs according to Doxygen warnings throughout
6980         source.
6981         
6982         * dbus/dbus-marshal-recursive.c
6983         (_dbus_type_reader_array_is_empty): change this to just call
6984         array_reader_get_array_len() and make it static
6985
6986         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6987         from get_array_type
6988         (dbus_message_iter_init_append): rename from append_iter_init
6989
6990         * dbus/dbus-marshal-recursive.c
6991         (_dbus_type_reader_get_element_type): rename from
6992         _dbus_type_reader_get_array_type
6993
6994 2005-01-15  Havoc Pennington  <hp@redhat.com>
6995
6996         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6997
6998         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6999         when DBUS_DISABLE_ASSERT
7000         (_dbus_marshal_set_basic): be sure we align for the string length
7001
7002         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7003         this look faster
7004
7005         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7006         inline macro version
7007         (_dbus_string_set_byte): provide inline macro version
7008
7009 2005-01-15  Havoc Pennington  <hp@redhat.com>
7010
7011         * Land the new message args API and type system.
7012
7013         This patch is huge, but the public API change is not 
7014         really large. The set of D-BUS types has changed somewhat, 
7015         and the arg "getters" are more geared toward language bindings;
7016         they don't make a copy, etc.
7017
7018         There are also some known issues. See these emails for details
7019         on this huge patch:
7020         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7021         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7022         
7023         * dbus/dbus-marshal-*: all the new stuff
7024
7025         * dbus/dbus-message.c: basically rewritten
7026
7027         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7028         freed blocks to be all non-nul bytes so using freed memory is less
7029         likely to work right
7030
7031         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7032         DBUS_FAIL_MALLOC=N environment variable, so you can do
7033         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7034         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7035         thorough.
7036
7037         * qt/message.cpp: port to the new message args API
7038         (operator<<): use str.utf8() rather than str.unicode()
7039         (pretty sure this is right from the Qt docs?)
7040
7041         * glib/dbus-gvalue.c: port to the new message args API
7042
7043         * bus/dispatch.c, bus/driver.c: port to the new message args API
7044
7045         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7046         "locked" flag to TRUE and align_offset to 0; I guess we never
7047         looked at these anyhow, but seems cleaner.
7048
7049         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7050         move allocation padding macro to this header; use it to implement
7051         (_DBUS_STRING_STATIC): ability to declare a static string.
7052
7053         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7054         change to return TRUE if the interface is not set.
7055
7056         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7057         to dbus-marshal-validate.[hc]
7058
7059         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7060         dbus-internals.c
7061
7062         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7063         to dbus-marshal-*.[hc]
7064
7065         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7066         function here from dbus-marshal.c
7067
7068 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7069
7070         * NEWS: Update for 0.23.
7071
7072         * configure.in: Release 0.23.
7073
7074 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7075
7076         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7077         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7078         behind.
7079
7080         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7081         uninstall"
7082
7083         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7084         is an enum, get the enum's underlying type.  Another mono
7085         1.1.3 fix.
7086
7087 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7088
7089         Patch from Sjoerd Simons <sjoerd@luon.net>
7090
7091         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7092         DESTDIR.  It breaks stuff.
7093
7094 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7095
7096         Patch from Tambet Ingo <tambet@ximian.com>
7097
7098         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7099         calling type.GetElementType().  The code previously depended on
7100         broken Mono behavior, which was fixed in Mono 1.1.3.
7101
7102         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7103         Activator.CreateInstance() so that the class's constructor is
7104         called with the right parameters.
7105
7106 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7107
7108         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7109
7110         * dbus/dbus-connection.c
7111         (_dbus_connection_queue_received_message_link): Call
7112         _dbus_connection_remove_timeout() instead of the _locked()
7113         variant, since it's always called from
7114         _dbus_connection_handle_watch(), which handles the locking.
7115         Removed the _locked() variant since it's no longer used.
7116
7117 2005-01-03  Havoc Pennington  <hp@redhat.com>
7118
7119         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7120         return
7121         
7122 2004-12-26  Havoc Pennington  <hp@redhat.com>
7123
7124         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7125
7126 2005-01-03  Havoc Pennington  <hp@redhat.com>
7127
7128         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7129         floating point
7130
7131         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7132
7133 2005-01-02  Havoc Pennington  <hp@redhat.com>
7134
7135         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7136
7137 2005-01-01  Havoc Pennington  <hp@redhat.com>
7138
7139         * configure.in: add -Wfloat-equal
7140
7141 2005-01-01  Havoc Pennington  <hp@redhat.com>
7142
7143         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7144         for a variety of reasons '==' doesn't do this.
7145
7146 2004-12-31  Havoc Pennington  <hp@redhat.com>
7147
7148         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7149         I keep wishing I had
7150
7151 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7152
7153         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7154
7155 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7156
7157         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7158         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7159         dbus-protocol.h.  Because they are defines and not enums they are not
7160         autogenerated.
7161
7162 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7163
7164         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7165         dbus_bus_activate_service
7166
7167         * python/dbus.py (Bus.activate_service): activate a service on the
7168         bus.
7169
7170 2004-12-24  Havoc Pennington  <hp@redhat.com>
7171
7172         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7173         file format has also changed and I haven't adapted to that yet
7174         
7175         * Makefile.am: load .gcno files from latest gcc
7176
7177 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7178         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7179
7180         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7181         lowlevel binding
7182
7183         * python/dbus.py (get_unix_user): Added binding to 
7184         call dbus_bindings.bus_get_unix_user
7185
7186         * python/extract.py: Modified the proto_pat regex to
7187         handle unsigned long
7188
7189 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7190
7191         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7192         better POSIX compliance.
7193
7194 2004-12-19  Havoc Pennington  <hp@redhat.com>
7195
7196         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7197         (_dbus_string_insert_8_aligned): new functions
7198
7199         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7200
7201 2004-12-18  Havoc Pennington  <hp@redhat.com>
7202
7203         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7204         macro
7205
7206         * dbus/dbus-message.c: fix a comment, and add a still-unused
7207         not-implemented function
7208
7209         * dbus/dbus-marshal.h: fix comment
7210
7211         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7212
7213 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7214
7215         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7216         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7217         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7218         Type.UnderlyingSystemType to get the actual system type
7219         underneath.  This code previously depended on the broken Mono
7220         behavior, which was fixed in 1.1.3.
7221
7222 2004-11-27  Havoc Pennington  <hp@redhat.com>
7223
7224         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7225         are disabled
7226         (_dbus_string_get_const_data): inline when asserts are disabled
7227
7228         * dbus/dbus-message.c: record the _dbus_current_generation of
7229         creation so we can complain if dbus_shutdown() is used improperly.
7230         Do this only if checks are enabled.
7231
7232         * dbus/dbus-connection.c: ditto
7233         
7234 2004-11-26  Havoc Pennington  <hp@redhat.com>
7235
7236         * test/glib/test-profile.c: add with_bus mode to profile echoes
7237         that go through the bus.
7238
7239         * test/glib/run-test.sh: add ability to run test-profile
7240
7241         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7242         config file reload.
7243
7244 2004-11-26  Havoc Pennington  <hp@redhat.com>
7245
7246         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7247         thing was implemented
7248
7249 2004-11-26  Havoc Pennington  <hp@redhat.com>
7250
7251         * test/glib/test-profile.c: tweak a bit, add support for some
7252         made-up minimal malloc overhead with plain sockets, since in 
7253         real life some sort of buffers are unavoidable thus we could 
7254         count them in the theoretical best case
7255
7256 2004-11-26  Havoc Pennington  <hp@redhat.com>
7257
7258         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7259         where I was trying to cache one too many messages
7260
7261 2004-11-26  Havoc Pennington  <hp@redhat.com>
7262
7263         * dbus/dbus-message.c: reimplement message cache as an array which 
7264         makes the cache about twice as fast and saves maybe 1.5% overall
7265
7266 2004-11-26  Havoc Pennington  <hp@redhat.com>
7267
7268         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7269         message cache lock here
7270
7271 2004-11-26  Havoc Pennington  <hp@redhat.com>
7272
7273         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7274         the "char byte_order" next to each other to save 4 bytes
7275         (dbus_message_new_empty_header): reduce preallocation, since the
7276         message cache should achieve a similar effect
7277         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7278         message cache that keeps a few DBusMessage around in a pool,
7279         another 8% speedup or so.
7280
7281         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7282
7283 2004-11-25  Havoc Pennington  <hp@redhat.com>
7284
7285         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7286         to write, without reading or blocking, try it before the poll()
7287         and skip the poll() if nothing remains to write. This is about a
7288         3% speedup in the echo client/server
7289
7290 2004-11-25  Havoc Pennington  <hp@redhat.com>
7291
7292         The primary change here is to always write() once before adding
7293         the write watch, which gives us about a 10% performance increase.
7294         
7295         * dbus/dbus-transport-unix.c: a number of modifications to cope
7296         with removing messages_pending
7297         (check_write_watch): properly handle
7298         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7299         messages_pending stuff
7300         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7301         AUTHENTICATED cases
7302         (unix_handle_watch): after writing, see if the write watch can be
7303         removed
7304         (unix_do_iteration): assert that write_watch/read_watch are
7305         non-NULL rather than testing that they aren't, since they 
7306         aren't allowed to be NULL. check_write_watch() at the end so 
7307         we add the watch if we did not finish writing (e.g. got EAGAIN)
7308
7309         * dbus/dbus-transport-protected.h: remove messages_pending call,
7310         since it resulted in too much inefficient watch adding/removing; 
7311         instead we now require that the transport user does an iteration 
7312         after queueing outgoing messages, and after trying the first
7313         write() we add a write watch if we got EAGAIN or exceeded our 
7314         max bytes to write per iteration setting
7315
7316         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7317         function
7318
7319         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7320         freed and then accessed, valgrind flagged this bug, fix it
7321
7322         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7323         as the last valid field plus 1, where really it is equal to the
7324         last valid field. Corrects some message corruption issues.
7325
7326         * dbus/dbus-mainloop.c: verbosity changes
7327
7328         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7329         instead of aborting in one of the test codepaths
7330
7331         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7332         caused not printing the pid ever again if a verbose was missing
7333         the newline at the end
7334         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7335
7336         * dbus/dbus-connection.c: verbosity changes; 
7337         (dbus_connection_has_messages_to_send): new function
7338         (_dbus_connection_message_sent): no longer call transport->messages_pending
7339         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7340         try to write() immediately, so we can avoid the write watch. This
7341         is the core purpose of this patchset
7342         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7343         dump the outgoing message queue, so nobody will get confused
7344         trying to send them or thinking stuff is pending to be sent
7345
7346         * bus/test.c: verbosity changes
7347
7348         * bus/driver.c: verbosity/assertion changes
7349
7350         * bus/dispatch.c: a bunch of little tweaks to get it working again
7351         because this patchset changes when/where you need to block.
7352
7353 2004-11-23  Havoc Pennington  <hp@redhat.com>
7354
7355         * test/glib/test-profile.c: modify to accept a plain_sockets
7356         argument in which case it will bench plain sockets instead of
7357         libdbus, for comparison purposes.
7358
7359 2004-11-22  Havoc Pennington  <hp@redhat.com>
7360
7361         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7362         threads for more time, so sysprof can get a grip on it.
7363
7364         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7365         pointless variable
7366
7367 2004-11-13  Havoc Pennington  <hp@redhat.com>
7368
7369         * test/glib/test-profile.c: fix this thing up a bit
7370
7371         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7372         preallocation sizes by a fair bit; not sure if this will be an
7373         overall performance win or not, but it does reduce reallocs.
7374
7375         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7376         the test hack that forced constant realloc if asserts are
7377         disabled, so we can profile sanely. Sprinkle in some
7378         _DBUS_UNLIKELY() which are probably pointless, but before I
7379         noticed the real performance problem I put them in.
7380         (_dbus_string_validate_utf8): micro-optimize this thing a little
7381         bit, though callgrind says it didn't help; then special-case
7382         ascii, which did help a lot; then be sure we detect nul bytes as
7383         invalid, which is a bugfix.
7384         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7385         superstition; use memset to nul the padding instead of a manual
7386         loop.
7387         (_dbus_string_get_length): inline this as a
7388         macro; it showed up in the profile because it's used for loop
7389         tests and so forth
7390
7391 2004-11-10  Colin Walters  <walters@verbum.org>
7392
7393         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7394         for extra paranoia.
7395
7396 2004-11-09  Colin Walters  <walters@verbum.org>
7397
7398         * dbus/dbus-string.c (_dbus_string_get_length): New
7399         function, writes DBusString to C buffer.
7400
7401         * dbus/dbus-string.h: Prototype it.
7402
7403         * dbus/dbus-message.c (dbus_message_type_to_string): New
7404         function, converts message type into C string.
7405
7406         * dbus/dbus-message.h: Prototype it.
7407
7408         * bus/selinux.c (bus_selinux_check): Take source pid,
7409         target pid, and audit data.  Pass audit data to
7410         avc_has_perm.
7411         (log_audit_callback): New function, appends extra
7412         audit information.
7413         (bus_selinux_allows_acquire_service): Also take
7414         service name, add it to audit data.
7415         (bus_selinux_allows_send): Also take message
7416         type, interface, method member, error name,
7417         and destination, and add them to audit data.
7418         (log_cb): Initialize func_audit.
7419         
7420         * bus/selinux.h (bus_selinux_allows_acquire_service)
7421         (bus_selinux_allows_send): Update prototypes 
7422
7423         * bus/services.c (bus_registry_acquire_service): Pass
7424         service name to bus_selinux_allows_acquire_service.
7425
7426         * bus/bus.c (bus_context_check_security_policy): Pass
7427         additional audit data.  Move assignment of dest
7428         to its own line.
7429
7430 2004-11-07  Colin Walters  <walters@verbum.org>
7431
7432         * dbus/dbus-transport-unix.c (do_authentication): Always
7433         initialize auth_completed.
7434         
7435 2004-11-07  Colin Walters  <walters@verbum.org>
7436
7437         * bus/bus.c (load_config): Break into three
7438         separate functions: process_config_first_time_only,
7439         process_config_every_time, and process_config_postinit.
7440         (process_config_every_time): Move call of
7441         bus_registry_set_service_context_table into
7442         process_config_postinit.
7443         (process_config_postinit): New function, does
7444         any processing that needs to happen late
7445         in initialization (and also on reload).
7446         (bus_context_new): Instead of calling load_config,
7447         open config parser here and call process_config_first_time_only
7448         and process_config_every_time directly.  Later, after
7449         we have forked but before changing UID,
7450         invoke bus_selinux_full_init, and then call
7451         process_config_postinit.
7452         (bus_context_reload_config): As in bus_context_new,
7453         load parse file inside here, and call process_config_every_time
7454         and process_config_postinit.
7455
7456         * bus/services.h, bus/services.c
7457         (bus_registry_set_service_context_table): Rename
7458         from bus_registry_set_sid_table.  Take string hash from config
7459         parser, and convert them here into SIDs.
7460
7461         * bus/config-parser.c (struct BusConfigParser): Have
7462         config parser only store a mapping of service->context
7463         string.
7464         (merge_service_context_hash): New function.
7465         (merge_included): Merge context string hashes instead
7466         of using bus_selinux_id_table_union.
7467         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7468         simply create a new string hash.
7469         (bus_config_parser_unref): Unref it.
7470         (start_selinux_child): Simply insert strings into hash,
7471         don't call bus_selinux_id_table_copy_over.
7472
7473         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7474         (bus_selinux_id_table_copy_over): Delete.
7475
7476 2004-11-03  Colin Walters  <walters@verbum.org>
7477
7478         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7479         variables.
7480         
7481 2004-11-03  Colin Walters  <walters@verbum.org>
7482
7483         * bus/test-main.c (test_pre_hook): Fix test logic,
7484         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7485
7486 2004-11-02  Colin Walters  <walters@redhat.com>
7487
7488         * bus/selinux.c (bus_selinux_init): Split into two functions,
7489         bus_selinux_pre_init and bus_selinux_post_init.
7490         (bus_selinux_pre_init): Just determine whether SELinux is
7491         enabled.
7492         (bus_selinux_post_init): Do everything else.
7493
7494         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7495         config file, and bus_selinux_post_init after.  This ensures that
7496         we don't lose the policyreload notification thread that
7497         bus_selinux_init created before forking previously.
7498         
7499         * bus/test-main.c (test_pre_hook): Update for split.
7500
7501 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7502
7503         Patch from Johan Fischer <linux@fischaz.com>
7504         
7505         * mono/doc/Makefile.am (install-data-local): Added directory
7506         install for DESTDIR
7507
7508 2004-10-29  Colin Walters  <walters@redhat.com>
7509
7510         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7511         parameter for fd to write pid to.       
7512
7513         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7514         
7515         * bus/bus.c (bus_context_new): Pass print_pid_fd
7516         to _dbus_become_daemon (bug #1720)
7517
7518 2004-10-29  Colin Walters  <walters@redhat.com>
7519
7520         Patch from Ed Catmur <ed@catmur.co.uk>
7521
7522         * mono/doc/Makefile.am (install-data-local): Handle
7523         DESTDIR.
7524
7525 2004-10-29  Colin Walters  <walters@redhat.com>
7526
7527         * bus/.cvsignore, qt/.cvsignore: Update.
7528
7529 2004-10-29  Colin Walters  <walters@redhat.com>
7530
7531         Patch from Kristof Vansant <de_lupus@pandora.be>
7532
7533         * configure.in: Detect Slackware.
7534         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7535         * bus/rc.messagebus.in: New file.
7536
7537 2004-10-29  Colin Walters  <walters@redhat.com>
7538
7539         * tools/dbus-monitor.c (filter_func): Return
7540         DBUS_HANDLER_RESULT_HANDLED in filter function
7541         for now.  See:
7542         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7543
7544 2004-10-29  Colin Walters  <walters@redhat.com>
7545
7546         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7547
7548         * bus/services.c (bus_registry_acquire_service): 
7549         Correctly retrieve service name from DBusString
7550         for printing.
7551
7552 2004-10-29  Colin Walters  <walters@redhat.com>
7553
7554         * dbus/dbus-glib.h: Update documentation to not
7555         refer to internal APIs.
7556
7557 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7558
7559         * mono/Arguments.cs (GetDBusTypeConstructor):
7560         type.UnderlyingSystemType will return "System.Byte" if you do it
7561         on "byte[]", which is not what we want.  So check the type.IsArray
7562         property and use System.Array instead.
7563
7564 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7565
7566         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7567         the DBusUserInfo structure since this is passed into the function.
7568         This would cause a double free when the function that allocated
7569         the structure would try to free it when an error occured.
7570
7571         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7572         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7573         for service activation to avoid 32bit/64bit parallel install issues
7574
7575 2004-10-21  Colin Walters  <walters@verbum.org>
7576
7577         * AUTHORS: Fix my email address, the @gnu.org one
7578         has been bouncing for some time.  Also add J5.
7579         
7580 2004-10-21  Colin Walters  <walters@verbum.org>
7581
7582         * dbus/dbus-transport-unix.c (do_authentication): Return
7583         authentication status to callers.
7584         (unix_handle_watch): If we completed authentication this round,
7585         don't do another read.  Instead wait until the next iteration,
7586         after we've read any pending data in the auth buffer.
7587         (unix_do_iteration): Ditto.
7588         (unix_handle_watch): Updated for new do_authentication prototype.
7589
7590 2004-10-18  Colin Walters  <walters@verbum.org>
7591
7592         * bus/selinux.c (bus_selinux_enabled): Handle
7593         --disable-selinux case.
7594         
7595 2004-10-18  Colin Walters  <walters@verbum.org>
7596
7597         * bus/selinux.h: Add bus_selinux_enabled.
7598         
7599         * bus/selinux.c (bus_selinux_enabled): Implement it.
7600         
7601         * bus/config-parser.c (struct include): Add
7602         if_selinux_enabled member.
7603         (start_busconfig_child): Parse if_selinux_enabled
7604         attribute for include.
7605         (bus_config_parser_content): Handle it.
7606
7607         * bus/session.conf.in, bus/system.conf.in: Add
7608         inclusion of context mapping to default config files;
7609         conditional on SELinux being enabled.
7610         
7611         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7612         
7613         * test/data/invalid-config-files/badselinux-1.conf, 
7614         test/data/invalid-config-files/badselinux-2.conf:
7615         Test files for bad syntax.
7616         
7617 2004-10-17  Colin Walters  <walters@verbum.org>
7618
7619         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7620         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7621         format specifier mismatches.
7622
7623 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7624
7625         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7626         format string.
7627
7628         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7629         pointer (bug #1540, Leonardo Boiko).
7630
7631 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7632
7633         * mono/BusDriver.cs: Changed BusDriver struct to remove
7634         the ServiceCreated and ServiceDeleted events and replace them
7635         with the new ServiceOwnerChanged event.
7636
7637         * mono/example/BusListener.cs: Added a new example program,
7638         which listens for and reports any ServiceOwnerChanged events
7639         on the bus driver.
7640
7641         * mono/example/Makefile.am (DESTDIR): Build changes for the
7642         new BusListener.cs example.
7643
7644 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7645
7646         * bus/signals.c (bus_match_rule_parse): validate the components of
7647         match rules (bug #1439).
7648
7649         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7650
7651 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7652
7653         * doc/dbus-specification.xml: document ServiceOwnerChanged
7654         signal.
7655         
7656         * bus/driver.c, bus/driver.h, bus/services.c: Use
7657         ServiceOwnerChanged signal instead of ServiceCreated and
7658         ServiceDeleted.
7659         
7660         * bus/dispatch.c: update testcase for the new signal.
7661
7662 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7663
7664         Patch from Nat Friedman <nat@novell.com>
7665
7666         * mono/Makefile.am: A number of small build fixes to allow "make
7667         distcheck" to succeed.
7668
7669         * mono/example/Makefile.am: "make distcheck" fixes.
7670
7671         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7672         key in @srcdir@.
7673
7674         * test/Makefile.am: "make distcheck" fixes.
7675
7676 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7677
7678         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7679
7680         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7681
7682         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7683         messages after the first one (bug #1389).
7684         
7685         * bus/dispatch.c (check_double_hello_message): add a test case for
7686         the double hello message bug.
7687         (check_existent_service_activation): fix check of spawning error.
7688         
7689 2004-09-16  David Zeuthen  <david@fubar.dk>
7690
7691         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7692
7693 2004-09-12  David Zeuthen  <david@fubar.dk>
7694
7695         Patch from Kay Sievers <kay.sievers@vrfy.org>
7696
7697         * bus/bus.c (bus_context_new):
7698         * bus/bus.h:
7699         * bus/main.c (usage)
7700         (main):
7701         Add commandline option --nofork to override configuration file
7702         setting.
7703
7704 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7705
7706         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7707         compilers don't like it (bug #974).
7708
7709 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7710
7711         * qt/connection.*: Applied patch by Jérôme Lodewyck
7712         <lodewyck@clipper.ens.fr> to integrate an existing
7713         connection into the Qt eventloop
7714
7715 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7716
7717         * mono/BusDriver.cs: Added.  This is a class for interacting with
7718         the org.freedesktop.DBus service.
7719
7720         * mono/Message.cs: Added a mechanism to expose the message that is
7721         currently being dispatched via the static Message.Current
7722         property.  Added Message.Sender and Message.Destination
7723         properties.
7724
7725         * mono/Handler.cs: Expose the dispatched message via
7726         Message.Current when handling method calls.
7727
7728         * mono/Service.cs: Expose the dispatched message via
7729         Message.Current when handling signal emissions.
7730         
7731         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7732         Connection.BaseService property.
7733
7734 2004-08-28  Havoc Pennington  <hp@redhat.com>
7735
7736         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7737
7738         More fixes from Steve Grubb
7739         
7740         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7741         (_dbus_listen_tcp_socket): fix fd leak
7742
7743         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7744         EINTR to a bit lower in the code
7745
7746 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7747
7748         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7749         TRUE if we are inquiring about the existence of the built-in
7750         org.freedesktop.DBus service.
7751
7752 2004-08-25  John Palmieri  <johnp@redhat.com>
7753         * bus/config-parser.c:
7754         (struct PolicyType): Add POLICY_CONSOLE
7755         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7756         (start_busconfig_child): Sets up console element when
7757         <policy at_console=""> is encountered in a policy file
7758         (append_rule_from_element): Convert console elements to console
7759         rules.
7760
7761         * bus/policy.c: 
7762         (bus_policy_create_client_policy): Add console rules to the client
7763         policy based on if the client is at the console
7764         (bus_policy_append_console_rule): New function for adding a
7765         console rule to a policy
7766         (bus_policy_merge): Handle console rule merging
7767
7768         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7769         where we check for console user files
7770         
7771         * dbus/dbus-sysdeps.c:
7772         (_dbus_file_exists): New function which checks if the given
7773         file exists
7774         (_dbus_user_at_console): New function which does the system
7775         specific process of checking if the user is at the console
7776
7777         * dbus/dbus-userdb.c:
7778         (_dbus_is_console_user): New function converts a UID to user name
7779         and then calls the system specific _dbus_user_at_console to 
7780         see if the user is at the console and therefor a console user
7781
7782 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7783
7784         * bus/config-parser.c (set_limit):
7785         * bus/dbus-daemon-1.1.in:
7786         * test/data/valid-config-files/many-rules.conf: set the
7787         max_match_rules_per_connection limt from the config file. 
7788
7789         * doc/busconfig.dtd: update the DTD.
7790
7791         * bus/driver.c: remove some unused variables.
7792
7793 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7794
7795         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7796         it's been replaced by dbus_g_bus_get
7797
7798 2004-08-23  Colin Walters  <walters@redhat.com>
7799
7800         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7801
7802         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7803
7804         * bus/selinux.c: Create a thread for policy reload notification.
7805         (bus_selinux_get_policy_root): Implement.
7806
7807         * bus/config-parser.c (start_busconfig_child)
7808         (bus_config_parser_content): Support SELinux-root relative
7809         inclusion.
7810
7811         * configure.in <HAVE_SELINUX>: Add -lpthread.
7812         
7813         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7814         (test_post_hook): Move memory checking into here.
7815         (test_pre_hook, test_post_hook): Move SELinux checks in
7816         here, but conditional on a DBUS_TEST_SELINUX environment
7817         variable.  Unfortunately we can't run the SELinux checks
7818         as a normal user, since they won't have any permissions
7819         for /selinux.  So this will have to be tested manually
7820         for now, until we have virtualization for most of
7821         libselinux.
7822         
7823 2004-08-23  Havoc Pennington  <hp@redhat.com>
7824
7825         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7826         drop supplementary groups, suggested by Steve Grubb
7827
7828 2004-08-20  Colin Walters  <walters@redhat.com>
7829
7830         * bus/config-parser.c (start_busconfig_child): Remove some unused
7831         variables.
7832         
7833         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7834         warning.
7835
7836 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7837
7838         * configure.in: If --enable-mono is passed in, if we can't find
7839         mono error out.
7840
7841         * mono/Makefile.am: Use /gacutil to install assemblies into the
7842         GAC and not /root.
7843
7844 2004-08-12  Havoc Pennington  <hp@redhat.com>
7845
7846         * NEWS: update for 0.22
7847
7848         * configure.in: release 0.22
7849
7850 2004-08-11  Colin Walters  <walters@redhat.com>
7851
7852         * tools/dbus-send.c (main, usage): Add --reply-timeout
7853         argument.
7854
7855 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7856
7857         * bus/bus.c (process_config_first_time_only): get rid of an unused
7858         DBusError that was causing a memoy leak (bug #989).
7859
7860         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7861         fix compilation on Solaris/Forte C (bug #974)
7862
7863         * bus/main.c (main): plug two minuscule memleaks.
7864
7865 2004-08-10  Havoc Pennington  <hp@redhat.com>
7866
7867         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7868
7869 2004-08-09  Havoc Pennington  <hp@redhat.com>
7870
7871         * COPYING: switch to Academic Free License version 2.1 instead of
7872         2.0, to resolve complaints about patent termination clause.
7873
7874 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7875
7876         * README: added documentation for the --enable-python 
7877         configure switch.
7878
7879 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7880
7881         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7882         _unref in the SELinux support.
7883
7884         * doc/busconfig.dtd: update DTD for SELinux support.
7885
7886         * bus/config-loader-libxml.c: fix error handler and parser
7887         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7888
7889         * configure.in: remove the warning about libxml2.
7890
7891         * dbus/dbus-bus.c: silence doxygen warning.
7892
7893 2004-07-31  Colin Walters  <walters@redhat.com>
7894
7895         * configure.in: Move #error in SELinux check to its own line.
7896
7897 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7898
7899         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7900         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7901         dbus_error_set.
7902
7903         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7904         broken by the change in the _SET_OOM macros.
7905
7906 2004-07-31  Colin Walters  <walters@redhat.com>
7907
7908         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7909         BUS_SET_OOM.
7910
7911 2004-07-31  Colin Walters  <walters@redhat.com>
7912
7913         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7914         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7915         AC_MSG_CHECKING.
7916
7917 2004-07-24  Havoc Pennington  <hp@redhat.com>
7918
7919         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7920
7921         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7922         functionality
7923
7924         * configure.in: add --enable-selinux
7925         
7926         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7927
7928         * bus/main.c (main): initialize and shut down selinux
7929
7930         * bus/connection.c: store SELinux ID on each connection, to avoid 
7931         repeated getting of the string context and converting it into 
7932         an ID
7933
7934         * bus/bus.c (bus_context_get_policy): new accessor, though it
7935         isn't used
7936         (bus_context_check_security_policy): check whether the security
7937         context of sender connection can send to the security context of
7938         recipient connection
7939
7940         * bus/config-parser.c: add parsing for <selinux> and <associate>
7941         
7942         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7943         implement dbus_connection_get_unix_fd()
7944
7945         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7946         function, used by the selinux stuff
7947         
7948 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7949
7950         * bus/config-loader-libxml.c: complete the implementation of
7951         libxml backend for config file loader. Doesn't work with full OOM
7952         test yet. 
7953         
7954         * configure.in: change error when selecting libxml into a warning.
7955         
7956         * test/data/invalid-config-files: add two non-well-formed XML
7957         files. 
7958         
7959         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7960         
7961         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7962         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7963         be necessary to read all the buffer. (bug #894)
7964
7965         * bus/activation.c (bus_activation_activate_service): fix a
7966         potential assertion failure (bug #896). Small optimization in the
7967         case of auto-activation messages.
7968
7969         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7970         add test case for byte-through-vararg bug (#901). patch by Kimmo
7971         Hämäläinen. 
7972
7973 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7974
7975         * python/dbus.py:
7976         * python/dbus_bindings.pyx.in:
7977         Add dbus.init_gthreads (), allow emit_signal to pass
7978         arguments to the signal.
7979         
7980 2004-07-24  Havoc Pennington  <hp@redhat.com>
7981
7982         * AUTHORS: add some people, not really comprehensively, let me
7983         know if I missed you
7984
7985 2004-07-24  Havoc Pennington  <hp@redhat.com>
7986
7987         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7988         Owen
7989
7990         * test/Makefile.am (DIST_SUBDIRS): here also
7991
7992 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7993
7994         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7995         breaking build on Solaris, reported by Farhad Saberi on the ML.
7996
7997         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7998         va_arg invocation to account for integer promotion in the case of
7999         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8000
8001         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8002         _dbus_list_get_first_link, not _dbus_list_get_first.
8003
8004         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8005
8006         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8007         handler functions so that the asserts in _dbus_object_subtree_unref
8008         do not fail.
8009
8010         * dbus/dbus-transport-unix.c (do_reading):
8011         _dbus_transport_queue_messages return value is of type
8012         dbus_bool_t, not DBusDispatchStatus.
8013         
8014 2004-07-19  David Zeuthen  <david@fubar.dk>
8015
8016         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8017
8018         * bus/dispatch.c:
8019         (check_get_connection_unix_user): Debug says GetProperty; but the
8020         method is called GetConnectionUnixUser
8021         (check_get_connection_unix_process_id): New function
8022         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8023         also call check_get_connection_unix_process_id()
8024         
8025         * bus/driver.c:
8026         (bus_driver_handle_get_connection_unix_process_id): New function,
8027         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8028         interface
8029         
8030         * dbus/dbus-auth.c:
8031         (handle_server_data_external_mech): Set pid from the credentials
8032         obtained from the socket
8033         
8034         * dbus/dbus-connection.c:
8035         (dbus_connection_get_unix_process_id): New function
8036         
8037         * dbus/dbus-connection.h: 
8038         Add prototype for dbus_connection_get_unix_process_id
8039         
8040         * dbus/dbus-transport.c:
8041         (_dbus_transport_get_unix_process_id): New function
8042         
8043         * dbus/dbus-transport.h:
8044         Add prototype for _dbus_transport_get_unix_process_id
8045         
8046 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8047
8048         * dbus/dbus-message.c: Message counter fix, patch by Christian
8049         Hammond <chipx86@gnupdate.org>
8050
8051 2004-07-18  Seth Nickell  <seth@gnome.org>
8052
8053         * python/dbus.py:
8054         * python/dbus_bindings.pyx.in:
8055         * python/tests/test-client.py:
8056
8057         Add dbus.ByteArray and dbus_bindings.ByteArray
8058         types so that byte streams can be passed back.
8059
8060         Give jdahlin the heaps of credit that are so
8061         rightfully his.
8062         
8063 2004-07-12  Seth Nickell  <seth@gnome.org>
8064
8065         * python/dbus.py:
8066
8067         Add message argument to the default object_method_handler
8068         function.
8069         
8070         * python/dbus_bindings.pyx.in:
8071
8072         Automatically return NIL when passed an empty list
8073         (we can't pass back a list since lists are typed
8074         and we don't have any idea what type the the client
8075         intended the list to be... :-( )
8076         
8077 2004-07-10  Seth Nickell  <seth@gnome.org>
8078
8079         * python/examples/Makefile.am:
8080
8081         Fix distcheck breakage caused by new examples.
8082
8083 2004-07-10  Seth Nickell  <seth@gnome.org>
8084
8085         * python/dbus.py:
8086
8087         Add "message" argument to service-side dbus.Object
8088         methods. This will break existing services written
8089         using the python bindings, but will allow extraction
8090         of all the message information (e.g. who its from).
8091
8092         Add improved "object oriented" signal handling/emission.
8093         
8094         * python/examples/example-service.py:
8095
8096         Nix this example.
8097         
8098         * python/examples/example-signal-emitter.py:
8099         * python/examples/example-signal-recipient.py:
8100
8101         Two new examples that show how to emit and receive
8102         signals using the new APIs.
8103         
8104         * python/examples/example-signals.py:
8105         * python/examples/gconf-proxy-service.py:
8106         * python/examples/gconf-proxy-service2.py:
8107
8108         Add "message" argument to service methods.
8109
8110 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8111
8112         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8113         * dbus/bus.c (dbus_bus_get_unix_user)
8114         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8115         method of org.freedesktop.DBus interface.
8116
8117         * bus/dispatch.c: test case
8118
8119 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8120
8121         * python/Makefile.am: switched include directory from glib/ to dbus/
8122         since dbus-glib.h moved
8123  
8124 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8125
8126         * configure.in: prevent building the gcj stuff and libxml loader
8127         since they are broken.
8128
8129 2004-06-20  Havoc Pennington  <hp@redhat.com>
8130
8131         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8132         codes from the dbus error names
8133         
8134         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8135         as dbus/dbus-glib.h and that breakage is now visible due to 
8136         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8137         
8138         * glib/dbus-glib.h: s/gproxy/g_proxy/
8139
8140         * dbus/dbus-shared.h: new header to hold stuff shared with
8141         binding APIs
8142         
8143         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8144         than dbus-errors.h
8145
8146         * glib/dbus-glib.h (dbus_set_g_error): move to
8147         dbus-glib-lowlevel.h
8148
8149         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8150         of stuff to enable this
8151
8152         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8153
8154         * a bunch of other changes with the same basic "separate glib 
8155         bindings from dbus.h" theme
8156         
8157 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8158
8159         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8160
8161         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8162
8163 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8164
8165         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8166         the reply value of the ServiceExists message.
8167
8168 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8169
8170         * python/dbus_bindings.pyx.in: No longer need to parse path
8171         elements and pass them as arrays of strings.  The C API now
8172         accepts plain path strings.
8173         (_build_parsed_path): removed 
8174
8175 2004-06-07  Havoc Pennington  <hp@redhat.com>
8176
8177         * doc/TODO: remove auto-activation item since it's done; sort
8178         items by importance/milestone
8179
8180 2004-06-07  Havoc Pennington  <hp@redhat.com>
8181
8182         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8183         random signature when using REQUIRED_FIELDS (this hack won't work
8184         in the long term)
8185
8186         * dbus/dbus-message.c: change the signature to be a header field,
8187         instead of message->signature special-case string. Incremental
8188         step forward. Then we can fix up code to send the signature in the
8189         message, then fix up code to validate said signature, then fix up
8190         code to not put the typecodes inline, etc.
8191         (load_one_message): don't make up the signature after the fact
8192         (decode_header_data): require signature field for the known
8193         message types
8194
8195         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8196
8197         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8198
8199 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8200
8201         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8202
8203         * mono/Handler.cs: Updated to follow new path argument for
8204         (un-)registering objects.
8205
8206         * mono/example/Makefile.am:
8207         * mono/Makefile.am:
8208         * configure.in: Bumped required version for mono and use new -pkg
8209         syntax for deps
8210
8211 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8212
8213         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8214         registration functions take the path argument as char* instead of
8215         char**.
8216
8217         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8218         split off the path decompostion part of
8219         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8220         warnings. 
8221
8222         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8223         
8224 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8225  
8226         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8227         machine approach.  A state is implemented as a function that
8228         handles incoming events as specified for that state.
8229         
8230         * doc/dbus-specification.xml: Update auth protocol state machine
8231         specification to match implementation.  Remove some leftover
8232         base64 examples.
8233
8234 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8235
8236         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8237         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8238         quiet doxygen.
8239
8240         * Doxyfile.in: remove deprecated options.
8241
8242         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8243         glib/test-thread.h, glib/test-thread-client.c,
8244         glib/test-thread-server.c, glib/test-profile.c,
8245         glib/test-dbus-glib.c: remove these unused files.
8246
8247 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8248
8249         * dbus/dbus-object-tree.c
8250         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8251         non-fallback handlers (bug #684).
8252         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8253         (find_subtree_recurse): report wether the returned subtree is an
8254         exact match or a "fallback" match higher up in the tree.
8255         (object_tree_test_iteration): update test case.
8256
8257 2004-06-01  Seth Nickell  <seth@gnome.org>
8258
8259         * python/dbus_bindings.pyx.in:
8260         * python/tests/test-client.py:
8261
8262         Round off basic type support. Add dicts (yay!), and 
8263         remaining array types.
8264
8265         Make MessageIter more general so it works for dicts too.
8266
8267         Mark all loop variables as C integers.
8268         
8269 2004-05-31  Havoc Pennington  <hp@redhat.com>
8270
8271         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8272         "in" before "out"
8273
8274         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8275
8276         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8277         option that runs the tests, and start filling in some code
8278         including for starters just dumping the interfaces to stdout
8279
8280         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8281
8282         * test/data/valid-introspection-files/lots-of-types.xml: test of
8283         an example introspection file
8284
8285         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8286         "node" (I think...)
8287
8288 2004-05-31  Seth Nickell  <seth@gnome.org>
8289
8290         * python/dbus_bindings.pyx.in:
8291         * python/tests/test-client.py:
8292
8293         Test Suite: 1
8294         Python Bindings: 0
8295
8296         Fix string array memory trashing bug... oops...
8297
8298 2004-05-30  Seth Nickell  <seth@gnome.org>
8299
8300         * python/dbus.py:
8301
8302         Add a nicer-but-less-flexible alternate API for handling 
8303         calls to virtual objects in dbus.ObjectTree.
8304
8305         Screw up the argument order to the dbus.Object constructor
8306         for consistency with dbus.ObjectTree (and to make dbus_methods
8307         optional for future extension)
8308         
8309         * python/examples/Makefile.am:
8310         * python/examples/gconf-proxy-service.py:
8311         * python/examples/gconf-proxy-service2.py:
8312
8313         Alternate implementation of gconf-proxy-service using the
8314         nicer dbus.ObjectTree API.
8315         
8316         * python/examples/example-service.py:
8317         * python/tests/test-server.py
8318
8319         Reverse the argument order to deal with dbus.Object constructor
8320         changes.
8321         
8322 2004-05-30  Seth Nickell  <seth@gnome.org>
8323
8324         * python/examples/example-client.py:
8325         * python/examples/example-service.py:
8326
8327         Take it back. Lists seem to work but they're broken
8328         in the test suite. Make the base examples use
8329         lists (works fine).
8330
8331 2004-05-30  Seth Nickell  <seth@gnome.org>
8332
8333         * python/dbus_bindings.pyx.in:
8334         * python/tests/test-client.py:
8335
8336         Add some more tests and fix errors that crop up.
8337         Unfortunately, currently it seems like marshalling
8338         and unmarshalling of lists is completely broken :-(
8339
8340 2004-05-30  Seth Nickell  <seth@gnome.org>
8341
8342         * python/dbus_bindings.pyx.in:
8343
8344         Add support for ObjectPath type.
8345
8346         * python/dbus.py:
8347
8348         Refactor message handling code to a common function.
8349         
8350         * python/tests/test-client.py:
8351         * python/tests/test-server.py:
8352
8353         Add tests that check to make sure values of all types
8354         can be echoed from a service w/o mangling.
8355         
8356 2004-05-29  Seth Nickell  <seth@gnome.org>
8357
8358         * python/dbus.py:
8359
8360         Add ObjectTree class which allows implementation
8361         of trees of "virtual" objects. Basically the python
8362         wrapper for "register_fallback".
8363         
8364         * python/examples/Makefile.am
8365         * python/examples/gconf-proxy-client.py:
8366         * python/examples/gconf-proxy-service.py:
8367
8368         Implement a simple GConf proxy service that supports
8369         get/set on string and int GConf keys using the ObjectTree.
8370         
8371 2004-05-29  Seth Nickell  <seth@gnome.org>
8372
8373         * python/dbus.py:
8374         * python/examples/example-client.py:
8375         * python/examples/example-service.py:
8376         * python/examples/list-system-services.py:
8377
8378         Add SessionBus, SystemBus and ActivationBus classes
8379         so you don't need to know the special little BUS_TYPE
8380         flag.
8381         
8382 2004-05-29  Havoc Pennington  <hp@redhat.com>
8383
8384         * bus/config-parser.c (process_test_valid_subdir): temporarily
8385         stop testing config parser OOM handling, since expat has issues
8386         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8387
8388         * bus/dbus-daemon-1.1.in: change requested_reply to
8389         send_requested_reply/receive_requested_reply so we can send the
8390         replies, not just receive them.
8391
8392         * bus/config-parser.c: parse the new
8393         send_requested_reply/receive_requested_reply
8394
8395         * bus/policy.c (bus_client_policy_check_can_send): add
8396         requested_reply argument and use it
8397
8398         * bus/bus.c (bus_context_check_security_policy): pass through
8399         requested_reply status to message send check
8400
8401         * bus/system.conf.in: adapt to requested_reply change
8402         
8403 2004-05-28  Havoc Pennington  <hp@redhat.com>
8404
8405         * test/glib/test-service-glib.c (main): remove unused variable
8406
8407         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8408
8409         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8410         from the enum, no longer in use.
8411
8412         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8413         works right.
8414
8415         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8416         whether error_name passed in is a valid error name.
8417
8418 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8419
8420         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8421         OBJECT_PATH and OBJECT_PATH_ARRAY
8422
8423 2004-05-28  Seth Nickell  <seth@gnome.org>
8424
8425         * python/examples/Makefile.am:
8426
8427         Forget to add Makefile.am. Do not pass go.
8428
8429 2004-05-28  Michael Meeks  <michael@ximian.com>
8430
8431         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8432         fix no int64 case.
8433
8434         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8435
8436         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8437         (_dbus_message_iter_get_basic_type_array): impl.
8438         drastically simplify ~all relevant _get methods to use these.
8439         (_dbus_message_iter_append_basic_array),
8440         (dbus_message_iter_append_basic): impl
8441         drastically simplify ~all relevant _append methods to use these.
8442
8443         * dbus/dbus-message-builder.c (parse_basic_type) 
8444         (parse_basic_array, lookup_basic_type): impl.
8445         (_dbus_message_data_load): prune scads of duplicate /
8446         cut & paste coding.
8447
8448         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8449         (_dbus_demarshal_basic_type): implement,
8450         (demarshal_and_validate_len/arg): beef up debug.
8451         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8452
8453 2004-05-27  Seth Nickell  <seth@gnome.org>
8454
8455         * configure.in:
8456         * python/Makefile.am:
8457
8458         Include the example python apps in the tarball.
8459         
8460         * python/examples/list-system-services.py
8461
8462         Add a python new example that fetches the list of services
8463         from the system bus.
8464         
8465 2004-05-27  Seth Nickell  <seth@gnome.org>
8466
8467         * python/dbus.py:
8468         * python/dbus_bindings.pyx.in:
8469
8470         Fix failure to notify that a signal was not handled,
8471         resulted in hung functions.
8472         
8473 2004-05-25  Colin Walters  <walters@redhat.com>
8474
8475         * tools/dbus-monitor.c (main): Monitor all types of messages.
8476
8477 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8478
8479         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8480         which unregisters the object path and disposes the handler.
8481
8482 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8483  
8484         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8485          
8486         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8487         operands to && so we call dbus_message_iter_next () for the last
8488         argument also.
8489
8490 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8491
8492         * dbus/dbus-object-tree.c
8493         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8494         children even if the requested path isn't registered.
8495         (object_tree_test_iteration): test object_tree_list_registered.
8496
8497         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8498         it to 0.
8499         
8500 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8501
8502         * doc/TODO: Remove resolved items.
8503
8504         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8505         field.
8506         
8507         * bus/connection.c (bus_connections_expect_reply): Enforce the
8508         per-connection limit on pending replies.
8509         
8510         Patch from Jon Trowbridge <trow@ximian.com>:
8511  
8512         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8513         up a watch that triggers a config reload when one end of the pipe
8514         becomes readable.
8515         (signal_handler): Instead of doing the config reload in our SIGHUP
8516         handler, just write to the reload pipe and let the associated
8517         watch handle the reload when control returns to the main loop.
8518  
8519         * bus/driver.c (bus_driver_handle_reload_config): Added.
8520         Implements a ReloadConfig method for requesting a configuration
8521         file reload via the bus driver.
8522  
8523 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8524
8525         * HACKING: Updated release instructions concerning the wiki page.
8526
8527 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8528
8529         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8530         filter against auth->allowed_mechs; we only add allowed mechs in
8531         record_mechanisms().
8532  
8533         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8534         ALLOWED_MECHS to auth-script format so we can set the list of
8535         allowed mechanisms.
8536  
8537         * data/auth/client-out-of-mechanisms.auth-script: New test to
8538         check client disconnects when it is out of mechanisms to try.
8539  
8540         * dbus/dbus-auth.c (process_command): Remove check for lines
8541         longer that 1 MB; we only buffer up maximum 16 kB.
8542  
8543         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8544         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8545         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8546         assume there might be unused bytes.
8547  
8548         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8549         client-out-of-mechs, it is handled in process_reject(). Move check
8550         for max failures to send_rejected(), as it's a server-only thing.
8551
8552         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8553         send_auth(), send_data(), send_rejected(), send_error(),
8554         send_ok(), send_begin() and send_cancel().
8555
8556 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8557
8558         Remove base64 encoding, replace with hex encoding. Original patch
8559         from trow@ximian.com, added error handling.
8560
8561         * dbus/dbus-string.c (_dbus_string_base64_encode)
8562         (_dbus_string_base64_decode): Remove.
8563         (_dbus_string_hex_decode): Add end_return argument so we can
8564         distinguish between OOM and invalid hex encoding.
8565         (_dbus_string_test): Remove base64 tests and add test case for
8566         invalid hex.
8567
8568         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8569         Replace base64 with hex.
8570
8571         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8572         for invalid hex encoded data in auth protocol.
8573
8574 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8575
8576         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8577         leak.
8578
8579 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8580
8581         * mono/dbus-sharp.dll.config.in: Added for GAC
8582         * mono/dbus-sharp.snk: Added for GAC
8583         * mono/Assembly.cs.in: Added for GAC
8584         * mono/Makefile.am: Changes for GAC installation        
8585         * configure.in: Added refs for dbus-sharp.dll.config.in and
8586         Assembly.cs.in. More fixes for mono testing
8587         * mono/example/Makefile.am: Changed var to CSC
8588         * Makefile.am: Changed flag name to DBUS_USE_CSC
8589
8590 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8591
8592         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8593         * mono/doc/*: Added documentation framework
8594         * configure.in: Added monodoc check
8595         * README: Added description of mono configure flags
8596
8597 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8598
8599         * doc/dbus-specification.xml: Added a "Required" column to the 
8600         header fields table and changed the "zero or more" verbage in
8601         the above paragraph to read "The header must contain the required 
8602         named header fields and zero or more of the optional named header 
8603         fields".
8604         * test/data/invalid-messages/*.message: Added the required PATH 
8605         named header field to the tests so that they don't fail on 
8606         'Missing path field'
8607
8608 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8609
8610         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8611         the stack by implicitly defining variable and parameter types and
8612         removing the hack of defining C pointers as python objects and later
8613         casting them.
8614
8615 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8616
8617         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8618
8619 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8620
8621         * mono/DBusType/Dict.cs: Handle empty dicts
8622         * mono/DBusType/Array.cs: Handle empty arrays
8623         * mono/Arguments.cs: Handle empty arguments
8624
8625 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8626
8627         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8628         field
8629
8630 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8631
8632         * test/data/valid-messages/standard-*.message: Update message
8633         test scripts to new header field names.
8634
8635 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8636
8637         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8638         overflow to times_we_did_each_thing array which would chop off the
8639         first character of the failure_dir string. Increased the size of
8640         the array to 7 to reflect the number of random mutation functions
8641         we have.
8642
8643 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8644
8645         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8646         unix_server->watch here, it is unreffed in disconnect.
8647         (_dbus_server_new_for_tcp_socket): convert NULL host to
8648         "localhost" here so we don't append NULL to address.
8649         
8650         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8651         various addresses, including tcp with no explicit host.
8652
8653 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8654
8655         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8656         fix incorrect setting of .name_offset in the HeaderField (it was
8657         off by two bytes, positioned right after the name and typecode)
8658
8659         * bus/bus.c (bus_context_new, bus_context_unref): test before
8660         calling dbus_server_free_data_slot and _dbus_user_database_unref
8661         in case of an error.
8662
8663         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8664         by libdbus-gtool.
8665
8666 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8667
8668         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8669         _dbus_poll() instead of select().
8670
8671 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8672
8673         * bus/main.c (signal_handler): Reload the configuration files
8674         on SIGHUP.
8675         (main): Set up our SIGHUP handler.
8676
8677         * bus/bus.c (struct BusContext): Store the config file, user and
8678         fork flag in the BusContext.
8679         (process_config_first_time_only): Added.  Contains the code
8680         (previously in bus_context_new) for setting up the BusContext from
8681         the BusConfigParser that should only be run the first time the
8682         config files are read.
8683         (process_config_every_time): Added.  Contains the code (previously
8684         in bus_context_new) for setting up the BusContext from the
8685         BusConfigParser that should be run every time the config files are
8686         read.
8687         (load_config): Added.  Builds a BusConfigParser from the config
8688         files and passes the resulting structure off to
8689         process_config_first_time_only (assuming this is the first time)
8690         and process_config_every_time.
8691         (bus_context_new): All of the config-related code has been moved
8692         to process_config_first_time_only and process_config_every_time.
8693         Now this function just does the non-config-related initializations
8694         and calls load_config.
8695         (bus_context_reload_config): Added.
8696
8697 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8698
8699         * bus/driver.c (bus_driver_handle_get_service_owner):
8700         implement a GetServiceOwner method.
8701         * doc/dbus-specification.xml: document it.
8702         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8703         
8704         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8705         implement, using the bus GetServiceOwner method.
8706
8707         * test/glib/test-dbus-glib.c:
8708         use dbus_gproxy_new_for_service_owner so that we can receive the
8709         signal. 
8710
8711 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8712
8713         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8714         dbus/dbus-message.c, dbus/dbus-protocol.h
8715         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8716
8717         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8718         dbus/dbus-message.c, dbus/dbus-protocol.h
8719         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8720
8721         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8722         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8723         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8724
8725         * doc/dbus-specification.xml (Header Fields Table):
8726         s/SERVICE/DESTINATION
8727         s/SENDER_SERVICE/SENDER
8728
8729
8730 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8731
8732         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8733         a few seconds.
8734
8735 2004-04-13  Michael Meeks  <michael@ximian.com>
8736
8737         * glib/dbus-gobject.c (handle_introspect): split out
8738         (introspect_properties): this.
8739         (handle_introspect): implement this.
8740
8741         * test/glib/Makefile.am: use the absolute path so the bus
8742         daemon's chdir ("/") doesn't kill us dead.
8743
8744         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8745
8746 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8747
8748         * bus/config-parser.c (struct BusConfigParser): Added
8749         included_files field.
8750         (seen_include): Added.  Checks whether or not a file has already
8751         been included by any parent BusConfigParser.
8752         (bus_config_parser_new): Copy the parent's included_files.
8753         (include_file): Track which files have been included, and fail on
8754         circular inclusions.
8755         (process_test_valid_subdir): Changed printf to report if we are
8756         testing valid or invalid conf files.
8757         (all_are_equiv): Changed printf to be a bit clearer about
8758         what we are actually doing.
8759         (bus_config_parser_test): Test invalid configuration files.
8760
8761 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8762
8763         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8764         argument.  If non-null, the newly-constructed BusConfigParser will
8765         be initialized with the parent's BusLimits instead of the default
8766         values.
8767         (include_file): When including a config file, pass in
8768         the current parser as the parent and then copy the BusLimits
8769         from the included BusConfigParser pack to the current parser.
8770         (process_test_valid_subdir): Renamed from process_test_subdir.
8771         (process_test_equiv_subdir): Added.  Walks through a directory,
8772         descending into each subdirectory and loading the config files
8773         it finds there.  If any subdirectory contains two config files
8774         that don't produce identical BusConfigParser structs, fail.
8775         For now, the BusConfigParser's BusPolicies are not compared.
8776         (bus_config_parser_test): Call both process_test_valid_subdir and
8777         process_test_equiv_subdir.
8778
8779         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8780         argument and pass it along to the call to bus_config_parser_new.
8781         Also made a few small changes to allow this code to compile.
8782
8783         * bus/config-loader-expat.c (bus_config_load): Take a parent
8784         argument and pass it along to the call to bus_config_parser_new.
8785
8786         * bus/bus.c (bus_context_new): Load the config file
8787         with a NULL parent argument.
8788
8789 2004-03-29  Michael Meeks  <michael@ximian.com>
8790
8791         * glib/dbus-gobject.c (introspect_properties): split
8792         out, fix mangled 'while' flow control.
8793         (introspect_signals): implement.
8794         (handle_introspect): update.
8795
8796 2004-03-29  Michael Meeks  <michael@ximian.com>
8797
8798         * glib/dbus-gobject.c (set_object_property): split out / 
8799         re-work, use the property type, and not the message type(!)
8800         (get_object_property): ditto.
8801
8802         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8803         (dbus_gvalue_marshal): make this code re-usable, needed
8804         for signals too, also on both proxy and server side.
8805         Re-write for more efficiency / readability.
8806
8807 2004-03-29  Michael Meeks  <michael@ximian.com>
8808
8809         * dbus/dbus-message.c
8810         (dbus_message_new_error_printf): impl.
8811
8812         * dbus/dbus-connection.c
8813         (dbus_connection_unregister_object_path): fix warning.
8814
8815         * configure.in: fix no-mono-installed situation.
8816
8817 2004-03-27  Havoc Pennington  <hp@redhat.com>
8818
8819         Patch from Timo Teräs:
8820         
8821         * tools/dbus-send.c (main): if --print-reply, assume type is
8822         method call; support boolean type args
8823         
8824         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8825         bunch of memleak and logic bugs
8826         
8827 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8828
8829         * mono/Arguments.cs:
8830         * mono/Introspector.cs:
8831         * mono/Handler.cs:
8832         * mono/InterfaceProxy.cs:
8833         * mono/Message.cs
8834         * mono/ProxyBuilder.cs:
8835         * mono/Service.cs:
8836         Added InterfaceProxy class to avoid building proxies for every
8837         object.
8838
8839         * dbus-message.h:
8840         * dbus-message.c (dbus_message_append_args_valist)
8841         (dbus_message_iter_get_object_path)
8842         (dbus_message_iter_get_object_path_array)
8843         (dbus_message_iter_append_object_path)
8844         (dbus_message_iter_append_object_path_array):
8845         Added object_path iter functions to handle OBJECT_PATH arguments
8846         
8847 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8848
8849         First checkin of mono bindings.
8850         * configure.in:
8851         * Makefile.am:
8852         Build stuff for the bindings
8853         * dbus-sharp.pc.in: Added for pkgconfig
8854         
8855 2004-03-21  Havoc Pennington  <hp@redhat.com>
8856
8857         * test/test-service.c (main): remove debug spew
8858
8859 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8860
8861         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8862         arrays
8863
8864         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8865         (dbus_message_iter_init_array_iterator)
8866         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8867         indicate whether the iterator is empty
8868
8869         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8870         warnings
8871
8872 2004-03-19  Havoc Pennington  <hp@redhat.com>
8873
8874         * NEWS: 0.21 updates
8875
8876         * configure.in: 0.21
8877
8878         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8879         
8880         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8881         you don't need pyrex to make dist
8882
8883         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8884         sources; run moc
8885         
8886 2004-03-18  Richard Hult  <richard@imendio.com>
8887
8888         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8889         (dbus_message_set_auto_activation): Add doxygen docs.
8890
8891 2004-03-16  Richard Hult  <richard@imendio.com>
8892
8893         * bus/activation.c: (bus_activation_service_created),
8894         (bus_activation_send_pending_auto_activation_messages),
8895         (bus_activation_activate_service):
8896         * bus/activation.h:
8897         * bus/dispatch.c: (bus_dispatch),
8898         (check_nonexistent_service_auto_activation),
8899         (check_service_auto_activated),
8900         (check_segfault_service_auto_activation),
8901         (check_existent_service_auto_activation), (bus_dispatch_test):
8902         * bus/driver.c: (bus_driver_handle_activate_service):
8903         * bus/services.c: (bus_registry_acquire_service):
8904         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8905         (dbus_message_get_auto_activation):
8906         * dbus/dbus-message.h:
8907         * dbus/dbus-protocol.h: Implement auto-activation.
8908         
8909         * doc/dbus-specification.xml: Add auto-activation to the spec.
8910
8911 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8912
8913         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8914         fix a bug with CUSTOM types.
8915
8916         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8917         a unit test for this bug (used to fail).
8918
8919 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8920
8921         * bus/activation.c:
8922         (babysitter_watch_callback): notify all pending activations waiting for
8923           the same exec that the activation failed.
8924         (bus_activation_activate_service): shortcut the activation if we 
8925           already waiting for the same executable to start up.
8926
8927 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8928
8929         * bus/activation.c: 
8930         - Added service file reloading. 
8931           Each service files directory is kept in an hash table in 
8932           BusActivation and each BusActivationEntry knows what .service-file it
8933           was read from. So when you try to activate a service the bus will 
8934           check if it's been updated, removed or if new .service-files has 
8935           been installed.
8936         - Test code at the bottom for the service file reloading.
8937         * bus/test-main.c: (main):
8938         * bus/test.h:
8939         - added service reloading test.
8940         * dbus/dbus-sysdeps.c: 
8941         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8942
8943 2004-03-08  Michael Meeks  <michael@ximian.com>
8944
8945         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8946         bail immediately if disconnected, to avoid busy loop.
8947
8948         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8949         cleanup cut/paste/inefficiency.
8950
8951 2004-03-01  David Zeuthen  <david@fubar.dk>
8952
8953         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8954         bug where args were used twice. This bug resulted in a segfault
8955         on a Debian/PPC system when starting the messagebus daemon. Include
8956         dbus-sysdeps.h for DBUS_VA_COPY
8957
8958         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8959
8960         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8961         appropriate va_copy implementation. From GLib
8962         
8963 2004-02-24  Joe Shaw  <joe@ximian.com>
8964
8965         * bus/services.c (bus_registry_acquire_service): We need to pass
8966         in the service name to dbus_set_error() to prevent a crash.
8967
8968 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8969
8970         * AUTHORS: Reveal my True identity.
8971
8972 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8973
8974         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8975         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8976
8977 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8978
8979         * doc/TODO: Added not about better error check of configuration files.
8980
8981 2003-12-02  Richard Hult  <richard@imendio.com>
8982
8983         * Update AFL version to 2.0 throughout the source files to reflect
8984         the update that was done a while ago.
8985
8986 2003-12-02  Richard Hult  <richard@imendio.com>
8987
8988         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8989         wrote_dict_key to FALSE on the iter that the dict is appended to,
8990         just like when appending other types. Fixes a bug where a dict
8991         couldn't be put inside a dict.
8992         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8993         (message_iter_test, _dbus_message_test): Add test case for dict
8994         inside dict.
8995
8996 2003-12-01  David Zeuthen  <david@fubar.dk>
8997
8998         * python/dbus.py: Add the actual message when calling the reciever
8999         of a signal such that parameters can be inspected. Add the method
9000         remove_signal_receiver
9001         
9002 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9003
9004         * bus/*.[ch]:
9005         * dbus/*.[ch]:
9006         * glib/*.[ch]: Made ref functions return the pointer
9007
9008 2003-11-25  Zack Rusin  <zack@kde.org>
9009
9010         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9011
9012         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9013         wrappers,
9014
9015         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9016         the Integrator and to better fit with the server,
9017
9018 2003-11-24  Zack Rusin  <zack@kde.org>
9019
9020         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9021         the integrator handles it now
9022
9023         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9024         since QTimer wasn't really meant to be used the way DBusTimeout is
9025
9026 2003-11-24  Zack Rusin  <zack@kde.org>
9027
9028         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9029         Integrator class which integrates D-BUS with the Qt event loop,
9030
9031         * qt/connection.h, qt/connection.cpp: Move all the code which
9032         was dealing with D-BUS integration to the Integrator class,
9033         and start using Integrator,
9034
9035 2003-11-23  Zack Rusin  <zack@kde.org>
9036
9037         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9038         wrapper
9039
9040         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9041         switching namespaces to DBusQt, reworking the class,
9042
9043         * Makefile.cvs: switching dependencies so that it matches KDE 
9044         schematics,
9045         
9046         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9047         the library
9048
9049 2003-11-19  Havoc Pennington  <hp@redhat.com>
9050
9051         * NEWS: update
9052
9053         * configure.in: bump version to 0.20
9054
9055         * configure.in (have_qt): add yet another place to look for qt
9056         (someone hand trolltech a .pc file...)
9057
9058 2003-11-01  Havoc Pennington  <hp@redhat.com>
9059
9060         * doc/dbus-specification.xml: add state machine docs on the auth
9061         protocol; just a first draft, I'm sure it's wrong.      
9062
9063 2003-10-28  David Zeuthen  <david@fubar.dk>
9064
9065         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9066         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9067         
9068 2003-10-28  Havoc Pennington  <hp@redhat.com>
9069
9070         * dbus/dbus-message.c (get_next_field): delete unused function
9071
9072 2003-10-28  Havoc Pennington  <hp@redhat.com>
9073
9074         * bus/expirelist.c (do_expiration_with_current_time): detect
9075         failure of the expire_func due to OOM
9076
9077         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9078
9079         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9080         NoReply error that's now created by the bus when the service exits
9081
9082 2003-10-28  Havoc Pennington  <hp@redhat.com>
9083
9084         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9085         tests for set_path, set_interface, set_member, etc.
9086
9087         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9088
9089         * dbus/dbus-message.c (set_string_field): always just delete and
9090         re-append the field; accept NULL for deletion
9091         (re_align_fields_recurse): reimplement
9092         
9093 2003-10-26  Havoc Pennington  <hp@redhat.com>
9094
9095         * dbus/dbus-connection.c: fix docs to properly describe the
9096         disconnected message
9097         (_dbus_connection_notify_disconnected): remove this function; 
9098         we can't synchronously add the disconnected message, we have to 
9099         do it after we've queued any remaining real messages
9100         (_dbus_connection_get_dispatch_status_unlocked): queue the
9101         disconnect message only if the transport has finished queueing all
9102         its real messages and is disconnected.
9103         (dbus_connection_disconnect): update the dispatch status here
9104
9105 2003-10-22  Havoc Pennington  <hp@redhat.com>
9106
9107         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9108
9109         * bus/connection.c (bus_transaction_send_from_driver): set the
9110         destination to the connection's base service
9111
9112 2003-10-20  Havoc Pennington  <hp@redhat.com>
9113
9114         hmm, make check is currently not passing.
9115         
9116         * doc/dbus-specification.xml: add requirement that custom type
9117         names follow the same rules as interface names.
9118
9119         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9120         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9121         'map'
9122
9123         * doc/dbus-specification.xml: update type codes to match
9124         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9125         CUSTOM. Add type OBJECT_PATH to the spec.
9126
9127 2003-10-17  Havoc Pennington  <hp@redhat.com>
9128
9129         * bus/driver.c (create_unique_client_name): use "." as separator
9130         in base service names instead of '-'
9131
9132         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9133         byte at the end of the string
9134
9135         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9136         optimization macros since string validation seems to be a slow
9137         point.
9138         
9139         * doc/dbus-specification.xml: restrict valid
9140         service/interface/member/error names. Add test suite code for the
9141         name validation.
9142
9143         * dbus/dbus-string.c: limit service/interface/member/error names 
9144         to [0-9][A-Z][a-z]_
9145
9146         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9147         format arg to verbose spew
9148
9149         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9150         memory, return instead of g_error
9151
9152         * test/test-service.c (path_message_func): support emitting a
9153         signal on request
9154
9155         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9156         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9157         assuming the activation bus was the session bus so that services
9158         started manually will still register.
9159         (init_connections_unlocked): fix so that in OOM situation we get
9160         the same semantics when retrying the function
9161         
9162         * test/test-service.c (main): change to use path registration, to
9163         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9164         than DBUS_BUS_SESSION
9165
9166 2003-10-16  Havoc Pennington  <hp@redhat.com>
9167
9168         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9169
9170         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9171         coverage of the tests
9172         (coverage-report.txt): don't move the .da and .bbg files around
9173
9174 2003-10-16  Havoc Pennington  <hp@redhat.com>
9175
9176         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9177         to put there
9178
9179 2003-10-16  Havoc Pennington  <hp@redhat.com>
9180
9181         * bus/connection.c (bus_pending_reply_expired): either cancel or
9182         execute, not both
9183         (bus_connections_check_reply): use unlink, not remove_link, as we
9184         don't want to free the link; fixes double free mess
9185
9186         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9187         where no reply was received
9188
9189         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9190         fix a refcount leak
9191
9192         * bus/signals.c (match_rule_matches): add special cases for the
9193         bus driver, so you can match on sender/destination for it.
9194
9195         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9196         DBUS_PRINT_BACKTRACE is set
9197
9198         * dbus/dbus-internals.c: add pid to assertion failure messages
9199
9200         * dbus/dbus-connection.c: add message type code to the debug spew
9201
9202         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9203         sender=foo not service=foo
9204
9205         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9206         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9207         DBUS_ACTIVATION_ADDRESS instead
9208
9209         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9210         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9211
9212         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9213         context struct
9214
9215         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9216         (dbus_message_iter_get_object_path_array): new function (half
9217         finished, disabled for the moment)
9218         
9219         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9220         DBUS_MESSAGE_TYPE_ERROR
9221
9222         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9223         avoid redirecting stderr to /dev/null
9224         (babysit): close stdin if not doing the "exit_with_session" thing
9225
9226         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9227         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9228         stdout/stdin, so things don't get confused
9229         
9230         * bus/system.conf.in: fix to allow replies, I modified .conf
9231         instead of .conf.in again.
9232
9233 2003-10-14  David Zeuthen  <david@fubar.dk>
9234
9235         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9236         argtype to arg_type when raising unknown arg type exception.
9237         Changed type list to reflect the changes in dbus-protocol.h so 
9238         the bindings actually work.
9239
9240 2003-10-14  Havoc Pennington  <hp@redhat.com>
9241
9242         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9243         to have a bug keeping it from outputting the .da files sometimes
9244         (string_get_string): don't append garbage nul bytes to the string.
9245
9246 2003-10-15  Seth Nickell  <seth@gnome.org>
9247
9248         * python/Makefile.am:
9249
9250         Include dbus_h_wrapper.h in the dist tarball.
9251
9252 2003-10-14  Havoc Pennington  <hp@redhat.com>
9253
9254         * bus/bus.c (bus_context_check_security_policy): revamp this to
9255         work more sanely with new policy-based requested reply setup
9256
9257         * bus/connection.c (bus_transaction_send_from_driver): set bus
9258         driver messages as no reply
9259
9260         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9261         requested_reply attribute on allow/deny rules
9262
9263         * bus/system.conf: add <allow requested_reply="true"/>
9264
9265         * bus/driver.c (bus_driver_handle_message): fix check for replies
9266         sent to the bus driver, which was backward. How did this ever work
9267         at all though? I think I'm missing something.
9268
9269         * dbus/dbus-message.c (decode_header_data): require error and
9270         method return messages to have a reply serial field to be valid
9271         (_dbus_message_loader_queue_messages): break up this function;
9272         validate that reply serial and plain serial are nonzero; 
9273         clean up the OOM/error handling.
9274         (get_uint_field): don't return -1 from this
9275         (dbus_message_create_header): fix signed/unsigned bug
9276
9277         * bus/connection.c (bus_connections_expect_reply): save serial of
9278         the incoming message, not reply serial
9279
9280 2003-10-14  Havoc Pennington  <hp@redhat.com>
9281
9282         * bus/connection.c: implement pending reply tracking using
9283         BusExpireList
9284
9285         * bus/bus.c (bus_context_check_security_policy): verify that a
9286         reply is pending in order to allow a reply to be sent. Deny 
9287         messages of unknown type.
9288
9289         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9290
9291         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9292         (bus_context_get_reply_timeout): new
9293
9294 2003-10-13  Seth Nickell  <seth@gnome.org>
9295
9296         * python/Makefile.am:
9297
9298         Pass "make distcheck": remove a couple files from DIST_FILES
9299         that weren't included in the final version.
9300
9301 2003-10-12  Havoc Pennington  <hp@pobox.com>
9302
9303         Added test code that 1) starts an actual bus daemon and 2) uses
9304         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9305         more testing possible, but this is the basic framework.
9306         
9307         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9308         empty proxy lists from the proxy list hash
9309
9310         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9311         couple of return_if_fail checks
9312
9313         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9314         to allocate, so everything is cleared to NULL as it should be.
9315
9316         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9317         source as data to dbus_connection_set_timeout_functions() as the 
9318         timeout functions expected
9319
9320         * test/glib/run-test.sh: add a little script to start up a message
9321         bus and run tests using it
9322
9323         * tools/dbus-launch.1: updates
9324
9325         * tools/dbus-launch.c (main): add --config-file option
9326
9327         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9328         that could never be reached.
9329
9330         * dbus/dbus-message.c (dbus_message_new_method_return) 
9331         (dbus_message_new_error, dbus_message_new_signal): set the
9332         no-reply-expected flag on all these. Redundant, but may
9333         as well be consistent.
9334
9335 2003-10-11  Havoc Pennington  <hp@pobox.com>
9336
9337         * test/decode-gcov.c (function_solve_graph): make broken block
9338         graph a nonfatal error since it seems to be broken. Need to debug
9339         this.
9340
9341         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9342         can't just check type > INVALID < LAST anymore
9343
9344         * dbus/dbus-message.c (dbus_message_get_signature): new function
9345         (dbus_message_has_signature): new function
9346         (struct DBusMessage): add signature field (right now it isn't sent
9347         over the wire, just generated on the fly)
9348         (dbus_message_copy): copy the signature, and init strings to
9349         proper length to avoid some reallocs
9350         (dbus_message_iter_init_array_iterator): return void, since it
9351         can't fail
9352         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9353         (_dbus_message_loader_queue_messages): add silly temporary hack to
9354         fill in message->signature on load
9355
9356         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9357         characters, so they are relatively human-readable.
9358
9359 2003-10-11  Havoc Pennington  <hp@pobox.com>
9360
9361         * dbus/dbus-message.c (_dbus_message_test): add more test
9362         coverage, but #if 0 for now since they uncover a bug 
9363         not fixed yet; I think in re_align_field_recurse()
9364         (re_align_field_recurse): add FIXME about broken assertion
9365
9366         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9367
9368         * bus/connection.c: share a couple code bits with expirelist.c
9369
9370         * bus/expirelist.h, bus/expirelist.c: implement a generic
9371         expire-items-after-N-seconds facility, was going to share between
9372         expiring connections and replies, decided not to use for expiring
9373         connections for now.
9374
9375         * COPYING: include AFL 2.0 (still need to change all the file headers)
9376
9377 2003-10-09  Havoc Pennington  <hp@redhat.com>
9378
9379         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9380         gcc 3.3. Not that we do anything about it yet.
9381
9382         * bus/signals.c (bus_match_rule_parse): impose max length on the
9383         match rule text
9384
9385         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9386
9387 2003-10-09  Havoc Pennington  <hp@redhat.com>
9388
9389         Make matching rules theoretically work (add parser).
9390         
9391         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9392         the case where destination is explicitly specified as bus driver
9393         and someone else is eavesdropping.
9394         
9395         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9396         definition of eavesdropping and assertion
9397
9398         * tools/dbus-send.c (main): use dbus_message_type_from_string
9399
9400         * bus/signals.c (bus_match_rule_parse): implement
9401
9402         * dbus/dbus-message.c (dbus_message_type_from_string): new
9403
9404         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9405
9406 2003-10-02  Havoc Pennington  <hp@pobox.com>
9407
9408         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9409         dbus_gproxy_oneway_call
9410
9411         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9412         (dbus_server_setup_with_g_main): fix to allow calling them more
9413         than once on the same args
9414         (dbus_bus_get_with_g_main): new function
9415
9416 2003-10-02  Havoc Pennington  <hp@redhat.com>
9417
9418         * doc/dbus-tutorial.xml: write some stuff
9419
9420 2003-09-29  Havoc Pennington  <hp@pobox.com>
9421
9422         * configure.in: split checks for Doxygen from XML docs, check for
9423         xmlto
9424
9425         * doc/Makefile.am: XML-ify all the docs, and add a blank
9426         dbus-tutorial.xml
9427
9428 2003-09-29  Havoc Pennington  <hp@pobox.com>
9429
9430         * Merge dbus-object-names branch. To see the entire patch 
9431         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9432         it's huuuuge though.
9433         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9434         
9435 2003-09-28  Havoc Pennington  <hp@pobox.com>
9436
9437         * HACKING: update to reflect new server
9438
9439 2003-09-26  Seth Nickell  <seth@gnome.org>
9440
9441         * python/dbus.py:
9442         * python/examples/example-signals.py:
9443
9444         Start implementing some notions of signals. The API
9445         is really terrible, but they sort of work (with the
9446         exception of being able to filter by service, and to
9447         transmit signals *as* a particular service). Need to
9448         figure out how to make messages come from the service
9449         we registered :-(
9450         
9451         * python/dbus_bindings.pyx.in:
9452
9453         Removed duplicate message_handler callbacks.
9454         
9455 2003-09-25  Havoc Pennington  <hp@redhat.com>
9456
9457         * bus/session.conf.in: fix my mess
9458
9459 2003-09-25  Havoc Pennington  <hp@pobox.com>
9460
9461         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9462
9463 2003-09-25  Seth Nickell  <seth@gnome.org>
9464
9465         * python/examples/example-service.py:
9466
9467         Johan notices complete wrong code in example-service, but
9468         completely wrong in a way that works exactly the same (!).
9469         Johan is confused, how could this possibly work? Example
9470         code fails to serve purpose of making things clear.
9471         Seth fixes.
9472
9473 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9474
9475         * doc/dbus-specification.sgml: don't require header fields
9476         to be 4-byte aligned and specify that fields should be
9477         distinguished from padding by the fact that zero is not
9478         a valid field name.
9479         
9480         * doc/TODO: remove re-alignment item and add item to doc
9481         the OBJECT_PATH type.
9482         
9483         * dbus/dbus-message.c:
9484         (HeaderField): rename the original member to value_offset
9485         and introduce a name_offset member to keep track of where
9486         the field actually begins.
9487         (adjust_field_offsets): remove.
9488         (append_int_field), (append_uint_field),
9489         (append_string_field): don't align the start of the header
9490         field to a 4-byte boundary.
9491         (get_next_field): impl finding the next marhsalled field
9492         after a given field.
9493         (re_align_field_recurse): impl re-aligning a number of
9494         already marshalled fields.
9495         (delete_field): impl deleting a field of any type and
9496         re-aligning any following fields.
9497         (delete_int_or_uint_field), (delete_string_field): remove.
9498         (set_int_field), (set_uint_field): no need to re-check
9499         that we have the correct type for the field.
9500         (set_string_field): ditto and impl re-aligning any
9501         following fields.
9502         (decode_header_data): update to take into account that
9503         the fields aren't 4-byte aligned any more and the new
9504         way to distinguish padding from header fields. Also,
9505         don't exit when there is too much header padding.
9506         (process_test_subdir): print the directory.
9507         (_dbus_message_test): add test to make sure a following
9508         field is re-aligned correctly after field deletion.
9509         
9510         * dbus/dbus-string.[ch]:
9511         (_dbus_string_insert_bytes): rename from insert_byte and
9512         allow the insert of multiple bytes.
9513         (_dbus_string_test): test inserting multiple bytes.
9514
9515         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9516         warning note to docs about having to re-align any
9517         marshalled values following the string.
9518         
9519         * dbus/dbus-message-builder.c:
9520         (append_string_field), (_dbus_message_data_load):
9521         don't align the header field.
9522         
9523         * dbus/dbus-auth.c: (process_test_subdir): print the
9524         directory.
9525         
9526         * test/break-loader.c: (randomly_add_one_byte): upd. for
9527         insert_byte change.
9528         
9529         * test/data/invalid-messages/bad-header-field-alignment.message:
9530         new test case.
9531         
9532         * test/data/valid-messages/unknown-header-field.message: shove
9533         a dict in the unknown field.
9534
9535 2003-09-25  Seth Nickell  <seth@gnome.org>
9536
9537         * python/dbus.py:
9538         * python/dbus_bindings.pyx.in:
9539
9540         Handle return values.
9541         
9542         * python/examples/example-client.py:
9543         * python/examples/example-service.py:
9544
9545         Pass back return values from the service to the client.
9546         
9547 2003-09-24  Seth Nickell  <seth@gnome.org>
9548
9549         * python/dbus.py:
9550
9551         Connect Object methods (when you are sharing an object) up... pass
9552         in a list of methods to be shared. Sharing all the methods just
9553         worked out too weird. You can now create nice Services over the
9554         DBus in Python. :-)
9555         
9556         * python/dbus_bindings.pyx.in:
9557
9558         Keep references to user_data tuples passed into C functions so 
9559         Python doesn't garbage collect on us.
9560
9561         Implement MethodReturn and Error subclasses of Message for creating
9562         DBusMessage's of those types.
9563         
9564         * python/examples/example-client.py:
9565         * python/examples/example-service.py:
9566
9567         Simple example code showing both how create DBus services and objects,
9568         and how to use them.
9569
9570 2003-09-23  Havoc Pennington  <hp@pobox.com>
9571
9572         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9573
9574 2003-09-23  Havoc Pennington  <hp@redhat.com>
9575
9576         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9577         (dbus_gproxy_disconnect_signal): implement
9578         (dbus_gproxy_manager_remove_signal_match): implement
9579         (dbus_gproxy_manager_add_signal_match): implement
9580         (dbus_gproxy_oneway_call): implement
9581
9582 2003-09-23  Havoc Pennington  <hp@pobox.com>
9583
9584         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9585         subclass. This means dropping the transparent thread safety of the
9586         proxy; you now need a separate proxy per-thread, or your own
9587         locking on the proxy. Probably right anyway.
9588         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9589
9590 2003-09-22  Havoc Pennington  <hp@redhat.com>
9591
9592         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9593
9594 2003-09-21  Seth Nickell  <seth@gnome.org>
9595
9596         First checkin of the Python bindings.
9597         
9598         * python/.cvsignore:
9599         * python/Makefile.am:
9600         * python/dbus_bindings.pyx.in:
9601         * python/dbus_h_wrapper.h:
9602
9603         Pieces for Pyrex to operate on, building a dbus_bindings.so
9604         python module for low-level access to the DBus APIs.
9605         
9606         * python/dbus.py:
9607
9608         High-level Python module for accessing DBus objects.
9609
9610         * configure.in:
9611         * Makefile.am:
9612
9613         Build stuff for the python bindings.
9614
9615         * acinclude.m4:
9616
9617         Extra macro needed for finding the Python C header files.
9618
9619 2003-09-21  Havoc Pennington  <hp@pobox.com>
9620
9621         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9622         implementing the proxy manager, didn't get very far.
9623
9624         * dbus/dbus-bus.c (dbus_bus_add_match): new
9625         (dbus_bus_remove_match): new
9626
9627         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9628         path_name argument; adjust the other not-yet-implemented 
9629         gproxy constructors to be what I think they should be.
9630
9631 2003-09-21  Havoc Pennington  <hp@pobox.com>
9632
9633         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9634         by default for message bus connections.
9635
9636         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9637         exit_on_disconnect flag is set and we process the disconnected
9638         signal.
9639         (dbus_connection_set_exit_on_disconnect): new function
9640
9641 2003-09-21  Havoc Pennington  <hp@pobox.com>
9642
9643         Get matching rules mostly working in the bus; only actually
9644         parsing the rule text remains. However, the client side of
9645         "signal connections" hasn't been started, this patch is only the
9646         bus side.
9647         
9648         * dbus/dispatch.c: fix for the matching rules changes
9649         
9650         * bus/driver.c (bus_driver_handle_remove_match)
9651         (bus_driver_handle_add_match): send an ack reply from these
9652         method calls
9653
9654         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9655         arguments, reported by Seth Nickell
9656
9657         * bus/config-parser.c (append_rule_from_element): support
9658         eavesdrop=true|false attribute on policies so match rules 
9659         can be prevented from snooping on the system bus.
9660
9661         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9662         and "destination" in attribute names; fix some docs bugs; 
9663         add eavesdrop=true|false attribute
9664
9665         * bus/driver.c (bus_driver_handle_add_match)
9666         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9667         messages
9668
9669         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9670         rid of broadcast service concept, signals are just always broadcast
9671
9672         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9673         mostly implement matching rules stuff (currently only exposed as signal
9674         connections)
9675
9676 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9677
9678         * doc/dbus-specification.sgml: Change the header field name
9679         to be an enum and update the rest of the spec to reference
9680         the fields using the conventinal name.
9681
9682         * dbus/dbus-protocol.h: update to reflect the spec.
9683
9684         * doc/TODO: add item to remove the 4 byte alignment requirement.
9685         
9686         * dbus/dbus-message.c: Remove the code to generalise the
9687         header/body length and serial number header fields as named
9688         header fields so we can reference field names using the 
9689         protocol values.
9690         (append_int_field), (append_uint_field), (append_string_field):
9691         Append the field name as a byte rather than four chars.
9692         (delete_int_or_uint_field), (delete_string_field): reflect the
9693         fact that the field name and typecode now occupy 4 bytes instead
9694         of 8.
9695         (decode_string_field), (decode_header_data): update to reflect
9696         protocol changes and move the field specific encoding from
9697         decode_string_field() back into decode_header_data().
9698         
9699         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9700         Add utility to aid debugging.
9701         
9702         * dbus/dbus-message-builder.c:
9703         (append_string_field), (_dbus_message_data_load): Update to
9704         reflect protocol changes; Change the FIELD_NAME directive
9705         to HEADER_FIELD and allow it to take the field's conventional
9706         name rather than the actual value.
9707         
9708         * test/data/*/*.message: Update to use HEADER_FIELD instead
9709         of FIELD_NAME; Always align the header on an 8 byte boundary
9710         *before* updating the header length.
9711
9712 2003-09-15  Havoc Pennington  <hp@pobox.com>
9713
9714         * dbus/dbus-pending-call.c: add the get/set object data
9715         boilerplate as for DBusConnection, etc. Use generic object data
9716         for the notify callback.
9717
9718         * glib/dbus-gparser.c (parse_node): parse child nodes
9719
9720         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9721         
9722         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9723         contain functions shared between the convenience lib and the
9724         installed lib
9725
9726         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9727         -export-symbols-regex to the GLib library
9728
9729         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9730         fix the locking in here, and add a default handler for
9731         Introspect() that just returns sub-nodes.
9732
9733 2003-09-14  Havoc Pennington  <hp@pobox.com>
9734
9735         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9736         rather than gfoo consistent
9737
9738         * glib/dbus-gproxy.h: delete for now, move contents to
9739         dbus-glib.h, because the include files don't work right since we
9740         aren't in the dbus/ subdir.
9741         
9742         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9743         (dbus_gproxy_end_call): finish
9744         (dbus_gproxy_begin_call): finish
9745
9746         * glib/dbus-gmain.c (dbus_set_g_error): new
9747
9748         * glib/dbus-gobject.c (handle_introspect): include information
9749         about child nodes in the introspection
9750
9751         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9752         function to help in implementation of introspection
9753
9754         * dbus/dbus-object-tree.c
9755         (_dbus_object_tree_list_registered_and_unlock): new function
9756
9757 2003-09-12  Havoc Pennington  <hp@pobox.com>
9758
9759         * glib/dbus-gidl.h: add common base class for all the foo_info
9760         types
9761
9762         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9763         similar to kdcop
9764
9765         * test/Makefile.am: try test srcdir -ef . in addition to test
9766         srcdir = ., one of them should work (yeah lame)
9767         
9768         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9769         library
9770         
9771         * glib/dbus-gparser.h: make description_load routines return
9772         NodeInfo* not Parser*
9773
9774         * Makefile.am (SUBDIRS): build test dir after all library dirs
9775
9776         * configure.in: add GTK+ detection
9777
9778 2003-09-07  Havoc Pennington  <hp@pobox.com>
9779
9780         * Make Doxygen contented.
9781
9782 2003-09-07  Havoc Pennington  <hp@pobox.com>
9783
9784         * doc/dbus-specification.sgml: more updates
9785
9786 2003-09-06  Havoc Pennington  <hp@pobox.com>
9787
9788         * doc/dbus-specification.sgml: partial updates
9789
9790         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9791         zillionth time; hopefully I edited the right file this time.
9792
9793         * bus/config-parser.c (append_rule_from_element): support
9794         send_type, send_path, receive_type, receive_path
9795
9796         * bus/policy.c: add message type and path to the list of things
9797         that can be "firewalled"
9798
9799 2003-09-06  Havoc Pennington  <hp@pobox.com>
9800
9801         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9802         (dbus_connection_register_object_path): make this not handle
9803         messages to paths below the given path
9804
9805 2003-09-03  Havoc Pennington  <hp@pobox.com>
9806
9807         * test/glib/Makefile.am: add this with random glib-linked test
9808         programs
9809
9810         * glib/Makefile.am: remove the random test programs from here,
9811         leave only the unit tests
9812
9813         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9814         uscore/javacaps conversion, and fix     
9815         (get_object_property, set_object_property): change to .NET
9816         convention for mapping props to methods, set_FooBar/get_FooBar, 
9817         since one language has such a convention we may as well copy it. 
9818         Plus real methods in either getFooBar or get_foo_bar style won't 
9819         collide with this convention.
9820
9821 2003-09-01  Havoc Pennington  <hp@pobox.com>
9822
9823         * glib/dbus-gparser.c: implement
9824
9825         * glib/dbus-gobject.c: start implementing skeletons support
9826
9827         * configure.in: when disabling checks/assert, also define
9828         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9829
9830 2003-09-01  Havoc Pennington  <hp@pobox.com>
9831
9832         * glib/Makefile.am: rearrange a bunch of files and get "make
9833         check" framework set up
9834
9835 2003-08-31  Havoc Pennington  <hp@pobox.com>
9836
9837         * fix build with --disable-tests
9838
9839 2003-08-30  Havoc Pennington  <hp@pobox.com>
9840
9841         * dbus/dbus-connection.c: purge DBusMessageHandler
9842
9843         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9844         use callbacks everywhere
9845
9846 2003-08-30  Havoc Pennington  <hp@pobox.com>
9847
9848         * test/data/valid-config-files/system.d/test.conf: change to 
9849         root for the user so warnings don't get printed
9850
9851         * dbus/dbus-message.c: add dbus_message_get_path,
9852         dbus_message_set_path
9853         
9854         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9855         dispatching to a path
9856
9857         * dbus/dbus-string.c (_dbus_string_validate_path): add
9858
9859         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9860         (_dbus_marshal_object_path): implement
9861
9862         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9863         to contain the path to the target object
9864         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9865         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9866
9867 2003-08-30  Havoc Pennington  <hp@pobox.com>
9868
9869         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9870
9871 2003-08-29  Havoc Pennington  <hp@pobox.com>
9872
9873         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9874         registered
9875         (struct DBusObjectSubtree): shrink this
9876         a lot, since we may have a lot of them
9877         (_dbus_object_tree_free_all_unlocked): implement
9878         (_dbus_object_tree_dispatch_and_unlock): implement
9879
9880 2003-08-29  Havoc Pennington  <hp@pobox.com>
9881
9882         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9883
9884 2003-08-28  Havoc Pennington  <hp@pobox.com>
9885
9886         purge DBusObjectID
9887         
9888         * dbus/dbus-connection.c: port to no ObjectID, create a
9889         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9890
9891         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9892         everything except UnregisterFunction and MessageFunction
9893         
9894         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9895         add DBUS_TYPE_OBJECT_PATH
9896         
9897         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9898         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9899         path-based object IDs
9900
9901 2003-08-25  Havoc Pennington  <hp@pobox.com>
9902
9903         Just noticed that dbus_message_test is hosed, I wonder when I
9904         broke that. I thought make check was passing earlier...
9905         
9906         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9907         container tree, will replace most of dbus-object-registry
9908
9909         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9910         screwup
9911
9912 2003-08-19  Havoc Pennington  <hp@pobox.com>
9913
9914         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9915         (dbus_message_is_error): fix this function
9916
9917         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9918         match
9919
9920         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9921         reflect clarified man page
9922         (bus_client_policy_check_can_send): ditto
9923         
9924         * bus/session.conf.in: fixup
9925
9926         * bus/system.conf.in: fixup
9927
9928 2003-08-18  Havoc Pennington  <hp@redhat.com>
9929
9930         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9931
9932         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9933         dumb bug created earlier (wrong order of args to
9934         decode_header_data())
9935         
9936         * tools/dbus-send.c: port
9937
9938         * tools/dbus-print-message.c (print_message): port
9939
9940         * test/data/*messages: port all messages over
9941         
9942         * dbus/dbus-message-builder.c: support including 
9943         message type
9944         
9945         * bus/driver.c: port over
9946         
9947         * bus/dispatch.c: port over to new stuff
9948
9949         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9950         rename disconnect signal to "Disconnected"
9951
9952 2003-08-17  Havoc Pennington  <hp@pobox.com>
9953
9954         This doesn't compile yet, but syncing up so I can hack on it from
9955         work. What are branches for if not broken code? ;-)
9956         
9957         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9958         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9959         DBUS_HEADER_FIELD_ERROR_NAME
9960         
9961         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9962         for the interface+member pairs
9963         (string_hash): change to use g_str_hash algorithm
9964         (find_direct_function, find_string_function): refactor these to
9965         share most code.
9966         
9967         * dbus/dbus-message.c: port all of this over to support 
9968         interface/member fields instead of name field
9969
9970         * dbus/dbus-object-registry.c: port over
9971         
9972         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9973         from _dbus_string_validate_name
9974
9975         * bus/dbus-daemon-1.1: change file format for the 
9976         <deny>/<allow> stuff to match new message naming scheme
9977
9978         * bus/policy.c: port over
9979
9980         * bus/config-parser.c: parse new format
9981         
9982 2003-08-16  Havoc Pennington  <hp@pobox.com>
9983
9984         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9985         broken assertion
9986
9987         * glib/dbus-gproxy.c: some hacking
9988
9989 2003-08-15  Havoc Pennington  <hp@redhat.com>
9990
9991         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9992
9993         * dbus/dbus-connection.c
9994         (dbus_connection_send_with_reply_and_block): factor out internals;
9995         change to convert any error replies to DBusError instead of 
9996         returning them as a message
9997
9998 2003-08-15  Havoc Pennington  <hp@pobox.com>
9999
10000         * dbus/dbus-connection.c, 
10001         dbus/dbus-pending-call.c: Finish the pending call stuff
10002
10003 2003-08-14  Havoc Pennington  <hp@redhat.com>
10004
10005         * dbus/dbus-pending-call.c: start on new object that will replace
10006         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10007         replies
10008
10009         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10010         with remote interfaces
10011
10012         * dbus/dbus-gidl.c: do the boring boilerplate in here
10013         
10014 2003-08-12  Havoc Pennington  <hp@pobox.com>
10015
10016         * bus/dispatch.c (bus_dispatch): make this return proper 
10017         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10018
10019         * dbus/dbus-errors.c (dbus_set_error): use
10020         _dbus_string_append_printf_valist
10021
10022         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10023         (_dbus_string_append_printf): new
10024
10025         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10026         UNKNOWN_METHOD
10027
10028         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10029         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10030         message is unhandled.
10031
10032 2003-08-11  Havoc Pennington  <hp@pobox.com>
10033
10034         * bus/test.c (client_disconnect_handler): change to return
10035         HANDLED (would have been REMOVE_MESSAGE)
10036
10037         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10038         HANDLED/NOT_YET_HANDLED instead of
10039         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10040         should be used.
10041
10042 2003-08-10  Havoc Pennington  <hp@pobox.com>
10043
10044         * tools/dbus-send.c (main): add --type argument, for now
10045         supporting only method_call and signal types.
10046
10047         * tools/dbus-print-message.c: print message type
10048
10049         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10050         init connection->objects
10051
10052         * doc/dbus-specification.sgml: fix sgml
10053
10054         * bus/*.c: port over to object-instance API changes
10055
10056         * test/test-service.c: ditto
10057         
10058         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10059         name, we will have to fix up the rest of the code to also handle
10060         this
10061         (dbus_message_new): generic message-creation call
10062         (set_string_field): allow appending name field
10063
10064 2003-08-06  Havoc Pennington  <hp@pobox.com>
10065
10066         * dbus/dbus-object-registry.c: implement signal connection 
10067         and dispatch
10068
10069         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10070
10071         * dbus/dbus-internals.c (_dbus_memdup): new function
10072
10073 2003-08-02  Havoc Pennington  <hp@pobox.com>
10074
10075         * dbus/dbus-message.c (dbus_message_get_no_reply)
10076         (dbus_message_set_no_reply): add these and remove
10077         set_is_error/get_is_error
10078
10079         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10080         remove the ERROR flag, since there's now an ERROR type
10081
10082 2003-08-01  Havoc Pennington  <hp@pobox.com>
10083
10084         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10085         implement
10086
10087         * dbus/dbus-message.c (dbus_message_get_type): new function
10088
10089         * doc/dbus-specification.sgml: add "type" byte to messages
10090
10091 2003-08-01  Havoc Pennington  <hp@pobox.com>
10092
10093         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10094         a message type enum to distinguish kinds of message
10095         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10096         that need not be replied to
10097
10098 2003-08-01  Havoc Pennington  <hp@pobox.com>
10099
10100         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10101         (unpack_8_octets): fix no-64-bit-int bug
10102
10103         * dbus/dbus-object-registry.c (validate_id): validate the 
10104         connection ID bits, not just the instance ID.
10105
10106         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10107         the connection-global 33 bits of the object ID
10108
10109         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10110         object ID in the new way
10111
10112         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10113         define server/client/instance bits.
10114
10115 2003-07-30  Havoc Pennington  <hp@pobox.com>
10116
10117         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10118         build
10119
10120 2003-07-13  Havoc Pennington  <hp@pobox.com>
10121
10122         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10123         fields to DBusObjectVTable and DBusObjectInfo
10124
10125 2003-07-12  Havoc Pennington  <hp@pobox.com>
10126
10127         * dbus/dbus-object-registry.c: implement unit test,
10128         fix bugs discovered in process
10129
10130         * dbus/dbus-connection.c: remove handler_table and
10131         register_handler(), add DBusObjectRegistry usage
10132
10133         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10134         (dbus_object_id_set_null): new functions
10135
10136 2003-07-08  Havoc Pennington  <hp@pobox.com>
10137
10138         * dbus/dbus-object.c: implement some of this
10139
10140         * dbus/dbus-object-registry.c
10141         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10142         param
10143         (_dbus_object_registry_new): handle OOM
10144
10145 2003-07-08  Havoc Pennington  <hp@pobox.com>
10146
10147         * dbus/dbus-object.h: sketch out an API for registering objects
10148         with a connection, that allows us to use as little as 24 bytes
10149         per object and lets application code represent an object in 
10150         any conceivable way.
10151
10152         * dbus/dbus-object-registry.c: implement the hard bits of the
10153         DBusConnection aspect of object API. Not yet wired up.
10154         
10155 2003-07-06  Havoc Pennington  <hp@pobox.com>
10156
10157         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10158         (_dbus_marshal_object_id): new
10159         (_dbus_demarshal_object_id): new
10160         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10161         consolidate identical switch cases. Don't conditionalize handling
10162         of DBUS_TYPE_UINT64, need to handle the type always.
10163         (_dbus_marshal_validate_arg): consolidate identical cases, and
10164         handle DBUS_TYPE_OBJECT_ID
10165
10166         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10167
10168         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10169
10170 2003-09-28  Havoc Pennington  <hp@pobox.com>
10171
10172         * real 0.13 release
10173
10174 2003-09-28  Havoc Pennington  <hp@pobox.com>
10175
10176         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10177         to work with Debian db2html
10178
10179 2003-09-28  Havoc Pennington  <hp@pobox.com>
10180
10181         * configure.in: 0.13
10182
10183         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10184         stylesheet-images for benefit of Debian
10185         
10186         Change back to using filesystem-linked sockets for the system
10187         bus, so only root can create the default system bus address.
10188         
10189         * bus/system.conf.in: change to use
10190         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10191
10192         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10193         from here.
10194
10195         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10196         here, and AC_DEFINE DBUS_SYSTEM_PATH
10197
10198 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10199
10200         * doc/TODO:
10201         * doc/busconfig.dtd:
10202         Add busconfig DTD.
10203         
10204 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10205
10206         * doc/dbus-specification.sgml:
10207         Add activation reply values.
10208         
10209 2003-08-05  Havoc Pennington  <hp@redhat.com>
10210
10211         * configure.in: 0.12
10212
10213 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10214
10215         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10216         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10217         (add_watch), (remove_watch), (create_source):
10218         Refcount fds, fixes some reentrancy issues.
10219         
10220 2003-07-30  Havoc Pennington  <hp@redhat.com>
10221
10222         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10223         bus address to be abstract if we have abstract sockets
10224
10225         * NEWS: update
10226
10227 2003-07-28  Havoc Pennington  <hp@redhat.com>
10228
10229         * bus/messagebus.in: fix to avoid processname/servicename 
10230         confusion, from Michael Kearey
10231         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10232         
10233 2003-07-23  Havoc Pennington  <hp@pobox.com>
10234
10235         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10236         fix from Andy Hanton to remove broken "+1"
10237
10238 2003-07-16  Havoc Pennington  <hp@pobox.com>
10239
10240         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10241         babysitter process, as suggested by Thomas Leonard, so 
10242         an "eval `dbus-launch --exit-with-session`" will actually 
10243         return
10244
10245 2003-07-16  Havoc Pennington  <hp@pobox.com>
10246
10247         * configure.in: print out EXPANDED_* variables in the summary at
10248         the end; clean up the code that computes EXPANDED_ variables and
10249         get the ones using exec_prefix right. Should make things work
10250         when you build without --prefix
10251
10252 2003-06-29  Havoc Pennington  <hp@pobox.com>
10253
10254         * mono/Test.cs (class Test): fire up a main loop and run it
10255
10256         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10257         done once, the app has to do it
10258
10259 2003-06-26  Havoc Pennington  <hp@pobox.com>
10260
10261         * mono/Connection.cs: set up connection with the glib main loop
10262
10263 2003-07-01  Havoc Pennington  <hp@redhat.com>
10264
10265         * doc/dbus-specification.sgml: clarify the format of a type code,
10266         change suggested by Jim Blandy
10267
10268 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10269
10270         * doc/Makefile.am:
10271         * tools/Makefile.am: Don't assume srcdir == builddir.
10272
10273         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10274         the allocated block.
10275         (_dbus_memory_test): New function.
10276         * dbus/dbus-test.h: Add _dbus_memory_test ().
10277         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10278
10279         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10280         of %c%c%c%c.
10281         (dbus_message_new): Remove obsolete @todo.
10282
10283         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10284         (_dbus_marshal_set_uint64): Fix comment.
10285
10286         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10287         hardcode FIELD_REPLY_SERIAL.
10288
10289         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10290         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10291
10292         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10293         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10294
10295 2003-06-24  Havoc Pennington  <hp@pobox.com>
10296
10297         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10298
10299 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10300
10301         * configure.in:
10302         * gcj/.cvsignore:
10303         * gcj/Hello.java:
10304         * gcj/Makefile.am:
10305         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10306         * gcj/org/.cvsignore:
10307         * gcj/org/Makefile.am:
10308         * gcj/org/freedesktop/.cvsignore:
10309         * gcj/org/freedesktop/Makefile.am:
10310         * gcj/org/freedesktop/dbus/.cvsignore:
10311         * gcj/org/freedesktop/dbus/Makefile.am:
10312         * gcj/org/freedesktop/dbus/Message.java: (Message),
10313         (Message.Message):
10314         * gcj/org/freedesktop/dbus/natMessage.cc:
10315         Fix the build system.
10316
10317 2003-06-22  Havoc Pennington  <hp@pobox.com>
10318
10319         * mono/Connection.cs: add more bindings
10320
10321         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10322         more than once.
10323
10324 2003-06-22  Havoc Pennington  <hp@pobox.com>
10325
10326         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10327         Start wrapping more stuff.
10328
10329 2003-06-22  Havoc Pennington  <hp@pobox.com>
10330
10331         * mono/Message.cs: implement Message.Wrap() that ensures we only
10332         have a single C# wrapper per DBusMessage, assuming it works which
10333         it probably doesn't.
10334
10335         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10336         (dbus_message_free_data_slot): new
10337         (dbus_message_set_data): new
10338         (dbus_message_get_data): new
10339
10340 2003-06-22  Havoc Pennington  <hp@pobox.com>
10341
10342         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10343         (_dbus_data_slot_allocator_alloc): rework these to keep a
10344         reference count on each slot and automatically manage a global
10345         slot ID variable passed in by address
10346
10347         * bus/bus.c: convert to new dataslot API
10348
10349         * dbus/dbus-bus.c: convert to new dataslot API
10350
10351         * dbus/dbus-connection.c: convert to new dataslot API
10352
10353         * dbus/dbus-server.c: convert to new dataslot API
10354
10355         * glib/dbus-gmain.c: ditto
10356
10357         * bus/test.c: ditto
10358
10359         * bus/connection.c: ditto
10360
10361 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10362
10363         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10364         after the gcj checks so that the correct configuration tags
10365         will be added to libtool.
10366
10367         * dbus-glib-1.pc.in: No need to specify any includes since
10368         dbus-1.pc.in has those.
10369
10370 2003-06-22  Havoc Pennington  <hp@pobox.com>
10371
10372         * mono/*, gcj/*, configure.in, Makefile.am:
10373         Check in makefiles and subdirs for mono and gcj bindings.
10374         Neither binding actually exists, just trying to get through
10375         all the build and other boring bits.
10376
10377 2003-06-21  Philip Blundell  <philb@gnu.org>
10378
10379         * tools/dbus-monitor.1: Updated.
10380
10381         * tools/dbus-send.1: Likewise.
10382
10383 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10384
10385         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10386         for hangup and error after checking read so we won't discard
10387         pending data if both hangup and read are set.
10388
10389 2003-06-19  Philip Blundell  <philb@gnu.org>
10390
10391         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10392
10393         * tools/dbus-send.c: Accept both --system and --session.
10394
10395         * tools/dbus-monitor.c: Same here.
10396
10397 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10398
10399         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10400         from C++ (Patch by Miloslav Trmac).
10401
10402 2003-06-15  Joe Shaw  <joe@assbarn.com>
10403
10404         * configure.in: Check for socklen_t.
10405
10406         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10407
10408         * test/test-segfault.c: Add #include <sys/time.h>
10409
10410         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10411         dbus-launch needs it.
10412
10413 2003-06-09  Havoc Pennington  <hp@redhat.com>
10414
10415         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10416         SUN_LEN, it breaks abstract socket usage
10417
10418         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10419         starts of lines.
10420
10421 2003-06-04  Havoc Pennington  <hp@pobox.com>
10422
10423         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10424         using unix:abstract=/foo, and when listening in a tmpdir
10425         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10426
10427         * dbus/dbus-transport.c (_dbus_transport_open): support
10428         unix:abstract=/foo
10429
10430         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10431         support abstract sockets
10432
10433         * dbus/dbus-transport-unix.c
10434         (_dbus_transport_new_for_domain_socket): support abstract sockets
10435
10436         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10437         toggle as an argument, implement abstract namespace support
10438         (_dbus_listen_unix_socket): ditto
10439
10440         * configure.in: add --enable-abstract-sockets and implement
10441         a configure check for autodetection of the right value.
10442
10443 2003-06-01  Havoc Pennington  <hp@pobox.com>
10444
10445         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10446         in /tmp (though on Linux this will end up being useless,
10447         when we add abstract namespace support)
10448
10449         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10450         subst'ing it
10451
10452 2003-05-28  Colin Walters  <walters@verbum.org>
10453
10454         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10455
10456 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10457
10458         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10459
10460 2003-05-17  Colin Walters  <walters@gnu.org>
10461
10462         * tools/dbus-send.c: Don't exit with an error code if --help was
10463         passed.  Default to using the session bus instead of the system
10464         one.
10465
10466         * tools/dbus-launch.c: Ditto.
10467
10468         * tools/dbus-monitor.c: Ditto.
10469
10470         * tools/dbus-send.1: Update with new arguments.
10471
10472         * tools/dbus-launch.c: Emit code to export variables.  New
10473         arguments -s and -c to specify shell syntax, and a bit of code to
10474         autodetect syntax.  Also, allow specifying a program to run.
10475
10476         * tools/dbus-launch.1: Update with new arguments.
10477
10478         * tools/dbus-send.1: Ditto.
10479
10480         * tools/dbus-monitor.1: Ditto.
10481
10482 2003-05-17  Havoc Pennington  <hp@pobox.com>
10483
10484         * bus/config-parser.c (merge_included): merge in policies from
10485         child configuration file.
10486
10487         * bus/policy.c (bus_policy_merge): function to merge two policies
10488         together
10489
10490 2003-05-16  Havoc Pennington  <hp@redhat.com>
10491
10492         * dbus/dbus-connection.c: disable verbose lock spew
10493
10494         * tools/dbus-send.c: add --print-reply command line option
10495
10496         * tools/dbus-print-message.h (print_message): new util function
10497         shared by dbus-send and dbus-monitor
10498
10499         * tools/dbus-monitor.c (handler_func): exit on disconnect
10500
10501         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10502         disconnected, don't try to use the read_watch
10503
10504         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10505         so we can find this bug more easily
10506
10507 2003-05-16  Havoc Pennington  <hp@redhat.com>
10508
10509         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10510         NULL as DBusHashTable is annoyingly likely to do.
10511
10512 2003-05-16  Colin Walters  <walters@verbum.org>
10513
10514         * tools/dbus-monitor.c: Add --session argument and usage()
10515         function.
10516
10517         * tools/dbus-monitor.1: Update with new --session arg.
10518
10519         * bus/Makefile.am (install-data-hook): Create
10520         $(libdir)/dbus-1.0/services so that the session bus is happy.
10521
10522 2003-05-15  Havoc Pennington  <hp@redhat.com>
10523
10524         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10525         on non-x86. ifdef's are evil.
10526
10527 2003-05-15  Havoc Pennington  <hp@redhat.com>
10528
10529         * configure.in: 0.11
10530
10531         * NEWS: update
10532
10533         * bus/Makefile.am (initddir): apparently we are supposed to put
10534         init scripts in /etc/rc.d/init.d not /etc/init.d
10535
10536         * bus/Makefile.am: remove the "you must --enable-tests to make
10537         check" as it broke distcheck
10538
10539         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10540
10541 2003-05-13  James Willcox  <jwillcox@gnome.org>
10542
10543         * configure.in:
10544         * bus/activation.c: (bus_activation_service_created),
10545         (bus_activation_activate_service):
10546         * bus/driver.c: (bus_driver_send_service_deleted),
10547         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10548         (bus_driver_send_service_acquired),
10549         (bus_driver_send_welcome_message),
10550         (bus_driver_handle_list_services):
10551         * bus/session.conf.in:
10552         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10553         (dbus_bus_service_exists), (dbus_bus_activate_service):
10554         * dbus/dbus-bus.h:
10555
10556         Add some convenience API which lets you activate a service, and did a
10557         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10558         and dbus_message_get_args()
10559
10560 2003-05-11  Havoc Pennington  <hp@pobox.com>
10561
10562         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10563         calling _dbus_marshal_validate_arg() for every byte in a byte
10564         array, etc.
10565
10566         * dbus/dbus-message-handler.c: use atomic reference counting to
10567         reduce number of locks slightly; the global lock in here sucks
10568
10569         * dbus/dbus-connection.c
10570         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10571         update_dispatch_status that can be called with lock held; then use
10572         in a couple places to reduce locking/unlocking
10573         (dbus_connection_send): hold the lock over the whole function
10574         instead of acquiring it twice.
10575
10576         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10577
10578         * bus/connection.c (bus_connections_setup_connection): fix access
10579         to already-freed memory.
10580
10581         * dbus/dbus-connection.c: keep a little cache of linked list
10582         nodes, to avoid using the global linked list alloc lock in the
10583         normal send-message case. Instead we just use the connection lock
10584         that we already have to take.
10585
10586         * dbus/dbus-list.c (_dbus_list_find_last): new function
10587
10588         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10589         change to use a struct for the atomic type; fix docs,
10590         they return value before increment, not after increment.
10591
10592         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10593         (_dbus_string_append_8_aligned): new functions to try to
10594         microoptimize this operation.
10595         (reallocate_for_length): break this out of set_length(), to
10596         improve profile info, and also so we can consider inlining the
10597         set_length() part.
10598
10599         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10600         strings with some preallocation, cuts down on our calls to realloc
10601         a fair bit. Though if we can get the "move entire string to empty
10602         string" optimization below to kick in here, it would be better.
10603
10604         * dbus/dbus-string.c (_dbus_string_move): just call
10605         _dbus_string_move_len
10606         (_dbus_string_move_len): add a special case for moving
10607         an entire string into an empty string; we can just
10608         swap the string data instead of doing any reallocs.
10609         (_dbus_string_init_preallocated): new function
10610
10611 2003-05-11  Havoc Pennington  <hp@pobox.com>
10612
10613         Write a "test-profile" that does echo client-server with threads;
10614         profile reveals lock contention, memcpy/realloc of buffers, and
10615         UTF-8 validation as hot spots. 20% of lock contention eliminated
10616         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10617         contention is global mempool locks for GList and DBusList.
10618
10619         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10620         x86 implementation
10621
10622         * dbus/dbus-connection.c (struct DBusConnection): use
10623         dbus_atomic_t for the reference count
10624
10625         * dbus/dbus-message.c (struct DBusMessage): declare
10626         dbus_atomic_t values as volatile
10627
10628         * configure.in: code to detect ability to use atomic integer
10629         operations in assembly, from GLib patch
10630
10631         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10632         time, tired of it being wrong in threads and forked processes
10633
10634         * glib/test-profile.c: a little program to bounce messages back
10635         and forth between threads and eat CPU
10636
10637         * dbus/dbus-connection.c: add debug spew macros for debugging
10638         thread locks; include config.h at top; fix deadlock in
10639         dbus_connection_flush()
10640
10641 2003-05-08  Havoc Pennington  <hp@pobox.com>
10642
10643         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10644         data from getting written, and there wasn't a good reason to
10645         use _exit really.
10646
10647         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10648         dbus_verbose lines in test coverage
10649         (main): add list of functions sorted by # of untested blocks
10650         to the coverage report
10651
10652         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10653
10654         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10655
10656         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10657         extend test coverage
10658
10659         * test/data/auth/cancel.auth-script: test canceling an
10660         authentication
10661
10662         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10663         aren't used. in CVS history if we end up needing them.
10664
10665 2003-05-04  Havoc Pennington  <hp@pobox.com>
10666
10667         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10668         unit test
10669
10670         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10671         function, which assumed length was in # of strings, not bytes
10672
10673         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10674         missing coverage
10675
10676         * dbus/dbus-connection.c
10677         (_dbus_connection_queue_received_message): disable function for
10678         now, we are only using it in test mode
10679
10680         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10681         remove a mistaken FIXME
10682
10683 2003-05-04  Havoc Pennington  <hp@pobox.com>
10684
10685         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10686         unlock mutex on successful return, patch from Anders Gustafsson
10687
10688 2003-05-04  Havoc Pennington  <hp@pobox.com>
10689
10690         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10691         Anders Gustafsson
10692
10693 2003-05-04  Havoc Pennington  <hp@pobox.com>
10694
10695         * tools/dbus-launch.c: implement
10696
10697         * bus/main.c (main), bus/bus.c (bus_context_new):
10698         implement --print-pid and --fork
10699
10700 2003-05-03  Havoc Pennington  <hp@redhat.com>
10701
10702         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10703         the address had no value, and add to test suite. Fix and
10704         regression test from Miloslav Trmac
10705
10706 2003-05-03  Havoc Pennington  <hp@pobox.com>
10707
10708         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10709         watch is invalid when handled
10710
10711         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10712         dbus-launch utility to launch the bus from a shell script.  Didn't
10713         actually implement dbus-launch yet, it's just a placeholder still.
10714
10715 2003-05-03  Havoc Pennington  <hp@pobox.com>
10716
10717         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10718         daemon; also documents daemon config file, so replaces
10719         doc/config-file.txt. Corrected some stuff from config-file.txt in
10720         the process of moving it.
10721
10722 2003-05-03  Havoc Pennington  <hp@pobox.com>
10723
10724         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10725         add some man pages
10726
10727 2003-05-03  Colin Walters  <walters@verbum.org>
10728
10729         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10730         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10731
10732         * Makefile.am: Update to use new .pc versioning scheme.
10733
10734 2003-05-02  Havoc Pennington  <hp@redhat.com>
10735
10736         * bus/system.conf.in: allow send/receive to/from message bus
10737         service
10738
10739 2003-04-30  Havoc Pennington  <hp@redhat.com>
10740
10741         * configure.in: print a note when building with unit tests and
10742         without assertions
10743
10744 2003-04-30  Havoc Pennington  <hp@redhat.com>
10745
10746         * Makefile.am: add a check-local that complains if you didn't
10747         configure with --enable-tests
10748
10749 2003-04-29  Havoc Pennington  <hp@redhat.com>
10750
10751         * glib/dbus-gmain.c: docs cleanups
10752
10753         * dbus/dbus-types.h: add docs on int64 types
10754
10755         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10756         public API docs section
10757
10758 2003-04-29  Havoc Pennington  <hp@redhat.com>
10759
10760         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10761         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10762         parallel install API version, not with the D-BUS package version.
10763
10764         * HACKING: move some of README over here
10765
10766         * README: updates, and document API/ABI policy
10767
10768         * configure.in: reindentation
10769
10770 2003-04-29  Havoc Pennington  <hp@redhat.com>
10771
10772         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10773         to use this library" to be sure people have the right
10774         expectations.
10775
10776 2003-04-28  Havoc Pennington  <hp@redhat.com>
10777
10778         * configure.in: add --enable-docs which by default is auto yes if
10779         doxygen and db2html found, no otherwise; but can be forced on/off
10780
10781         * doc/Makefile.am: conditionalize whether to build docs on
10782         --enable-docs
10783
10784 2003-04-28  Havoc Pennington  <hp@redhat.com>
10785
10786         * configure.in: 0.10
10787
10788         * NEWS: update
10789
10790         * bus/system.conf.in: add <includedir>system.d</includedir>
10791
10792         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10793         username was provided but not uid
10794
10795         * bus/config-parser.c (struct BusConfigParser): keep track of
10796         whether the parser is toplevel or was included; change some
10797         of the error handling if it's included.
10798
10799 2003-04-27  Havoc Pennington  <hp@pobox.com>
10800
10801         Unbreak my code...
10802
10803         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10804         report correct status if we finish processing authentication
10805         inside this function.
10806
10807         * bus/activation.c (try_send_activation_failure): use
10808         bus_transaction_send_error_reply
10809
10810         * bus/connection.c (bus_connection_get_groups): return an error
10811         explaining the problem
10812
10813         * bus/bus.c (bus_context_check_security_policy): implement
10814         restriction here that inactive connections can only send the
10815         hello message. Also, allow bus driver to send anything to
10816         any recipient.
10817
10818         * bus/connection.c (bus_connection_complete): create the
10819         BusClientPolicy here instead of on-demand.
10820         (bus_connection_get_policy): don't return an error
10821
10822         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10823         sender field in message being replied to
10824
10825         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10826         causing it to return FALSE always
10827
10828         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10829         we checked sender rather than destination
10830
10831 2003-04-25  Havoc Pennington  <hp@redhat.com>
10832
10833         test suite is slightly hosed at the moment, will fix soon
10834
10835         * bus/connection.c (bus_connections_expire_incomplete): fix to
10836         properly disable the timeout when required
10837         (bus_connection_set_name): check whether we can remove incomplete
10838         connections timeout after we complete each connection.
10839
10840         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10841         probably still broken.
10842
10843         * bus/services.c (bus_registry_acquire_service): implement max
10844         number of services owned, and honor allow/deny rules on which
10845         services a connection can own.
10846
10847         * bus/connection.c (bus_connection_get_policy): report errors here
10848
10849         * bus/activation.c: implement limit on number of pending
10850         activations
10851
10852 2003-04-25  Havoc Pennington  <hp@redhat.com>
10853
10854         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10855         where we used >= 0 instead of != DBUS_UID_UNSET.
10856
10857 2003-04-25  Havoc Pennington  <hp@redhat.com>
10858
10859         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10860         were toggled without add/remove, fix from Anders Gustafsson
10861
10862 2003-04-24  Havoc Pennington  <hp@redhat.com>
10863
10864         * test/data/valid-config-files/basic.conf: add <limit> tags to
10865         this test
10866
10867         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10868         <limit> tag in configuration file.
10869
10870 2003-04-24  Havoc Pennington  <hp@redhat.com>
10871
10872         * bus/dispatch.c: somehow missed some name_is
10873
10874         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10875         (_dbus_timeout_set_interval): new
10876
10877         * bus/connection.c (bus_connections_setup_connection): record time
10878         when each connection is first set up, and expire them after the
10879         auth timeout passes.
10880
10881 2003-04-24  Havoc Pennington  <hp@redhat.com>
10882
10883         * dbus/dbus-message.c (dbus_message_name_is): rename
10884         (dbus_message_service_is): rename
10885         (dbus_message_sender_is): rename
10886         (dbus_message_get_service): rename
10887
10888 2003-04-24  Havoc Pennington  <hp@redhat.com>
10889
10890         * configure.in: add --enable-checks
10891
10892         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10893
10894         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10895         to use thread locks.
10896         (_dbus_connection_handler_destroyed_locked): move some private
10897         functions into proper docs group
10898
10899         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10900         _dbus_return_val_if_fail
10901
10902         Throughout: use dbus_return_if_fail
10903
10904 2003-04-23  James Willcox  <jwillcox@gnome.org>
10905
10906         * glib/dbus-glib.h:
10907         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10908         (dbus_connection_setup_with_g_main),
10909         (dbus_server_setup_with_g_main):
10910         * glib/test-dbus-glib.c: (main):
10911         * glib/test-thread-client.c: (main):
10912         * glib/test-thread-server.c: (new_connection_callback), (main):
10913         * tools/dbus-monitor.c: (main):
10914
10915         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10916         and dbus_server_setup_with_g_main().
10917
10918 2003-04-20  Havoc Pennington  <hp@pobox.com>
10919
10920         * doc/dbus-specification.sgml: document the restrictions on
10921         message and service names
10922
10923 2003-04-22  Havoc Pennington  <hp@redhat.com>
10924
10925         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10926         support, and do some code cleanups to share more code and
10927         speed up array marshal/demarshal.
10928
10929         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10930
10931         * configure.in: generate dbus-arch-deps.h
10932
10933         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10934         64-bit typecodes
10935
10936 2003-04-22  Havoc Pennington  <hp@redhat.com>
10937
10938         * test/data/valid-messages/opposite-endian.message: fix test
10939         to use proper type for rply field
10940
10941         * test/data/invalid-messages: add tests for below validation
10942
10943         * dbus/dbus-message.c (decode_header_data): validate field types,
10944         and validate that named fields are valid names
10945         (decode_name_field): consider messages in the
10946         org.freedesktop.Local. namespace to be invalid.
10947
10948         * dbus/dbus-string.c (_dbus_string_validate_name): new
10949
10950 2003-04-19  Havoc Pennington  <hp@pobox.com>
10951
10952         * bus/driver.c (bus_driver_handle_hello): check limits and
10953         return an error if they are exceeded.
10954
10955         * bus/connection.c: maintain separate lists of active and inactive
10956         connections, and a count of each. Maintain count of completed
10957         connections per user. Implement code to check connection limits.
10958
10959         * dbus/dbus-list.c (_dbus_list_unlink): export
10960
10961         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10962         number of bytes in the message queue for a connection
10963
10964 2003-04-18  Havoc Pennington  <hp@pobox.com>
10965
10966         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10967
10968         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10969         memleaks
10970
10971         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10972         on realloc be sure to update the pointer in the keyring
10973
10974         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10975         offset to avoid writing to unallocated memory
10976
10977         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10978         try the next mechanism, so we properly handle OOM
10979
10980         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10981         on OOM.
10982         (_dbus_keyring_new): fix OOM bug
10983         (_dbus_keyring_new_homedir): always set error; impose a maximum
10984         number of keys we'll load from the file, mostly to speed up the
10985         test suite and make its OOM checks more useful, but also for
10986         general sanity.
10987
10988         * dbus/dbus-auth.c (process_error_server): reject authentication
10989         if we get an error from the client
10990         (process_cancel): on cancel, send REJECTED, per the spec
10991         (process_error_client): send CANCEL if we get an error from the
10992         server.
10993
10994 2003-04-18  Havoc Pennington  <hp@pobox.com>
10995
10996         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10997         debug spew
10998
10999         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11000         handling problem
11001
11002         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11003         about DBUS_TEST_HOMEDIR once
11004
11005         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11006         the environment
11007
11008         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11009         config file so we test the right thing
11010
11011         Throughout: assorted docs improvements
11012
11013 2003-04-18  Havoc Pennington  <hp@pobox.com>
11014
11015         * glib/dbus-gmain.c: adapt to watch changes
11016
11017         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11018
11019         * dbus/dbus-server.h: remove dbus_server_handle_watch
11020
11021         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11022
11023         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11024         like DBusTimeout, so we don't need dbus_connection_handle_watch
11025         etc.
11026
11027 2003-04-17  Havoc Pennington  <hp@redhat.com>
11028
11029         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11030         database usage so it all goes via the DBusUserDatabase cache.
11031
11032 2003-04-17  Havoc Pennington  <hp@redhat.com>
11033
11034         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11035         there was an OOM watch we skipped, we always return TRUE so we
11036         iterate again to have a look at it again. Fixes test suite hang.
11037         Code rearrangement also lets us lose some memset and only iterate
11038         over callbacks once.
11039
11040         * bus/driver.c (bus_driver_handle_message): sense of test for
11041         reply was backward
11042
11043 2003-04-16  Havoc Pennington  <hp@pobox.com>
11044
11045         * doc/dbus-specification.sgml: make spec say serials are unsigned
11046
11047         * dbus/dbus-message.h: change message serials to unsigned
11048
11049         * dbus/dbus-connection.c: adapt to message serials being unsigned
11050
11051 2003-04-15  Havoc Pennington  <hp@pobox.com>
11052
11053         * bus/bus.c: create and keep around a shared DBusUserDatabase
11054         object.
11055
11056         * bus/connection.c (bus_connection_get_groups): don't cache
11057         groups for user in the connection object, since user database
11058         object now does that.
11059
11060 2003-04-16  Havoc Pennington  <hp@redhat.com>
11061
11062         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11063         list of size counters
11064         (_dbus_message_loader_putback_message_link): put back a popped link
11065
11066         * dbus/dbus-connection.c
11067         (dbus_connection_set_max_live_messages_size): rename
11068         max_received_size
11069         (dbus_connection_get_outgoing_size): get size of outgoing
11070         queue
11071         (_dbus_connection_set_connection_counter): remove this cruft
11072
11073 2003-04-14  Havoc Pennington  <hp@redhat.com>
11074
11075         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11076         caching, but at some point we might want to be able to use a
11077         different database.
11078
11079         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11080         SHA1 conf file to test the sha1 auth mechanism, since the regular
11081         test always uses EXTERNAL when available.
11082
11083         * configure.in,
11084         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11085         add conf file that requires use of sha1 auth
11086
11087 2003-04-13  Havoc Pennington  <hp@pobox.com>
11088
11089         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11090         from Philip Blundell to send messages and monitor them.
11091
11092 2003-04-13  Havoc Pennington  <hp@pobox.com>
11093
11094         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11095         callbacks
11096
11097         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11098         users
11099
11100         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11101         fix to only recover unused bytes if we're already authenticated
11102         (_dbus_transport_get_is_authenticated): fix to still mark us
11103         authenticated if there are unused bytes.
11104
11105         * bus/dispatch.c: implement security policy checking
11106
11107         * bus/connection.c (bus_transaction_send_from_driver): new
11108
11109         * bus/bus.c (bus_context_check_security_policy): new
11110
11111         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11112         now we just set the DBusError and it gets converted to an error
11113         reply.
11114
11115         * bus/connection.c (allow_user_function): enable code using actual
11116         data from the config file
11117
11118         * bus/policy.c (list_allows_user): handle wildcard rules for
11119         user/group connection perms
11120
11121 2003-04-13  Havoc Pennington  <hp@pobox.com>
11122
11123         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11124
11125         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11126
11127         * bus/policy.c (bus_policy_append_mandatory_rule)
11128         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11129         (bus_policy_append_group_rule): new functions
11130
11131 2003-04-12  Havoc Pennington  <hp@pobox.com>
11132
11133         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11134
11135         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11136         the pid/gid/uid, just for paranoia.
11137
11138         * test/break-loader.c (randomly_do_n_things): find a byte
11139         containing a type code, and randomly change it to a different
11140         type code.
11141
11142 2003-04-12  Havoc Pennington  <hp@pobox.com>
11143
11144         * bus/policy.h: change BusPolicy to be the thing from the config
11145         file, and rename old BusPolicy to BusClientPolicy
11146
11147         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11148         match change in how policy works
11149
11150         * dbus/dbus-internals.h: mark assert_not_reached as
11151         __attribute((noreturn))__
11152
11153 2003-04-11  Havoc Pennington  <hp@redhat.com>
11154
11155         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11156         the broadcast service. Use boolean return for ServiceExists.
11157
11158 2003-04-11  Havoc Pennington  <hp@redhat.com>
11159
11160         * configure.in: add another directory to look for qt in.
11161
11162 2003-04-11  Havoc Pennington  <hp@redhat.com>
11163
11164         * AUTHORS: add Colin Walters
11165
11166 2003-04-11  Havoc Pennington  <hp@redhat.com>
11167
11168         * NEWS: update
11169
11170         * configure.in: 0.9
11171
11172 2003-04-11  Havoc Pennington  <hp@redhat.com>
11173
11174         * bus/messagebus.in: remove pid file when stopping the
11175         message bus, since the bus won't have privileges to remove it
11176         itself.
11177
11178 2003-04-11  Havoc Pennington  <hp@redhat.com>
11179
11180         * bus/bus.c (bus_context_new): move credentials change after
11181         creating pidfile
11182
11183 2003-04-11  Havoc Pennington  <hp@pobox.com>
11184
11185         * test/decode-gcov.c: add "below average functions" to the
11186         coverage report, and change how some of the code works.
11187
11188         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11189         not in the coverage stats.
11190
11191         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11192         couple places so running the test suite doesn't result in megaspam.
11193
11194 2003-04-11  Havoc Pennington  <hp@pobox.com>
11195
11196         * bus/dispatch.c (check_existent_service_activation): accept a no
11197         memory error in a place we didn't before
11198
11199         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11200         in case the first one failed," since the test suite is less
11201         broken now.
11202
11203 2003-04-10  Havoc Pennington  <hp@pobox.com>
11204
11205         * bus/dispatch.c (check_segfault_service_activation): add test
11206         for launching an executable that just crashes.
11207
11208         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11209         don't leave a million cores. We'll see how portable this is.
11210
11211 2003-04-10  Havoc Pennington  <hp@pobox.com>
11212
11213         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11214         the possible parent failures before we fork, so that we don't
11215         fail to create a babysitter after creating the child.
11216
11217         * bus/activation.c (bus_activation_activate_service): kill child
11218         if we don't successfully complete the activation.
11219
11220 2003-04-10  Havoc Pennington  <hp@redhat.com>
11221
11222         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11223         the connection if it's disconnected
11224
11225         * bus/activation.c (bus_activation_service_created): use new
11226         transaction features to roll back removal of pending activation if
11227         we don't successfully create the service after all. Don't remove
11228         pending activation if the function fails.
11229
11230         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11231         (_dbus_list_insert_after_link): new code to facilitate
11232         services.c fixes
11233
11234         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11235         new functionality, so we can preallocate the ability to insert
11236         into a hash table.
11237
11238         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11239         allowing us to put custom hooks in a transaction to be used for
11240         cancelling said transaction
11241
11242         * doc/dbus-specification.sgml: add some discussion of secondary
11243         service owners, and disallow zero-length service names
11244
11245         * bus/services.c (bus_registry_acquire_service): new function,
11246         splits out part of bus_driver_handle_acquire_service() and fixes
11247         a bug where we didn't remove the service doing the acquiring
11248         from the secondary queue if we failed to remove the current owner
11249         from the front of the queue.
11250
11251 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11252
11253         * doc/dbus-specification.sgml:
11254         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11255
11256 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11257
11258         * bus/.cvsignore:
11259         * glib/.cvsignore:
11260         * test/.cvsignore:
11261         Added files to cvsignore
11262
11263         * dbus/dbus-message.h:
11264         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11265         Make get_named() take two out argument and return a boolean.
11266         (dbus_message_iter_get_args_valist):
11267         Update usage of get_named().
11268         (dbus_message_iter_append_byte):
11269         Fix typo
11270         (dbus_message_iter_append_named)
11271         Fix typo
11272         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11273         More tests.
11274
11275 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11276
11277         * dbus/dbus-marshal.[ch]:
11278         Add array_type_pos argument to _dbus_marshal_validate_arg.
11279         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11280
11281         * dbus/dbus-message.[ch]:
11282         Multi-dimensional arrays have full type specification in the
11283         outermost array. Iter code re-arranged to handle this.
11284         Added some more iter tests.
11285
11286         * doc/dbus-specification.sgml:
11287         Add me to authors.
11288         Remove old FIXME.
11289         Update new array encoding description.
11290         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11291
11292         * test/data/invalid-messages/array-with-mixed-types.message:
11293         * test/data/valid-messages/array-of-array-of-uint32.message:
11294         Change to the new array format.
11295
11296         * test/data/invalid-messages/too-short-dict.message:
11297         Fix bug in test.
11298
11299         * test/data/valid-messages/recursive-types.message:
11300         Fix up and extend test.
11301
11302 2003-04-10  Havoc Pennington  <hp@pobox.com>
11303
11304         * bus/dispatch.c: lots of fixes
11305
11306         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11307         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11308         that was crack, broke the test service.
11309
11310         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11311         handling to avoid piling up errors if we get a failure on the
11312         first address.
11313
11314         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11315         pid in assertion failures.
11316
11317         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11318         to some fixed size of file descriptor array. Don't return TRUE
11319         anytime a timeout exists, that led to lots of busy loop silliness
11320         in the tests.
11321
11322 2003-04-09  Havoc Pennington  <hp@redhat.com>
11323
11324         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11325         I'd checked this in earlier but hadn't.
11326
11327 2003-04-09  Havoc Pennington  <hp@redhat.com>
11328
11329         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11330         the activation test (man this is getting old!)
11331
11332 2003-04-09  Havoc Pennington  <hp@redhat.com>
11333
11334         * test/test-utils.c: use dispatch status function to fix this up
11335
11336         * bus/connection.c (connection_watch_callback): don't dispatch
11337         from here
11338         (connection_timeout_callback): don't dispatch from here
11339         (bus_connections_setup_connection): set the dispatch status function
11340         (bus_connection_disconnected): unset it
11341
11342         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11343         used to add a connection to be dispatched
11344         (_dbus_loop_iterate): do the dispatching at the end of each
11345         iteration
11346
11347         * dbus/dbus-connection.c
11348         (dbus_connection_set_dispatch_status_function): new function
11349         allowing us to fix up main loop usage
11350         (_dbus_connection_last_unref): free all the various function
11351         user data
11352         (dbus_connection_dispatch): call the DispatchStatusFunction
11353         whenever this function returns
11354         (dbus_connection_handle_watch): call DispatchStatusFunction
11355         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11356         (reply_handler_timeout): call DispatchStatusFunction
11357         (dbus_connection_flush): call DispatchStatusFunction
11358
11359 2003-04-09  Havoc Pennington  <hp@redhat.com>
11360
11361         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11362         a memory leak
11363
11364         * bus/dispatch.c (check_service_activated): fix bug in test
11365
11366         * dbus/dbus-mainloop.c (check_timeout): fix this up
11367
11368         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11369         verbose output so we can sort out output from different processes,
11370         e.g. in the activation case.
11371
11372 2003-04-08  Colin Walters  <walters@gnu.org>
11373
11374         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11375         the pid file.
11376         (bus_context_new): Set it.
11377         (bus_context_unref): Use it to delete the pid file.
11378
11379 2003-04-08  Havoc Pennington  <hp@redhat.com>
11380
11381         * test/data/invalid-messages/array-with-mixed-types.message:
11382         regression test that fails for the moment
11383
11384         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11385         tests for convenience
11386
11387         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11388         array of nil, it broke things.
11389
11390         * test/data/invalid-messages/array-of-nil.message: regression test
11391
11392         * test/data/valid-messages/array-of-array-of-uint32.message:
11393         happened to write this so added it to suite
11394
11395 2003-04-08  Havoc Pennington  <hp@redhat.com>
11396
11397         * bus/driver.c (bus_driver_handle_acquire_service): init
11398         retval/reply before checking name
11399
11400         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11401         recursion depth argument
11402
11403         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11404         in the public struct for future extension
11405
11406         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11407         typo
11408
11409         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11410         message
11411
11412         * doc/dbus-specification.sgml: fix typo
11413
11414 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11415
11416         Implemented recursive types, named types and new-style iters
11417
11418         * bus/driver.c:
11419         * glib/test-thread-client.c: (thread_func):
11420         * glib/test-thread-server.c: (handle_test_message):
11421         * test/test-service.c: (handle_echo):
11422         Update to new api
11423
11424         * dbus/Makefile.am:
11425         * dbus/dbus-dict.c:
11426         * dbus/dbus-dict.h:
11427         * dbus/dbus.h
11428         Remove DBusDict
11429
11430         * dbus/dbus-internals.c: (_dbus_type_to_string):
11431         Update for new types.
11432
11433         * dbus/dbus-marshal.[ch]:
11434         Implement recursive types and the new marshalling format.
11435         Remove hardcoded dict marshalling.
11436         Marshal named types.
11437
11438         * dbus/dbus-message-builder.c:
11439         Add BYTE_ARRAY.
11440         Remove references to old types
11441
11442         * dbus/dbus-message.[ch]:
11443         New non-refcounted iter API that supports recursive iters.
11444         Use iters for appending, including support for recursive
11445         iters.
11446         Add byte and named type support.
11447         Update everything to new marshalling formats.
11448         Add tests for new API.
11449
11450         * dbus/dbus-protocol.h:
11451         Remove old array types.
11452         Add types: BYTE, ARRAY, DICT, NAMED
11453
11454         * dbus/dbus-string.c:
11455         * dbus/dbus-sysdeps.c:
11456         Make parse_double locale safe.
11457
11458         * dbus/dbus-test-main.c:
11459         Call setlocale.
11460
11461         * dbus/dbus-test.c:
11462         Kill dict test
11463
11464         * doc/dbus-specification.sgml:
11465         Update spec
11466
11467         * test/data/incomplete-messages/missing-body.message:
11468         * test/data/invalid-messages/bad-boolean.message:
11469         * test/data/invalid-messages/bad-boolean-array.message:
11470         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11471         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11472         * test/data/invalid-messages/too-short-dict.message:
11473         * test/data/valid-messages/dict-simple.message:
11474         * test/data/valid-messages/dict.message:
11475         * test/data/valid-messages/emptiness.message:
11476         * test/data/valid-messages/lots-of-arguments.message:
11477         * test/data/valid-messages/no-padding.message:
11478         * test/data/valid-messages/recursive-types.message:
11479         Add missing NAME fields
11480         Fix up dicts & arrays
11481
11482         * test/data/invalid-messages/dict-with-nil-value.message:
11483         Removed, this is not invalid anymore.
11484
11485         * test/data/valid-messages/recursive-types.message:
11486         Add new test for deeply recursive types.
11487
11488 2003-04-07  Havoc Pennington  <hp@pobox.com>
11489
11490         * bus/driver.c (bus_driver_handle_acquire_service): return an
11491         error if you try to acquire a service that starts with ':'
11492
11493 2003-04-07  Havoc Pennington  <hp@redhat.com>
11494
11495         * doc/dbus-specification.sgml: require that base service names
11496         start with ':' and that the base service is created/deleted
11497         as first and last things a connection does on the bus
11498
11499         * bus/dispatch.c (check_existent_service_activation): lots more
11500         work on the activation test; it doesn't fully pass yet...
11501
11502         * test/test-service.c (main): fix so we don't memleak the
11503         connection to the message bus
11504         (filter_func): accept a message asking us to exit
11505
11506 2003-04-06  Havoc Pennington  <hp@pobox.com>
11507
11508         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11509         from Colin Walters
11510
11511         * configure.in: fixes to Qt detection from Colin Walters
11512
11513         * doc/Makefile.am: Only remove generated docbook dirs if they
11514         exist, from Colin Walters
11515
11516         * dbus/dbus-bus.c: change how we set well-known connections to
11517         NULL, so that it works if a single connection is stored in
11518         two well-known array slots.
11519
11520         * test/Makefile.am: remove a lot of stuff that isn't immediately
11521         useful, it's in CVS history if we want it.
11522
11523         * test/test-service.c: use dbus-mainloop instead of that
11524         watch.[hc] crack
11525
11526 2003-04-06  Havoc Pennington  <hp@pobox.com>
11527
11528         * dbus/Makefile.am: split lists of sources into stuff that goes in
11529         the library, util functions that go in the lib and are also used
11530         elsewhere, and util functions that are used in tests/daemon but
11531         don't go in the lib.
11532
11533         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11534         here so it can be used in test binaries also
11535
11536 2003-04-06  Havoc Pennington  <hp@pobox.com>
11537
11538         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11539         here in the parent process, so we can return an error if it
11540         fails. Also, move some of the code into the child so the parent
11541         is less hosed if we fail midway through.
11542
11543         * bus/bus.c (bus_context_new): move pidfile detection further up
11544         in the function, before we start overwriting sockets and such.
11545
11546         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11547
11548         * configure.in: add --with-system-pid-file and --with-system-socket
11549
11550 2003-04-06  Colin Walters  <walters@verbum.org>
11551
11552         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11553
11554         * bus/system.conf.in: Declare a pidfile.
11555
11556         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11557         create one (if appropriate).
11558
11559         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11560         (struct BusConfigParser) [pidfile]: New.
11561         (element_type_to_name, merge_included, start_busconfig_child)
11562         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11563         (bus_config_parser_unref): Free it.
11564         (bus_config_parser_get_pidfile): New function.
11565
11566         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11567
11568         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11569
11570         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11571
11572         * dbus/dbus-sysdeps.h: Prototype it.
11573
11574 2003-04-06  Havoc Pennington  <hp@pobox.com>
11575
11576         * bus/bus.c (bus_context_new): print the address in here, rather
11577         than in main(), because we need to do it before forking the daemon
11578
11579         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11580         on the service nonexistent error
11581
11582         * bus/driver.c (bus_driver_handle_acquire_service): set the
11583         sender on the AcquireService reply
11584
11585         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11586         server also listen on a UNIX socket so services can connect to it.
11587
11588 2003-04-06  Havoc Pennington  <hp@pobox.com>
11589
11590         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11591         so it detects deadlocks and also we actually init threads when
11592         debugging.
11593
11594 2003-04-06  Havoc Pennington  <hp@pobox.com>
11595
11596         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11597         save the domain socket name, and unlink it when we disconnect the
11598         server. Means that at least when we exit normally, we won't leave
11599         a bunch of junk in /tmp
11600
11601         * dbus/dbus-transport-unix.c
11602         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11603         memory management). (I was making a real change here but then
11604         didn't)
11605
11606 2003-04-06  Havoc Pennington  <hp@pobox.com>
11607
11608         * bus/bus.c (bus_context_new): fix wrong handling of
11609         server_data_slot_unref() in the error case.
11610
11611         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11612         "(condition) != 0" to _dbus_real_assert so that
11613         "_dbus_assert (pointer)" doesn't cause a warning
11614
11615         * bus/main.c (main): accept --print-address option to print out
11616         the message bus address
11617
11618         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11619
11620         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11621         "tmpdir" option to unix: address on client side
11622
11623         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11624         to unix: address
11625
11626         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11627         we can use to create sockets in the test suite.
11628
11629         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11630         cleanly. To be used for testing.
11631
11632         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11633
11634         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11635
11636         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11637         handle trying to call this when there's no servers active
11638
11639 2003-04-05  Havoc Pennington  <hp@pobox.com>
11640
11641         * NEWS: update
11642
11643         * configure.in: 0.8
11644
11645 2003-04-05  Havoc Pennington  <hp@pobox.com>
11646
11647         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11648         crash on startup. Need to get "try starting the daemon"
11649         in the test suite I guess. ;-)
11650
11651         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11652         tracked the number of open connections; it's better done in
11653         application-specific code as you want it to span all servers etc.
11654
11655 2003-04-05  Havoc Pennington  <hp@pobox.com>
11656
11657         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11658         patch from Colin Walters
11659
11660 2003-04-05  Havoc Pennington  <hp@pobox.com>
11661
11662         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11663         reality; in fact multiple mechanisms are allowed.
11664
11665         * dbus/dbus-internals.c (_dbus_real_assert)
11666         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11667         _dbus_assert_not_reached() into functions, so that they don't show
11668         up in basic block counts for test coverage, and don't use up as
11669         much disk space. Does mean slower execution speed though, so
11670         assumes --disable-asserts is the normal production case.
11671
11672 2003-04-05  Havoc Pennington  <hp@pobox.com>
11673
11674         * test/Makefile.am (dist-hook): also dist *.in files
11675
11676         * NEWS: update
11677
11678         * configure.in: 0.7
11679
11680 2003-04-05  Havoc Pennington  <hp@pobox.com>
11681
11682         * dbus/dbus-string.c: docs warning
11683
11684         * dbus/dbus-spawn.c: missing docs
11685
11686         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11687
11688 2003-04-05  Havoc Pennington  <hp@pobox.com>
11689
11690         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11691         magic from GLib
11692
11693         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11694         to -1 once we've reaped the babysitter
11695         (_dbus_babysitter_handle_watch): do as much work as we can, not
11696         just one go of it
11697
11698         * bus/activation.c: add code using DBusBabysitter so that we
11699         handle it when a service fails to start up properly.
11700         (bus_activation_service_created): don't remove the activation
11701         entries as we go, just let them get removed when we free the pending
11702         activation. Unref reply messages after sending them.
11703
11704 2003-04-05  Havoc Pennington  <hp@pobox.com>
11705
11706         * test/decode-gcov.c (main): print per-directory stats in the report
11707
11708         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11709
11710 2003-04-05  Havoc Pennington  <hp@pobox.com>
11711
11712         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11713
11714         * test/decode-gcov.c: hack up a little program to suck data
11715         out of gcov files. Yes this is sort of silly.
11716
11717         * configure.in: define something in config.h and do an
11718         AM_CONDITIONAL when gcov is enabled
11719
11720 2003-04-04  Havoc Pennington  <hp@redhat.com>
11721
11722         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11723         return a "babysitter" object that is used to monitor the status of
11724         the spawned process and reap it when required.
11725
11726         * test/test-segfault.c, test/test-exit.c,
11727         test/test-sleep-forever.c: binaries that do various lame things,
11728         used in the test suite.
11729
11730         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11731
11732 2003-04-03  Havoc Pennington  <hp@pobox.com>
11733
11734         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11735         in preparation for modifying it, dbus-sysdeps is getting
11736         a bit unmanageable.
11737
11738 2003-04-03  Havoc Pennington  <hp@redhat.com>
11739
11740         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11741         have multiple ones
11742
11743         * bus/*.[hc]: adapt to mainloop change
11744
11745 2003-04-03  Havoc Pennington  <hp@redhat.com>
11746
11747         * bus/activation.c (load_directory): fix up memleaks
11748         (bus_activation_entry_free): free the entry
11749
11750         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11751         we get one from the message bus; fix memleaks.
11752
11753         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11754
11755 2003-04-03  Havoc Pennington  <hp@pobox.com>
11756
11757         * bus/config-parser.c (bus_config_parser_unref): free
11758         list of mechanisms, bug discovered by test suite enhancements
11759         (putting system.conf and session.conf into suite)
11760
11761         * test/Makefile.am, test/test-service.c: add placeholder for a
11762         test service that we'll activate as part of test suite. Doesn't
11763         do anything yet.
11764
11765         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11766         setting NULL value, and use system malloc not dbus_malloc()
11767         when we have unavoidable memleakage.
11768
11769         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11770         didn't work, and support DBUS_BUS_ACTIVATION.
11771
11772         * bus/activation.c (child_setup): pass our well-known bus type to
11773         the child
11774
11775         * bus/config-parser.c: support <type> to specify well-known type
11776
11777         * doc/dbus-specification.sgml: document the env variables to
11778         locate well-known buses and find service activator
11779
11780 2003-04-02  Havoc Pennington  <hp@redhat.com>
11781
11782         * test/Makefile.am (all-local): add a rule to copy tests to
11783         builddir, so we can have generated tests. Use this to remove the
11784         silly hack for testing system.conf and session.conf. Will use this
11785         shortly to generate .service files pointing to test binaries.
11786
11787 2003-04-02  Havoc Pennington  <hp@redhat.com>
11788
11789         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11790         current alloc and needed new length, not max of the doubled
11791         allocation and needed new length. Also, when building tests,
11792         don't do the double-allocation stuff, just realloc every time.
11793
11794 2003-04-02  Havoc Pennington  <hp@redhat.com>
11795
11796         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11797         in error messages
11798         (_dbus_string_get_dirname): new
11799         (_dbus_sysdeps_test): new
11800         (_dbus_directory_open): include dirnames in error messages
11801
11802         * bus/config-parser.c: interpret <include> and <includedir> and
11803         <servicedir> relative to config file location if the given
11804         filename is not absolute.
11805
11806         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11807
11808 2003-04-02  Havoc Pennington  <hp@redhat.com>
11809
11810         * bus/connection.c (bus_transaction_send_error_reply): set sender
11811         service for the error, and unref the reply on success
11812
11813         * bus/activation.c: convert to use BusTransaction so OOM can be
11814         handled correctly
11815         (bus_activation_service_created): set sender of the message
11816
11817 2003-04-01  Havoc Pennington  <hp@redhat.com>
11818
11819         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11820         <includedir> (at least mostly)
11821
11822         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11823         first, then the user ID
11824
11825 2003-04-01  Havoc Pennington  <hp@pobox.com>
11826
11827         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11828         function
11829
11830         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11831
11832         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11833
11834         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11835         socket 0777, and unlink any existing socket.
11836
11837         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11838         the configuration file so specifies; set up auth mechanism
11839         restrictions
11840
11841         * bus/config-parser.c (bus_config_parser_content): add support
11842         for <fork> option and fill in code for <auth>
11843
11844         * bus/system.conf.in: add <fork/> to default configuration,
11845         and limit auth mechanisms to EXTERNAL
11846
11847         * doc/config-file.txt (Elements): add <fork>
11848
11849         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11850         (_dbus_change_identity): new function
11851
11852 2003-03-31  Havoc Pennington  <hp@redhat.com>
11853
11854         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11855         (_dbus_listen_unix_socket): fix off-by-one error in null
11856         termination spotted by Nalin
11857
11858 2003-03-31  Havoc Pennington  <hp@redhat.com>
11859
11860         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11861         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11862         having a real home directory available.
11863
11864 2003-03-31  Havoc Pennington  <hp@redhat.com>
11865
11866         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11867
11868         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11869
11870         * configure.in: add support for specifying a style of init script
11871         to install
11872
11873 2003-03-31  Havoc Pennington  <hp@redhat.com>
11874
11875         Fix some annoying DBusString API and fix all affected code.
11876
11877         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11878         max_length argument
11879         (_dbus_string_get_data): change to return string instead of using
11880         an out param
11881         (_dbus_string_get_const_data): ditto
11882         (_dbus_string_get_data_len): ditto
11883         (_dbus_string_get_const_data_len): ditto
11884
11885 2003-03-31  Havoc Pennington  <hp@redhat.com>
11886
11887         * bus/main.c (main): fix up the command line arguments to be nicer
11888
11889 2003-03-31  Havoc Pennington  <hp@redhat.com>
11890
11891         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11892         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11893         final location that lands in the config file
11894
11895         * bus/config-loader-expat.c (bus_config_load): fix type of
11896         XML_Parser variable
11897
11898         * doc/TODO: remove TODO item for dbus_bus_get()
11899
11900         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11901
11902 2003-03-31  Havoc Pennington  <hp@pobox.com>
11903
11904         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11905         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11906         argument since they are always client side
11907
11908         * dbus/dbus-server.c (dbus_server_get_address): new function
11909
11910         * bus/main.c (main): take the configuration file as an argument.
11911
11912         * test/data/valid-config-files/debug-allow-all.conf: new file to
11913         use with dispatch.c tests for example
11914
11915         * bus/test-main.c (main): require test data dir
11916
11917         * bus/bus.c (bus_context_new): change this to take a
11918         configuration file name as argument
11919
11920         * doc/config-file.txt (Elements): add <servicedir>
11921
11922         * bus/system.conf, bus/session.conf: new files
11923
11924         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11925         well-known socket if none set
11926
11927         * configure.in: create system.conf and session.conf
11928
11929 2003-03-30  Havoc Pennington  <hp@pobox.com>
11930
11931         * bus/config-parser.c: hacking
11932
11933         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11934         to shut down, since it could cause weirdness with the DBusList
11935         lock
11936
11937         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11938         link-oriented stack routines
11939         (alloc_link): free the mempool if the first alloc from it fails
11940
11941         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11942
11943         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11944         from GLib
11945         (_dbus_string_skip_white): new
11946
11947         * doc/config-file.txt (Elements): add <includedir>
11948
11949 2003-03-28  Havoc Pennington  <hp@pobox.com>
11950
11951         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11952         (_dbus_string_copy_data): new functions
11953
11954 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11955
11956         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11957         * dbus/dbus-bus.h:
11958         Add dbus_bus_get.
11959
11960         * dbus/dbus-memory.c:
11961         Fix a doc comment.
11962
11963 2003-03-28  Havoc Pennington  <hp@pobox.com>
11964
11965         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11966         I think it may have just been superstition. Not sure.
11967
11968         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11969         failures that were not being handled.
11970
11971         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11972
11973         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11974         row that will fail on out-of-memory.
11975
11976         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11977         function for testing out-of-memory handling.
11978
11979         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11980         allocation functions, they do map exactly to the expat ones.
11981
11982 2003-03-27  Havoc Pennington  <hp@redhat.com>
11983
11984         * bus/config-loader-libxml.c (bus_config_load): add another error
11985         check
11986
11987 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11988
11989         * doc/TODO:
11990         Add note about automatic service activation.
11991
11992         * doc/dbus-specification.sgml:
11993         Rename the specification and clarify a few things.
11994
11995 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11996
11997         * Doxyfile.in:
11998         * dbus/dbus-address.c:
11999         * dbus/dbus-dict.c:
12000         * dbus/dbus-marshal.c:
12001         * dbus/dbus-server-debug-pipe.c:
12002         * dbus/dbus-transport-unix.c:
12003         Fix documentation warnings.
12004
12005 2003-03-26  Havoc Pennington  <hp@pobox.com>
12006
12007         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12008         after every test so it's quick and easy to see which leaked, and
12009         so we test multiple dbus_shutdown() calls
12010
12011         * configure.in: change configure.in XML stuff to also support
12012         expat
12013
12014         * config-loader-libxml.c: some hacking
12015
12016         * config-loader-expat.c: some hacking
12017
12018         * config-parser.c: some hacking, plus tests
12019
12020 2003-03-25  Havoc Pennington  <hp@redhat.com>
12021
12022         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12023
12024         * configure.in: add --with-xml option to specify XML library,
12025         right now only libxml is supported.
12026
12027         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12028         nonworking code between home and work, still just stubs
12029
12030 2003-03-24  Havoc Pennington  <hp@redhat.com>
12031
12032         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12033         file
12034
12035         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12036         NULL argument for "message" if the error is a well-known one,
12037         fill in a generic message in this case.
12038
12039         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12040         favor of DBusError
12041
12042         * bus/test.c (bus_test_flush_bus): add
12043
12044         * bus/policy.c (bus_policy_test): test code stub
12045
12046 2003-03-24  Havoc Pennington  <hp@pobox.com>
12047
12048         * bus/connection.c (bus_connections_setup_connection): set up
12049         the "can this user connect" function, but it always returns
12050         TRUE until we have a config file parser so we can have a config
12051         file that allows connections.
12052
12053 2003-03-23  Havoc Pennington  <hp@pobox.com>
12054
12055         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12056         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12057         the mutex, so we can check for proper memory management
12058         and OOM handling.
12059
12060         * dbus/dbus-dataslot.c: remove the mutex from
12061         DBusDataSlotAllocator and lock it manually when using it,
12062         to simplify fitting it into the global slots framework.
12063
12064         * dbus/dbus-threads.c (init_static_locks): rework how we're
12065         handling global locks so they are easily shut down.
12066
12067         * bus/policy.c (bus_policy_append_rule): fix
12068
12069         * bus/test-main.c (main): check for memleaks
12070
12071         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12072         test suite check for memleaks
12073
12074         * dbus/dbus-memory.c: add support in test mode for tracking
12075         number of outstanding blocks
12076
12077 2003-03-23  Havoc Pennington  <hp@pobox.com>
12078
12079         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12080         policies code
12081
12082         * dbus/dbus-hash.h: add ULONG hash keys
12083
12084         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12085         (_dbus_get_group_id): new function
12086
12087 2003-03-20  Havoc Pennington  <hp@redhat.com>
12088
12089         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12090         new function
12091         (dbus_connection_get_unix_user): new function
12092
12093 2003-03-20  Havoc Pennington  <hp@pobox.com>
12094
12095         * bus/connection.c (bus_connection_send_oom_error): assert that
12096         message has a sender
12097         (connection_execute_transaction): ditto
12098         (bus_connection_preallocate_oom_error): fix to set the sender, and
12099         set recipient to the destination service, not the bus driver
12100
12101         * bus/policy.c: hacking
12102
12103         * dbus/dbus-message.c (dbus_message_service_is): new function
12104         (dbus_message_sender_is): new
12105
12106 2003-03-19  Havoc Pennington  <hp@redhat.com>
12107
12108         * bus/policy.c: start sketching code for policy restrictions on
12109         what connections can do.
12110
12111 2003-03-18  Havoc Pennington  <hp@redhat.com>
12112
12113         * doc/TODO: some notes on high-level todo items. Little nitpick
12114         stuff is all in @todo, so no need to add it here.
12115
12116         * doc/config-file.txt: some notes on how config file might look
12117
12118 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12119
12120         * configure.in: 0.6
12121
12122         * NEWS: Update.
12123
12124 2003-03-17  Havoc Pennington  <hp@redhat.com>
12125
12126         * dbus/dbus-internals.h: add gcc attributes so that
12127         our printf-style functions warn on bad arguments to
12128         format
12129
12130         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12131         format bug
12132
12133         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12134         printf format bug
12135
12136 2003-03-17  Havoc Pennington  <hp@redhat.com>
12137
12138         * bus/test-main.c (main): make it print something as it runs
12139         so make check doesn't look stuck
12140
12141         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12142         from CVS, now obsolete
12143
12144 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12145
12146         * bus/dispatch.c: (bus_dispatch):
12147         Refetch the service name since it may have been reallocated
12148         when dbus_message_set_sender was called.
12149
12150         * dbus/dbus-sysdeps.c: (_dbus_accept):
12151         Add address and address length variables and use them to stop
12152         valgrind from complaining.
12153
12154 2003-03-17  Havoc Pennington  <hp@pobox.com>
12155
12156         All tests pass, no memleaks, no valgrind complaints.
12157
12158         * bus/test.c: refcount handler_slot
12159
12160         * bus/connection.c (bus_connections_new): refcount
12161         connection_data_slot
12162
12163         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12164         bytes so that auth scripts pass.
12165
12166         * bus/dispatch.c: init message_handler_slot so it gets allocated
12167         properly
12168
12169         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12170
12171         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12172         dealloc server_pipe_hash when no longer used for benefit of
12173         leak checking
12174
12175         * dbus/dbus-auth.c (process_command): memleak fix
12176
12177         * bus/dispatch.c (check_hello_message): memleak fix
12178
12179 2003-03-16  Havoc Pennington  <hp@pobox.com>
12180
12181         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12182
12183 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12184
12185         * bus/activation.c (bus_activation_activate_service): Append
12186         the pending activation entry to the list of pending activations.
12187
12188 2003-03-16  Havoc Pennington  <hp@pobox.com>
12189
12190         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12191         connections
12192
12193         * dbus/dbus-address.c (create_entry): fix OOM handling when
12194         failing to alloc entry->method
12195
12196 2003-03-16  Havoc Pennington  <hp@pobox.com>
12197
12198         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12199         the watch
12200
12201         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12202         add some missing dbus_set_result
12203
12204         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12205         alloc the DBusMessageHandler
12206
12207         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12208         the transport here, since we call this from the finalizer; it
12209         resulted in a double-finalize.
12210
12211         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12212         where we tried to use transport->connection that was NULL,
12213         happened when transport was disconnected early on due to OOM
12214
12215         * bus/*.c: adapt to handle OOM for watches/timeouts
12216
12217         * dbus/dbus-transport-unix.c: port to handle OOM during
12218         watch handling
12219
12220         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12221         reference to unused bytes instead of a copy
12222
12223         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12224         out of memory
12225
12226         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12227         FALSE on OOM
12228
12229         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12230         of memory
12231
12232 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12233
12234         * doc/dbus-specification.sgml:
12235         Document reply message for ActivateService.
12236
12237 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12238
12239         * bus/activation.c: (bus_pending_activation_entry_free),
12240         (bus_pending_activation_free), (bus_activation_new),
12241         (bus_activation_unref), (bus_activation_service_created),
12242         (bus_activation_activate_service):
12243         * bus/activation.h:
12244         * bus/bus.c: (bus_context_new):
12245         * bus/desktop-file.c: (new_section):
12246         * bus/driver.c: (bus_driver_send_service_deleted),
12247         (bus_driver_handle_activate_service):
12248         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12249         * bus/services.h:
12250         * dbus/dbus-connection.c:
12251         (dbus_connection_send_with_reply_and_block):
12252         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12253         * dbus/dbus-protocol.h:
12254         Make activation work better. Now pending activations will be queued
12255         and the daemon won't try to activate services that are already registered.
12256
12257 2003-03-16  Havoc Pennington  <hp@pobox.com>
12258
12259         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12260         connection data
12261
12262         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12263         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12264
12265 2003-03-16  Havoc Pennington  <hp@pobox.com>
12266
12267         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12268         this. always run the test suite before commit...
12269
12270         * bus/*: adapt to DBusConnection API changes
12271
12272         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12273         requires renaming stuff to avoid dbus_connection_dispatch name
12274         conflict.
12275
12276         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12277         function
12278
12279         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12280         separate from _dbus_message_loader_return_buffer()
12281
12282         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12283         this, because it's now always broken to use; the number of
12284         messages in queue vs. the number still buffered by the message
12285         loader is undefined/meaningless. Should use
12286         dbus_connection_get_dispatch_state().
12287         (dbus_connection_dispatch): rename from
12288         dbus_connection_dispatch_message
12289
12290 2003-03-16  Havoc Pennington  <hp@pobox.com>
12291
12292         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12293         implementation
12294
12295 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12296
12297         * dbus/dbus-connection.c:
12298         (dbus_connection_send_with_reply_and_block):
12299         Decrease connection->n_incoming when removing an entry
12300         from the list.
12301         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12302         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12303         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12304         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12305         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12306         (dbus_dict_get_byte_array):
12307         Handle NULL arrays and strings. Also add support for byte arrays.
12308
12309         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12310         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12311         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12312         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12313         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12314         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12315         * dbus/dbus-marshal.h:
12316         Add support for marshalling and demarshalling empty arrays and strings.
12317
12318         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12319         (dbus_message_append_string_array),
12320         (dbus_message_iter_get_boolean),
12321         (dbus_message_iter_get_boolean_array),
12322         (dbus_message_iter_get_int32_array),
12323         (dbus_message_iter_get_uint32_array),
12324         (dbus_message_iter_get_double_array),
12325         (dbus_message_iter_get_byte_array),
12326         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12327         (check_message_handling):
12328         Add support for getting empty arrays and dicts.
12329
12330         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12331         Don't do any validation at all for now, that's better than just checking
12332         for ASCII.
12333
12334         * test/data/valid-messages/emptiness.message:
12335         New test message with lots of empty arrays.
12336
12337 2003-03-16  Havoc Pennington  <hp@pobox.com>
12338
12339         * dbus/dbus-connection.c
12340         (_dbus_connection_queue_received_message_link): new function that
12341         can't fail due to OOM
12342
12343         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12344         new function pops a message together with a list link
12345         containing it.
12346
12347         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12348         message queuing functions to avoid needing to alloc memory
12349
12350 2003-03-16  Havoc Pennington  <hp@pobox.com>
12351
12352         Oops - test code was only testing failure of around 30 of the
12353         mallocs in the test path, but it turns out there are 500+
12354         mallocs. I believe this was due to misguided linking setup such
12355         that there was one copy of dbus_malloc etc. in the daemon and one
12356         in the shared lib, and only daemon mallocs were tested. In any
12357         case, the test case now tests all 500+ mallocs, and doesn't pass
12358         yet, though there are lots of fixes in this patch.
12359
12360         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12361         this so that it doesn't need to allocate memory, since it
12362         has no way of indicating failure due to OOM (and would be
12363         annoying if it did).
12364
12365         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12366
12367         * bus/Makefile.am: rearrange to create two self-contained
12368         libraries, to avoid having libraries with overlapping symbols.
12369         that was resulting in weirdness, e.g. I'm pretty sure there
12370         were two copies of global static variables.
12371
12372         * dbus/dbus-internals.c: move the malloc debug stuff to
12373         dbus-memory.c
12374
12375         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12376         empty.
12377
12378         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12379
12380         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12381         on failure.
12382
12383         * bus/dispatch.c (bus_dispatch_add_connection): free
12384         message_handler_slot when no longer using it, so
12385         memory leak checkers are happy for the test suite.
12386
12387         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12388
12389         * bus/bus.c (new_connection_callback): disconnect in here if
12390         bus_connections_setup_connection fails.
12391
12392         * bus/connection.c (bus_connections_unref): fix to free the
12393         connections
12394         (bus_connections_setup_connection): if this fails, don't
12395         disconnect the connection, just be sure there are no side
12396         effects.
12397
12398         * dbus/dbus-string.c (undo_alignment): unbreak this
12399
12400         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12401         leaking
12402         (_dbus_auth_new): fix the order in which we free strings
12403         on OOM failure
12404
12405         * bus/connection.c (bus_connection_disconnected): fix to
12406         not send ServiceDeleted multiple times in case of memory
12407         allocation failure
12408
12409         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12410         get the base service name
12411         (dbus_bus_register_client): don't return base service name,
12412         instead store it on the DBusConnection and have an accessor
12413         function for it.
12414         (dbus_bus_register_client): rename dbus_bus_register()
12415
12416         * bus/dispatch.c (check_hello_message): verify that other
12417         connections on the bus also got the correct results, not
12418         just the one sending hello
12419
12420 2003-03-15  Havoc Pennington  <hp@pobox.com>
12421
12422         Make it pass the Hello handling test including all OOM codepaths.
12423         Now to do other messages...
12424
12425         * bus/services.c (bus_service_remove_owner): fix crash when
12426         removing owner from an empty list of owners
12427         (bus_registry_ensure): don't leave service in the list of
12428         a connection's owned services if we fail to put the service
12429         in the hash table.
12430
12431         * bus/connection.c (bus_connection_preallocate_oom_error): set
12432         error flag on the OOM error.
12433
12434         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12435         handle _dbus_transport_set_connection failure
12436
12437         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12438         to create watches up front and simply enable/disable them as
12439         needed.
12440         (unix_connection_set): this can now fail on OOM
12441
12442         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12443         of enabling/disabling a watch or timeout.
12444
12445         * bus/loop.c (bus_loop_iterate): don't touch disabled
12446         watches/timeouts
12447
12448         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12449
12450 2003-03-15  Havoc Pennington  <hp@pobox.com>
12451
12452         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12453         write useful test code, after all that futzing around ;-)
12454
12455         Test does not yet pass because we can't handle OOM in
12456         _dbus_transport_messages_pending (basically,
12457         dbus_connection_preallocate_send() does not prealloc the write
12458         watch). To fix this, I think we need to add new stuff to
12459         set_watch_functions, namely a SetEnabled function so we can alloc
12460         the watch earlier, then enable it later.
12461
12462         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12463         dbus-memory.c to the convenience lib
12464
12465         * bus/test.c: rename some static functions to keep them clearly
12466         distinct from stuff in connection.c. Handle client disconnection.
12467
12468 2003-03-14  Havoc Pennington  <hp@pobox.com>
12469
12470         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12471         transport, tests more of the real codepath. Set up clients
12472         with bus_setup_debug_client.
12473
12474         * bus/test.c (bus_setup_debug_client): function to set up debug
12475         "clients" on the main loop
12476
12477         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12478         support
12479
12480         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12481         server type
12482
12483         * dbus/dbus-server-debug.c: support a debug server based on pipes
12484
12485         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12486         (_dbus_close): new function
12487
12488         * configure.in: check for socketpair
12489
12490 2003-03-14  Havoc Pennington  <hp@redhat.com>
12491
12492         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12493         cheesy hack
12494
12495         * dbus/dbus-transport-debug.c: rework this a good bit to be
12496         less complicated. hopefully still works.
12497
12498         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12499         manually
12500
12501         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12502         after running it
12503
12504         * dbus/dbus-message.c (dbus_message_copy): rename from
12505         dbus_message_new_from_message, fix it up to copy
12506         all the message fields, add test case
12507
12508         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12509         not quite passing yet
12510
12511 2003-03-14  Havoc Pennington  <hp@pobox.com>
12512
12513         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12514         until no work remains" in test code. (the large diff here
12515         is just code movement, no actual changes)
12516
12517         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12518         1, no point waiting around for test code.
12519         (_dbus_server_debug_accept_transport): unref the timeout
12520         after adding it (right?)
12521
12522         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12523
12524 2003-03-13  Havoc Pennington  <hp@redhat.com>
12525
12526         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12527         out of memory
12528
12529         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12530         of memory
12531
12532         * dbus/dbus-connection.h: Make AddWatchFunction and
12533         AddTimeoutFunction return a bool so they can fail on out-of-memory
12534
12535         * bus/bus.c (bus_context_new): set up timeout handlers
12536
12537         * bus/connection.c (bus_connections_setup_connection): set up
12538         timeout handlers
12539
12540         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12541         can fail
12542
12543         * bus/bus.c (bus_context_new): adapt to changes
12544
12545         * bus/connection.c: adapt to changes
12546
12547         * test/watch.c: adapt to DBusWatch changes
12548
12549         * bus/dispatch.c (bus_dispatch_test): started adding this but
12550         didn't finish
12551
12552 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12553
12554         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12555
12556 2003-03-13  Havoc Pennington  <hp@pobox.com>
12557
12558         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12559         set up a test framework as for the library
12560
12561 2003-03-12  Havoc Pennington  <hp@pobox.com>
12562
12563         Throughout: purge global variables, introduce BusActivation,
12564         BusConnections, BusRegistry, etc. objects instead.
12565
12566         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12567         message bus object
12568
12569         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12570         going to redo this a bit differently I think
12571
12572 2003-03-12  Havoc Pennington  <hp@redhat.com>
12573
12574         Mega-patch that gets the message bus daemon initially handling
12575         out-of-memory. Work still needed. Also lots of random
12576         moving stuff to DBusError instead of ResultCode.
12577
12578         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12579
12580         * dbus/dbus-connection.c
12581         (dbus_connection_send_with_reply_and_block): use DBusError
12582
12583         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12584         DBusResultCode
12585
12586         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12587         code here, as the only failure possible is OOM.
12588
12589         * bus/connection.c (bus_connection_disconnect):
12590         rename bus_connection_disconnected as it's a notification only
12591
12592         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12593         "name" on get_args failure, should be done by get_args;
12594         don't disconnect client for bad args, just return an error.
12595         (bus_driver_handle_service_exists): ditto
12596
12597         * bus/services.c (bus_services_list): NULL-terminate returned array
12598
12599         * bus/driver.c (bus_driver_send_service_lost)
12600         (bus_driver_send_service_acquired): send messages from driver to a
12601         specific client to the client's unique name, not to the broadcast
12602         service.
12603
12604         * dbus/dbus-message.c (decode_header_data): reject messages that
12605         contain no name field
12606         (_dbus_message_get_client_serial): rename to
12607         dbus_message_get_serial and make public
12608         (_dbus_message_set_serial): rename from set_client_serial
12609         (_dbus_message_set_reply_serial): make public
12610         (_dbus_message_get_reply_serial): make public
12611
12612         * bus/connection.c (bus_connection_foreach): allow stopping
12613         iteration by returning FALSE from foreach function.
12614
12615         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12616         (dbus_connection_free_preallocated_send)
12617         (dbus_connection_preallocate_send): new API for sending a message
12618         without possibility of malloc failure.
12619         (dbus_connection_send_message): rename to just
12620         dbus_connection_send (and same for whole function family)
12621
12622         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12623
12624         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12625
12626         * bus/activation.c: handle/return errors
12627
12628         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12629
12630         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12631         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12632         (_dbus_result_from_errno): move to this file
12633
12634 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12635
12636         * dbus/dbus-marshal.c:
12637         (_dbus_marshal_set_string):
12638         Take a length argument so we can marshal the correct string
12639         length.
12640
12641         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12642         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12643         (_dbus_marshal_test):
12644         * dbus/dbus-marshal.h:
12645         Add support for marshalling and demarshalling dicts.
12646
12647         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12648         Add support for TYPE DICT.
12649
12650         * dbus/dbus-message.c: (set_string_field):
12651         Adjust header padding.
12652
12653         (dbus_message_append_args_valist), (dbus_message_append_dict),
12654         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12655         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12656         (check_message_handling), (check_have_valid_message):
12657         * dbus/dbus-message.h:
12658         Add functions for setting and getting dicts.
12659
12660         * dbus/dbus-protocol.h:
12661         Add DBUS_TYPE_DICT.
12662
12663         * dbus/dbus.h:
12664         Add dbus-dict.h
12665
12666         * doc/dbus-specification.sgml:
12667         Add information about how dicts are marshalled.
12668
12669         * test/data/invalid-messages/dict-with-nil-value.message:
12670         * test/data/invalid-messages/too-short-dict.message:
12671         * test/data/valid-messages/dict-simple.message:
12672         * test/data/valid-messages/dict.message:
12673         Add sample messages containing dicts.
12674
12675 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12676
12677         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12678
12679 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12680
12681         * dbus/Makefile.am:
12682         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12683         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12684         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12685         (dbus_dict_set_double), (dbus_dict_set_string),
12686         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12687         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12688         (dbus_dict_set_string_array), (_dbus_dict_test):
12689         * dbus/dbus-dict.h:
12690         Fix according to comments from Havoc.
12691
12692 2003-03-06  Michael Meeks  <michael@server.home>
12693
12694         * configure.in: if we don't have kde-config, disable have_qt.
12695
12696 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12697
12698         * dbus/Makefile.am:
12699         Add dbus-dict.[ch]
12700
12701         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12702         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12703         (dbus_dict_remove), (dbus_dict_get_value_type),
12704         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12705         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12706         (dbus_dict_put_double), (dbus_dict_put_string),
12707         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12708         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12709         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12710         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12711         (dbus_dict_get_double), (dbus_dict_get_string),
12712         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12713         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12714         (dbus_dict_get_string_array), (_dbus_dict_test):
12715         * dbus/dbus-dict.h:
12716         Add DBusDict implementation
12717
12718         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12719         * dbus/dbus-test.h:
12720         Add _dbus_dict_test
12721
12722 2003-03-04  Havoc Pennington  <hp@pobox.com>
12723
12724         * test/data/auth/*: adapt to changes
12725
12726         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12727         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12728         userid
12729
12730         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12731         more stuff from being in a context name, to make the protocol
12732         simpler to deal with
12733
12734         * dbus/dbus-errors.c (dbus_error_has_name): new function
12735         (dbus_error_is_set): new function
12736
12737         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12738         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12739
12740         * dbus/dbus-connection.c (dbus_connection_flush): also read
12741         messages during a flush operation
12742
12743         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12744
12745 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12746
12747         * configure.in: Check for gethostbyname on Solaris.
12748
12749         * dbus/dbus-transport.c: (_dbus_transport_open):
12750         Remove duplicate "tcp" entry.
12751
12752         * doc/dbus-specification.sgml:
12753         Clarify some things.
12754
12755 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12756
12757         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12758         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12759         (_dbus_keyring_test):
12760         * dbus/dbus-md5.c: (_dbus_md5_compute):
12761         * dbus/dbus-sha.c: (_dbus_sha_compute):
12762         Plug memory leaks.
12763
12764 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12765
12766         * README: Add some things.
12767
12768 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12769
12770         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12771         after case DBUS_TYPE_BOOELAN.
12772
12773 2003-03-02  Havoc Pennington  <hp@pobox.com>
12774
12775         * test/break-loader.c (randomly_set_extreme_ints): add test that
12776         sets really huge and small integers
12777
12778         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12779         that length of boolean array fits in the string, and that
12780         string has room for boolean value in single-bool case.
12781
12782         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12783         optional value to "ALIGN" command which is what to fill the
12784         alignment with.
12785
12786         * test/data/valid-messages/no-padding.message: add regression
12787         test for the message padding problem
12788
12789 2003-03-02  Havoc Pennington  <hp@pobox.com>
12790
12791         * dbus/dbus-message.c (decode_header_data): fix to always init
12792         message_padding, from Benjamin Dauvergne
12793
12794 2003-03-02  Havoc Pennington  <hp@pobox.com>
12795
12796         * configure.in: 0.5
12797
12798         * NEWS: Update.
12799
12800 2003-03-01  Joe Shaw  <joe@assbarn.com>
12801
12802         * configure.in: Check for "struct cmsgcred" and try to access its
12803         members for BSD-like unices.
12804
12805         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12806         _dbus_read_credentials_unix_socket().
12807         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12808         read() for reading the credential byte off the unix socket.  Use
12809         struct cmsgcred on systems that support it.
12810
12811 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12812
12813         * glib/Makefile.am:
12814         * configure.in:
12815         Make gthreads-2.0 dependency optional. Don't build thread test if
12816         its not found.
12817
12818 2003-02-27  Havoc Pennington  <hp@pobox.com>
12819
12820         * dbus/dbus-connection.c
12821         (dbus_connection_send_message_with_reply_and_block): fix doh!
12822         doh! doh! bug that resulted in never removing a reply from the
12823         queue, no wonder we called get_reply_serial so much ;-)
12824
12825         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12826         and client serial instead of demarshaling them every time
12827
12828 2003-02-27  Havoc Pennington  <hp@pobox.com>
12829
12830         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12831         more inlined, using dbus-string-private.h, speeds things up
12832         substantially
12833
12834         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12835         when freeing the string
12836         (_dbus_string_steal_data): fix for align offset
12837         (undo_alignment): new function
12838
12839 2003-02-26  Havoc Pennington  <hp@redhat.com>
12840
12841         All kinds of audit fixes from Owen, plus initial attempt to
12842         handle unaligned memory returned from malloc.
12843
12844         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12845         leave room for align_offset and nul byte
12846         (fixup_alignment): function to track an align_offset and
12847         ensure real->str is aligned
12848         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12849         to allow a nul byte plus align offset
12850         (_dbus_string_lock): fix overflow issue
12851         (_dbus_string_init_const_len): add assertions on sanity of len,
12852         assign allocated to be ALLOCATION_PADDING larger than len
12853         (set_length): fixup the overflow handling
12854         (_dbus_string_get_data_len): fix overflow in assertion
12855         (open_gap): detect overflow in size of gap to be opened
12856         (_dbus_string_lengthen): add overflow check
12857         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12858         (_dbus_string_append): add overflow check
12859         (_dbus_string_append_unichar): overflow
12860         (_dbus_string_delete): fix overflow in assertion
12861         (_dbus_string_copy_len): overflow in assertion
12862         (_dbus_string_replace_len): overflows in assertions
12863         (_dbus_string_find): change to implement in terms of
12864         _dbus_string_find_to
12865         (_dbus_string_find_to): assorted fixage
12866         (_dbus_string_equal_c_str): assert c_str != NULL,
12867         fix logic so the function works
12868         (_dbus_string_ends_with_c_str): fix overflow thingy
12869         (_dbus_string_base64_encode): overflow fix
12870         (_dbus_string_validate_ascii): overflow
12871         (_dbus_string_validate_nul): overflow
12872
12873 2003-02-26  Havoc Pennington  <hp@redhat.com>
12874
12875         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12876
12877 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12878
12879         * configure.in:
12880         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12881
12882         * dbus/dbus-connection.c:
12883         * dbus/dbus-connection.h:
12884         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12885         Add dbus_connection_set_wakeup_main_function and use it when queueing
12886         incoming and outgoing messages.
12887
12888
12889         * dbus/dbus-dataslot.c:
12890         Threadsafe usage of DBusDataSlotAllocator
12891
12892         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12893         dbus_new can fail.
12894
12895         * dbus/dbus-server-unix.c:
12896         Add todo comment
12897
12898         * glib/dbus-gmain.c:
12899         Implement the new wakeup functions for glib.
12900
12901         * glib/Makefile.am:
12902         * glib/test-thread-client.c:
12903         * glib/test-thread-server.c:
12904         * glib/test-thread.h:
12905         Initial cut at some thread test code. Not really done yet.
12906
12907 2003-02-26  Havoc Pennington  <hp@pobox.com>
12908
12909         * dbus/dbus-connection.c
12910         (dbus_connection_send_message_with_reply_and_block): fix crash
12911         where we ref'd the outgoing message instead of the returned reply
12912
12913         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12914         at the end of this function, so if we didn't need to read for
12915         authentication, we reinstall it for receiving messages
12916
12917         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12918         a NULL sender for peer-to-peer case
12919
12920         * dbus/dbus-transport-unix.c (check_read_watch): handle
12921         !authenticated case correctly
12922
12923         * glib/dbus-gmain.c: add support for DBusServer
12924
12925         * dbus/dbus-server.c: add data slot support
12926
12927         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12928         return values and handle errors
12929
12930         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12931         DBusConnection
12932
12933         * Doxyfile.in (INPUT): add glib subdir
12934
12935         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12936         setup_with_g_main instead of hookup_with_g_main; write docs
12937
12938 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12939
12940         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12941         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12942         * dbus/dbus-message.c: (dbus_message_append_boolean),
12943         (dbus_message_append_boolean_array),
12944         (dbus_message_get_args_valist), (_dbus_message_test):
12945         * dbus/dbus-message.h:
12946         * doc/dbus-specification.sgml:
12947         Various fixes as pointed out by Havoc.
12948
12949         * test/data/invalid-messages/bad-boolean-array.message:
12950         * test/data/invalid-messages/bad-boolean.message:
12951         Add invalid boolean value test cases.
12952
12953 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12954
12955         * dbus/dbus-internals.c: (_dbus_type_to_string):
12956         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12957         (_dbus_marshal_validate_arg):
12958         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12959         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12960         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12961         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12962         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12963         (dbus_message_iter_get_double),
12964         (dbus_message_iter_get_boolean_array), (message_iter_test):
12965         * dbus/dbus-message.h:
12966         * dbus/dbus-protocol.h:
12967         * doc/dbus-specification.sgml:
12968         * test/data/valid-messages/lots-of-arguments.message:
12969         Add support for boolean and boolean array types.
12970
12971 2003-02-23  Havoc Pennington  <hp@pobox.com>
12972
12973         * dbus/dbus-keyring.c: finish most of this implementation and
12974         simple unit test
12975
12976         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12977         these barf if the error isn't cleared to NULL
12978
12979         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12980         (_dbus_create_directory): new function
12981
12982         * dbus/dbus-errors.c (dbus_set_error): fix warning
12983
12984         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12985         (_dbus_string_hex_decode): new function
12986         (test_hex_roundtrip): test code
12987
12988         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12989
12990         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12991
12992         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12993         the save-to-temp/rename trick to atomically write the new file
12994         (_dbus_string_parse_uint): new function
12995
12996 2003-02-22  Havoc Pennington  <hp@pobox.com>
12997
12998         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12999
13000 2003-02-22  Havoc Pennington  <hp@pobox.com>
13001
13002         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13003         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13004
13005         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13006
13007         * dbus/test/data/sha-1: add US government test suite for SHA-1
13008
13009 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13010
13011         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13012         Make string arrays NULL-terminated.
13013
13014         * dbus/dbus-memory.c: (dbus_free_string_array):
13015         * dbus/dbus-memory.h:
13016         New function for freeing NULL-terminated string arrays.
13017
13018         * dbus/dbus-message-builder.c: (append_quoted_string),
13019         (_dbus_message_data_load):
13020         Add support for array types.
13021
13022         * dbus/dbus-message.c: (check_message_handling):
13023         Add more types as test cases.
13024
13025         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13026         (_dbus_string_parse_double):
13027         Add the start offset to the end offset.
13028
13029         * test/data/valid-messages/lots-of-arguments.message:
13030         New test message with lots of arguments.
13031
13032 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13033
13034         * dbus/dbus-message.c: (dbus_message_append_nil),
13035         (dbus_message_append_int32), (dbus_message_append_uint32),
13036         (dbus_message_append_double), (dbus_message_append_string),
13037         (dbus_message_append_int32_array),
13038         (dbus_message_append_uint32_array),
13039         (dbus_message_append_double_array),
13040         (dbus_message_append_byte_array),
13041         (dbus_message_append_string_array):
13042         Fix all out-of-memory handling in these functions.
13043
13044 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13045
13046         * dbus/dbus-message.c: (dbus_message_append_nil):
13047         Fix a silly.
13048
13049 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13050
13051         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13052         (dbus_message_append_nil), (dbus_message_append_int32_array),
13053         (dbus_message_append_uint32_array),
13054         (dbus_message_append_double_array),
13055         (dbus_message_append_byte_array),
13056         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13057         (dbus_message_iter_get_int32_array),
13058         (dbus_message_iter_get_uint32_array),
13059         (dbus_message_iter_get_double_array),
13060         (dbus_message_iter_get_byte_array),
13061         (dbus_message_iter_get_string_array):
13062
13063         * dbus/dbus-message.h:
13064         Add functions for appending and getting arrays.
13065
13066 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13067
13068         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13069         element size at least 8 bytes, fixes mempool tests on
13070         64-bit machines.
13071
13072 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13073
13074         * dbus/dbus-transport-unix.c (unix_do_iteration):
13075         Unlock the connection mutex during a blocking select call.
13076         Add todo about how we need a way to wake up the select.
13077
13078         * dbus/dbus-connection-internal.h:
13079         * dbus/dbus-connection.c:
13080         Add _dbus_connection_lock and _dbus_connection_unlock.
13081
13082 2003-02-19  Havoc Pennington  <hp@pobox.com>
13083
13084         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13085         Doxyfile.in, not Doxyfile
13086
13087         * dbus/dbus-keyring.c: do some hacking on this
13088
13089         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13090
13091         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13092         dbus_error_init
13093         (dbus_set_error): remove dbus_error_init, check for message ==
13094         NULL *before* we sprintf into it, and add @todo about including
13095         system headers in this file
13096
13097         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13098
13099         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13100
13101         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13102         get various bits of user information based on either username
13103         or user ID
13104         (_dbus_homedir_from_username): new function
13105
13106 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13107
13108         * configure.in:
13109         Add check for nonposix getpwnam_r
13110
13111         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13112         Align the pool element size to a sizeof (void *) boundary.
13113
13114         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13115         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13116         General Solaris fixes.
13117
13118         * test/data/valid-messages/simplest-manual.message:
13119         Explicitly state that we want little-endian packing.
13120
13121 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13122
13123         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13124
13125         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13126         Added to create a transport connecting using a tcp/ip socket.
13127
13128         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13129         to a tcp socket at given host and port.
13130         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13131         hostname and port.
13132
13133         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13134
13135         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13136         Added to create a server listening on a TCP/IP socket.
13137
13138 2003-02-19  Havoc Pennington  <hp@pobox.com>
13139
13140         Throughout: mop up all the Doxygen warnings and undocumented
13141         stuff.
13142
13143         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13144         to search any paths.
13145
13146         * dbus/dbus-threads.c: move global mutex initializers to
13147         dbus-internals.h, multiple prototypes was confusing doxygen
13148         besides being kind of ugly
13149
13150         * Doxyfile (PREDEFINED): have Doxygen define
13151         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13152         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13153         (do not abuse the feature! it's for stuff like the autogenerated
13154         macros in dbus-md5.c, not just for things you don't feel like
13155         documenting...)
13156
13157 2003-02-18  Havoc Pennington  <hp@pobox.com>
13158
13159         * dbus/dbus-string.c (_dbus_string_zero): new function
13160
13161         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13162         wrap it in some dbus-friendly API
13163
13164         * dbus/dbus-types.h: add 16-bit types
13165
13166 2003-02-18  Joe Shaw  <joe@assbarn.com>
13167
13168         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13169         credentials from our currently running process.
13170         (get_word): Fix a buglet where we were copying the entire length
13171         instead of relative to our position.
13172
13173         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13174         keys on the stack... it's 640k of data.
13175
13176         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13177         read the credentials byte off the socket, even if we don't have
13178         SO_PEERCRED.
13179         (_dbus_poll): Implement poll() using select() for systems which
13180         don't have it.
13181
13182         * glib/test-dbus-glib.c (main): Print out an error if no
13183         parameters are given.
13184
13185         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13186         can fallback to a secondary auth mechanism if the first fails.
13187
13188 2003-02-18  Havoc Pennington  <hp@pobox.com>
13189
13190         * AUTHORS: add Alex
13191
13192 2003-02-17  Havoc Pennington  <hp@pobox.com>
13193
13194         * doc/dbus-specification.sgml: lots of cosmetic
13195         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13196         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13197         s/server/bus/ (except in authentication section). Add a section
13198         "Message Bus Message Routing"
13199
13200 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13201
13202         Release 0.4
13203
13204         * NEWS: Update
13205
13206 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13207
13208         * doc/dbus-specification.sgml:
13209         Specification updates.
13210
13211 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13212
13213         * bus/activation.c: (bus_activation_init), (child_setup),
13214         (bus_activation_activate_service):
13215         * bus/activation.h:
13216         * bus/main.c: (main):
13217         Set DBUS_ADDRESS environment variable.
13218
13219         * dbus/dbus-errors.c: (dbus_set_error):
13220         Don't use va_copy since that's a C99 feature.
13221
13222         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13223         (_dbus_spawn_async):
13224         * dbus/dbus-sysdeps.h:
13225         Add child_setup_func to _dbus_spawn_async.
13226
13227         * doc/dbus-specification.sgml:
13228         Update specification.
13229
13230         * test/spawn-test.c: (setup_func), (main):
13231         Fix test.
13232
13233 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13234
13235         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13236         Added todo.
13237
13238 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13239
13240         * doc/.cvsignore:
13241         * doc/Makefile.am:
13242         * doc/dbus-test-plan.sgml:
13243         Add test plan document.
13244
13245         * test/Makefile.am:
13246         Fix distcheck.
13247
13248 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13249
13250         * dbus/dbus-message.c: (decode_header_data),
13251         (_dbus_message_loader_return_buffer):
13252         Set the header padding amount when loading a message.
13253
13254 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13255
13256         * bus/dispatch.c: (send_one_message):
13257         Only send broadcast messages to registered connections.
13258
13259         * dbus/dbus-message.c: (dbus_message_name_is):
13260         * dbus/dbus-message.h:
13261         New convenience function.
13262
13263         * dbus/dbus-transport-debug.c: (do_reading):
13264         Only dispatch one message per run.
13265
13266         * test/Makefile.am:
13267         * test/bus-test.c: (new_connection_callback), (die),
13268         (test_hello_client1_handler), (test_hello_client2_handler),
13269         (test_hello_replies), (main):
13270
13271         * test/bus-test-loop.[ch]:
13272         Add these.
13273
13274 2003-02-16  Havoc Pennington  <hp@pobox.com>
13275
13276         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13277         backward conditional
13278
13279 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13280
13281         * dbus/dbus-connection.c:
13282         Implement sent_message_with_reply. (with_reply_and block is still
13283         busted).
13284         Made dispatch_message not lose message if OOM.
13285
13286         * dbus/dbus-errors.h:
13287         Add NoReply error (for reply timeouts).
13288
13289 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13290
13291         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13292         Actually free keys and values when destroying hashtable.
13293
13294 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13295
13296         * dbus/dbus-auth.c: (client_try_next_mechanism):
13297         Plug a leak.
13298
13299         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13300         Return TRUE if there's no thread implementation around.
13301
13302         * glib/dbus-gmain.c: (free_source),
13303         (dbus_connection_hookup_with_g_main):
13304         Make sure to remove the GSource when the connection is finalized.
13305
13306 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13307
13308         * bus/dispatch.c: (bus_dispatch_message_handler):
13309         * dbus/dbus-errors.h:
13310         Return an error if someone tries to send a message to a service
13311         that doesn't exist.
13312
13313 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13314
13315         * bus/activation.c: (load_directory), (bus_activation_init),
13316         (bus_activation_activate_service):
13317         * bus/activation.h:
13318         * bus/driver.c:
13319         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13320         More work on the activation handling.
13321
13322         * dbus/dbus-errors.h:
13323         Add some error messages
13324
13325         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13326         * dbus/dbus-message.h:
13327         New function that creates an error message.
13328
13329         * dbus/dbus-protocol.h:
13330         Add ACTIVATE_SERVER message.
13331
13332         * dbus/dbus-server-unix.c: (unix_handle_watch),
13333         (_dbus_server_new_for_domain_socket):
13334         Call _dbus_fd_set_close_on_exec.
13335
13336         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13337         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13338         (_dbus_fd_set_close_on_exec):
13339         * dbus/dbus-sysdeps.h:
13340         Add _dbus_fd_set_close_on exec function. Also add function that checks
13341         that all open fds are set to close-on-exec and warns otherwise.
13342
13343         * dbus/dbus-transport-unix.c:
13344         (_dbus_transport_new_for_domain_socket):
13345         Call _dbus_fd_set_close_on_exec.
13346
13347 2003-02-16  Havoc Pennington  <hp@pobox.com>
13348
13349         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13350         allow people to avoid setting SIGPIPE to SIG_IGN
13351         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13352         we've been asked not to
13353
13354 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13355
13356         * dbus/dbus-list.c: (_dbus_list_append_link),
13357         (_dbus_list_prepend_link):
13358         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13359         (dbus_realloc):
13360         Warning fixes.
13361
13362 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13363
13364         * bus/Makefile.am:
13365         * bus/activation.c: (bus_activation_entry_free),
13366         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13367         * bus/activation.h:
13368         * bus/main.c: (main):
13369         Add simple activation support, doesn't work yet though.
13370
13371 2003-02-15   Zack Rusin  <zack@kde.org>
13372
13373         * qt/dbus-qthread.cpp:  small casting fix
13374
13375 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13376
13377         * dbus/dbus-errors.c: (dbus_set_error):
13378         * dbus/dbus-errors.h:
13379         Add a few errors and make dbus_set_error void.
13380
13381         * dbus/dbus-sysdeps.c:
13382         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13383         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13384         * dbus/dbus-sysdeps.h:
13385         Add _dbus_spawn_async.
13386
13387         * test/spawn-test.c: (main):
13388         Test for _dbus_spawn_async.
13389
13390 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13391
13392         * dbus/dbus-internals.h:
13393         Fix build without tests.
13394
13395         * dbus/dbus-list.c: (alloc_link):
13396         Fix a segfault when a malloc fails.
13397
13398         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13399         (dbus_malloc0), (dbus_realloc):
13400         Add support for malloc debugging.
13401
13402 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13403
13404         * dbus/dbus-threads.c:
13405         * dbus/dbus-threads.h:
13406         Add condvars. Remove static mutext from API.
13407         Implement static mutexes by initializing them from threads_init.
13408
13409         * glib/dbus-gthread.c:
13410         * qt/dbus-qthread.cpp:
13411         Update with the thread api changes.
13412
13413
13414         * dbus/dbus-list.c:
13415         * dbus/dbus-list.h:
13416         Turn StaticMutex into normal mutex + init function.
13417         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13418         _dbus_list_append_link, _dbus_list_prepend_link
13419
13420
13421         * dbus/dbus-sysdeps.c:
13422         * dbus/dbus-sysdeps.h:
13423         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13424         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13425
13426         * dbus/dbus-protocol.h:
13427         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13428
13429         * dbus/dbus-message.c:
13430         Make ref/unref atomic.
13431         Fix some docs.
13432
13433         * dbus/dbus-connection-internal.h:
13434         * dbus/dbus-connection.c:
13435         * dbus/dbus-connection.h:
13436         Make threadsafe.
13437         Change _peek to _borrow,_return & _steal_borrowed.
13438         Change disconnect callback to event.
13439         Make dbus_connection_dispatch_messages reentrant.
13440
13441         * dbus/dbus-transport.c:
13442         Don't ref the connection on calls to the transport
13443         implementation.
13444
13445         * dbus/dbus-message-handler.c:
13446         Make threadsafe.
13447
13448         * glib/dbus-gmain.c:
13449         Don't use peek_message anymore
13450
13451         * test/Makefile.am:
13452         * test/debug-thread.c:
13453         * test/debug-thread.h:
13454         Simple thread implementation that asserts() on deadlocks in
13455         single-threaded code.
13456
13457         * test/bus-test.c:
13458         (main) Call debug_threads_init.
13459
13460         * test/watch.c:
13461         Use disconnect message instead of disconnect callback.
13462
13463         * bus/connection.c:
13464         * bus/connection.h:
13465         Don't call dbus_connection_set_disconnect_function. Instead export
13466         bus_connection_disconnect.
13467
13468         * bus/dispatch.c:
13469         Call bus_connection_disconnect when we get a disconnected message.
13470
13471 2003-02-15  Havoc Pennington  <hp@pobox.com>
13472
13473         * dbus/dbus-message.c (dbus_message_new): fool around with the
13474         docs
13475
13476 2003-02-14  Havoc Pennington  <hp@pobox.com>
13477
13478         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13479
13480         * dbus/dbus-memory.c: fail if the debug functions indicate we
13481         should
13482
13483         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13484         (_dbus_decrement_fail_alloc_counter): debug functions to
13485         simulate memory allocation failures
13486
13487 2003-02-14  Havoc Pennington  <hp@pobox.com>
13488
13489         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13490         to DBusError
13491
13492 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13493
13494         * bus/driver.c: (bus_driver_handle_hello):
13495         * bus/driver.h:
13496         * bus/services.c: (bus_service_lookup):
13497         Reorder message sending so we get a more sane order.
13498
13499         * test/bus-test.c: (message_handler):
13500         Fix tyop.
13501
13502 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13503
13504         * bus/driver.c: (bus_driver_send_service_deleted),
13505         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13506         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13507         (bus_driver_send_welcome_message),
13508         (bus_driver_handle_list_services),
13509         (bus_driver_handle_acquire_service),
13510         (bus_driver_handle_service_exists):
13511         * dbus/dbus-bus.c: (dbus_bus_register_client),
13512         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13513         * dbus/dbus-errors.c: (dbus_result_to_string):
13514         * dbus/dbus-errors.h:
13515         * dbus/dbus-message.c: (dbus_message_append_args),
13516         (dbus_message_append_args_valist), (dbus_message_get_args),
13517         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13518         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13519         (dbus_message_iter_get_byte_array),
13520         (dbus_message_iter_get_string_array), (message_iter_test),
13521         (check_message_handling), (_dbus_message_test):
13522         * dbus/dbus-message.h:
13523         * test/bus-test.c: (main):
13524         Change fields to arguments in messages, so that they won't be
13525         confused with header fields.
13526
13527         * glib/test-dbus-glib.c: (main):
13528         Remove append_fields from hello message.
13529
13530 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13531
13532         * dbus/dbus-errors.c:
13533         * dbus/dbus-message.c:
13534         * dbus/dbus-string.c:
13535         Documentation fixes.
13536
13537 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13538
13539         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13540         (remove_timeout):
13541         Implement support for timeouts in dbus-glib.
13542
13543 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13544
13545         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13546         * dbus/dbus-message.c: (process_test_subdir):
13547         * test/break-loader.c: (find_breaks_based_on):
13548         Plug some memory leaks.
13549
13550 2003-02-13  Richard Hult  <rhult@codefactory.se>
13551
13552         * bus/main.c: Fix build.
13553
13554         * dbus/dbus-errors.h:
13555         * dbus/dbus-errors.c: Fix copyright for Anders.
13556
13557 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13558
13559         * bus/Makefile.am:
13560         Add utils.[ch]
13561
13562         * bus/connection.c: (bus_connection_foreach):
13563         Fix a warning.
13564
13565         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13566         (unescape_string), (new_section), (parse_section_start),
13567         (parse_key_value), (report_error), (bus_desktop_file_load),
13568         (bus_desktop_file_get_string):
13569         * bus/desktop-file.h:
13570         Use DBusError for error reporting.
13571
13572         * bus/dispatch.c: (send_one_message),
13573         (bus_dispatch_message_handler):
13574         * bus/driver.c: (bus_driver_send_service_deleted),
13575         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13576         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13577         (bus_driver_send_welcome_message),
13578         (bus_driver_handle_list_services),
13579         (bus_driver_handle_acquire_service),
13580         (bus_driver_handle_service_exists):
13581         * bus/loop.c: (bus_loop_run):
13582         * bus/main.c:
13583         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13584
13585         * bus/utils.c: (bus_wait_for_memory):
13586         * bus/utils.h:
13587         New files with general utility functions.
13588
13589         * dbus/dbus-internals.h:
13590         Remove _DBUS_HANDLE_OOM.
13591
13592 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13593
13594         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13595         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13596         * dbus/dbus-errors.h:
13597         Add DBusError structure.
13598
13599 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13600
13601         * test/data/valid-messages/standard-acquire-service.message:
13602         * test/data/valid-messages/standard-hello.message:
13603         * test/data/valid-messages/standard-list-services.message:
13604         * test/data/valid-messages/standard-service-exists.message:
13605         Add some standard messages.
13606
13607 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13608
13609         * bus/driver.c: (bus_driver_send_welcome_message),
13610         (bus_driver_handle_list_services),
13611         (bus_driver_handle_acquire_service),
13612         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13613         Update for API changes in libdbus.
13614
13615         * dbus/dbus-message.c: (dbus_message_new_reply):
13616         * dbus/dbus-message.h:
13617         Remove the name argument. The spec states that replies shouldn't
13618         have a name.
13619
13620 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13621
13622         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13623         (report_error), (bus_desktop_file_load), (lookup_section),
13624         (lookup_line), (bus_desktop_file_get_raw),
13625         (bus_desktop_file_get_string):
13626         * bus/desktop-file.h:
13627         Some fixes, and new functions for getting a key value from a section.
13628
13629 2003-02-13  Havoc Pennington  <hp@pobox.com>
13630
13631         * test/data/auth/fail-after-n-attempts.auth-script: new test
13632
13633         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13634         reject the client.
13635
13636 2003-02-13  Havoc Pennington  <hp@pobox.com>
13637
13638         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13639         dbus_credentials_match were backward
13640
13641         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13642         NO_CREDENTIALS and ROOT_CREDENTIALS
13643
13644         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13645         into here. Never process more commands after we've reached an
13646         end state; store further data as unused bytes.
13647
13648         * test/data/auth/*: add more auth tests
13649
13650         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13651         command to match exact string and EXPECT_UNUSED to match unused
13652         bytes
13653
13654         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13655
13656 2003-02-12  Havoc Pennington  <hp@pobox.com>
13657
13658         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13659         \r off of popped lines
13660
13661         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13662         scripts
13663
13664         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13665         SEND, append \r\n
13666
13667 2003-02-12  Havoc Pennington  <hp@pobox.com>
13668
13669         * dbus/Makefile.am: remove break-loader from the build, since it
13670         moved.
13671
13672         * configure.in: add --enable-gcov to turn on coverage profiling
13673         flags and disable optimization
13674
13675 2003-02-10  Havoc Pennington  <hp@pobox.com>
13676
13677         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13678         initial cut at test framework for DBusAuth from laptop.
13679         Doesn't quite work yet but it compiles and I need to get
13680         it off the 266mhz laptop. ;-)
13681
13682         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13683         fix a memleak in error case
13684
13685 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13686
13687         * bus/Makefile.am:
13688         * bus/desktop-file.c:
13689         * bus/desktop-file.h:
13690         Add a desktop file parser.
13691
13692 2003-02-11  Zack Rusin  <zack@kde.org>
13693
13694         * qt/message.[h|cpp]: sample implementation
13695         of the KDE wrapper for DBusMessage
13696
13697 2003-02-09  Zack Rusin  <zack@kde.org>
13698
13699         * test/bus-test.c: make_it_compile
13700         * doc/dbus-specification.sgml: minimal semantic fix
13701
13702 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13703
13704         Release 0.3
13705
13706         * NEWS: Update
13707
13708 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13709
13710         * dbus/Makefile.am:
13711         * dbus/dbus-break-loader.c:
13712         * test/Makefile.am:
13713         * test/break-loader.c:
13714         Move dbus-break-loader to test/ and rename it to break-loader.
13715
13716 2003-02-02  Havoc Pennington  <hp@pobox.com>
13717
13718         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13719         for code to manage cookies in your home directory
13720
13721         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13722
13723         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13724         to authenticate, then disconnect the client.
13725
13726 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13727
13728         * dbus/dbus-message.c (dbus_message_append_fields):
13729         Correct docs.
13730
13731 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13732
13733         * doc/dbus-specification.sgml:
13734         Update address format section.
13735
13736 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13737
13738         * test/Makefile.am:
13739         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13740         (message_handler), (new_connection_callback), (loop_quit),
13741         (loop_run), (main):
13742         Add bus test.
13743
13744 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13745
13746         * bus/driver.c: (bus_driver_handle_service_exists):
13747         Simplify the code a bit.
13748
13749         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13750         Fix a silly.
13751
13752 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13753
13754         * bus/Makefile.am:
13755         Add libdbus-daemon.la and link to it.
13756
13757 2003-02-01  James Willcox  <jwillcox@gnome.org>
13758
13759         * bus/driver.c: (bus_driver_handle_own_service):
13760         Actually include the service reply code in the message.
13761
13762 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13763
13764         * bus/driver.c: (bus_driver_handle_service_exists):
13765         Don't unref the incoming message.
13766
13767 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13768
13769         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13770
13771 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13772
13773         * dbus/dbus-server.c: (dbus_server_listen):
13774         * dbus/dbus-transport.c: (_dbus_transport_open):
13775         ifdef out the calls to the debug transport and server.
13776
13777 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13778
13779         * dbus/dbus-watch.c (dbus_watch_get_flags):
13780         Add note in the docs that ERROR or HANGUP won't be returned
13781         and are assumed always on.
13782
13783         * glib/dbus-gmain.c (add_watch):
13784         Always add IO_ERR | IO_HUP
13785
13786         * dbus/dbus-message.h:
13787         Add semicolon after dbus_message_iter_get_string_array().
13788         Makes qt code build again
13789
13790 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13791
13792         * bus/driver.c: (create_unique_client_name),
13793         (bus_driver_handle_hello):
13794         Don't take a name, just use a numeric id to identify
13795         each client.
13796
13797         * dbus/Makefile.am:
13798         * dbus/dbus-bus.c: (dbus_bus_register_client),
13799         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13800         * dbus/dbus-bus.h:
13801         Add new convenience functions for communicating with the bus.
13802
13803         * dbus/dbus-message.h:
13804
13805         * dbus/dbus-protocol.h:
13806         Fix a typo.
13807
13808 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13809
13810         * dbus/dbus-message.c (dbus_message_append_fields):
13811         Add some more doc comments.
13812
13813 2003-02-01  Havoc Pennington  <hp@pobox.com>
13814
13815         * dbus/dbus-break-loader.c (randomly_modify_length): change
13816         a 4-byte value in the message as if it were a length
13817
13818         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13819         execute bit on saved files
13820
13821 2003-02-01  Havoc Pennington  <hp@pobox.com>
13822
13823         * dbus/dbus-break-loader.c (main): new program to find messages
13824         that break the loader.
13825
13826         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13827         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13828
13829         * dbus/dbus-string.c (_dbus_string_set_byte): new
13830
13831 2003-01-31  Havoc Pennington  <hp@pobox.com>
13832
13833         * dbus/dbus-message.c: refactor the test code to be more general,
13834         in preparation for writing a "randomly permute test cases to
13835         try to break the loader" program.
13836
13837 2003-01-31  Havoc Pennington  <hp@pobox.com>
13838
13839         * doc/dbus-specification.sgml: work on the specification
13840
13841         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13842         the protocol version of the message.
13843
13844         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13845         no longer specifies that.
13846         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13847         1/2/3/4)
13848
13849         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13850         "break" for DBUS_TYPE_NIL, remove @todo
13851
13852 2003-01-31  Havoc Pennington  <hp@pobox.com>
13853
13854         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13855         just set_is_error/get_is_error as this is a commonly-used
13856         function, and write docs.
13857
13858 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13859
13860         * dbus/dbus-address.c: (dbus_address_entry_free):
13861         Free key and value lists.
13862
13863         * dbus/dbus-internals.c: (_dbus_type_to_string):
13864         Add the types we didn't have.
13865
13866         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13867         (_dbus_marshal_validate_arg):
13868         Add NIL types.
13869
13870         * dbus/dbus-message.c: (dbus_message_set_sender):
13871         Remove todo about being able to set sender to NULL.
13872
13873         (dbus_message_set_is_error_reply),
13874         (dbus_message_get_is_error_reply):
13875         * dbus/dbus-message.h:
13876         New functions.
13877
13878         * dbus/dbus-protocol.h:
13879         Add error reply flag.
13880
13881         * test/data/valid-messages/opposite-endian.message:
13882         Add NIL type to test.
13883
13884 2003-01-31  Havoc Pennington  <hp@pobox.com>
13885
13886         * doc/dbus-specification.sgml: fully specify the header.  Add
13887         flags and major protocol version, and change header/body len to
13888         unsigned.
13889
13890         * dbus/dbus-message-builder.c (append_saved_length): append length
13891         as uint32
13892
13893         * dbus/dbus-message.c (dbus_message_create_header): change header
13894         length and body length to unsigned. Add the new fields from the
13895         spec
13896         (_dbus_message_loader_return_buffer): unsigned header/body len
13897
13898 2003-01-30  Havoc Pennington  <hp@pobox.com>
13899
13900         * dbus/dbus-auth.c: rework to use only REJECTED, no
13901         MECHANISMS
13902
13903         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13904         use REJECTED, suggested by Mark McLoughlin
13905
13906 2003-01-30  Havoc Pennington  <hp@pobox.com>
13907
13908         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13909         a better way to report errors here. e.g.  "unix address lacks
13910         path" or something. also "no such file" when the path doesn't
13911         exist, etc.
13912
13913         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13914         leaking list nodes
13915         (dbus_parse_address): add @todo about documenting address format,
13916         and allowing , and ; to be escaped
13917
13918 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13919
13920         * dbus/Makefile.am:
13921         Add dbus-address.[ch]
13922
13923         * dbus/dbus-address.c: (dbus_address_entry_free),
13924         (dbus_address_entries_free), (create_entry),
13925         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13926         (dbus_parse_address), (_dbus_address_test):
13927         * dbus/dbus-address.h:
13928         New files for dealing with address parsing.
13929
13930         * dbus/dbus-connection.c:
13931         Document timeout functions.
13932
13933         * dbus/dbus-message.c:
13934         Document dbus_message_new_from_message.
13935
13936         * dbus/dbus-server-debug.c:
13937         Document.
13938
13939         * dbus/dbus-server.c: (dbus_server_listen):
13940         Parse address and use correct server implementation.
13941
13942         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13943         * dbus/dbus-string.h:
13944         New function with test.
13945
13946         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13947         * dbus/dbus-test.h:
13948         Add address tests.
13949
13950         * dbus/dbus-transport-debug.c:
13951         Document.
13952
13953         * dbus/dbus-transport.c: (_dbus_transport_open):
13954         Parse address and use correct transport implementation.
13955
13956 2003-01-30  Havoc Pennington  <hp@pobox.com>
13957
13958         * dbus/dbus-message.c: use message->byte_order instead of
13959         DBUS_COMPILER_BYTE_ORDER throughout.
13960         (dbus_message_create_header): pad header to align the
13961         start of the body of the message to 8-byte boundary
13962
13963         * dbus/dbus-marshal.h: make all the demarshalers take const
13964         DBusString arguments.
13965
13966         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13967         validate message args here, so we don't have to do slow validation
13968         later, and so we catch bad messages as they are incoming. Also add
13969         better checks on header_len and body_len. Also fill in
13970         message->byte_order
13971
13972         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13973         implemented properly)
13974         (_dbus_string_validate_nul): new function to check all-nul
13975
13976         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13977         get_arg_end_pos and remove all validation
13978         (_dbus_marshal_validate_arg): actually do validation here.
13979
13980 2003-01-29  Havoc Pennington  <hp@pobox.com>
13981
13982         * dbus/dbus-message.c (check_message_handling): fix assertion
13983         failure on set_client_serial
13984
13985 2003-01-28  Havoc Pennington  <hp@pobox.com>
13986
13987         * dbus/dbus-server-debug.c: Add doc section comments
13988
13989         * dbus/dbus-transport-debug.c: add doc section comments
13990
13991 2003-01-28  Havoc Pennington  <hp@redhat.com>
13992
13993         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13994         the reverse order from how I had it
13995         (_dbus_string_base64_encode): reverse encoding order. I was
13996         basically byteswapping everything during encoding.
13997
13998 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13999
14000         * dbus/dbus-connection-internal.h:
14001         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14002         (_dbus_connection_remove_timeout):
14003         Add functions for adding and removing timeouts.
14004
14005         * dbus/dbus-message.c: (dbus_message_new_from_message):
14006         Add new function that takes a message and creates an exact
14007         copy of it, but with the refcount set to 1.
14008         (check_message_handling):
14009         Fix build error.
14010
14011         * dbus/dbus-server-protected.h:
14012         * dbus/dbus-server.c: (_dbus_server_init_base),
14013         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14014         (dbus_server_set_timeout_functions):
14015         (_dbus_server_remove_timeout):
14016         New functions so that a server can add and remove timeouts.
14017
14018         (dbus_server_listen):
14019         Add commented out call to dbus_server_debug_new.
14020
14021         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14022         Actually set the handler, doh.
14023
14024         * dbus/dbus-transport.c: (_dbus_transport_open):
14025         Add commented out call to dbus_transport_debug_client_new.
14026
14027         * dbus/Makefile.am:
14028         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14029
14030 2003-01-28  Havoc Pennington  <hp@pobox.com>
14031
14032         * dbus/dbus-message.c (check_message_handling): function to check
14033         on the loaded message, iterates over it etc.
14034
14035 2003-01-28  Havoc Pennington  <hp@pobox.com>
14036
14037         * test/Makefile.am (dist-hook): fix make distdir
14038
14039         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14040
14041 2003-01-27  Havoc Pennington  <hp@pobox.com>
14042
14043         * dbus/dbus-mempool.c (time_for_size): replace printf with
14044         _dbus_verbose
14045
14046         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14047         empty lines; fix the SAVE_LENGTH stuff to be
14048         START_LENGTH/END_LENGTH so it actually works; couple other
14049         bugfixes
14050
14051         * test/Makefile.am (dist-hook): add dist-hook for .message files
14052
14053         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14054         can be constant or locked.
14055         (_dbus_string_free): allow freeing a const string as
14056         documented/intended
14057
14058         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14059
14060         * dbus/dbus-test-main.c (main): take an argument which is the
14061         directory containing test data
14062
14063         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14064         argument to this and load all the messages in test/data/
14065         checking that they can be loaded or not loaded as appropriate.
14066
14067 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14068
14069         * bus/dispatch.c: (bus_dispatch_message_handler):
14070         Dispatch messages sent to services.
14071
14072         * bus/driver.c: (bus_driver_send_service_deleted),
14073         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14074         (bus_driver_send_service_acquired):
14075         Add helper functions for sending service related messages.
14076
14077         (bus_driver_send_welcome_message):
14078         Send HELLO_REPLY instead of WELCOME.
14079
14080         (bus_driver_handle_list_services):
14081         Send LIST_SERVICES_REPLY instead of SERVICES.
14082
14083         (bus_driver_handle_own_service),
14084         (bus_driver_handle_service_exists):
14085         New message handlers.
14086
14087         (bus_driver_handle_message):
14088         Invoke new message handlers.
14089
14090         (bus_driver_remove_connection):
14091         Don't remove any services here since that's done automatically
14092         by bus_service_remove_owner now.
14093
14094         * bus/driver.h:
14095         New function signatures.
14096
14097         * bus/services.c: (bus_service_add_owner):
14098         Send ServiceAcquired message if we're the only primary owner.
14099
14100         (bus_service_remove_owner):
14101         Send ServiceAcquired/ServiceLost messages.
14102
14103         (bus_service_set_prohibit_replacement),
14104         (bus_service_get_prohibit_replacement):
14105         Functions for setting prohibit replacement.
14106
14107         (bus_service_has_owner):
14108         New function that checks if a connection is in the owner queue of
14109         a certain service.
14110
14111         * bus/services.h:
14112         Add new function signatures.
14113
14114         * dbus/dbus-list.c: (_dbus_list_test):
14115         Add tests for _dbus_list_remove_last and traversing the list backwards.
14116
14117         * dbus/dbus-list.h:
14118         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14119         go any further, so return NULL then.
14120
14121         * dbus/dbus-protocol.h:
14122         Add new messages, service flags and service replies.
14123
14124 2003-01-26  Havoc Pennington  <hp@pobox.com>
14125
14126         * dbus/dbus-message-builder.c: implement, completely untested.
14127
14128         * test/data/*: add data to be used in testing.
14129         ".message" files are our simple loadable text format.
14130         ".message-raw" will be binary dumps of messages.
14131
14132         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14133
14134 2003-01-26  Havoc Pennington  <hp@pobox.com>
14135
14136         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14137
14138         * dbus/dbus-errors.c (dbus_result_to_string): add
14139         file errors
14140
14141         * dbus/dbus-message-builder.c: new file, will contain code to load
14142         up messages from files. Not implemented yet.
14143
14144 2003-01-26  Havoc Pennington  <hp@pobox.com>
14145
14146         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14147         the sender by setting to NULL
14148
14149 2003-01-26  Havoc Pennington  <hp@pobox.com>
14150
14151         The unit tests pass, but otherwise untested.  If it breaks, the
14152         tests should have been better. ;-)
14153
14154         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14155         the connection.
14156
14157         * dbus/dbus-message.c: redo everything so we maintain
14158         message->header as the only copy of the various fields.
14159         This avoids the possibility of out-of-memory in some cases,
14160         for example dbus_message_lock() can't run out of memory anymore,
14161         and avoids extra copying. Figured I may as well go ahead and do
14162         this since it was busted for dbus_message_lock to not return
14163         failure on OOM, and dbus_message_write_header was totally
14164         unchecked for OOM. Also fixed some random other bugs.
14165
14166         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14167         that strings are nul-terminated. Also, end_pos can be equal
14168         to string length just not greater than, I think.
14169         (_dbus_marshal_set_int32): new function
14170         (_dbus_marshal_set_uint32): new function
14171         (_dbus_marshal_set_string): new function
14172
14173         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14174         a warning, init timeout_list to NULL
14175         (dbus_connection_send_message): don't use uninitialized variable
14176         "serial"
14177
14178         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14179
14180 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14181
14182         * bus/driver.c: (bus_driver_handle_hello),
14183         (bus_driver_send_welcome_message):
14184         Plug leaks
14185
14186 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14187
14188         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14189         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14190         (dbus_connection_unref):
14191         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14192         * dbus/dbus-message.c: (dbus_message_unref),
14193         Plug memory leaks.
14194
14195         (dbus_message_get_fields):
14196         Remove debugging printout.
14197
14198         (_dbus_message_loader_return_buffer):
14199         Don't store the header string.
14200
14201         (_dbus_message_test):
14202         Plug leaks.
14203
14204 2003-01-26  Richard Hult  <rhult@codefactory.se>
14205
14206         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14207         the file descriptor list, since it can change under us.
14208
14209 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14210
14211         * glib/dbus-gmain.c: (dbus_connection_prepare),
14212         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14213         (remove_watch), (dbus_connection_hookup_with_g_main):
14214         Rewrite the glib handling to use its own GSource instead of a
14215         GIOChannel so we can catch messages put in the queue while waiting
14216         for a reply.
14217
14218 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14219
14220         * bus/Makefile.am:
14221         * bus/connection.c: (connection_disconnect_handler),
14222         (connection_watch_callback), (bus_connection_setup):
14223         * bus/dispatch.c: (send_one_message),
14224         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14225         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14226         * bus/dispatch.h:
14227         * bus/driver.c: (bus_driver_send_service_deleted),
14228         (bus_driver_send_service_created), (bus_driver_handle_hello),
14229         (bus_driver_send_welcome_message),
14230         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14231         (bus_driver_handle_message):
14232         * bus/driver.h:
14233         Refactor code, put the message dispatching in its own file. Use
14234         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14235         is disconnected.
14236
14237 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14238
14239         * dbus/dbus-internals.h:
14240         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14241
14242         * dbus/dbus-message.c: (dbus_message_get_sender):
14243         * dbus/dbus-message.h:
14244         Implement dbus_message_get_sender.
14245
14246         * dbus/dbus-protocol.h:
14247         Add message and service defines.
14248
14249 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14250
14251         * dbus/dbus-connection.c: (dbus_connection_send_message):
14252         * dbus/dbus-message-internal.h:
14253         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14254         (dbus_message_write_header):
14255         Remove _dbus_messag_unlock and don't set the client serial on a
14256         message if one already exists.
14257
14258 2003-01-24  Havoc Pennington  <hp@pobox.com>
14259
14260         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14261         list_pool
14262
14263         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14264         on OOM
14265
14266 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14267
14268         * dbus/dbus-list.c: (alloc_link), (free_link):
14269         Use a memory pool for the links.
14270
14271 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14272
14273         * bus/connection.c: (bus_connection_foreach):
14274         * bus/connection.h:
14275         Add new bus_connection_foreach function.
14276
14277         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14278         Add function that broadcasts a message to all clients.
14279
14280         (bus_driver_send_service_created), (bus_driver_handle_hello),
14281         (bus_driver_send_welcome_message),
14282         (bus_driver_handle_list_services), (bus_driver_message_handler):
14283         Implement functions that take care of listing services, and notifying
14284         clients when new services are created.
14285
14286         * bus/services.c: (bus_services_list):
14287         * bus/services.h:
14288         Add new function that returns an array of strings with the currently
14289         registered services.
14290
14291         * glib/dbus-glib.h:
14292         * glib/dbus-gmain.c:
14293         Update copyright year.
14294
14295 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14296
14297         * dbus/dbus-connection.c: (dbus_connection_send_message):
14298         Unlock the message in case it was sent earlier.
14299
14300         (dbus_connection_send_message_with_reply_and_block):
14301         Remove the reply message from the list.
14302
14303         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14304         Set array_len and new_pos correctly.
14305
14306         (_dbus_marshal_test):
14307         Remove debug output.
14308
14309         * dbus/dbus-message-internal.h:
14310         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14311         New function that returns the reply serial.
14312
14313         (_dbus_message_unlock):
14314         New function that unlocks a message and resets its header.
14315
14316         (dbus_message_append_string_array),
14317         (dbus_message_get_fields_valist),
14318         (dbus_message_iter_get_field_type),
14319         (dbus_message_iter_get_string_array),
14320         (dbus_message_get_fields),
14321         (dbus_message_append_fields_valist):
14322         Handle string arrays.
14323
14324         (dbus_message_set_sender):
14325         Make this function public since the bus daemon needs it.
14326
14327         (decode_header_data):
14328         Set the reply serial to -1 initially.
14329
14330         * dbus/dbus-message.h:
14331         Add dbus_message_set_sender.
14332
14333 2003-01-24  Havoc Pennington  <hp@pobox.com>
14334
14335         * doc/dbus-specification.sgml: add some stuff
14336
14337 2003-01-22  Havoc Pennington  <hp@pobox.com>
14338
14339         * doc/dbus-specification.sgml: Start to document the protocol.
14340
14341 2003-01-22  Havoc Pennington  <hp@pobox.com>
14342
14343         * dbus/dbus-connection.c
14344         (dbus_connection_send_message_with_reply_and_block): add some @todo
14345
14346         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14347
14348 2003-01-21  Havoc Pennington  <hp@pobox.com>
14349
14350         (patch untested because can't compile)
14351
14352         * bus/driver.c (create_unique_client_name): make this function
14353         never recycle client names. Also, caller should initialize
14354         the DBusString.
14355
14356         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14357
14358 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14359
14360         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14361         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14362         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14363         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14364         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14365         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14366         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14367         * dbus/dbus-marshal.h:
14368         * dbus/dbus-protocol.h:
14369         Add support for marshalling and demarshalling integer, double
14370         and string arrays.
14371
14372 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14373
14374         * bus/Makefile.am:
14375         Add driver.[ch]
14376
14377         * bus/connection.c: (connection_disconnect_handler):
14378         Remove the connection from the bus driver's list.
14379
14380         (connection_watch_callback): Dispatch messages.
14381
14382         (free_connection_data): Free connection name.
14383
14384         (bus_connection_setup): Add connection to the bus driver's list.
14385         (bus_connection_remove_owned_service):
14386         (bus_connection_set_name), (bus_connection_get_name):
14387         Add functions for setting and getting the connection's name.
14388
14389         * bus/connection.h:
14390         Add function headers.
14391
14392         * bus/driver.c: (create_unique_client_name),
14393         (bus_driver_handle_hello_message),
14394         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14395         (bus_driver_add_connection), (bus_driver_remove_connection):
14396         * bus/driver.h:
14397         * bus/main.c:
14398         * bus/services.c: (bus_service_free):
14399         * bus/services.h:
14400         New file that handles communication and registreation with the bus
14401         itself.
14402
14403 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14404
14405         * dbus/dbus-connection.c: (dbus_connection_send_message):
14406         Add a new client_serial parameter.
14407
14408         (dbus_connection_send_message_with_reply):
14409         Remove a @todo since we've implemented the blocking function.
14410
14411         (dbus_connection_send_message_with_reply_and_block):
14412         New function that sends a message and waits for a reply and
14413         then returns the reply.
14414
14415         * dbus/dbus-connection.h:
14416         Add new functions.
14417
14418         * dbus/dbus-errors.c: (dbus_result_to_string):
14419         * dbus/dbus-errors.h:
14420         Add new DBUS_RESULT.
14421
14422         * dbus/dbus-message-internal.h:
14423         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14424         (_dbus_message_set_sender), (dbus_message_write_header),
14425         (dbus_message_new_reply), (decode_header_data),
14426         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14427         * dbus/dbus-message.h:
14428         Add new functions that set the reply serial and sender.
14429         Also marshal and demarshal them correctly and add test.
14430
14431         * dbus/dbus-protocol.h:
14432         Add new DBUS_MESSAGE_TYPE_SENDER.
14433
14434         * glib/dbus-glib.h:
14435         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14436         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14437         (dbus_connection_hookup_with_g_main):
14438         * glib/test-dbus-glib.c: (main):
14439         Rewrite to use GIOChannel and remove the GSource crack.
14440
14441         * test/echo-client.c: (main):
14442         * test/watch.c: (check_messages):
14443         Update for changed APIs
14444
14445 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14446
14447         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14448
14449         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14450         Create a DBusTimeoutList.
14451         (dbus_connection_set_timeout_functions): Add new function to
14452         set timeout callbacks
14453
14454         * dbus/dbus-connection.h: Add public DBusTimeout API.
14455
14456         * dbus/dbus-message.c: (dbus_message_get_service):
14457         * dbus/dbus-message.h:  New function.
14458
14459         * dbus/dbus-server.c: Fix small doc typo.
14460
14461         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14462
14463 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14464
14465         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14466         of the string, just as long as specified.
14467
14468 2003-01-19  Havoc Pennington  <hp@pobox.com>
14469
14470         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14471         new function
14472
14473         * dbus/dbus-server.c (dbus_server_set_max_connections)
14474         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14475         keep track of current number of connections, and add API for
14476         setting a max (but haven't implemented enforcing the max yet)
14477
14478 2003-01-18  Havoc Pennington  <hp@pobox.com>
14479
14480         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14481         reading/writing if read_watch != NULL or write_watch != NULL.
14482
14483         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14484         the message loader code to actually load message->header and
14485         message->body into the newly-created message.
14486
14487         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14488         in OOM case
14489
14490         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14491         (dbus_connection_get_max_message_size)
14492         (dbus_connection_set_max_live_messages_size)
14493         (dbus_connection_get_max_live_messages_size): implement some
14494         resource limitation functions
14495
14496         * dbus/dbus-resources.c: new file implementing some of the
14497         resource limits stuff
14498
14499         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14500         missing docs, add @todo to handle OOM etc.
14501
14502         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14503         docs
14504
14505 2003-01-18  Havoc Pennington  <hp@pobox.com>
14506
14507         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14508         connection if it hasn't been already.
14509
14510         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14511         replace with DisconnectFunction.
14512
14513 2003-01-18  Havoc Pennington  <hp@pobox.com>
14514
14515         Building --disable-verbose-mode --disable-asserts --disable-tests
14516         cuts the library from 112K to 45K or so
14517
14518         * configure.in: check for varargs macro support,
14519         add --enable-verbose-mode, --enable-asserts.
14520
14521         * dbus/dbus-internals.h (_dbus_assert): support
14522         DBUS_DISABLE_ASSERT
14523         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14524
14525 2003-01-18  Havoc Pennington  <hp@pobox.com>
14526
14527         * dbus/dbus-test.c: include config.h so that tests actually run
14528
14529         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14530         so the failure mode when that assumption fails will be plenty
14531         obvious.
14532
14533 2003-01-18  Havoc Pennington  <hp@pobox.com>
14534
14535         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14536
14537         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14538         the distribution
14539
14540         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14541         since we don't want to use those in make check
14542
14543 2003-01-15  Havoc Pennington  <hp@redhat.com>
14544
14545         Release 0.2
14546
14547         * NEWS: update
14548
14549 2003-01-15  Havoc Pennington  <hp@redhat.com>
14550
14551         * test/Makefile.am: fix so that test source code ends up in the
14552         distribution on make distcheck
14553
14554 2003-01-15  Havoc Pennington  <hp@redhat.com>
14555
14556         Release 0.1.
14557
14558         * NEWS: update
14559
14560 2003-01-15  Havoc Pennington  <hp@redhat.com>
14561
14562         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14563         fix build when --disable-tests
14564
14565         * Makefile.am (EXTRA_DIST): put HACKING in here
14566
14567         * HACKING: document procedure for making a tarball release.
14568
14569 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14570
14571         * bus/connection.c: (connection_error_handler),
14572         (bus_connection_setup):
14573         * bus/main.c: (main):
14574         Make sure that the DBusConnectionData struct is NULLed
14575         out to prevent a segfault.
14576
14577         * dbus/dbus-errors.c: (dbus_result_to_string):
14578         * dbus/dbus-errors.h:
14579         * dbus/dbus-message.c: (dbus_message_get_fields),
14580         (dbus_message_get_fields_valist), (_dbus_message_test):
14581         * dbus/dbus-message.h:
14582         Make dbus_message_get_fields return a result code so we can
14583         track invalid fields as well as oom.
14584
14585 2003-01-11  Havoc Pennington  <hp@pobox.com>
14586
14587         * configure.in: change --enable-test/--enable-ansi action-if-given
14588         to enable_foo=$enableval instead of enable_foo=yes
14589
14590 2003-01-08  Havoc Pennington  <hp@pobox.com>
14591
14592         * dbus/dbus-string.c (_dbus_string_align_length): new function
14593
14594         * dbus/dbus-test-main.c: move main() for test app here
14595         * dbus/dbus-test.c
14596         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14597         symbol to run tests, because dbus-test isn't in the main
14598         library
14599
14600         Code review nitpicks.
14601
14602         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14603         for people with narrow emacs ;-). Assert client_serial was filled
14604         in. Assert message->name != NULL.
14605         (dbus_message_append_fields): have "first_field_type" arg separate
14606         from va list, needed for C++ binding that also uses varargs IIRC
14607         and helps with type safety
14608         (dbus_message_new): add @todo about using DBusString to store
14609         service/name internally
14610         (dbus_message_new): don't leak ->service and ->name on OOM later
14611         in the function
14612         (dbus_message_unref): free the service name
14613         (dbus_message_get_fields): same change to varargs
14614         i.e. first_field_type
14615         (_dbus_message_loader_return_buffer): assert that the message data
14616         is aligned (if not it's a bug in our code). Put in verbose griping
14617         about why we set corrupted = TRUE.
14618         (decode_header_data): add FIXME that char* is evil.  Was going to
14619         add FIXME about evil locale-specific string.h strncmp, but just
14620         switched to wacky string-as-uint32 optimization. Move check for
14621         "no room for field name" above get_const_data_len() to avoid
14622         assertion failure in get_const_data_len if we have trailing 2
14623         bytes or the like. Check for service and name fields being
14624         provided twice. Don't leak service/name on error. Require field
14625         names to be aligned to 4 bytes.
14626
14627         * dbus/dbus-marshal.c: move byte swap stuff to header
14628         (_dbus_pack_int32): uscore-prefix
14629         (_dbus_unpack_int32): uscore-prefix
14630         (_dbus_unpack_uint32): export
14631         (_dbus_demarshal_string): add @todo complaining about use of
14632         memcpy()
14633         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14634         handling allowing corrupt data to go unchecked
14635
14636 2003-01-08  Havoc Pennington  <hp@redhat.com>
14637
14638         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14639         to the select() as needed for authentication. (should be using
14640         _dbus_poll() not select, but for another day)
14641
14642         * dbus/dbus.h: include dbus/dbus-protocol.h
14643
14644 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14645
14646         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14647         dbus-connection.h
14648
14649 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14650
14651         * dbus/dbus-internals.c: (_dbus_type_to_string):
14652         New function that returns a string describing a type.
14653
14654         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14655         * dbus/dbus-marshal.h:
14656         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14657         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14658         (dbus_message_iter_get_byte_array):
14659         * dbus/dbus-message.h:
14660         Add new convenience functions for appending and getting message fields.
14661         Also add demarshalling routines for byte arrays.
14662
14663 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14664
14665         * dbus/dbus-connection-internal.h:
14666         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14667         (_dbus_connection_get_next_client_serial),
14668         (dbus_connection_send_message):
14669         * dbus/dbus-internals.h:
14670         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14671         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14672         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14673         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14674         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14675         (_dbus_verbose_bytes), (_dbus_marshal_test):
14676         * dbus/dbus-marshal.h:
14677         * dbus/dbus-message-internal.h:
14678         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14679         (dbus_message_write_header), (_dbus_message_lock),
14680         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14681         (dbus_message_get_name), (dbus_message_append_int32),
14682         (dbus_message_append_uint32), (dbus_message_append_double),
14683         (dbus_message_append_string), (dbus_message_append_byte_array),
14684         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14685         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14686         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14687         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14688         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14689         (decode_header_data), (_dbus_message_loader_return_buffer),
14690         (message_iter_test), (_dbus_message_test):
14691         * dbus/dbus-message.h:
14692         * dbus/dbus-protocol.h:
14693         * dbus/dbus-test.c: (main):
14694         * dbus/dbus-test.h:
14695         * glib/test-dbus-glib.c: (message_handler), (main):
14696         * test/echo-client.c: (main):
14697         * test/watch.c: (check_messages):
14698         Make messages sendable and receivable for real.
14699
14700 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14701
14702         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14703         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14704         * dbus/dbus-message.c: (dbus_message_append_int32),
14705         (dbus_message_append_uint32), (dbus_message_append_double),
14706         (dbus_message_append_string), (dbus_message_append_byte_array):
14707         Handle OOM restoration.
14708
14709 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14710
14711         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14712         (_dbus_demarshal_string), (_dbus_marshal_test):
14713         * dbus/dbus-marshal.h:
14714         * dbus/dbus-message.c: (dbus_message_get_name),
14715         Document these functions.
14716
14717         (dbus_message_append_int32), (dbus_message_append_uint32),
14718         (dbus_message_append_double), (dbus_message_append_string),
14719         (dbus_message_append_byte_array):
14720         * dbus/dbus-message.h:
14721         Add functions for adding message fields of different types.
14722
14723         * dbus/dbus-protocol.h:
14724         Add the different types.
14725
14726 2003-01-05  Havoc Pennington  <hp@pobox.com>
14727
14728         * bus/connection.c: implement routines for handling connections,
14729         first thing is keeping a list of owned services on each connection
14730         and setting up watches etc.
14731
14732         * bus/services.c: implement a mapping from service names to lists
14733         of connections
14734
14735         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14736
14737         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14738         to use static mutexes for global data
14739
14740         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14741         collection of functions to set/get application-specific data
14742         on the DBusConnection.
14743
14744 2003-01-04  Havoc Pennington  <hp@pobox.com>
14745
14746         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14747         (_dbus_poll): new function
14748
14749         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14750         copied from GLib
14751
14752         * bus/loop.c: initial code for the daemon main loop
14753
14754 2003-01-04  Havoc Pennington  <hp@pobox.com>
14755
14756         * test/watch.c (error_handler): make it safe if the error handler
14757         is called multiple times (if we s/error handler/disconnect
14758         handler/ we should just guarantee it's called only once)
14759
14760         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14761         error handler on disconnect (it's quite possible we should
14762         just change the error handler to a "disconnect handler," I'm
14763         not sure we have any other meaningful errors)
14764
14765         * configure.in: check for getpwnam_r
14766
14767         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14768         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14769         mechanism as in SASL spec, using socket credentials
14770
14771         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14772         (_dbus_send_credentials_unix_socket): new function
14773
14774         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14775         dbus_accept()
14776         (_dbus_write): only check errno if <0 returned
14777         (_dbus_write_two): ditto
14778
14779 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14780
14781         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14782         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14783         (_dbus_marshal_test):
14784         * dbus/dbus-marshal.h:
14785         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14786         to _dbus_marshal_utf8_string. Also fix some tests.
14787
14788 2002-12-28  Harri Porten  <porten@kde.org>
14789
14790         * configure.in: added check for C++ compiler and a very cheesy
14791         check for the Qt integration
14792
14793         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14794
14795         * qt/Makefile.am: added
14796
14797         * qt/.cvsignore: added
14798
14799         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14800         latter, added #ifdef QT_THREAD_SUPPORT guard.
14801
14802         * dbus/Makefile.am: added missing headers for make dist
14803
14804 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14805
14806         * dbus/Makefile.am: fixup export-symbols-regex.
14807
14808 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14809
14810         * acinclude.m4: Add this file and put the
14811         PKG_CHECK_MODULE macro in it.
14812
14813 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14814
14815         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14816         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14817         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14818         (_dbus_marshal_test):
14819         Make the demarshalling routines align the pos argument.
14820         Add string marshalling tests and fix the obvious bugs
14821         discovered.
14822
14823 2002-12-26  Havoc Pennington  <hp@pobox.com>
14824
14825         * dbus/dbus-auth.c: fixes fixes fixes
14826
14827         * dbus/dbus-transport-unix.c: wire up support for
14828         encoding/decoding data on the wire
14829
14830         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14831         (_dbus_auth_decode_data): append to target string
14832         instead of nuking it.
14833
14834 2002-12-26  Havoc Pennington  <hp@pobox.com>
14835
14836         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14837         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14838         doh
14839
14840         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14841         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14842         now). Main point is because I wanted unpack_uint32 to implement
14843         _dbus_verbose_bytes
14844         (_dbus_verbose_bytes): new function
14845
14846         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14847
14848         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14849         mechanism to handle a corrupt message stream
14850         (_dbus_message_loader_new): fix preallocation to only prealloc,
14851         not prelengthen
14852
14853         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14854         (_dbus_string_test): enhance tests for copy/move and fix the
14855         functions
14856
14857         * dbus/dbus-transport-unix.c: Hold references in more places to
14858         avoid reentrancy problems
14859
14860         * dbus/dbus-transport.c: ditto
14861
14862         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14863         leak reference count in no-message case
14864
14865         * test/watch.c (do_mainloop): handle adding/removing watches
14866         during iteration over the watches. Also, ref the connection/server
14867         stored on a watch, so we don't try to mangle a destroyed one.
14868
14869         * dbus/dbus-transport-unix.c (do_authentication): perform
14870         authentication
14871
14872         * dbus/dbus-auth.c (get_state): add a state
14873         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14874         (_dbus_auth_get_unused_bytes): append the unused bytes
14875         to the passed in string, rather than prepend
14876
14877         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14878         the auth conversation DBusAuth
14879
14880         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14881         (_dbus_transport_new_for_domain_socket): when creating a
14882         transport, pass in whether it's a client-side or server-side
14883         transport so we know which DBusAuth to create
14884
14885 2002-12-03  Havoc Pennington  <hp@pobox.com>
14886
14887         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14888         _after_ finalizing the derived members
14889         (unix_connection_set): unref watch if we fail to add it
14890
14891         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14892         transport first, so that the connection owned by the
14893         transport will be valid as the transport finalizes.
14894
14895         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14896         if necessary, and remove watches from the connection.
14897
14898         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14899
14900 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14901
14902         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14903         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14904         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14905         (_dbus_marshal_test):
14906         * dbus/dbus-marshal.h:
14907         Add string marshal functions and have the demarshal functions
14908         return the new position.
14909
14910 2002-12-25  Havoc Pennington  <hp@pobox.com>
14911
14912         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14913         it is a simple protocol that just maps directly to SASL.
14914
14915         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14916         initial implementation, not actually used yet.
14917
14918         * dbus/dbus-string.c (_dbus_string_find): new function
14919         (_dbus_string_equal): new function
14920         (_dbus_string_base64_encode): new function
14921         (_dbus_string_base64_decode): new function
14922
14923 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14924
14925         * dbus/Makefile.am:
14926         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14927         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14928         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14929         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14930         * dbus/dbus-marshal.h:
14931         * dbus/dbus-protocol.h:
14932         * dbus/dbus-test.c: (main):
14933         * dbus/dbus-test.h:
14934         Add un-optimized marshalling/demarshalling routines.
14935
14936 2002-12-25  Harri Porten  <porten@kde.org>
14937
14938         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14939
14940 2002-12-24  Zack Rusin  <zack@kde.org>
14941
14942         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14943         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14944         main loop stuff
14945
14946 2002-12-24  Havoc Pennington  <hp@pobox.com>
14947
14948         * glib/dbus-gthread.c: fix include
14949
14950         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14951         I think glib API needs to change, though, as you don't
14952         want to use DBusMessageFunction, you want to use the
14953         DBusMessageHandler object. Probably
14954         dbus_connection_open_with_g_main_loop()
14955         and dbus_connection_setup_g_main_loop() or something like that
14956         (but think of better names...) that just create a connection
14957         that has watch/timeout functions etc. already set up.
14958
14959         * dbus/dbus-connection.c
14960         (dbus_connection_send_message_with_reply): new function just to
14961         show how the message handler helps us deal with replies.
14962
14963         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14964
14965         * dbus/dbus-string.c (_dbus_string_test): free a string that
14966         wasn't
14967
14968         * dbus/dbus-hash.c: use memory pools for the hash entries
14969         (rebuild_table): be more paranoid about overflow, and
14970         shrink table when we can
14971         (_dbus_hash_test): reduce number of sprintfs and write
14972         valid C89. Add tests for case where we grow and then
14973         shrink the hash table.
14974
14975         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14976
14977         * dbus/dbus-connection.c (dbus_connection_register_handler)
14978         (dbus_connection_unregister_handler): new functions
14979
14980         * dbus/dbus-message.c (dbus_message_get_name): new
14981
14982         * dbus/dbus-list.c: fix docs typo
14983
14984         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14985         an object representing a handler for messages.
14986
14987 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14988
14989         * glib/dbus-glib.h:
14990         * glib/dbus-gthread.c: (dbus_gthread_init):
14991         Don't use the gdbus prefix for public functions.
14992
14993 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14994
14995         * Makefile.am:
14996         * configure.in:
14997         Add GLib checks and fixup .pc files
14998
14999         * glib/Makefile.am:
15000         * glib/dbus-glib.h:
15001         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15002         (gdbus_connection_check), (gdbus_connection_dispatch),
15003         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15004         (dbus_connection_gsource_new):
15005         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15006         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15007         * glib/test-dbus-glib.c: (message_handler), (main):
15008         Add GLib support.
15009
15010 2002-12-15  Harri Porten  <porten@kde.org>
15011
15012         * autogen.sh: check for libtoolize before attempting to use it
15013
15014         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15015         struct.
15016
15017         * .cvsignore: ignore more stamp files
15018
15019         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15020
15021         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15022         without make install.
15023
15024 2002-12-15  Havoc Pennington  <hp@pobox.com>
15025
15026         * dbus/dbus-threads.c: add thread stubs that a higher library
15027         layer can fill in. e.g. the GLib wrapper might fill them in with
15028         GThread stuff. We still need to use this thread API to
15029         thread-safe-ize the library.
15030
15031 2002-12-12  Havoc Pennington  <hp@pobox.com>
15032
15033         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15034         below new interfaces and include fewer system headers.
15035
15036         * dbus/dbus-sysdeps.c (_dbus_read): new function
15037         (_dbus_write): new function
15038         (_dbus_write_two): new function
15039         (_dbus_connect_unix_socket): new function
15040         (_dbus_listen_unix_socket): new function
15041
15042         * dbus/dbus-message-internal.h: change interfaces to use
15043         DBusString
15044
15045 2002-12-11  Havoc Pennington  <hp@pobox.com>
15046
15047         * dbus/dbus-types.h: add dbus_unichar
15048
15049         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15050
15051         * dbus/dbus-connection.c (dbus_connection_send_message): return
15052         TRUE on success
15053
15054         * dbus/dbus-transport.c: include dbus-watch.h
15055
15056         * dbus/dbus-connection.c: include dbus-message-internal.h
15057
15058         * HACKING: add file with coding guidelines stuff.
15059
15060         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15061         handling here, for security purposes (as in vsftpd). Not actually
15062         using this class yet.
15063
15064         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15065         system/libc usage here, as in vsftpd, for ease of auditing (and
15066         should also simplify portability). Haven't actually moved all the
15067         system/libc usage into here yet.
15068
15069 2002-11-25  Havoc Pennington  <hp@pobox.com>
15070
15071         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15072         always print the first verbose message.
15073
15074 2002-11-24  Havoc Pennington  <hp@pobox.com>
15075
15076         * test/echo-client.c, test/echo-server.c: cheesy test
15077         clients.
15078
15079         * configure.in (AC_CHECK_FUNCS): check for writev
15080
15081         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15082         function
15083
15084         * dbus/dbus-list.c (_dbus_list_foreach): new function
15085
15086         * dbus/dbus-internals.c (_dbus_verbose): new function
15087
15088         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15089         representing a server that listens for connections.
15090
15091         * dbus/.cvsignore: create
15092
15093         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15094         public API for reporting errors
15095
15096         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15097         public object representing a connection that
15098         sends/receives messages. (Same object used for
15099         both client and server.)
15100
15101         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15102         Basic abstraction for different kinds of stream
15103         that we might read/write messages from.
15104
15105 2002-11-23  Havoc Pennington  <hp@pobox.com>
15106
15107         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15108         _DBUS_INT_MAX
15109
15110         * dbus/dbus-test.c (main): add list test, and include
15111         dbus-test.h as intended
15112
15113         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15114         (_dbus_hash_table_remove_int): return value indicates
15115         whether the entry existed to remove
15116
15117         * dbus/dbus-list.c: add linked list utility class,
15118         with docs and tests
15119
15120         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15121         array sometimes.
15122
15123 2002-11-23  Havoc Pennington  <hp@pobox.com>
15124
15125         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15126         DBUS_END_DECLS to nothing, that should fix this once and for all
15127
15128         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15129
15130         * dbus/dbus-message.c, dbus/dbus-hash.c:
15131         add some missing @brief
15132
15133 2002-11-23  Havoc Pennington  <hp@pobox.com>
15134
15135         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15136         to avoid confusing Doxygen
15137
15138         * dbus/dbus-hash.c: @} not }@
15139
15140         * dbus/dbus-message.c (struct DBusMessage): split out
15141         internals docs
15142
15143 2002-11-23  Havoc Pennington  <hp@pobox.com>
15144
15145         * configure.in: pile on more warning flags if using gcc
15146
15147         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15148         to document static functions
15149
15150         * configure.in: add summary to end of configure so it
15151         looks nice and attractive
15152
15153         * dbus/dbus-hash.c: finish implementation and write unit
15154         tests and docs
15155
15156         * configure.in: add --enable-tests to enable unit tests
15157
15158         * dbus/dbus-test.c: test program to run unit tests
15159         for all files in dbus/*, initially runs a test for
15160         dbus-hash.c
15161
15162         * dbus/dbus-internals.h: file to hold some internal utility stuff
15163
15164 2002-11-22  Havoc Pennington  <hp@redhat.com>
15165
15166         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15167         "ported" away from Tcl
15168
15169         * dbus/dbus-types.h: header for types such as dbus_bool_t
15170
15171 2002-11-22  Havoc Pennington  <hp@redhat.com>
15172
15173         * dbus/dbus.h: fixups for doc warnings
15174
15175         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15176         macros
15177         (QUIET): make it quiet so we can see warnings
15178
15179         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15180
15181 2002-11-22  Havoc Pennington  <hp@redhat.com>
15182
15183         * Makefile.am: include "Doxyfile" target in all-local
15184
15185         * configure.in: generate the Doxyfile
15186
15187         * Doxyfile.in: move Doxyfile here, so we can use
15188         configure to generate a Doxyfile with the right
15189         version number etc.
15190
15191 2002-11-22  Havoc Pennington  <hp@redhat.com>
15192
15193         * dbus/dbus-message.c: move inline docs into .c file
15194
15195         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15196         so all docs are under doc/
15197         (MAN_EXTENSION): generate man pages. Use extension
15198         ".3dbus" which matches ".3qt" on my system,
15199         I guess this is OK, I don't know really.
15200         (FILE_PATTERNS): look for .c files not .h, makes sense
15201         for plain C I think
15202
15203 2002-11-22  Havoc Pennington  <hp@pobox.com>
15204
15205         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15206         because any app can be a server, and any app can be a client,
15207         the bus is a special kind of server.
15208
15209 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15210
15211         * Doxyfile : adding. Still needs Makefile rules to be generated
15212         automatically (just run "doxygen" in the toplevel dir for now to
15213         generate docs)
15214
15215         * dbus/dbus-message.h : Adding sample docs (javadoc since
15216         resembles gtk-doc a little more)
15217
15218         * dbus/dbus.h : Adding sample docs
15219
15220 2002-11-21  Havoc Pennington  <hp@redhat.com>
15221
15222         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15223         so we can allow ourselves to include files directly,
15224         instead of having to use dbus.h
15225
15226         * dbus/dbus.h: fill in
15227
15228         * dbus/dbus-message.h: sketch out a sample header file.
15229         Include griping if you include it directly instead of
15230         via dbus.h
15231
15232         * dbus/dbus-macros.h: new file with macros for extern "C",
15233         TRUE/FALSE, NULL, etc.
15234
15235         * doc/file-boilerplate.c: put include guards in here
15236
15237 2002-11-21  Havoc Pennington  <hp@redhat.com>
15238
15239         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15240
15241         * COPYING: include the GPL as well, and license code
15242         under both AFL and GPL.
15243
15244 2002-11-21  Havoc Pennington  <hp@redhat.com>
15245
15246         * acconfig.h: get rid of this
15247
15248         * autogen.sh (run_configure): add --no-configure option
15249
15250         * configure.in: remove AC_ARG_PROGRAM to make
15251         autoconf complain less. add AC_PREREQ.
15252         add AC_DEFINE third arg.
15253
15254 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15255
15256         * doc/Makefile.am:
15257         Fix references so we can distcheck.
15258
15259 2002-11-21  Havoc Pennington  <hp@redhat.com>
15260
15261         * Initial module creation
15262