* dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass): fix mispaced const statem...
[platform/upstream/dbus.git] / ChangeLog
1 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
4         fix mispaced const statement. - Patch from Peter Kümmel
5
6 2006-12-19  Ray Strode  <rstrode@redhat.com>
7
8         * bus/bus.c (process_config_every_time):
9         don't overwrite existing bus context activation object
10         until after we've checked that the new activation is
11         valid.
12
13         * bus/main.c 
14         (signal_handler), (handle_reload_watch):
15         don't call exit() on failure, instead make do and keep
16         going.
17         (close_reload_pipe): new function to turn off
18         hangup-causes-config-reload behavior if an unexpected
19         error occurs
20
21 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
22
23         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
24         correctness fix. - Patch from Christian Ehrlicher
25
26 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
27
28         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
29         we should also use it. - Patch from Christian Ehrlicher
30
31 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
32   
33         * dbus-sysdeps-util.c: added win32 related tests
34
35 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
36
37         * dbus/dbus-string.c (_dbus_string_pop_line),
38         bus/desktop-file.c (parse_section_start,
39         parse_comment_or_blank,parse_key_value,): uses
40         _dbus_string_find_eol() to support platform independent eol style.
41
42 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
43
44         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
45         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
46               _dbus_string_find_eol().
47         Approved by: Havoc Pennington.
48
49 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
50
51         * configure.in: Added switch to disable user_database caching.
52
53         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
54         be able disable user_dabase caching.
55
56 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
57
58         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
59         struct. It is unnecessary we have a global one already. Also remove 
60         bus_context_get_user_database function, it is no longer needed.
61         Flush the global database on reload.
62
63         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
64         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
65
66         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
67         Add _dbus_user_database_flush_system. 
68         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
69         Small unrelated change in _dbus_is_a_number: change 
70         _dbus_string_parse_int to _dbus_string_parse_uint. 
71
72         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
73         _dbus_groups_from_uid.
74
75         * bus/policy.c, bus/policy.h: Change call to 
76         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
77         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
78         needs it.
79
80 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
81
82         * bus/signal.c: Fix match_rule_equal errata
83         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
84         <kimmo.hamalainen@nokia.com>)
85
86 2006-11-19  Thiago Macieira  <thiago@kde.org>
87
88         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
89         _dbus_pthread_condvar_wait,
90         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
91         pthread_self() after coming back from a conditional variable
92         wait as well as in one codepath where it was forgotten.
93         Approved by: Havoc Pennington.
94
95 2006-11-17  Havoc Pennington  <hp@redhat.com>
96
97         * update-dbus-docs.sh: allow setting fd.org username via env
98         variable. Make it run autogen with --enable-xml-docs=yes
99         --enable-doxygen-docs=yes so configure will fail if the required
100         tools are missing.
101
102 2006-11-17  Havoc Pennington  <hp@redhat.com>
103
104         * doc/dbus-faq.xml: minor FAQ tweaks
105
106 2006-11-14  Havoc Pennington  <hp@redhat.com>
107         
108         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
109         dbus_get_local_machine_id() to its own file, no substantive
110         changes. There are a couple other things we might want to add that
111         are "misc" so moving out of dbus-connection.[hc] which is big
112         enough already.
113         
114 2006-11-14  Havoc Pennington  <hp@redhat.com>
115
116         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
117         UUID had the timestamp last, but the implementation had it first;
118         move it to last since I think it's a tiny bit nicer (easier to
119         compare at a glance, faster to sort, less code), and will not
120         cause any practical compatibility problems. Also, always convert
121         the timestamp to big endian.
122
123         * doc/dbus-specification.xml: Clean up the docs on the UUID.
124
125         * tools/dbus-uuidgen.1: more prominently say it is not suitable
126         as a replacement for regular uuidgen/RFC4122.
127
128 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
129
130         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
131         the correct value so we don't assert when initalizing recursive threads
132
133         * test/name-test/test-thread-init.c: call dbus_threads_init_default
134         instead of _dbus_threads_init_debug since it is more of a real world
135         test
136
137 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
138
139         * Released 1.0.0
140
141 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
142
143         * AUTHORS: added Peter and Tor of windows porting fame
144
145 2006-11-08  Havoc Pennington  <hp@redhat.com>
146
147         * doc/dbus-specification.xml: add a note about protocol stability
148
149         * doc/TODO: Remove "important for 1.0" section, replace with
150         "important for 1.2" section
151         
152 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
153
154         * README: remove some of the out of date flags
155
156         * doc/TODO: Remove todo items which are done
157
158 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
159
160         * tools/dbus-monitor.c: Handle sigint so we flush stdout
161         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
162
163 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
164
165         * tools/dbus-monitor.1: update the manpage for dbus-monitor
166         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
167
168 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
169
170         * AUTHORS: Update with all people listed in the ChangeLog
171
172 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
173
174         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
175         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
176
177 2006-11-07  Havoc Pennington  <hp@redhat.com>
178
179         * HACKING: Update release instructions to include stuff about
180         stable releases, branching, etc. May not be totally correct,
181         please fix if needed, but keep instructions up-to-date so we do
182         each stable release consistently in the future.
183
184 2006-11-07  Havoc Pennington  <hp@redhat.com>
185
186         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
187         documentation updates. Bump faq/spec versions (not to 1.0; I don't
188         think the spec will be "finished"/1.0 when we ship the 1.0 library).
189
190 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
191
192         * bus/bus.c: Missed patch - pass in the context to the directory watch
193
194 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
195
196         * Released D-Bus 1.0 RC 3(0.95)
197
198 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
199
200         * bus/activation.c (bus_activation_new): don't fail if we can not read
201         the directory as it may not exist
202
203 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
204
205         * bus/config-parser.c (service_dirs_find_dir): use 
206         _dbus_list_get_next_link so we don't get stuck in an infinite loop
207         (start_busconfig_child): move processing of standard_session_servicedirs
208         tags here because they have no content
209         (bus_config_parser_content): check we don't have content in 
210         standard_session_servicedirs tag
211
212 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
213
214         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
215         Packagers need to own this directory
216
217 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
218
219         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
220         <standard_session_servicedirs> tag with a <sevicedir> tag that
221         points to the test service directory
222
223 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
224
225         * configure.in: Add a check for DIR *dirp->dd_fd
226
227         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
228         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
229         of both Solaris and Irix
230
231 2006-11-01  Havoc Pennington  <hp@redhat.com>
232
233         * bus/dbus-daemon.1.in: document standard_session_servicedirs
234
235 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
236
237         * configure.in: expose DBUS_DATADIR
238         
239         * bus/config-parser.c: add the standard_session_servicedirs element
240         to the parser
241         (bus_config_parser_content): process the standard_session_servicedirs
242         element by getting the standard directories from sysdeps and merging
243         them into the service directory list
244         (test_default_session_servicedirs): make sure we get what we expect
245
246         * bus/session.conf.in: replace the servicedir tag with the 
247         standard_session_servicedirs tag
248
249         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
250         dbus-sysdeps.h to avoid circular header dependencies
251
252         * dbus/dbus-sysdeps.h: add the typedef of DBusList
253
254         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
255         which takes a string of directories delimited by colons, parses them 
256         out, appends a suffix and puts them in a list ignoring empty elements
257         (_dbus_get_standard_session_servicedirs): returns the standard 
258         directories for a session bus to look for service activation files
259         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
260         DBUS_DATADIR directories
261
262         * test/data/valid-config-files/many-rules.conf: add the 
263         standard_session_servicedirs tag to the valid config file tests
264
265 2006-10-30  Havoc Pennington  <hp@redhat.com>
266
267         * tools/dbus-launch.1, doc/TODO: capture intent to change the
268         command line options of dbus-launch a bit post 1.0
269
270 2006-10-27  Havoc Pennington  <hp@redhat.com>
271         
272         * dbus/dbus-connection.c (dbus_connection_open_private): document
273         how to choose shared vs. private connections
274
275 2006-10-27  Havoc Pennington  <hp@redhat.com>
276
277         * dbus/dbus-test.c: enclose more of the file in the
278         DBUS_BUILD_TESTS check.
279
280         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
281         DBUS_DISABLE_ASSERT case.
282
283         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
284         that it only works on the server side
285
286         * dbus/dbus-bus.c: add a global lock covering the BusData we
287         attach to each connection
288         (internal_bus_get): lock our access to the BusData
289         (dbus_bus_register): lock the entire registration process
290         with _DBUS_LOCK(bus_datas). If we get the lock and 
291         registration is already complete, silently return (vs. previous
292         behavior of aborting).
293         (dbus_bus_set_unique_name): lock the BusData
294         (dbus_bus_get_unique_name): lock the BusData
295
296 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
297
298         * bus/config-parser.c (service_dirs_find_dir, 
299         service_dirs_append_unique_or_free, 
300         service_dirs_append_link_unique_or_free): New static methods
301         for only appending unique service directory names into
302         the service directory list
303         (merge_included, bus_config_parser_content): Only add unique
304         service directory names into the list
305
306 2006-10-27  Havoc Pennington  <hp@redhat.com>
307
308         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
309         variables volatile, suggested by Thiago. Document struct fields.
310         (PTHREAD_CHECK): remove pthread error checking if assertions are
311         disabled, should reduce the no-assertions case to the bare
312         minimum code.
313
314 2006-10-26  Havoc Pennington  <hp@redhat.com>
315         
316         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
317         to be recursive
318         (_dbus_pthread_mutex_unlock): make it recursive
319         (_dbus_pthread_condvar_wait): save/restore the recursion count
320         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
321
322 2006-10-26  Havoc Pennington  <hp@redhat.com>
323
324         * doc/dbus-specification.xml: clarify the UUID text slightly
325
326         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
327         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
328         in preparation for being able to extend them for e.g. recursive
329         mutexes.
330
331 2006-10-26  Havoc Pennington  <hp@redhat.com>
332
333         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
334         condition variables relate to recursive mutexes.
335         
336         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
337         dbus/dbus-threads.c: Split the platforms-specific thread 
338         implementations into their own files.
339         
340         * dbus/dbus-sysdeps-pthread.c
341         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
342         was backward. Not that anything uses it.
343
344 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
345
346         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
347         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
348         needs to be cleaned up more.
349
350         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
351         up the CREDS issue.
352
353 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
354
355         * configure.in, dbus-1.pc.in: Check to see if thread methods 
356         are in glibc or libpthread and add -lpthread to the link stage 
357         if it is the latter
358
359 2006-10-26  Thiago Macieira  <thiago@kde.org>
360
361         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
362         bug 8780: the connection lock is only required while recording
363         the shared connection, so protect only that code
364         section. Don't require connection_lookup_shared to return a
365         locked connection.
366
367 2006-10-26  Thiago Macieira  <thiago@kde.org>
368
369         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
370         check if get_machine_uuid() returns NULL before proceeding any
371         further: we can't init the X atoms or create a session file
372         name if there is no machine ID.
373         This solves a crash reported by some users if
374         --exit-with-session was used without --autolaunch=<machine-id>
375
376 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
377
378         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
379         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
380
381         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
382         before we run dbus-launch
383
384         * configure.in: define TEST_BUS_BINARY to be the full path to 
385         dbus-daemon in the build root 
386
387 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
388
389         * dbus/Makefile.am:
390         * tools/Makefile.am:
391         * toos/dbus-uuidgen.1:
392                 Move the machine-id file to /var/lib/dbus 
393
394 2006-10-24  David Zeuthen  <davidz@redhat.com>
395
396         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
397         _dbus_assert (thread_init_generation != _dbus_current_generation)
398         not _dbus_assert (thread_init_generation == _dbus_current_generation)
399
400 2006-10-24  Thiago Macieira  <thiago@kde.org>
401
402         * dbus/dbus-sysdeps.h:
403         * dbus/dbus-sysdeps-unix.c: Add function
404         _dbus_make_file_world_readable that chmods a file to 0644.
405
406         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
407         Avoid writing to the static "argv" array, thereby avoiding a
408         COW on the child process.
409
410         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
411         call _dbus_make_file_world_readable on the created file.
412
413 2006-10-23  David Zeuthen  <davidz@redhat.com>
414
415         * dbus/dbus-memory.c: Use atomic variable to protect
416         n_blocks_outstanding otherwise OOM will be reported using SMP on
417         some arches
418         
419         * bus/dispatch.c: Add missing end of line characters
420
421         * bus/desktop-file.c (parse_section_start, parse_key_value) 
422         (bus_desktop_file_load): Propertly handle OOM
423
424         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
425         thread_init_generation equals _dbus_current_generation, not 0
426
427 2006-10-22  Havoc Pennington  <hp@redhat.com>
428
429         * dbus/dbus-connection-internal.h: move prototype of
430         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
431         it isn't in a public header and doesn't end up in the DBusBus
432         group in Doxygen
433
434 2006-10-21  Havoc Pennington  <hp@redhat.com>
435
436         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
437         the tarball if packagers want to run it
438
439         * cleanup-man-pages.sh: Add a script which munges all the internal
440         API man pages out of the Doxygen output. This reduces the size of
441         the installed man pages from 7 to 2 megs, and avoids
442         namespace-polluting pages. Right now (like Doxygen) this script
443         isn't in the build, it's something packagers can do manually.
444
445 2006-10-21  Havoc Pennington  <hp@redhat.com>
446
447         * dbus/dbus-connection.h: don't include the watch/timeout
448         functions in connection section
449
450 2006-10-21  Havoc Pennington  <hp@redhat.com>
451
452         * Documentation! Whee! Doxygen now 100% silent. If you make it
453         angry again, you will be punished.
454         
455 2006-10-21  Havoc Pennington  <hp@redhat.com>
456
457         * More documentation - all public API now documented according to
458         Doxygen
459
460 2006-10-21  Havoc Pennington  <hp@redhat.com>
461
462         * Document a bunch of undocumented stuff
463         
464 2006-10-21  Havoc Pennington  <hp@redhat.com>
465
466         * Clean up Doxygen group markers for public API so Doxygen finds
467         everything (not comprehensively fixed for private API).
468         Means all remaining Doxygen warnings are just about missing docs
469         and thus pretty simple to resolve.
470         
471 2006-10-21  Havoc Pennington  <hp@redhat.com>
472         
473         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
474
475         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
476         as DBUS_GNUC_DEPRECATED
477
478 2006-10-21  Havoc Pennington  <hp@redhat.com>
479
480         * Move all private API into the private Doxygen group sections of
481         the files, so they don't show up in the public API docs
482         
483 2006-10-21  Havoc Pennington  <hp@redhat.com>
484
485         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
486         dbus_message_iter_get_array_len().
487
488         * throughout: documentation improvements.
489
490 2006-10-20  Havoc Pennington  <hp@redhat.com>
491
492         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
493         matter, and the message-loader-breaker thing since nobody is going
494         to do it.  Add an item to 1.0 about supporting recursive locks
495         in dbus_threads_init_default() though, since it should be easy.
496
497         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
498         Fix this in the !dispatch case to avoid busy-looping after
499         disconnection
500
501         * More misc docs improvements
502
503 2006-10-19  Havoc Pennington  <hp@redhat.com>
504
505         * more Doxygen-related fixes (lots of moving things from the
506         public to internal section in dbus-connection.c)
507
508 2006-10-19  Havoc Pennington  <hp@redhat.com>
509
510         * Fix a pile of Doxygen warnings and missing docs
511
512 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
513
514         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
515         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
516         instead of a void *.  kqueue uses this to get the context's loop
517         while the other modules ignore the parameter.  This allows us to
518         avoid platform conditionals
519
520         * bus/bus.c (process_config_postinit): Pass in the context to the 
521         watch
522
523 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
524
525         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
526         when starting the system bus
527
528 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
529
530         * configure.in: More fixups for cross compile (Patch from 
531         Marco Pracucci <development at pracucci dot com>)
532
533 2006-10-17  Havoc Pennington  <hp@redhat.com>
534
535         * tools/dbus-send.c (main): don't close shared connection, fix
536         from Timo Hoenig
537
538 2006-10-17  Havoc Pennington  <hp@redhat.com>
539
540         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
541
542         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
543         since realistically it doesn't look like we'll be changing it
544         anymore.
545
546 2006-10-17  Havoc Pennington  <hp@redhat.com>
547
548         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
549         be used for return_if_fail type warnings; prefixes the pid, and
550         fatal by default.
551
552 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
553
554         * configure.in: Released 1.0 RC 2(0.94)
555         Add check for -fPIC and enable it if available
556
557 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
558
559         * doc/TODO: Remove the check TODO item
560
561 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
562
563         * dbus-transport-socket.c (exchange_credentials):
564         Print out more detailed errors if reading or sending
565         credentials fail (Patch from Julio M. Merino Vidal 
566         <jmmv at NetBSD dot org>)
567
568 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
569
570         * configure.in: when checking for posix getpwnam_r assume true
571         for cross compiles
572
573 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
574
575         * configure.in: Check for gethostbyname first before we check for it
576         in libnsl.  On gnu systems it is implemeneted 
577
578 2006-10-13  Havoc Pennington  <hp@redhat.com>
579
580         * dbus/dbus-connection.c
581         (dbus_connection_send_with_reply_and_block): fix to handle closed
582         connections, from Tambet Ingo bug #8631
583
584 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
585
586         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
587
588 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
589
590         * test/name-test/Makefile.am: don't link against both libdbus and
591         libdbus-convenience
592
593 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
594
595         * configure.in: check for dirfd even if it is a macro
596         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
597
598 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
599
600         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
601         avoid using dirfd on systems that don't have dirfd 
602         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
603
604 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
605
606         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
607         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
608
609         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
610         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
611         macro because _dbus_abort calls it
612
613         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
614         works
615
616 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
617
618         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
619         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
620
621 2006-10-02  Thiago Macieira  <thiago@kde.org>
622
623         * tools/dbus-launch.c (main): make it complain and abort
624         execution in case an unknown option is given. Also, process
625         the '--' argument as the end of arguments.
626
627 2006-10-01  Havoc Pennington  <hp@redhat.com>
628
629         * tools/dbus-launch.c (print_variables): if no syntax is given,
630         don't print something that's sort-of-half-sh-syntax, just print
631         a plain key-value pairs thing.
632
633         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
634         the local machine representation (but still have the hostname in
635         the display). Remove the hostname from the display if it is
636         localhost. Change session files to be named
637         ~/.dbus/session-bus/machine-display. Change X atoms to be
638         underscore-prefixed so nobody whines about ICCCM compliance.
639         Otherwise name them the same as the env variables.
640         Change session file format to include key-value pairs and an
641         explanatory comment. Keys are the same as the env variables.
642         (set_address_in_x11): X property format can't depend on
643         sizeof(pid_t) on a particular machine, fix to always be 32 bits
644
645         * tools/dbus-launch.c: make --autolaunch take a machine id
646         argument. If --autolaunch is used with a program to run, complain
647         for now (but add a FIXME). Also, don't look for existing bus if 
648         there's a program to run (but add a FIXME).
649
650         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
651         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
652         just to get this, and avoids duplicating uuid-reading code).
653
654         * tools/dbus-launch.1: clarify various things
655         
656 2006-10-01  Havoc Pennington  <hp@redhat.com>
657
658         * test/test-service.c (path_message_func): remove broken extra
659         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
660
661         * test/test-shell-service.c (path_message_func): same fix
662         
663         * dbus/dbus-connection.c
664         (_dbus_connection_get_dispatch_status_unlocked): break up the
665         function a little for clarity and fix the notification of
666         dbus-bus.c to not require dispatch to be complete
667
668         * dbus/dbus-connection.c (dbus_connection_unref): improve the
669         warning when you try to finalize an open connection.
670         
671 2006-10-01  Havoc Pennington  <hp@redhat.com>
672
673         * dbus/dbus-bus.c
674         (internal_bus_get): only weak ref the connection; this means 
675         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
676         called safely in any context
677         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
678         unref
679
680         * dbus/dbus-connection.c
681         (_dbus_connection_get_dispatch_status_unlocked): move
682         _dbus_bus_notify_shared_connection_disconnected_unlocked here
683         when queuing Disconnected instead of when the Disconnected message
684         arrives, so dbus_bus_get() won't return closed connections.
685         
686 2006-10-01  Havoc Pennington  <hp@redhat.com>
687
688         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
689         Add a hack to make DBusNewConnectionFunction work right.
690
691         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
692         the hack here. Also, fix the todo about refcount leak.
693         
694         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
695         and use the hack here
696         
697         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
698         "shareable" flag; this was completely broken, since it meant 
699         dbus_connection_open() returned a connection of unknown
700         shared-ness. Now, we always hold a ref on anything opened 
701         as shareable.
702
703         Move the call to notify dbus-bus.c into
704         connection_forget_shared_unlocked, so libdbus consistently forgets
705         all its knowledge of a connection at once. This exposed numerous
706         places where things were totally broken if we dropped a ref inside
707         get_dispatch_status_unlocked where
708         connection_forget_shared_unlocked was previously, so move
709         connection_forget_shared_unlocked into
710         _dbus_connection_update_dispatch_status_and_unlock. Also move the
711         exit_on_disconnect here.
712
713         (shared_connections_shutdown): this assumed weak refs to the
714         shared connections; since we have strong refs now, the assertion 
715         was failing and stuff was left in the hash. Fix it to close
716         still-open shared connections.
717         
718         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
719         debug pipe connections
720         
721         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
722         dbus-bus.c if the closed connection is in fact shared
723         (_dbus_connection_close_possibly_shared): rename from 
724         _dbus_connection_close_internal
725         (dbus_connection_close, dbus_connection_open,
726         dbus_connection_open_private): Improve docs to explain the deal
727         with when you should close or unref or both
728
729         * dbus/dbus-bus.c
730         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
731         from _dbus_bus_check_connection_and_unref_unlocked and modify to
732         loop over all connections
733
734         * test/test-utils.c (test_connection_shutdown): don't try to close
735         shared connections.
736
737         * test/name-test/test-threads-init.c (main): fix warnings in here
738
739         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
740         env variable to cause blocking waiting for gdb; drop
741         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
742         unconditionally.
743
744         * configure.in: add -export-dynamic to libtool flags if assertions enabled
745         so _dbus_print_backtrace works.
746
747         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
748         instead of _dbus_verbose to print the backtrace, and diagnose lack 
749         of -rdynamic/-export-dynamic
750         
751 2006-09-30  Havoc Pennington  <hp@redhat.com>
752
753         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
754         (internal_bus_get): fix screwy code formatting. whoever committed
755         that was not paying attention!
756
757 2006-09-30  Havoc Pennington  <hp@redhat.com>
758
759         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
760         reflect addition of interfaces.
761
762         * doc/dbus-specification.xml: describe a new
763         org.freedesktop.DBus.Peer.GetMachineId method
764
765         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
766         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
767         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
768         at end of skip_white
769         (_dbus_string_chop_white): new function
770
771         * bus/connection.c (bus_connections_setup_connection): call
772         dbus_connection_set_route_peer_messages.
773
774         * dbus/dbus-connection.c
775         (_dbus_connection_peer_filter_unlocked_no_update): modify to
776         support a GetMachineId method.
777
778         Also, support a new flag to let the bus pass peer methods through
779         to apps on the bus, which can be set with
780         dbus_connection_set_route_peer_messages.
781
782         Finally, handle and return an error for anything unknown on the
783         Peer interface, which will allow us to extend the Peer interface
784         in the future without fear that we're now intercepting something
785         apps were wanting to see.
786         
787         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
788         dbus/dbus-uuidgen.c
789
790         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
791         binary here, since most of the code is already in libdbus
792
793         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
794         uuid from the system config file
795
796         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
797         (_dbus_read_uuid_file_without_creating) 
798         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
799         uuid-related functions, partly factored out from dbus-server.c
800
801         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
802         DBUS_ERROR_FILE_EXISTS instead of EEXIST
803
804         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
805
806         * tools/dbus-cleanup-sockets.1: explain what the point of this
807         thing is a bit more
808
809         * autogen.sh (run_configure): add --config-cache to default
810         configure args
811
812         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
813         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
814
815         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
816         don't try to save address, fixes crash in make check
817         
818 2006-09-30  Thiago Macieira  <thiago@kde.org>
819
820         * configure.in: add DBUS_BINDIR as a #define to C source code.
821
822         * tools/dbus-launch.c
823         * tools/dbus-launch.h
824         * tools/dbus-launch-x11.c:
825         * tools/dbus-launch.1: Add the --autolaunch option to
826         dbus-launch, which makes it scan for an existing session
827         started with --autolaunch. With that option, it also creates
828         an X11 window and saves the bus address and PID to it.
829
830         * dbus/dbus-sysdeps.h:
831         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
832         a function that runs "dbus-launch --autolaunch" to retrieve
833         the running D-Bus session address (or start one if none was running)
834
835         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
836         address protocol, which tries to get the running session from
837         dbus-launch.
838
839         * dbus/dbus-bus.c:
840         * dbus/dbus-internals.h: Make "autolaunch:" be the default
841         D-Bus session bus address.
842
843         * dbus/dbus-connection.c: Fix horrible typo in error message.
844
845 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
846
847         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
848
849 2006-09-17  Havoc Pennington  <hp@redhat.com>
850
851         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
852         fix so that if unix_user_function is set on windows, we still
853         do the default check that the auth identity matches the bus identity
854
855 2006-09-16  Havoc Pennington  <hp@redhat.com>
856
857         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
858         to _dbus_transport_open_platform_specific,
859         _dbus_transport_open_socket,
860         and _dbus_transport_open_debug_pipe
861
862         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
863
864 2006-09-16  Havoc Pennington  <hp@redhat.com>
865
866         Attempt auditing public API to remove all cases where a Unix
867         function returns weird emulated goo to Windows. This probably 
868         breaks the bus daemon on Windows, to fix it again we may 
869         need to stop processing unix-specific config options on Windows,
870         and may need to add Windows-specific public API or config options.
871         
872         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
873         to reflect added interfaces; should not break soname.
874         
875         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
876         not invoke unix user function on Windows. Kind of a hacky fix, but 
877         we don't want a "unix uid" leaking out on Windows.
878
879         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
880         to get the socket fd on Windows or UNIX
881         (dbus_connection_get_unix_fd): make this always fail on Windows
882
883 2006-09-16  Havoc Pennington  <hp@redhat.com>
884
885         * dbus/dbus-server.c (dbus_server_listen): change how this works
886         to be able to delegate to a set of handlers that can succeed,
887         fail, or choose not to handle. Allows us to have 
888         dbus_server_listen_platform_specific.
889
890         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
891         factor out the tcp socket stuff to be used on windows, leaving
892         unix domain socket only in dbus-socket-unix.c
893
894         * dbus/dbus-transport-socket.c
895         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
896         stuff to be used on windows, leaving unix domain socket only 
897         in dbus-transport-unix.c
898
899         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
900         temporary hack to be sure this fails on windows
901         (dbus_connection_get_unix_process_id): ditto
902
903 2006-09-16  Havoc Pennington  <hp@redhat.com>
904
905         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
906         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
907         _dbus_open_socket so the domain/type/protocol from system headers
908         are not required. This is kind of pointless though unless we move
909         part of _dbus_connect_tcp_socket into sysdeps.c instead of
910         sysdeps-unix.c, which would mean adding a wrapper around
911         bind/listen/etc.
912         Also, add DBusError to the socket-opening functions so they 
913         don't require use of errno.
914
915 2006-09-16  Havoc Pennington  <hp@redhat.com>
916
917         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
918         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
919
920         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
921         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
922         functions specifically for sockets only, and move generic 
923         read/write/open/close into unix-specific code.
924
925 2006-09-14  Havoc Pennington  <hp@redhat.com>
926
927         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
928         complaint about accessing revents when poll returns 0, from Julian Seward.
929
930 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
931
932         * Released 1.0 RC 1 (0.93) 
933
934 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
935
936         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
937         use _dbus_close instead of close
938
939 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
940
941         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
942         credentials.  Fixes "external" authentication under e.g. NetBSD
943         which does not support any other socket credentials mechanism.
944         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
945
946 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
947
948         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
949         dbus_threads_init and be used by the dbus mutex functions to
950         avoid deadlocks.
951
952         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
953
954 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
955
956         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
957         use threadsafe readdir_r instead of readdir
958
959 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
960
961         * dbus-threads.c (dbus_threads_init_default): New method for
962         initializing the internal thread implementation (Patch from
963         Alexander Larsson <alexl at redhat dot com>)
964
965 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
966
967         * remove a bunch of todo items from the 1.0 list
968
969 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
970
971         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
972         key not found
973
974 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
975
976         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
977         complex debugging code
978
979         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
980         between the test suite ifdefs
981         (_dbus_verbose_bytes): return if verbosity is not enabled 
982
983 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
984
985         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
986         remove DBusMark
987
988 2006-09-10  Havoc Pennington  <hp@redhat.com>
989
990        patch mostly by Peter Kümmel, bug #8211
991         
992         * dbus/dbus-sysdeps-unix.c: new file, which splits out
993         unix-specific stuff in dbus-sysdeps.c
994
995         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
996         and move unix-specific stuff to dbus-sysdeps-unix.c
997
998         * configure.in: check HAVE_ERRNO_H
999         
1000 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1001
1002         * bus/test-main.c (main): Initialize threading during tests
1003
1004         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1005         Unlock connection on error
1006         (generate_local_error_message): static method for generating
1007         an error message when we don't have a message to reply to
1008         (_dbus_connection_block_pending_call): Send a disconnect error
1009         instead of just a timeout (NULL) when the bus gets disconnected
1010         while blocking for a reply.
1011         
1012 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1015         filters (Patch from Kimmo Hämäläinen 
1016         <kimmo dot hamalainen at nokia dot com>)
1017
1018 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1019
1020         * dbus/dbus-connection-internal.h: Add prototype for 
1021         _dbus_connection_test_get_locks to remove warning
1022
1023 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1024
1025         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1026         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1027         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1028
1029 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1030
1031         * Clean up close calls to use _dbus_close (Patch from 
1032         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1033
1034 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1035
1036         * doc/TODO:
1037         - Remove pending call locking todo item
1038         - dbus_connection_open now holds hard ref.  Remove todo item
1039         - do proper locking on _dbus_bus_check_connection_and_unref
1040           and handle DBUS_BUS_STARTER. Remove todo item
1041         - Warn on closing of a shared connection.  Remove todo item
1042
1043         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1044         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1045         so we don't get the warning when closing shared connections
1046
1047         * test/test-service.c, test/test-shell-service.c: Applications
1048         don't close shared connections themselves so we unref instead of
1049         close
1050
1051         * test/test-utils.c (test_connection_shutdown): Close the connection
1052
1053         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1054         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1055         method on a locked connection.  
1056         Make sure we call _dbus_connection_unref_unlocked instead of 
1057         dbus_connection_unref also.
1058         Handle DBUS_BUS_STARTER correctly
1059
1060         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1061         Mark as shared and hard ref the connection
1062         (connection_forget_shared_unlocked): Remove the hard ref from the 
1063         connection
1064         (_dbus_connection_close_internal_and_unlock):  New internal function
1065         which takes a locked connection and unlocks it after closing it
1066         (_dbus_connection_close_internal): New internal function which acts
1067         like the origonal dbus_connection_close method by grabbing a connection
1068         lock and calling _dbus_connection_close_internal_and_unlock
1069         (dbus_connection_close): Public close method, warns when the app
1070         trys to close a shared connection
1071
1072 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1073
1074         * bus/driver.c:
1075         (bus_driver_generate_introspect_string): New method for populating
1076         a DBusString with the introspect data
1077         (bus_driver_handle_introspect): Move introspect generation code to 
1078         bus_driver_generate_introspect_string
1079
1080         * bus/main.c:
1081         (introspect): New function which prints out the intropect data and
1082         exits
1083         (main): Add a --introspect switch
1084
1085 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1086
1087         * doc/TODO: Removed dtd publishing item.  
1088         It seems the dtd has already been added at
1089         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1090
1091 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1092
1093         * doc/TODO, various source files: Audited todo's and FIXME's and
1094         prepended the ones we should be looking at with 1.0.  Those
1095         prepended with 1.0? need clerification or might not be needed
1096         for 1.0
1097
1098 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1099
1100         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1101         NULL in the public API (Patch from Kimmo Hämäläinen 
1102         <kimmo dot hamalainen at nokia dot com>)
1103
1104 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1105
1106         * configure.in: Fix for OS-X compile time endian issues (patch from
1107         Benjamin Reed <ranger at befunk dot com>)
1108
1109 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1110
1111         * configure.in: Check for no-common compiler flag (OS-X fix from
1112         Benjamin Reed <ranger at befunk dot com>)
1113
1114 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1115
1116         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1117         <fcrozat at mandriva dot com>)
1118
1119 2006-08-29  Havoc Pennington  <hp@redhat.com>
1120
1121         * test/test-service.c (path_message_func): fix lack of return value
1122
1123         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1124         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1125         any more sense than on anything else in this file.
1126         (_dbus_get_tmpdir): add const to return value, and keep the
1127         results of the various getenv around in a static variable.
1128
1129 2006-08-29  Havoc Pennington  <hp@redhat.com>
1130
1131         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1132         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1133
1134 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1135
1136         * test/Makefile.am: change find to use syntax that works with non
1137         gnu versions of find
1138
1139 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1140
1141         * dbus/dbus-transport.c: fix invalid deref when checking if
1142         a vtable method exists (Patch from Christian Ehrlicher 
1143         <ch dot ehrlicher at gmx dot de>)
1144
1145 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1146
1147         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1148         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1149         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1150         <bernard at brenda-arkle dot demon dot co dot uk>)
1151
1152 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1153
1154         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1155         default case
1156
1157 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1158
1159         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1160         it works on any system providing this interface, not only FreeBSD.
1161         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1162
1163 2006-08-20  Havoc Pennington  <hp@redhat.com>
1164
1165         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1166         the docs
1167
1168 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1169
1170         * Released 0.92 
1171
1172 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1173
1174         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1175         to reflect the init late change
1176
1177         * bus/bus.c (bus_context_new): Check user before we fork so we can
1178         print out an error message a user will be able to see
1179
1180 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1181
1182         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1183
1184         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1185         Add two more global locks for use on windows platforms.  These are
1186         unused on non-windows platforms but are not ifdefed out to avoid
1187         potential bugs (i.e. the few bytes lost does not warrent the extra
1188         maintanence and complexity that having seperate sets of locks would
1189         cause)
1190
1191 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1192
1193         * bus/services.c (bus_registry_acquire_service): Return an error
1194         when an application tries to register the org.freedesktop.DBus Bus Name
1195
1196         * bus/services.c (bus_registry_release_service): Return an error
1197         when an application tries to release the org.freedesktop.DBus Bus Name
1198
1199 2006-08-17  Alp Toker  <alp@atoker.com>
1200
1201         * doc/dbus-specification.xml: Fix some minor typos.
1202
1203 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1204
1205         * configure.in: use $with_init_scripts instead of $operating_system
1206         to determine where to store the pid since the init scripts manipulate 
1207         the pid file (patch from Marcelo Ricardo Leitner 
1208         <marcelo dot leitner at terra dot com dot br>.  
1209
1210 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1211
1212         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1213         static DBusList *uninitialized_condvar_list to support new late 
1214         initialization threading model.  In this model threads can be initialized
1215         even after the D-Bus API has been used but still needs to be initialized 
1216         before the second thread has been started.  Mutexes and condvar addresses
1217         are stored in the two static lists and are replaced with actuall locks
1218         when threads are initalized.
1219         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1220         the location into the static list
1221         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1222         from the static list and freeing the mutex
1223         (_dbus_condvar_new_at_location): New method for creating a conditional 
1224         variable and placing the location into the static list
1225         (_dbus_condvar_free_at_location): New method for removing a conditional
1226         variable location from the static list and freeing the conditional variable 
1227         (init_uninitialized_locks): Atomic method which goes through the static 
1228         lists of mutex and condvar location and updates them with actuall locks
1229         (init_global_locks): changed to init_locks
1230         
1231         * dbus/dbus-connection.c:
1232         (_dbus_connection_test_get_locks): New method for tests to check connections
1233         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1234         condvar API
1235         (dbus_connection_allocate_data_slot): Pass in the global lock address
1236         to _dbus_data_slot_allocator_alloc
1237
1238         * dbus/dbus-dataslot.c:
1239         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1240         instead of the mutex itself
1241
1242         * dbus/dbus-message.c:
1243         (dbus_message_allocate_data_slot): Pass in the global lock address
1244         to _dbus_data_slot_allocator_alloc
1245
1246         * dbus/dbus-pending-call.c:
1247         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1248         to _dbus_data_slot_allocator_alloc
1249
1250         * dbus/dbus-server.c:
1251         (_dbus_server_init_base): Use the new at_location mutex API
1252         (dbus_server_allocate_data_slot): Pass in the global lock address
1253         to _dbus_data_slot_allocator_alloc
1254
1255         * test/name-test/test-threads-init.c: New test case for late thread
1256         initialization
1257
1258 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1259
1260         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1261         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1262         causes compile problems when asserts are turned off
1263         Keeping _dbus_warn for printing out the message so even if
1264         asserts are turned off the user gets the messages that something is 
1265         wrong 
1266
1267 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1268
1269         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1270
1271         * bus/services.c (bus_service_list_queued_owners):
1272         Add a pointer cast to fix compiler warning
1273
1274         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1275         return a NULL instead of FALSE since the return type
1276         is not expecting a boolean
1277
1278         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1279         Remove unused variable
1280
1281         * dbus/dbus-marshal-recursive-util.c (node_new):
1282         return a NULL instead of FALSE since the return type
1283         is not expecting a boolean
1284
1285         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1286         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1287         because we are expecting a pointer not a boolean
1288
1289         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1290         add void as the parameter so some compilers
1291         don't complain
1292
1293         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1294           _dbus_transport_new_for_tcp_socket):
1295         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1296         because we are expecting a pointer not a boolean
1297
1298         * test/shell-test.c (test_command_line):
1299         cast the second argument to _dbus_list_append to avoid compiler
1300         warnings
1301
1302         * test/test-names.c (main): remove unused variable
1303
1304         * test/test-service.c (check_hello_from_self_reply):
1305         Initialize echo_message and echo_reply to NULL
1306         
1307         * test/test-shell-service.c (handle_echo):
1308         Remove unused variable and cast the third parameter passed to
1309         dbus_connection_get_object_path_data to avoid compiler warrnings
1310
1311         * test/name-test/test-names.c (clear_message_queue):
1312         Remove unused function
1313
1314         * test/name-test/test-pending-call-dispatch.c:
1315         Fix format string in printf
1316
1317
1318 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1319
1320         * dbus/dbus-bus.c:
1321         * test/name-test/test-names.c:
1322         Remove test method dbus_bus_connection_get_unique_name because 
1323         we already have public method dbus_bus_get_unique_name that 
1324         does the exact same thing
1325
1326 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1327
1328         * dbus/dbus-signature.c:
1329         fix typos in Julio's previous patch which cause make check to fail
1330
1331 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1334         In any case it was wrong since this is a test checking to see if
1335         address parsing is correct.  There was no need to get the true
1336         tmp directory.  
1337
1338 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1339
1340         * dbus/dbus-macros.h: Revert the addition of stddef.h
1341         as we should not be adding it to library headers 
1342
1343 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * dbus/dbus-signature.c:
1346         Fix the unit tests so that they work if assertions are not enabled.
1347         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1348
1349 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1350
1351         * tools/run-with-tmp-session-bus.sh:
1352         * test/name-test/run-test.sh:
1353         Remove bashisms (patch from Julio M. Merino Vidal
1354         <jmmv at NetBSD dot org>)
1355
1356 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1357
1358         * configure.in: add a version (>= 2.6.0) check for libxml2
1359
1360 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1361
1362         * configure.in: make sure the compiler supports -Wfloat-equal
1363         
1364         * bus/dir-watch-dnotify.c: move functional code after 
1365         variable declerations (C99 fix)  (patches from Jens Granseuer
1366         <jensgr at gmx dot net>
1367
1368 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1369
1370         * dbus/dbus-macros.h:
1371         add #include <stddef.h> so that Sun compilers don't complain about
1372         the defining NULL
1373
1374 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * dbus/dbus-sysdeps.c:
1377         * dbus/dbus-address.c:
1378         * bus/activation.c:
1379         * test/shell-test.c:
1380         don't hardcode tmp directory (patch from Dave Meikle 
1381         <dmk at davemeikle dot co dot uk>)
1382
1383 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1384
1385         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1386         Change an assert to a detailed warning and abort.  
1387         When allocator->lock != mutex it indicates that the user has failed
1388         to initalize threads before using the D-Bus library.  This warning
1389         helps the user identify the issue and fix their app.
1390
1391 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1394         with cleanups of bugs found from Coverity reports:
1395
1396         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1397         close the file on error to avoid a leak
1398
1399         * bus/expirelist.c (bus_expire_list_test):
1400         Check for NULL on dbus_new0
1401
1402         * bus/activation.c (update_directory):
1403         remove dead code
1404
1405         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1406         Fix some leaks
1407
1408         * bus/bus.c (process_config_every_time):
1409         Fixed a leak
1410
1411         * bus/desktop-file.c (parse_key_value):
1412         Fixed leak
1413
1414         * bus/selinux.c (bus_selinux_id_table_insert):
1415         Fixed leak
1416
1417 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1418
1419         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1420         remove dead code
1421
1422 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1423
1424         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1425         #!/bin/bash
1426
1427 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1428
1429         * Doxyfile.in: fix the INPUT line so we can generate docs 
1430         when sourcedir != builddir (patch from Cygwin Ports maintainer
1431         <yselkowitz at users dot sourceforge dot net>
1432
1433 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * dbus/dbus-sysdeps.h:
1436         * dbus/dbus-sysdeps.c: 
1437         * dbus/dbus-string.c: 
1438         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1439         GLib's function which does the same thing
1440
1441         * configure.in:
1442         * bus/Makefile.am:
1443         * bus/dir-watch-default.c:
1444         * bus/dir-watch-dnotify.c:
1445         * bus/dir-watch-kqueue.c:
1446         Add kqueue directory watching for freebsd and split the directory
1447         watching code into seperate files per method/arch
1448         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1449
1450 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1451
1452         * configure.in:
1453         * tools/Makefile.am:
1454         * tools/dbus-launch.c:
1455         * bus/Makefile.am:
1456         allow --with-dbus-daemondir switch to be used to make the
1457         daemon install to a seperate bindir like /usr/libexec
1458         (patch from Brian Cameron <brian dot cameron at sun dot com)
1459
1460 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1461
1462         * bus/Makefile.am (install-data-hook): removed the slash after 
1463         $(DESTDIR) so we don't get the double slash which does not work
1464         in windows (patch from Andras Porjesz 
1465         <andras dot porjesz at siemens dot com>)
1466
1467 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1468
1469         * dbus/dbus-sysdeps.h:
1470         * dbus/dbus-sysdeps.c: 
1471           add _dbus_printf_length (patch from Peter Kümmel 
1472           <syntheticpp at gmx dot net>)
1473
1474 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1475
1476         * dbus/dbus-internals.c: unistd.h is not used 
1477         (_dbus_verbose_real): only enable verbose printing 
1478         if DBUS_VERBOSE environment var is set to '1'
1479         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1480
1481 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1484         so we still compile on older gcc (patch from Frederic Peters 
1485         <fpeters at 0d dot be>
1486
1487 2006-08-04  Havoc Pennington  <hp@redhat.com>
1488
1489         * configure.in: add -Wdeclaration-after-statement
1490
1491         * dbus/dbus-connection.c: change all the pending call stuff to
1492         reflect the fact that pending call operations use the connection
1493         lock
1494
1495         * dbus/dbus-pending-call.c: add locking here
1496
1497         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1498         field const consistent with how message field is done
1499
1500 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1501
1502         * s/D-BUS/D-Bus/g
1503
1504 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1505
1506         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1507         <in7y118 at public.uni-hamburg dot de> - fix invalid
1508         read/write reported by valgrind
1509
1510 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1511
1512         * Released 0.91
1513
1514 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1515
1516         * dbus/dbus-connection.c:
1517         (_dbus_connection_attach_pending_call_unlocked):
1518         (connection_timeout_and_complete_all_pending_calls_unlocked):
1519         Make sure we set timeout_added on pending calls to FALSE when
1520         we remove the timeout from the connection
1521
1522 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1523
1524         * Removed some extra bindings stuff lingering around (thanks timo)
1525         * dbus-pendingcall.c (_dbus_pending_call_new): 
1526         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1527         when we tried to take a lock on an already locked connection
1528
1529 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1530
1531         * Released 0.90
1532
1533 2006-07-17  Havoc Pennington  <hp@redhat.com>
1534
1535         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1536         ints, reported by Owen Taylor
1537
1538 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1539
1540         * doc/TODO:
1541         * dbus/dbus-bus.c:
1542         * dbus-errors.c:
1543         * dbus/dbus-marshal-validate.c:
1544           Removed TODO items which were fixed or are no longer relevent
1545
1546 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1547
1548         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1549         Remove stray files from the stripped bindings
1550
1551 2006-07-16  Havoc Pennington  <hp@redhat.com>
1552
1553         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1554         Improve the error message on reply timeout
1555
1556 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1557
1558         * Remove all bindings
1559
1560 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1563         and set pending_reply out arg to NULL is connection is disconnected
1564         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1565         static method for cleaning up pending calls on disconnect
1566         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1567         calls queued timeouts on disconnect 
1568
1569          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1570         Remove 
1571
1572 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1573
1574         * bus/activation.[ch] (bus_activation_list_services): new function to 
1575         get the list of services that can be activated
1576
1577         * bus/dispatch.c: test coverage for the new bus method
1578         ListActivatableNames
1579
1580         * bus/driver.c: new bus method ListActivatableNames to get the list of
1581         services that can be activated
1582
1583         * doc/dbus-specification.xml: ListActivatableNames method documentation
1584
1585 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1586         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1587         source files
1588
1589 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1590         * dbus/dbus-message-factory.c:
1591         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1592
1593 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1594         * dbus/dbus-connection-internal.h:
1595         * dbus/dbus-connection.c:
1596         * file dbus/dbus-pending-call.c:
1597         * dbus/dbus-pending-call.h:
1598         Make DBusPendingCall an opaque type even to D-Bus internals
1599
1600 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1601
1602         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1603         connection_close
1604
1605         * dbus/dbus-connection.c: include dbus-bus.h
1606         (_dbus_connection_read_write_dispatch): make static
1607
1608 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1609
1610         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1611         function
1612         (dbus_connection_dispatch): On disconnect unref any shared connections
1613
1614         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1615         for cleaning up shared connections on disconnect
1616         (internal_bus_get): get a hard refrence to shared connections when
1617         they are created
1618         
1619         * doc/TODO: Remove items which are no longer relevent or have been fixed
1620         Split 1.0 todo items with a 0.90 freeze todo list
1621  
1622 2006-06-14  Ross Burton  <ross@openedhand.com>
1623
1624         * glib/dbus-gobject.c:
1625         Free a leaking GArray (surely not!) in dbus_g_method_return.
1626
1627 2006-06-14  Ross Burton  <ross@openedhand.com>
1628
1629         * tools/Makefile.am:
1630         * tools/dbus-monitor.c:
1631         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1632         Habacker).
1633         
1634 2006-06-14  Ross Burton  <ross@openedhand.com>
1635
1636         * tools/dbus-print-message.c:
1637         Also print the object path when outputting signals or method calls.
1638
1639 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1640
1641         * qt/src/Makefile.am: install the qdbus.h header.
1642         This allows people to actually use the installed code.
1643
1644 2006-06-12  Ross Burton  <ross@openedhand.com>
1645
1646         * glib/dbus-gproxy.c:
1647         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1648
1649 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1650
1651         * Released 0.62
1652
1653 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1654
1655         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1656         break pedantic builds. Closes bug 6043 (patch approved by
1657         Havoc back in February).
1658
1659 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1660
1661         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1662         that took a QDBusMessage parameter.
1663         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1664         * qt/tools/dbus.cpp: Don't use automatic call because we might
1665         be calling an async method: request a reply.
1666
1667 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1668
1669         * test/qt/*: Update the testcases, including testing the new
1670         functionality of sending null QByteArray and QString over the
1671         bus. Add new headertest test and restore the old
1672         qdbusxmlparser test.
1673
1674 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1675
1676         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1677         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1678
1679         * qt/examples/Makefile.am:
1680         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1681         form.
1682
1683         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1684         QByteArray() (nulls) over the bus.
1685         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1686         the one that has the signature suffix stripped.
1687         * qt/src/qdbusreply.h: Make some methods const.
1688
1689 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1690
1691         Patch from Timo Hoenig <thoenig@suse.de>.
1692
1693         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1694         required during build to EXTRA_DIST.
1695         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1696         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1697         * configure.in: Fix "make dist", take care that the Makefile for
1698         qt/dbus is being generated.
1699
1700 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1701
1702         * bus/bus.c: Fix eavesdropping on method calls
1703
1704 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1705
1706         * configure.in:
1707         * dbus/dbus-userdb-util.c:
1708         Add Solaris console owner patch from Artem Kachitchkine
1709
1710 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1711
1712         * qt/Makfile.am:
1713         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1714         reorganisation. Thanks to Timo Hoenig for pointing this out.
1715
1716 2006-06-06  Robert McQueen  <robot101@debian.org>
1717
1718         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1719           call to dbus_g_type_get_struct.
1720
1721 2006-06-06  Robert McQueen  <robot101@debian.org>
1722
1723         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1724           pointers were put into a GPtrArray-based specialised collection, and
1725           then freed along with the array. GValues which you add into
1726           collections or maps which have the NOCOPY flag set are assumed to not
1727           belong to the caller, so rather than the existing pointer-stealing
1728           semantics, they are copied instead. Given that the main consumers of
1729           this abstraction are the bindings themselves, I don't think this is
1730           too bad, but others should watch their choice of take vs set_static.
1731
1732 2006-06-06  Robert McQueen  <robot101@debian.org>
1733
1734         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1735           of g_slist_prepend not being used. Fixed copying of slist-based
1736           specialised collections, then wrote a test case and found that it was
1737           all broken. Went on to fix iterating and appending too. Good thing
1738           nobody uses this code yet.
1739
1740 2006-06-06  Robert McQueen  <robot101@debian.org>
1741
1742         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1743           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1744           are discarded without unsetting, so it makes no difference whether
1745           we take or set_static). Remove cases for G_TYPE_POINTER because
1746           there really is nothing useful we can do with them in our
1747           specialised types - we *need* boxed copy/free functions at the very
1748           least.
1749
1750 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1751
1752         * qt/dbus: Add directory. I had forgotten to add this
1753         yesterday after the move...
1754
1755         * qt/examples/Makefile.am:
1756         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1757
1758         * qt/tools/Makefile.am:
1759         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1760         Added feature to get and set properties.
1761         Added validation of service, object path and interface names.
1762
1763         * qt/tools/dbusidl2cpp.cpp: Two new features:
1764         1) Allow specifying both the header and the source file names,
1765         by separating them with a colon.
1766         2) Don't write an interface output if the -p switch wasn't
1767         given, but the -a was.
1768
1769         * qt/src/*: Fix usage of Iterators and ConstIterators.
1770         Fix shadowing of variables by other variables (-Wshadow).
1771         Fix keyword-cleanliness in headers.
1772         Fix ASCII-cast (QLatin1String, QLatin1Char).
1773         Fix validation of member names.
1774         Add extra checking of introspection data during XML parsing.
1775         Various bug fixes.
1776
1777 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1778
1779         * dbus/Makefile.am:
1780         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1781         qt/dbus/qdbus.h now.
1782
1783 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1784
1785         * configure.in: Make --disable-qt actually do
1786           something. Patch inspired by Zack Rusin.
1787
1788 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1789
1790         * qt/: Update to Subversion r548032.
1791         This includes a big reorganisation of the files inside the
1792         subdir.
1793
1794 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1795
1796         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1797         clear:  
1798         "Failed to connect to socket <host>:<port> <error>" instead of
1799         "Failed to connect to socket <host>: <error>:<port>"
1800
1801         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1802         for a tcp transport. 
1803
1804 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1805
1806         * qt/*: Update the QtDBus bindings up to revision 546310 in
1807         Subversion.
1808         This adds the dbuscpp2xml tool, that parses a C++ header and
1809         outputs a D-BUS Introspection XML.
1810
1811 2006-05-21  Havoc Pennington  <hp@redhat.com>
1812
1813         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1814         is not NULL when it shouldn't be. Also a couple of possible fixes
1815         for #4637 though I don't understand why the bug happens, to be
1816         honest... also the object constructor has an assert name != NULL
1817         and the name is only currently NULL for peer-to-peer proxies that 
1818         I don't think anyone uses? So it should be asserting.
1819         Anyway, for now at least see if we get an earlier assertion failure.
1820
1821         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1822         apparently broken code to be sure the tests fail and someone 
1823         will fix them...
1824
1825 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1826
1827         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1828         and arrays when they had a single element: has_next returns
1829         false, even before you read the element. So, instead, check
1830         the array length.
1831
1832 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1833
1834         * qt/qdbusmessage.cpp:
1835         * qt/qdbustypehelper_p.h:
1836         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1837         the list is a const-reference
1838
1839 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1840
1841         * Adding old doc patch that never got applied
1842         
1843         * dbus/bus.c (dbus_bus_add_match): Add documentation
1844
1845         * doc/dbus-specification.xml: Add documentation for the match rules
1846           and the AddMatch and RemoveMatch methods
1847
1848 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1849
1850         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1851         call (r535506)
1852
1853         * qt/dbusidl2cpp.cpp:
1854         * qt/qdbusabstractadaptor.cpp:
1855         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1856         sibling of the QDBusAbstractAdaptor objects instead of the
1857         parent. (r535848)
1858
1859         * qt/dbusidl2cpp.cpp:
1860         * qt/qdbusabstractinterface.cpp:
1861         * qt/qdbusabstractinterface.h:
1862         * qt/qdbusabstractinterface_p.h:
1863         * qt/qdbusinterface.cpp: Make properties in interfaces
1864         actually work. The code that was generated would not compile,
1865         due to moc calls to functions that did not exist. They now
1866         shall. (r536571)
1867
1868 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1869
1870         * Makefile.am:
1871         * configure.in:
1872         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1873         Thanks to Brad Hards for providing the patch
1874
1875 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1876
1877         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1878         call. (r535506)
1879
1880 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1881
1882         * qt/examples/dbus.cpp: Enhance error messages and use
1883         QDBusInterfacePtr.
1884
1885 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1886
1887         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1888         and disable the copy operators. (r533772, r534746)
1889
1890         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1891
1892         * qt/qdbusabstractinterface.cpp:
1893         * qt/qdbusabstractinterface.h: Change the default call mode to
1894         not use the event loop. Add convenience call() methods that
1895         take a CallMode parameter. (r534042)
1896
1897         * qt/qdbusconnection.h: Change the default call mode to not
1898         use the event loop. (r534042)
1899
1900         * qt/qdbusinterface.cpp:
1901         * qt/qdbusinterface.h: Add a method to tell us if the
1902         interface is valid (since we don't return a null pointer
1903         anymore) (r534099)
1904
1905         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1906         (r534101)
1907
1908         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1909         function in two so taht we get the chance to introspect
1910         without having a QDBusMessage (r534102)
1911
1912         * qt/qdbusbus.h:
1913         * qt/qdbusconnection.cpp:
1914         * qt/qdbusconnection_p.h:
1915         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1916         avoid a round-trip to the server when attempting to introspect
1917         one of our own objects. Also make sure the filter functions
1918         match the empty interface as well. (r534108)
1919         Don't keep the connection names. Instead, trust the unique
1920         connection name (r534111)
1921         Remove event loop usage (r534112)
1922
1923 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1924
1925         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1926         Brad Hards.
1927
1928 2006-04-28  Robert McQueen  <robot101@debian.org>
1929
1930         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1931         any order, making it easier for people who inherit from this
1932         object.
1933
1934 2006-04-28  Robert McQueen  <robot101@debian.org>
1935
1936         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1937         of memory from within pointer arrays and lists. Fixes bug #6300.
1938
1939 2006-04-28  Robert McQueen  <robot101@debian.org>
1940
1941         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1942         generating struct signatures. Fixes bug #6083.
1943
1944 2006-04-28  Robert McQueen  <robot101@debian.org>
1945
1946         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1947         to qdbusconnection_p.moc.
1948
1949 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1950
1951         * README, INSTALL: Doc fixes
1952         Patch from Brad Hards <bradh at frogmouth.net>
1953
1954 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1955
1956         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1957         the dynamic meta object. No need to guess which interface to
1958         call.
1959
1960 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1961
1962         * qt/qdbusconnection_p.h:
1963         * qt/qdbusmetaobject.cpp:
1964         * qt/qdbusmetaobject_p.h:
1965         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1966         for the dynamic meta object. No need to guess which
1967         interface to call.
1968         * qt/qdbusabstractinterface_p.h:
1969         * qt/qdbusconnection.cpp:
1970         * qt/qdbusintegrator.cpp:
1971         * qt/qdbusinterface.cpp:
1972         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1973         Add a QDBusRef that looks and behaves like DCOPRef.
1974
1975 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1976
1977         * dbus/dbus-connection.c: Interfaces are optional in method
1978         calls, so don't give up if the interface parameter is NULL.
1979         Patch reviewed by Havoc Pennington.
1980
1981 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1982
1983         * qt/qdbusreply.h: Add default constructor and operator=
1984           (r532625)
1985         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1986           in public headers (r532952)
1987         * qt/qdbusabstractinterface.cpp:
1988         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1989           make it the default (r532951)
1990
1991 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1992
1993         * dbus/dbus-connection.c: Fix asserts
1994         Patch from Tim Moloney <t.moloney at verizon.net>
1995
1996 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1997
1998         * mono/Connection.cs, mono/Message.cs: Check Target type
1999         Patch from Aaron Bockover (abockover at novell.com)
2000
2001 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2002
2003         * INSTALL: fine-tune the requirements for the Qt4 binding.
2004
2005 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2006
2007         * tools/dbus-print-message.c: Added support for printing of all 
2008           remaining data types. Fixed logic for indentation of compound
2009           data types.
2010         
2011 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2012
2013         * INSTALL: fill out content of file providing DBus specific
2014           build installations, followed by generic Auto* INSTALL file
2015           content
2016         
2017 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2018
2019         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2020           Patch by Stefan Eilers. (r529537)
2021
2022 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2023
2024         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2025           contents (r528208)
2026
2027 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2028
2029         * qt/Makefile.am: fix the dependency for
2030           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2031           not in qdbusconnection.cpp.
2032           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2033           spotting this.
2034
2035 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2036
2037         * qt/examples/listnames.cpp:
2038         * qt/examples/Makefile.am: Three ways to list the names on the
2039           bus.
2040
2041 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2042
2043         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2044           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2045
2046 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2047
2048         Merge from Subversion:
2049         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2050           something that exists (r526315)
2051         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2052           slots/signals (r526316)
2053         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2054           also return an unknown-method error if the parameters don't
2055           match for org.freedesktop.DBus.Properties. (r526842)
2056         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2057         * qt/qdbusintegrator.cpp: Restore the proper order of
2058           delivery: don't make method returns be delivered on priority
2059           (r528150)
2060
2061 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2062
2063         * configure.in qt/Makefile.am: add qt/examples
2064         * qt/examples: Add QtDBus example programs:
2065           - hello: Hello, World
2066           - ping: Simple method-calling program
2067           - pong: Simple object-exporting program (not using adaptors)
2068           - complexping: Interactive method-calling program 
2069                 (also gets and sets properties).
2070           - complexpong: Sample program exporting methods, signals and
2071                 properties, using adaptors.
2072           - dbus: Simple implementation of a generic method-calling
2073                 program, similar to 'dbus-send', but with semantics
2074                 similar to 'dcop'.
2075           - chat: Simplistic chat program, implemented using signals
2076                 and the system bus. Looks like IRC.
2077
2078 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2079
2080         * configure.in: Detect QtGui (necessary for one of the
2081           example programs). Note: this increases the minimum required
2082           version of Qt to 4.1.3.
2083
2084 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2085
2086         * test/qt/*: Sync with KDE Subversion revision 523647.
2087         Update the testcases to the new API. Remove testcases for
2088         classes that are no longer public or have been removed.
2089
2090 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2091
2092         * qt/*: 
2093         * dbus/qdbus.h: Sync with KDE Subversion revision
2094         523647. Hopefully, this will be the last of the
2095         source-incompatible changes. Documentation has been improved;
2096         support for QList<basic-types> has been added; QDBusObject is
2097         gone; QDBus(Abstract)Interface is now a QObject with
2098         auto-generated meta-object; QDBusIntrospection is marked
2099         private, since QMetaObject can be used now; lots of bugfixes.
2100
2101 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2102
2103         Patch from Milosz Derezynski <internalerror at gmail.com>
2104         
2105         * configure.in:
2106         Output the service directory in the configure summary
2107
2108         * dbus-1.pc.in:
2109         Add session_bus_services_dir
2110
2111 2006-03-10  Ross Burton  <ross@openedhand.com>
2112
2113         * tools/dbus-print-message.c:
2114         Add support for object paths and signatures.
2115
2116 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2117
2118         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2119         config reload.
2120         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2121         information caches
2122         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2123         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2124         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2125         * dbus/dbus-userdb.h: Add function to flush all user/group information
2126         caches.
2127
2128 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2129
2130         * qt/dbusidl2cpp.cpp:
2131         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2132         for dcopidl2cpp, found in the KDE installations (or the more
2133         modern kalyptus): generate Qt4 C++ code for the input XML
2134         introspection. Currently no IDL parsing.
2135
2136 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2137
2138         * test/qt/*: Update the self-tests.
2139
2140 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2141
2142         * qt/*: 
2143         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2144         represents the first feature-complete version of the Qt4
2145         bindings since I took ove maintainership.
2146
2147 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2148
2149         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2150         dir. This is C++, so we can't use the DBus ones.
2151
2152 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2153
2154         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2155         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2156
2157 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2158
2159         * dbus/dbus-connection.c: 
2160         (_dbus_connection_block_pending_call):
2161         Check to see if our data has already been read off the connection
2162         by another blocking pending call before we block in poll.
2163         (check_for_reply_and_update_dispatch_unlocked):
2164         Code taken from _dbus_connection_block_pending_call - checks for
2165         an already read reply and updates the dispatch if there is one.
2166
2167         * test/name-test/test-pending-call-dispatch.c:
2168         New test for making sure we don't get stuck polling a 
2169         dbus connection which has no data on the socket when
2170         blocking out of order on two or more pending calls.
2171
2172 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2173
2174         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2175         make/automake don't detect that we're talking about the same
2176         .lo file if I specify the full path to the source files.
2177
2178 2006-02-26  Havoc Pennington  <hp@redhat.com>
2179
2180         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2181
2182         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2183         session bus variable is unset, suggest "man dbus-launch" and "man
2184         dbus-daemon" to figure out how to fix the problem
2185
2186 2006-02-25  Havoc Pennington  <hp@redhat.com>
2187
2188         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2189         should make this thing use the new glib options parser
2190
2191 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2192
2193         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2194         .lo files taking moc sources.
2195
2196 2006-02-25  Havoc Pennington  <hp@redhat.com>
2197
2198         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2199         and install it as a public header
2200
2201 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2202
2203         * Released 0.61
2204
2205 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2206         
2207         * proxies.py: Fix the callchain
2208
2209 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2210         
2211         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2212
2213         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2214         dbus/dbus-sysdeps.c
2215
2216         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2217         call _dbus_group_info_free_allocated which causes infinite loop,
2218         correctly call _dbus_group_info_free
2219
2220 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2221
2222         * qt/qdbusinterface_p.h:
2223         * qt/qdbusinterface.cpp: Use the standard
2224         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2225         calls instead of creating one for us.
2226
2227         * qt/qdbusconnection_p.h:
2228         * qt/qdbusintegrator.cpp: Remove debugging code.
2229
2230         * qt/qdbusintegrator.cpp:
2231         * qt/qdbusmessage.cpp:
2232         * qt/qdbusmessage_p.h:
2233         * qt/qdbusmessage.h: Change the behaviour of automatic
2234         reply-sending: now a reply is always sent, unless the caller
2235         didn't request one or if the user slot has already sent one.
2236
2237 2006-02-16  Robert McQueen  <robot101@debian.org>
2238
2239         * configure.in: Patch from Debian packages by Sjoerd Simons
2240         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2241         arguments so it's possible to build both bindings in the
2242         same tree.
2243
2244         * qt/Makefile.am: Fix truncated value so that make dist works.
2245
2246 2006-02-16  Robert McQueen  <robot101@debian.org>
2247
2248         * acinclude.m4, configure.in: Patch from Brad Hards
2249         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2250         improving quoting, re-ordering a few checks, and a few other
2251         aesthetic tidy-ups.
2252
2253 2006-02-16  Robert McQueen  <robot101@debian.org>
2254
2255         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2256         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2257         assertion that the next element to read from the iter is fixed in
2258         size. This is not the case when you are at the end of the iter,
2259         because the next element type is INVALID.
2260
2261         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2262         a bogus assert which means that you may not initialise a 0-length
2263         string unless you provide a non-NULL pointer. This prevented
2264         you from marshalling messages containing zero-length arrays in
2265         some cases.
2266
2267         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2268         from Rob to correct bogus asserts when trying to demarshal an
2269         array and get_fixed_array got you 0 elements. Append nothing to
2270         the GArray in this case.
2271
2272         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2273         an empty array via the glib bindings. Without all of the above
2274         patches, this new test fails.
2275
2276 2006-02-16  Robert McQueen  <robot101@debian.org>
2277
2278         * glib/dbus-gmain.c: Make the previous commit compile.
2279
2280         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2281         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2282         specify sender_keyword="foo", path_keyword="bar" when adding
2283         a signal listener, so that you can bind to signals generically
2284         but still do something useful in your callback.
2285
2286         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2287         chars so that they're not cast to chars and made negative. Thanks
2288         to Jakub Stachowski for reporting this and testing the fix.
2289
2290 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2291
2292         * dbus/dbus-glib.h:
2293         * glib/dbus-gmain.h:
2294         (dbus_g_connection_open): new method for openning
2295         a connection to an arbitrary address in the glib bindings
2296
2297         * ChangeLog: checkin last entry which doesn't seem to be commited
2298
2299 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2300
2301         * tools/dbus-launch.c: Fixed sh syntax output
2302
2303 2006-02-13  Robert McQueen  <robot101@debian.org>
2304
2305         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2306         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2307         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2308         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2309         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2310         missing piece of the glib bindings jigsaw puzzle. This modifies
2311         the existing specialised types to have N type parameters (rather
2312         than the current 1 or 2 for arrays and dictionaries respectively).
2313         You can then use this to get a glib type to represent any arbitrary
2314         D-Bus struct type using dbus_g_type_get_struct. The only
2315         implementation of these types is with GValueArrays as before,
2316         but it's now possible to store these in arrays, emit them in
2317         signals, etc.
2318
2319 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2320
2321         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2322         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2323         <thiago.macieira at trolltech.com>
2324
2325 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2326
2327         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2328         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2329
2330 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2331
2332         * bus/connection.c (bus_connections_expect_reply): Make
2333         pending reply limit not common to all connections (Bug #5416)
2334         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2335
2336 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2337
2338         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2339
2340 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2341
2342         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2343         patch from Doug Goldstein <cardoe at gentoo.org>
2344
2345 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2346
2347         * mono/Arguments.cs: Fix a magic number in the mono bindings
2348         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2349
2350 2006-01-27  Robert McQueen  <robot101@debian.org>
2351
2352         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2353         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2354         when generating the client-side methods, instead of overloading
2355         CSymbol which broke everything horribly. My apologies.
2356
2357 2006-01-27  Robert McQueen  <robot101@debian.org>
2358
2359         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2360         by me and Rob Taylor to add a simple_free function to D-Bus map
2361         and collection types, which allows those types which can be freed
2362         with a GDestroyNotify (such as GHashTables and GArrays, but not
2363         GPtrArrays) to be stored as the values in hashtables.
2364
2365         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2366         Patch by Rob Taylor to add nested dicts to the glib tests to check
2367         the above code works, and appears not to leak when called repeatedly.
2368
2369 2006-01-27  Robert McQueen  <robot101@debian.org>
2370
2371         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2372         to free a D-Bus allocated string with dbus_free () instead of
2373         g_free ().
2374
2375 2006-01-27  Iain Holmes  <iain@openedhand.com>
2376
2377         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2378         method from being called multiple times.
2379
2380 2006-01-19  Robert McQueen  <robot101@debian.org>
2381
2382         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2383         <rob.taylor@collabora.co.uk> to add support for generating bindings
2384         to arrays that are represented as GPtrArrays rather than GArrays (ie
2385         size-variable things, such as strings, objects, structs, etc).
2386
2387 2006-01-05  Robert McQueen  <robot101@debian.org>
2388
2389         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2390         <ricardo.kekki@movial.fi> to make it possible to inherit from
2391         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2392         a private part, and moving the setting of the DBusGProxyManager into a
2393         connection property, allowing proper GObject construction.
2394
2395 2006-01-05  Robert McQueen  <robot101@debian.org>
2396
2397         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2398         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2399         annotations when generating glib client bindings.
2400
2401 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2402
2403         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2404
2405         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2406
2407 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2408
2409         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2410
2411 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2412
2413         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2414
2415 2005-12-19  Ross Burton  <ross@openedhand.com>
2416
2417         * doc/dbus-tutorial.xml:
2418         Document the Glib client-side bindings, and list all possible annotations.
2419
2420 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2421
2422         * dbus/bus.c (dbus_bus_release_name): Add documentation
2423
2424 2005-12-06  Robert McQueen  <robot101@debian.org>
2425
2426         * python/service.py: s/sucessful/successful/ so we're allocating to
2427         and reading from the same variable. Oops.
2428
2429 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2430
2431         * Released 0.60
2432
2433 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2434
2435         * test/qt/Makefile.am: build from srcdir
2436
2437         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2438         Note - this code is wrong and needs to be fixed by the Qt binding
2439         developers.  The flags should be treated as bitfields and not enums.
2440
2441         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2442
2443 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2444
2445         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2446           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2447           in production code
2448
2449 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2450
2451         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2452         method for getting messages off the bus in the absence of a
2453         mainloop.  This method is much like 
2454         dbus_connection_read_write_dispatch except it does not dispatch
2455         the messages to a registered filter function.  Instead it
2456         allows a developer to process messages by directly popping
2457         them off the bus.
2458
2459 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2460
2461         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2462         the parser to continue instead of returning error
2463         (bus_desktop_file_load): Do not free parser data when
2464         parse_section_start or parse_key_value fails because it was 
2465         already freed by parser_free (patch from Carlos Garcia Campos  
2466         <carlosgc at gnome.org>)
2467
2468 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2469
2470         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2471         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2472         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2473         test/test-segfault.c, test/test-utils.c,
2474         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2475         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2476         Various cleanup of dead code and compiler warnings (patch from
2477         Kjartan Maraas <kmaraas at gnome.org>) 
2478
2479 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2480
2481         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2482         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2483
2484 2005-11-27  Robert McQueen  <robot101@debian.org>
2485
2486         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2487         part of the preceding one. Oops. Merge patch by Johan Hedberg
2488         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2489         on big-endian platforms.
2490
2491         * test/python/test-client.py: Add some 16-bit integers to the test
2492         values.
2493
2494 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2495
2496         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2497         method return message for property getters
2498
2499 2005-11-27  Robert McQueen  <robot101@debian.org>
2500
2501         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2502         with type v of an instance of dbus.Variant(foo, type='x') caused
2503         it to be boxed twice before sending over the bus.
2504
2505         * python/dbus_bindings.pyx, python/service.py,
2506         test/python/test-client.py: Update the constants for the new
2507         request_name flags, and update comments/test cases now that queueing
2508         is the default action.
2509
2510 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2511
2512         * configure.in:
2513         - Change version to 0.60 for impending release
2514         - upped the sonames because of ABI and API breakage
2515
2516 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2517
2518         * configure.in: Add test/name-test/Makefile to the generated
2519         Makefile list
2520
2521         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2522         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2523         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2524         not to queue an ower if it can't be the primary owner
2525
2526         * bus/bus.h: Add new internal BusOwner struct
2527
2528         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2529         to bus_registry_ensure and don't set the prohibit_replacement flag
2530         since they are now set per BusOwner and not per name.
2531         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2532         that returns the list of connections in a name's connection queue
2533         
2534         * bus/services.c (struct BusService): remove prohibit_replacement field
2535         (struct BusOwner): new struct for keeping track of queued connections
2536         and their associated flags for the queue
2537         (struct BusRegistry): add a BusOwner memory pool
2538         (bus_registry_new): initialize the BusOwner memory pool
2539         (bus_registry_unref): free the BusOwner memory pool
2540         (_bus_service_find_owner_link): new internal method for
2541         searching the queue for a specific connection
2542         (bus_owner_set_flags): new method for adding setting the flags on a
2543         bus owner
2544         (bus_owner_new): new method that creates a BusOwner object from the
2545         pool and sets its flags
2546         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2547         (bus_registry_ensure): Add the flags parameter
2548         (bus_registry_acquire_service): Switch from using raw connections to
2549         using the BusOwner struct
2550         Add new state machine for dealing with the new set of flags
2551         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2552         cancel_ownership, free_ownership_cancel_data, 
2553         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2554         restore_ownership, free_ownership_restore_data, 
2555         add_restore_ownership_to_transaction): Switch to using BusOwner 
2556         instead of raw connections
2557         (bus_service_add_owner): Add flags parameter
2558         Switch to using BusOwner instead of raw connections
2559         Add state machine for dealing with the new set of flags
2560         (bus_service_swap_owner): Swaps the first and second owners in the
2561         queue.  Used to make sure proper signals are sent when a service looses 
2562         or gains primary ownership.  We never insert an owner at the top of the
2563         queue.  Instead we insert it in the second position and then swap.
2564         (bus_service_remove_owner): Remove the owner from the queue sending
2565         out the NameLost and NameOwnerChanged signals if the we were the 
2566         primary owner
2567         (bus_service_get_primary_owners_connection): New method that extracts
2568         the connection from the primary owner
2569         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2570         connection
2571         (bus_service_get_allow_replacement): Changed from the old 
2572         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2573         primary owner and returns if it can be replaced or not
2574         (bus_service_set_prohibit_replacement): removed
2575         (bus_service_has_owner): returns TRUE if and owner with
2576         the specified connection exists in the queue
2577         
2578         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2579         method that only compiles if tests are enabled.  Allows us to get the 
2580         unique name of a connection so we can check it against the queue when
2581         doing regression tests
2582
2583         * bus/activation.c (bus_activation_send_pending_auto_activate),
2584         bus/dispatch.c (bus_dispatch),  
2585         bus/driver.c (bus_driver_handle_get_service_owner, 
2586         bus_driver_handle_get_connection_unix_user, 
2587         bus_driver_handle_get_connection_unix_process_id,
2588         bus_driver_handle_get_connection_selinux_security_context),
2589         bus/signals.c (connection_is_primary_owner): 
2590         use bus_service_get_primary_owners_connection instead of
2591         bus_service_get_primary_owner
2592
2593         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2594         _dbus_listen_unix_socket): Calculate the length of the socket
2595         path and use that instead of using a fixed length which was
2596         causing socket names to contain many trailing Nul bytes.
2597
2598         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2599         (dbus_g_method_get_sender): New method for extracting the sender 
2600         from a DBusGMethodInvocation
2601         (dbus_g_method_return_get_reply): changed name to 
2602         dbus_g_method_get_reply
2603         (dbus_g_method_return_send_reply): changed name to
2604         dbus_g_method_send reply
2605
2606         * doc/dbus-specification.xml: New docs that describe how the new
2607         queueing system works and talks about the changes to the how
2608         we specify socket names
2609
2610         * glib/examples/example-service.c, 
2611         glib/examples/example-signal-emitter.c,
2612         glib/examples/statemachine/statemachine-server.c:
2613         Changed the RequestName flags to the new system
2614
2615         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2616         regression test suite for testing various states of the new
2617         queueing system
2618         
2619 2005-11-15  Robert McQueen  <robot101@debian.org>
2620
2621         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2622         Taylor to add two methods, dbus_g_method_return_get_reply and
2623         dbus_g_method_return_send_reply, to allow you to get the reply
2624         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2625         and send it. The GLib bindings can't marshal a return value of
2626         something like a(s) if the array is empty - ultimately they should be
2627         made to heed the signature of the out arguments as the Python bindings
2628         now can, but this is a workable interim solution which might have
2629         other applications.
2630
2631 2005-11-15  Robert McQueen  <robot101@debian.org>
2632
2633         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2634         method to org.freedesktop.DBus to release a bus name or give up
2635         waiting in the queue for it.
2636
2637         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2638         dbus_bus_release_name method to send the ReleaseName method calls.
2639         Add constants for the return values to dbus/dbus-shared.h.
2640
2641         * doc/dbus-specification.xml: Document the new ReleaseName method
2642         in the specification.
2643
2644         * python/dbus_bindings.pyx: Add a low-level python binding for the
2645         release name method.
2646
2647         * python/exceptions.py, python/service.py: Make freeing BusName
2648         objects release the name. Add a NameExistsException, and fix a
2649         bug with creating UnknownMethodException.
2650
2651         * test/python/test-client.py: Add tests for freeing BusName
2652         objects causing names to be released.
2653
2654 2005-11-14  Robert McQueen  <robot101@debian.org>
2655
2656         * python/service.py: Include the traceback in the error reply when we
2657         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2658
2659 2005-11-14  David Zeuthen  <davidz@redhat.com>
2660
2661         Patch from Timo Hoenig <thoenig@suse.de>.
2662
2663         * bus/bus.c: I've recently investigated why the automatic reload
2664         of configuration files does not work as expected.
2665
2666         Currently, reloading configuration files does only work when
2667         running dbus-daemon with --nodaemon.  If we are running as daemon
2668         we're hitting a dnotify bug once we fork the process.
2669
2670         We're initializing the dnotify fds before calling fork().  Once
2671         the child process forked it does still have the fds (and they
2672         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2673         getting SIGIO as changes are made to the configuration files.
2674
2675         The attached patch moves the initialization of the dnotify fds to
2676         process_config_postinit().  This is safe for all current code
2677         paths and solves the dnotify disfunction.  If we're running
2678         dbus-daemon as daemon the fds for dnotify are now being
2679         initialized after fork() for the child process.
2680
2681         * configure.in: The current configure.in check for dnotify probes
2682         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2683         match for 'xlinux', too. Additionally I have adapted the configure
2684         option's style to match with the others.
2685
2686 2005-11-14  Robert McQueen  <robot101@debian.org>
2687
2688         * python/decorators.py, python/service.py: Add a new argument to the
2689         dbus.service.method decorator called sender_keyword, which if set,
2690         specifies the name of an argument which will be provided the bus
2691         name of the method caller.
2692
2693         * test/python/test-client.py, test/python/test-service.py: Add a
2694         method and test to check the sender_keyword functionality.
2695
2696 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2697
2698         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2699         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2700         Simons <sjoerd at luon.net>)
2701
2702         * AUTHORS: Add Robert McQueen for his work on the Python
2703         Bindings and other parts of D-Bus
2704
2705 2005-11-07  Robert McQueen  <robot101@debian.org>
2706
2707         * python/decorators.py: Change emit_signal function to use the
2708         signature annotation of the signal when marhsalling the arguments from
2709         the service. Fix a bug where the code checking signature length
2710         against argument length referenced the wrong variable.
2711
2712         * python/introspect_parser.py: Avoid adding the type signature of
2713         signal arguments to any methods which occur after them in the
2714         introspection data (!) by making the parser a little more careful
2715         about its current state.
2716
2717         * python/service.py: Remove debug prints from last commit (again :D).
2718
2719         * test/python/test-client.py, test/python/test-service.py: Add test
2720         signals with signature decorators to test the strict marshalling code
2721         gives errors at the right time. Could do with checking the signals
2722         actually get emitted too, given that the test does nothing with
2723         signals at the moment...
2724
2725 2005-11-07  Robert McQueen  <robot101@debian.org>
2726
2727         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2728         instances to stop madness of creating new instances representing
2729         the same bus connection all the time, rendering any tracking of
2730         match rules and bus names quite meaningless. Caught a bug where
2731         the private argument to SessionBus() and friends was being passed
2732         in as use_default_mainloop by mistake. Still some problems with
2733         multiple dbus_binding.Connection instances representing the same
2734         low-level connection (eg when you use both SessionBus() and
2735         StarterBus() in same process), but it's a lot better now than it
2736         was.
2737
2738         * python/dbus_bindings.pyx: Add constants with the return values
2739         for bus_request_name().
2740
2741         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2742         and retrieve the same instances for the same name, so deletion can be
2743         done with refcounting. Also now throws some kind of error if you
2744         don't actually get the name you requested, unlike previously...
2745
2746         * test/python/test-client.py: Add tests for instance caching of buses
2747         and bus name objects.
2748
2749 2005-11-04  Robert McQueen  <robot101@debian.org>
2750
2751         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2752         marshalling of boolean values. Add some booleans to the values in
2753         the test client.
2754
2755         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2756         argument to the dbus.service.method decorator, which allows you to
2757         name arguments to take two callback functions for replying with
2758         return values or an exception.
2759
2760         * test/python/test-client.py, test/python/test-service.py: Add test
2761         case using asynchronous method reply functions, both return values and
2762         errors, and from within both the function itself and from a mainloop
2763         callback.
2764
2765         * python/decorators.py, python/service.py: Perform checking that the
2766         number of method/signal arguments matches the number of types in the
2767         signature at class loading time, not when you first introspect the
2768         class.
2769
2770         * python/service.py: Remove debug print left by the last commit.
2771
2772 2005-11-03  Robert McQueen  <robot101@debian.org>
2773
2774         * python/service.py: Heavy refactoring of method invocation, with
2775         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2776         in favour of a new _message_cb that uses seperate functions for
2777         looking up the method to call, marshalling the return values, and
2778         sending exceptions as errors, and is easier to follow as a
2779         consequence.  Fixes some corner cases about returning things that
2780         don't match your declared out_signature, allows exceptions to define
2781         _dbus_error_name and have it be sent over the bus as the error name,
2782         and paves the way for cool stuff like heeding the message no reply
2783         flag, asynchronous method implementations, informing the method of the
2784         sender, and including backtraces in the error messages.
2785
2786         * test/python/test-client.py: Catch and print exceptions thrown in the
2787         async callback tests, rather than passing them to the low-level
2788         bindings to be ignored in a noisy and frustrating manner.
2789
2790 2005-11-03  Robert McQueen  <robot101@debian.org>
2791
2792         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2793         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2794         tweak others to be consistent.
2795
2796         * test/python/test-client.py: Tweak output of testInheritance.
2797
2798 2005-10-29  Robert McQueen  <robot101@debian.org>
2799
2800         * python/service.py: Major changes to allow multiple inheritance
2801         from classes that define D-Bus interfaces:
2802         
2803          1. Create a new Interface class which is the parent class of
2804             Object, and make the ObjectType metaclass into InterfaceType.
2805         
2806          2. Patch written with Rob Taylor to replace use of method_vtable
2807             with code that walks the class's __MRO__ (method resolution order)
2808             to behave like Python does when invoking methods and allow
2809             overriding as you'd expect. Code is quite tricky because
2810             we have to find two methods, the one to invoke which has the
2811             right name and isn't decorated with the /wrong/ interface,
2812             and the one to pick up the signatures from which is decorated
2813             with the right interface.
2814         
2815             The same caveats apply as to normal multiple inheritance -
2816             this has undefined behaviour if you try and inherit from two
2817             classes that define a method with the same name but are
2818             decorated with different interfaces. You should decorate
2819             your overriding method with the interface you want.
2820         
2821          3. Replace grungy introspection XML generation code in the metaclass
2822             with dictionaries that cope correctly with multiple inheritance
2823             and the overriding of methods. This also uses the signature
2824             decorations to provide correct introspection data, including
2825             the debut appearance of the types of your return values. :D
2826
2827         * test/python/test-client.py, test/python/test-service.py: Add a test
2828         case to try invoking an method that overrides one inherited from a
2829         D-Bus interface class.
2830
2831 2005-10-29  Robert McQueen  <robot101@debian.org>
2832
2833         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2834         Add checking for the end of struct character when marshalling a
2835         struct in MessageIter.append_strict.
2836
2837         * python/examples/example-service.py,
2838         python/examples/gconf-proxy-service.py,
2839         python/examples/gconf-proxy-service2.py: Update to use gobject
2840         mainloop directly rather than appearing to depend on gtk.
2841
2842         * python/test/test-client.py, python/test/test-server.py: Remove
2843         obsolete and broken test scripts for old bindings. We have up to date
2844         and working tests in test/python/.
2845
2846 2005-10-29  Robert McQueen  <robot101@debian.org>
2847
2848         * python/decorators.py: Add optional arguments to the method and
2849         signal decorators to allow you to specify the signature of arguments
2850         and return values. Preserve the doc strings of signal functions in the
2851         decorated version, for pydoc and friends.
2852
2853         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2854         parse_signature_block function with an iterable dbus.Signature()
2855         type. Fix a bug in MessageIter.append_strict where you could append
2856         anything by claiming it was a string.
2857
2858         * python/service.py: Use the out_signature decoration on methods to
2859         marshal return values, meaning you no longer require dbus.Array()
2860         or dbus.Dictionary() to indicate the type when returning empty
2861         arrays or dictionaries. Fix a bug where exceptions which are defined
2862         in __main__ are not turned into error replies.
2863
2864         * test/python/test-client.py, test/python/test-service.py: Add test
2865         for correct marshalling of return values according to out_signature.
2866         Fix a bug in the async call test where the error_handler is missing a
2867         self argument.
2868
2869 2005-10-29  Robert McQueen  <robot101@debian.org>
2870
2871         * glib/Makefile.am, glib/examples/Makefile.am,
2872         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2873         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2874
2875         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2876
2877         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2878         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2879         the command line.
2880
2881 2005-10-27  Ross Burton  <ross@openedhand.com>
2882
2883         * dbus/dbus-marshal-header.c:
2884         Remove dead code.
2885
2886         * glib/dbus-gobject.c:
2887         Stop compiler warning.
2888
2889 2005-10-25  Ross Burton  <ross@openedhand.com>
2890
2891         * dbus/dbus-auth.c:
2892         * dbus/dbus-server-unix.c:
2893         * dbus/dbus-transport-unix.c:
2894         * glib/dbus-gmain.c:
2895         * glib/dbus-gobject.c:
2896         Add some const keywords.
2897
2898 2005-10-25  Ross Burton  <ross@openedhand.com>
2899
2900         * doc/dbus-specification.xml:
2901         Document the NoReply annotation.
2902
2903         * glib/dbus-binding-tool-glib.h:
2904         * glib/dbus-binding-tool-glib.c:
2905         Respect the NoReply annotation.
2906
2907 2005-10-24  Robert McQueen <robot101@debian.org>
2908
2909         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2910         derive from unicode instead of str, and encode/decode UTF-8 when
2911         marshalling/unmarshalling bus messages
2912
2913         * python/introspect_parser.py: encode introspection data as UTF-8
2914         before passing the buffer into libxml2
2915
2916         * test/python/test-client.py: add unicode test strings
2917
2918         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2919         ignore generated python test files
2920
2921 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2922
2923         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2924         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2925         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2926
2927         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2928         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2929         when constructing struct signatures
2930
2931         * python/_dbus.py (Bus): handle private connections using the
2932         private keyword in the constructor. defaults to private=False
2933         (Bus::close): new method to close a connection to the bus
2934
2935         * python/dbus_bindings.pyx (Connection::close): renamed method
2936         was previously called disconnect
2937         (bus_get): now supports getting a private connection
2938
2939         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2940         keyword is set to True.  if it is, execute the method without waiting
2941         for a reply
2942         (ProxyObject::_introspect_execute_queue): new method for executing
2943         all the pending methods that were waiting for the introspect to
2944         finish.  this is called when introspect either succeeds or fails
2945         (ProxyObject::_introspect_error_handler): call queued methods
2946
2947 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2948
2949         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2950         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2951
2952         * python/service.py (Object::_message_cb): handle exceptions correctly
2953         by sending them over the wire to the calling app.  This makes sure
2954         the client returns immediately instead of waiting the 15 seconds to
2955         timeout.
2956
2957         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2958         Add a test to benchmark how long it takes to introspect a service and 
2959         call a method which returns a large element (pretty fast)
2960
2961         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2962         method which pushes a lot of data
2963
2964 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2965
2966         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2967         reclaim memory outside of the loop and use del istead of just setting
2968         the key to None
2969
2970 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2971
2972         * python/service.py (ObjectType::_reflect_on_signal): Always close
2973         signal tag even when there are no arguments
2974
2975 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2976
2977         * configure.in: Set mono, mono-docs and Qt3 to default
2978         to no instead of auto when building.  These bindings do not
2979         have full time maintainers and will not be supported for the
2980         1.0 release.
2981
2982 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2983
2984         patches from Michael Krivoruchko <misha at sun.com>: 
2985         
2986         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2987         _dbus_connection_message_sent, 
2988         _dbus_connection_send_preallocated_unlocked_no_update, 
2989         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2990         is NULL when calling _dbus_verbose
2991
2992         * configure.in: check for functions getpeerucred and getpeereid
2993
2994         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2995         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2996         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2997         Patch was only tested on Solaris 10 x86 so it might be issues
2998         with other platforms (i.e. BSDs and MacOSX)
2999         
3000
3001 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3002
3003         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3004         instead of marshal basic so we can handle recursive types in a variant
3005
3006         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3007         in variants
3008
3009         * test/glib/test-service-glib.c, test-service-glib.xml
3010         (my_object_echo_variant [EchoVariant], 
3011         my_object_process_variant_of_array_of_ints123
3012         [ProcessVariantOfArrayOfInts123]): 
3013         Add two test methods
3014
3015         * python/introspect_parser.py: New module for parsing introspect
3016         data.
3017
3018         * python/dbus_bindings.pyx:
3019         (various places): when throwing errors fix to use errormsg instead 
3020         of message local variable because Pyrex can get confused with other 
3021         message variables (initial patch by Robert McQueen 
3022         <robert.mcqueen at collabora.co.uk>)
3023         (MessageIter::parse_signature_block): new method for getting the next
3024         block in a signiture.
3025         (MessageIter::append_strict): new method for appending values strictly
3026         using the passed in signature instead of guessing at the type
3027         (MessageItter:: append_dict, append_struct, append_array): use 
3028         signatures to marshal children if the signature is available
3029         
3030         * python/exceptions.py (IntrospectionParserException): new exception
3031
3032         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3033         introspected signatures if available, else we fall back to the
3034         old way of doing things.
3035         (ProxyObject::_introspect_reply_handler ): parse introspection data
3036         
3037         * python/service.py (ObjectType::_reflect_on_method): Properly
3038         terminate <method> if there are no args in the reflection data
3039
3040         * test/python/test-client.py: add tests for talking with the GLib
3041         test server.  This gives us better coverage for introspection since
3042         python to python will always generate arguments as variants.  It also
3043         allows us to test the robustness of the GLib bindings and interlanguage
3044         communications.
3045
3046         
3047 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3048
3049         * bus/driver.c (bus_driver_handle_introspect): Add signals
3050         to the introspect data. (patch from Daniel P. Berrange 
3051         <dan at berrange.com>)
3052
3053         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3054         
3055         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3056         _dbus_connection_run_builtin_filters): Changed these to
3057         be unlock_no_update functions and call 
3058         _dbus_connection_send_unlocked_no_update instead of
3059         dbus_connection_send to avoid locking errors.
3060         
3061         * doc/TODO: Removed the make Ping test TODO
3062         
3063 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3064
3065         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3066         We now copy the message from a DBusError and then free 
3067         the error object befor throwing the error
3068
3069         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3070         DBusBindingOutputMode enum which was causing a warning.
3071         #include <time.h> so using time_t is explicitly defined
3072
3073 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3074
3075         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3076         - dbus/dbus-bus.c
3077         (internal_bus_get): new method that take over the heavy lifting
3078         of dbus_bus_get and adds the ability to get a private connection
3079         to the bus
3080         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3081         interface as in previous versions
3082         (dbus_bus_get_private): new method that is a wrapper to 
3083         internal_bus_get to get a private connection to the bus
3084
3085         - dbus/dbus-bus.h
3086         (dbus_bus_get_private): add as a public libdbus interface
3087
3088         - dbus-1.pc.in: output system_bus_default_address and 
3089         sysconfdir variables so apps can use them when compiling
3090
3091 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3092         * dbus/qt: New Qt bindings
3093
3094 2005-09-12  Waldo Bastian  <bastian@kde.org>
3095
3096         * dbus/dbus-marshal-validate.c,
3097         doc/dbus-specification.xml, test/Makefile.am,
3098         test/test-names.c: allow hyphens in bus names.
3099
3100 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3101
3102         * test/data/auth/fallback.auth-script: we don't
3103         retry the EXTERNAL method when we know its going
3104         to fail anymore.
3105
3106 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3107
3108         * dbus/dbus-connection-internal.h: rename
3109         (add|remove|toggle)_(watch|timeout) to unlocked()
3110         
3111         * dbus/dbus-connection.c: ditto.
3112         
3113         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3114         Update some callers for the renaming.
3115
3116 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3117
3118         * dbus/dbus-auth.c: (record_mechanisms): don't
3119         retry the first auth mechanism because we know
3120         we're just going to get rejected again.
3121         
3122         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3123         Fix thinko ... and what a nasty little bugger to
3124         track down you were ...
3125
3126         * dbus/dbus-connection.c:
3127         (_dbus_connection_add_watch),
3128         (_dbus_connection_remove_watch): add note about
3129         these needing the connection to be locked.
3130         (_dbus_connection_get_dispatch_status_unlocked):
3131         set status to DATA_REMAINS when we queue the
3132         disconnected message.
3133         
3134         * bus/dispatch.c:
3135         (bus_dispatch): fix warning.
3136         (check_existent_service_no_auto_start):
3137         Expect ChildSignaled error too.
3138         (check_existent_hello_from_self): fix another
3139         couple of warnings.
3140         
3141 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3142
3143         Patches from James Willcox <snorp@snorp.net>
3144
3145         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3146
3147         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3148         support array "out" parameters.
3149
3150         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3151         for 16-bit int support.
3152
3153 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3154
3155         * Released 0.50
3156
3157         * Patch from Steve Grubb:
3158         - bus/activation.c (bus_activation_service_reload_test): clean up
3159         some indentation
3160         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3161         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3162         buffer overflows in the test suite.  This is non critical because
3163         it can not be exploited and this code is only run when doing a 
3164         make check.
3165
3166         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3167         - configure.in: Don't check and link against kdecore, only qt headers
3168         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3169         - gcj/org/freedesktop/dbus/Makefile.am:
3170         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3171         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3172         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3173         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3174         - tools/Makefile.am: Add platform extentions to binaries 
3175         (i.e. .exe on windows)
3176
3177         * configure.in: 
3178         - Make it so if no suitable version of python is found we only 
3179         disable building python instead of exiting the configure script
3180         - Require version 2.4 of glib for glib bindings
3181         - Up version to 0.50
3182
3183         * python/__init__.py: Sync version with libdbus to (0,50,0)
3184         
3185 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3186
3187         * dbus/dbus-object-tree.c (find_subtree_recurse):
3188         a couple of optimizations (bug #710):
3189         - do a binary search in the tree
3190         - insert a new child at the right place directly, no need for
3191           qsort anymore
3192         - do the "double alloc" thing when allocating children
3193
3194 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3195
3196         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3197
3198         * python/dbus_bindings.pyx: Memory management foo
3199         (global): remove hacky _user_data_references global list
3200         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3201         tuples. Unref user_data
3202         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3203         (Connection::__del__): Remove and replace with __dealloc__ method
3204         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3205         to keep tuple from being deallocated instead of the global var hack
3206         (Connection::register_object_path): Stuff user_data into a tuple.
3207         Use Py_INCREF to keep tuple from being deallocated instead of the 
3208         global var hack
3209         (Connection::register_fallback): Stuff user_data into a tuple.
3210         Use Py_INCREF to keep tuple from being deallocated instead of the 
3211         global var hack
3212         (GIL_safe_pending_call_notification): Don't unref the message
3213         because it gets unreffed when going out of scope.  Py_XDECREF
3214         the user_data
3215         (PendingCall::__del__): Remove and replace with __dealloc__ method
3216         (PendingCall::set_notify): ref the pending call because we will
3217         need it to stick around for when the notify callback gets called
3218         (Message::__del__): Remove and replace with __dealloc__ method
3219
3220         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3221         gthreads_init to match up with the dbus call
3222
3223         * python/glib.py (init_threads): Changed to threads_init to match
3224         up with gobject.threads_init().  init_threads is kept for backwards
3225         compat but will most likely be deprecated in the future
3226
3227         * test/python/test-client.py: 
3228         - revamp to use Python's unittest functionality
3229         - add async call tests
3230         - setup threads in glib and dbus so we make sure locks are working
3231         
3232 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3233
3234         * python/dbus_bindings.pyx 
3235         (_pending_call_notification, cunregister_function_handler, 
3236         cmessage_function_handler): All callback functions have been rearranged 
3237         to workaround a bug in Pyrex when working with the GIL which is Python's 
3238         global lock when dealing with threads.  They have been split into
3239         a wrapper function (which assumes the name of the old function) and
3240         a _GIL_safe_<function name> function which contains the functionality
3241         of the old function.  This ensures that Pyrex does not write code
3242         the lock is released.
3243         
3244
3245 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3246
3247         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3248         GIL global lock when calling back into Python
3249
3250 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3251
3252         * Release 0.36.2
3253
3254         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3255
3256         * bus/policy.c (bus_policy_allow_user): change default "user is
3257         allowed" to be "user has same uid as the bus itself"; any
3258         allow/deny rules will override.
3259
3260         * bus/session.conf.in: don't allow all users, since now by default
3261         the user that ran the bus can connect.
3262
3263 2005-08-26  Colin Walters  <walters@verbum.org>
3264
3265         * tools/dbus-print-message.c (print_message): Flush stdout
3266         after printing a message, so that redirecting to a file, then
3267         hitting Ctrl-C works.
3268
3269 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3270
3271         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3272         (EmptyMessage): new class that subclasses Message.  This is a workaround
3273         to a Pyrex bug that fails to call __del__ when the Message object goes out
3274         of scope.  For some reason subclassing Message fixes this bug
3275         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3276         - s/Message(_create=0)/EmptyMessage everywhere else
3277         
3278         * test/python/test-{server|client}.py: add the python/.libs directory
3279         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3280         get picked up from the system
3281
3282 2005-08-25  Colin Walters  <walters@verbum.org>
3283
3284         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3285         to Ryan Lortie for the suggestion.
3286
3287 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3288
3289         * test/python: Add python regression test
3290
3291         * configure.in: Add test/python/Makefile
3292
3293         * test/Makefile.am: Add the python directory to SUBDIRS
3294
3295 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3296
3297         * Release 0.36.1
3298
3299         * python/_dbus.py: 
3300         (Interface::connect_to_signal): propigate keywords for match on args
3301         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3302
3303         * python/proxies.py (ProxyObject::connect_to_signal):
3304         propigate keywords for match on args
3305
3306         * Makefile.am: point everything to pyexecdir since python borks
3307         on multilib
3308
3309 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3310
3311         * Release 0.36
3312
3313 2005-08-23  Colin Walters  <walters@verbum.org>
3314
3315         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3316
3317 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3318
3319         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3320         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3321         of defining DBusConnection ourselves.
3322
3323 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3324
3325         * python/dbus.pth: New path file to fix up problems when installing
3326         c libraries to lib64 and python files to lib.
3327
3328         * python/Makefile.am: install dbus.pth in the correct spot
3329
3330 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3331         * ChangeLog: clean up my last entry a bit
3332
3333         * doc/introspect.xsl: New stylesheet for converting introspection data
3334         into browser renderable xhtml. Contributed by Lennart Poettering.
3335
3336         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3337         Poettering.
3338
3339         * doc/dbus-tutorial.xml: 
3340         - Add Colin Walter to the Authors section for authoring the GLib
3341         section
3342         - Add descriptions of the new signature and type functionality
3343         in the Python complex type mapping section
3344         - Add a sidenote on the new args matching functionality in 
3345         the Python bindings
3346         - Fixed up some of the examples to use the gobject.MainLoop
3347         instead of gtk.main
3348         
3349         * python/_dbus.py:
3350         (Bus::_create_args_dict): New. Converts a hash of arg matches
3351         to a more useable format
3352         (Bus::add_signal_receiver): add a **keywords parameter for catching
3353         arg match parameters
3354         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3355         arg match parameters
3356         
3357         * python/matchrules.py:
3358         (MatchTree::exec_matches): Check for arg matches
3359         (SignalMatchRule::add_args_match): New method
3360         (SignalMatchRule::execute): Added args_list parameter as an optimization
3361         so we don't have to marshal the args more than once
3362         (SignalMatchRule::match_args_from_list): New method that checks to see
3363         if the rule's arg matches match an argument list.  Only arguments
3364         set in the rule are checked.
3365         (SignalMatchRule::match_args_from_rule): New method that checks to see
3366         if the rule's arg matches match another rule's.  All args have to match
3367         in order for this method to return true.  If either rule has more args
3368         then it is not a match.
3369         (SignalMatchRule::is_match): Add args match
3370         (SignalMatchRule::repr): Add args to the final output if they exist
3371
3372 2005-08-17  Ross Burton  <ross@burtonini.com>
3373
3374         * glib/dbus-gproxy.c:
3375         (dbus_g_proxy_call_no_reply): unref the message once sent.
3376         (dbus_g_proxy_call): protect against NULL proxy.
3377
3378 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3379
3380         * python/__init__.py: Version updated (0, 43, 0)
3381         
3382         * python/dbus_bindings.pyx: 
3383         - Fixed type objects to have self passed into __init__
3384         - Added the Variant type
3385         - Add the ability to specify types or signatures for Array, Variant 
3386         and Dictionary
3387         (Connection::send_with_reply_handlers): return a PendingCall object
3388         (_pending_call_notification): handle the case when an error is returned 
3389         without an error message in the body
3390         (MessageIter::get_boolean): return True or False instead of an integer
3391         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3392         and add checks for objects with embeded signatures or types (Array, 
3393         Variant and Dictionary)
3394         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3395         (MessageIter::append_dict): handle embeded types or signatures
3396         (MessageIter::append_array): handle embeded types or signatures
3397         (MessageIter::append_variant): new method
3398         
3399         * python/proxies.py:
3400         (DeferedMethod): New. Dummy executable object used when queuing calls 
3401         blocking on introspection data
3402         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3403         or shorter timeouts for method calls
3404         (ProxyObject): Add first pass at an introspection state machine
3405         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3406         introspection. 
3407         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3408         the usual mechanisms for sending messages.  This is to avoid a deadlock
3409         where the Intospect call would be queued waiting for the Introspect 
3410         call to finish ;-)
3411         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3412         when introspection returns with no error
3413         (ProxyObject::_introspect_error_handler): New.  This method is called 
3414         when introspection encounters an error
3415         (ProxyObject::__getattr__): Code to handle different introspection 
3416         states.  Queue async calls or block blocking calls if we are 
3417         introspecting.  Pass through as normal if we are not or are done with 
3418         introspecting.
3419         
3420         * python/service.py: Import signal and method from decorators.py
3421
3422         * python/types.py: Add Variant type
3423
3424 2005-08-16  Colin Walters  <walters@verbum.org>
3425
3426         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3427         DBusError message is NULL.
3428
3429 2005-08-09  Havoc Pennington  <hp@redhat.com>
3430
3431         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3432         malloc'd copy of the name parameter
3433
3434 2005-08-09  Havoc Pennington  <hp@redhat.com>
3435
3436         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3437         warning if the reply serial is set to 0
3438
3439 2005-08-04  Colin Walters  <walters@verbum.org>
3440
3441         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3442         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3443         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3444         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3445         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3446         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3447         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3448         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3449         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3450         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3451         
3452         Prefix name with _ to ensure they're not exported.  All callers
3453         updated.
3454
3455         * glib/dbus-gvalue.c (typecode_to_gtype)
3456         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3457         (signature_iter_to_g_type_dict)
3458         (signature_iter_to_g_type_array)
3459         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3460         (dbus_gtypes_from_arg_signature):
3461         Move to dbus-gsignature.c.
3462
3463         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3464         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3465         (dbus_binding_tool_output_glib_client): Ditto.
3466
3467         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3468         and dbus-gsignature.h
3469
3470         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3471         unused variable.
3472
3473 2005-08-03  Colin Walters  <walters@verbum.org>
3474
3475         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3476         catch any incompatible changes accidentally made.
3477
3478 2005-08-03  Havoc Pennington  <hp@redhat.com>
3479
3480         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3481         typo, from Julien Puydt
3482
3483         * bus/connection.c (bus_connection_disconnected): we were always
3484         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3485
3486 2005-08-01  Colin Walters  <walters@verbum.org>
3487
3488         Patch from Joe Markus Clarke:   
3489         
3490         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3491         use-after-free.
3492
3493 2005-08-01  Colin Walters  <walters@verbum.org>
3494         
3495         Patch from Joe Markus Clarke:   
3496         
3497         * tools/dbus-send.c (main): 
3498         
3499         Don't use C99 style initializers (bug #3933).
3500         
3501 2005-08-01  Colin Walters  <walters@verbum.org>
3502
3503         Patch from Joe Markus Clarke:   
3504
3505         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3506         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3507         * glib/dbus-gobject.c (write_interface):
3508
3509         Don't use C99 style initializers (bug #3933).
3510
3511 2005-07-31  Havoc Pennington  <hp@redhat.com>
3512
3513         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3514         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3515
3516 2005-07-30  Havoc Pennington  <hp@redhat.com>
3517
3518         * fix a bunch of Doxygen warnings and mistakes
3519
3520 2005-07-30  Havoc Pennington  <hp@redhat.com>
3521
3522         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3523         DBUS_BUILD_TESTS since it's now used in production code
3524
3525 2005-07-29  Havoc Pennington  <hp@redhat.com>
3526
3527         * test/glib/test-profile.c (write_junk): initialize the junk
3528         buffer so valgrind doesn't have a breakdown
3529
3530 2005-07-29  Havoc Pennington  <hp@redhat.com>
3531
3532         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3533         (match_rule_matches): remove unused arg
3534         (test_matching): add tests for match_rule_matches()
3535
3536         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3537         do arg0='foo' arg5='bar' in the match rules
3538         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3539
3540         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3541
3542 2005-07-29  Ross Burton  <ross@openedhand.com>
3543
3544         * dbus/dbus-connection.c:
3545         Don't create a DBusCondVar which is never used.
3546
3547 2005-07-27  Ross Burton  <ross@openedhand.com>
3548
3549         * dbus/dbus-message.c:
3550         Reduce the size of the maximum cached message to 10K.
3551
3552 2005-07-25  Ross Burton  <ross@openedhand.com>
3553
3554         * glib/dbus-gproxy.c:
3555         Remove matches when all proxies are unregistered.
3556
3557 2005-07-24  Colin Walters  <walters@verbum.org>
3558
3559         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3560         typedata; recursive arrays won't have it.
3561
3562         * test/glib/test-dbus-glib.c:
3563         * test/glib/test-service-glib.c:
3564         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3565         
3566 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3567
3568         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3569         proxies.py, service.py: Cleanup of code after running it through the
3570         pyflakes code checker mostly dealing with undefined names.  
3571         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3572
3573 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3574
3575         * NEWS: Update to 0.35.2
3576
3577 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3578
3579         * python/_dbus.py: Remove import of the dbus.services
3580         module as it no longer exists (patch from Dimitur Kirov)
3581
3582         * python/service.py (Object::__init__): Fixed typo
3583         s/name/bus_name (patch from Dimitur Kirov)
3584
3585         * python/examples/example-signal-emitter.py: import dbus.glib
3586         to get the main loop and use glib mainloop instead of gtk so
3587         X doesn't have to be running.
3588
3589         * python/examples/example-signal-recipient.py: import dbus.glib
3590         to get the main loop and use glib mainloop instead of gtk so
3591         X doesn't have to be running. Import the decorators module
3592         directly.
3593
3594         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3595         didn't pick up on but are needed to build
3596
3597         * configure.in: upped version to 0.35.2
3598
3599         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3600         added Colin Walters' SELinux API rename patch from head 
3601         s/unix sercurity context/selinux security context/
3602
3603 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3604
3605         * python/Makefile.am: dbus_binding.pxd.in should be included 
3606         in EXTRA_DIST not dbus_binding.pxd
3607         fix up $(srcdir) hopefully for the last time
3608
3609         * NEWS: Update to 0.35.1
3610
3611 2005-07-16  Colin Walters  <walters@verbum.org>
3612
3613         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3614         from bus_driver_handle_get_connection_unix_security_context.  Update for
3615         error usage.
3616         (message_handlers): Update for renames.
3617
3618         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3619         _dbus_string_init failure correctly.
3620         (bus_selinux_append_context): Convert SID to context.  Append it
3621         as a byte array.
3622         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3623         hasn't been called.
3624
3625         * bus/selinux.h: Update prototype.
3626
3627         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3628         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3629
3630 2005-07-15  Colin Walters  <walters@verbum.org>
3631
3632         * doc/TODO: Add note about convenience wrappers.
3633
3634 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3635
3636         * NEWS: Update to 0.35
3637
3638 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3639
3640         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3641         so distcheck doesn't fail
3642
3643         * glib/examples/Makefile.am: Add example-service.xml and 
3644         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3645
3646         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3647         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3648
3649         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3650         compiler looks in the right places during distcheck
3651
3652 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3653
3654         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3655         to fail
3656
3657 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3658
3659         * python/examples/example-service.py,
3660         python/examples/example-signal-emitter.py: Fixed up examples
3661         for API changes
3662
3663 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3664
3665         * python/__init__.py: Upped to version (0,42,0) because of
3666         the API change
3667
3668 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3669
3670         * ChangeLog: fix date in last entry
3671
3672         * configure.in, bus/system.conf.in: add the ability to configure 
3673         the system bus user at compiletime with the --with-dbus-user flag
3674         (patch from Kristof Vansant)
3675
3676 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3677
3678         * bus/dispatch.c, test/test-service.c: Add testcase
3679         for sending messages to oneself (TODO item).
3680
3681         * python/service.py (class Object): Swap ordering of bus_name 
3682         and object_path parameters to better support inheritance.
3683
3684         * doc/dbus-tutorial.xml: change Python docs to reflect change
3685         in parameter ordering and fix the inheritance section.
3686
3687         * doc/TODO: remove sending message to oneself TODO item
3688
3689 2005-07-15  Ross Burton  <ross@openedhand.com>
3690
3691         * glib/dbus-gproxy.c:
3692         Fix a leak when calling methods via the proxy.
3693
3694 2005-07-15  Colin Walters  <walters@verbum.org>
3695
3696         * bus/selinux.c (bus_selinux_append_context): Wrap in
3697         HAVE_SELINUX.
3698
3699 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3700
3701         * python/_dbus.py (Bus::remove_signal_receiver):
3702         don't add a callback to the match if none has been passed in
3703         
3704         * python/matchrules.py (SignalMatchTree::remove): if the rule
3705         being matched does not have a callback treat it as a wildcard
3706         fix matching logic
3707
3708         * doc/dbus-tutorial.xml: Add Python tutorial
3709
3710 2005-07-14  Colin Walters  <walters@verbum.org>
3711
3712         * bus/driver.c
3713         (bus_driver_handle_get_connection_unix_security_context): New function.
3714         (message_handlers): Add.
3715
3716         * bus/selinux.c (bus_selinux_append_context): New function; appends
3717         security context to message.
3718
3719         * bus/selinux.h: Prototype.
3720
3721         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3722
3723 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3724
3725         * bus/activation.c: clean up all tabs to be 8 spaces 
3726         (bus_activation_activate_service): make sure we clean up
3727         if activation fails
3728
3729         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3730         (check_shell_fail_service_auto_start): New function
3731         tests to make sure we get fail properly when trying to auto start a service
3732         with a faulty command line
3733         (check_shell_service_success_auto_start): New function tests to make sure
3734         auto started services get the arguments on the command line
3735
3736         * test/test-shell-service.c: Added service for testing auto-starting with 
3737         command line arguments
3738
3739         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3740         test/data/valid-service-files/debug-shell-echo-success.service.in:
3741         Added service files for testing auto-starting with command line arguments
3742
3743         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3744
3745 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3746
3747         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3748         
3749         * dbus/Makefile.am: added new files to build.
3750
3751         * bus/activation.c (bus_activation_activate_service): support
3752         activation commands with parameters.
3753
3754         * test/shell-test.c: added test program for the shell parsing
3755         code.
3756
3757 2005-07-13  David Zeuthen  <davidz@redhat.com>
3758
3759         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3760         64 bit signed and unsigned parameters
3761
3762 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3763
3764         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3765
3766         * python/service.py (class Name): renamed BusName to make it clearer
3767         what the object is for (a name on the bus)
3768
3769         * python/examples/example-service.py,
3770         python/examples/example-signal-emitter.py: change the Name object to
3771         BusName
3772
3773 2005-07-12  Colin Walters  <walters@verbum.org>
3774
3775         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3776
3777         * tools/dbus-launch.c: Include sys/select.h.
3778
3779 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3780         * python/dbus_bindings.pyx.in: removed
3781
3782         * python/dbus_bindings.pyx: Added.
3783         - Fixed some memleaks (patch from 
3784         Sean Meiners <sean.meiners@linspireinc.com>)
3785         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3786         own pxd file (Pyrex definition)
3787         - Broke out glib dependancies into its own pyx module
3788         
3789         * python/dbus_bindings.pdx: Added.
3790         - Defines C class Connection for exporting to other modules
3791
3792         * python/dbus_glib_bindings.pyx: Added.
3793         - New module to handle lowlevel dbus-glib mainloop integration
3794
3795         * python/glib.py: Added.
3796         - Registers the glib mainloop when you import this module
3797
3798         * python/services.py: Removed (renamed to service.py)
3799         
3800         * python/service.py: Added.
3801         - (class Server): renamed Name
3802
3803         * python/__init__.py: Bump ro version (0,41,0)
3804         -don't import the decorators or service module
3805         by default.  These now reside in the dbus.service namespace
3806
3807         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3808         setup function on creation 
3809
3810         * python/examples/example-service.py,
3811         python/examples/example-signal-emitter.py: update examples
3812
3813         * python/examples/gconf-proxy-service.py,
3814         python/examples/gconf-proxy-service2.py: TODO fix these up
3815
3816         * doc/TODO: Addition
3817         - Added a Python Bindings 1.0 section
3818         - added "Add match on args or match on details to match rules"
3819
3820
3821 2005-07-12  Colin Walters  <walters@verbum.org>
3822
3823         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3824         (statemachine-glue.h): 
3825         * glib/examples/Makefile.am (example-service-glue.h) 
3826         (example-signal-emitter-glue.h): 
3827         * glib/Makefile.am (dbus-glib-error-switch.h): 
3828         Add libtool --mode=execute so we use the built library instead
3829         of any installed one.
3830
3831 2005-07-11  Colin Walters  <walters@verbum.org>
3832
3833         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3834         (dbus_g_value_types_init): Remove assertion.
3835         (dbus_g_value_get_g_type, dbus_g_value_open)
3836         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3837         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3838         functions related to DBusGValue.  Now we marshal/demarshal
3839         structures as GValueArray.
3840         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3841         structures.
3842         (signature_iter_to_g_type_array): Don't call
3843         signature_iter_to_g_type_struct.
3844         (signature_iter_to_g_type_struct): Delete.
3845         (dbus_gvalue_to_signature): Delete.
3846         (dbus_gvalue_to_signature): New function with same name as other
3847         one; we can convert structures to signatures.
3848         (demarshal_valuearray): New function.
3849         (get_type_demarshaller): Use it.
3850         (demarshal_recurse): Delete.
3851         (marshal_proxy): New function.
3852         (marshal_map): Warn if we can't determine signature from type.
3853         (marshal_collection_ptrarray): Ditto.
3854         (marshal_collection_array): Ditto.
3855         (get_type_marshaller): Use marshal_valuearray.
3856         (marshal_recurse): Delete.
3857         (_dbus_gvalue_test): Add some tests.
3858
3859         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3860         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3861         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3862         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3863         (dbus_g_value_free): Remove prototypes.
3864
3865         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3866         G_TYPE_VALUE_ARRAY.
3867
3868         * glib/examples/example-service.c:
3869         * glib/examples/example-client.c: Implement GetTuple.
3870
3871         * test/glib/test-dbus-glib.c:
3872         * test/glib/test-service-glib.c:
3873         * test/glib/test-service-glib.xml: Add structure tests.
3874
3875 2005-07-10  Colin Walters  <walters@verbum.org>
3876
3877         * doc/TODO: Knock off some GLib items with this patch.
3878
3879         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3880         (_dbus_gvalue_signals_error): New functions.
3881
3882         * glib/dbus-gvalue-utils.h: Prototype them.
3883
3884         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3885         and change to not output const/retval flags for input args.  All
3886         callers updated.
3887         (invoke_object_method): Refactor to handle return values.  Add
3888         some more comments in various places.  Remove debug g_print.
3889
3890         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3891
3892         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3893         Handle G_TYPE_NONE.
3894         (compute_gsignature): New function; refactored from code from
3895         compute_marshaller and compute_marshaller_name.  Enhance to
3896         handle return values and async ops more cleanly.  Update for
3897         async ops returning NONE instead of BOOLEAN.
3898         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3899         and output appropriate string.
3900         (generate_glue): Handle return value annotation.  Also don't dump
3901         constness flag for input arguments.
3902
3903         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3904         files shared between installed library and utilities.
3905         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3906         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3907         binding tool can access gtype utility functions.
3908
3909         * test/glib/test-service-glib.c: 
3910         * test/glib/test-service-glib.xml: 
3911         * test/glib/test-dbus-glib.c: Add some tests for return values.
3912
3913 2005-07-09  Colin Walters  <walters@verbum.org>
3914
3915         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3916         argument if available, not method.
3917
3918         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3919         (invoke_object_method): First, remove some redundant
3920         GValues (object_value, error_value) in favor of working on
3921         array directly.  Second, rework constness to be less buggy.
3922         Now we iterate directly over the argument metadata instead
3923         of parallel iterating over output signature and metadata.
3924
3925         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3926
3927         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3928         annotation on input args.
3929         
3930 2005-07-09  Colin Walters  <walters@verbum.org>
3931
3932         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3933         Define.
3934
3935         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3936         annotation.
3937
3938         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3939         (method_dir_signature_from_object_info): Handle arg_iterate change.
3940         (write_interface): Ditto.
3941         (lookup_object_info): Don't barf if format_version is > 0.
3942         (invoke_object_method): Handle arg constness.
3943
3944         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3945         (arg_info_new): Create.
3946         (arg_info_unref): Destroy.
3947         (arg_info_get_annotations, arg_info_get_annotation) 
3948         (arg_info_add_annotation): New functions.
3949
3950         * glib/dbus-gidl.h: Prototype them.
3951
3952         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3953         args, disallow them in properties.
3954         (parse_annotation): Handle arg annotations.
3955
3956         * test/glib/test-service-glib.xml: 
3957         * test/glib/test-service-glib.c: Update to make some methods
3958         const.
3959
3960 2005-07-08  Colin Walters  <walters@verbum.org>
3961
3962         * test/glib/test-service-glib.xml: 
3963         * test/glib/test-service-glib.c:
3964         * test/glib/test-dbus-glib.c: Test a{sv}.
3965
3966         * glib/examples/statemachine/statemachine.c:
3967         * glib/examples/statemachine/statemachine-server.c:
3968         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3969         add progress bar, etc.
3970
3971         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3972         needed anymore due to generic array/map marshalling.
3973         (dbus_g_value_types_init): Don't register basic arrays or the
3974         string/string hash.
3975         (dbus_gtype_from_signature_iter): Don't try to recurse into
3976         variants.
3977         (dbus_gtype_to_signature): Check collection/map before type
3978         metadata.
3979         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3980         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3981         generic map creation/append functions instead of hash table
3982         specifically.
3983         (get_type_demarshaller): Handle maps.
3984         (demarshal_collection): Dispatch on collection type to either
3985         demarshal_collection_ptrarray or demarshal_collection_array.
3986         (get_type_marshaller): Handle maps.
3987         (marshal_collection): Dispatch collection type to either
3988         marshal_collection_ptrarray or marshal_collection_array.
3989         (_dbus_gvalue_test): New test.
3990
3991         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3992         (hash_free_from_gtype): Use it to free GValues.
3993         (hashtable_append): New function.
3994         (ptrarray_append): Fix prototype.
3995         (slist_append): Ditto.
3996         (_dbus_gvalue_utils_test): Extend tests.
3997
3998         * glib/dbus-gtype-specialized.c
3999         (dbus_g_type_specialized_init_append): Renamed from
4000         dbus_g_type_specialized_collection_init_append.  Remove const from
4001         value, since we steal it.
4002         (dbus_g_type_specialized_map_append): New function.
4003
4004         * glib/dbus-gtype-specialized.h: Update prototypes.
4005         Add DBusGTypeSpecializedMapAppendFunc.
4006
4007         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4008         _dbus_gvalue_test.
4009         
4010         * glib/dbus-gtest.h: Prototype it.
4011
4012 2005-07-08  Ross Burton  <ross@openedhand.com>
4013
4014         * dbus/dbus-glib.h:
4015         Add DBysGAsyncData for the async bindings.
4016
4017         * glib/dbus-binding-tool-glib.c:
4018         Re-enable the async bindings.
4019
4020         * test/glib/test-dbus-glib.c:
4021         Add a test for the generated async bindings.
4022
4023 2005-07-08  Colin Walters  <walters@verbum.org>
4024
4025         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4026         connection concept.
4027         
4028 2005-07-08  Colin Walters  <walters@verbum.org>
4029         
4030         * tools/Makefile.am: Kill of print-introspect in favor of using
4031         dbus-send --print-reply=literal.
4032
4033         * test/glib/test-service-glib.xml: 
4034         * test/glib/test-service-glib.c (my_object_get_objs): New test
4035         for "ao".
4036
4037         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4038         (main): Test GetObjs.
4039
4040         * glib/examples/statemachine/Makefile.am:
4041         * glib/examples/statemachine/sm-marshal.list:
4042         * glib/examples/statemachine/statemachine-client.c:
4043         * glib/examples/statemachine/statemachine-server.c:
4044         * glib/examples/statemachine/statemachine-server.xml:
4045         * glib/examples/statemachine/statemachine.c:
4046         * glib/examples/statemachine/statemachine.h:
4047         * glib/examples/statemachine/statemachine.xml:
4048
4049         New example.
4050
4051         * glib/examples/example-service.c (main): Move invocation
4052         of dbus_g_object_type_install_info earlier, to emphasize it
4053         should only be done once.
4054
4055         * glib/examples/example-signal-emitter.c (main): Ditto.
4056
4057         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4058
4059         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4060         (dbus_gvalue_marshal): Update prototypes.
4061
4062         * glib/dbus-gvalue.c: Update all marshalling functions to take
4063         const GValue instead of GValue.
4064         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4065         types.
4066         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4067         change.
4068         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4069         Return a newly-allocated string.
4070         (demarshal_proxy, demarshal_object_path, demarshal_object)
4071         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4072         we get the wrong types from message.
4073         (get_type_demarshaller): New function, extracted from
4074         dbus_gvalue_demarshal.
4075         (demarshal_collection): New function, demarshals generic
4076         collection.
4077         (dbus_gvalue_demarshal): Just invoke result of
4078         get_type_demarshaller.  Throw error if we don't have one.
4079         (marshal_garray_basic): Abort on OOM.
4080         (get_type_marshaller): New function, extracted from
4081         dbus_gvalue_marshal.
4082         (collection_marshal_iterator, marshal_collection): New functions;
4083         implements generic marshalling for an iteratable specialized
4084         collection.
4085         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4086
4087         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4088         G_TYPE_STRING.
4089         (ptrarray_value_from_gvalue): Ditto.
4090         (ptrarray_append, ptrarray_free): New functions.
4091         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4092         (slist_append, slist_end_append, slist_free): New functions.
4093         (dbus_g_type_specialized_builtins_init): Add append fuctions
4094         for GPtrArray and GSList.  Register GSList.
4095         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4096
4097         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4098         New.
4099         (dbus_g_type_specialized_collection_init_append)
4100         (dbus_g_type_specialized_collection_append)
4101         (dbus_g_type_specialized_collection_end_append): Prototype.
4102         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4103         end_append_func.
4104
4105         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4106         (dbus_g_type_specialized_collection_append) 
4107         (dbus_g_type_specialized_collection_end_append): New functions.
4108         (dbus_g_type_map_value_iterate): Take const GValue.
4109         (dbus_g_type_collection_value_iterate): Ditto.
4110
4111         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4112         _dbus_gvalue_utils_test.
4113         
4114         * glib/dbus-gtest.h: Prototype it.
4115
4116         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4117         using uninitialized owner_list.
4118         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4119         public API.
4120         (dbus_g_proxy_end_call_internal): Update to use error set
4121         from dbus_gvalue_demarshal instead of setting it here.
4122         (dbus_g_proxy_begin_call): Move return_if_fail here.
4123
4124         * glib/dbus-gobject.c (write_interface): Update for
4125         dbus_gtype_to_signature returning new string.
4126
4127         * configure.in: Add glib/examples/statemachine.
4128
4129 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4130
4131         * configure.in: Add a configure option, --with-console-auth-dir
4132         
4133         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4134         new setting.  Patch from Kay Sievers.
4135
4136 2005-07-06  Colin Walters  <walters@verbum.org>
4137
4138         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4139         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4140         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4141         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4142         Delete in favor of dbus_g_proxy_begin_call and
4143         dbus_g_proxy_cancel_call.
4144         (DBusGProxyCall, DBusGProxyCallNotify): New.
4145         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4146         data, and destroy function.  This replaces
4147         dbus_g_pending_call_set_notify.
4148         (dbus_g_proxy_cancel_call): Prototype.
4149         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4150
4151         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4152         pending_calls map.
4153         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4154         internal proxy for calls to the bus. Remove
4155         pending_nameowner_calls, now the internal proxy keeps track.
4156         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4157         pending_nameowner_calls.
4158         (got_name_owner_cb): Update prototype, and use
4159         dbus_g_proxy_end_call.
4160         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4161         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4162         favor of using internal proxy.
4163         (dbus_g_proxy_manager_unregister): Update to use
4164         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4165         (dbus_g_proxy_init): Initialize pending calls map.
4166         (dbus_g_proxy_constructor): New.
4167         (dbus_g_proxy_class_init): Add get/set property functions,
4168         constructor, and add NAME, PATH, and INTERFACE properties.
4169         (cancel_pending_call): New function.
4170         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4171         cancel them.
4172         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4173         (GPendingNotifyClosure): New structure.
4174         (d_pending_call_notify, d_pending_call_free): Moved here from
4175         dbus-glib.c.
4176         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4177         ordering.
4178         (manager_begin_bus_call): New internal function for talking to
4179         internal bus proxy.
4180         (dbus_g_proxy_new): Construct object using GObjet properties.
4181         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4182         Create closure of same, and insert call into map of pending calls.
4183         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4184         call.  Look up pending call in current set.  Remove it when we've
4185         completed.
4186         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4187         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4188         and destroy function directly.
4189         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4190         (dbus_g_proxy_call): Invoke with NULL callback.
4191         (dbus_g_proxy_cancel_call): New function, replaces
4192         dbus_g_pending_call_cancel.
4193
4194         * glib/dbus-gparser.c (validate_signature): Fix call to
4195         dbus_set_g_error.
4196
4197         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4198         New quark for attaching metadata to GType.
4199         (info_hash): Delete.
4200         (lookup_object_info): Look up using quark.
4201         (dbus_g_object_type_install_info): Check that a type is classed,
4202         not that it's an object.  Also just install type data using quark
4203         instead of using global hash.
4204
4205         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4206         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4207         (GPendingNotifyClosure): Delete.
4208         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4209         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4210
4211         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4212         client method generation until we can fix it...
4213         
4214         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4215         (load_from_service_thread_func): Ditto.
4216
4217         * tools/dbus-names-model.c (struct NamesModel): Hold
4218         DBusGProxyCall.
4219         (have_names_notify): Update prototype, use
4220         dbus_g_proxy_cancel_call.
4221         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4222
4223         * tools/dbus-monitor.c (filter_func): Update for print_message
4224         API change.
4225
4226         * test/glib/test-dbus-glib.c: Add more tests for async
4227         invocations.  Update many begin_call/end_call pairs to just use
4228         dbus_g_proxy_call.
4229
4230         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4231         allows us to dump print-introspect.c.
4232
4233         * tools/dbus-print-message.h (print_message): Add literal argument
4234         to print_message which is intended to allow printing arguments without
4235         metadata like "string=".
4236
4237         * tools/dbus-print-message.c (print_iter): Add literal argument.
4238         (print_message): Allow printing string messages literally.
4239
4240 2005-07-05  Colin Walters  <walters@verbum.org>
4241
4242         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4243         Remove value refcount leak, original patch from Jorn Baayen
4244         <jorn@openedhand.com>.  Also remove useless extra value in favor
4245         of prepending to value array directly.
4246
4247 2005-07-02  Colin Walters  <walters@verbum.org>
4248
4249         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4250
4251 2005-07-01  Colin Walters  <walters@verbum.org>
4252
4253         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4254         
4255         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4256         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4257         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4258         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4259
4260 2005-06-30  Colin Walters  <walters@verbum.org>
4261
4262         * test/glib/test-dbus-glib.c:
4263         * test/glib/test-service-glib.c:
4264         * test/glib/test-service-glib.xml: Update tests for new error
4265         setting bits, also add async tests (patch from Ross Burton).
4266
4267         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4268         DBUS_GLIB_THREADS_LIBS.
4269
4270         * glib/dbus-gproxy.c (get_name_owner)
4271         (dbus_g_pending_call_end_valist): Ditto.
4272
4273         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4274         domain (GQuark) to DBusGErrorInfo.  
4275         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4276         quark in error_metadata.  Take message interface as default
4277         error message interface.
4278         (gerror_to_dbus_error_message): Pass message interface.
4279         (dbus_set_g_error): Resurrected.
4280         (dbus_g_error_info_free): New function.
4281         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4282         of _peek to actually create the object class if it hasn't been
4283         created yet.
4284         (dbus_g_error_domain_register): New function.
4285
4286         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4287
4288         * glib/dbus-gparser.c (validate_signature): Ditto.
4289
4290         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4291         (dbus_g_error_domain_register): Prototype.
4292
4293         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4294         Update tests.
4295
4296 2005-06-29  Colin Walters  <walters@verbum.org>
4297
4298         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4299         DBUS_TYPE_G_OBJECT_PATH.
4300
4301         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4302         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4303         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4304         (dbus_g_object_path_get_g_type): New function.
4305         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4306         to DBUS_TYPE_G_OBJECT_PATH by default.
4307         (demarshal_proxy): Remove unused name variable.
4308         (demarshal_object_path, marshal_object_path): New functions.
4309         (demarshal_proxy_array, marshal_proxy_array): Delete.
4310         
4311         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4312         DBUS_TYPE_G_OBJECT_PATH to char *.
4313         (dbus_g_type_get_lookup_function): Map builtin
4314         DBUS_TYPE_G_OBJECT_PATH.
4315
4316         * test/glib/test-dbus-glib.c
4317         * test/glib/test-service-glib.c (my_object_objpath): 
4318         Adapt tests to new object path marshalling.
4319
4320 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4321
4322         * configure.in: force check for Python >= 2.4
4323
4324 2005-06-29  Colin Walters  <walters@verbum.org>
4325         
4326         Patch from Ross Burton <ross@openedhand.com>
4327         
4328         * glib/dbus-gobject.c (invoke_object_method): Unset object
4329         value in all cases, not only in async case.
4330
4331 2005-06-29  Colin Walters  <walters@verbum.org>
4332
4333         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4334         name_call for keeping track of any outgoing GetNameOwner call.
4335         Also add for_owner and associated.
4336         (struct _DBusGProxyManager): Add owner_names, which is hash table
4337         that maps a base name to a list of names it owns (that we're
4338         interested in).  Add pending_nameowner_calls which is a list of
4339         all outstanding GetNameOwner; avoids us having to iterate over
4340         every proxy.  Add unassociated_proxies which keeps track of name
4341         proxies with no associated name owner.
4342         (dbus_g_proxy_manager_unref): Destroy owner_names.
4343         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4344         name refcounts.
4345         (find_name_in_info, name_owner_foreach)
4346         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4347         (dbus_g_proxy_manager_monitor_name_owner)
4348         (dbus_g_proxy_manager_unmonitor_name_owner)
4349         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4350         New functions; they manipulate the owner_names mapping.
4351         (got_name_owner_cb): New function.
4352         (get_name_owner): New function, extracted from
4353         dbus_g_proxy_new_for_name_owner.
4354         (dbus_g_proxy_manager_register): For now we need to keep track of
4355         all NameOwnerChanged.  Also if the proxy is for a name, if we
4356         don't already know the name owner, queue a new GetNameOwner
4357         request and add it to our list of unassociated proxies.  Otherwise
4358         inc the refcount.
4359         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4360         cancel any pending GetNameOwner call, etc.
4361         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4362         the owner_names mapping to look up the current names for the
4363         signal source, and dispatch to any proxies for that name.
4364         (dbus_g_proxy_new): Initialize new members.
4365         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4366         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4367         (dbus_g_pending_call_end_valist): New function, extracted from
4368         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4369         but want to use the GLib infrastructure.  Also note how many
4370         arguments in reply were over.
4371         (dbus_g_pending_call_end): New function, just call
4372         dbus_g_pending_call_end_valist.
4373         (dbus_g_proxy_end_call_internal): Just call
4374         dbus_g_pending_call_end_valist.
4375
4376         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4377         of builtin marshaller for STRING_STRING_STRING.
4378
4379         * test/glib/test-dbus-glib.c: 
4380         * test/glib/test-service-glib.c:
4381         * test/glib/test-service-glib.xml:
4382         Extend tests to cover name proxies, destruction of owner proxies,
4383         etc.
4384         
4385         * glib/examples/example-signal-recipient.c
4386         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4387         
4388         * tools/dbus-send.c (main): Print D-BUS error name in addition
4389         to message.
4390
4391 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4392
4393         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4394         cmessage_function_handler): Patch from 
4395         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4396         by using the Py_GILState_Ensure/Release to synchronize with the
4397         python runtime.
4398         
4399 2005-06-28  Ray Strode  <rstrode@redhat.com>
4400
4401         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4402         babysitter helper process on last unref, bug #2813.
4403
4404 2005-06-27  Colin Walters  <walters@verbum.org>
4405
4406         * test/glib/test-dbus-glib.c: 
4407         * test/glib/test-service-glib.c:
4408         * test/glib/test-service-glib.xml:
4409         Test hash table signal emitting.
4410
4411         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4412         types to their fundamental basis types, since this is what
4413         marshallers operate on.  Also add an entry for VOID__BOXED.
4414         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4415
4416 2005-06-26  Havoc Pennington  <hp@redhat.com>
4417
4418         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4419         from Don Park
4420
4421 2005-06-26  Colin Walters  <walters@verbum.org>
4422
4423         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4424         (dbus_g_error_set): New public function from its ashes; used by
4425         both service-side method implementation and GLib bindings
4426         internals.
4427         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4428         (_dbus_glib_test): Add some tests.
4429
4430         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4431
4432         * test/glib/test-service-glib.c (my_object_throw_error): Use
4433         dbus_g_error_set.
4434
4435         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4436         errors thrown by dbus_g_error_set.
4437
4438         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4439
4440         * glib/dbus-gparser.c (validate_signature): Ditto.
4441
4442         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4443         (dbus_g_proxy_end_call_internal): Ditto.
4444
4445         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4446         converts DBUS_ERROR_x to DBUS_GERROR_x.
4447         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4448
4449         * doc/TODO: Remove error TODO.
4450
4451         * doc/dbus-tutorial.xml: Update with documentation about error
4452         handling.
4453
4454         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4455         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4456         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4457
4458 2005-06-22  Colin Walters  <walters@verbum.org>
4459         
4460         Patch from Ross Burton <ross@openedhand.com>
4461
4462         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4463
4464 2005-06-20  Colin Walters  <walters@verbum.org>
4465
4466         * configure.in: Add glib/examples.
4467
4468         * glib/Makefile.am: Add examples/
4469
4470         * glib/examples/.cvsignore
4471         * glib/examples/Makefile.am
4472         * glib/examples/example-client.c
4473         * glib/examples/example-service.c
4474         * glib/examples/example-service.xml
4475         * glib/examples/example-signal-emitter.c
4476         * glib/examples/example-signal-emitter.xml
4477         * glib/examples/example-signal-recipient.c:
4478         New files; GLib binding examples, ported from
4479         python/examples.
4480
4481 2005-06-20  Colin Walters  <walters@verbum.org>
4482
4483         * dbus/dbus-glib.h: 
4484         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4485         dbus_g_proxy_call.
4486
4487         * glib/dbus-binding-tool-glib.c: 
4488         * doc/dbus-tutorial.xml: 
4489         * test/glib/test-dbus-glib.c: Update for rename.
4490         
4491 2005-06-20  Colin Walters  <walters@verbum.org>
4492
4493         Patch suggested by Ross Burton <ross@openedhand.com>
4494
4495         * glib/dbus-gobject.c (export_signals): Free signal name.
4496         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4497         memory leak.  Add a bit of documentation.
4498         (dbus_g_method_return_error): Free context, and note we do
4499         so.
4500
4501 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4502
4503         * dbus/dbus-glib.h:
4504         * glib/dbus-gobject.c:
4505         * glib/dbus-gproxy.c:
4506         * glib/dbus-gvalue.c: Predeclare structs as 
4507         typedef struct _Something Something instead of 
4508         typedef struct Something Something, so we can 
4509         redeclare the prototypes. Other GNOME libraries 
4510         do this already.
4511
4512 2005-06-17  Colin Walters  <walters@verbum.org>
4513
4514         * tools/dbus-names-model.c (have_names_notify): Fix call
4515         to dbus_g_proxy_end_call.
4516         
4517 2005-06-17  Colin Walters  <walters@verbum.org>
4518
4519         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4520         spew warnings if we get malformed remote signals.
4521
4522         * glib/dbus-gobject.c (propsig_iterate): New function.
4523         (lookup_object_info): New function, extracted from
4524         lookup_object_and_method.
4525         (introspect_properties, introspect_signals): Delete; these
4526         are merged into write_interface.
4527         (write_interface): Write out signals and properties here;
4528         dump the org.gtk.object stuff and use the interface given
4529         in the introspection data blob.  Also fix up property XML.
4530         (lookup_values): New function.
4531         (introspect_interfaces): Gather a mapping from interface to a
4532         list of its methods, signals, and properties, then write out
4533         each interface.
4534         (lookup_object_and_method): Use lookup_object_info.
4535         (struct DBusGSignalClosure): Add interface.
4536         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4537         we can just use the constant data.
4538         (dbus_g_signal_closure_finalize): Don't free signal name.
4539         (signal_emitter_marshaller): Use interface from signal closure.
4540         (export_signals): Only export signals mentioned in introspection
4541         blob.
4542         (dbus_g_connection_register_g_object): Warn if we have no
4543         introspection data for an object.
4544         (funcsig_equal): Remove unused variable.
4545         (dbus_g_object_register_marshaller): Take varargs instead of
4546         list.
4547         (dbus_g_object_register_marshaller_array): New function,
4548         extracted from old dbus_g_object_register_marshaller.
4549
4550         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4551         signals and property data.
4552         (write_quoted_string): New function, extracted from generate_glue.
4553         (generate_glue): Write signals and properties to introspection
4554         blob.
4555
4556         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4557         exported_signals and exported_properties.
4558         (dbus_g_object_register_marshaller): Update prototype.
4559         (dbus_g_object_register_marshaller_array): Prototype.
4560         
4561         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4562
4563         * test/glib/test-service-glib.c: Add new test signals and method
4564         to emit them.
4565
4566         * test/glib/test-service-glib.xml: Add some test signals.
4567
4568         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4569         and my-object-marshal.h
4570         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4571         my-object-marshal.c.
4572         (my-object-marshal.c, my-object-marshal.h): Implement.
4573
4574         * test/glib/.cvsignore: Update.
4575
4576         * doc/TODO: Remove two GLib TODO items fixed by this
4577         patch.
4578
4579 2005-06-16  Colin Walters  <walters@verbum.org>
4580
4581         * doc/TODO: Update for GLib bindings.
4582         
4583 2005-06-16  Colin Walters  <walters@verbum.org>
4584
4585         * glib/dbus-binding-tool-glib.c:
4586         * glib/dbus-gobject.c:
4587         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4588         from Ross Burton, for his GLib bindings work.
4589
4590 2005-06-16  Colin Walters  <walters@verbum.org>
4591
4592         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4593         to iterate instead of walking to G_TYPE_INVALID.
4594
4595         Patch based on a patch from Ryan Gammon.
4596
4597 2005-06-16  Colin Walters  <walters@verbum.org>
4598
4599         * bus/bus.c (bus_context_new): Set parser to NULL
4600         after we unref it (Patch from Chris Boscolo, #2174).
4601         
4602 2005-06-16  Colin Walters  <walters@verbum.org>
4603
4604         * python/dbus_bindings.pyx.in: Import size_t,
4605         __int64_t, __uint64_t, and __signed.
4606
4607         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4608         Define cmsg struct, output it.
4609         (_dbus_read_credentials_unix_socket):
4610         Use cmsg struct.
4611         
4612         Patch from Joe Markus Clarke for FreeBSD support.
4613         
4614 2005-06-16  Colin Walters  <walters@verbum.org>
4615
4616         * tools/dbus-send.c (append_array): Use strtok.
4617         (append_dict): New function.
4618         (type_from_name): New function, extracted from main.
4619         (main): Handle sending dicts.
4620
4621         * tools/dbus-print-message.c (print_iter): Print dict
4622         entries.
4623         
4624 2005-06-16  Colin Walters  <walters@verbum.org>
4625
4626         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4627         values as the empty string (#2948).
4628         
4629 2005-06-16  Colin Walters  <walters@verbum.org>
4630
4631         * dbus/Makefile.am:
4632         * mono/doc/Makefile.am:
4633         * test/glib/Makefile.am:
4634
4635         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4636
4637 2005-06-16  Colin Walters  <walters@verbum.org>
4638
4639         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4640         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4641
4642         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4643         Increment pointer after swapping fixed array.  Add assertion
4644         for array length.
4645                 
4646 2005-06-15  Colin Walters  <walters@verbum.org>
4647
4648         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4649         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4650         
4651 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4652
4653         * NEWS: Update to 0.34
4654
4655 2005-06-15  David Zeuthen  <davidz@redhat.com>
4656
4657         * configure.in (LT_CURRENT): Revert back to 1 as the library
4658         hasn't changed and we've certainly not committed to protocol
4659         stability yet.  All this does is to break ABI. See commit note
4660         from hp@redhat.com 2005-05-05 for details.
4661         
4662 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4663
4664         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4665         (_dbus_connection_run_builtin_filters): New method
4666         (dbus_connection_dispatch): Run the builtin filters which in turn
4667         runs the peer filter which handles Ping messages.
4668
4669         * doc/TODO: 
4670          - Ping isn't handled: This patch fixes it
4671          
4672          - Add a test case for the Ping message: added TODO item
4673
4674 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4675
4676         * dbus/dbus-message.c:
4677         (dbus_message_has_path): New method
4678         (dbus_message_has_interface): New method
4679         (dbus_message_has_member): New method
4680
4681         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4682         New method
4683
4684         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4685         the keyring directory is private to the user
4686
4687         * doc/TODO:
4688          - The convenience functions in dbus-bus.h should perhaps have
4689          the signatures that they would have if they were autogenerated
4690          stubs. e.g. the acquire service function. We should also evaluate
4691          which of these functions to include, in light of the fact that
4692          GLib/Qt native stubs will probably also exist.: Punted
4693
4694          - add dbus_message_has_path(), maybe has_member/interface:
4695          fixed in this patch
4696
4697          - in dbus-keyring.c, enforce that the keyring dir is not
4698          world readable/writable: Fixed in this patch
4699
4700 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4701
4702         * dbus/dbus-marshal-validate.h: Added a new validation
4703         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4704         out of memory errors when validating signitures
4705
4706         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4707         in places where we previously used DBUS_VALID and a FALSE return 
4708         value to indicate OOM
4709         
4710         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4711         Use a stack to track the number of elements inside containers.  The 
4712         stack values are then used to validate that dict entries have only two
4713         elements within them.
4714         (validate_body_helper): check the reason for failure when validating
4715         varients
4716         
4717         * dbus/dbus-message.c (load_message): use 
4718         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4719         DBUS_VALID and a FALSE return value to indicate OOM
4720
4721         * doc/TODO: remove "- validate dict entry number of fields" as this
4722         patch fixes it
4723
4724 2005-06-14  David Zeuthen  <davidz@redhat.com>
4725
4726         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4727         watches (if applicable) and add new watches
4728
4729         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4730         (main): Setup SIGIO signal handler if using D_NOTIFY
4731
4732         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4733
4734         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4735         (merge_included): Also merge conf_dirs list
4736         (bus_config_parser_unref): Clear conf_dirs list
4737         (include_dir): Add directory to conf_dirs list
4738         (bus_config_parser_get_conf_dirs): New function
4739
4740         * bus/dir-watch.[ch]: New files
4741
4742         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4743
4744         * configure.in: Add checks for D_NOTIFY on Linux
4745
4746 2005-06-14  Colin Walters  <walters@verbum.org>
4747
4748         * glib/dbus-binding-tool-glib.c:
4749         * glib/dbus-gobject.c:
4750         * glib/dbus-gvalue.c: Fix indentation and brace style.
4751         
4752 2005-06-14  Ross Burton <ross@openedhand.com>.
4753
4754         * glib/dbus-glib.h: Make DBusGMethodInvocation
4755         a private structure.  Rearrange prototypes a bit.
4756         
4757         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4758         documentation for first_arg_type.
4759         
4760         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4761         here, add documentation.  Move dbus_g_method_return
4762         and dbus_g_method_return_error into public API
4763         section.
4764
4765 2005-06-14  Colin Walters  <walters@verbum.org>
4766
4767         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4768         Add missing return statements, noticed by Ross Burton.
4769         
4770 2005-06-13  Ross Burton <ross@openedhand.com>.
4771
4772         * glib/dbus-gobject.c: Handle errors on message
4773         demarshalling by sending error message back.
4774         * glib/dbus-gvalue.c: Initialize return variables.
4775
4776 2005-06-13  Colin Walters  <walters@verbum.org>
4777
4778         * glib/Makefile.am: Fix thinko in last patch.
4779
4780 2005-06-13  Colin Walters  <walters@verbum.org>
4781
4782         * glib/Makefile.am: Move dbus-gtype-specialized.c
4783         and dbus-gtype-specialized.h into a _HEADERS variable,
4784         install them.
4785
4786 2005-06-12  Colin Walters  <walters@verbum.org>
4787
4788         Async signals and various bugfixes and testing by
4789         Ross Burton <ross@openedhand.com>.
4790
4791         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4792         (dbus_gvalue_genmarshal_name_from_type)
4793         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4794         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4795         (dbus_g_value_types_init, dbus_gtype_from_signature)
4796         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4797         (dbus_gtypes_from_arg_signature): New function prototypes.
4798         (dbus_gvalue_demarshal): Take context and error arguments.
4799         (dbus_gvalue_demarshal_variant): New function.
4800         (dbus_gvalue_demarshal_message): New function.
4801         (dbus_gvalue_store): Delete.
4802
4803         * glib/dbus-gvalue.c:
4804
4805         File has been almost entirely rewritten; now we special-case
4806         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4807         hash tables correctly, etc.  Full support for recursive values
4808         is not yet complete.
4809
4810         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4811         argument of signal to G_TYPE_POINTER since we now pass a
4812         structure.
4813         (lookup_g_marshaller): Delete in favor of
4814         _dbus_gobject_lookup_marshaller.
4815         (marshal_dbus_message_to_g_marshaller): Use
4816         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4817         to handle remote signal callbacks.
4818         (dbus_g_proxy_new_from_proxy): New function; creates a new
4819         DBusGProxy by copying an existing one.
4820         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4821         (dbus_g_proxy_get_path): New functions.
4822         (dbus_g_proxy_marshal_args_to_message): New function;
4823         factored out of existing code.
4824         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4825         from a varargs array.
4826         (dbus_g_proxy_begin_call_internal): New function.
4827         (dbus_g_proxy_end_call_internal): New function.
4828         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4829         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4830         after collecting args into value array.
4831         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4832         invoke dbus_g_proxy_end_call_internal.
4833         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4834         end_call_internal.
4835         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4836         types.
4837         (array_free_all): New function.
4838         (dbus_g_proxy_add_signal): Take GTypes.
4839
4840         * glib/dbus-gobject.h:
4841         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4842         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4843         Prototype.
4844
4845         * glib/dbus-gobject.c: Add a global marshal_table hash which
4846         stores mappings from type signatures to marshallers.  Change lots
4847         of invocations of dbus_gtype_to_dbus_type to
4848         dbus_gtype_to_signature.
4849         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4850         (introspect_signals): Fix test for query.return_type.
4851         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4852         (invoke_object_method): Many changes.  Handle asynchronous
4853         invocations.  Convert arguments with
4854         dbus_gvalue_demarshal_message.  Handle errors.  Use
4855         DBusSignatureIter instead of strlen on args. Handle all arguments
4856         generically.  Special-case variants.
4857         (dbus_g_method_return, dbus_g_method_return_error): New function.
4858         (DBusGSignalClosure): New structure, closes over signal
4859         information.
4860         (dbus_g_signal_closure_new): New function.
4861         (dbus_g_signal_closure_finalize): New function.
4862         (signal_emitter_marshaller): New function; is special marshaller
4863         which emits signals on bus.
4864         (export_signals): New function; introspects object signals and
4865         connects to them.
4866         (dbus_g_object_type_install_info): Take GType instead of
4867         GObjectClass.
4868         (dbus_g_connection_register_g_object): Invoke export_signals.
4869         (dbus_g_connection_lookup_g_object): New function.
4870         (DBusGFuncSignature) New structure; used for mapping type
4871         signatures to marshallers.
4872         (funcsig_hash): New function; hashes DBusGFuncSignature.
4873         (funcsig_equal): New function; compares DBusGFuncSignature.
4874         (_dbus_gobject_lookup_marshaller): New function.
4875         (dbus_g_object_register_marshaller): New function; used to
4876         register a marshaller at runtime for a particular signature.
4877
4878         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4879
4880         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4881         which notes a server method implementation should be
4882         asynchronous.
4883
4884         * glib/dbus-binding-tool-glib.c
4885         (dbus_binding_tool_output_glib_server): Call
4886         dbus_g_value_types_init.
4887         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4888         variants specially.
4889         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4890         of a lookup function.
4891         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4892         (write_untyped_out_args): New method; write output arguments.
4893         (write_formal_declarations_for_direction): Function for
4894         writing prototypes.
4895         (write_formal_parameters_for_direction): Function for
4896         writing implementations.
4897         (write_typed_args_for_direction): Function for writing
4898         arguments prefixed with GTypes.
4899         (write_async_method_client): Write out async version
4900         of method.
4901
4902         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4903         (dbus_g_type_get_marshal_name): Move mapping from GType
4904         to marshal name into here.
4905         (dbus_g_type_get_c_name): Move into here.
4906         (compute_marshaller): Convert signature to type with
4907         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4908         (compute_marshaller_name): Ditto.
4909         (compute_marshaller): Handle async signal annotations.
4910         (gather_marshallers): Return if we don't have a known
4911         prefix.
4912         (generate_glue): Collect introspection blob here, and
4913         write all of the blob at the end.  This allows an object
4914         with multiple interfaces to work.
4915         Mark async methods in introspection blob.
4916
4917         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4918         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4919         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4920
4921         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4922         avoids people accidentally using DBUS_TYPE_* which should
4923         not be necessary anymore.
4924         Do include dbus-gtype-specialized.h, which are utilities
4925         for GLib container types.
4926         Add various #defines for types such as
4927         DBUS_TYPE_G_BOOLEAN_ARRAY.
4928         (DBusGValueIterator, DBusGValue): Define, not fully used
4929         yet.
4930         (dbus_g_value_get_g_type): Type for recursive value.
4931         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4932         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4933         (dbus_g_value_free): Prototypes.
4934         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4935         (dbus_g_proxy_set_interface): Prototype.
4936         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4937         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4938         types.
4939         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4940         Accessors.
4941         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4942         doing async invocations.
4943         (dbus_g_method_return, dbus_g_method_return_error):
4944         Prototypes.
4945         * doc/dbus-tutorial.xml: Update GLib section.
4946         
4947         * tools/dbus-viewer.c (load_child_nodes): Update
4948         for new invocation type of dbus_g_proxy_end_call.
4949         (load_from_service_thread_func): Ditto.
4950
4951         * tools/print-introspect.c (main): Ditto.
4952
4953         * tools/dbus-names-model.c (have_names_notify)
4954         (names_model_reload, names_model_set_connection)
4955         Use GTypes.
4956
4957         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4958         needed since Python bindings use GLib bindings.
4959
4960         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4961         Add --prefix argument.
4962
4963         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4964         unneeded --ignore-unsupported arg.
4965         
4966         * test/glib/test-service-glib.c: 
4967         * test/glib/test-service-glib.xml:
4968         * test/glib/test-dbus-glib.c: Add many more tests.
4969
4970 2005-06-06  David Zeuthen  <davidz@redhat.com>
4971
4972         * doc/TODO: Add item about need to remove deprecated functions.
4973
4974         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4975
4976         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4977         to repair the ABI which was broken with the last commit.
4978
4979 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4980
4981         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4982         (dbus_connection_disconnect): renamed to dbus_connection_close 
4983         for API symmetry with dbus_connection_open
4984         (_dbus_connection_open_internal): 
4985         s/dbus_connection_disconnect/dbus_connection_close
4986
4987         * dbus/dbus-bus.c (dbus_bus_get):
4988         s/dbus_connection_disconnect/dbus_connection_close
4989
4990         * bus/connection.c (bus_connections_unref, 
4991         bus_connections_setup_connection, bus_connections_expire_incomplete):
4992         s/dbus_connection_disconnect/dbus_connection_close
4993
4994         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4995         kill_client_connection_unchecked, check_hello_connection):
4996         s/dbus_connection_disconnect/dbus_connection_close
4997
4998         * bus/bus.c (new_connection_callback):
4999         s/dbus_connection_disconnect/dbus_connection_close
5000
5001         * tools/dbus-send.c (main):
5002         s/dbus_connection_disconnect/dbus_connection_close
5003
5004         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5005         s/dbus_connection_disconnect/dbus_connection_close
5006         
5007         * test/test-service.c (path_message_func, filter_func):
5008         s/dbus_connection_disconnect/dbus_connection_close
5009         
5010         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5011         
5012 2005-05-25  Colin Walters  <walters@verbum.org>
5013
5014         * dbus/dbus-protocol.h: Move various bus service #defines such
5015           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5016           dbus/dbus-shared.h.
5017         * dbus/dbus-shared.h: Various defines moved here.
5018         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5019
5020 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5021
5022         * python/__init__.py: Python bindings deserve a minor version
5023         update.  Upped to (0, 40, 2)
5024
5025 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5026
5027         * python/decorators.py: add explicitly_pass_message decorator
5028         for passing in the dbus message as keyword for edge case signal
5029         handling
5030
5031         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5032         to conform with what dbus expects for match rules
5033         (SignalMatchRule.execute): add the dbus message as a keyword
5034         if the signal handler has requested it
5035
5036         * python/examples/example/signal-recipient.py: added some more
5037         examples on how to hook up to signals
5038
5039 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5040
5041         * python/decorators.py: import dbus_bindings
5042
5043         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5044         SignalMatchNode): new classes that implement wildcard signal
5045         callback matching using a tree lookup. Heavily modified from a
5046         patch sent by Celso Pinto (fd.o bug #3241)
5047
5048         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5049         use new match classes to handle signals.
5050
5051 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5052         
5053         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5054
5055 2005-05-18  Havoc Pennington  <hp@redhat.com>
5056
5057         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5058         gettext. Not really worth requiring yet perhaps, but any
5059         production quality 1.0 would require it so we should go ahead and
5060         get things set up. We do have a couple token calls to
5061         bindtextdomain in the code already.
5062
5063 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5064
5065         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5066         when using recursive g_main_loops
5067
5068         * python/_dbus.py (class Bus): add the ProxyObjectClass
5069         alias for ProxyObject to make it easier for the Twisted 
5070         networking framework to integrate dbus.
5071
5072         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5073         alias for ProxyMethod to make it easier for the Twisted 
5074         networking framework to integrate dbus. 
5075
5076 2005-05-11  Ross Burton  <ross@openedhand.com>
5077
5078         * glib/dbus-glib-tool.c: Add --prefix argument.
5079         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5080         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5081         Add prefix argument.
5082         (generate_glue): Pass prefix argument down.
5083         (dbus_binding_tool_output_glib_server): Pass prefix to
5084         glib-genmarshal.
5085         
5086 2005-05-11  Colin Walters  <walters@verbum.org>
5087
5088         * tools/dbus-send.c (append_array): New function.
5089         (append_arg): Broken out from main.
5090         (main): Add cheesy hack to send arrays and variants.
5091         (usage): Update.
5092         * tools/dbus-print-message.c (print_iter): Broken out
5093         from main.
5094
5095 2005-05-11  Colin Walters  <walters@verbum.org>
5096
5097         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5098         New function, returns signature string for signature iter.
5099         * dbus/dbus-signature.h: Prototype it.
5100         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5101         New function, returns signature string for message iter.
5102         (dbus_message_iter_get_array_len): New function, returns
5103         length of array.
5104         (dbus_message_iter_get_fixed_array): Fix assertion; this
5105         function should be used when the iter is pointing to the
5106         contents of an array
5107         * dbus/dbus-message.h: Prototypes.
5108         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5109         New function; returns length of an array.
5110         * dbus/dbus-marshal-recursive.h: Prototype it.
5111         
5112 2005-05-11  Colin Walters  <walters@verbum.org>
5113
5114         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5115         compilation error.
5116         
5117 2005-05-08  Havoc Pennington  <hp@redhat.com>
5118
5119         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5120         daemon's pid, not the parent's pid, to the file descriptor.
5121         Reported by Taj Morton.
5122
5123 2005-05-05  Havoc Pennington  <hp@redhat.com>
5124
5125         * configure.in (LT_*): add notes on how the libtool versioning
5126         works to save thinking. Increment soname to indicate protocol
5127         breakage (though really the library interface hasn't changed I
5128         guess)
5129
5130         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5131         verify the GUID received from server matches what we were
5132         expecting, if we had an expectation
5133
5134         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5135         (_dbus_auth_get_guid_from_server): new function
5136         (send_begin): parse the OK args
5137
5138         * doc/dbus-specification.xml: add GUID to the auth protocol
5139
5140 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5141
5142         * Fix my name in previous changelog ;)
5143
5144         * python/proxies.py (ProxyObject.__getattr__): add further patch
5145         from Anthony Baxter to throw an AttributeError when python 
5146         __special__ functions are called instead of marshling them over 
5147         the bus (Bug#1685 comment 3).
5148
5149 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5150
5151         * python/Makefile.am: changed to use pyexecdir for the binding
5152         shared libraries (Bug#2494)
5153
5154         * python/exceptions.py: bring exceptions over from the bindings
5155         so they can be used in applications (Bug#2036)
5156         Make all exceptions derive from DBusException
5157
5158         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5159         of classes so that print obj doesn't throw an exception (Bug #1685)
5160
5161 2005-05-03  Ross Burton  <ross@openedhand.com>
5162
5163         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5164         Return if we get an error during registration.  Set up a
5165         weak reference on object to unregister if object is destroyed.
5166         (unregister_gobject): New function.
5167         
5168 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5169
5170         * python/dbus_bindings.pyx.in: 
5171         - added new type classes for hinting to the marashaler what type 
5172         to send over the wire
5173         - added int16 and uint16 marshalers
5174         - Fixed a bug in the type constants that caused int32 to go out
5175         as uint16 over the wire
5176         * python/dbus.py: split up into different files and renamed _dbus.py
5177         * python/__init__.py, python/_util.py, python/decorators.py, 
5178         python/exceptions.py, python/proxies.py, python/services.py,
5179         python/types.py: new files split off from dbus.py
5180         * python/Makefile.am: Add new files, remove dbus.py and 
5181         install all python files to <python module dir>/dbus
5182         * python/examples/*: Added #!/usr/bin/env python to the top of
5183         every example.  Patch provided by Tatavarty Kalyan
5184
5185 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5186
5187         * NEWS: Update to 0.33
5188
5189 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5190
5191         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5192         method for doing async calls
5193         (_pending_call_notification): New C function for handling pendning call
5194         callbacks
5195         (set_notify): New method for setting pending call notification
5196         
5197         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5198         Async capabilities added to remote method calls
5199         (Sender): class removed
5200         (RemoteService): class removed
5201         (ObjectTree): class removed for now
5202         (RemoteObject): Renamed to ProxyObject
5203         (RemoteMethod): Renamed to ProxyMethod
5204         (method): Decorator added for decorating python methods as dbus methods
5205         (signal): Decorator added for decorating python methods as signal emitters
5206         (ObjectType): Metaclass added for generating introspection data and the
5207         method callback vtable
5208         (Interface): Wrapper class added to wrap objects in a dbus interface
5209         (Object): Uses ObjectType as its metaclass and exports Introspect
5210         of the org.freedesktop.DBus.Introspectable interface
5211         (ValidationException, UnknownMethodException): new exceptions
5212
5213         * python/examples/*: Modified to fit with the new bindings
5214
5215 2005-04-23  Havoc Pennington  <hp@redhat.com>
5216
5217         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5218         reported by Tony Houghton
5219
5220         * test/test-service.c (main): test
5221         dbus_connection_get_object_path_data()
5222
5223         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5224         the exact_match
5225         (_dbus_object_tree_get_user_data_unlocked): new function used by
5226         dbus_connection_get_object_path_data()
5227         (do_register): add assertion test for get_user_data_unlocked
5228         (object_tree_test_iteration): more tests
5229
5230         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5231         new function from Dan Reed to let you get the user data from 
5232         dbus_connection_register_object_path()
5233
5234 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5235
5236         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5237         in numerous places that did not account for the NULL terminator
5238         (signature_from_seed): changed the manual string copy loop to 
5239         just use strcpy instead
5240         make check should now pass
5241
5242 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5243
5244         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5245         so that it allows messages that are not signals to pass in 
5246         NULL as the interface.
5247
5248 2005-04-18  David Zeuthen  <davidz@redhat.com>
5249
5250         * glib/dbus-gmain.c (io_handler_destroy_source): 
5251         (timeout_handler_destroy_source, connection_setup_free): 
5252         Also unref the source to avoid memory leaks.
5253
5254 2005-04-13  David Zeuthen  <davidz@redhat.com>
5255
5256         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5257         more reasonable, yet still totally arbitrary, value :-). 
5258
5259 2005-04-13  David Zeuthen  <davidz@redhat.com>
5260
5261         * doc/TODO: Added an "important for 1.0" item about selinux
5262         allow/deny messages
5263
5264 2005-04-13  David Zeuthen  <davidz@redhat.com>
5265
5266         * bus/selinux.c: Add c-file-style to top of file
5267         (log_audit_callback): Don't free the data here anymore
5268         (bus_selinux_check): Don't take spid and tpid since appending
5269         that to auxdata may OOM.
5270         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5271         to the caller if we are OOM by taking an error object.
5272         (bus_selinux_allows_send): -do-
5273
5274         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5275         and bus_selinux_allows_send
5276
5277         * bus/bus.c (bus_context_check_security_policy): Pass error and
5278         pass on OOM thrown by bus_selinux_allows_send()
5279
5280         * bus/services.c (bus_registry_acquire_service): Pass error and
5281         pass on OOM thrown by bus_selinux_allows_acquire_service()
5282
5283 2005-04-13  Havoc Pennington  <hp@redhat.com>
5284
5285         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5286         message at a time to avoid monopolizing the main loop, bug 
5287         #2953 from Benjamin Otte
5288
5289 2005-04-09  Havoc Pennington  <hp@redhat.com>
5290
5291         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5292         possible overlap, fix from Daniel Reed
5293         (fixup_alignment): fix signedness warnings
5294         (_dbus_string_append_unichar): ditto
5295
5296 2005-04-09  Havoc Pennington  <hp@redhat.com>
5297
5298         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5299
5300         * glib/dbus-glib-tool.c (main): fix warning
5301
5302         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5303
5304         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5305         add a new function that can be used in simple applications that
5306         don't have a main loop and are willing to block
5307
5308 2005-04-05  David Zeuthen  <davidz@redhat.com>
5309
5310         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5311
5312         * glib/dbus-gmain.c:
5313         (io_handler_destroy_source): Remove from list of IO handlers
5314         of the ConnectionSetup object
5315         (timeout_handler_destroy_source): -do- for timeout handlers
5316         (io_handler_source_finalized): Don't remove from list since
5317         we now do that in io_handler_destroy_source(). Renamed from
5318         io_handler_source_destroyed
5319         (timeout_handler_source_destroyed): -do- for timeout handlers
5320         (connection_setup_free): It is now safe to iterate over all
5321         IO and timeout handlers as the _destroy_source removes them
5322         from the list synchronously
5323
5324 2005-03-30  Havoc Pennington  <hp@redhat.com>
5325
5326         * configure.in: change check to gtk 2.4
5327
5328         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5329         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5330         to 2.4
5331
5332 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5333
5334         * News: Update 0.32
5335
5336         * HACKING: Fixed realease instructions.  configure.in should be updated to
5337           the next release by the person who made the last release.
5338
5339 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5340
5341         * python/lvalue_cast_post_process.py - removed.  Patch has been
5342           submitted to Pyrex maintainers that fixes gcc4.0 errors
5343
5344         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5345
5346 2005-03-24  Daniel Reed  <n@ml.org>
5347
5348         * tools/Makefile.am: Make print-introspect and
5349         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5350
5351 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5352
5353         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5354
5355         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5356           had in Red Hat packages for a while but for some reason never 
5357           got merged upstream
5358           (_dbus_is_a_number): New checks if a string
5359           can be converted to a number and does the conversion if it can
5360           (_dbus_user_database_lookup): Add check to see if the given username
5361           is a udi.  This allows udi's to be used instead of usernames in the
5362           config file.
5363           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5364           is a gdi.  This allows gdi's to be used instead of groupnames in the
5365           config file.
5366
5367 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5368
5369         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5370           code so that it compiles with gcc4.0
5371
5372         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5373           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5374           results back to dbus_binding.c
5375
5376 2005-03-20  Colin Walters  <walters@verbum.org>
5377
5378         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5379
5380         * configure.in: Require GTK+ 2.6.
5381         
5382 2005-03-20  Colin Walters  <walters@verbum.org>
5383
5384         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5385
5386 2005-03-17  Tom Parker  <palfrey@tevp.net>
5387
5388         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5389         print DBUS_UID_UNSET; instead print passed username.  Also
5390         be sure to actually use gid looked up in cache.
5391         
5392         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5393         for DBUS_GID_UNSET and groupname.
5394
5395 2005-03-17  Colin Walters  <walters@verbum.org>
5396
5397         * bus/print-introspect.c: Move to tools/.
5398         * bus/run-with-tmp-session-bus.sh: Ditto.
5399         
5400         * glib/Makefile.am (dbus-glib-bindings.h): Move
5401         generation to tools/Makefile.am.
5402
5403         * test/glib/run-test.sh: Update to handle move
5404         of run-with-tmp-session-bus.sh.
5405
5406         * test/glib/test-service-glib.c: Update to handle
5407         move of dbus-glib-bindings.h.
5408
5409         * tools/print-introspect.c: Moved here
5410         from bus/, and ported to GLib bindings.
5411
5412         * tools/run-with-tmp-session-bus.sh: Moved here
5413         from bus/.
5414
5415         * tools/Makefile.am: Generate dbus-glib-bindings.h
5416         and dbus-bus-introspect.xml here.
5417
5418         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5419         Update.
5420
5421 2005-03-17  Colin Walters  <walters@verbum.org>
5422
5423         * bus/driver.c (write_args_for_direction): Use
5424         _dbus_string_get_const_data to retrieve string;
5425         _dbus_string_get_const_data_len doesn't actually return
5426         a NULL-terminated substring.
5427
5428         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5429         (main): Change to use org_freedesktop_DBus_request_name
5430         instead of using g_proxy_begin_call/end_call.
5431
5432 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5433
5434         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5435         generating the finalizer.  Fixes from Ben Maurer.
5436
5437 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5438
5439         * mono/BusDriver.cs: Update method names: ListServices
5440         becomes ListNames; GetOwner becomes GetNameOwner.
5441
5442         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5443         onto the eval stack when removing the delegate.
5444
5445 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5446
5447         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5448         LT_CURRENT.  Set it to the autoconf variable.
5449                                                                                 
5450         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5451         classes that disconnects the signal handler delegate from the
5452         service object.  Fixes a big leak of proxy objects on the
5453         client side of things.  Patch from Ben Maurer
5454         <bmaurer@ximian.com>
5455
5456 2005-03-12  Colin Walters  <walters@verbum.org>
5457
5458         * bus/driver.c (write_args_for_direction): New function,
5459         parses a type signature into arguments and outputs to
5460         XML.
5461         (bus_driver_handle_introspect): Use it instead of
5462         hardcoding XML for certain signatures.
5463         
5464         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5465         dependency on dbus-daemon.
5466
5467         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5468         argument, pass it to dbus_binding_tool_output_glib_client.
5469
5470         * glib/dbus-binding-tool-glib.c
5471         (generate_client_glue): Protect against multiple inclusion.
5472         (dbus_binding_tool_output_glib_client): Add
5473         G_BEGIN_DECLS/G_END_DECLS.
5474
5475         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5476         Change to just take iface prefix directly.
5477         (write_formal_parameters): Clarify error message.
5478         (check_supported_parameters): New function; checks to see type
5479         signatures of method parameters are supported.
5480         (generate_client_glue): Handle ignore_unsupported flag.
5481         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5482         parameter.
5483
5484         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5485         --ignore-unsupported by default until glib bindings
5486         support arrays.
5487
5488 2005-03-11  Colin Walters  <walters@verbum.org>
5489
5490         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5491         install it.
5492
5493         * bus/print-introspect.c: New file; prints introspection
5494         data for a given name and object path.
5495
5496         * bus/run-with-tmp-session-bus.sh: New file, refactored
5497         from test/glib/run-test.sh.  Creates a temporary session
5498         bus and runs another program.
5499
5500         * test/glib/run-test.sh: Refactor to invoke
5501         run-with-tmp-session-bus.sh.
5502
5503         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5504         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5505         macros instead of hardcoding.
5506
5507         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5508
5509 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5510
5511         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5512         this unref; it doesn't match up evenly in some codepaths.
5513         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5514         this evenly matches with the ref near the top of this function.
5515
5516 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5517
5518         * dbus/dbus-object-tree.c
5519         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5520         and we try to unregister a path that's not registered, still go
5521         through the process of unlocking and don't just return.
5522
5523 2005-03-09  Colin Walters  <walters@verbum.org>
5524
5525         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5526         to this are generated for client-side wrappers.  Invokes a
5527         D-BUS method and returns reply values.  
5528
5529         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5530         function; writes signature string for argument direction.
5531         (write_args_for_direction): Change to pass input values directly
5532         instead of via address, and fix indentation.
5533         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5534         make generated wrappers inlineable.
5535
5536         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5537         note about using dbus_type_is_fixed.
5538
5539         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5540         dbus/dbus-signature.c as dbus_type_is_fixed.
5541
5542         All callers updated.
5543
5544         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5545         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5546
5547         * dbus/dbus-signature.h: Prototype.
5548
5549         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5550         error printf code.
5551
5552         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5553         appropriate instead of just freeing it.
5554         (main): Free returned strings using g_free.
5555
5556         * test/glib/Makefile.am (test-service-glib-glue.h)
5557         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5558
5559         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5560         simply maps a simple D-BUS type to GType.
5561         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5562         GType.
5563         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5564         initialize the value with it.
5565         (dbus_gvalue_binding_type_from_type): Unused, delete.
5566         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5567         various types instead of unmarshalling to value data directly.
5568         Remove can_convert boolean.
5569         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5570         returning directly instead of using can_convert boolean.
5571         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5572         Stores a GValue in a pointer to a value of its corresponding C
5573         type.
5574
5575         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5576         add dbus_gvalue_store.
5577
5578 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5579
5580         Fix a bunch of lifecycle and memory management problems
5581         in the mono bindings.
5582
5583         * mono/Arguments.cs (Arguments): Implement IDisposable
5584
5585         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5586         strictly a static class.
5587
5588         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5589         delegates into this file.
5590         (Connection): Implement IDisposable.
5591         (Dispose): Disconnect the connection and set the raw connection
5592         pointer to IntPtr.Zero.
5593         (~Connection): Call Dispose().
5594         (RegisterObjectPath): Added.  Manages the registration of object
5595         paths so we can cleanly disconnect them at dispose/finalize time.
5596         (UnregisterObjectPath): Ditto.
5597         (set_RawConnection): Unregister all of the object paths when
5598         changing the underlying DBusConnection.  Add them back onto the
5599         new connection, if any.
5600
5601         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5602         more unmanaged resources anymore, so it's not necessary.  Move all
5603         the DBusObjectPathVTable stuff out of here.
5604         (Handler): Save references to our delegates so that they don't get
5605         finalized.  Call Connection.RegisterObjectPath() instead of
5606         dbus_connection_register_object_path() directly.
5607         (Message_Called): Dispose the message after we're finished with
5608         it.
5609
5610         * mono/Message.cs (Message): Implement IDisposable.
5611         (Dispose): Dispose the Arguments, and set the RawMessage to
5612         IntPtr.Zero.
5613         (SendWithReplyAndBlock): We own the ref to the reply that comes
5614         back from dbus_connection_send_with_reply_and_block() so add a
5615         comment about that and unref it after we've constructed a managed
5616         MethodReturn class around it.  Fixes a big, big leak.
5617
5618         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5619         method.
5620         (BuildSignalHandler): After we've sent the Signal message, dispose
5621         of it.
5622         (BuildMethod): Dispose of the method call and reply messages after
5623         we've sent the message and extracted the data we want from the
5624         reply.
5625
5626         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5627         anymore.
5628         (Service_FilterCalled): Dispose of the message after we're
5629         finished with it.
5630
5631 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5632
5633         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5634         After we attach our pending call to the connection, unref
5635         it.  Fixes a leak.
5636  
5637         * mono/Connection.cs (set_RawConnection): Disconnect our
5638         filter and match callbacks from the old connection and
5639         reconnect them to the new connection, if any.
5640
5641         * mono/DBusType/Array.cs: "Code" is a static member, so
5642         don't use "this" to refer to it.  Fix for stricter checking
5643         in Mono 1.1.4.
5644  
5645         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5646         object path that we pass into unmanaged code.
5647  
5648         * mono/DBusType/String.cs (Append): Don't leak the string
5649         that we pass into unmanged code.
5650
5651 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5652         * NEWS: Update for 0.31
5653
5654         * configure.in: Release 0.31
5655         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5656
5657         * qt/Makefile.am: fixed build
5658
5659         * dbus/Makefile.am: soname bump for libdbus
5660
5661         * glib/Makefile.am: soname bump for libdbus-glib
5662
5663 2005-03-05  Havoc Pennington  <hp@redhat.com>
5664
5665         * dbus/dbus-sysdeps.c:
5666         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5667         value
5668         (_dbus_generate_random_bytes_buffer): fix return value
5669
5670         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5671         checks actually work, from Tom Parker <fdo@tevp.net>
5672
5673 2005-03-01  Colin Walters  <walters@verbum.org>
5674
5675         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5676         functions copied from dbus-glib-tool.c.
5677         (main): Convert lots of error code to use them.
5678         Also add some testing for introspection bits.
5679
5680 2005-03-01  Colin Walters  <walters@verbum.org>
5681         
5682         * doc/TODO: Remove introspection signature TODO.
5683
5684 2005-02-27  Colin Walters  <walters@verbum.org>
5685
5686         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5687         Change return value to const char * instead of int so we can do
5688         full signatures.
5689         (struct PropertyInfo, struct ArgInfo): Store char *.
5690         (property_info_new, arg_info_new): Update parameters, strdup.
5691         (property_info_unref, arg_info_unref): Free.
5692
5693         * glib/dbus-gidl.h: Update prototypes.
5694
5695         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5696         (validate_signature): New function, just validates signature and
5697         sets GError.
5698         (parse_property, parse_arg): Invoke validate_signature.  Store
5699         signature instead of just type code.
5700
5701         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5702         function to return a primary type for a signature, dropping
5703         information about types in container types.
5704         (dbus_gvalue_genmarshal_name_from_type)
5705         (dbus_gvalue_binding_type_from_type)
5706         (dbus_gvalue_ctype_from_type): Update to take full signature
5707          instead of type code.
5708         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5709
5710         * glib/dbus-gvalue.h: Update prototypes for above.
5711
5712         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5713         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5714         (introspect_properties, introspect_signals, write_interface):
5715         Update to handle signatures, and remove usage of
5716         _dbus_gutils_type_to_string.
5717         (handle_introspect): Print out type codes instead of e.g. "string"
5718         in hardcoded introspection XML; also use x_AS_STRING constants
5719         instead of hardcoding in string.
5720
5721         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5722         to string.  Remove usage of _dbus_gutils_type_to_string.
5723
5724         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5725
5726         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5727         deletion.
5728         
5729         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5730         (compute_marshaller_name, generate_glue): Handle signature change
5731         to string.
5732         (write_formal_parameters, write_args_for_direction): Ditto, and
5733         remove FIXME.
5734
5735         * tools/dbus-tree-view.c (type_to_string): Delete.
5736         (info_set_func_text): Update to print full signatures.
5737
5738         * test/glib/test-service-glib.xml: Change types to new
5739         introspection format.
5740
5741 2005-02-26  Havoc Pennington  <hp@redhat.com>
5742
5743         * doc/TODO: remove the "guid" item
5744
5745         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5746         (with_bus_thread_func): use open_private
5747
5748         * dbus/dbus-connection.c (dbus_connection_open_private): new
5749         function that works like the old dbus_connection_open()
5750         (dbus_connection_open): now returns an existing connection if
5751         possible
5752
5753         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5754         through the GUID to the transport
5755
5756         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5757         GUID in hex-encoded form.
5758
5759         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5760         pass GUID argument in to the transport
5761
5762         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5763         guid argument
5764
5765         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5766
5767         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5768
5769 2005-02-25  Havoc Pennington  <hp@redhat.com>
5770
5771         * doc/dbus-specification.xml: document the GUID thing
5772
5773         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5774         globally unique ID for the server, and put a "guid=hexencoded"
5775         field in the address
5776
5777         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5778
5779         * dbus/dbus-message.c: ditto
5780
5781         * dbus/dbus-dataslot.c: ditto
5782
5783         * dbus/dbus-list.c: ditto
5784
5785         * dbus/dbus-internals.h: wait, just include
5786         dbus-threads-internal.h here
5787         
5788         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5789         use in main library
5790
5791         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5792
5793 2005-02-24  Colin Walters  <walters@verbum.org>
5794
5795         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5796
5797 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5798
5799         * glib/Makefile.am: added dbus-gobject.h to sources list
5800         so distcheck doesn't fail
5801         
5802 2005-02-24  Havoc Pennington  <hp@redhat.com>
5803
5804         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5805         you must disconnect before unref, since locking and other things
5806         are screwed up otherwise. Fix assorted other locking stuff.
5807
5808         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5809         fix compilation
5810
5811         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5812         into a private header and don't export from the library
5813
5814         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5815
5816 2005-02-24  Colin Walters  <walters@verbum.org>
5817         
5818         * dbus/dbus-signature.c: New file; implements various functions
5819         related to type signatures.  Includes an interator for parsing,
5820         validation functions.
5821         (dbus_type_is_basic): Moved here from
5822         dbus-marshal-basic.c:_dbus_type_is_basic.
5823         (dbus_type_is_container): Moved here from
5824         dbus-marshal-basic.c:_dbus_type_is_container.
5825
5826         All callers of _dbus_type_is_container and _dbus_type_is_basic
5827         updated, and include dbus-signature.h.
5828
5829         * dbus/dbus-signature.h: New file; prototypes for the above.
5830
5831         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5832         dbus-signature.h.
5833
5834         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5835         function factored out of _dbus_first_type_in_signature.
5836         (_dbus_first_type_in_signature_c_str): New function; returns first
5837         type code for a type signature character.
5838
5839         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5840         handle function moves.
5841
5842         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5843
5844         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5845         function; skips to next complete type in type signature.
5846         Implemented using previous skip_one_complete_type.  Now
5847         skip_one_complete_type just delegates to
5848         _dbus_type_signature_next.
5849
5850         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5851         to dbus-signature.c
5852         (_dbus_type_is_container): Ditto.
5853
5854         * doc/dbus-specification.xml: Update introspection sample to
5855         use real type signatures.
5856
5857         * dbus/dbus-test.h: Prototype signature test.
5858
5859         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5860         signature tests.
5861
5862         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5863
5864 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5865
5866         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5867         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5868
5869 2005-02-21  Colin Walters  <walters@verbum.org>
5870
5871         * dbus/dbus-test-main.c (main): Take optional specific test
5872         argument.
5873
5874         * dbus/dbus-test.c (run_test): New function, runs a test function
5875         with no data directory.
5876         (run_data_test): Like above, but takes data directory.
5877         (dbus_internal_do_not_use_run_tests): Take
5878         specific test argument.  Replace lots of cut n' paste code
5879         with run_test and run_data_test.
5880
5881         * dbus/dbus-test.h: Update prototype for
5882         dbus_internal_do_not_use_run_tests.
5883
5884 2005-02-20  Havoc Pennington  <hp@redhat.com>
5885
5886         Fix bugs reported by Daniel P. Berrange
5887         
5888         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5889         (protected_change_watch): new function
5890         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5891         (_dbus_server_add_watch): change to work like the
5892         dbus-connection.c equivalents; like those, probably kind of
5893         busted, but should at least mostly work for now
5894         (dbus_server_disconnect): drop the lock if we were already
5895         disconnected, patch from Daniel P. Berrange
5896
5897         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5898         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5899         same stuff
5900
5901         * doc/TODO: todo about unscrewing this mess
5902
5903 2005-02-19  Colin Walters  <walters@verbum.org>
5904
5905         * glib/dbus-binding-tool-glib.c
5906         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5907
5908         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5909         as errno.h and sys/stat.h.
5910         (lose): New function, prints error with
5911         newline and exits.
5912         (lose_gerror): Similar, but takes GError for message.
5913         (main): Add --output argument to specify output file to write to,
5914         instead of always printing to stdout.  In this mode, determine
5915         timestamps on source files to see whether any are newer than the
5916         target file.  If not, exit.  Also convert a number of error
5917         messages to use lose (since it's shorter), and switch to using
5918         g_io_channel_shutdown.
5919
5920 2005-02-19  Havoc Pennington  <hp@redhat.com>
5921
5922         * glib/dbus-gobject.c
5923         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5924
5925         * glib/dbus-glib.c: fix doxygen warnings
5926
5927         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5928         is found on an <arg>
5929
5930 2005-02-17  Colin Walters  <walters@verbum.org>
5931
5932         * glib/dbus-gobject.h: Don't export
5933         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5934         
5935         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5936         (invoke_object_method): Handle it.
5937
5938         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5939         Handle rename.
5940         
5941 2005-02-17  Colin Walters  <walters@verbum.org>
5942
5943         * bus/.cvsignore, doc/.cvsignore
5944         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5945         Update.
5946
5947 2005-02-17  Colin Walters  <walters@verbum.org>
5948         
5949         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5950         Rename to DBUS_SERVICE_DBUS.
5951         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5952         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5953         Change the value from "org.freedesktop.Local"
5954         to "org.freedesktop.DBus.Local".
5955         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5956         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5957         DBUS_INTERFACE_INTROSPECTABLE.
5958         Change the value from "org.freedesktop.Introspectable"
5959         to "org.freedesktop.DBus.Introspectable".
5960         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5961         DBUS_INTERFACE_PROPERTIES.
5962         Change the value from "org.freedesktop.Properties"
5963         to "org.freedesktop.DBus.Properties".
5964         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5965         DBUS_INTERFACE_PEER.
5966         Change the value from "org.freedesktop.Peer"
5967         to "org.freedesktop.DBus.Peer".
5968         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5969         DBUS_INTERFACE_LOCAL.
5970         Change the value from "org.freedesktop.Local"
5971         to "org.freedesktop.DBus.Local".
5972
5973         All other users of those constants have been changed.
5974
5975         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5976
5977         * glib/dbus-gobject.c (handle_introspect): Use constants.
5978
5979         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5980
5981 2005-02-17  Colin Walters  <walters@verbum.org>
5982
5983         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5984         (parse_node, parse_interface, parse_method, parse_signal)
5985         (parse_property, parse_annotation): Lose if we're currently in an
5986         annotation.
5987         (parse_annotation): New function.
5988         (parser_start_element, parser_end_element): Handle annotation.
5989         (parse_method, parse_interface): Remove support for c_name attribute,
5990         switch to annotations.
5991
5992         * glib/dbus-gidl.h (interface_info_get_binding_names)
5993         (method_info_get_binding_names)
5994         (interface_info_get_binding_name, method_info_get_binding_name)
5995         (interface_info_set_binding_name, method_info_set_binding_name):
5996         Remove.
5997         (interface_info_get_annotations, method_info_get_annotations)
5998         (interface_info_get_annotation, method_info_get_annotation)
5999         (interface_info_add_annotation, method_info_add_annotation):
6000         Prototype.
6001
6002         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6003         for "bindings".
6004         (struct MethodInfo): Ditto.
6005         Straightfoward conversion of binding methods into annotation methods
6006         as prototyped.
6007
6008         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6009
6010         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6011
6012         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6013         Use new annotation API.
6014
6015         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6016         annotation element.
6017         
6018         * doc/dbus-specification.xml: Discuss introspection annotations,
6019         include list of well-known annotations.
6020
6021         * test/glib/test-service-glib.xml: Make validate against new DTD.
6022
6023 2005-02-17  Colin Walters  <walters@verbum.org>
6024
6025         This patch is based on initial work from
6026         Paul Kuliniewicz <kuliniew@purdue.edu>.
6027
6028         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6029         initialization of GValue from dbus type to here.
6030         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6031         for the "glib-genmarshal" program from a DBus type.
6032         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6033         into the C name for it we use in the glib bindings.
6034         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6035         glib C type (not GValue).
6036         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6037
6038         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6039         from dbus-gobject.c.
6040
6041         * glib/dbus-gutils.h: Prototype it.
6042
6043         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6044         (marshal_dbus_message_to_g_marshaller): Use new shared function
6045         dbus_glib_marshal_dbus_message_to_gvalue_array.
6046
6047         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6048         Will be changed once we have annotations.
6049
6050         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6051         GStaticRWLock.  Callers updated.
6052         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6053         (string_table_next): New function for iterating over zero-terminated
6054         string value array.
6055         (string_table_lookup): New function; retrieves specific entry in
6056         array.
6057         (get_method_data): New function; look up method data in object data chunk.
6058         (object_error_domain_prefix_from_object_info)
6059         (object_error_code_from_object_info): New functions, but not implemented yet.
6060         (method_interface_from_object_info): New function; retrieve interface name.
6061         (method_name_from_object_info): New function; retrieve method name.
6062         (method_arg_info_from_object_info): New function; retrieve argument data.
6063         (arg_iterate): New function; iterates over serialized argument data.
6064         (method_dir_signature_from_object_info): New function; returns a
6065         GString holding type signature for arguments for just one
6066         direction (input or output).
6067         (method_input_signature_from_object_info)
6068         (method_output_signature_from_object_info): New functions.
6069         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6070         converts dbus message arguments into a GValue array.  Used for both
6071         signal handling and method invocation.
6072         (struct DBusGlibWriteIterfaceData): New utility structure.
6073         (write_interface): New function; generate introspection XML for
6074         an interface.
6075         (introspect_interfaces): New function; gathers all interface->methods,
6076         generates introspection XML for them.
6077         (handle_introspect): Invoke introspect_interfaces.
6078         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6079         (lookup_object_and_method): New function; examines an incoming message
6080         and attempts to match it up (via interface, method name, and argument
6081         signature) with a known object and method.
6082         (gerror_domaincode_to_dbus_error_name): New function; converts a
6083         GError domain and code into a DBus error name.  Needs GError data
6084         added to object introspection to work well.
6085         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6086         GError.
6087         (invoke_object_method): New function to invoke an object method
6088         looked up via lookup_object_and_method.  Parses the incoming
6089         message, turns it into a GValue array, then invokes the marshaller
6090         specified in the DBusGMethodInfo.  Creates a new message with
6091         either return values or error message as appropriate.
6092         (gobject_message_function): Invoke lookup_object_and_method and
6093         invoke_object_method.
6094
6095         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6096         (enum DBusBindingOutputMode): New enum for binding output modes.
6097         (pretty_print): Print binding names.
6098         (dbus_binding_tool_error_quark): GError bits.
6099         (version): Fix typo.
6100         (main): Create GIOChannel for output.  Parse new --mode argument,
6101         possible values are "pretty-print", "glib-server", "glib-client".
6102         Use mode to invoke appropriate function.
6103         
6104         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6105
6106         * glib/dbus-glib-tool.h: New header, just includes GError bits
6107         for now.
6108
6109         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6110         maps binding style to name.
6111         (struct MethodInfo): Ditto.
6112         (get_hash_keys, get_hash_key): Utility function, returns keys for
6113         a GHashTable.
6114         (interface_info_new, method_info_new): Initialize bindings.
6115         (interface_info_unref, method_info_unref): Destroy bindings.
6116         (method_info_get_binding_names, method_info_get_binding_name)
6117         (interface_info_get_binding_names, interface_info_get_binding_name):
6118         Functions for retrieving binding names.
6119         (method_info_set_binding_name, interface_info_set_binding_name):
6120         Functions for setting binding names.
6121
6122         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6123         for glib binding generation.
6124
6125         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6126         and client-side glib glue generation.
6127
6128         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6129         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6130         dbus-glib-tool.h.
6131
6132         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6133         of using GClosureMarshal directly.
6134         (struct DBusGObjectInfo): Add n_infos member.
6135
6136         * test/glib/test-service-glib.xml: New file; contains introspection data
6137         for MyTestObject used in test-service-glib.c.
6138
6139         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6140         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6141         (my_object_uppercase, my_object_many_args): New test methods.
6142         (main): Use dbus_g_object_class_install_info to include generated object
6143         info.
6144
6145         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6146         as well as client-side bindings.
6147
6148         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6149         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6150         using both the dbus_gproxy stuff directly as well as the generated bindings.
6151
6152 2005-02-15  Havoc Pennington  <hp@redhat.com>
6153
6154         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6155         complete a pending call, don't run filters first.
6156
6157         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6158         dbus_pending_call_steal_reply
6159
6160         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6161         _dbus_connection_block_pending_call
6162         (dbus_pending_call_get_reply): change to steal_reply and return a
6163         ref
6164
6165         * dbus/dbus-connection.c
6166         (dbus_connection_send_with_reply_and_block): port to work in terms
6167         of DBusPendingCall
6168         (_dbus_connection_block_pending_call): replace block_for_reply
6169         with this
6170
6171 2005-02-14  Havoc Pennington  <hp@redhat.com>
6172
6173         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6174         properly handle looking up group information by name; fix 
6175         from j@bootlab.org
6176
6177 2005-02-13  Havoc Pennington  <hp@redhat.com>
6178
6179         * dbus/dbus-connection.c (dbus_connection_return_message) 
6180         (dbus_connection_borrow_message): hold dispatch lock while message
6181         is outstanding
6182         (_dbus_connection_block_for_reply): hold dispatch lock while we
6183         block for the reply, so nobody steals our reply
6184         (dbus_connection_pop_message): hold the dispatch lock while we
6185         pluck the message
6186
6187 2005-02-13  Havoc Pennington  <hp@redhat.com>
6188
6189         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6190         (_dbus_connection_release_dispatch)
6191         (_dbus_connection_acquire_io_path)
6192         (_dbus_connection_release_io_path): make the mutex and condvar
6193         control access to the "acquired" flag. Drop the connection lock
6194         while waiting on the condvar. Hopefully these are baby steps in
6195         roughly the right direction.
6196
6197 2005-02-13  Havoc Pennington  <hp@redhat.com>
6198
6199         * dbus/dbus-connection.c: use separate mutexes for the condition
6200         variables; this is some kind of baseline for sanity, but the
6201         condition variables still aren't used correctly afaict
6202
6203 2005-02-13  Havoc Pennington  <hp@redhat.com>
6204
6205         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6206         fix a double-unlock
6207
6208         * dbus/dbus-connection.c
6209         (_dbus_connection_detach_pending_call_unlocked): add this
6210
6211         Initial semi-correct pass through to fix thread locking; there are
6212         still some issues with the condition variable paths I'm pretty
6213         sure
6214         
6215         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6216         lock/unlock calls
6217
6218         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6219         rename to add _unlocked
6220         (struct DBusConnection): move "dispatch_acquired" and
6221         "io_path_acquired" to use only one bit each.
6222         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6223         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6224         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6225         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6226         (_dbus_connection_remove_timeout) 
6227         (_dbus_connection_toggle_timeout): drop lock when calling out to
6228         user functions; done in a hacky/bad way.
6229         (_dbus_connection_send_and_unlock): add a missing unlock
6230         (_dbus_connection_block_for_reply): add a missing unlock
6231
6232         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6233         drop lock in a hacky probably unsafe way to call out to user
6234         function
6235
6236 2005-02-12  Havoc Pennington  <hp@redhat.com>
6237
6238         * tools/dbus-tree-view.c (info_set_func_text): display more
6239         details on args
6240
6241         * bus/driver.c (bus_driver_handle_list_services): list the bus
6242         driver
6243
6244         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6245
6246         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6247         (method_info_get_n_args): new function
6248
6249 2005-02-12  Havoc Pennington  <hp@redhat.com>
6250
6251         * bus/driver.c (bus_driver_handle_introspect): add introspection
6252         for bus driver
6253
6254 2005-02-12  Havoc Pennington  <hp@redhat.com>
6255
6256         * bus/driver.c: put the signature of each bus driver method in the
6257         table of handlers and check it on incoming calls; this isn't
6258         really useful, but going to add introspect support in a minute.
6259
6260 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6261
6262         * mono/Connection.cs: The unpredictability of finalizers in mono
6263         prevents us from deterministically disconnecting the filters from
6264         the Service class's finalizer, so move tracking of filters and
6265         matches here.  Add API for that.
6266
6267         * mono/Service.cs: Remove the code, add code which calls the
6268         methods now on the Connection class.
6269
6270 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6271
6272         * python/dbus.py (class Sender): added to support dbus signals better
6273         (Bus::add_signal_receiver): added expand_args parameter which defaults
6274         to True.  When expand args is True the signal handler will pass the 
6275         message arguments as parameters to the signal handler.  If False
6276         revert to previous behavior where the signal handler must get the
6277         argument list from the message.  This is to help port applications
6278         like HAL that have a tendancy to send variable length argument lists.
6279         self._match_rule_to_receivers is now a dict of dicts.
6280         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6281         removing it from a list
6282         (Bus::_signal_func): change signal handlers so that interface,
6283         signal_name, service, path and message are packed into a Sender
6284         object and that is passed to the handler.  If expand_args is True
6285         extract the args list from the message and append it to the parameter
6286         list
6287         
6288         * python/dbus_bindings.pyx.in (class Signature): added to support 
6289         signiature types
6290         (MessageIter::__init__): changed iteration limit to match D-BUS
6291         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6292         STRUCT and VARIENT type support
6293         (MessageIter::python_value_to_dbus_sig): made recursive to support
6294         recursive types
6295         (MessageIter::append*): added Signature, dict, tuple 
6296         support
6297
6298         * python/examples/example-client.py: added examples of getting tuples
6299         and dicts
6300
6301         * python/examples/example-service.py: added examples of sending tuples
6302         and dicts
6303
6304         * python/examples/example-signal-recipient.py: Fixed to handle new
6305         signal callback format
6306
6307 2005-02-10  Havoc Pennington  <hp@redhat.com>
6308
6309         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6310         (call dbus_g_proxy_add_signal)
6311
6312         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6313         escape the hostname
6314         (_dbus_server_new_for_domain_socket): escape the path
6315
6316         * dbus/dbus-address.c (dbus_address_escape_value): new
6317         (dbus_address_unescape_value): new
6318         (dbus_parse_address): unescape values
6319
6320         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6321
6322         * doc/dbus-specification.xml: explain how to escape values in
6323         addresses
6324
6325 2005-02-10  Havoc Pennington  <hp@redhat.com>
6326
6327         * dbus/dbus-message-factory.c (generate_special): modify test to
6328         avoid using a non-basic dict key
6329
6330         * dbus/dbus-marshal-validate-util.c: add test for the below
6331
6332         * doc/dbus-specification.xml: require that dict keys are a basic
6333         type
6334
6335         * dbus/dbus-marshal-validate.c
6336         (_dbus_validate_signature_with_reason): require that dict key is a
6337         basic type
6338
6339 2005-02-10  Havoc Pennington  <hp@redhat.com>
6340
6341         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6342         change to be _and_unlock instead of _unlocked
6343
6344         * dbus/dbus-connection.c
6345         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6346         have no_update so we can find this bug quickly in future
6347
6348 2005-02-10  Havoc Pennington  <hp@redhat.com>
6349
6350         * dbus/dbus-message-util.c (verify_test_message): tests for string
6351         array
6352
6353         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6354         support for arrays of string/signature/path
6355
6356 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6357
6358         * dbus/dbus-connection.c
6359         (_dbus_connection_queue_received_message_link,
6360         _dbus_connection_message_sent): Add the path to
6361         the verbose output.
6362         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6363         _dbus_connection_send_preallocated_unlocked(), updated the
6364         dispatch status, and unlocks.  Fixes a bug where certain
6365         situations (like a broken pipe) could cause a Disconnect message
6366         to not be sent, tricking the bus into thinking a service was still
6367         there when the process had quit.
6368         (_dbus_connection_send_preallocated): Call
6369         _dbus_connection_send_preallocated_and_unlock().
6370         (_dbus_connection_send_and_unlock): Added.  Calls
6371         _dbus_connection_send_preallocated_and_unlock().
6372         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6373         (dbus_connection_send_with_reply): Update the dispatch status and
6374         unlock.
6375
6376         * mono/Service.cs (~Service): Added.  Removes the filter so that
6377         we don't get unmanaged code calling back into a GCed delegate.
6378         (RemoveFilter); Added.
6379
6380 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6381
6382         * dbus/dbus-message.c (dbus_message_iter_open_container):
6383         - Removed check for iterator type being an array because
6384         get_arg_type does not work with writer iterators
6385         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6386
6387 2005-02-07  Havoc Pennington  <hp@redhat.com>
6388
6389         * doc/dbus-specification.xml: some more language cleanups; add
6390         stuff about how to deal with invalid protocol and extension
6391         points; add _ to allowed chars in auth commands; add EXTENSION_
6392         auth command prefix
6393
6394 2005-02-06  Havoc Pennington  <hp@redhat.com>
6395
6396         * s/expected/required/ in a couple places for clarity
6397
6398 2005-02-07  Colin Walters  <walters@verbum.org>
6399
6400         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6401         sender or proposed_recipient.
6402
6403 2005-02-06  Havoc Pennington  <hp@redhat.com>
6404
6405         * dbus/dbus-message-factory.c (generate_special): more tests
6406
6407         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6408         array length that exceeds the maximum
6409
6410 2005-02-05  Havoc Pennington  <hp@redhat.com>
6411
6412         * dbus/dbus-message-factory.c (generate_special): more test cases,
6413         increasing coverage
6414
6415         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6416         reason why a signature was invalid
6417
6418         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6419         skip the length of the string before we look at it in validation
6420
6421         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6422         equal_substring
6423
6424         * dbus/dbus-message.c (_dbus_message_loader_new): default
6425         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6426
6427 2005-02-05  Havoc Pennington  <hp@redhat.com>
6428
6429         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6430         if the signature of a variant was empty
6431         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6432         struct with no element type)
6433
6434         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6435         mangled messages to break things
6436
6437 2005-02-04  Havoc Pennington  <hp@redhat.com>
6438
6439         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6440         g_quark_try_string() so it actually can return 0
6441         (dbus_g_proxy_connect_signal): ditto
6442
6443 2005-02-04  Havoc Pennington  <hp@redhat.com>
6444
6445         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6446         bogus warning
6447         (tristring_from_message): assert cleanly on null path/interface
6448         (should not be possible though I decided later)
6449         (dbus_g_proxy_dispose): move proxy manager unregistration here
6450         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6451         g_return_if_fail() checks
6452
6453 2005-02-04  Havoc Pennington  <hp@redhat.com>
6454
6455         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6456
6457         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6458         (with some minor changes)
6459
6460         * doc/dbus-specification.xml: add deprecated attribute to
6461         introspection format
6462
6463 2005-01-31  Havoc Pennington  <hp@redhat.com>
6464
6465         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6466         think it's sort of right
6467
6468 2005-01-30  Havoc Pennington  <hp@redhat.com>
6469
6470         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6471
6472 2005-01-30  Havoc Pennington  <hp@redhat.com>
6473
6474         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6475
6476         * autogen.sh: change to autotools 1.9
6477
6478         * glib/dbus-gproxy.c: completely change how signals work
6479         (dbus_g_proxy_add_signal): new function to specify signature of a
6480         signal
6481         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6482         and g_warning if the incoming message has the wrong signature.
6483
6484 2005-01-30  Havoc Pennington  <hp@redhat.com>
6485
6486         * tools/dbus-names-model.c (have_names_notify): fix this
6487
6488         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6489         up the string array handling a bit 
6490
6491 2005-01-30  Havoc Pennington  <hp@redhat.com>
6492
6493         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6494         (dbus_g_pending_call_cancel): new function
6495
6496         * dbus/dbus-glib.h: move GType decls for connection/message here;
6497         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6498         here, just kind of rationalizing how we handle all that
6499
6500         * tools/dbus-names-model.c: new file for a tree model listing the
6501         services on a bus
6502
6503         * tools/dbus-tree-view.c (model_new): use proper typing on the
6504         model rows
6505
6506 2005-01-30  Havoc Pennington  <hp@redhat.com>
6507
6508         * glib/dbus-gmain.c: add a custom GSource back that just checks
6509         whether the message queue has anything in it; otherwise, there are 
6510         cases where we won't see messages in the queue since there was no 
6511         IO visible to the glib main loop
6512
6513         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6514         increase default message timeout to 25 seconds
6515
6516 2005-01-30  Havoc Pennington  <hp@redhat.com>
6517
6518         * test/glib/test-profile.c (no_bus_stop_server): remove the
6519         warning about the g_warning that I just fixed
6520
6521         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6522         custom source, seems to be a lot easier to understand and work
6523         better.
6524
6525 2005-01-30  Havoc Pennington  <hp@redhat.com>
6526
6527         I think this main loop thing is conceptually broken, but here are 
6528         some band aids. I'll maybe rewrite it in a minute.
6529         
6530         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6531         custom GSource, so don't pass it in; confusing
6532         (gsource_server_finalize, gsource_connection_finalize): add
6533         finalize handlers that remove all the watches.  
6534
6535 2005-01-30  Havoc Pennington  <hp@redhat.com>
6536
6537         * glib/dbus-gobject.c (introspect_properties): fix the XML
6538         generated
6539
6540         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6541         which effectively detects the use of freed messages
6542
6543         * glib/dbus-gobject.c (handle_introspect): modify and return the
6544         reply message instead of the incoming message
6545
6546         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6547         gee, maybe it should SEND THE XML instead of just making a string
6548         and freeing it again ;-)
6549
6550         * tools/dbus-print-message.c (print_message): improve printing of
6551         messages
6552
6553         * configure.in: add debug-glib.service to the output
6554
6555 2005-01-30  Havoc Pennington  <hp@redhat.com>
6556
6557         dbus-viewer introspected and displayed the bus driver
6558         
6559         * dbus/dbus-object-tree.c 
6560         (object_tree_test_iteration): add tests for a handler registered on "/"
6561
6562         * dbus/dbus-object-tree.c
6563         (_dbus_decompose_path): fix to handle path "/" properly
6564         (run_decompose_tests): add tests for path decomposition
6565         
6566         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6567         properly
6568
6569         * glib/dbus-gobject.c (handle_introspect): fix quotes
6570
6571         * test/glib/run-test.sh: support launching the bus, then running
6572         dbus-viewer
6573
6574         * test/glib/test-service-glib.c (main): put in a trivial gobject
6575         subclass and register it on the connection
6576
6577         * bus/driver.c (bus_driver_handle_introspect): implement
6578         introspection of the bus driver service
6579
6580         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6581         identifiers, doctype decl
6582
6583         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6584         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6585         returning the service unchanged.
6586         (bus_driver_handle_message): remove old check for reply_serial in
6587         method calls, now the message type deals with that
6588         (bus_driver_handle_message): handle NULL interface
6589
6590         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6591
6592         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6593         -1 for len
6594
6595         * tools/dbus-viewer.c: add support for introspecting a service on
6596         a bus
6597
6598         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6599         (dbus_g_pending_call_unref): add
6600
6601 2005-01-29  Havoc Pennington  <hp@redhat.com>
6602
6603         * tools/dbus-tree-view.c: add support for displaying properties.
6604         (run dbus-viewer with an introspect xml file as arg, then resize
6605         the window so the tree elements show up, not sure what that is)
6606
6607         * glib/dbus-gobject.c (handle_introspect): return
6608         org.freedesktop.Properties and org.freedesktop.Introspectable
6609         interfaces when we are introspected.
6610
6611         * doc/dbus-specification.xml: allow empty interface name when 
6612         Get/Set a property
6613
6614 2005-01-29  Havoc Pennington  <hp@redhat.com>
6615
6616         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6617         though it uses glib, it could be extended for any binding in
6618         principle
6619
6620         * glib/dbus-gobject.c (gobject_message_function): change to the
6621         new way properties work
6622
6623         * dbus/dbus-protocol.h: add the new interfaces
6624
6625         * doc/dbus-specification.xml: document the introspection format,
6626         Introspectable interface, and add an org.freedesktop.Properties
6627         interface.
6628
6629         * glib/dbus-gparser.c: add support for a <property> element
6630
6631         * glib/dbus-gidl.c: add PropertyInfo
6632
6633         * glib/dbus-gobject.c (handle_introspect): put the outermost
6634         <node> outside the signal and property descriptions.
6635         (introspect_properties): export properties as <property> rather
6636         than as method calls
6637
6638 2005-01-28  Havoc Pennington  <hp@redhat.com>
6639
6640         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6641         related to authentication protocol
6642
6643 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6644
6645         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6646                 - BUS_ACTIVATION -> BUS_STARTER
6647                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6648                 - class MessageIter (__init__): Added recursion checking 
6649                 so we throw a nice error instead of just disconnecting from the
6650                 bus.
6651                 (get): Added arg_type parameter for recursion.
6652                 Removed the nil type
6653                 Added signiture type placeholder (not implemented)
6654                 Added struct type placeholder (not implemented)
6655                 Added varient type placeholder (not implemented)
6656                 Commented out dict type for now     
6657                 (get_element_type): renamed from get_array_type
6658                 (get_*): changed to use the dbus_message_iter_get_basic API
6659                 (get_*_array): removed in favor of recursive get_array method
6660                 (get_array): new recursive method which calls get to marshal
6661                 the elements of the array
6662                 (value_to_dbus_sig): New method returns the corrasponding
6663                 dbus signiture to a python value
6664                 (append): Comment out dict handling for now
6665                 Handle lists with the new recursive API
6666                 Comment out None handling for now
6667                 (append_nil): removed
6668                 (append_*): changed to use dbus_message_iter_append_basic API
6669                 (append_*_array): removed in favor of recursive append_array 
6670                 method
6671                 (__str__): Make it easier to print out recursive iterators
6672                 for debugging
6673                 - class Message (__str__): moved type inspection to the
6674                 MessageIter class' __str__ method
6675                 (get_iter): Added an append parameter wich defaults to False
6676                 If True use the new API's to create an append iterator
6677
6678         * python/dbus.py: Update to use new bindings API
6679                 - TYPE_ACTIVATION -> TYPE_STARTER
6680                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6681                 - class ActivationBus -> class StarterBus
6682                 - class RemoteObject (__call__): get an append iterator
6683                 - (_dispatch_dbus_method_call): get an append iterator
6684                 - class Object (emit_signal): get an append iterator
6685
6686         * python/examples/: Fixed up the examples to work with the new API
6687                 
6688 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6689
6690         * configure.in: Bump version up to 0.30.
6691
6692         * HACKING: Add a release item to bump the version number up after 
6693         a release.
6694
6695 2005-01-28  Havoc Pennington  <hp@redhat.com>
6696
6697         * doc/dbus-specification.xml: update to describe 16-bit types and
6698         dict entries
6699
6700         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6701         assertion
6702
6703         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6704         type
6705
6706         * dbus/dbus-marshal-recursive.c: implement
6707
6708 2005-01-27  Havoc Pennington  <hp@redhat.com>
6709
6710         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6711
6712         * configure.in: find the right type for 16 and 32 bit ints as well
6713         as 64
6714
6715         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6716         the 16-bit types so people don't have to stuff them in 32-bit or
6717         byte arrays.
6718
6719 2005-01-27  Havoc Pennington  <hp@redhat.com>
6720
6721         * dbus/dbus-message.c: byteswap the message if you init an
6722         iterator to read/write from it
6723         
6724         * dbus/dbus-marshal-byteswap.c: new file implementing 
6725         _dbus_marshal_byteswap()
6726
6727         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6728
6729 2005-01-26  Havoc Pennington  <hp@redhat.com>
6730         
6731         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6732         build, apparently - nobody noticed?)
6733         
6734 2005-01-26  Havoc Pennington  <hp@redhat.com>
6735
6736         * dbus/dbus-marshal-recursive.h: remove todo comment
6737
6738 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6739
6740         * Land the mono binding changes to conform to the new APIs.
6741
6742         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6743         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6744
6745         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6746         type code as a string.
6747         (InitAppending): Rename dbus_message_append_iter_init() to
6748         dbus_message_iter_init_append().
6749
6750         * mono/BusDriver.cs: Rename ServiceEventHandler to
6751         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6752         Rename ServiceOwnerChanged to NameOwnerChanged.
6753
6754         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6755         underlying C call.
6756
6757         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6758
6759         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6760         dbus_bus_acquire_service() to dbus_bus_request_name().
6761
6762         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6763         of Type.UnderlyingSystemType to get the correct element type for
6764         the array.
6765         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6766         dbus_message_get_{element|arg}_type() instead of
6767         dbus_message_iter_init_array_iterator().
6768         (Append): Replace dbus_message_iter_append_array() with
6769         dbus_message_iter_open_container() and
6770         dbus_message_iter_close_container().
6771
6772         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6773         types have been removed.
6774         
6775         * mono/DBusType/*.cs: Replace calls of
6776         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6777         but specify the type in the DllImport extern declaration.  Ditto
6778         for dbus_message_iter_append_[type]() ->
6779         dbus_message_iter_append_basic().
6780
6781         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6782         NameOwnerChangedHandler.
6783
6784 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6785
6786         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6787                 - get_base_service -> get_unique_name
6788                 - bus_get_base_service -> bus_get_unique_name
6789                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6790                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6791                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6792                 - bus_activate_service -> bus_start_service_by_name
6793                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6794                 - bus_acquire_service -> bus_request_name
6795                 - dbus_bus_acquire_service -> dbus_bus_request_name
6796                 - bus_service_exists -> bus_name_has_owner
6797                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6798
6799         * python/dbus.py: Rename of methods
6800                 - activate_service -> start_service_by_name
6801                 - bus_acquire_service -> bus_request_name
6802                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6803                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6804
6805         
6806 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6807
6808         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6809         signature for the method that can't be found.
6810
6811         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6812         the message has any arguments, we need to call
6813         _dbus_type_reader_get_current_type(), not
6814         _dbus_type_reader_has_next().
6815
6816 2005-01-24  Havoc Pennington  <hp@redhat.com>
6817
6818         * dbus/dbus-message-factory.c: more testing of message validation
6819
6820         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6821         header
6822
6823 2005-01-23  Havoc Pennington  <hp@redhat.com>
6824
6825         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6826         get this all working, not many tests in the framework yet though
6827
6828 2005-01-22  Havoc Pennington  <hp@redhat.com>
6829
6830         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6831         tutorial, based on work from David Wheeler.
6832
6833 2005-01-21  Havoc Pennington  <hp@redhat.com>
6834
6835         * dbus/dbus-bus.c: add more return_if_fail checks
6836
6837         * dbus/dbus-message.c (load_message): have the "no validation"
6838         mode (have to edit the code to toggle the mode for now though)
6839
6840         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6841         skips all validation; I want to use this at least for benchmark
6842         baseline, I'm not sure if it should be a publicly-available switch.
6843
6844 2005-01-21  Havoc Pennington  <hp@redhat.com>
6845
6846         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6847         toplevel doxygen group as the low-level API stuff
6848
6849         * dbus/dbus.h: note that libdbus is the low-level API
6850
6851 2005-01-20  Havoc Pennington  <hp@redhat.com>
6852
6853         * update-dbus-docs.sh: script to update docs on the web site, only
6854         works for me though. neener.
6855
6856 2005-01-20  Havoc Pennington  <hp@redhat.com>
6857
6858         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6859         code can reveal bugs in it
6860
6861 2005-01-20  Havoc Pennington  <hp@redhat.com>
6862
6863         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6864         select() version, patches from Tor Lillqvist
6865
6866 2005-01-20  Havoc Pennington  <hp@redhat.com>
6867
6868         * doc/dbus-tutorial.xml: replace > with &gt;
6869
6870         * bus/services.c (bus_registry_acquire_service): validate the name
6871         and return a better error if it's no good.
6872
6873         * doc/dbus-specification.xml: note NO_AUTO_START change
6874
6875         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6876         from AUTO_START, we're toggling the default
6877
6878         * bus/dispatch.c: adapt the tests to change of auto-start default
6879
6880 2005-01-18  Havoc Pennington  <hp@redhat.com>
6881
6882         * rename dbus-daemon-1 to dbus-daemon throughout
6883
6884 2005-01-18  Havoc Pennington  <hp@redhat.com>
6885
6886         * Throughout, grand renaming to strip out the use of "service",
6887         just say "name" instead (or "bus name" when ambiguous).  Did not
6888         change the internal code of the message bus itself, only the
6889         programmer-facing API and messages.
6890         
6891         * doc/dbus-specification.xml: further update the message bus section
6892         
6893         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6894         in error case
6895
6896 2005-01-17  Havoc Pennington  <hp@redhat.com>
6897
6898         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6899         ever
6900
6901         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6902         "invalid name character" not only non-ASCII
6903
6904         * doc/dbus-specification.xml: further update spec, message bus 
6905         parts are still out-of-date but the marshaling etc. stuff is now
6906         accurate-ish
6907
6908 2005-01-17  Havoc Pennington  <hp@redhat.com>
6909
6910         * doc/dbus-specification.xml: partially update spec
6911
6912 2005-01-17  Havoc Pennington  <hp@redhat.com>
6913
6914         * Throughout, align variant bodies according to the contained
6915         type, rather than always to 8. Should save a fair bit of space in
6916         message headers.
6917         
6918         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6919         fix handling of case where p == end
6920
6921         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6922
6923 2005-01-17  Havoc Pennington  <hp@redhat.com>
6924
6925         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6926
6927         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6928         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6929         are marshaling/unmarshaling a boolean.
6930
6931 2005-01-16  Havoc Pennington  <hp@redhat.com>
6932
6933         This is about it on what can be disabled/deleted from libdbus
6934         easily, back below 150K anyhow. Deeper cuts are more work than 
6935         just turning the code off as I've done here.
6936         
6937         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6938         signed int convenience funcs
6939
6940         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6941         verbose mode
6942
6943         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6944         things out of libdbus
6945
6946         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6947         
6948         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6949         tests-enabled-only, though it should probably be deleted)
6950
6951         * dbus/dbus-message-util.c: same stuff
6952
6953         * dbus/dbus-auth-util.c: same stuff
6954
6955 2005-01-16  Havoc Pennington  <hp@redhat.com>
6956
6957         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6958
6959         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6960         way for stripping down dbus-userdb.c stuff included in libdbus.
6961         Rename _dbus_parse_uid for consistency.
6962
6963 2005-01-16  Havoc Pennington  <hp@redhat.com>
6964
6965         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6966         name the assertion failed in
6967
6968         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6969         (_dbus_return_val_if_fail): assert that the name of the function
6970         containing the check doesn't start with '_', since we only want to 
6971         use checks on public functions
6972         
6973         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6974         checks to assertions
6975
6976         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6977         change checks to asserts for private function
6978
6979         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6980         to asserts for private function
6981
6982         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6983         broken assertion that was breaking make check
6984         (_dbus_type_reader_array_is_empty): remove this rather than fix
6985         it, was only used in assertions
6986
6987 2005-01-16  Havoc Pennington  <hp@redhat.com>
6988
6989         * test/unused-code-gc.py: hacky script to find code that's used
6990         only by the bus (not libdbus) or used only by tests or not used at
6991         all. It has some false alarms, but looks like we can clean up a
6992         lot of size from libdbus.
6993
6994         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6995         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6996         
6997 2005-01-16  Havoc Pennington  <hp@redhat.com>
6998
6999         * Add and fix docs according to Doxygen warnings throughout
7000         source.
7001         
7002         * dbus/dbus-marshal-recursive.c
7003         (_dbus_type_reader_array_is_empty): change this to just call
7004         array_reader_get_array_len() and make it static
7005
7006         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7007         from get_array_type
7008         (dbus_message_iter_init_append): rename from append_iter_init
7009
7010         * dbus/dbus-marshal-recursive.c
7011         (_dbus_type_reader_get_element_type): rename from
7012         _dbus_type_reader_get_array_type
7013
7014 2005-01-15  Havoc Pennington  <hp@redhat.com>
7015
7016         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7017
7018         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7019         when DBUS_DISABLE_ASSERT
7020         (_dbus_marshal_set_basic): be sure we align for the string length
7021
7022         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7023         this look faster
7024
7025         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7026         inline macro version
7027         (_dbus_string_set_byte): provide inline macro version
7028
7029 2005-01-15  Havoc Pennington  <hp@redhat.com>
7030
7031         * Land the new message args API and type system.
7032
7033         This patch is huge, but the public API change is not 
7034         really large. The set of D-BUS types has changed somewhat, 
7035         and the arg "getters" are more geared toward language bindings;
7036         they don't make a copy, etc.
7037
7038         There are also some known issues. See these emails for details
7039         on this huge patch:
7040         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7041         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7042         
7043         * dbus/dbus-marshal-*: all the new stuff
7044
7045         * dbus/dbus-message.c: basically rewritten
7046
7047         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7048         freed blocks to be all non-nul bytes so using freed memory is less
7049         likely to work right
7050
7051         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7052         DBUS_FAIL_MALLOC=N environment variable, so you can do
7053         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7054         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7055         thorough.
7056
7057         * qt/message.cpp: port to the new message args API
7058         (operator<<): use str.utf8() rather than str.unicode()
7059         (pretty sure this is right from the Qt docs?)
7060
7061         * glib/dbus-gvalue.c: port to the new message args API
7062
7063         * bus/dispatch.c, bus/driver.c: port to the new message args API
7064
7065         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7066         "locked" flag to TRUE and align_offset to 0; I guess we never
7067         looked at these anyhow, but seems cleaner.
7068
7069         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7070         move allocation padding macro to this header; use it to implement
7071         (_DBUS_STRING_STATIC): ability to declare a static string.
7072
7073         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7074         change to return TRUE if the interface is not set.
7075
7076         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7077         to dbus-marshal-validate.[hc]
7078
7079         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7080         dbus-internals.c
7081
7082         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7083         to dbus-marshal-*.[hc]
7084
7085         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7086         function here from dbus-marshal.c
7087
7088 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7089
7090         * NEWS: Update for 0.23.
7091
7092         * configure.in: Release 0.23.
7093
7094 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7095
7096         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7097         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7098         behind.
7099
7100         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7101         uninstall"
7102
7103         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7104         is an enum, get the enum's underlying type.  Another mono
7105         1.1.3 fix.
7106
7107 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7108
7109         Patch from Sjoerd Simons <sjoerd@luon.net>
7110
7111         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7112         DESTDIR.  It breaks stuff.
7113
7114 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7115
7116         Patch from Tambet Ingo <tambet@ximian.com>
7117
7118         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7119         calling type.GetElementType().  The code previously depended on
7120         broken Mono behavior, which was fixed in Mono 1.1.3.
7121
7122         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7123         Activator.CreateInstance() so that the class's constructor is
7124         called with the right parameters.
7125
7126 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7127
7128         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7129
7130         * dbus/dbus-connection.c
7131         (_dbus_connection_queue_received_message_link): Call
7132         _dbus_connection_remove_timeout() instead of the _locked()
7133         variant, since it's always called from
7134         _dbus_connection_handle_watch(), which handles the locking.
7135         Removed the _locked() variant since it's no longer used.
7136
7137 2005-01-03  Havoc Pennington  <hp@redhat.com>
7138
7139         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7140         return
7141         
7142 2004-12-26  Havoc Pennington  <hp@redhat.com>
7143
7144         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7145
7146 2005-01-03  Havoc Pennington  <hp@redhat.com>
7147
7148         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7149         floating point
7150
7151         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7152
7153 2005-01-02  Havoc Pennington  <hp@redhat.com>
7154
7155         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7156
7157 2005-01-01  Havoc Pennington  <hp@redhat.com>
7158
7159         * configure.in: add -Wfloat-equal
7160
7161 2005-01-01  Havoc Pennington  <hp@redhat.com>
7162
7163         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7164         for a variety of reasons '==' doesn't do this.
7165
7166 2004-12-31  Havoc Pennington  <hp@redhat.com>
7167
7168         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7169         I keep wishing I had
7170
7171 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7172
7173         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7174
7175 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7176
7177         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7178         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7179         dbus-protocol.h.  Because they are defines and not enums they are not
7180         autogenerated.
7181
7182 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7183
7184         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7185         dbus_bus_activate_service
7186
7187         * python/dbus.py (Bus.activate_service): activate a service on the
7188         bus.
7189
7190 2004-12-24  Havoc Pennington  <hp@redhat.com>
7191
7192         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7193         file format has also changed and I haven't adapted to that yet
7194         
7195         * Makefile.am: load .gcno files from latest gcc
7196
7197 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7198         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7199
7200         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7201         lowlevel binding
7202
7203         * python/dbus.py (get_unix_user): Added binding to 
7204         call dbus_bindings.bus_get_unix_user
7205
7206         * python/extract.py: Modified the proto_pat regex to
7207         handle unsigned long
7208
7209 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7210
7211         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7212         better POSIX compliance.
7213
7214 2004-12-19  Havoc Pennington  <hp@redhat.com>
7215
7216         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7217         (_dbus_string_insert_8_aligned): new functions
7218
7219         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7220
7221 2004-12-18  Havoc Pennington  <hp@redhat.com>
7222
7223         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7224         macro
7225
7226         * dbus/dbus-message.c: fix a comment, and add a still-unused
7227         not-implemented function
7228
7229         * dbus/dbus-marshal.h: fix comment
7230
7231         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7232
7233 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7234
7235         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7236         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7237         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7238         Type.UnderlyingSystemType to get the actual system type
7239         underneath.  This code previously depended on the broken Mono
7240         behavior, which was fixed in 1.1.3.
7241
7242 2004-11-27  Havoc Pennington  <hp@redhat.com>
7243
7244         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7245         are disabled
7246         (_dbus_string_get_const_data): inline when asserts are disabled
7247
7248         * dbus/dbus-message.c: record the _dbus_current_generation of
7249         creation so we can complain if dbus_shutdown() is used improperly.
7250         Do this only if checks are enabled.
7251
7252         * dbus/dbus-connection.c: ditto
7253         
7254 2004-11-26  Havoc Pennington  <hp@redhat.com>
7255
7256         * test/glib/test-profile.c: add with_bus mode to profile echoes
7257         that go through the bus.
7258
7259         * test/glib/run-test.sh: add ability to run test-profile
7260
7261         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7262         config file reload.
7263
7264 2004-11-26  Havoc Pennington  <hp@redhat.com>
7265
7266         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7267         thing was implemented
7268
7269 2004-11-26  Havoc Pennington  <hp@redhat.com>
7270
7271         * test/glib/test-profile.c: tweak a bit, add support for some
7272         made-up minimal malloc overhead with plain sockets, since in 
7273         real life some sort of buffers are unavoidable thus we could 
7274         count them in the theoretical best case
7275
7276 2004-11-26  Havoc Pennington  <hp@redhat.com>
7277
7278         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7279         where I was trying to cache one too many messages
7280
7281 2004-11-26  Havoc Pennington  <hp@redhat.com>
7282
7283         * dbus/dbus-message.c: reimplement message cache as an array which 
7284         makes the cache about twice as fast and saves maybe 1.5% overall
7285
7286 2004-11-26  Havoc Pennington  <hp@redhat.com>
7287
7288         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7289         message cache lock here
7290
7291 2004-11-26  Havoc Pennington  <hp@redhat.com>
7292
7293         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7294         the "char byte_order" next to each other to save 4 bytes
7295         (dbus_message_new_empty_header): reduce preallocation, since the
7296         message cache should achieve a similar effect
7297         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7298         message cache that keeps a few DBusMessage around in a pool,
7299         another 8% speedup or so.
7300
7301         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7302
7303 2004-11-25  Havoc Pennington  <hp@redhat.com>
7304
7305         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7306         to write, without reading or blocking, try it before the poll()
7307         and skip the poll() if nothing remains to write. This is about a
7308         3% speedup in the echo client/server
7309
7310 2004-11-25  Havoc Pennington  <hp@redhat.com>
7311
7312         The primary change here is to always write() once before adding
7313         the write watch, which gives us about a 10% performance increase.
7314         
7315         * dbus/dbus-transport-unix.c: a number of modifications to cope
7316         with removing messages_pending
7317         (check_write_watch): properly handle
7318         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7319         messages_pending stuff
7320         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7321         AUTHENTICATED cases
7322         (unix_handle_watch): after writing, see if the write watch can be
7323         removed
7324         (unix_do_iteration): assert that write_watch/read_watch are
7325         non-NULL rather than testing that they aren't, since they 
7326         aren't allowed to be NULL. check_write_watch() at the end so 
7327         we add the watch if we did not finish writing (e.g. got EAGAIN)
7328
7329         * dbus/dbus-transport-protected.h: remove messages_pending call,
7330         since it resulted in too much inefficient watch adding/removing; 
7331         instead we now require that the transport user does an iteration 
7332         after queueing outgoing messages, and after trying the first
7333         write() we add a write watch if we got EAGAIN or exceeded our 
7334         max bytes to write per iteration setting
7335
7336         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7337         function
7338
7339         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7340         freed and then accessed, valgrind flagged this bug, fix it
7341
7342         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7343         as the last valid field plus 1, where really it is equal to the
7344         last valid field. Corrects some message corruption issues.
7345
7346         * dbus/dbus-mainloop.c: verbosity changes
7347
7348         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7349         instead of aborting in one of the test codepaths
7350
7351         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7352         caused not printing the pid ever again if a verbose was missing
7353         the newline at the end
7354         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7355
7356         * dbus/dbus-connection.c: verbosity changes; 
7357         (dbus_connection_has_messages_to_send): new function
7358         (_dbus_connection_message_sent): no longer call transport->messages_pending
7359         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7360         try to write() immediately, so we can avoid the write watch. This
7361         is the core purpose of this patchset
7362         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7363         dump the outgoing message queue, so nobody will get confused
7364         trying to send them or thinking stuff is pending to be sent
7365
7366         * bus/test.c: verbosity changes
7367
7368         * bus/driver.c: verbosity/assertion changes
7369
7370         * bus/dispatch.c: a bunch of little tweaks to get it working again
7371         because this patchset changes when/where you need to block.
7372
7373 2004-11-23  Havoc Pennington  <hp@redhat.com>
7374
7375         * test/glib/test-profile.c: modify to accept a plain_sockets
7376         argument in which case it will bench plain sockets instead of
7377         libdbus, for comparison purposes.
7378
7379 2004-11-22  Havoc Pennington  <hp@redhat.com>
7380
7381         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7382         threads for more time, so sysprof can get a grip on it.
7383
7384         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7385         pointless variable
7386
7387 2004-11-13  Havoc Pennington  <hp@redhat.com>
7388
7389         * test/glib/test-profile.c: fix this thing up a bit
7390
7391         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7392         preallocation sizes by a fair bit; not sure if this will be an
7393         overall performance win or not, but it does reduce reallocs.
7394
7395         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7396         the test hack that forced constant realloc if asserts are
7397         disabled, so we can profile sanely. Sprinkle in some
7398         _DBUS_UNLIKELY() which are probably pointless, but before I
7399         noticed the real performance problem I put them in.
7400         (_dbus_string_validate_utf8): micro-optimize this thing a little
7401         bit, though callgrind says it didn't help; then special-case
7402         ascii, which did help a lot; then be sure we detect nul bytes as
7403         invalid, which is a bugfix.
7404         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7405         superstition; use memset to nul the padding instead of a manual
7406         loop.
7407         (_dbus_string_get_length): inline this as a
7408         macro; it showed up in the profile because it's used for loop
7409         tests and so forth
7410
7411 2004-11-10  Colin Walters  <walters@verbum.org>
7412
7413         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7414         for extra paranoia.
7415
7416 2004-11-09  Colin Walters  <walters@verbum.org>
7417
7418         * dbus/dbus-string.c (_dbus_string_get_length): New
7419         function, writes DBusString to C buffer.
7420
7421         * dbus/dbus-string.h: Prototype it.
7422
7423         * dbus/dbus-message.c (dbus_message_type_to_string): New
7424         function, converts message type into C string.
7425
7426         * dbus/dbus-message.h: Prototype it.
7427
7428         * bus/selinux.c (bus_selinux_check): Take source pid,
7429         target pid, and audit data.  Pass audit data to
7430         avc_has_perm.
7431         (log_audit_callback): New function, appends extra
7432         audit information.
7433         (bus_selinux_allows_acquire_service): Also take
7434         service name, add it to audit data.
7435         (bus_selinux_allows_send): Also take message
7436         type, interface, method member, error name,
7437         and destination, and add them to audit data.
7438         (log_cb): Initialize func_audit.
7439         
7440         * bus/selinux.h (bus_selinux_allows_acquire_service)
7441         (bus_selinux_allows_send): Update prototypes 
7442
7443         * bus/services.c (bus_registry_acquire_service): Pass
7444         service name to bus_selinux_allows_acquire_service.
7445
7446         * bus/bus.c (bus_context_check_security_policy): Pass
7447         additional audit data.  Move assignment of dest
7448         to its own line.
7449
7450 2004-11-07  Colin Walters  <walters@verbum.org>
7451
7452         * dbus/dbus-transport-unix.c (do_authentication): Always
7453         initialize auth_completed.
7454         
7455 2004-11-07  Colin Walters  <walters@verbum.org>
7456
7457         * bus/bus.c (load_config): Break into three
7458         separate functions: process_config_first_time_only,
7459         process_config_every_time, and process_config_postinit.
7460         (process_config_every_time): Move call of
7461         bus_registry_set_service_context_table into
7462         process_config_postinit.
7463         (process_config_postinit): New function, does
7464         any processing that needs to happen late
7465         in initialization (and also on reload).
7466         (bus_context_new): Instead of calling load_config,
7467         open config parser here and call process_config_first_time_only
7468         and process_config_every_time directly.  Later, after
7469         we have forked but before changing UID,
7470         invoke bus_selinux_full_init, and then call
7471         process_config_postinit.
7472         (bus_context_reload_config): As in bus_context_new,
7473         load parse file inside here, and call process_config_every_time
7474         and process_config_postinit.
7475
7476         * bus/services.h, bus/services.c
7477         (bus_registry_set_service_context_table): Rename
7478         from bus_registry_set_sid_table.  Take string hash from config
7479         parser, and convert them here into SIDs.
7480
7481         * bus/config-parser.c (struct BusConfigParser): Have
7482         config parser only store a mapping of service->context
7483         string.
7484         (merge_service_context_hash): New function.
7485         (merge_included): Merge context string hashes instead
7486         of using bus_selinux_id_table_union.
7487         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7488         simply create a new string hash.
7489         (bus_config_parser_unref): Unref it.
7490         (start_selinux_child): Simply insert strings into hash,
7491         don't call bus_selinux_id_table_copy_over.
7492
7493         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7494         (bus_selinux_id_table_copy_over): Delete.
7495
7496 2004-11-03  Colin Walters  <walters@verbum.org>
7497
7498         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7499         variables.
7500         
7501 2004-11-03  Colin Walters  <walters@verbum.org>
7502
7503         * bus/test-main.c (test_pre_hook): Fix test logic,
7504         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7505
7506 2004-11-02  Colin Walters  <walters@redhat.com>
7507
7508         * bus/selinux.c (bus_selinux_init): Split into two functions,
7509         bus_selinux_pre_init and bus_selinux_post_init.
7510         (bus_selinux_pre_init): Just determine whether SELinux is
7511         enabled.
7512         (bus_selinux_post_init): Do everything else.
7513
7514         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7515         config file, and bus_selinux_post_init after.  This ensures that
7516         we don't lose the policyreload notification thread that
7517         bus_selinux_init created before forking previously.
7518         
7519         * bus/test-main.c (test_pre_hook): Update for split.
7520
7521 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7522
7523         Patch from Johan Fischer <linux@fischaz.com>
7524         
7525         * mono/doc/Makefile.am (install-data-local): Added directory
7526         install for DESTDIR
7527
7528 2004-10-29  Colin Walters  <walters@redhat.com>
7529
7530         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7531         parameter for fd to write pid to.       
7532
7533         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7534         
7535         * bus/bus.c (bus_context_new): Pass print_pid_fd
7536         to _dbus_become_daemon (bug #1720)
7537
7538 2004-10-29  Colin Walters  <walters@redhat.com>
7539
7540         Patch from Ed Catmur <ed@catmur.co.uk>
7541
7542         * mono/doc/Makefile.am (install-data-local): Handle
7543         DESTDIR.
7544
7545 2004-10-29  Colin Walters  <walters@redhat.com>
7546
7547         * bus/.cvsignore, qt/.cvsignore: Update.
7548
7549 2004-10-29  Colin Walters  <walters@redhat.com>
7550
7551         Patch from Kristof Vansant <de_lupus@pandora.be>
7552
7553         * configure.in: Detect Slackware.
7554         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7555         * bus/rc.messagebus.in: New file.
7556
7557 2004-10-29  Colin Walters  <walters@redhat.com>
7558
7559         * tools/dbus-monitor.c (filter_func): Return
7560         DBUS_HANDLER_RESULT_HANDLED in filter function
7561         for now.  See:
7562         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7563
7564 2004-10-29  Colin Walters  <walters@redhat.com>
7565
7566         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7567
7568         * bus/services.c (bus_registry_acquire_service): 
7569         Correctly retrieve service name from DBusString
7570         for printing.
7571
7572 2004-10-29  Colin Walters  <walters@redhat.com>
7573
7574         * dbus/dbus-glib.h: Update documentation to not
7575         refer to internal APIs.
7576
7577 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7578
7579         * mono/Arguments.cs (GetDBusTypeConstructor):
7580         type.UnderlyingSystemType will return "System.Byte" if you do it
7581         on "byte[]", which is not what we want.  So check the type.IsArray
7582         property and use System.Array instead.
7583
7584 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7585
7586         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7587         the DBusUserInfo structure since this is passed into the function.
7588         This would cause a double free when the function that allocated
7589         the structure would try to free it when an error occured.
7590
7591         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7592         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7593         for service activation to avoid 32bit/64bit parallel install issues
7594
7595 2004-10-21  Colin Walters  <walters@verbum.org>
7596
7597         * AUTHORS: Fix my email address, the @gnu.org one
7598         has been bouncing for some time.  Also add J5.
7599         
7600 2004-10-21  Colin Walters  <walters@verbum.org>
7601
7602         * dbus/dbus-transport-unix.c (do_authentication): Return
7603         authentication status to callers.
7604         (unix_handle_watch): If we completed authentication this round,
7605         don't do another read.  Instead wait until the next iteration,
7606         after we've read any pending data in the auth buffer.
7607         (unix_do_iteration): Ditto.
7608         (unix_handle_watch): Updated for new do_authentication prototype.
7609
7610 2004-10-18  Colin Walters  <walters@verbum.org>
7611
7612         * bus/selinux.c (bus_selinux_enabled): Handle
7613         --disable-selinux case.
7614         
7615 2004-10-18  Colin Walters  <walters@verbum.org>
7616
7617         * bus/selinux.h: Add bus_selinux_enabled.
7618         
7619         * bus/selinux.c (bus_selinux_enabled): Implement it.
7620         
7621         * bus/config-parser.c (struct include): Add
7622         if_selinux_enabled member.
7623         (start_busconfig_child): Parse if_selinux_enabled
7624         attribute for include.
7625         (bus_config_parser_content): Handle it.
7626
7627         * bus/session.conf.in, bus/system.conf.in: Add
7628         inclusion of context mapping to default config files;
7629         conditional on SELinux being enabled.
7630         
7631         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7632         
7633         * test/data/invalid-config-files/badselinux-1.conf, 
7634         test/data/invalid-config-files/badselinux-2.conf:
7635         Test files for bad syntax.
7636         
7637 2004-10-17  Colin Walters  <walters@verbum.org>
7638
7639         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7640         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7641         format specifier mismatches.
7642
7643 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7644
7645         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7646         format string.
7647
7648         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7649         pointer (bug #1540, Leonardo Boiko).
7650
7651 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7652
7653         * mono/BusDriver.cs: Changed BusDriver struct to remove
7654         the ServiceCreated and ServiceDeleted events and replace them
7655         with the new ServiceOwnerChanged event.
7656
7657         * mono/example/BusListener.cs: Added a new example program,
7658         which listens for and reports any ServiceOwnerChanged events
7659         on the bus driver.
7660
7661         * mono/example/Makefile.am (DESTDIR): Build changes for the
7662         new BusListener.cs example.
7663
7664 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7665
7666         * bus/signals.c (bus_match_rule_parse): validate the components of
7667         match rules (bug #1439).
7668
7669         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7670
7671 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7672
7673         * doc/dbus-specification.xml: document ServiceOwnerChanged
7674         signal.
7675         
7676         * bus/driver.c, bus/driver.h, bus/services.c: Use
7677         ServiceOwnerChanged signal instead of ServiceCreated and
7678         ServiceDeleted.
7679         
7680         * bus/dispatch.c: update testcase for the new signal.
7681
7682 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7683
7684         Patch from Nat Friedman <nat@novell.com>
7685
7686         * mono/Makefile.am: A number of small build fixes to allow "make
7687         distcheck" to succeed.
7688
7689         * mono/example/Makefile.am: "make distcheck" fixes.
7690
7691         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7692         key in @srcdir@.
7693
7694         * test/Makefile.am: "make distcheck" fixes.
7695
7696 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7697
7698         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7699
7700         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7701
7702         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7703         messages after the first one (bug #1389).
7704         
7705         * bus/dispatch.c (check_double_hello_message): add a test case for
7706         the double hello message bug.
7707         (check_existent_service_activation): fix check of spawning error.
7708         
7709 2004-09-16  David Zeuthen  <david@fubar.dk>
7710
7711         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7712
7713 2004-09-12  David Zeuthen  <david@fubar.dk>
7714
7715         Patch from Kay Sievers <kay.sievers@vrfy.org>
7716
7717         * bus/bus.c (bus_context_new):
7718         * bus/bus.h:
7719         * bus/main.c (usage)
7720         (main):
7721         Add commandline option --nofork to override configuration file
7722         setting.
7723
7724 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7725
7726         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7727         compilers don't like it (bug #974).
7728
7729 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7730
7731         * qt/connection.*: Applied patch by Jérôme Lodewyck
7732         <lodewyck@clipper.ens.fr> to integrate an existing
7733         connection into the Qt eventloop
7734
7735 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7736
7737         * mono/BusDriver.cs: Added.  This is a class for interacting with
7738         the org.freedesktop.DBus service.
7739
7740         * mono/Message.cs: Added a mechanism to expose the message that is
7741         currently being dispatched via the static Message.Current
7742         property.  Added Message.Sender and Message.Destination
7743         properties.
7744
7745         * mono/Handler.cs: Expose the dispatched message via
7746         Message.Current when handling method calls.
7747
7748         * mono/Service.cs: Expose the dispatched message via
7749         Message.Current when handling signal emissions.
7750         
7751         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7752         Connection.BaseService property.
7753
7754 2004-08-28  Havoc Pennington  <hp@redhat.com>
7755
7756         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7757
7758         More fixes from Steve Grubb
7759         
7760         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7761         (_dbus_listen_tcp_socket): fix fd leak
7762
7763         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7764         EINTR to a bit lower in the code
7765
7766 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7767
7768         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7769         TRUE if we are inquiring about the existence of the built-in
7770         org.freedesktop.DBus service.
7771
7772 2004-08-25  John Palmieri  <johnp@redhat.com>
7773         * bus/config-parser.c:
7774         (struct PolicyType): Add POLICY_CONSOLE
7775         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7776         (start_busconfig_child): Sets up console element when
7777         <policy at_console=""> is encountered in a policy file
7778         (append_rule_from_element): Convert console elements to console
7779         rules.
7780
7781         * bus/policy.c: 
7782         (bus_policy_create_client_policy): Add console rules to the client
7783         policy based on if the client is at the console
7784         (bus_policy_append_console_rule): New function for adding a
7785         console rule to a policy
7786         (bus_policy_merge): Handle console rule merging
7787
7788         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7789         where we check for console user files
7790         
7791         * dbus/dbus-sysdeps.c:
7792         (_dbus_file_exists): New function which checks if the given
7793         file exists
7794         (_dbus_user_at_console): New function which does the system
7795         specific process of checking if the user is at the console
7796
7797         * dbus/dbus-userdb.c:
7798         (_dbus_is_console_user): New function converts a UID to user name
7799         and then calls the system specific _dbus_user_at_console to 
7800         see if the user is at the console and therefor a console user
7801
7802 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7803
7804         * bus/config-parser.c (set_limit):
7805         * bus/dbus-daemon-1.1.in:
7806         * test/data/valid-config-files/many-rules.conf: set the
7807         max_match_rules_per_connection limt from the config file. 
7808
7809         * doc/busconfig.dtd: update the DTD.
7810
7811         * bus/driver.c: remove some unused variables.
7812
7813 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7814
7815         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7816         it's been replaced by dbus_g_bus_get
7817
7818 2004-08-23  Colin Walters  <walters@redhat.com>
7819
7820         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7821
7822         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7823
7824         * bus/selinux.c: Create a thread for policy reload notification.
7825         (bus_selinux_get_policy_root): Implement.
7826
7827         * bus/config-parser.c (start_busconfig_child)
7828         (bus_config_parser_content): Support SELinux-root relative
7829         inclusion.
7830
7831         * configure.in <HAVE_SELINUX>: Add -lpthread.
7832         
7833         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7834         (test_post_hook): Move memory checking into here.
7835         (test_pre_hook, test_post_hook): Move SELinux checks in
7836         here, but conditional on a DBUS_TEST_SELINUX environment
7837         variable.  Unfortunately we can't run the SELinux checks
7838         as a normal user, since they won't have any permissions
7839         for /selinux.  So this will have to be tested manually
7840         for now, until we have virtualization for most of
7841         libselinux.
7842         
7843 2004-08-23  Havoc Pennington  <hp@redhat.com>
7844
7845         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7846         drop supplementary groups, suggested by Steve Grubb
7847
7848 2004-08-20  Colin Walters  <walters@redhat.com>
7849
7850         * bus/config-parser.c (start_busconfig_child): Remove some unused
7851         variables.
7852         
7853         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7854         warning.
7855
7856 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7857
7858         * configure.in: If --enable-mono is passed in, if we can't find
7859         mono error out.
7860
7861         * mono/Makefile.am: Use /gacutil to install assemblies into the
7862         GAC and not /root.
7863
7864 2004-08-12  Havoc Pennington  <hp@redhat.com>
7865
7866         * NEWS: update for 0.22
7867
7868         * configure.in: release 0.22
7869
7870 2004-08-11  Colin Walters  <walters@redhat.com>
7871
7872         * tools/dbus-send.c (main, usage): Add --reply-timeout
7873         argument.
7874
7875 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7876
7877         * bus/bus.c (process_config_first_time_only): get rid of an unused
7878         DBusError that was causing a memoy leak (bug #989).
7879
7880         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7881         fix compilation on Solaris/Forte C (bug #974)
7882
7883         * bus/main.c (main): plug two minuscule memleaks.
7884
7885 2004-08-10  Havoc Pennington  <hp@redhat.com>
7886
7887         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7888
7889 2004-08-09  Havoc Pennington  <hp@redhat.com>
7890
7891         * COPYING: switch to Academic Free License version 2.1 instead of
7892         2.0, to resolve complaints about patent termination clause.
7893
7894 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7895
7896         * README: added documentation for the --enable-python 
7897         configure switch.
7898
7899 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7900
7901         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7902         _unref in the SELinux support.
7903
7904         * doc/busconfig.dtd: update DTD for SELinux support.
7905
7906         * bus/config-loader-libxml.c: fix error handler and parser
7907         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7908
7909         * configure.in: remove the warning about libxml2.
7910
7911         * dbus/dbus-bus.c: silence doxygen warning.
7912
7913 2004-07-31  Colin Walters  <walters@redhat.com>
7914
7915         * configure.in: Move #error in SELinux check to its own line.
7916
7917 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7918
7919         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7920         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7921         dbus_error_set.
7922
7923         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7924         broken by the change in the _SET_OOM macros.
7925
7926 2004-07-31  Colin Walters  <walters@redhat.com>
7927
7928         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7929         BUS_SET_OOM.
7930
7931 2004-07-31  Colin Walters  <walters@redhat.com>
7932
7933         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7934         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7935         AC_MSG_CHECKING.
7936
7937 2004-07-24  Havoc Pennington  <hp@redhat.com>
7938
7939         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7940
7941         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7942         functionality
7943
7944         * configure.in: add --enable-selinux
7945         
7946         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7947
7948         * bus/main.c (main): initialize and shut down selinux
7949
7950         * bus/connection.c: store SELinux ID on each connection, to avoid 
7951         repeated getting of the string context and converting it into 
7952         an ID
7953
7954         * bus/bus.c (bus_context_get_policy): new accessor, though it
7955         isn't used
7956         (bus_context_check_security_policy): check whether the security
7957         context of sender connection can send to the security context of
7958         recipient connection
7959
7960         * bus/config-parser.c: add parsing for <selinux> and <associate>
7961         
7962         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7963         implement dbus_connection_get_unix_fd()
7964
7965         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7966         function, used by the selinux stuff
7967         
7968 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7969
7970         * bus/config-loader-libxml.c: complete the implementation of
7971         libxml backend for config file loader. Doesn't work with full OOM
7972         test yet. 
7973         
7974         * configure.in: change error when selecting libxml into a warning.
7975         
7976         * test/data/invalid-config-files: add two non-well-formed XML
7977         files. 
7978         
7979         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7980         
7981         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7982         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7983         be necessary to read all the buffer. (bug #894)
7984
7985         * bus/activation.c (bus_activation_activate_service): fix a
7986         potential assertion failure (bug #896). Small optimization in the
7987         case of auto-activation messages.
7988
7989         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7990         add test case for byte-through-vararg bug (#901). patch by Kimmo
7991         Hämäläinen. 
7992
7993 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7994
7995         * python/dbus.py:
7996         * python/dbus_bindings.pyx.in:
7997         Add dbus.init_gthreads (), allow emit_signal to pass
7998         arguments to the signal.
7999         
8000 2004-07-24  Havoc Pennington  <hp@redhat.com>
8001
8002         * AUTHORS: add some people, not really comprehensively, let me
8003         know if I missed you
8004
8005 2004-07-24  Havoc Pennington  <hp@redhat.com>
8006
8007         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8008         Owen
8009
8010         * test/Makefile.am (DIST_SUBDIRS): here also
8011
8012 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8013
8014         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8015         breaking build on Solaris, reported by Farhad Saberi on the ML.
8016
8017         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8018         va_arg invocation to account for integer promotion in the case of
8019         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8020
8021         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8022         _dbus_list_get_first_link, not _dbus_list_get_first.
8023
8024         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8025
8026         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8027         handler functions so that the asserts in _dbus_object_subtree_unref
8028         do not fail.
8029
8030         * dbus/dbus-transport-unix.c (do_reading):
8031         _dbus_transport_queue_messages return value is of type
8032         dbus_bool_t, not DBusDispatchStatus.
8033         
8034 2004-07-19  David Zeuthen  <david@fubar.dk>
8035
8036         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8037
8038         * bus/dispatch.c:
8039         (check_get_connection_unix_user): Debug says GetProperty; but the
8040         method is called GetConnectionUnixUser
8041         (check_get_connection_unix_process_id): New function
8042         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8043         also call check_get_connection_unix_process_id()
8044         
8045         * bus/driver.c:
8046         (bus_driver_handle_get_connection_unix_process_id): New function,
8047         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8048         interface
8049         
8050         * dbus/dbus-auth.c:
8051         (handle_server_data_external_mech): Set pid from the credentials
8052         obtained from the socket
8053         
8054         * dbus/dbus-connection.c:
8055         (dbus_connection_get_unix_process_id): New function
8056         
8057         * dbus/dbus-connection.h: 
8058         Add prototype for dbus_connection_get_unix_process_id
8059         
8060         * dbus/dbus-transport.c:
8061         (_dbus_transport_get_unix_process_id): New function
8062         
8063         * dbus/dbus-transport.h:
8064         Add prototype for _dbus_transport_get_unix_process_id
8065         
8066 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8067
8068         * dbus/dbus-message.c: Message counter fix, patch by Christian
8069         Hammond <chipx86@gnupdate.org>
8070
8071 2004-07-18  Seth Nickell  <seth@gnome.org>
8072
8073         * python/dbus.py:
8074         * python/dbus_bindings.pyx.in:
8075         * python/tests/test-client.py:
8076
8077         Add dbus.ByteArray and dbus_bindings.ByteArray
8078         types so that byte streams can be passed back.
8079
8080         Give jdahlin the heaps of credit that are so
8081         rightfully his.
8082         
8083 2004-07-12  Seth Nickell  <seth@gnome.org>
8084
8085         * python/dbus.py:
8086
8087         Add message argument to the default object_method_handler
8088         function.
8089         
8090         * python/dbus_bindings.pyx.in:
8091
8092         Automatically return NIL when passed an empty list
8093         (we can't pass back a list since lists are typed
8094         and we don't have any idea what type the the client
8095         intended the list to be... :-( )
8096         
8097 2004-07-10  Seth Nickell  <seth@gnome.org>
8098
8099         * python/examples/Makefile.am:
8100
8101         Fix distcheck breakage caused by new examples.
8102
8103 2004-07-10  Seth Nickell  <seth@gnome.org>
8104
8105         * python/dbus.py:
8106
8107         Add "message" argument to service-side dbus.Object
8108         methods. This will break existing services written
8109         using the python bindings, but will allow extraction
8110         of all the message information (e.g. who its from).
8111
8112         Add improved "object oriented" signal handling/emission.
8113         
8114         * python/examples/example-service.py:
8115
8116         Nix this example.
8117         
8118         * python/examples/example-signal-emitter.py:
8119         * python/examples/example-signal-recipient.py:
8120
8121         Two new examples that show how to emit and receive
8122         signals using the new APIs.
8123         
8124         * python/examples/example-signals.py:
8125         * python/examples/gconf-proxy-service.py:
8126         * python/examples/gconf-proxy-service2.py:
8127
8128         Add "message" argument to service methods.
8129
8130 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8131
8132         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8133         * dbus/bus.c (dbus_bus_get_unix_user)
8134         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8135         method of org.freedesktop.DBus interface.
8136
8137         * bus/dispatch.c: test case
8138
8139 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8140
8141         * python/Makefile.am: switched include directory from glib/ to dbus/
8142         since dbus-glib.h moved
8143  
8144 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8145
8146         * configure.in: prevent building the gcj stuff and libxml loader
8147         since they are broken.
8148
8149 2004-06-20  Havoc Pennington  <hp@redhat.com>
8150
8151         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8152         codes from the dbus error names
8153         
8154         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8155         as dbus/dbus-glib.h and that breakage is now visible due to 
8156         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8157         
8158         * glib/dbus-glib.h: s/gproxy/g_proxy/
8159
8160         * dbus/dbus-shared.h: new header to hold stuff shared with
8161         binding APIs
8162         
8163         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8164         than dbus-errors.h
8165
8166         * glib/dbus-glib.h (dbus_set_g_error): move to
8167         dbus-glib-lowlevel.h
8168
8169         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8170         of stuff to enable this
8171
8172         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8173
8174         * a bunch of other changes with the same basic "separate glib 
8175         bindings from dbus.h" theme
8176         
8177 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8178
8179         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8180
8181         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8182
8183 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8184
8185         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8186         the reply value of the ServiceExists message.
8187
8188 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8189
8190         * python/dbus_bindings.pyx.in: No longer need to parse path
8191         elements and pass them as arrays of strings.  The C API now
8192         accepts plain path strings.
8193         (_build_parsed_path): removed 
8194
8195 2004-06-07  Havoc Pennington  <hp@redhat.com>
8196
8197         * doc/TODO: remove auto-activation item since it's done; sort
8198         items by importance/milestone
8199
8200 2004-06-07  Havoc Pennington  <hp@redhat.com>
8201
8202         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8203         random signature when using REQUIRED_FIELDS (this hack won't work
8204         in the long term)
8205
8206         * dbus/dbus-message.c: change the signature to be a header field,
8207         instead of message->signature special-case string. Incremental
8208         step forward. Then we can fix up code to send the signature in the
8209         message, then fix up code to validate said signature, then fix up
8210         code to not put the typecodes inline, etc.
8211         (load_one_message): don't make up the signature after the fact
8212         (decode_header_data): require signature field for the known
8213         message types
8214
8215         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8216
8217         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8218
8219 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8220
8221         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8222
8223         * mono/Handler.cs: Updated to follow new path argument for
8224         (un-)registering objects.
8225
8226         * mono/example/Makefile.am:
8227         * mono/Makefile.am:
8228         * configure.in: Bumped required version for mono and use new -pkg
8229         syntax for deps
8230
8231 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8232
8233         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8234         registration functions take the path argument as char* instead of
8235         char**.
8236
8237         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8238         split off the path decompostion part of
8239         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8240         warnings. 
8241
8242         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8243         
8244 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8245  
8246         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8247         machine approach.  A state is implemented as a function that
8248         handles incoming events as specified for that state.
8249         
8250         * doc/dbus-specification.xml: Update auth protocol state machine
8251         specification to match implementation.  Remove some leftover
8252         base64 examples.
8253
8254 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8255
8256         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8257         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8258         quiet doxygen.
8259
8260         * Doxyfile.in: remove deprecated options.
8261
8262         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8263         glib/test-thread.h, glib/test-thread-client.c,
8264         glib/test-thread-server.c, glib/test-profile.c,
8265         glib/test-dbus-glib.c: remove these unused files.
8266
8267 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8268
8269         * dbus/dbus-object-tree.c
8270         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8271         non-fallback handlers (bug #684).
8272         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8273         (find_subtree_recurse): report wether the returned subtree is an
8274         exact match or a "fallback" match higher up in the tree.
8275         (object_tree_test_iteration): update test case.
8276
8277 2004-06-01  Seth Nickell  <seth@gnome.org>
8278
8279         * python/dbus_bindings.pyx.in:
8280         * python/tests/test-client.py:
8281
8282         Round off basic type support. Add dicts (yay!), and 
8283         remaining array types.
8284
8285         Make MessageIter more general so it works for dicts too.
8286
8287         Mark all loop variables as C integers.
8288         
8289 2004-05-31  Havoc Pennington  <hp@redhat.com>
8290
8291         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8292         "in" before "out"
8293
8294         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8295
8296         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8297         option that runs the tests, and start filling in some code
8298         including for starters just dumping the interfaces to stdout
8299
8300         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8301
8302         * test/data/valid-introspection-files/lots-of-types.xml: test of
8303         an example introspection file
8304
8305         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8306         "node" (I think...)
8307
8308 2004-05-31  Seth Nickell  <seth@gnome.org>
8309
8310         * python/dbus_bindings.pyx.in:
8311         * python/tests/test-client.py:
8312
8313         Test Suite: 1
8314         Python Bindings: 0
8315
8316         Fix string array memory trashing bug... oops...
8317
8318 2004-05-30  Seth Nickell  <seth@gnome.org>
8319
8320         * python/dbus.py:
8321
8322         Add a nicer-but-less-flexible alternate API for handling 
8323         calls to virtual objects in dbus.ObjectTree.
8324
8325         Screw up the argument order to the dbus.Object constructor
8326         for consistency with dbus.ObjectTree (and to make dbus_methods
8327         optional for future extension)
8328         
8329         * python/examples/Makefile.am:
8330         * python/examples/gconf-proxy-service.py:
8331         * python/examples/gconf-proxy-service2.py:
8332
8333         Alternate implementation of gconf-proxy-service using the
8334         nicer dbus.ObjectTree API.
8335         
8336         * python/examples/example-service.py:
8337         * python/tests/test-server.py
8338
8339         Reverse the argument order to deal with dbus.Object constructor
8340         changes.
8341         
8342 2004-05-30  Seth Nickell  <seth@gnome.org>
8343
8344         * python/examples/example-client.py:
8345         * python/examples/example-service.py:
8346
8347         Take it back. Lists seem to work but they're broken
8348         in the test suite. Make the base examples use
8349         lists (works fine).
8350
8351 2004-05-30  Seth Nickell  <seth@gnome.org>
8352
8353         * python/dbus_bindings.pyx.in:
8354         * python/tests/test-client.py:
8355
8356         Add some more tests and fix errors that crop up.
8357         Unfortunately, currently it seems like marshalling
8358         and unmarshalling of lists is completely broken :-(
8359
8360 2004-05-30  Seth Nickell  <seth@gnome.org>
8361
8362         * python/dbus_bindings.pyx.in:
8363
8364         Add support for ObjectPath type.
8365
8366         * python/dbus.py:
8367
8368         Refactor message handling code to a common function.
8369         
8370         * python/tests/test-client.py:
8371         * python/tests/test-server.py:
8372
8373         Add tests that check to make sure values of all types
8374         can be echoed from a service w/o mangling.
8375         
8376 2004-05-29  Seth Nickell  <seth@gnome.org>
8377
8378         * python/dbus.py:
8379
8380         Add ObjectTree class which allows implementation
8381         of trees of "virtual" objects. Basically the python
8382         wrapper for "register_fallback".
8383         
8384         * python/examples/Makefile.am
8385         * python/examples/gconf-proxy-client.py:
8386         * python/examples/gconf-proxy-service.py:
8387
8388         Implement a simple GConf proxy service that supports
8389         get/set on string and int GConf keys using the ObjectTree.
8390         
8391 2004-05-29  Seth Nickell  <seth@gnome.org>
8392
8393         * python/dbus.py:
8394         * python/examples/example-client.py:
8395         * python/examples/example-service.py:
8396         * python/examples/list-system-services.py:
8397
8398         Add SessionBus, SystemBus and ActivationBus classes
8399         so you don't need to know the special little BUS_TYPE
8400         flag.
8401         
8402 2004-05-29  Havoc Pennington  <hp@redhat.com>
8403
8404         * bus/config-parser.c (process_test_valid_subdir): temporarily
8405         stop testing config parser OOM handling, since expat has issues
8406         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8407
8408         * bus/dbus-daemon-1.1.in: change requested_reply to
8409         send_requested_reply/receive_requested_reply so we can send the
8410         replies, not just receive them.
8411
8412         * bus/config-parser.c: parse the new
8413         send_requested_reply/receive_requested_reply
8414
8415         * bus/policy.c (bus_client_policy_check_can_send): add
8416         requested_reply argument and use it
8417
8418         * bus/bus.c (bus_context_check_security_policy): pass through
8419         requested_reply status to message send check
8420
8421         * bus/system.conf.in: adapt to requested_reply change
8422         
8423 2004-05-28  Havoc Pennington  <hp@redhat.com>
8424
8425         * test/glib/test-service-glib.c (main): remove unused variable
8426
8427         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8428
8429         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8430         from the enum, no longer in use.
8431
8432         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8433         works right.
8434
8435         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8436         whether error_name passed in is a valid error name.
8437
8438 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8439
8440         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8441         OBJECT_PATH and OBJECT_PATH_ARRAY
8442
8443 2004-05-28  Seth Nickell  <seth@gnome.org>
8444
8445         * python/examples/Makefile.am:
8446
8447         Forget to add Makefile.am. Do not pass go.
8448
8449 2004-05-28  Michael Meeks  <michael@ximian.com>
8450
8451         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8452         fix no int64 case.
8453
8454         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8455
8456         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8457         (_dbus_message_iter_get_basic_type_array): impl.
8458         drastically simplify ~all relevant _get methods to use these.
8459         (_dbus_message_iter_append_basic_array),
8460         (dbus_message_iter_append_basic): impl
8461         drastically simplify ~all relevant _append methods to use these.
8462
8463         * dbus/dbus-message-builder.c (parse_basic_type) 
8464         (parse_basic_array, lookup_basic_type): impl.
8465         (_dbus_message_data_load): prune scads of duplicate /
8466         cut & paste coding.
8467
8468         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8469         (_dbus_demarshal_basic_type): implement,
8470         (demarshal_and_validate_len/arg): beef up debug.
8471         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8472
8473 2004-05-27  Seth Nickell  <seth@gnome.org>
8474
8475         * configure.in:
8476         * python/Makefile.am:
8477
8478         Include the example python apps in the tarball.
8479         
8480         * python/examples/list-system-services.py
8481
8482         Add a python new example that fetches the list of services
8483         from the system bus.
8484         
8485 2004-05-27  Seth Nickell  <seth@gnome.org>
8486
8487         * python/dbus.py:
8488         * python/dbus_bindings.pyx.in:
8489
8490         Fix failure to notify that a signal was not handled,
8491         resulted in hung functions.
8492         
8493 2004-05-25  Colin Walters  <walters@redhat.com>
8494
8495         * tools/dbus-monitor.c (main): Monitor all types of messages.
8496
8497 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8498
8499         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8500         which unregisters the object path and disposes the handler.
8501
8502 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8503  
8504         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8505          
8506         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8507         operands to && so we call dbus_message_iter_next () for the last
8508         argument also.
8509
8510 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8511
8512         * dbus/dbus-object-tree.c
8513         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8514         children even if the requested path isn't registered.
8515         (object_tree_test_iteration): test object_tree_list_registered.
8516
8517         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8518         it to 0.
8519         
8520 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8521
8522         * doc/TODO: Remove resolved items.
8523
8524         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8525         field.
8526         
8527         * bus/connection.c (bus_connections_expect_reply): Enforce the
8528         per-connection limit on pending replies.
8529         
8530         Patch from Jon Trowbridge <trow@ximian.com>:
8531  
8532         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8533         up a watch that triggers a config reload when one end of the pipe
8534         becomes readable.
8535         (signal_handler): Instead of doing the config reload in our SIGHUP
8536         handler, just write to the reload pipe and let the associated
8537         watch handle the reload when control returns to the main loop.
8538  
8539         * bus/driver.c (bus_driver_handle_reload_config): Added.
8540         Implements a ReloadConfig method for requesting a configuration
8541         file reload via the bus driver.
8542  
8543 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8544
8545         * HACKING: Updated release instructions concerning the wiki page.
8546
8547 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8548
8549         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8550         filter against auth->allowed_mechs; we only add allowed mechs in
8551         record_mechanisms().
8552  
8553         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8554         ALLOWED_MECHS to auth-script format so we can set the list of
8555         allowed mechanisms.
8556  
8557         * data/auth/client-out-of-mechanisms.auth-script: New test to
8558         check client disconnects when it is out of mechanisms to try.
8559  
8560         * dbus/dbus-auth.c (process_command): Remove check for lines
8561         longer that 1 MB; we only buffer up maximum 16 kB.
8562  
8563         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8564         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8565         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8566         assume there might be unused bytes.
8567  
8568         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8569         client-out-of-mechs, it is handled in process_reject(). Move check
8570         for max failures to send_rejected(), as it's a server-only thing.
8571
8572         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8573         send_auth(), send_data(), send_rejected(), send_error(),
8574         send_ok(), send_begin() and send_cancel().
8575
8576 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8577
8578         Remove base64 encoding, replace with hex encoding. Original patch
8579         from trow@ximian.com, added error handling.
8580
8581         * dbus/dbus-string.c (_dbus_string_base64_encode)
8582         (_dbus_string_base64_decode): Remove.
8583         (_dbus_string_hex_decode): Add end_return argument so we can
8584         distinguish between OOM and invalid hex encoding.
8585         (_dbus_string_test): Remove base64 tests and add test case for
8586         invalid hex.
8587
8588         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8589         Replace base64 with hex.
8590
8591         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8592         for invalid hex encoded data in auth protocol.
8593
8594 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8595
8596         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8597         leak.
8598
8599 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8600
8601         * mono/dbus-sharp.dll.config.in: Added for GAC
8602         * mono/dbus-sharp.snk: Added for GAC
8603         * mono/Assembly.cs.in: Added for GAC
8604         * mono/Makefile.am: Changes for GAC installation        
8605         * configure.in: Added refs for dbus-sharp.dll.config.in and
8606         Assembly.cs.in. More fixes for mono testing
8607         * mono/example/Makefile.am: Changed var to CSC
8608         * Makefile.am: Changed flag name to DBUS_USE_CSC
8609
8610 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8611
8612         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8613         * mono/doc/*: Added documentation framework
8614         * configure.in: Added monodoc check
8615         * README: Added description of mono configure flags
8616
8617 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8618
8619         * doc/dbus-specification.xml: Added a "Required" column to the 
8620         header fields table and changed the "zero or more" verbage in
8621         the above paragraph to read "The header must contain the required 
8622         named header fields and zero or more of the optional named header 
8623         fields".
8624         * test/data/invalid-messages/*.message: Added the required PATH 
8625         named header field to the tests so that they don't fail on 
8626         'Missing path field'
8627
8628 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8629
8630         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8631         the stack by implicitly defining variable and parameter types and
8632         removing the hack of defining C pointers as python objects and later
8633         casting them.
8634
8635 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8636
8637         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8638
8639 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8640
8641         * mono/DBusType/Dict.cs: Handle empty dicts
8642         * mono/DBusType/Array.cs: Handle empty arrays
8643         * mono/Arguments.cs: Handle empty arguments
8644
8645 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8646
8647         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8648         field
8649
8650 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8651
8652         * test/data/valid-messages/standard-*.message: Update message
8653         test scripts to new header field names.
8654
8655 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8656
8657         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8658         overflow to times_we_did_each_thing array which would chop off the
8659         first character of the failure_dir string. Increased the size of
8660         the array to 7 to reflect the number of random mutation functions
8661         we have.
8662
8663 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8664
8665         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8666         unix_server->watch here, it is unreffed in disconnect.
8667         (_dbus_server_new_for_tcp_socket): convert NULL host to
8668         "localhost" here so we don't append NULL to address.
8669         
8670         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8671         various addresses, including tcp with no explicit host.
8672
8673 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8674
8675         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8676         fix incorrect setting of .name_offset in the HeaderField (it was
8677         off by two bytes, positioned right after the name and typecode)
8678
8679         * bus/bus.c (bus_context_new, bus_context_unref): test before
8680         calling dbus_server_free_data_slot and _dbus_user_database_unref
8681         in case of an error.
8682
8683         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8684         by libdbus-gtool.
8685
8686 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8687
8688         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8689         _dbus_poll() instead of select().
8690
8691 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8692
8693         * bus/main.c (signal_handler): Reload the configuration files
8694         on SIGHUP.
8695         (main): Set up our SIGHUP handler.
8696
8697         * bus/bus.c (struct BusContext): Store the config file, user and
8698         fork flag in the BusContext.
8699         (process_config_first_time_only): Added.  Contains the code
8700         (previously in bus_context_new) for setting up the BusContext from
8701         the BusConfigParser that should only be run the first time the
8702         config files are read.
8703         (process_config_every_time): Added.  Contains the code (previously
8704         in bus_context_new) for setting up the BusContext from the
8705         BusConfigParser that should be run every time the config files are
8706         read.
8707         (load_config): Added.  Builds a BusConfigParser from the config
8708         files and passes the resulting structure off to
8709         process_config_first_time_only (assuming this is the first time)
8710         and process_config_every_time.
8711         (bus_context_new): All of the config-related code has been moved
8712         to process_config_first_time_only and process_config_every_time.
8713         Now this function just does the non-config-related initializations
8714         and calls load_config.
8715         (bus_context_reload_config): Added.
8716
8717 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8718
8719         * bus/driver.c (bus_driver_handle_get_service_owner):
8720         implement a GetServiceOwner method.
8721         * doc/dbus-specification.xml: document it.
8722         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8723         
8724         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8725         implement, using the bus GetServiceOwner method.
8726
8727         * test/glib/test-dbus-glib.c:
8728         use dbus_gproxy_new_for_service_owner so that we can receive the
8729         signal. 
8730
8731 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8732
8733         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8734         dbus/dbus-message.c, dbus/dbus-protocol.h
8735         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8736
8737         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8738         dbus/dbus-message.c, dbus/dbus-protocol.h
8739         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8740
8741         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8742         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8743         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8744
8745         * doc/dbus-specification.xml (Header Fields Table):
8746         s/SERVICE/DESTINATION
8747         s/SENDER_SERVICE/SENDER
8748
8749
8750 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8751
8752         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8753         a few seconds.
8754
8755 2004-04-13  Michael Meeks  <michael@ximian.com>
8756
8757         * glib/dbus-gobject.c (handle_introspect): split out
8758         (introspect_properties): this.
8759         (handle_introspect): implement this.
8760
8761         * test/glib/Makefile.am: use the absolute path so the bus
8762         daemon's chdir ("/") doesn't kill us dead.
8763
8764         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8765
8766 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8767
8768         * bus/config-parser.c (struct BusConfigParser): Added
8769         included_files field.
8770         (seen_include): Added.  Checks whether or not a file has already
8771         been included by any parent BusConfigParser.
8772         (bus_config_parser_new): Copy the parent's included_files.
8773         (include_file): Track which files have been included, and fail on
8774         circular inclusions.
8775         (process_test_valid_subdir): Changed printf to report if we are
8776         testing valid or invalid conf files.
8777         (all_are_equiv): Changed printf to be a bit clearer about
8778         what we are actually doing.
8779         (bus_config_parser_test): Test invalid configuration files.
8780
8781 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8782
8783         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8784         argument.  If non-null, the newly-constructed BusConfigParser will
8785         be initialized with the parent's BusLimits instead of the default
8786         values.
8787         (include_file): When including a config file, pass in
8788         the current parser as the parent and then copy the BusLimits
8789         from the included BusConfigParser pack to the current parser.
8790         (process_test_valid_subdir): Renamed from process_test_subdir.
8791         (process_test_equiv_subdir): Added.  Walks through a directory,
8792         descending into each subdirectory and loading the config files
8793         it finds there.  If any subdirectory contains two config files
8794         that don't produce identical BusConfigParser structs, fail.
8795         For now, the BusConfigParser's BusPolicies are not compared.
8796         (bus_config_parser_test): Call both process_test_valid_subdir and
8797         process_test_equiv_subdir.
8798
8799         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8800         argument and pass it along to the call to bus_config_parser_new.
8801         Also made a few small changes to allow this code to compile.
8802
8803         * bus/config-loader-expat.c (bus_config_load): Take a parent
8804         argument and pass it along to the call to bus_config_parser_new.
8805
8806         * bus/bus.c (bus_context_new): Load the config file
8807         with a NULL parent argument.
8808
8809 2004-03-29  Michael Meeks  <michael@ximian.com>
8810
8811         * glib/dbus-gobject.c (introspect_properties): split
8812         out, fix mangled 'while' flow control.
8813         (introspect_signals): implement.
8814         (handle_introspect): update.
8815
8816 2004-03-29  Michael Meeks  <michael@ximian.com>
8817
8818         * glib/dbus-gobject.c (set_object_property): split out / 
8819         re-work, use the property type, and not the message type(!)
8820         (get_object_property): ditto.
8821
8822         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8823         (dbus_gvalue_marshal): make this code re-usable, needed
8824         for signals too, also on both proxy and server side.
8825         Re-write for more efficiency / readability.
8826
8827 2004-03-29  Michael Meeks  <michael@ximian.com>
8828
8829         * dbus/dbus-message.c
8830         (dbus_message_new_error_printf): impl.
8831
8832         * dbus/dbus-connection.c
8833         (dbus_connection_unregister_object_path): fix warning.
8834
8835         * configure.in: fix no-mono-installed situation.
8836
8837 2004-03-27  Havoc Pennington  <hp@redhat.com>
8838
8839         Patch from Timo Teräs:
8840         
8841         * tools/dbus-send.c (main): if --print-reply, assume type is
8842         method call; support boolean type args
8843         
8844         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8845         bunch of memleak and logic bugs
8846         
8847 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8848
8849         * mono/Arguments.cs:
8850         * mono/Introspector.cs:
8851         * mono/Handler.cs:
8852         * mono/InterfaceProxy.cs:
8853         * mono/Message.cs
8854         * mono/ProxyBuilder.cs:
8855         * mono/Service.cs:
8856         Added InterfaceProxy class to avoid building proxies for every
8857         object.
8858
8859         * dbus-message.h:
8860         * dbus-message.c (dbus_message_append_args_valist)
8861         (dbus_message_iter_get_object_path)
8862         (dbus_message_iter_get_object_path_array)
8863         (dbus_message_iter_append_object_path)
8864         (dbus_message_iter_append_object_path_array):
8865         Added object_path iter functions to handle OBJECT_PATH arguments
8866         
8867 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8868
8869         First checkin of mono bindings.
8870         * configure.in:
8871         * Makefile.am:
8872         Build stuff for the bindings
8873         * dbus-sharp.pc.in: Added for pkgconfig
8874         
8875 2004-03-21  Havoc Pennington  <hp@redhat.com>
8876
8877         * test/test-service.c (main): remove debug spew
8878
8879 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8880
8881         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8882         arrays
8883
8884         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8885         (dbus_message_iter_init_array_iterator)
8886         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8887         indicate whether the iterator is empty
8888
8889         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8890         warnings
8891
8892 2004-03-19  Havoc Pennington  <hp@redhat.com>
8893
8894         * NEWS: 0.21 updates
8895
8896         * configure.in: 0.21
8897
8898         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8899         
8900         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8901         you don't need pyrex to make dist
8902
8903         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8904         sources; run moc
8905         
8906 2004-03-18  Richard Hult  <richard@imendio.com>
8907
8908         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8909         (dbus_message_set_auto_activation): Add doxygen docs.
8910
8911 2004-03-16  Richard Hult  <richard@imendio.com>
8912
8913         * bus/activation.c: (bus_activation_service_created),
8914         (bus_activation_send_pending_auto_activation_messages),
8915         (bus_activation_activate_service):
8916         * bus/activation.h:
8917         * bus/dispatch.c: (bus_dispatch),
8918         (check_nonexistent_service_auto_activation),
8919         (check_service_auto_activated),
8920         (check_segfault_service_auto_activation),
8921         (check_existent_service_auto_activation), (bus_dispatch_test):
8922         * bus/driver.c: (bus_driver_handle_activate_service):
8923         * bus/services.c: (bus_registry_acquire_service):
8924         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8925         (dbus_message_get_auto_activation):
8926         * dbus/dbus-message.h:
8927         * dbus/dbus-protocol.h: Implement auto-activation.
8928         
8929         * doc/dbus-specification.xml: Add auto-activation to the spec.
8930
8931 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8932
8933         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8934         fix a bug with CUSTOM types.
8935
8936         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8937         a unit test for this bug (used to fail).
8938
8939 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8940
8941         * bus/activation.c:
8942         (babysitter_watch_callback): notify all pending activations waiting for
8943           the same exec that the activation failed.
8944         (bus_activation_activate_service): shortcut the activation if we 
8945           already waiting for the same executable to start up.
8946
8947 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8948
8949         * bus/activation.c: 
8950         - Added service file reloading. 
8951           Each service files directory is kept in an hash table in 
8952           BusActivation and each BusActivationEntry knows what .service-file it
8953           was read from. So when you try to activate a service the bus will 
8954           check if it's been updated, removed or if new .service-files has 
8955           been installed.
8956         - Test code at the bottom for the service file reloading.
8957         * bus/test-main.c: (main):
8958         * bus/test.h:
8959         - added service reloading test.
8960         * dbus/dbus-sysdeps.c: 
8961         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8962
8963 2004-03-08  Michael Meeks  <michael@ximian.com>
8964
8965         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8966         bail immediately if disconnected, to avoid busy loop.
8967
8968         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8969         cleanup cut/paste/inefficiency.
8970
8971 2004-03-01  David Zeuthen  <david@fubar.dk>
8972
8973         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8974         bug where args were used twice. This bug resulted in a segfault
8975         on a Debian/PPC system when starting the messagebus daemon. Include
8976         dbus-sysdeps.h for DBUS_VA_COPY
8977
8978         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8979
8980         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8981         appropriate va_copy implementation. From GLib
8982         
8983 2004-02-24  Joe Shaw  <joe@ximian.com>
8984
8985         * bus/services.c (bus_registry_acquire_service): We need to pass
8986         in the service name to dbus_set_error() to prevent a crash.
8987
8988 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8989
8990         * AUTHORS: Reveal my True identity.
8991
8992 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8993
8994         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8995         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8996
8997 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8998
8999         * doc/TODO: Added not about better error check of configuration files.
9000
9001 2003-12-02  Richard Hult  <richard@imendio.com>
9002
9003         * Update AFL version to 2.0 throughout the source files to reflect
9004         the update that was done a while ago.
9005
9006 2003-12-02  Richard Hult  <richard@imendio.com>
9007
9008         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9009         wrote_dict_key to FALSE on the iter that the dict is appended to,
9010         just like when appending other types. Fixes a bug where a dict
9011         couldn't be put inside a dict.
9012         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9013         (message_iter_test, _dbus_message_test): Add test case for dict
9014         inside dict.
9015
9016 2003-12-01  David Zeuthen  <david@fubar.dk>
9017
9018         * python/dbus.py: Add the actual message when calling the reciever
9019         of a signal such that parameters can be inspected. Add the method
9020         remove_signal_receiver
9021         
9022 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9023
9024         * bus/*.[ch]:
9025         * dbus/*.[ch]:
9026         * glib/*.[ch]: Made ref functions return the pointer
9027
9028 2003-11-25  Zack Rusin  <zack@kde.org>
9029
9030         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9031
9032         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9033         wrappers,
9034
9035         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9036         the Integrator and to better fit with the server,
9037
9038 2003-11-24  Zack Rusin  <zack@kde.org>
9039
9040         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9041         the integrator handles it now
9042
9043         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9044         since QTimer wasn't really meant to be used the way DBusTimeout is
9045
9046 2003-11-24  Zack Rusin  <zack@kde.org>
9047
9048         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9049         Integrator class which integrates D-BUS with the Qt event loop,
9050
9051         * qt/connection.h, qt/connection.cpp: Move all the code which
9052         was dealing with D-BUS integration to the Integrator class,
9053         and start using Integrator,
9054
9055 2003-11-23  Zack Rusin  <zack@kde.org>
9056
9057         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9058         wrapper
9059
9060         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9061         switching namespaces to DBusQt, reworking the class,
9062
9063         * Makefile.cvs: switching dependencies so that it matches KDE 
9064         schematics,
9065         
9066         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9067         the library
9068
9069 2003-11-19  Havoc Pennington  <hp@redhat.com>
9070
9071         * NEWS: update
9072
9073         * configure.in: bump version to 0.20
9074
9075         * configure.in (have_qt): add yet another place to look for qt
9076         (someone hand trolltech a .pc file...)
9077
9078 2003-11-01  Havoc Pennington  <hp@redhat.com>
9079
9080         * doc/dbus-specification.xml: add state machine docs on the auth
9081         protocol; just a first draft, I'm sure it's wrong.      
9082
9083 2003-10-28  David Zeuthen  <david@fubar.dk>
9084
9085         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9086         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9087         
9088 2003-10-28  Havoc Pennington  <hp@redhat.com>
9089
9090         * dbus/dbus-message.c (get_next_field): delete unused function
9091
9092 2003-10-28  Havoc Pennington  <hp@redhat.com>
9093
9094         * bus/expirelist.c (do_expiration_with_current_time): detect
9095         failure of the expire_func due to OOM
9096
9097         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9098
9099         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9100         NoReply error that's now created by the bus when the service exits
9101
9102 2003-10-28  Havoc Pennington  <hp@redhat.com>
9103
9104         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9105         tests for set_path, set_interface, set_member, etc.
9106
9107         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9108
9109         * dbus/dbus-message.c (set_string_field): always just delete and
9110         re-append the field; accept NULL for deletion
9111         (re_align_fields_recurse): reimplement
9112         
9113 2003-10-26  Havoc Pennington  <hp@redhat.com>
9114
9115         * dbus/dbus-connection.c: fix docs to properly describe the
9116         disconnected message
9117         (_dbus_connection_notify_disconnected): remove this function; 
9118         we can't synchronously add the disconnected message, we have to 
9119         do it after we've queued any remaining real messages
9120         (_dbus_connection_get_dispatch_status_unlocked): queue the
9121         disconnect message only if the transport has finished queueing all
9122         its real messages and is disconnected.
9123         (dbus_connection_disconnect): update the dispatch status here
9124
9125 2003-10-22  Havoc Pennington  <hp@redhat.com>
9126
9127         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9128
9129         * bus/connection.c (bus_transaction_send_from_driver): set the
9130         destination to the connection's base service
9131
9132 2003-10-20  Havoc Pennington  <hp@redhat.com>
9133
9134         hmm, make check is currently not passing.
9135         
9136         * doc/dbus-specification.xml: add requirement that custom type
9137         names follow the same rules as interface names.
9138
9139         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9140         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9141         'map'
9142
9143         * doc/dbus-specification.xml: update type codes to match
9144         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9145         CUSTOM. Add type OBJECT_PATH to the spec.
9146
9147 2003-10-17  Havoc Pennington  <hp@redhat.com>
9148
9149         * bus/driver.c (create_unique_client_name): use "." as separator
9150         in base service names instead of '-'
9151
9152         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9153         byte at the end of the string
9154
9155         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9156         optimization macros since string validation seems to be a slow
9157         point.
9158         
9159         * doc/dbus-specification.xml: restrict valid
9160         service/interface/member/error names. Add test suite code for the
9161         name validation.
9162
9163         * dbus/dbus-string.c: limit service/interface/member/error names 
9164         to [0-9][A-Z][a-z]_
9165
9166         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9167         format arg to verbose spew
9168
9169         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9170         memory, return instead of g_error
9171
9172         * test/test-service.c (path_message_func): support emitting a
9173         signal on request
9174
9175         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9176         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9177         assuming the activation bus was the session bus so that services
9178         started manually will still register.
9179         (init_connections_unlocked): fix so that in OOM situation we get
9180         the same semantics when retrying the function
9181         
9182         * test/test-service.c (main): change to use path registration, to
9183         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9184         than DBUS_BUS_SESSION
9185
9186 2003-10-16  Havoc Pennington  <hp@redhat.com>
9187
9188         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9189
9190         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9191         coverage of the tests
9192         (coverage-report.txt): don't move the .da and .bbg files around
9193
9194 2003-10-16  Havoc Pennington  <hp@redhat.com>
9195
9196         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9197         to put there
9198
9199 2003-10-16  Havoc Pennington  <hp@redhat.com>
9200
9201         * bus/connection.c (bus_pending_reply_expired): either cancel or
9202         execute, not both
9203         (bus_connections_check_reply): use unlink, not remove_link, as we
9204         don't want to free the link; fixes double free mess
9205
9206         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9207         where no reply was received
9208
9209         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9210         fix a refcount leak
9211
9212         * bus/signals.c (match_rule_matches): add special cases for the
9213         bus driver, so you can match on sender/destination for it.
9214
9215         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9216         DBUS_PRINT_BACKTRACE is set
9217
9218         * dbus/dbus-internals.c: add pid to assertion failure messages
9219
9220         * dbus/dbus-connection.c: add message type code to the debug spew
9221
9222         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9223         sender=foo not service=foo
9224
9225         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9226         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9227         DBUS_ACTIVATION_ADDRESS instead
9228
9229         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9230         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9231
9232         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9233         context struct
9234
9235         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9236         (dbus_message_iter_get_object_path_array): new function (half
9237         finished, disabled for the moment)
9238         
9239         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9240         DBUS_MESSAGE_TYPE_ERROR
9241
9242         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9243         avoid redirecting stderr to /dev/null
9244         (babysit): close stdin if not doing the "exit_with_session" thing
9245
9246         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9247         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9248         stdout/stdin, so things don't get confused
9249         
9250         * bus/system.conf.in: fix to allow replies, I modified .conf
9251         instead of .conf.in again.
9252
9253 2003-10-14  David Zeuthen  <david@fubar.dk>
9254
9255         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9256         argtype to arg_type when raising unknown arg type exception.
9257         Changed type list to reflect the changes in dbus-protocol.h so 
9258         the bindings actually work.
9259
9260 2003-10-14  Havoc Pennington  <hp@redhat.com>
9261
9262         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9263         to have a bug keeping it from outputting the .da files sometimes
9264         (string_get_string): don't append garbage nul bytes to the string.
9265
9266 2003-10-15  Seth Nickell  <seth@gnome.org>
9267
9268         * python/Makefile.am:
9269
9270         Include dbus_h_wrapper.h in the dist tarball.
9271
9272 2003-10-14  Havoc Pennington  <hp@redhat.com>
9273
9274         * bus/bus.c (bus_context_check_security_policy): revamp this to
9275         work more sanely with new policy-based requested reply setup
9276
9277         * bus/connection.c (bus_transaction_send_from_driver): set bus
9278         driver messages as no reply
9279
9280         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9281         requested_reply attribute on allow/deny rules
9282
9283         * bus/system.conf: add <allow requested_reply="true"/>
9284
9285         * bus/driver.c (bus_driver_handle_message): fix check for replies
9286         sent to the bus driver, which was backward. How did this ever work
9287         at all though? I think I'm missing something.
9288
9289         * dbus/dbus-message.c (decode_header_data): require error and
9290         method return messages to have a reply serial field to be valid
9291         (_dbus_message_loader_queue_messages): break up this function;
9292         validate that reply serial and plain serial are nonzero; 
9293         clean up the OOM/error handling.
9294         (get_uint_field): don't return -1 from this
9295         (dbus_message_create_header): fix signed/unsigned bug
9296
9297         * bus/connection.c (bus_connections_expect_reply): save serial of
9298         the incoming message, not reply serial
9299
9300 2003-10-14  Havoc Pennington  <hp@redhat.com>
9301
9302         * bus/connection.c: implement pending reply tracking using
9303         BusExpireList
9304
9305         * bus/bus.c (bus_context_check_security_policy): verify that a
9306         reply is pending in order to allow a reply to be sent. Deny 
9307         messages of unknown type.
9308
9309         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9310
9311         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9312         (bus_context_get_reply_timeout): new
9313
9314 2003-10-13  Seth Nickell  <seth@gnome.org>
9315
9316         * python/Makefile.am:
9317
9318         Pass "make distcheck": remove a couple files from DIST_FILES
9319         that weren't included in the final version.
9320
9321 2003-10-12  Havoc Pennington  <hp@pobox.com>
9322
9323         Added test code that 1) starts an actual bus daemon and 2) uses
9324         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9325         more testing possible, but this is the basic framework.
9326         
9327         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9328         empty proxy lists from the proxy list hash
9329
9330         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9331         couple of return_if_fail checks
9332
9333         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9334         to allocate, so everything is cleared to NULL as it should be.
9335
9336         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9337         source as data to dbus_connection_set_timeout_functions() as the 
9338         timeout functions expected
9339
9340         * test/glib/run-test.sh: add a little script to start up a message
9341         bus and run tests using it
9342
9343         * tools/dbus-launch.1: updates
9344
9345         * tools/dbus-launch.c (main): add --config-file option
9346
9347         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9348         that could never be reached.
9349
9350         * dbus/dbus-message.c (dbus_message_new_method_return) 
9351         (dbus_message_new_error, dbus_message_new_signal): set the
9352         no-reply-expected flag on all these. Redundant, but may
9353         as well be consistent.
9354
9355 2003-10-11  Havoc Pennington  <hp@pobox.com>
9356
9357         * test/decode-gcov.c (function_solve_graph): make broken block
9358         graph a nonfatal error since it seems to be broken. Need to debug
9359         this.
9360
9361         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9362         can't just check type > INVALID < LAST anymore
9363
9364         * dbus/dbus-message.c (dbus_message_get_signature): new function
9365         (dbus_message_has_signature): new function
9366         (struct DBusMessage): add signature field (right now it isn't sent
9367         over the wire, just generated on the fly)
9368         (dbus_message_copy): copy the signature, and init strings to
9369         proper length to avoid some reallocs
9370         (dbus_message_iter_init_array_iterator): return void, since it
9371         can't fail
9372         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9373         (_dbus_message_loader_queue_messages): add silly temporary hack to
9374         fill in message->signature on load
9375
9376         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9377         characters, so they are relatively human-readable.
9378
9379 2003-10-11  Havoc Pennington  <hp@pobox.com>
9380
9381         * dbus/dbus-message.c (_dbus_message_test): add more test
9382         coverage, but #if 0 for now since they uncover a bug 
9383         not fixed yet; I think in re_align_field_recurse()
9384         (re_align_field_recurse): add FIXME about broken assertion
9385
9386         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9387
9388         * bus/connection.c: share a couple code bits with expirelist.c
9389
9390         * bus/expirelist.h, bus/expirelist.c: implement a generic
9391         expire-items-after-N-seconds facility, was going to share between
9392         expiring connections and replies, decided not to use for expiring
9393         connections for now.
9394
9395         * COPYING: include AFL 2.0 (still need to change all the file headers)
9396
9397 2003-10-09  Havoc Pennington  <hp@redhat.com>
9398
9399         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9400         gcc 3.3. Not that we do anything about it yet.
9401
9402         * bus/signals.c (bus_match_rule_parse): impose max length on the
9403         match rule text
9404
9405         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9406
9407 2003-10-09  Havoc Pennington  <hp@redhat.com>
9408
9409         Make matching rules theoretically work (add parser).
9410         
9411         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9412         the case where destination is explicitly specified as bus driver
9413         and someone else is eavesdropping.
9414         
9415         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9416         definition of eavesdropping and assertion
9417
9418         * tools/dbus-send.c (main): use dbus_message_type_from_string
9419
9420         * bus/signals.c (bus_match_rule_parse): implement
9421
9422         * dbus/dbus-message.c (dbus_message_type_from_string): new
9423
9424         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9425
9426 2003-10-02  Havoc Pennington  <hp@pobox.com>
9427
9428         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9429         dbus_gproxy_oneway_call
9430
9431         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9432         (dbus_server_setup_with_g_main): fix to allow calling them more
9433         than once on the same args
9434         (dbus_bus_get_with_g_main): new function
9435
9436 2003-10-02  Havoc Pennington  <hp@redhat.com>
9437
9438         * doc/dbus-tutorial.xml: write some stuff
9439
9440 2003-09-29  Havoc Pennington  <hp@pobox.com>
9441
9442         * configure.in: split checks for Doxygen from XML docs, check for
9443         xmlto
9444
9445         * doc/Makefile.am: XML-ify all the docs, and add a blank
9446         dbus-tutorial.xml
9447
9448 2003-09-29  Havoc Pennington  <hp@pobox.com>
9449
9450         * Merge dbus-object-names branch. To see the entire patch 
9451         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9452         it's huuuuge though.
9453         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9454         
9455 2003-09-28  Havoc Pennington  <hp@pobox.com>
9456
9457         * HACKING: update to reflect new server
9458
9459 2003-09-26  Seth Nickell  <seth@gnome.org>
9460
9461         * python/dbus.py:
9462         * python/examples/example-signals.py:
9463
9464         Start implementing some notions of signals. The API
9465         is really terrible, but they sort of work (with the
9466         exception of being able to filter by service, and to
9467         transmit signals *as* a particular service). Need to
9468         figure out how to make messages come from the service
9469         we registered :-(
9470         
9471         * python/dbus_bindings.pyx.in:
9472
9473         Removed duplicate message_handler callbacks.
9474         
9475 2003-09-25  Havoc Pennington  <hp@redhat.com>
9476
9477         * bus/session.conf.in: fix my mess
9478
9479 2003-09-25  Havoc Pennington  <hp@pobox.com>
9480
9481         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9482
9483 2003-09-25  Seth Nickell  <seth@gnome.org>
9484
9485         * python/examples/example-service.py:
9486
9487         Johan notices complete wrong code in example-service, but
9488         completely wrong in a way that works exactly the same (!).
9489         Johan is confused, how could this possibly work? Example
9490         code fails to serve purpose of making things clear.
9491         Seth fixes.
9492
9493 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9494
9495         * doc/dbus-specification.sgml: don't require header fields
9496         to be 4-byte aligned and specify that fields should be
9497         distinguished from padding by the fact that zero is not
9498         a valid field name.
9499         
9500         * doc/TODO: remove re-alignment item and add item to doc
9501         the OBJECT_PATH type.
9502         
9503         * dbus/dbus-message.c:
9504         (HeaderField): rename the original member to value_offset
9505         and introduce a name_offset member to keep track of where
9506         the field actually begins.
9507         (adjust_field_offsets): remove.
9508         (append_int_field), (append_uint_field),
9509         (append_string_field): don't align the start of the header
9510         field to a 4-byte boundary.
9511         (get_next_field): impl finding the next marhsalled field
9512         after a given field.
9513         (re_align_field_recurse): impl re-aligning a number of
9514         already marshalled fields.
9515         (delete_field): impl deleting a field of any type and
9516         re-aligning any following fields.
9517         (delete_int_or_uint_field), (delete_string_field): remove.
9518         (set_int_field), (set_uint_field): no need to re-check
9519         that we have the correct type for the field.
9520         (set_string_field): ditto and impl re-aligning any
9521         following fields.
9522         (decode_header_data): update to take into account that
9523         the fields aren't 4-byte aligned any more and the new
9524         way to distinguish padding from header fields. Also,
9525         don't exit when there is too much header padding.
9526         (process_test_subdir): print the directory.
9527         (_dbus_message_test): add test to make sure a following
9528         field is re-aligned correctly after field deletion.
9529         
9530         * dbus/dbus-string.[ch]:
9531         (_dbus_string_insert_bytes): rename from insert_byte and
9532         allow the insert of multiple bytes.
9533         (_dbus_string_test): test inserting multiple bytes.
9534
9535         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9536         warning note to docs about having to re-align any
9537         marshalled values following the string.
9538         
9539         * dbus/dbus-message-builder.c:
9540         (append_string_field), (_dbus_message_data_load):
9541         don't align the header field.
9542         
9543         * dbus/dbus-auth.c: (process_test_subdir): print the
9544         directory.
9545         
9546         * test/break-loader.c: (randomly_add_one_byte): upd. for
9547         insert_byte change.
9548         
9549         * test/data/invalid-messages/bad-header-field-alignment.message:
9550         new test case.
9551         
9552         * test/data/valid-messages/unknown-header-field.message: shove
9553         a dict in the unknown field.
9554
9555 2003-09-25  Seth Nickell  <seth@gnome.org>
9556
9557         * python/dbus.py:
9558         * python/dbus_bindings.pyx.in:
9559
9560         Handle return values.
9561         
9562         * python/examples/example-client.py:
9563         * python/examples/example-service.py:
9564
9565         Pass back return values from the service to the client.
9566         
9567 2003-09-24  Seth Nickell  <seth@gnome.org>
9568
9569         * python/dbus.py:
9570
9571         Connect Object methods (when you are sharing an object) up... pass
9572         in a list of methods to be shared. Sharing all the methods just
9573         worked out too weird. You can now create nice Services over the
9574         DBus in Python. :-)
9575         
9576         * python/dbus_bindings.pyx.in:
9577
9578         Keep references to user_data tuples passed into C functions so 
9579         Python doesn't garbage collect on us.
9580
9581         Implement MethodReturn and Error subclasses of Message for creating
9582         DBusMessage's of those types.
9583         
9584         * python/examples/example-client.py:
9585         * python/examples/example-service.py:
9586
9587         Simple example code showing both how create DBus services and objects,
9588         and how to use them.
9589
9590 2003-09-23  Havoc Pennington  <hp@pobox.com>
9591
9592         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9593
9594 2003-09-23  Havoc Pennington  <hp@redhat.com>
9595
9596         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9597         (dbus_gproxy_disconnect_signal): implement
9598         (dbus_gproxy_manager_remove_signal_match): implement
9599         (dbus_gproxy_manager_add_signal_match): implement
9600         (dbus_gproxy_oneway_call): implement
9601
9602 2003-09-23  Havoc Pennington  <hp@pobox.com>
9603
9604         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9605         subclass. This means dropping the transparent thread safety of the
9606         proxy; you now need a separate proxy per-thread, or your own
9607         locking on the proxy. Probably right anyway.
9608         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9609
9610 2003-09-22  Havoc Pennington  <hp@redhat.com>
9611
9612         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9613
9614 2003-09-21  Seth Nickell  <seth@gnome.org>
9615
9616         First checkin of the Python bindings.
9617         
9618         * python/.cvsignore:
9619         * python/Makefile.am:
9620         * python/dbus_bindings.pyx.in:
9621         * python/dbus_h_wrapper.h:
9622
9623         Pieces for Pyrex to operate on, building a dbus_bindings.so
9624         python module for low-level access to the DBus APIs.
9625         
9626         * python/dbus.py:
9627
9628         High-level Python module for accessing DBus objects.
9629
9630         * configure.in:
9631         * Makefile.am:
9632
9633         Build stuff for the python bindings.
9634
9635         * acinclude.m4:
9636
9637         Extra macro needed for finding the Python C header files.
9638
9639 2003-09-21  Havoc Pennington  <hp@pobox.com>
9640
9641         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9642         implementing the proxy manager, didn't get very far.
9643
9644         * dbus/dbus-bus.c (dbus_bus_add_match): new
9645         (dbus_bus_remove_match): new
9646
9647         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9648         path_name argument; adjust the other not-yet-implemented 
9649         gproxy constructors to be what I think they should be.
9650
9651 2003-09-21  Havoc Pennington  <hp@pobox.com>
9652
9653         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9654         by default for message bus connections.
9655
9656         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9657         exit_on_disconnect flag is set and we process the disconnected
9658         signal.
9659         (dbus_connection_set_exit_on_disconnect): new function
9660
9661 2003-09-21  Havoc Pennington  <hp@pobox.com>
9662
9663         Get matching rules mostly working in the bus; only actually
9664         parsing the rule text remains. However, the client side of
9665         "signal connections" hasn't been started, this patch is only the
9666         bus side.
9667         
9668         * dbus/dispatch.c: fix for the matching rules changes
9669         
9670         * bus/driver.c (bus_driver_handle_remove_match)
9671         (bus_driver_handle_add_match): send an ack reply from these
9672         method calls
9673
9674         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9675         arguments, reported by Seth Nickell
9676
9677         * bus/config-parser.c (append_rule_from_element): support
9678         eavesdrop=true|false attribute on policies so match rules 
9679         can be prevented from snooping on the system bus.
9680
9681         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9682         and "destination" in attribute names; fix some docs bugs; 
9683         add eavesdrop=true|false attribute
9684
9685         * bus/driver.c (bus_driver_handle_add_match)
9686         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9687         messages
9688
9689         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9690         rid of broadcast service concept, signals are just always broadcast
9691
9692         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9693         mostly implement matching rules stuff (currently only exposed as signal
9694         connections)
9695
9696 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9697
9698         * doc/dbus-specification.sgml: Change the header field name
9699         to be an enum and update the rest of the spec to reference
9700         the fields using the conventinal name.
9701
9702         * dbus/dbus-protocol.h: update to reflect the spec.
9703
9704         * doc/TODO: add item to remove the 4 byte alignment requirement.
9705         
9706         * dbus/dbus-message.c: Remove the code to generalise the
9707         header/body length and serial number header fields as named
9708         header fields so we can reference field names using the 
9709         protocol values.
9710         (append_int_field), (append_uint_field), (append_string_field):
9711         Append the field name as a byte rather than four chars.
9712         (delete_int_or_uint_field), (delete_string_field): reflect the
9713         fact that the field name and typecode now occupy 4 bytes instead
9714         of 8.
9715         (decode_string_field), (decode_header_data): update to reflect
9716         protocol changes and move the field specific encoding from
9717         decode_string_field() back into decode_header_data().
9718         
9719         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9720         Add utility to aid debugging.
9721         
9722         * dbus/dbus-message-builder.c:
9723         (append_string_field), (_dbus_message_data_load): Update to
9724         reflect protocol changes; Change the FIELD_NAME directive
9725         to HEADER_FIELD and allow it to take the field's conventional
9726         name rather than the actual value.
9727         
9728         * test/data/*/*.message: Update to use HEADER_FIELD instead
9729         of FIELD_NAME; Always align the header on an 8 byte boundary
9730         *before* updating the header length.
9731
9732 2003-09-15  Havoc Pennington  <hp@pobox.com>
9733
9734         * dbus/dbus-pending-call.c: add the get/set object data
9735         boilerplate as for DBusConnection, etc. Use generic object data
9736         for the notify callback.
9737
9738         * glib/dbus-gparser.c (parse_node): parse child nodes
9739
9740         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9741         
9742         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9743         contain functions shared between the convenience lib and the
9744         installed lib
9745
9746         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9747         -export-symbols-regex to the GLib library
9748
9749         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9750         fix the locking in here, and add a default handler for
9751         Introspect() that just returns sub-nodes.
9752
9753 2003-09-14  Havoc Pennington  <hp@pobox.com>
9754
9755         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9756         rather than gfoo consistent
9757
9758         * glib/dbus-gproxy.h: delete for now, move contents to
9759         dbus-glib.h, because the include files don't work right since we
9760         aren't in the dbus/ subdir.
9761         
9762         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9763         (dbus_gproxy_end_call): finish
9764         (dbus_gproxy_begin_call): finish
9765
9766         * glib/dbus-gmain.c (dbus_set_g_error): new
9767
9768         * glib/dbus-gobject.c (handle_introspect): include information
9769         about child nodes in the introspection
9770
9771         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9772         function to help in implementation of introspection
9773
9774         * dbus/dbus-object-tree.c
9775         (_dbus_object_tree_list_registered_and_unlock): new function
9776
9777 2003-09-12  Havoc Pennington  <hp@pobox.com>
9778
9779         * glib/dbus-gidl.h: add common base class for all the foo_info
9780         types
9781
9782         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9783         similar to kdcop
9784
9785         * test/Makefile.am: try test srcdir -ef . in addition to test
9786         srcdir = ., one of them should work (yeah lame)
9787         
9788         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9789         library
9790         
9791         * glib/dbus-gparser.h: make description_load routines return
9792         NodeInfo* not Parser*
9793
9794         * Makefile.am (SUBDIRS): build test dir after all library dirs
9795
9796         * configure.in: add GTK+ detection
9797
9798 2003-09-07  Havoc Pennington  <hp@pobox.com>
9799
9800         * Make Doxygen contented.
9801
9802 2003-09-07  Havoc Pennington  <hp@pobox.com>
9803
9804         * doc/dbus-specification.sgml: more updates
9805
9806 2003-09-06  Havoc Pennington  <hp@pobox.com>
9807
9808         * doc/dbus-specification.sgml: partial updates
9809
9810         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9811         zillionth time; hopefully I edited the right file this time.
9812
9813         * bus/config-parser.c (append_rule_from_element): support
9814         send_type, send_path, receive_type, receive_path
9815
9816         * bus/policy.c: add message type and path to the list of things
9817         that can be "firewalled"
9818
9819 2003-09-06  Havoc Pennington  <hp@pobox.com>
9820
9821         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9822         (dbus_connection_register_object_path): make this not handle
9823         messages to paths below the given path
9824
9825 2003-09-03  Havoc Pennington  <hp@pobox.com>
9826
9827         * test/glib/Makefile.am: add this with random glib-linked test
9828         programs
9829
9830         * glib/Makefile.am: remove the random test programs from here,
9831         leave only the unit tests
9832
9833         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9834         uscore/javacaps conversion, and fix     
9835         (get_object_property, set_object_property): change to .NET
9836         convention for mapping props to methods, set_FooBar/get_FooBar, 
9837         since one language has such a convention we may as well copy it. 
9838         Plus real methods in either getFooBar or get_foo_bar style won't 
9839         collide with this convention.
9840
9841 2003-09-01  Havoc Pennington  <hp@pobox.com>
9842
9843         * glib/dbus-gparser.c: implement
9844
9845         * glib/dbus-gobject.c: start implementing skeletons support
9846
9847         * configure.in: when disabling checks/assert, also define
9848         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9849
9850 2003-09-01  Havoc Pennington  <hp@pobox.com>
9851
9852         * glib/Makefile.am: rearrange a bunch of files and get "make
9853         check" framework set up
9854
9855 2003-08-31  Havoc Pennington  <hp@pobox.com>
9856
9857         * fix build with --disable-tests
9858
9859 2003-08-30  Havoc Pennington  <hp@pobox.com>
9860
9861         * dbus/dbus-connection.c: purge DBusMessageHandler
9862
9863         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9864         use callbacks everywhere
9865
9866 2003-08-30  Havoc Pennington  <hp@pobox.com>
9867
9868         * test/data/valid-config-files/system.d/test.conf: change to 
9869         root for the user so warnings don't get printed
9870
9871         * dbus/dbus-message.c: add dbus_message_get_path,
9872         dbus_message_set_path
9873         
9874         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9875         dispatching to a path
9876
9877         * dbus/dbus-string.c (_dbus_string_validate_path): add
9878
9879         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9880         (_dbus_marshal_object_path): implement
9881
9882         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9883         to contain the path to the target object
9884         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9885         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9886
9887 2003-08-30  Havoc Pennington  <hp@pobox.com>
9888
9889         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9890
9891 2003-08-29  Havoc Pennington  <hp@pobox.com>
9892
9893         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9894         registered
9895         (struct DBusObjectSubtree): shrink this
9896         a lot, since we may have a lot of them
9897         (_dbus_object_tree_free_all_unlocked): implement
9898         (_dbus_object_tree_dispatch_and_unlock): implement
9899
9900 2003-08-29  Havoc Pennington  <hp@pobox.com>
9901
9902         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9903
9904 2003-08-28  Havoc Pennington  <hp@pobox.com>
9905
9906         purge DBusObjectID
9907         
9908         * dbus/dbus-connection.c: port to no ObjectID, create a
9909         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9910
9911         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9912         everything except UnregisterFunction and MessageFunction
9913         
9914         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9915         add DBUS_TYPE_OBJECT_PATH
9916         
9917         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9918         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9919         path-based object IDs
9920
9921 2003-08-25  Havoc Pennington  <hp@pobox.com>
9922
9923         Just noticed that dbus_message_test is hosed, I wonder when I
9924         broke that. I thought make check was passing earlier...
9925         
9926         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9927         container tree, will replace most of dbus-object-registry
9928
9929         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9930         screwup
9931
9932 2003-08-19  Havoc Pennington  <hp@pobox.com>
9933
9934         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9935         (dbus_message_is_error): fix this function
9936
9937         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9938         match
9939
9940         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9941         reflect clarified man page
9942         (bus_client_policy_check_can_send): ditto
9943         
9944         * bus/session.conf.in: fixup
9945
9946         * bus/system.conf.in: fixup
9947
9948 2003-08-18  Havoc Pennington  <hp@redhat.com>
9949
9950         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9951
9952         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9953         dumb bug created earlier (wrong order of args to
9954         decode_header_data())
9955         
9956         * tools/dbus-send.c: port
9957
9958         * tools/dbus-print-message.c (print_message): port
9959
9960         * test/data/*messages: port all messages over
9961         
9962         * dbus/dbus-message-builder.c: support including 
9963         message type
9964         
9965         * bus/driver.c: port over
9966         
9967         * bus/dispatch.c: port over to new stuff
9968
9969         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9970         rename disconnect signal to "Disconnected"
9971
9972 2003-08-17  Havoc Pennington  <hp@pobox.com>
9973
9974         This doesn't compile yet, but syncing up so I can hack on it from
9975         work. What are branches for if not broken code? ;-)
9976         
9977         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9978         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9979         DBUS_HEADER_FIELD_ERROR_NAME
9980         
9981         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9982         for the interface+member pairs
9983         (string_hash): change to use g_str_hash algorithm
9984         (find_direct_function, find_string_function): refactor these to
9985         share most code.
9986         
9987         * dbus/dbus-message.c: port all of this over to support 
9988         interface/member fields instead of name field
9989
9990         * dbus/dbus-object-registry.c: port over
9991         
9992         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9993         from _dbus_string_validate_name
9994
9995         * bus/dbus-daemon-1.1: change file format for the 
9996         <deny>/<allow> stuff to match new message naming scheme
9997
9998         * bus/policy.c: port over
9999
10000         * bus/config-parser.c: parse new format
10001         
10002 2003-08-16  Havoc Pennington  <hp@pobox.com>
10003
10004         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10005         broken assertion
10006
10007         * glib/dbus-gproxy.c: some hacking
10008
10009 2003-08-15  Havoc Pennington  <hp@redhat.com>
10010
10011         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10012
10013         * dbus/dbus-connection.c
10014         (dbus_connection_send_with_reply_and_block): factor out internals;
10015         change to convert any error replies to DBusError instead of 
10016         returning them as a message
10017
10018 2003-08-15  Havoc Pennington  <hp@pobox.com>
10019
10020         * dbus/dbus-connection.c, 
10021         dbus/dbus-pending-call.c: Finish the pending call stuff
10022
10023 2003-08-14  Havoc Pennington  <hp@redhat.com>
10024
10025         * dbus/dbus-pending-call.c: start on new object that will replace
10026         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10027         replies
10028
10029         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10030         with remote interfaces
10031
10032         * dbus/dbus-gidl.c: do the boring boilerplate in here
10033         
10034 2003-08-12  Havoc Pennington  <hp@pobox.com>
10035
10036         * bus/dispatch.c (bus_dispatch): make this return proper 
10037         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10038
10039         * dbus/dbus-errors.c (dbus_set_error): use
10040         _dbus_string_append_printf_valist
10041
10042         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10043         (_dbus_string_append_printf): new
10044
10045         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10046         UNKNOWN_METHOD
10047
10048         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10049         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10050         message is unhandled.
10051
10052 2003-08-11  Havoc Pennington  <hp@pobox.com>
10053
10054         * bus/test.c (client_disconnect_handler): change to return
10055         HANDLED (would have been REMOVE_MESSAGE)
10056
10057         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10058         HANDLED/NOT_YET_HANDLED instead of
10059         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10060         should be used.
10061
10062 2003-08-10  Havoc Pennington  <hp@pobox.com>
10063
10064         * tools/dbus-send.c (main): add --type argument, for now
10065         supporting only method_call and signal types.
10066
10067         * tools/dbus-print-message.c: print message type
10068
10069         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10070         init connection->objects
10071
10072         * doc/dbus-specification.sgml: fix sgml
10073
10074         * bus/*.c: port over to object-instance API changes
10075
10076         * test/test-service.c: ditto
10077         
10078         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10079         name, we will have to fix up the rest of the code to also handle
10080         this
10081         (dbus_message_new): generic message-creation call
10082         (set_string_field): allow appending name field
10083
10084 2003-08-06  Havoc Pennington  <hp@pobox.com>
10085
10086         * dbus/dbus-object-registry.c: implement signal connection 
10087         and dispatch
10088
10089         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10090
10091         * dbus/dbus-internals.c (_dbus_memdup): new function
10092
10093 2003-08-02  Havoc Pennington  <hp@pobox.com>
10094
10095         * dbus/dbus-message.c (dbus_message_get_no_reply)
10096         (dbus_message_set_no_reply): add these and remove
10097         set_is_error/get_is_error
10098
10099         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10100         remove the ERROR flag, since there's now an ERROR type
10101
10102 2003-08-01  Havoc Pennington  <hp@pobox.com>
10103
10104         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10105         implement
10106
10107         * dbus/dbus-message.c (dbus_message_get_type): new function
10108
10109         * doc/dbus-specification.sgml: add "type" byte to messages
10110
10111 2003-08-01  Havoc Pennington  <hp@pobox.com>
10112
10113         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10114         a message type enum to distinguish kinds of message
10115         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10116         that need not be replied to
10117
10118 2003-08-01  Havoc Pennington  <hp@pobox.com>
10119
10120         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10121         (unpack_8_octets): fix no-64-bit-int bug
10122
10123         * dbus/dbus-object-registry.c (validate_id): validate the 
10124         connection ID bits, not just the instance ID.
10125
10126         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10127         the connection-global 33 bits of the object ID
10128
10129         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10130         object ID in the new way
10131
10132         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10133         define server/client/instance bits.
10134
10135 2003-07-30  Havoc Pennington  <hp@pobox.com>
10136
10137         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10138         build
10139
10140 2003-07-13  Havoc Pennington  <hp@pobox.com>
10141
10142         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10143         fields to DBusObjectVTable and DBusObjectInfo
10144
10145 2003-07-12  Havoc Pennington  <hp@pobox.com>
10146
10147         * dbus/dbus-object-registry.c: implement unit test,
10148         fix bugs discovered in process
10149
10150         * dbus/dbus-connection.c: remove handler_table and
10151         register_handler(), add DBusObjectRegistry usage
10152
10153         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10154         (dbus_object_id_set_null): new functions
10155
10156 2003-07-08  Havoc Pennington  <hp@pobox.com>
10157
10158         * dbus/dbus-object.c: implement some of this
10159
10160         * dbus/dbus-object-registry.c
10161         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10162         param
10163         (_dbus_object_registry_new): handle OOM
10164
10165 2003-07-08  Havoc Pennington  <hp@pobox.com>
10166
10167         * dbus/dbus-object.h: sketch out an API for registering objects
10168         with a connection, that allows us to use as little as 24 bytes
10169         per object and lets application code represent an object in 
10170         any conceivable way.
10171
10172         * dbus/dbus-object-registry.c: implement the hard bits of the
10173         DBusConnection aspect of object API. Not yet wired up.
10174         
10175 2003-07-06  Havoc Pennington  <hp@pobox.com>
10176
10177         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10178         (_dbus_marshal_object_id): new
10179         (_dbus_demarshal_object_id): new
10180         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10181         consolidate identical switch cases. Don't conditionalize handling
10182         of DBUS_TYPE_UINT64, need to handle the type always.
10183         (_dbus_marshal_validate_arg): consolidate identical cases, and
10184         handle DBUS_TYPE_OBJECT_ID
10185
10186         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10187
10188         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10189
10190 2003-09-28  Havoc Pennington  <hp@pobox.com>
10191
10192         * real 0.13 release
10193
10194 2003-09-28  Havoc Pennington  <hp@pobox.com>
10195
10196         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10197         to work with Debian db2html
10198
10199 2003-09-28  Havoc Pennington  <hp@pobox.com>
10200
10201         * configure.in: 0.13
10202
10203         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10204         stylesheet-images for benefit of Debian
10205         
10206         Change back to using filesystem-linked sockets for the system
10207         bus, so only root can create the default system bus address.
10208         
10209         * bus/system.conf.in: change to use
10210         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10211
10212         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10213         from here.
10214
10215         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10216         here, and AC_DEFINE DBUS_SYSTEM_PATH
10217
10218 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10219
10220         * doc/TODO:
10221         * doc/busconfig.dtd:
10222         Add busconfig DTD.
10223         
10224 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10225
10226         * doc/dbus-specification.sgml:
10227         Add activation reply values.
10228         
10229 2003-08-05  Havoc Pennington  <hp@redhat.com>
10230
10231         * configure.in: 0.12
10232
10233 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10234
10235         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10236         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10237         (add_watch), (remove_watch), (create_source):
10238         Refcount fds, fixes some reentrancy issues.
10239         
10240 2003-07-30  Havoc Pennington  <hp@redhat.com>
10241
10242         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10243         bus address to be abstract if we have abstract sockets
10244
10245         * NEWS: update
10246
10247 2003-07-28  Havoc Pennington  <hp@redhat.com>
10248
10249         * bus/messagebus.in: fix to avoid processname/servicename 
10250         confusion, from Michael Kearey
10251         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10252         
10253 2003-07-23  Havoc Pennington  <hp@pobox.com>
10254
10255         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10256         fix from Andy Hanton to remove broken "+1"
10257
10258 2003-07-16  Havoc Pennington  <hp@pobox.com>
10259
10260         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10261         babysitter process, as suggested by Thomas Leonard, so 
10262         an "eval `dbus-launch --exit-with-session`" will actually 
10263         return
10264
10265 2003-07-16  Havoc Pennington  <hp@pobox.com>
10266
10267         * configure.in: print out EXPANDED_* variables in the summary at
10268         the end; clean up the code that computes EXPANDED_ variables and
10269         get the ones using exec_prefix right. Should make things work
10270         when you build without --prefix
10271
10272 2003-06-29  Havoc Pennington  <hp@pobox.com>
10273
10274         * mono/Test.cs (class Test): fire up a main loop and run it
10275
10276         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10277         done once, the app has to do it
10278
10279 2003-06-26  Havoc Pennington  <hp@pobox.com>
10280
10281         * mono/Connection.cs: set up connection with the glib main loop
10282
10283 2003-07-01  Havoc Pennington  <hp@redhat.com>
10284
10285         * doc/dbus-specification.sgml: clarify the format of a type code,
10286         change suggested by Jim Blandy
10287
10288 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10289
10290         * doc/Makefile.am:
10291         * tools/Makefile.am: Don't assume srcdir == builddir.
10292
10293         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10294         the allocated block.
10295         (_dbus_memory_test): New function.
10296         * dbus/dbus-test.h: Add _dbus_memory_test ().
10297         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10298
10299         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10300         of %c%c%c%c.
10301         (dbus_message_new): Remove obsolete @todo.
10302
10303         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10304         (_dbus_marshal_set_uint64): Fix comment.
10305
10306         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10307         hardcode FIELD_REPLY_SERIAL.
10308
10309         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10310         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10311
10312         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10313         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10314
10315 2003-06-24  Havoc Pennington  <hp@pobox.com>
10316
10317         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10318
10319 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10320
10321         * configure.in:
10322         * gcj/.cvsignore:
10323         * gcj/Hello.java:
10324         * gcj/Makefile.am:
10325         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10326         * gcj/org/.cvsignore:
10327         * gcj/org/Makefile.am:
10328         * gcj/org/freedesktop/.cvsignore:
10329         * gcj/org/freedesktop/Makefile.am:
10330         * gcj/org/freedesktop/dbus/.cvsignore:
10331         * gcj/org/freedesktop/dbus/Makefile.am:
10332         * gcj/org/freedesktop/dbus/Message.java: (Message),
10333         (Message.Message):
10334         * gcj/org/freedesktop/dbus/natMessage.cc:
10335         Fix the build system.
10336
10337 2003-06-22  Havoc Pennington  <hp@pobox.com>
10338
10339         * mono/Connection.cs: add more bindings
10340
10341         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10342         more than once.
10343
10344 2003-06-22  Havoc Pennington  <hp@pobox.com>
10345
10346         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10347         Start wrapping more stuff.
10348
10349 2003-06-22  Havoc Pennington  <hp@pobox.com>
10350
10351         * mono/Message.cs: implement Message.Wrap() that ensures we only
10352         have a single C# wrapper per DBusMessage, assuming it works which
10353         it probably doesn't.
10354
10355         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10356         (dbus_message_free_data_slot): new
10357         (dbus_message_set_data): new
10358         (dbus_message_get_data): new
10359
10360 2003-06-22  Havoc Pennington  <hp@pobox.com>
10361
10362         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10363         (_dbus_data_slot_allocator_alloc): rework these to keep a
10364         reference count on each slot and automatically manage a global
10365         slot ID variable passed in by address
10366
10367         * bus/bus.c: convert to new dataslot API
10368
10369         * dbus/dbus-bus.c: convert to new dataslot API
10370
10371         * dbus/dbus-connection.c: convert to new dataslot API
10372
10373         * dbus/dbus-server.c: convert to new dataslot API
10374
10375         * glib/dbus-gmain.c: ditto
10376
10377         * bus/test.c: ditto
10378
10379         * bus/connection.c: ditto
10380
10381 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10382
10383         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10384         after the gcj checks so that the correct configuration tags
10385         will be added to libtool.
10386
10387         * dbus-glib-1.pc.in: No need to specify any includes since
10388         dbus-1.pc.in has those.
10389
10390 2003-06-22  Havoc Pennington  <hp@pobox.com>
10391
10392         * mono/*, gcj/*, configure.in, Makefile.am:
10393         Check in makefiles and subdirs for mono and gcj bindings.
10394         Neither binding actually exists, just trying to get through
10395         all the build and other boring bits.
10396
10397 2003-06-21  Philip Blundell  <philb@gnu.org>
10398
10399         * tools/dbus-monitor.1: Updated.
10400
10401         * tools/dbus-send.1: Likewise.
10402
10403 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10404
10405         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10406         for hangup and error after checking read so we won't discard
10407         pending data if both hangup and read are set.
10408
10409 2003-06-19  Philip Blundell  <philb@gnu.org>
10410
10411         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10412
10413         * tools/dbus-send.c: Accept both --system and --session.
10414
10415         * tools/dbus-monitor.c: Same here.
10416
10417 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10418
10419         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10420         from C++ (Patch by Miloslav Trmac).
10421
10422 2003-06-15  Joe Shaw  <joe@assbarn.com>
10423
10424         * configure.in: Check for socklen_t.
10425
10426         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10427
10428         * test/test-segfault.c: Add #include <sys/time.h>
10429
10430         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10431         dbus-launch needs it.
10432
10433 2003-06-09  Havoc Pennington  <hp@redhat.com>
10434
10435         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10436         SUN_LEN, it breaks abstract socket usage
10437
10438         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10439         starts of lines.
10440
10441 2003-06-04  Havoc Pennington  <hp@pobox.com>
10442
10443         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10444         using unix:abstract=/foo, and when listening in a tmpdir
10445         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10446
10447         * dbus/dbus-transport.c (_dbus_transport_open): support
10448         unix:abstract=/foo
10449
10450         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10451         support abstract sockets
10452
10453         * dbus/dbus-transport-unix.c
10454         (_dbus_transport_new_for_domain_socket): support abstract sockets
10455
10456         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10457         toggle as an argument, implement abstract namespace support
10458         (_dbus_listen_unix_socket): ditto
10459
10460         * configure.in: add --enable-abstract-sockets and implement
10461         a configure check for autodetection of the right value.
10462
10463 2003-06-01  Havoc Pennington  <hp@pobox.com>
10464
10465         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10466         in /tmp (though on Linux this will end up being useless,
10467         when we add abstract namespace support)
10468
10469         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10470         subst'ing it
10471
10472 2003-05-28  Colin Walters  <walters@verbum.org>
10473
10474         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10475
10476 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10477
10478         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10479
10480 2003-05-17  Colin Walters  <walters@gnu.org>
10481
10482         * tools/dbus-send.c: Don't exit with an error code if --help was
10483         passed.  Default to using the session bus instead of the system
10484         one.
10485
10486         * tools/dbus-launch.c: Ditto.
10487
10488         * tools/dbus-monitor.c: Ditto.
10489
10490         * tools/dbus-send.1: Update with new arguments.
10491
10492         * tools/dbus-launch.c: Emit code to export variables.  New
10493         arguments -s and -c to specify shell syntax, and a bit of code to
10494         autodetect syntax.  Also, allow specifying a program to run.
10495
10496         * tools/dbus-launch.1: Update with new arguments.
10497
10498         * tools/dbus-send.1: Ditto.
10499
10500         * tools/dbus-monitor.1: Ditto.
10501
10502 2003-05-17  Havoc Pennington  <hp@pobox.com>
10503
10504         * bus/config-parser.c (merge_included): merge in policies from
10505         child configuration file.
10506
10507         * bus/policy.c (bus_policy_merge): function to merge two policies
10508         together
10509
10510 2003-05-16  Havoc Pennington  <hp@redhat.com>
10511
10512         * dbus/dbus-connection.c: disable verbose lock spew
10513
10514         * tools/dbus-send.c: add --print-reply command line option
10515
10516         * tools/dbus-print-message.h (print_message): new util function
10517         shared by dbus-send and dbus-monitor
10518
10519         * tools/dbus-monitor.c (handler_func): exit on disconnect
10520
10521         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10522         disconnected, don't try to use the read_watch
10523
10524         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10525         so we can find this bug more easily
10526
10527 2003-05-16  Havoc Pennington  <hp@redhat.com>
10528
10529         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10530         NULL as DBusHashTable is annoyingly likely to do.
10531
10532 2003-05-16  Colin Walters  <walters@verbum.org>
10533
10534         * tools/dbus-monitor.c: Add --session argument and usage()
10535         function.
10536
10537         * tools/dbus-monitor.1: Update with new --session arg.
10538
10539         * bus/Makefile.am (install-data-hook): Create
10540         $(libdir)/dbus-1.0/services so that the session bus is happy.
10541
10542 2003-05-15  Havoc Pennington  <hp@redhat.com>
10543
10544         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10545         on non-x86. ifdef's are evil.
10546
10547 2003-05-15  Havoc Pennington  <hp@redhat.com>
10548
10549         * configure.in: 0.11
10550
10551         * NEWS: update
10552
10553         * bus/Makefile.am (initddir): apparently we are supposed to put
10554         init scripts in /etc/rc.d/init.d not /etc/init.d
10555
10556         * bus/Makefile.am: remove the "you must --enable-tests to make
10557         check" as it broke distcheck
10558
10559         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10560
10561 2003-05-13  James Willcox  <jwillcox@gnome.org>
10562
10563         * configure.in:
10564         * bus/activation.c: (bus_activation_service_created),
10565         (bus_activation_activate_service):
10566         * bus/driver.c: (bus_driver_send_service_deleted),
10567         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10568         (bus_driver_send_service_acquired),
10569         (bus_driver_send_welcome_message),
10570         (bus_driver_handle_list_services):
10571         * bus/session.conf.in:
10572         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10573         (dbus_bus_service_exists), (dbus_bus_activate_service):
10574         * dbus/dbus-bus.h:
10575
10576         Add some convenience API which lets you activate a service, and did a
10577         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10578         and dbus_message_get_args()
10579
10580 2003-05-11  Havoc Pennington  <hp@pobox.com>
10581
10582         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10583         calling _dbus_marshal_validate_arg() for every byte in a byte
10584         array, etc.
10585
10586         * dbus/dbus-message-handler.c: use atomic reference counting to
10587         reduce number of locks slightly; the global lock in here sucks
10588
10589         * dbus/dbus-connection.c
10590         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10591         update_dispatch_status that can be called with lock held; then use
10592         in a couple places to reduce locking/unlocking
10593         (dbus_connection_send): hold the lock over the whole function
10594         instead of acquiring it twice.
10595
10596         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10597
10598         * bus/connection.c (bus_connections_setup_connection): fix access
10599         to already-freed memory.
10600
10601         * dbus/dbus-connection.c: keep a little cache of linked list
10602         nodes, to avoid using the global linked list alloc lock in the
10603         normal send-message case. Instead we just use the connection lock
10604         that we already have to take.
10605
10606         * dbus/dbus-list.c (_dbus_list_find_last): new function
10607
10608         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10609         change to use a struct for the atomic type; fix docs,
10610         they return value before increment, not after increment.
10611
10612         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10613         (_dbus_string_append_8_aligned): new functions to try to
10614         microoptimize this operation.
10615         (reallocate_for_length): break this out of set_length(), to
10616         improve profile info, and also so we can consider inlining the
10617         set_length() part.
10618
10619         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10620         strings with some preallocation, cuts down on our calls to realloc
10621         a fair bit. Though if we can get the "move entire string to empty
10622         string" optimization below to kick in here, it would be better.
10623
10624         * dbus/dbus-string.c (_dbus_string_move): just call
10625         _dbus_string_move_len
10626         (_dbus_string_move_len): add a special case for moving
10627         an entire string into an empty string; we can just
10628         swap the string data instead of doing any reallocs.
10629         (_dbus_string_init_preallocated): new function
10630
10631 2003-05-11  Havoc Pennington  <hp@pobox.com>
10632
10633         Write a "test-profile" that does echo client-server with threads;
10634         profile reveals lock contention, memcpy/realloc of buffers, and
10635         UTF-8 validation as hot spots. 20% of lock contention eliminated
10636         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10637         contention is global mempool locks for GList and DBusList.
10638
10639         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10640         x86 implementation
10641
10642         * dbus/dbus-connection.c (struct DBusConnection): use
10643         dbus_atomic_t for the reference count
10644
10645         * dbus/dbus-message.c (struct DBusMessage): declare
10646         dbus_atomic_t values as volatile
10647
10648         * configure.in: code to detect ability to use atomic integer
10649         operations in assembly, from GLib patch
10650
10651         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10652         time, tired of it being wrong in threads and forked processes
10653
10654         * glib/test-profile.c: a little program to bounce messages back
10655         and forth between threads and eat CPU
10656
10657         * dbus/dbus-connection.c: add debug spew macros for debugging
10658         thread locks; include config.h at top; fix deadlock in
10659         dbus_connection_flush()
10660
10661 2003-05-08  Havoc Pennington  <hp@pobox.com>
10662
10663         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10664         data from getting written, and there wasn't a good reason to
10665         use _exit really.
10666
10667         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10668         dbus_verbose lines in test coverage
10669         (main): add list of functions sorted by # of untested blocks
10670         to the coverage report
10671
10672         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10673
10674         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10675
10676         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10677         extend test coverage
10678
10679         * test/data/auth/cancel.auth-script: test canceling an
10680         authentication
10681
10682         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10683         aren't used. in CVS history if we end up needing them.
10684
10685 2003-05-04  Havoc Pennington  <hp@pobox.com>
10686
10687         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10688         unit test
10689
10690         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10691         function, which assumed length was in # of strings, not bytes
10692
10693         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10694         missing coverage
10695
10696         * dbus/dbus-connection.c
10697         (_dbus_connection_queue_received_message): disable function for
10698         now, we are only using it in test mode
10699
10700         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10701         remove a mistaken FIXME
10702
10703 2003-05-04  Havoc Pennington  <hp@pobox.com>
10704
10705         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10706         unlock mutex on successful return, patch from Anders Gustafsson
10707
10708 2003-05-04  Havoc Pennington  <hp@pobox.com>
10709
10710         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10711         Anders Gustafsson
10712
10713 2003-05-04  Havoc Pennington  <hp@pobox.com>
10714
10715         * tools/dbus-launch.c: implement
10716
10717         * bus/main.c (main), bus/bus.c (bus_context_new):
10718         implement --print-pid and --fork
10719
10720 2003-05-03  Havoc Pennington  <hp@redhat.com>
10721
10722         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10723         the address had no value, and add to test suite. Fix and
10724         regression test from Miloslav Trmac
10725
10726 2003-05-03  Havoc Pennington  <hp@pobox.com>
10727
10728         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10729         watch is invalid when handled
10730
10731         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10732         dbus-launch utility to launch the bus from a shell script.  Didn't
10733         actually implement dbus-launch yet, it's just a placeholder still.
10734
10735 2003-05-03  Havoc Pennington  <hp@pobox.com>
10736
10737         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10738         daemon; also documents daemon config file, so replaces
10739         doc/config-file.txt. Corrected some stuff from config-file.txt in
10740         the process of moving it.
10741
10742 2003-05-03  Havoc Pennington  <hp@pobox.com>
10743
10744         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10745         add some man pages
10746
10747 2003-05-03  Colin Walters  <walters@verbum.org>
10748
10749         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10750         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10751
10752         * Makefile.am: Update to use new .pc versioning scheme.
10753
10754 2003-05-02  Havoc Pennington  <hp@redhat.com>
10755
10756         * bus/system.conf.in: allow send/receive to/from message bus
10757         service
10758
10759 2003-04-30  Havoc Pennington  <hp@redhat.com>
10760
10761         * configure.in: print a note when building with unit tests and
10762         without assertions
10763
10764 2003-04-30  Havoc Pennington  <hp@redhat.com>
10765
10766         * Makefile.am: add a check-local that complains if you didn't
10767         configure with --enable-tests
10768
10769 2003-04-29  Havoc Pennington  <hp@redhat.com>
10770
10771         * glib/dbus-gmain.c: docs cleanups
10772
10773         * dbus/dbus-types.h: add docs on int64 types
10774
10775         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10776         public API docs section
10777
10778 2003-04-29  Havoc Pennington  <hp@redhat.com>
10779
10780         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10781         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10782         parallel install API version, not with the D-BUS package version.
10783
10784         * HACKING: move some of README over here
10785
10786         * README: updates, and document API/ABI policy
10787
10788         * configure.in: reindentation
10789
10790 2003-04-29  Havoc Pennington  <hp@redhat.com>
10791
10792         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10793         to use this library" to be sure people have the right
10794         expectations.
10795
10796 2003-04-28  Havoc Pennington  <hp@redhat.com>
10797
10798         * configure.in: add --enable-docs which by default is auto yes if
10799         doxygen and db2html found, no otherwise; but can be forced on/off
10800
10801         * doc/Makefile.am: conditionalize whether to build docs on
10802         --enable-docs
10803
10804 2003-04-28  Havoc Pennington  <hp@redhat.com>
10805
10806         * configure.in: 0.10
10807
10808         * NEWS: update
10809
10810         * bus/system.conf.in: add <includedir>system.d</includedir>
10811
10812         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10813         username was provided but not uid
10814
10815         * bus/config-parser.c (struct BusConfigParser): keep track of
10816         whether the parser is toplevel or was included; change some
10817         of the error handling if it's included.
10818
10819 2003-04-27  Havoc Pennington  <hp@pobox.com>
10820
10821         Unbreak my code...
10822
10823         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10824         report correct status if we finish processing authentication
10825         inside this function.
10826
10827         * bus/activation.c (try_send_activation_failure): use
10828         bus_transaction_send_error_reply
10829
10830         * bus/connection.c (bus_connection_get_groups): return an error
10831         explaining the problem
10832
10833         * bus/bus.c (bus_context_check_security_policy): implement
10834         restriction here that inactive connections can only send the
10835         hello message. Also, allow bus driver to send anything to
10836         any recipient.
10837
10838         * bus/connection.c (bus_connection_complete): create the
10839         BusClientPolicy here instead of on-demand.
10840         (bus_connection_get_policy): don't return an error
10841
10842         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10843         sender field in message being replied to
10844
10845         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10846         causing it to return FALSE always
10847
10848         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10849         we checked sender rather than destination
10850
10851 2003-04-25  Havoc Pennington  <hp@redhat.com>
10852
10853         test suite is slightly hosed at the moment, will fix soon
10854
10855         * bus/connection.c (bus_connections_expire_incomplete): fix to
10856         properly disable the timeout when required
10857         (bus_connection_set_name): check whether we can remove incomplete
10858         connections timeout after we complete each connection.
10859
10860         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10861         probably still broken.
10862
10863         * bus/services.c (bus_registry_acquire_service): implement max
10864         number of services owned, and honor allow/deny rules on which
10865         services a connection can own.
10866
10867         * bus/connection.c (bus_connection_get_policy): report errors here
10868
10869         * bus/activation.c: implement limit on number of pending
10870         activations
10871
10872 2003-04-25  Havoc Pennington  <hp@redhat.com>
10873
10874         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10875         where we used >= 0 instead of != DBUS_UID_UNSET.
10876
10877 2003-04-25  Havoc Pennington  <hp@redhat.com>
10878
10879         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10880         were toggled without add/remove, fix from Anders Gustafsson
10881
10882 2003-04-24  Havoc Pennington  <hp@redhat.com>
10883
10884         * test/data/valid-config-files/basic.conf: add <limit> tags to
10885         this test
10886
10887         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10888         <limit> tag in configuration file.
10889
10890 2003-04-24  Havoc Pennington  <hp@redhat.com>
10891
10892         * bus/dispatch.c: somehow missed some name_is
10893
10894         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10895         (_dbus_timeout_set_interval): new
10896
10897         * bus/connection.c (bus_connections_setup_connection): record time
10898         when each connection is first set up, and expire them after the
10899         auth timeout passes.
10900
10901 2003-04-24  Havoc Pennington  <hp@redhat.com>
10902
10903         * dbus/dbus-message.c (dbus_message_name_is): rename
10904         (dbus_message_service_is): rename
10905         (dbus_message_sender_is): rename
10906         (dbus_message_get_service): rename
10907
10908 2003-04-24  Havoc Pennington  <hp@redhat.com>
10909
10910         * configure.in: add --enable-checks
10911
10912         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10913
10914         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10915         to use thread locks.
10916         (_dbus_connection_handler_destroyed_locked): move some private
10917         functions into proper docs group
10918
10919         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10920         _dbus_return_val_if_fail
10921
10922         Throughout: use dbus_return_if_fail
10923
10924 2003-04-23  James Willcox  <jwillcox@gnome.org>
10925
10926         * glib/dbus-glib.h:
10927         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10928         (dbus_connection_setup_with_g_main),
10929         (dbus_server_setup_with_g_main):
10930         * glib/test-dbus-glib.c: (main):
10931         * glib/test-thread-client.c: (main):
10932         * glib/test-thread-server.c: (new_connection_callback), (main):
10933         * tools/dbus-monitor.c: (main):
10934
10935         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10936         and dbus_server_setup_with_g_main().
10937
10938 2003-04-20  Havoc Pennington  <hp@pobox.com>
10939
10940         * doc/dbus-specification.sgml: document the restrictions on
10941         message and service names
10942
10943 2003-04-22  Havoc Pennington  <hp@redhat.com>
10944
10945         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10946         support, and do some code cleanups to share more code and
10947         speed up array marshal/demarshal.
10948
10949         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10950
10951         * configure.in: generate dbus-arch-deps.h
10952
10953         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10954         64-bit typecodes
10955
10956 2003-04-22  Havoc Pennington  <hp@redhat.com>
10957
10958         * test/data/valid-messages/opposite-endian.message: fix test
10959         to use proper type for rply field
10960
10961         * test/data/invalid-messages: add tests for below validation
10962
10963         * dbus/dbus-message.c (decode_header_data): validate field types,
10964         and validate that named fields are valid names
10965         (decode_name_field): consider messages in the
10966         org.freedesktop.Local. namespace to be invalid.
10967
10968         * dbus/dbus-string.c (_dbus_string_validate_name): new
10969
10970 2003-04-19  Havoc Pennington  <hp@pobox.com>
10971
10972         * bus/driver.c (bus_driver_handle_hello): check limits and
10973         return an error if they are exceeded.
10974
10975         * bus/connection.c: maintain separate lists of active and inactive
10976         connections, and a count of each. Maintain count of completed
10977         connections per user. Implement code to check connection limits.
10978
10979         * dbus/dbus-list.c (_dbus_list_unlink): export
10980
10981         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10982         number of bytes in the message queue for a connection
10983
10984 2003-04-18  Havoc Pennington  <hp@pobox.com>
10985
10986         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10987
10988         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10989         memleaks
10990
10991         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10992         on realloc be sure to update the pointer in the keyring
10993
10994         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10995         offset to avoid writing to unallocated memory
10996
10997         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10998         try the next mechanism, so we properly handle OOM
10999
11000         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11001         on OOM.
11002         (_dbus_keyring_new): fix OOM bug
11003         (_dbus_keyring_new_homedir): always set error; impose a maximum
11004         number of keys we'll load from the file, mostly to speed up the
11005         test suite and make its OOM checks more useful, but also for
11006         general sanity.
11007
11008         * dbus/dbus-auth.c (process_error_server): reject authentication
11009         if we get an error from the client
11010         (process_cancel): on cancel, send REJECTED, per the spec
11011         (process_error_client): send CANCEL if we get an error from the
11012         server.
11013
11014 2003-04-18  Havoc Pennington  <hp@pobox.com>
11015
11016         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11017         debug spew
11018
11019         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11020         handling problem
11021
11022         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11023         about DBUS_TEST_HOMEDIR once
11024
11025         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11026         the environment
11027
11028         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11029         config file so we test the right thing
11030
11031         Throughout: assorted docs improvements
11032
11033 2003-04-18  Havoc Pennington  <hp@pobox.com>
11034
11035         * glib/dbus-gmain.c: adapt to watch changes
11036
11037         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11038
11039         * dbus/dbus-server.h: remove dbus_server_handle_watch
11040
11041         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11042
11043         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11044         like DBusTimeout, so we don't need dbus_connection_handle_watch
11045         etc.
11046
11047 2003-04-17  Havoc Pennington  <hp@redhat.com>
11048
11049         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11050         database usage so it all goes via the DBusUserDatabase cache.
11051
11052 2003-04-17  Havoc Pennington  <hp@redhat.com>
11053
11054         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11055         there was an OOM watch we skipped, we always return TRUE so we
11056         iterate again to have a look at it again. Fixes test suite hang.
11057         Code rearrangement also lets us lose some memset and only iterate
11058         over callbacks once.
11059
11060         * bus/driver.c (bus_driver_handle_message): sense of test for
11061         reply was backward
11062
11063 2003-04-16  Havoc Pennington  <hp@pobox.com>
11064
11065         * doc/dbus-specification.sgml: make spec say serials are unsigned
11066
11067         * dbus/dbus-message.h: change message serials to unsigned
11068
11069         * dbus/dbus-connection.c: adapt to message serials being unsigned
11070
11071 2003-04-15  Havoc Pennington  <hp@pobox.com>
11072
11073         * bus/bus.c: create and keep around a shared DBusUserDatabase
11074         object.
11075
11076         * bus/connection.c (bus_connection_get_groups): don't cache
11077         groups for user in the connection object, since user database
11078         object now does that.
11079
11080 2003-04-16  Havoc Pennington  <hp@redhat.com>
11081
11082         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11083         list of size counters
11084         (_dbus_message_loader_putback_message_link): put back a popped link
11085
11086         * dbus/dbus-connection.c
11087         (dbus_connection_set_max_live_messages_size): rename
11088         max_received_size
11089         (dbus_connection_get_outgoing_size): get size of outgoing
11090         queue
11091         (_dbus_connection_set_connection_counter): remove this cruft
11092
11093 2003-04-14  Havoc Pennington  <hp@redhat.com>
11094
11095         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11096         caching, but at some point we might want to be able to use a
11097         different database.
11098
11099         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11100         SHA1 conf file to test the sha1 auth mechanism, since the regular
11101         test always uses EXTERNAL when available.
11102
11103         * configure.in,
11104         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11105         add conf file that requires use of sha1 auth
11106
11107 2003-04-13  Havoc Pennington  <hp@pobox.com>
11108
11109         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11110         from Philip Blundell to send messages and monitor them.
11111
11112 2003-04-13  Havoc Pennington  <hp@pobox.com>
11113
11114         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11115         callbacks
11116
11117         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11118         users
11119
11120         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11121         fix to only recover unused bytes if we're already authenticated
11122         (_dbus_transport_get_is_authenticated): fix to still mark us
11123         authenticated if there are unused bytes.
11124
11125         * bus/dispatch.c: implement security policy checking
11126
11127         * bus/connection.c (bus_transaction_send_from_driver): new
11128
11129         * bus/bus.c (bus_context_check_security_policy): new
11130
11131         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11132         now we just set the DBusError and it gets converted to an error
11133         reply.
11134
11135         * bus/connection.c (allow_user_function): enable code using actual
11136         data from the config file
11137
11138         * bus/policy.c (list_allows_user): handle wildcard rules for
11139         user/group connection perms
11140
11141 2003-04-13  Havoc Pennington  <hp@pobox.com>
11142
11143         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11144
11145         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11146
11147         * bus/policy.c (bus_policy_append_mandatory_rule)
11148         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11149         (bus_policy_append_group_rule): new functions
11150
11151 2003-04-12  Havoc Pennington  <hp@pobox.com>
11152
11153         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11154
11155         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11156         the pid/gid/uid, just for paranoia.
11157
11158         * test/break-loader.c (randomly_do_n_things): find a byte
11159         containing a type code, and randomly change it to a different
11160         type code.
11161
11162 2003-04-12  Havoc Pennington  <hp@pobox.com>
11163
11164         * bus/policy.h: change BusPolicy to be the thing from the config
11165         file, and rename old BusPolicy to BusClientPolicy
11166
11167         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11168         match change in how policy works
11169
11170         * dbus/dbus-internals.h: mark assert_not_reached as
11171         __attribute((noreturn))__
11172
11173 2003-04-11  Havoc Pennington  <hp@redhat.com>
11174
11175         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11176         the broadcast service. Use boolean return for ServiceExists.
11177
11178 2003-04-11  Havoc Pennington  <hp@redhat.com>
11179
11180         * configure.in: add another directory to look for qt in.
11181
11182 2003-04-11  Havoc Pennington  <hp@redhat.com>
11183
11184         * AUTHORS: add Colin Walters
11185
11186 2003-04-11  Havoc Pennington  <hp@redhat.com>
11187
11188         * NEWS: update
11189
11190         * configure.in: 0.9
11191
11192 2003-04-11  Havoc Pennington  <hp@redhat.com>
11193
11194         * bus/messagebus.in: remove pid file when stopping the
11195         message bus, since the bus won't have privileges to remove it
11196         itself.
11197
11198 2003-04-11  Havoc Pennington  <hp@redhat.com>
11199
11200         * bus/bus.c (bus_context_new): move credentials change after
11201         creating pidfile
11202
11203 2003-04-11  Havoc Pennington  <hp@pobox.com>
11204
11205         * test/decode-gcov.c: add "below average functions" to the
11206         coverage report, and change how some of the code works.
11207
11208         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11209         not in the coverage stats.
11210
11211         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11212         couple places so running the test suite doesn't result in megaspam.
11213
11214 2003-04-11  Havoc Pennington  <hp@pobox.com>
11215
11216         * bus/dispatch.c (check_existent_service_activation): accept a no
11217         memory error in a place we didn't before
11218
11219         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11220         in case the first one failed," since the test suite is less
11221         broken now.
11222
11223 2003-04-10  Havoc Pennington  <hp@pobox.com>
11224
11225         * bus/dispatch.c (check_segfault_service_activation): add test
11226         for launching an executable that just crashes.
11227
11228         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11229         don't leave a million cores. We'll see how portable this is.
11230
11231 2003-04-10  Havoc Pennington  <hp@pobox.com>
11232
11233         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11234         the possible parent failures before we fork, so that we don't
11235         fail to create a babysitter after creating the child.
11236
11237         * bus/activation.c (bus_activation_activate_service): kill child
11238         if we don't successfully complete the activation.
11239
11240 2003-04-10  Havoc Pennington  <hp@redhat.com>
11241
11242         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11243         the connection if it's disconnected
11244
11245         * bus/activation.c (bus_activation_service_created): use new
11246         transaction features to roll back removal of pending activation if
11247         we don't successfully create the service after all. Don't remove
11248         pending activation if the function fails.
11249
11250         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11251         (_dbus_list_insert_after_link): new code to facilitate
11252         services.c fixes
11253
11254         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11255         new functionality, so we can preallocate the ability to insert
11256         into a hash table.
11257
11258         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11259         allowing us to put custom hooks in a transaction to be used for
11260         cancelling said transaction
11261
11262         * doc/dbus-specification.sgml: add some discussion of secondary
11263         service owners, and disallow zero-length service names
11264
11265         * bus/services.c (bus_registry_acquire_service): new function,
11266         splits out part of bus_driver_handle_acquire_service() and fixes
11267         a bug where we didn't remove the service doing the acquiring
11268         from the secondary queue if we failed to remove the current owner
11269         from the front of the queue.
11270
11271 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11272
11273         * doc/dbus-specification.sgml:
11274         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11275
11276 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11277
11278         * bus/.cvsignore:
11279         * glib/.cvsignore:
11280         * test/.cvsignore:
11281         Added files to cvsignore
11282
11283         * dbus/dbus-message.h:
11284         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11285         Make get_named() take two out argument and return a boolean.
11286         (dbus_message_iter_get_args_valist):
11287         Update usage of get_named().
11288         (dbus_message_iter_append_byte):
11289         Fix typo
11290         (dbus_message_iter_append_named)
11291         Fix typo
11292         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11293         More tests.
11294
11295 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11296
11297         * dbus/dbus-marshal.[ch]:
11298         Add array_type_pos argument to _dbus_marshal_validate_arg.
11299         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11300
11301         * dbus/dbus-message.[ch]:
11302         Multi-dimensional arrays have full type specification in the
11303         outermost array. Iter code re-arranged to handle this.
11304         Added some more iter tests.
11305
11306         * doc/dbus-specification.sgml:
11307         Add me to authors.
11308         Remove old FIXME.
11309         Update new array encoding description.
11310         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11311
11312         * test/data/invalid-messages/array-with-mixed-types.message:
11313         * test/data/valid-messages/array-of-array-of-uint32.message:
11314         Change to the new array format.
11315
11316         * test/data/invalid-messages/too-short-dict.message:
11317         Fix bug in test.
11318
11319         * test/data/valid-messages/recursive-types.message:
11320         Fix up and extend test.
11321
11322 2003-04-10  Havoc Pennington  <hp@pobox.com>
11323
11324         * bus/dispatch.c: lots of fixes
11325
11326         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11327         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11328         that was crack, broke the test service.
11329
11330         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11331         handling to avoid piling up errors if we get a failure on the
11332         first address.
11333
11334         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11335         pid in assertion failures.
11336
11337         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11338         to some fixed size of file descriptor array. Don't return TRUE
11339         anytime a timeout exists, that led to lots of busy loop silliness
11340         in the tests.
11341
11342 2003-04-09  Havoc Pennington  <hp@redhat.com>
11343
11344         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11345         I'd checked this in earlier but hadn't.
11346
11347 2003-04-09  Havoc Pennington  <hp@redhat.com>
11348
11349         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11350         the activation test (man this is getting old!)
11351
11352 2003-04-09  Havoc Pennington  <hp@redhat.com>
11353
11354         * test/test-utils.c: use dispatch status function to fix this up
11355
11356         * bus/connection.c (connection_watch_callback): don't dispatch
11357         from here
11358         (connection_timeout_callback): don't dispatch from here
11359         (bus_connections_setup_connection): set the dispatch status function
11360         (bus_connection_disconnected): unset it
11361
11362         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11363         used to add a connection to be dispatched
11364         (_dbus_loop_iterate): do the dispatching at the end of each
11365         iteration
11366
11367         * dbus/dbus-connection.c
11368         (dbus_connection_set_dispatch_status_function): new function
11369         allowing us to fix up main loop usage
11370         (_dbus_connection_last_unref): free all the various function
11371         user data
11372         (dbus_connection_dispatch): call the DispatchStatusFunction
11373         whenever this function returns
11374         (dbus_connection_handle_watch): call DispatchStatusFunction
11375         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11376         (reply_handler_timeout): call DispatchStatusFunction
11377         (dbus_connection_flush): call DispatchStatusFunction
11378
11379 2003-04-09  Havoc Pennington  <hp@redhat.com>
11380
11381         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11382         a memory leak
11383
11384         * bus/dispatch.c (check_service_activated): fix bug in test
11385
11386         * dbus/dbus-mainloop.c (check_timeout): fix this up
11387
11388         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11389         verbose output so we can sort out output from different processes,
11390         e.g. in the activation case.
11391
11392 2003-04-08  Colin Walters  <walters@gnu.org>
11393
11394         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11395         the pid file.
11396         (bus_context_new): Set it.
11397         (bus_context_unref): Use it to delete the pid file.
11398
11399 2003-04-08  Havoc Pennington  <hp@redhat.com>
11400
11401         * test/data/invalid-messages/array-with-mixed-types.message:
11402         regression test that fails for the moment
11403
11404         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11405         tests for convenience
11406
11407         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11408         array of nil, it broke things.
11409
11410         * test/data/invalid-messages/array-of-nil.message: regression test
11411
11412         * test/data/valid-messages/array-of-array-of-uint32.message:
11413         happened to write this so added it to suite
11414
11415 2003-04-08  Havoc Pennington  <hp@redhat.com>
11416
11417         * bus/driver.c (bus_driver_handle_acquire_service): init
11418         retval/reply before checking name
11419
11420         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11421         recursion depth argument
11422
11423         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11424         in the public struct for future extension
11425
11426         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11427         typo
11428
11429         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11430         message
11431
11432         * doc/dbus-specification.sgml: fix typo
11433
11434 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11435
11436         Implemented recursive types, named types and new-style iters
11437
11438         * bus/driver.c:
11439         * glib/test-thread-client.c: (thread_func):
11440         * glib/test-thread-server.c: (handle_test_message):
11441         * test/test-service.c: (handle_echo):
11442         Update to new api
11443
11444         * dbus/Makefile.am:
11445         * dbus/dbus-dict.c:
11446         * dbus/dbus-dict.h:
11447         * dbus/dbus.h
11448         Remove DBusDict
11449
11450         * dbus/dbus-internals.c: (_dbus_type_to_string):
11451         Update for new types.
11452
11453         * dbus/dbus-marshal.[ch]:
11454         Implement recursive types and the new marshalling format.
11455         Remove hardcoded dict marshalling.
11456         Marshal named types.
11457
11458         * dbus/dbus-message-builder.c:
11459         Add BYTE_ARRAY.
11460         Remove references to old types
11461
11462         * dbus/dbus-message.[ch]:
11463         New non-refcounted iter API that supports recursive iters.
11464         Use iters for appending, including support for recursive
11465         iters.
11466         Add byte and named type support.
11467         Update everything to new marshalling formats.
11468         Add tests for new API.
11469
11470         * dbus/dbus-protocol.h:
11471         Remove old array types.
11472         Add types: BYTE, ARRAY, DICT, NAMED
11473
11474         * dbus/dbus-string.c:
11475         * dbus/dbus-sysdeps.c:
11476         Make parse_double locale safe.
11477
11478         * dbus/dbus-test-main.c:
11479         Call setlocale.
11480
11481         * dbus/dbus-test.c:
11482         Kill dict test
11483
11484         * doc/dbus-specification.sgml:
11485         Update spec
11486
11487         * test/data/incomplete-messages/missing-body.message:
11488         * test/data/invalid-messages/bad-boolean.message:
11489         * test/data/invalid-messages/bad-boolean-array.message:
11490         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11491         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11492         * test/data/invalid-messages/too-short-dict.message:
11493         * test/data/valid-messages/dict-simple.message:
11494         * test/data/valid-messages/dict.message:
11495         * test/data/valid-messages/emptiness.message:
11496         * test/data/valid-messages/lots-of-arguments.message:
11497         * test/data/valid-messages/no-padding.message:
11498         * test/data/valid-messages/recursive-types.message:
11499         Add missing NAME fields
11500         Fix up dicts & arrays
11501
11502         * test/data/invalid-messages/dict-with-nil-value.message:
11503         Removed, this is not invalid anymore.
11504
11505         * test/data/valid-messages/recursive-types.message:
11506         Add new test for deeply recursive types.
11507
11508 2003-04-07  Havoc Pennington  <hp@pobox.com>
11509
11510         * bus/driver.c (bus_driver_handle_acquire_service): return an
11511         error if you try to acquire a service that starts with ':'
11512
11513 2003-04-07  Havoc Pennington  <hp@redhat.com>
11514
11515         * doc/dbus-specification.sgml: require that base service names
11516         start with ':' and that the base service is created/deleted
11517         as first and last things a connection does on the bus
11518
11519         * bus/dispatch.c (check_existent_service_activation): lots more
11520         work on the activation test; it doesn't fully pass yet...
11521
11522         * test/test-service.c (main): fix so we don't memleak the
11523         connection to the message bus
11524         (filter_func): accept a message asking us to exit
11525
11526 2003-04-06  Havoc Pennington  <hp@pobox.com>
11527
11528         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11529         from Colin Walters
11530
11531         * configure.in: fixes to Qt detection from Colin Walters
11532
11533         * doc/Makefile.am: Only remove generated docbook dirs if they
11534         exist, from Colin Walters
11535
11536         * dbus/dbus-bus.c: change how we set well-known connections to
11537         NULL, so that it works if a single connection is stored in
11538         two well-known array slots.
11539
11540         * test/Makefile.am: remove a lot of stuff that isn't immediately
11541         useful, it's in CVS history if we want it.
11542
11543         * test/test-service.c: use dbus-mainloop instead of that
11544         watch.[hc] crack
11545
11546 2003-04-06  Havoc Pennington  <hp@pobox.com>
11547
11548         * dbus/Makefile.am: split lists of sources into stuff that goes in
11549         the library, util functions that go in the lib and are also used
11550         elsewhere, and util functions that are used in tests/daemon but
11551         don't go in the lib.
11552
11553         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11554         here so it can be used in test binaries also
11555
11556 2003-04-06  Havoc Pennington  <hp@pobox.com>
11557
11558         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11559         here in the parent process, so we can return an error if it
11560         fails. Also, move some of the code into the child so the parent
11561         is less hosed if we fail midway through.
11562
11563         * bus/bus.c (bus_context_new): move pidfile detection further up
11564         in the function, before we start overwriting sockets and such.
11565
11566         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11567
11568         * configure.in: add --with-system-pid-file and --with-system-socket
11569
11570 2003-04-06  Colin Walters  <walters@verbum.org>
11571
11572         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11573
11574         * bus/system.conf.in: Declare a pidfile.
11575
11576         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11577         create one (if appropriate).
11578
11579         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11580         (struct BusConfigParser) [pidfile]: New.
11581         (element_type_to_name, merge_included, start_busconfig_child)
11582         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11583         (bus_config_parser_unref): Free it.
11584         (bus_config_parser_get_pidfile): New function.
11585
11586         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11587
11588         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11589
11590         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11591
11592         * dbus/dbus-sysdeps.h: Prototype it.
11593
11594 2003-04-06  Havoc Pennington  <hp@pobox.com>
11595
11596         * bus/bus.c (bus_context_new): print the address in here, rather
11597         than in main(), because we need to do it before forking the daemon
11598
11599         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11600         on the service nonexistent error
11601
11602         * bus/driver.c (bus_driver_handle_acquire_service): set the
11603         sender on the AcquireService reply
11604
11605         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11606         server also listen on a UNIX socket so services can connect to it.
11607
11608 2003-04-06  Havoc Pennington  <hp@pobox.com>
11609
11610         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11611         so it detects deadlocks and also we actually init threads when
11612         debugging.
11613
11614 2003-04-06  Havoc Pennington  <hp@pobox.com>
11615
11616         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11617         save the domain socket name, and unlink it when we disconnect the
11618         server. Means that at least when we exit normally, we won't leave
11619         a bunch of junk in /tmp
11620
11621         * dbus/dbus-transport-unix.c
11622         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11623         memory management). (I was making a real change here but then
11624         didn't)
11625
11626 2003-04-06  Havoc Pennington  <hp@pobox.com>
11627
11628         * bus/bus.c (bus_context_new): fix wrong handling of
11629         server_data_slot_unref() in the error case.
11630
11631         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11632         "(condition) != 0" to _dbus_real_assert so that
11633         "_dbus_assert (pointer)" doesn't cause a warning
11634
11635         * bus/main.c (main): accept --print-address option to print out
11636         the message bus address
11637
11638         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11639
11640         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11641         "tmpdir" option to unix: address on client side
11642
11643         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11644         to unix: address
11645
11646         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11647         we can use to create sockets in the test suite.
11648
11649         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11650         cleanly. To be used for testing.
11651
11652         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11653
11654         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11655
11656         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11657         handle trying to call this when there's no servers active
11658
11659 2003-04-05  Havoc Pennington  <hp@pobox.com>
11660
11661         * NEWS: update
11662
11663         * configure.in: 0.8
11664
11665 2003-04-05  Havoc Pennington  <hp@pobox.com>
11666
11667         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11668         crash on startup. Need to get "try starting the daemon"
11669         in the test suite I guess. ;-)
11670
11671         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11672         tracked the number of open connections; it's better done in
11673         application-specific code as you want it to span all servers etc.
11674
11675 2003-04-05  Havoc Pennington  <hp@pobox.com>
11676
11677         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11678         patch from Colin Walters
11679
11680 2003-04-05  Havoc Pennington  <hp@pobox.com>
11681
11682         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11683         reality; in fact multiple mechanisms are allowed.
11684
11685         * dbus/dbus-internals.c (_dbus_real_assert)
11686         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11687         _dbus_assert_not_reached() into functions, so that they don't show
11688         up in basic block counts for test coverage, and don't use up as
11689         much disk space. Does mean slower execution speed though, so
11690         assumes --disable-asserts is the normal production case.
11691
11692 2003-04-05  Havoc Pennington  <hp@pobox.com>
11693
11694         * test/Makefile.am (dist-hook): also dist *.in files
11695
11696         * NEWS: update
11697
11698         * configure.in: 0.7
11699
11700 2003-04-05  Havoc Pennington  <hp@pobox.com>
11701
11702         * dbus/dbus-string.c: docs warning
11703
11704         * dbus/dbus-spawn.c: missing docs
11705
11706         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11707
11708 2003-04-05  Havoc Pennington  <hp@pobox.com>
11709
11710         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11711         magic from GLib
11712
11713         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11714         to -1 once we've reaped the babysitter
11715         (_dbus_babysitter_handle_watch): do as much work as we can, not
11716         just one go of it
11717
11718         * bus/activation.c: add code using DBusBabysitter so that we
11719         handle it when a service fails to start up properly.
11720         (bus_activation_service_created): don't remove the activation
11721         entries as we go, just let them get removed when we free the pending
11722         activation. Unref reply messages after sending them.
11723
11724 2003-04-05  Havoc Pennington  <hp@pobox.com>
11725
11726         * test/decode-gcov.c (main): print per-directory stats in the report
11727
11728         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11729
11730 2003-04-05  Havoc Pennington  <hp@pobox.com>
11731
11732         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11733
11734         * test/decode-gcov.c: hack up a little program to suck data
11735         out of gcov files. Yes this is sort of silly.
11736
11737         * configure.in: define something in config.h and do an
11738         AM_CONDITIONAL when gcov is enabled
11739
11740 2003-04-04  Havoc Pennington  <hp@redhat.com>
11741
11742         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11743         return a "babysitter" object that is used to monitor the status of
11744         the spawned process and reap it when required.
11745
11746         * test/test-segfault.c, test/test-exit.c,
11747         test/test-sleep-forever.c: binaries that do various lame things,
11748         used in the test suite.
11749
11750         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11751
11752 2003-04-03  Havoc Pennington  <hp@pobox.com>
11753
11754         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11755         in preparation for modifying it, dbus-sysdeps is getting
11756         a bit unmanageable.
11757
11758 2003-04-03  Havoc Pennington  <hp@redhat.com>
11759
11760         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11761         have multiple ones
11762
11763         * bus/*.[hc]: adapt to mainloop change
11764
11765 2003-04-03  Havoc Pennington  <hp@redhat.com>
11766
11767         * bus/activation.c (load_directory): fix up memleaks
11768         (bus_activation_entry_free): free the entry
11769
11770         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11771         we get one from the message bus; fix memleaks.
11772
11773         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11774
11775 2003-04-03  Havoc Pennington  <hp@pobox.com>
11776
11777         * bus/config-parser.c (bus_config_parser_unref): free
11778         list of mechanisms, bug discovered by test suite enhancements
11779         (putting system.conf and session.conf into suite)
11780
11781         * test/Makefile.am, test/test-service.c: add placeholder for a
11782         test service that we'll activate as part of test suite. Doesn't
11783         do anything yet.
11784
11785         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11786         setting NULL value, and use system malloc not dbus_malloc()
11787         when we have unavoidable memleakage.
11788
11789         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11790         didn't work, and support DBUS_BUS_ACTIVATION.
11791
11792         * bus/activation.c (child_setup): pass our well-known bus type to
11793         the child
11794
11795         * bus/config-parser.c: support <type> to specify well-known type
11796
11797         * doc/dbus-specification.sgml: document the env variables to
11798         locate well-known buses and find service activator
11799
11800 2003-04-02  Havoc Pennington  <hp@redhat.com>
11801
11802         * test/Makefile.am (all-local): add a rule to copy tests to
11803         builddir, so we can have generated tests. Use this to remove the
11804         silly hack for testing system.conf and session.conf. Will use this
11805         shortly to generate .service files pointing to test binaries.
11806
11807 2003-04-02  Havoc Pennington  <hp@redhat.com>
11808
11809         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11810         current alloc and needed new length, not max of the doubled
11811         allocation and needed new length. Also, when building tests,
11812         don't do the double-allocation stuff, just realloc every time.
11813
11814 2003-04-02  Havoc Pennington  <hp@redhat.com>
11815
11816         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11817         in error messages
11818         (_dbus_string_get_dirname): new
11819         (_dbus_sysdeps_test): new
11820         (_dbus_directory_open): include dirnames in error messages
11821
11822         * bus/config-parser.c: interpret <include> and <includedir> and
11823         <servicedir> relative to config file location if the given
11824         filename is not absolute.
11825
11826         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11827
11828 2003-04-02  Havoc Pennington  <hp@redhat.com>
11829
11830         * bus/connection.c (bus_transaction_send_error_reply): set sender
11831         service for the error, and unref the reply on success
11832
11833         * bus/activation.c: convert to use BusTransaction so OOM can be
11834         handled correctly
11835         (bus_activation_service_created): set sender of the message
11836
11837 2003-04-01  Havoc Pennington  <hp@redhat.com>
11838
11839         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11840         <includedir> (at least mostly)
11841
11842         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11843         first, then the user ID
11844
11845 2003-04-01  Havoc Pennington  <hp@pobox.com>
11846
11847         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11848         function
11849
11850         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11851
11852         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11853
11854         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11855         socket 0777, and unlink any existing socket.
11856
11857         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11858         the configuration file so specifies; set up auth mechanism
11859         restrictions
11860
11861         * bus/config-parser.c (bus_config_parser_content): add support
11862         for <fork> option and fill in code for <auth>
11863
11864         * bus/system.conf.in: add <fork/> to default configuration,
11865         and limit auth mechanisms to EXTERNAL
11866
11867         * doc/config-file.txt (Elements): add <fork>
11868
11869         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11870         (_dbus_change_identity): new function
11871
11872 2003-03-31  Havoc Pennington  <hp@redhat.com>
11873
11874         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11875         (_dbus_listen_unix_socket): fix off-by-one error in null
11876         termination spotted by Nalin
11877
11878 2003-03-31  Havoc Pennington  <hp@redhat.com>
11879
11880         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11881         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11882         having a real home directory available.
11883
11884 2003-03-31  Havoc Pennington  <hp@redhat.com>
11885
11886         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11887
11888         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11889
11890         * configure.in: add support for specifying a style of init script
11891         to install
11892
11893 2003-03-31  Havoc Pennington  <hp@redhat.com>
11894
11895         Fix some annoying DBusString API and fix all affected code.
11896
11897         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11898         max_length argument
11899         (_dbus_string_get_data): change to return string instead of using
11900         an out param
11901         (_dbus_string_get_const_data): ditto
11902         (_dbus_string_get_data_len): ditto
11903         (_dbus_string_get_const_data_len): ditto
11904
11905 2003-03-31  Havoc Pennington  <hp@redhat.com>
11906
11907         * bus/main.c (main): fix up the command line arguments to be nicer
11908
11909 2003-03-31  Havoc Pennington  <hp@redhat.com>
11910
11911         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11912         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11913         final location that lands in the config file
11914
11915         * bus/config-loader-expat.c (bus_config_load): fix type of
11916         XML_Parser variable
11917
11918         * doc/TODO: remove TODO item for dbus_bus_get()
11919
11920         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11921
11922 2003-03-31  Havoc Pennington  <hp@pobox.com>
11923
11924         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11925         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11926         argument since they are always client side
11927
11928         * dbus/dbus-server.c (dbus_server_get_address): new function
11929
11930         * bus/main.c (main): take the configuration file as an argument.
11931
11932         * test/data/valid-config-files/debug-allow-all.conf: new file to
11933         use with dispatch.c tests for example
11934
11935         * bus/test-main.c (main): require test data dir
11936
11937         * bus/bus.c (bus_context_new): change this to take a
11938         configuration file name as argument
11939
11940         * doc/config-file.txt (Elements): add <servicedir>
11941
11942         * bus/system.conf, bus/session.conf: new files
11943
11944         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11945         well-known socket if none set
11946
11947         * configure.in: create system.conf and session.conf
11948
11949 2003-03-30  Havoc Pennington  <hp@pobox.com>
11950
11951         * bus/config-parser.c: hacking
11952
11953         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11954         to shut down, since it could cause weirdness with the DBusList
11955         lock
11956
11957         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11958         link-oriented stack routines
11959         (alloc_link): free the mempool if the first alloc from it fails
11960
11961         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11962
11963         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11964         from GLib
11965         (_dbus_string_skip_white): new
11966
11967         * doc/config-file.txt (Elements): add <includedir>
11968
11969 2003-03-28  Havoc Pennington  <hp@pobox.com>
11970
11971         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11972         (_dbus_string_copy_data): new functions
11973
11974 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11975
11976         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11977         * dbus/dbus-bus.h:
11978         Add dbus_bus_get.
11979
11980         * dbus/dbus-memory.c:
11981         Fix a doc comment.
11982
11983 2003-03-28  Havoc Pennington  <hp@pobox.com>
11984
11985         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11986         I think it may have just been superstition. Not sure.
11987
11988         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11989         failures that were not being handled.
11990
11991         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11992
11993         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11994         row that will fail on out-of-memory.
11995
11996         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11997         function for testing out-of-memory handling.
11998
11999         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12000         allocation functions, they do map exactly to the expat ones.
12001
12002 2003-03-27  Havoc Pennington  <hp@redhat.com>
12003
12004         * bus/config-loader-libxml.c (bus_config_load): add another error
12005         check
12006
12007 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12008
12009         * doc/TODO:
12010         Add note about automatic service activation.
12011
12012         * doc/dbus-specification.sgml:
12013         Rename the specification and clarify a few things.
12014
12015 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12016
12017         * Doxyfile.in:
12018         * dbus/dbus-address.c:
12019         * dbus/dbus-dict.c:
12020         * dbus/dbus-marshal.c:
12021         * dbus/dbus-server-debug-pipe.c:
12022         * dbus/dbus-transport-unix.c:
12023         Fix documentation warnings.
12024
12025 2003-03-26  Havoc Pennington  <hp@pobox.com>
12026
12027         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12028         after every test so it's quick and easy to see which leaked, and
12029         so we test multiple dbus_shutdown() calls
12030
12031         * configure.in: change configure.in XML stuff to also support
12032         expat
12033
12034         * config-loader-libxml.c: some hacking
12035
12036         * config-loader-expat.c: some hacking
12037
12038         * config-parser.c: some hacking, plus tests
12039
12040 2003-03-25  Havoc Pennington  <hp@redhat.com>
12041
12042         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12043
12044         * configure.in: add --with-xml option to specify XML library,
12045         right now only libxml is supported.
12046
12047         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12048         nonworking code between home and work, still just stubs
12049
12050 2003-03-24  Havoc Pennington  <hp@redhat.com>
12051
12052         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12053         file
12054
12055         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12056         NULL argument for "message" if the error is a well-known one,
12057         fill in a generic message in this case.
12058
12059         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12060         favor of DBusError
12061
12062         * bus/test.c (bus_test_flush_bus): add
12063
12064         * bus/policy.c (bus_policy_test): test code stub
12065
12066 2003-03-24  Havoc Pennington  <hp@pobox.com>
12067
12068         * bus/connection.c (bus_connections_setup_connection): set up
12069         the "can this user connect" function, but it always returns
12070         TRUE until we have a config file parser so we can have a config
12071         file that allows connections.
12072
12073 2003-03-23  Havoc Pennington  <hp@pobox.com>
12074
12075         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12076         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12077         the mutex, so we can check for proper memory management
12078         and OOM handling.
12079
12080         * dbus/dbus-dataslot.c: remove the mutex from
12081         DBusDataSlotAllocator and lock it manually when using it,
12082         to simplify fitting it into the global slots framework.
12083
12084         * dbus/dbus-threads.c (init_static_locks): rework how we're
12085         handling global locks so they are easily shut down.
12086
12087         * bus/policy.c (bus_policy_append_rule): fix
12088
12089         * bus/test-main.c (main): check for memleaks
12090
12091         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12092         test suite check for memleaks
12093
12094         * dbus/dbus-memory.c: add support in test mode for tracking
12095         number of outstanding blocks
12096
12097 2003-03-23  Havoc Pennington  <hp@pobox.com>
12098
12099         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12100         policies code
12101
12102         * dbus/dbus-hash.h: add ULONG hash keys
12103
12104         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12105         (_dbus_get_group_id): new function
12106
12107 2003-03-20  Havoc Pennington  <hp@redhat.com>
12108
12109         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12110         new function
12111         (dbus_connection_get_unix_user): new function
12112
12113 2003-03-20  Havoc Pennington  <hp@pobox.com>
12114
12115         * bus/connection.c (bus_connection_send_oom_error): assert that
12116         message has a sender
12117         (connection_execute_transaction): ditto
12118         (bus_connection_preallocate_oom_error): fix to set the sender, and
12119         set recipient to the destination service, not the bus driver
12120
12121         * bus/policy.c: hacking
12122
12123         * dbus/dbus-message.c (dbus_message_service_is): new function
12124         (dbus_message_sender_is): new
12125
12126 2003-03-19  Havoc Pennington  <hp@redhat.com>
12127
12128         * bus/policy.c: start sketching code for policy restrictions on
12129         what connections can do.
12130
12131 2003-03-18  Havoc Pennington  <hp@redhat.com>
12132
12133         * doc/TODO: some notes on high-level todo items. Little nitpick
12134         stuff is all in @todo, so no need to add it here.
12135
12136         * doc/config-file.txt: some notes on how config file might look
12137
12138 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12139
12140         * configure.in: 0.6
12141
12142         * NEWS: Update.
12143
12144 2003-03-17  Havoc Pennington  <hp@redhat.com>
12145
12146         * dbus/dbus-internals.h: add gcc attributes so that
12147         our printf-style functions warn on bad arguments to
12148         format
12149
12150         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12151         format bug
12152
12153         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12154         printf format bug
12155
12156 2003-03-17  Havoc Pennington  <hp@redhat.com>
12157
12158         * bus/test-main.c (main): make it print something as it runs
12159         so make check doesn't look stuck
12160
12161         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12162         from CVS, now obsolete
12163
12164 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12165
12166         * bus/dispatch.c: (bus_dispatch):
12167         Refetch the service name since it may have been reallocated
12168         when dbus_message_set_sender was called.
12169
12170         * dbus/dbus-sysdeps.c: (_dbus_accept):
12171         Add address and address length variables and use them to stop
12172         valgrind from complaining.
12173
12174 2003-03-17  Havoc Pennington  <hp@pobox.com>
12175
12176         All tests pass, no memleaks, no valgrind complaints.
12177
12178         * bus/test.c: refcount handler_slot
12179
12180         * bus/connection.c (bus_connections_new): refcount
12181         connection_data_slot
12182
12183         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12184         bytes so that auth scripts pass.
12185
12186         * bus/dispatch.c: init message_handler_slot so it gets allocated
12187         properly
12188
12189         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12190
12191         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12192         dealloc server_pipe_hash when no longer used for benefit of
12193         leak checking
12194
12195         * dbus/dbus-auth.c (process_command): memleak fix
12196
12197         * bus/dispatch.c (check_hello_message): memleak fix
12198
12199 2003-03-16  Havoc Pennington  <hp@pobox.com>
12200
12201         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12202
12203 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12204
12205         * bus/activation.c (bus_activation_activate_service): Append
12206         the pending activation entry to the list of pending activations.
12207
12208 2003-03-16  Havoc Pennington  <hp@pobox.com>
12209
12210         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12211         connections
12212
12213         * dbus/dbus-address.c (create_entry): fix OOM handling when
12214         failing to alloc entry->method
12215
12216 2003-03-16  Havoc Pennington  <hp@pobox.com>
12217
12218         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12219         the watch
12220
12221         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12222         add some missing dbus_set_result
12223
12224         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12225         alloc the DBusMessageHandler
12226
12227         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12228         the transport here, since we call this from the finalizer; it
12229         resulted in a double-finalize.
12230
12231         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12232         where we tried to use transport->connection that was NULL,
12233         happened when transport was disconnected early on due to OOM
12234
12235         * bus/*.c: adapt to handle OOM for watches/timeouts
12236
12237         * dbus/dbus-transport-unix.c: port to handle OOM during
12238         watch handling
12239
12240         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12241         reference to unused bytes instead of a copy
12242
12243         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12244         out of memory
12245
12246         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12247         FALSE on OOM
12248
12249         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12250         of memory
12251
12252 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12253
12254         * doc/dbus-specification.sgml:
12255         Document reply message for ActivateService.
12256
12257 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12258
12259         * bus/activation.c: (bus_pending_activation_entry_free),
12260         (bus_pending_activation_free), (bus_activation_new),
12261         (bus_activation_unref), (bus_activation_service_created),
12262         (bus_activation_activate_service):
12263         * bus/activation.h:
12264         * bus/bus.c: (bus_context_new):
12265         * bus/desktop-file.c: (new_section):
12266         * bus/driver.c: (bus_driver_send_service_deleted),
12267         (bus_driver_handle_activate_service):
12268         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12269         * bus/services.h:
12270         * dbus/dbus-connection.c:
12271         (dbus_connection_send_with_reply_and_block):
12272         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12273         * dbus/dbus-protocol.h:
12274         Make activation work better. Now pending activations will be queued
12275         and the daemon won't try to activate services that are already registered.
12276
12277 2003-03-16  Havoc Pennington  <hp@pobox.com>
12278
12279         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12280         connection data
12281
12282         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12283         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12284
12285 2003-03-16  Havoc Pennington  <hp@pobox.com>
12286
12287         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12288         this. always run the test suite before commit...
12289
12290         * bus/*: adapt to DBusConnection API changes
12291
12292         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12293         requires renaming stuff to avoid dbus_connection_dispatch name
12294         conflict.
12295
12296         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12297         function
12298
12299         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12300         separate from _dbus_message_loader_return_buffer()
12301
12302         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12303         this, because it's now always broken to use; the number of
12304         messages in queue vs. the number still buffered by the message
12305         loader is undefined/meaningless. Should use
12306         dbus_connection_get_dispatch_state().
12307         (dbus_connection_dispatch): rename from
12308         dbus_connection_dispatch_message
12309
12310 2003-03-16  Havoc Pennington  <hp@pobox.com>
12311
12312         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12313         implementation
12314
12315 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12316
12317         * dbus/dbus-connection.c:
12318         (dbus_connection_send_with_reply_and_block):
12319         Decrease connection->n_incoming when removing an entry
12320         from the list.
12321         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12322         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12323         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12324         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12325         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12326         (dbus_dict_get_byte_array):
12327         Handle NULL arrays and strings. Also add support for byte arrays.
12328
12329         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12330         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12331         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12332         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12333         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12334         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12335         * dbus/dbus-marshal.h:
12336         Add support for marshalling and demarshalling empty arrays and strings.
12337
12338         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12339         (dbus_message_append_string_array),
12340         (dbus_message_iter_get_boolean),
12341         (dbus_message_iter_get_boolean_array),
12342         (dbus_message_iter_get_int32_array),
12343         (dbus_message_iter_get_uint32_array),
12344         (dbus_message_iter_get_double_array),
12345         (dbus_message_iter_get_byte_array),
12346         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12347         (check_message_handling):
12348         Add support for getting empty arrays and dicts.
12349
12350         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12351         Don't do any validation at all for now, that's better than just checking
12352         for ASCII.
12353
12354         * test/data/valid-messages/emptiness.message:
12355         New test message with lots of empty arrays.
12356
12357 2003-03-16  Havoc Pennington  <hp@pobox.com>
12358
12359         * dbus/dbus-connection.c
12360         (_dbus_connection_queue_received_message_link): new function that
12361         can't fail due to OOM
12362
12363         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12364         new function pops a message together with a list link
12365         containing it.
12366
12367         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12368         message queuing functions to avoid needing to alloc memory
12369
12370 2003-03-16  Havoc Pennington  <hp@pobox.com>
12371
12372         Oops - test code was only testing failure of around 30 of the
12373         mallocs in the test path, but it turns out there are 500+
12374         mallocs. I believe this was due to misguided linking setup such
12375         that there was one copy of dbus_malloc etc. in the daemon and one
12376         in the shared lib, and only daemon mallocs were tested. In any
12377         case, the test case now tests all 500+ mallocs, and doesn't pass
12378         yet, though there are lots of fixes in this patch.
12379
12380         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12381         this so that it doesn't need to allocate memory, since it
12382         has no way of indicating failure due to OOM (and would be
12383         annoying if it did).
12384
12385         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12386
12387         * bus/Makefile.am: rearrange to create two self-contained
12388         libraries, to avoid having libraries with overlapping symbols.
12389         that was resulting in weirdness, e.g. I'm pretty sure there
12390         were two copies of global static variables.
12391
12392         * dbus/dbus-internals.c: move the malloc debug stuff to
12393         dbus-memory.c
12394
12395         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12396         empty.
12397
12398         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12399
12400         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12401         on failure.
12402
12403         * bus/dispatch.c (bus_dispatch_add_connection): free
12404         message_handler_slot when no longer using it, so
12405         memory leak checkers are happy for the test suite.
12406
12407         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12408
12409         * bus/bus.c (new_connection_callback): disconnect in here if
12410         bus_connections_setup_connection fails.
12411
12412         * bus/connection.c (bus_connections_unref): fix to free the
12413         connections
12414         (bus_connections_setup_connection): if this fails, don't
12415         disconnect the connection, just be sure there are no side
12416         effects.
12417
12418         * dbus/dbus-string.c (undo_alignment): unbreak this
12419
12420         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12421         leaking
12422         (_dbus_auth_new): fix the order in which we free strings
12423         on OOM failure
12424
12425         * bus/connection.c (bus_connection_disconnected): fix to
12426         not send ServiceDeleted multiple times in case of memory
12427         allocation failure
12428
12429         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12430         get the base service name
12431         (dbus_bus_register_client): don't return base service name,
12432         instead store it on the DBusConnection and have an accessor
12433         function for it.
12434         (dbus_bus_register_client): rename dbus_bus_register()
12435
12436         * bus/dispatch.c (check_hello_message): verify that other
12437         connections on the bus also got the correct results, not
12438         just the one sending hello
12439
12440 2003-03-15  Havoc Pennington  <hp@pobox.com>
12441
12442         Make it pass the Hello handling test including all OOM codepaths.
12443         Now to do other messages...
12444
12445         * bus/services.c (bus_service_remove_owner): fix crash when
12446         removing owner from an empty list of owners
12447         (bus_registry_ensure): don't leave service in the list of
12448         a connection's owned services if we fail to put the service
12449         in the hash table.
12450
12451         * bus/connection.c (bus_connection_preallocate_oom_error): set
12452         error flag on the OOM error.
12453
12454         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12455         handle _dbus_transport_set_connection failure
12456
12457         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12458         to create watches up front and simply enable/disable them as
12459         needed.
12460         (unix_connection_set): this can now fail on OOM
12461
12462         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12463         of enabling/disabling a watch or timeout.
12464
12465         * bus/loop.c (bus_loop_iterate): don't touch disabled
12466         watches/timeouts
12467
12468         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12469
12470 2003-03-15  Havoc Pennington  <hp@pobox.com>
12471
12472         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12473         write useful test code, after all that futzing around ;-)
12474
12475         Test does not yet pass because we can't handle OOM in
12476         _dbus_transport_messages_pending (basically,
12477         dbus_connection_preallocate_send() does not prealloc the write
12478         watch). To fix this, I think we need to add new stuff to
12479         set_watch_functions, namely a SetEnabled function so we can alloc
12480         the watch earlier, then enable it later.
12481
12482         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12483         dbus-memory.c to the convenience lib
12484
12485         * bus/test.c: rename some static functions to keep them clearly
12486         distinct from stuff in connection.c. Handle client disconnection.
12487
12488 2003-03-14  Havoc Pennington  <hp@pobox.com>
12489
12490         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12491         transport, tests more of the real codepath. Set up clients
12492         with bus_setup_debug_client.
12493
12494         * bus/test.c (bus_setup_debug_client): function to set up debug
12495         "clients" on the main loop
12496
12497         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12498         support
12499
12500         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12501         server type
12502
12503         * dbus/dbus-server-debug.c: support a debug server based on pipes
12504
12505         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12506         (_dbus_close): new function
12507
12508         * configure.in: check for socketpair
12509
12510 2003-03-14  Havoc Pennington  <hp@redhat.com>
12511
12512         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12513         cheesy hack
12514
12515         * dbus/dbus-transport-debug.c: rework this a good bit to be
12516         less complicated. hopefully still works.
12517
12518         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12519         manually
12520
12521         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12522         after running it
12523
12524         * dbus/dbus-message.c (dbus_message_copy): rename from
12525         dbus_message_new_from_message, fix it up to copy
12526         all the message fields, add test case
12527
12528         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12529         not quite passing yet
12530
12531 2003-03-14  Havoc Pennington  <hp@pobox.com>
12532
12533         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12534         until no work remains" in test code. (the large diff here
12535         is just code movement, no actual changes)
12536
12537         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12538         1, no point waiting around for test code.
12539         (_dbus_server_debug_accept_transport): unref the timeout
12540         after adding it (right?)
12541
12542         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12543
12544 2003-03-13  Havoc Pennington  <hp@redhat.com>
12545
12546         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12547         out of memory
12548
12549         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12550         of memory
12551
12552         * dbus/dbus-connection.h: Make AddWatchFunction and
12553         AddTimeoutFunction return a bool so they can fail on out-of-memory
12554
12555         * bus/bus.c (bus_context_new): set up timeout handlers
12556
12557         * bus/connection.c (bus_connections_setup_connection): set up
12558         timeout handlers
12559
12560         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12561         can fail
12562
12563         * bus/bus.c (bus_context_new): adapt to changes
12564
12565         * bus/connection.c: adapt to changes
12566
12567         * test/watch.c: adapt to DBusWatch changes
12568
12569         * bus/dispatch.c (bus_dispatch_test): started adding this but
12570         didn't finish
12571
12572 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12573
12574         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12575
12576 2003-03-13  Havoc Pennington  <hp@pobox.com>
12577
12578         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12579         set up a test framework as for the library
12580
12581 2003-03-12  Havoc Pennington  <hp@pobox.com>
12582
12583         Throughout: purge global variables, introduce BusActivation,
12584         BusConnections, BusRegistry, etc. objects instead.
12585
12586         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12587         message bus object
12588
12589         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12590         going to redo this a bit differently I think
12591
12592 2003-03-12  Havoc Pennington  <hp@redhat.com>
12593
12594         Mega-patch that gets the message bus daemon initially handling
12595         out-of-memory. Work still needed. Also lots of random
12596         moving stuff to DBusError instead of ResultCode.
12597
12598         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12599
12600         * dbus/dbus-connection.c
12601         (dbus_connection_send_with_reply_and_block): use DBusError
12602
12603         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12604         DBusResultCode
12605
12606         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12607         code here, as the only failure possible is OOM.
12608
12609         * bus/connection.c (bus_connection_disconnect):
12610         rename bus_connection_disconnected as it's a notification only
12611
12612         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12613         "name" on get_args failure, should be done by get_args;
12614         don't disconnect client for bad args, just return an error.
12615         (bus_driver_handle_service_exists): ditto
12616
12617         * bus/services.c (bus_services_list): NULL-terminate returned array
12618
12619         * bus/driver.c (bus_driver_send_service_lost)
12620         (bus_driver_send_service_acquired): send messages from driver to a
12621         specific client to the client's unique name, not to the broadcast
12622         service.
12623
12624         * dbus/dbus-message.c (decode_header_data): reject messages that
12625         contain no name field
12626         (_dbus_message_get_client_serial): rename to
12627         dbus_message_get_serial and make public
12628         (_dbus_message_set_serial): rename from set_client_serial
12629         (_dbus_message_set_reply_serial): make public
12630         (_dbus_message_get_reply_serial): make public
12631
12632         * bus/connection.c (bus_connection_foreach): allow stopping
12633         iteration by returning FALSE from foreach function.
12634
12635         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12636         (dbus_connection_free_preallocated_send)
12637         (dbus_connection_preallocate_send): new API for sending a message
12638         without possibility of malloc failure.
12639         (dbus_connection_send_message): rename to just
12640         dbus_connection_send (and same for whole function family)
12641
12642         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12643
12644         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12645
12646         * bus/activation.c: handle/return errors
12647
12648         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12649
12650         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12651         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12652         (_dbus_result_from_errno): move to this file
12653
12654 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12655
12656         * dbus/dbus-marshal.c:
12657         (_dbus_marshal_set_string):
12658         Take a length argument so we can marshal the correct string
12659         length.
12660
12661         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12662         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12663         (_dbus_marshal_test):
12664         * dbus/dbus-marshal.h:
12665         Add support for marshalling and demarshalling dicts.
12666
12667         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12668         Add support for TYPE DICT.
12669
12670         * dbus/dbus-message.c: (set_string_field):
12671         Adjust header padding.
12672
12673         (dbus_message_append_args_valist), (dbus_message_append_dict),
12674         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12675         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12676         (check_message_handling), (check_have_valid_message):
12677         * dbus/dbus-message.h:
12678         Add functions for setting and getting dicts.
12679
12680         * dbus/dbus-protocol.h:
12681         Add DBUS_TYPE_DICT.
12682
12683         * dbus/dbus.h:
12684         Add dbus-dict.h
12685
12686         * doc/dbus-specification.sgml:
12687         Add information about how dicts are marshalled.
12688
12689         * test/data/invalid-messages/dict-with-nil-value.message:
12690         * test/data/invalid-messages/too-short-dict.message:
12691         * test/data/valid-messages/dict-simple.message:
12692         * test/data/valid-messages/dict.message:
12693         Add sample messages containing dicts.
12694
12695 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12696
12697         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12698
12699 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12700
12701         * dbus/Makefile.am:
12702         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12703         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12704         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12705         (dbus_dict_set_double), (dbus_dict_set_string),
12706         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12707         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12708         (dbus_dict_set_string_array), (_dbus_dict_test):
12709         * dbus/dbus-dict.h:
12710         Fix according to comments from Havoc.
12711
12712 2003-03-06  Michael Meeks  <michael@server.home>
12713
12714         * configure.in: if we don't have kde-config, disable have_qt.
12715
12716 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12717
12718         * dbus/Makefile.am:
12719         Add dbus-dict.[ch]
12720
12721         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12722         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12723         (dbus_dict_remove), (dbus_dict_get_value_type),
12724         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12725         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12726         (dbus_dict_put_double), (dbus_dict_put_string),
12727         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12728         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12729         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12730         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12731         (dbus_dict_get_double), (dbus_dict_get_string),
12732         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12733         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12734         (dbus_dict_get_string_array), (_dbus_dict_test):
12735         * dbus/dbus-dict.h:
12736         Add DBusDict implementation
12737
12738         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12739         * dbus/dbus-test.h:
12740         Add _dbus_dict_test
12741
12742 2003-03-04  Havoc Pennington  <hp@pobox.com>
12743
12744         * test/data/auth/*: adapt to changes
12745
12746         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12747         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12748         userid
12749
12750         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12751         more stuff from being in a context name, to make the protocol
12752         simpler to deal with
12753
12754         * dbus/dbus-errors.c (dbus_error_has_name): new function
12755         (dbus_error_is_set): new function
12756
12757         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12758         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12759
12760         * dbus/dbus-connection.c (dbus_connection_flush): also read
12761         messages during a flush operation
12762
12763         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12764
12765 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12766
12767         * configure.in: Check for gethostbyname on Solaris.
12768
12769         * dbus/dbus-transport.c: (_dbus_transport_open):
12770         Remove duplicate "tcp" entry.
12771
12772         * doc/dbus-specification.sgml:
12773         Clarify some things.
12774
12775 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12776
12777         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12778         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12779         (_dbus_keyring_test):
12780         * dbus/dbus-md5.c: (_dbus_md5_compute):
12781         * dbus/dbus-sha.c: (_dbus_sha_compute):
12782         Plug memory leaks.
12783
12784 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12785
12786         * README: Add some things.
12787
12788 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12789
12790         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12791         after case DBUS_TYPE_BOOELAN.
12792
12793 2003-03-02  Havoc Pennington  <hp@pobox.com>
12794
12795         * test/break-loader.c (randomly_set_extreme_ints): add test that
12796         sets really huge and small integers
12797
12798         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12799         that length of boolean array fits in the string, and that
12800         string has room for boolean value in single-bool case.
12801
12802         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12803         optional value to "ALIGN" command which is what to fill the
12804         alignment with.
12805
12806         * test/data/valid-messages/no-padding.message: add regression
12807         test for the message padding problem
12808
12809 2003-03-02  Havoc Pennington  <hp@pobox.com>
12810
12811         * dbus/dbus-message.c (decode_header_data): fix to always init
12812         message_padding, from Benjamin Dauvergne
12813
12814 2003-03-02  Havoc Pennington  <hp@pobox.com>
12815
12816         * configure.in: 0.5
12817
12818         * NEWS: Update.
12819
12820 2003-03-01  Joe Shaw  <joe@assbarn.com>
12821
12822         * configure.in: Check for "struct cmsgcred" and try to access its
12823         members for BSD-like unices.
12824
12825         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12826         _dbus_read_credentials_unix_socket().
12827         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12828         read() for reading the credential byte off the unix socket.  Use
12829         struct cmsgcred on systems that support it.
12830
12831 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12832
12833         * glib/Makefile.am:
12834         * configure.in:
12835         Make gthreads-2.0 dependency optional. Don't build thread test if
12836         its not found.
12837
12838 2003-02-27  Havoc Pennington  <hp@pobox.com>
12839
12840         * dbus/dbus-connection.c
12841         (dbus_connection_send_message_with_reply_and_block): fix doh!
12842         doh! doh! bug that resulted in never removing a reply from the
12843         queue, no wonder we called get_reply_serial so much ;-)
12844
12845         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12846         and client serial instead of demarshaling them every time
12847
12848 2003-02-27  Havoc Pennington  <hp@pobox.com>
12849
12850         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12851         more inlined, using dbus-string-private.h, speeds things up
12852         substantially
12853
12854         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12855         when freeing the string
12856         (_dbus_string_steal_data): fix for align offset
12857         (undo_alignment): new function
12858
12859 2003-02-26  Havoc Pennington  <hp@redhat.com>
12860
12861         All kinds of audit fixes from Owen, plus initial attempt to
12862         handle unaligned memory returned from malloc.
12863
12864         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12865         leave room for align_offset and nul byte
12866         (fixup_alignment): function to track an align_offset and
12867         ensure real->str is aligned
12868         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12869         to allow a nul byte plus align offset
12870         (_dbus_string_lock): fix overflow issue
12871         (_dbus_string_init_const_len): add assertions on sanity of len,
12872         assign allocated to be ALLOCATION_PADDING larger than len
12873         (set_length): fixup the overflow handling
12874         (_dbus_string_get_data_len): fix overflow in assertion
12875         (open_gap): detect overflow in size of gap to be opened
12876         (_dbus_string_lengthen): add overflow check
12877         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12878         (_dbus_string_append): add overflow check
12879         (_dbus_string_append_unichar): overflow
12880         (_dbus_string_delete): fix overflow in assertion
12881         (_dbus_string_copy_len): overflow in assertion
12882         (_dbus_string_replace_len): overflows in assertions
12883         (_dbus_string_find): change to implement in terms of
12884         _dbus_string_find_to
12885         (_dbus_string_find_to): assorted fixage
12886         (_dbus_string_equal_c_str): assert c_str != NULL,
12887         fix logic so the function works
12888         (_dbus_string_ends_with_c_str): fix overflow thingy
12889         (_dbus_string_base64_encode): overflow fix
12890         (_dbus_string_validate_ascii): overflow
12891         (_dbus_string_validate_nul): overflow
12892
12893 2003-02-26  Havoc Pennington  <hp@redhat.com>
12894
12895         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12896
12897 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12898
12899         * configure.in:
12900         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12901
12902         * dbus/dbus-connection.c:
12903         * dbus/dbus-connection.h:
12904         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12905         Add dbus_connection_set_wakeup_main_function and use it when queueing
12906         incoming and outgoing messages.
12907
12908
12909         * dbus/dbus-dataslot.c:
12910         Threadsafe usage of DBusDataSlotAllocator
12911
12912         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12913         dbus_new can fail.
12914
12915         * dbus/dbus-server-unix.c:
12916         Add todo comment
12917
12918         * glib/dbus-gmain.c:
12919         Implement the new wakeup functions for glib.
12920
12921         * glib/Makefile.am:
12922         * glib/test-thread-client.c:
12923         * glib/test-thread-server.c:
12924         * glib/test-thread.h:
12925         Initial cut at some thread test code. Not really done yet.
12926
12927 2003-02-26  Havoc Pennington  <hp@pobox.com>
12928
12929         * dbus/dbus-connection.c
12930         (dbus_connection_send_message_with_reply_and_block): fix crash
12931         where we ref'd the outgoing message instead of the returned reply
12932
12933         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12934         at the end of this function, so if we didn't need to read for
12935         authentication, we reinstall it for receiving messages
12936
12937         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12938         a NULL sender for peer-to-peer case
12939
12940         * dbus/dbus-transport-unix.c (check_read_watch): handle
12941         !authenticated case correctly
12942
12943         * glib/dbus-gmain.c: add support for DBusServer
12944
12945         * dbus/dbus-server.c: add data slot support
12946
12947         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12948         return values and handle errors
12949
12950         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12951         DBusConnection
12952
12953         * Doxyfile.in (INPUT): add glib subdir
12954
12955         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12956         setup_with_g_main instead of hookup_with_g_main; write docs
12957
12958 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12959
12960         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12961         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12962         * dbus/dbus-message.c: (dbus_message_append_boolean),
12963         (dbus_message_append_boolean_array),
12964         (dbus_message_get_args_valist), (_dbus_message_test):
12965         * dbus/dbus-message.h:
12966         * doc/dbus-specification.sgml:
12967         Various fixes as pointed out by Havoc.
12968
12969         * test/data/invalid-messages/bad-boolean-array.message:
12970         * test/data/invalid-messages/bad-boolean.message:
12971         Add invalid boolean value test cases.
12972
12973 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12974
12975         * dbus/dbus-internals.c: (_dbus_type_to_string):
12976         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12977         (_dbus_marshal_validate_arg):
12978         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12979         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12980         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12981         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12982         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12983         (dbus_message_iter_get_double),
12984         (dbus_message_iter_get_boolean_array), (message_iter_test):
12985         * dbus/dbus-message.h:
12986         * dbus/dbus-protocol.h:
12987         * doc/dbus-specification.sgml:
12988         * test/data/valid-messages/lots-of-arguments.message:
12989         Add support for boolean and boolean array types.
12990
12991 2003-02-23  Havoc Pennington  <hp@pobox.com>
12992
12993         * dbus/dbus-keyring.c: finish most of this implementation and
12994         simple unit test
12995
12996         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12997         these barf if the error isn't cleared to NULL
12998
12999         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13000         (_dbus_create_directory): new function
13001
13002         * dbus/dbus-errors.c (dbus_set_error): fix warning
13003
13004         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13005         (_dbus_string_hex_decode): new function
13006         (test_hex_roundtrip): test code
13007
13008         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13009
13010         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13011
13012         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13013         the save-to-temp/rename trick to atomically write the new file
13014         (_dbus_string_parse_uint): new function
13015
13016 2003-02-22  Havoc Pennington  <hp@pobox.com>
13017
13018         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13019
13020 2003-02-22  Havoc Pennington  <hp@pobox.com>
13021
13022         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13023         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13024
13025         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13026
13027         * dbus/test/data/sha-1: add US government test suite for SHA-1
13028
13029 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13030
13031         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13032         Make string arrays NULL-terminated.
13033
13034         * dbus/dbus-memory.c: (dbus_free_string_array):
13035         * dbus/dbus-memory.h:
13036         New function for freeing NULL-terminated string arrays.
13037
13038         * dbus/dbus-message-builder.c: (append_quoted_string),
13039         (_dbus_message_data_load):
13040         Add support for array types.
13041
13042         * dbus/dbus-message.c: (check_message_handling):
13043         Add more types as test cases.
13044
13045         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13046         (_dbus_string_parse_double):
13047         Add the start offset to the end offset.
13048
13049         * test/data/valid-messages/lots-of-arguments.message:
13050         New test message with lots of arguments.
13051
13052 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13053
13054         * dbus/dbus-message.c: (dbus_message_append_nil),
13055         (dbus_message_append_int32), (dbus_message_append_uint32),
13056         (dbus_message_append_double), (dbus_message_append_string),
13057         (dbus_message_append_int32_array),
13058         (dbus_message_append_uint32_array),
13059         (dbus_message_append_double_array),
13060         (dbus_message_append_byte_array),
13061         (dbus_message_append_string_array):
13062         Fix all out-of-memory handling in these functions.
13063
13064 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13065
13066         * dbus/dbus-message.c: (dbus_message_append_nil):
13067         Fix a silly.
13068
13069 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13070
13071         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13072         (dbus_message_append_nil), (dbus_message_append_int32_array),
13073         (dbus_message_append_uint32_array),
13074         (dbus_message_append_double_array),
13075         (dbus_message_append_byte_array),
13076         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13077         (dbus_message_iter_get_int32_array),
13078         (dbus_message_iter_get_uint32_array),
13079         (dbus_message_iter_get_double_array),
13080         (dbus_message_iter_get_byte_array),
13081         (dbus_message_iter_get_string_array):
13082
13083         * dbus/dbus-message.h:
13084         Add functions for appending and getting arrays.
13085
13086 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13087
13088         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13089         element size at least 8 bytes, fixes mempool tests on
13090         64-bit machines.
13091
13092 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13093
13094         * dbus/dbus-transport-unix.c (unix_do_iteration):
13095         Unlock the connection mutex during a blocking select call.
13096         Add todo about how we need a way to wake up the select.
13097
13098         * dbus/dbus-connection-internal.h:
13099         * dbus/dbus-connection.c:
13100         Add _dbus_connection_lock and _dbus_connection_unlock.
13101
13102 2003-02-19  Havoc Pennington  <hp@pobox.com>
13103
13104         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13105         Doxyfile.in, not Doxyfile
13106
13107         * dbus/dbus-keyring.c: do some hacking on this
13108
13109         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13110
13111         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13112         dbus_error_init
13113         (dbus_set_error): remove dbus_error_init, check for message ==
13114         NULL *before* we sprintf into it, and add @todo about including
13115         system headers in this file
13116
13117         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13118
13119         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13120
13121         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13122         get various bits of user information based on either username
13123         or user ID
13124         (_dbus_homedir_from_username): new function
13125
13126 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13127
13128         * configure.in:
13129         Add check for nonposix getpwnam_r
13130
13131         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13132         Align the pool element size to a sizeof (void *) boundary.
13133
13134         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13135         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13136         General Solaris fixes.
13137
13138         * test/data/valid-messages/simplest-manual.message:
13139         Explicitly state that we want little-endian packing.
13140
13141 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13142
13143         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13144
13145         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13146         Added to create a transport connecting using a tcp/ip socket.
13147
13148         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13149         to a tcp socket at given host and port.
13150         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13151         hostname and port.
13152
13153         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13154
13155         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13156         Added to create a server listening on a TCP/IP socket.
13157
13158 2003-02-19  Havoc Pennington  <hp@pobox.com>
13159
13160         Throughout: mop up all the Doxygen warnings and undocumented
13161         stuff.
13162
13163         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13164         to search any paths.
13165
13166         * dbus/dbus-threads.c: move global mutex initializers to
13167         dbus-internals.h, multiple prototypes was confusing doxygen
13168         besides being kind of ugly
13169
13170         * Doxyfile (PREDEFINED): have Doxygen define
13171         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13172         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13173         (do not abuse the feature! it's for stuff like the autogenerated
13174         macros in dbus-md5.c, not just for things you don't feel like
13175         documenting...)
13176
13177 2003-02-18  Havoc Pennington  <hp@pobox.com>
13178
13179         * dbus/dbus-string.c (_dbus_string_zero): new function
13180
13181         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13182         wrap it in some dbus-friendly API
13183
13184         * dbus/dbus-types.h: add 16-bit types
13185
13186 2003-02-18  Joe Shaw  <joe@assbarn.com>
13187
13188         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13189         credentials from our currently running process.
13190         (get_word): Fix a buglet where we were copying the entire length
13191         instead of relative to our position.
13192
13193         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13194         keys on the stack... it's 640k of data.
13195
13196         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13197         read the credentials byte off the socket, even if we don't have
13198         SO_PEERCRED.
13199         (_dbus_poll): Implement poll() using select() for systems which
13200         don't have it.
13201
13202         * glib/test-dbus-glib.c (main): Print out an error if no
13203         parameters are given.
13204
13205         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13206         can fallback to a secondary auth mechanism if the first fails.
13207
13208 2003-02-18  Havoc Pennington  <hp@pobox.com>
13209
13210         * AUTHORS: add Alex
13211
13212 2003-02-17  Havoc Pennington  <hp@pobox.com>
13213
13214         * doc/dbus-specification.sgml: lots of cosmetic
13215         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13216         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13217         s/server/bus/ (except in authentication section). Add a section
13218         "Message Bus Message Routing"
13219
13220 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13221
13222         Release 0.4
13223
13224         * NEWS: Update
13225
13226 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13227
13228         * doc/dbus-specification.sgml:
13229         Specification updates.
13230
13231 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13232
13233         * bus/activation.c: (bus_activation_init), (child_setup),
13234         (bus_activation_activate_service):
13235         * bus/activation.h:
13236         * bus/main.c: (main):
13237         Set DBUS_ADDRESS environment variable.
13238
13239         * dbus/dbus-errors.c: (dbus_set_error):
13240         Don't use va_copy since that's a C99 feature.
13241
13242         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13243         (_dbus_spawn_async):
13244         * dbus/dbus-sysdeps.h:
13245         Add child_setup_func to _dbus_spawn_async.
13246
13247         * doc/dbus-specification.sgml:
13248         Update specification.
13249
13250         * test/spawn-test.c: (setup_func), (main):
13251         Fix test.
13252
13253 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13254
13255         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13256         Added todo.
13257
13258 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13259
13260         * doc/.cvsignore:
13261         * doc/Makefile.am:
13262         * doc/dbus-test-plan.sgml:
13263         Add test plan document.
13264
13265         * test/Makefile.am:
13266         Fix distcheck.
13267
13268 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13269
13270         * dbus/dbus-message.c: (decode_header_data),
13271         (_dbus_message_loader_return_buffer):
13272         Set the header padding amount when loading a message.
13273
13274 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13275
13276         * bus/dispatch.c: (send_one_message):
13277         Only send broadcast messages to registered connections.
13278
13279         * dbus/dbus-message.c: (dbus_message_name_is):
13280         * dbus/dbus-message.h:
13281         New convenience function.
13282
13283         * dbus/dbus-transport-debug.c: (do_reading):
13284         Only dispatch one message per run.
13285
13286         * test/Makefile.am:
13287         * test/bus-test.c: (new_connection_callback), (die),
13288         (test_hello_client1_handler), (test_hello_client2_handler),
13289         (test_hello_replies), (main):
13290
13291         * test/bus-test-loop.[ch]:
13292         Add these.
13293
13294 2003-02-16  Havoc Pennington  <hp@pobox.com>
13295
13296         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13297         backward conditional
13298
13299 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13300
13301         * dbus/dbus-connection.c:
13302         Implement sent_message_with_reply. (with_reply_and block is still
13303         busted).
13304         Made dispatch_message not lose message if OOM.
13305
13306         * dbus/dbus-errors.h:
13307         Add NoReply error (for reply timeouts).
13308
13309 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13310
13311         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13312         Actually free keys and values when destroying hashtable.
13313
13314 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13315
13316         * dbus/dbus-auth.c: (client_try_next_mechanism):
13317         Plug a leak.
13318
13319         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13320         Return TRUE if there's no thread implementation around.
13321
13322         * glib/dbus-gmain.c: (free_source),
13323         (dbus_connection_hookup_with_g_main):
13324         Make sure to remove the GSource when the connection is finalized.
13325
13326 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13327
13328         * bus/dispatch.c: (bus_dispatch_message_handler):
13329         * dbus/dbus-errors.h:
13330         Return an error if someone tries to send a message to a service
13331         that doesn't exist.
13332
13333 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13334
13335         * bus/activation.c: (load_directory), (bus_activation_init),
13336         (bus_activation_activate_service):
13337         * bus/activation.h:
13338         * bus/driver.c:
13339         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13340         More work on the activation handling.
13341
13342         * dbus/dbus-errors.h:
13343         Add some error messages
13344
13345         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13346         * dbus/dbus-message.h:
13347         New function that creates an error message.
13348
13349         * dbus/dbus-protocol.h:
13350         Add ACTIVATE_SERVER message.
13351
13352         * dbus/dbus-server-unix.c: (unix_handle_watch),
13353         (_dbus_server_new_for_domain_socket):
13354         Call _dbus_fd_set_close_on_exec.
13355
13356         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13357         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13358         (_dbus_fd_set_close_on_exec):
13359         * dbus/dbus-sysdeps.h:
13360         Add _dbus_fd_set_close_on exec function. Also add function that checks
13361         that all open fds are set to close-on-exec and warns otherwise.
13362
13363         * dbus/dbus-transport-unix.c:
13364         (_dbus_transport_new_for_domain_socket):
13365         Call _dbus_fd_set_close_on_exec.
13366
13367 2003-02-16  Havoc Pennington  <hp@pobox.com>
13368
13369         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13370         allow people to avoid setting SIGPIPE to SIG_IGN
13371         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13372         we've been asked not to
13373
13374 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13375
13376         * dbus/dbus-list.c: (_dbus_list_append_link),
13377         (_dbus_list_prepend_link):
13378         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13379         (dbus_realloc):
13380         Warning fixes.
13381
13382 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13383
13384         * bus/Makefile.am:
13385         * bus/activation.c: (bus_activation_entry_free),
13386         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13387         * bus/activation.h:
13388         * bus/main.c: (main):
13389         Add simple activation support, doesn't work yet though.
13390
13391 2003-02-15   Zack Rusin  <zack@kde.org>
13392
13393         * qt/dbus-qthread.cpp:  small casting fix
13394
13395 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13396
13397         * dbus/dbus-errors.c: (dbus_set_error):
13398         * dbus/dbus-errors.h:
13399         Add a few errors and make dbus_set_error void.
13400
13401         * dbus/dbus-sysdeps.c:
13402         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13403         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13404         * dbus/dbus-sysdeps.h:
13405         Add _dbus_spawn_async.
13406
13407         * test/spawn-test.c: (main):
13408         Test for _dbus_spawn_async.
13409
13410 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13411
13412         * dbus/dbus-internals.h:
13413         Fix build without tests.
13414
13415         * dbus/dbus-list.c: (alloc_link):
13416         Fix a segfault when a malloc fails.
13417
13418         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13419         (dbus_malloc0), (dbus_realloc):
13420         Add support for malloc debugging.
13421
13422 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13423
13424         * dbus/dbus-threads.c:
13425         * dbus/dbus-threads.h:
13426         Add condvars. Remove static mutext from API.
13427         Implement static mutexes by initializing them from threads_init.
13428
13429         * glib/dbus-gthread.c:
13430         * qt/dbus-qthread.cpp:
13431         Update with the thread api changes.
13432
13433
13434         * dbus/dbus-list.c:
13435         * dbus/dbus-list.h:
13436         Turn StaticMutex into normal mutex + init function.
13437         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13438         _dbus_list_append_link, _dbus_list_prepend_link
13439
13440
13441         * dbus/dbus-sysdeps.c:
13442         * dbus/dbus-sysdeps.h:
13443         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13444         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13445
13446         * dbus/dbus-protocol.h:
13447         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13448
13449         * dbus/dbus-message.c:
13450         Make ref/unref atomic.
13451         Fix some docs.
13452
13453         * dbus/dbus-connection-internal.h:
13454         * dbus/dbus-connection.c:
13455         * dbus/dbus-connection.h:
13456         Make threadsafe.
13457         Change _peek to _borrow,_return & _steal_borrowed.
13458         Change disconnect callback to event.
13459         Make dbus_connection_dispatch_messages reentrant.
13460
13461         * dbus/dbus-transport.c:
13462         Don't ref the connection on calls to the transport
13463         implementation.
13464
13465         * dbus/dbus-message-handler.c:
13466         Make threadsafe.
13467
13468         * glib/dbus-gmain.c:
13469         Don't use peek_message anymore
13470
13471         * test/Makefile.am:
13472         * test/debug-thread.c:
13473         * test/debug-thread.h:
13474         Simple thread implementation that asserts() on deadlocks in
13475         single-threaded code.
13476
13477         * test/bus-test.c:
13478         (main) Call debug_threads_init.
13479
13480         * test/watch.c:
13481         Use disconnect message instead of disconnect callback.
13482
13483         * bus/connection.c:
13484         * bus/connection.h:
13485         Don't call dbus_connection_set_disconnect_function. Instead export
13486         bus_connection_disconnect.
13487
13488         * bus/dispatch.c:
13489         Call bus_connection_disconnect when we get a disconnected message.
13490
13491 2003-02-15  Havoc Pennington  <hp@pobox.com>
13492
13493         * dbus/dbus-message.c (dbus_message_new): fool around with the
13494         docs
13495
13496 2003-02-14  Havoc Pennington  <hp@pobox.com>
13497
13498         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13499
13500         * dbus/dbus-memory.c: fail if the debug functions indicate we
13501         should
13502
13503         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13504         (_dbus_decrement_fail_alloc_counter): debug functions to
13505         simulate memory allocation failures
13506
13507 2003-02-14  Havoc Pennington  <hp@pobox.com>
13508
13509         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13510         to DBusError
13511
13512 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13513
13514         * bus/driver.c: (bus_driver_handle_hello):
13515         * bus/driver.h:
13516         * bus/services.c: (bus_service_lookup):
13517         Reorder message sending so we get a more sane order.
13518
13519         * test/bus-test.c: (message_handler):
13520         Fix tyop.
13521
13522 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13523
13524         * bus/driver.c: (bus_driver_send_service_deleted),
13525         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13526         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13527         (bus_driver_send_welcome_message),
13528         (bus_driver_handle_list_services),
13529         (bus_driver_handle_acquire_service),
13530         (bus_driver_handle_service_exists):
13531         * dbus/dbus-bus.c: (dbus_bus_register_client),
13532         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13533         * dbus/dbus-errors.c: (dbus_result_to_string):
13534         * dbus/dbus-errors.h:
13535         * dbus/dbus-message.c: (dbus_message_append_args),
13536         (dbus_message_append_args_valist), (dbus_message_get_args),
13537         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13538         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13539         (dbus_message_iter_get_byte_array),
13540         (dbus_message_iter_get_string_array), (message_iter_test),
13541         (check_message_handling), (_dbus_message_test):
13542         * dbus/dbus-message.h:
13543         * test/bus-test.c: (main):
13544         Change fields to arguments in messages, so that they won't be
13545         confused with header fields.
13546
13547         * glib/test-dbus-glib.c: (main):
13548         Remove append_fields from hello message.
13549
13550 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13551
13552         * dbus/dbus-errors.c:
13553         * dbus/dbus-message.c:
13554         * dbus/dbus-string.c:
13555         Documentation fixes.
13556
13557 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13558
13559         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13560         (remove_timeout):
13561         Implement support for timeouts in dbus-glib.
13562
13563 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13564
13565         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13566         * dbus/dbus-message.c: (process_test_subdir):
13567         * test/break-loader.c: (find_breaks_based_on):
13568         Plug some memory leaks.
13569
13570 2003-02-13  Richard Hult  <rhult@codefactory.se>
13571
13572         * bus/main.c: Fix build.
13573
13574         * dbus/dbus-errors.h:
13575         * dbus/dbus-errors.c: Fix copyright for Anders.
13576
13577 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13578
13579         * bus/Makefile.am:
13580         Add utils.[ch]
13581
13582         * bus/connection.c: (bus_connection_foreach):
13583         Fix a warning.
13584
13585         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13586         (unescape_string), (new_section), (parse_section_start),
13587         (parse_key_value), (report_error), (bus_desktop_file_load),
13588         (bus_desktop_file_get_string):
13589         * bus/desktop-file.h:
13590         Use DBusError for error reporting.
13591
13592         * bus/dispatch.c: (send_one_message),
13593         (bus_dispatch_message_handler):
13594         * bus/driver.c: (bus_driver_send_service_deleted),
13595         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13596         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13597         (bus_driver_send_welcome_message),
13598         (bus_driver_handle_list_services),
13599         (bus_driver_handle_acquire_service),
13600         (bus_driver_handle_service_exists):
13601         * bus/loop.c: (bus_loop_run):
13602         * bus/main.c:
13603         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13604
13605         * bus/utils.c: (bus_wait_for_memory):
13606         * bus/utils.h:
13607         New files with general utility functions.
13608
13609         * dbus/dbus-internals.h:
13610         Remove _DBUS_HANDLE_OOM.
13611
13612 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13613
13614         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13615         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13616         * dbus/dbus-errors.h:
13617         Add DBusError structure.
13618
13619 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13620
13621         * test/data/valid-messages/standard-acquire-service.message:
13622         * test/data/valid-messages/standard-hello.message:
13623         * test/data/valid-messages/standard-list-services.message:
13624         * test/data/valid-messages/standard-service-exists.message:
13625         Add some standard messages.
13626
13627 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13628
13629         * bus/driver.c: (bus_driver_send_welcome_message),
13630         (bus_driver_handle_list_services),
13631         (bus_driver_handle_acquire_service),
13632         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13633         Update for API changes in libdbus.
13634
13635         * dbus/dbus-message.c: (dbus_message_new_reply):
13636         * dbus/dbus-message.h:
13637         Remove the name argument. The spec states that replies shouldn't
13638         have a name.
13639
13640 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13641
13642         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13643         (report_error), (bus_desktop_file_load), (lookup_section),
13644         (lookup_line), (bus_desktop_file_get_raw),
13645         (bus_desktop_file_get_string):
13646         * bus/desktop-file.h:
13647         Some fixes, and new functions for getting a key value from a section.
13648
13649 2003-02-13  Havoc Pennington  <hp@pobox.com>
13650
13651         * test/data/auth/fail-after-n-attempts.auth-script: new test
13652
13653         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13654         reject the client.
13655
13656 2003-02-13  Havoc Pennington  <hp@pobox.com>
13657
13658         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13659         dbus_credentials_match were backward
13660
13661         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13662         NO_CREDENTIALS and ROOT_CREDENTIALS
13663
13664         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13665         into here. Never process more commands after we've reached an
13666         end state; store further data as unused bytes.
13667
13668         * test/data/auth/*: add more auth tests
13669
13670         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13671         command to match exact string and EXPECT_UNUSED to match unused
13672         bytes
13673
13674         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13675
13676 2003-02-12  Havoc Pennington  <hp@pobox.com>
13677
13678         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13679         \r off of popped lines
13680
13681         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13682         scripts
13683
13684         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13685         SEND, append \r\n
13686
13687 2003-02-12  Havoc Pennington  <hp@pobox.com>
13688
13689         * dbus/Makefile.am: remove break-loader from the build, since it
13690         moved.
13691
13692         * configure.in: add --enable-gcov to turn on coverage profiling
13693         flags and disable optimization
13694
13695 2003-02-10  Havoc Pennington  <hp@pobox.com>
13696
13697         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13698         initial cut at test framework for DBusAuth from laptop.
13699         Doesn't quite work yet but it compiles and I need to get
13700         it off the 266mhz laptop. ;-)
13701
13702         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13703         fix a memleak in error case
13704
13705 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13706
13707         * bus/Makefile.am:
13708         * bus/desktop-file.c:
13709         * bus/desktop-file.h:
13710         Add a desktop file parser.
13711
13712 2003-02-11  Zack Rusin  <zack@kde.org>
13713
13714         * qt/message.[h|cpp]: sample implementation
13715         of the KDE wrapper for DBusMessage
13716
13717 2003-02-09  Zack Rusin  <zack@kde.org>
13718
13719         * test/bus-test.c: make_it_compile
13720         * doc/dbus-specification.sgml: minimal semantic fix
13721
13722 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13723
13724         Release 0.3
13725
13726         * NEWS: Update
13727
13728 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13729
13730         * dbus/Makefile.am:
13731         * dbus/dbus-break-loader.c:
13732         * test/Makefile.am:
13733         * test/break-loader.c:
13734         Move dbus-break-loader to test/ and rename it to break-loader.
13735
13736 2003-02-02  Havoc Pennington  <hp@pobox.com>
13737
13738         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13739         for code to manage cookies in your home directory
13740
13741         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13742
13743         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13744         to authenticate, then disconnect the client.
13745
13746 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13747
13748         * dbus/dbus-message.c (dbus_message_append_fields):
13749         Correct docs.
13750
13751 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13752
13753         * doc/dbus-specification.sgml:
13754         Update address format section.
13755
13756 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13757
13758         * test/Makefile.am:
13759         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13760         (message_handler), (new_connection_callback), (loop_quit),
13761         (loop_run), (main):
13762         Add bus test.
13763
13764 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13765
13766         * bus/driver.c: (bus_driver_handle_service_exists):
13767         Simplify the code a bit.
13768
13769         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13770         Fix a silly.
13771
13772 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13773
13774         * bus/Makefile.am:
13775         Add libdbus-daemon.la and link to it.
13776
13777 2003-02-01  James Willcox  <jwillcox@gnome.org>
13778
13779         * bus/driver.c: (bus_driver_handle_own_service):
13780         Actually include the service reply code in the message.
13781
13782 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13783
13784         * bus/driver.c: (bus_driver_handle_service_exists):
13785         Don't unref the incoming message.
13786
13787 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13788
13789         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13790
13791 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13792
13793         * dbus/dbus-server.c: (dbus_server_listen):
13794         * dbus/dbus-transport.c: (_dbus_transport_open):
13795         ifdef out the calls to the debug transport and server.
13796
13797 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13798
13799         * dbus/dbus-watch.c (dbus_watch_get_flags):
13800         Add note in the docs that ERROR or HANGUP won't be returned
13801         and are assumed always on.
13802
13803         * glib/dbus-gmain.c (add_watch):
13804         Always add IO_ERR | IO_HUP
13805
13806         * dbus/dbus-message.h:
13807         Add semicolon after dbus_message_iter_get_string_array().
13808         Makes qt code build again
13809
13810 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13811
13812         * bus/driver.c: (create_unique_client_name),
13813         (bus_driver_handle_hello):
13814         Don't take a name, just use a numeric id to identify
13815         each client.
13816
13817         * dbus/Makefile.am:
13818         * dbus/dbus-bus.c: (dbus_bus_register_client),
13819         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13820         * dbus/dbus-bus.h:
13821         Add new convenience functions for communicating with the bus.
13822
13823         * dbus/dbus-message.h:
13824
13825         * dbus/dbus-protocol.h:
13826         Fix a typo.
13827
13828 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13829
13830         * dbus/dbus-message.c (dbus_message_append_fields):
13831         Add some more doc comments.
13832
13833 2003-02-01  Havoc Pennington  <hp@pobox.com>
13834
13835         * dbus/dbus-break-loader.c (randomly_modify_length): change
13836         a 4-byte value in the message as if it were a length
13837
13838         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13839         execute bit on saved files
13840
13841 2003-02-01  Havoc Pennington  <hp@pobox.com>
13842
13843         * dbus/dbus-break-loader.c (main): new program to find messages
13844         that break the loader.
13845
13846         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13847         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13848
13849         * dbus/dbus-string.c (_dbus_string_set_byte): new
13850
13851 2003-01-31  Havoc Pennington  <hp@pobox.com>
13852
13853         * dbus/dbus-message.c: refactor the test code to be more general,
13854         in preparation for writing a "randomly permute test cases to
13855         try to break the loader" program.
13856
13857 2003-01-31  Havoc Pennington  <hp@pobox.com>
13858
13859         * doc/dbus-specification.sgml: work on the specification
13860
13861         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13862         the protocol version of the message.
13863
13864         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13865         no longer specifies that.
13866         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13867         1/2/3/4)
13868
13869         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13870         "break" for DBUS_TYPE_NIL, remove @todo
13871
13872 2003-01-31  Havoc Pennington  <hp@pobox.com>
13873
13874         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13875         just set_is_error/get_is_error as this is a commonly-used
13876         function, and write docs.
13877
13878 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13879
13880         * dbus/dbus-address.c: (dbus_address_entry_free):
13881         Free key and value lists.
13882
13883         * dbus/dbus-internals.c: (_dbus_type_to_string):
13884         Add the types we didn't have.
13885
13886         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13887         (_dbus_marshal_validate_arg):
13888         Add NIL types.
13889
13890         * dbus/dbus-message.c: (dbus_message_set_sender):
13891         Remove todo about being able to set sender to NULL.
13892
13893         (dbus_message_set_is_error_reply),
13894         (dbus_message_get_is_error_reply):
13895         * dbus/dbus-message.h:
13896         New functions.
13897
13898         * dbus/dbus-protocol.h:
13899         Add error reply flag.
13900
13901         * test/data/valid-messages/opposite-endian.message:
13902         Add NIL type to test.
13903
13904 2003-01-31  Havoc Pennington  <hp@pobox.com>
13905
13906         * doc/dbus-specification.sgml: fully specify the header.  Add
13907         flags and major protocol version, and change header/body len to
13908         unsigned.
13909
13910         * dbus/dbus-message-builder.c (append_saved_length): append length
13911         as uint32
13912
13913         * dbus/dbus-message.c (dbus_message_create_header): change header
13914         length and body length to unsigned. Add the new fields from the
13915         spec
13916         (_dbus_message_loader_return_buffer): unsigned header/body len
13917
13918 2003-01-30  Havoc Pennington  <hp@pobox.com>
13919
13920         * dbus/dbus-auth.c: rework to use only REJECTED, no
13921         MECHANISMS
13922
13923         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13924         use REJECTED, suggested by Mark McLoughlin
13925
13926 2003-01-30  Havoc Pennington  <hp@pobox.com>
13927
13928         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13929         a better way to report errors here. e.g.  "unix address lacks
13930         path" or something. also "no such file" when the path doesn't
13931         exist, etc.
13932
13933         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13934         leaking list nodes
13935         (dbus_parse_address): add @todo about documenting address format,
13936         and allowing , and ; to be escaped
13937
13938 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13939
13940         * dbus/Makefile.am:
13941         Add dbus-address.[ch]
13942
13943         * dbus/dbus-address.c: (dbus_address_entry_free),
13944         (dbus_address_entries_free), (create_entry),
13945         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13946         (dbus_parse_address), (_dbus_address_test):
13947         * dbus/dbus-address.h:
13948         New files for dealing with address parsing.
13949
13950         * dbus/dbus-connection.c:
13951         Document timeout functions.
13952
13953         * dbus/dbus-message.c:
13954         Document dbus_message_new_from_message.
13955
13956         * dbus/dbus-server-debug.c:
13957         Document.
13958
13959         * dbus/dbus-server.c: (dbus_server_listen):
13960         Parse address and use correct server implementation.
13961
13962         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13963         * dbus/dbus-string.h:
13964         New function with test.
13965
13966         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13967         * dbus/dbus-test.h:
13968         Add address tests.
13969
13970         * dbus/dbus-transport-debug.c:
13971         Document.
13972
13973         * dbus/dbus-transport.c: (_dbus_transport_open):
13974         Parse address and use correct transport implementation.
13975
13976 2003-01-30  Havoc Pennington  <hp@pobox.com>
13977
13978         * dbus/dbus-message.c: use message->byte_order instead of
13979         DBUS_COMPILER_BYTE_ORDER throughout.
13980         (dbus_message_create_header): pad header to align the
13981         start of the body of the message to 8-byte boundary
13982
13983         * dbus/dbus-marshal.h: make all the demarshalers take const
13984         DBusString arguments.
13985
13986         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13987         validate message args here, so we don't have to do slow validation
13988         later, and so we catch bad messages as they are incoming. Also add
13989         better checks on header_len and body_len. Also fill in
13990         message->byte_order
13991
13992         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13993         implemented properly)
13994         (_dbus_string_validate_nul): new function to check all-nul
13995
13996         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13997         get_arg_end_pos and remove all validation
13998         (_dbus_marshal_validate_arg): actually do validation here.
13999
14000 2003-01-29  Havoc Pennington  <hp@pobox.com>
14001
14002         * dbus/dbus-message.c (check_message_handling): fix assertion
14003         failure on set_client_serial
14004
14005 2003-01-28  Havoc Pennington  <hp@pobox.com>
14006
14007         * dbus/dbus-server-debug.c: Add doc section comments
14008
14009         * dbus/dbus-transport-debug.c: add doc section comments
14010
14011 2003-01-28  Havoc Pennington  <hp@redhat.com>
14012
14013         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14014         the reverse order from how I had it
14015         (_dbus_string_base64_encode): reverse encoding order. I was
14016         basically byteswapping everything during encoding.
14017
14018 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14019
14020         * dbus/dbus-connection-internal.h:
14021         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14022         (_dbus_connection_remove_timeout):
14023         Add functions for adding and removing timeouts.
14024
14025         * dbus/dbus-message.c: (dbus_message_new_from_message):
14026         Add new function that takes a message and creates an exact
14027         copy of it, but with the refcount set to 1.
14028         (check_message_handling):
14029         Fix build error.
14030
14031         * dbus/dbus-server-protected.h:
14032         * dbus/dbus-server.c: (_dbus_server_init_base),
14033         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14034         (dbus_server_set_timeout_functions):
14035         (_dbus_server_remove_timeout):
14036         New functions so that a server can add and remove timeouts.
14037
14038         (dbus_server_listen):
14039         Add commented out call to dbus_server_debug_new.
14040
14041         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14042         Actually set the handler, doh.
14043
14044         * dbus/dbus-transport.c: (_dbus_transport_open):
14045         Add commented out call to dbus_transport_debug_client_new.
14046
14047         * dbus/Makefile.am:
14048         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14049
14050 2003-01-28  Havoc Pennington  <hp@pobox.com>
14051
14052         * dbus/dbus-message.c (check_message_handling): function to check
14053         on the loaded message, iterates over it etc.
14054
14055 2003-01-28  Havoc Pennington  <hp@pobox.com>
14056
14057         * test/Makefile.am (dist-hook): fix make distdir
14058
14059         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14060
14061 2003-01-27  Havoc Pennington  <hp@pobox.com>
14062
14063         * dbus/dbus-mempool.c (time_for_size): replace printf with
14064         _dbus_verbose
14065
14066         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14067         empty lines; fix the SAVE_LENGTH stuff to be
14068         START_LENGTH/END_LENGTH so it actually works; couple other
14069         bugfixes
14070
14071         * test/Makefile.am (dist-hook): add dist-hook for .message files
14072
14073         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14074         can be constant or locked.
14075         (_dbus_string_free): allow freeing a const string as
14076         documented/intended
14077
14078         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14079
14080         * dbus/dbus-test-main.c (main): take an argument which is the
14081         directory containing test data
14082
14083         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14084         argument to this and load all the messages in test/data/
14085         checking that they can be loaded or not loaded as appropriate.
14086
14087 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14088
14089         * bus/dispatch.c: (bus_dispatch_message_handler):
14090         Dispatch messages sent to services.
14091
14092         * bus/driver.c: (bus_driver_send_service_deleted),
14093         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14094         (bus_driver_send_service_acquired):
14095         Add helper functions for sending service related messages.
14096
14097         (bus_driver_send_welcome_message):
14098         Send HELLO_REPLY instead of WELCOME.
14099
14100         (bus_driver_handle_list_services):
14101         Send LIST_SERVICES_REPLY instead of SERVICES.
14102
14103         (bus_driver_handle_own_service),
14104         (bus_driver_handle_service_exists):
14105         New message handlers.
14106
14107         (bus_driver_handle_message):
14108         Invoke new message handlers.
14109
14110         (bus_driver_remove_connection):
14111         Don't remove any services here since that's done automatically
14112         by bus_service_remove_owner now.
14113
14114         * bus/driver.h:
14115         New function signatures.
14116
14117         * bus/services.c: (bus_service_add_owner):
14118         Send ServiceAcquired message if we're the only primary owner.
14119
14120         (bus_service_remove_owner):
14121         Send ServiceAcquired/ServiceLost messages.
14122
14123         (bus_service_set_prohibit_replacement),
14124         (bus_service_get_prohibit_replacement):
14125         Functions for setting prohibit replacement.
14126
14127         (bus_service_has_owner):
14128         New function that checks if a connection is in the owner queue of
14129         a certain service.
14130
14131         * bus/services.h:
14132         Add new function signatures.
14133
14134         * dbus/dbus-list.c: (_dbus_list_test):
14135         Add tests for _dbus_list_remove_last and traversing the list backwards.
14136
14137         * dbus/dbus-list.h:
14138         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14139         go any further, so return NULL then.
14140
14141         * dbus/dbus-protocol.h:
14142         Add new messages, service flags and service replies.
14143
14144 2003-01-26  Havoc Pennington  <hp@pobox.com>
14145
14146         * dbus/dbus-message-builder.c: implement, completely untested.
14147
14148         * test/data/*: add data to be used in testing.
14149         ".message" files are our simple loadable text format.
14150         ".message-raw" will be binary dumps of messages.
14151
14152         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14153
14154 2003-01-26  Havoc Pennington  <hp@pobox.com>
14155
14156         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14157
14158         * dbus/dbus-errors.c (dbus_result_to_string): add
14159         file errors
14160
14161         * dbus/dbus-message-builder.c: new file, will contain code to load
14162         up messages from files. Not implemented yet.
14163
14164 2003-01-26  Havoc Pennington  <hp@pobox.com>
14165
14166         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14167         the sender by setting to NULL
14168
14169 2003-01-26  Havoc Pennington  <hp@pobox.com>
14170
14171         The unit tests pass, but otherwise untested.  If it breaks, the
14172         tests should have been better. ;-)
14173
14174         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14175         the connection.
14176
14177         * dbus/dbus-message.c: redo everything so we maintain
14178         message->header as the only copy of the various fields.
14179         This avoids the possibility of out-of-memory in some cases,
14180         for example dbus_message_lock() can't run out of memory anymore,
14181         and avoids extra copying. Figured I may as well go ahead and do
14182         this since it was busted for dbus_message_lock to not return
14183         failure on OOM, and dbus_message_write_header was totally
14184         unchecked for OOM. Also fixed some random other bugs.
14185
14186         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14187         that strings are nul-terminated. Also, end_pos can be equal
14188         to string length just not greater than, I think.
14189         (_dbus_marshal_set_int32): new function
14190         (_dbus_marshal_set_uint32): new function
14191         (_dbus_marshal_set_string): new function
14192
14193         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14194         a warning, init timeout_list to NULL
14195         (dbus_connection_send_message): don't use uninitialized variable
14196         "serial"
14197
14198         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14199
14200 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14201
14202         * bus/driver.c: (bus_driver_handle_hello),
14203         (bus_driver_send_welcome_message):
14204         Plug leaks
14205
14206 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14207
14208         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14209         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14210         (dbus_connection_unref):
14211         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14212         * dbus/dbus-message.c: (dbus_message_unref),
14213         Plug memory leaks.
14214
14215         (dbus_message_get_fields):
14216         Remove debugging printout.
14217
14218         (_dbus_message_loader_return_buffer):
14219         Don't store the header string.
14220
14221         (_dbus_message_test):
14222         Plug leaks.
14223
14224 2003-01-26  Richard Hult  <rhult@codefactory.se>
14225
14226         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14227         the file descriptor list, since it can change under us.
14228
14229 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14230
14231         * glib/dbus-gmain.c: (dbus_connection_prepare),
14232         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14233         (remove_watch), (dbus_connection_hookup_with_g_main):
14234         Rewrite the glib handling to use its own GSource instead of a
14235         GIOChannel so we can catch messages put in the queue while waiting
14236         for a reply.
14237
14238 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14239
14240         * bus/Makefile.am:
14241         * bus/connection.c: (connection_disconnect_handler),
14242         (connection_watch_callback), (bus_connection_setup):
14243         * bus/dispatch.c: (send_one_message),
14244         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14245         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14246         * bus/dispatch.h:
14247         * bus/driver.c: (bus_driver_send_service_deleted),
14248         (bus_driver_send_service_created), (bus_driver_handle_hello),
14249         (bus_driver_send_welcome_message),
14250         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14251         (bus_driver_handle_message):
14252         * bus/driver.h:
14253         Refactor code, put the message dispatching in its own file. Use
14254         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14255         is disconnected.
14256
14257 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14258
14259         * dbus/dbus-internals.h:
14260         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14261
14262         * dbus/dbus-message.c: (dbus_message_get_sender):
14263         * dbus/dbus-message.h:
14264         Implement dbus_message_get_sender.
14265
14266         * dbus/dbus-protocol.h:
14267         Add message and service defines.
14268
14269 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14270
14271         * dbus/dbus-connection.c: (dbus_connection_send_message):
14272         * dbus/dbus-message-internal.h:
14273         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14274         (dbus_message_write_header):
14275         Remove _dbus_messag_unlock and don't set the client serial on a
14276         message if one already exists.
14277
14278 2003-01-24  Havoc Pennington  <hp@pobox.com>
14279
14280         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14281         list_pool
14282
14283         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14284         on OOM
14285
14286 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14287
14288         * dbus/dbus-list.c: (alloc_link), (free_link):
14289         Use a memory pool for the links.
14290
14291 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14292
14293         * bus/connection.c: (bus_connection_foreach):
14294         * bus/connection.h:
14295         Add new bus_connection_foreach function.
14296
14297         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14298         Add function that broadcasts a message to all clients.
14299
14300         (bus_driver_send_service_created), (bus_driver_handle_hello),
14301         (bus_driver_send_welcome_message),
14302         (bus_driver_handle_list_services), (bus_driver_message_handler):
14303         Implement functions that take care of listing services, and notifying
14304         clients when new services are created.
14305
14306         * bus/services.c: (bus_services_list):
14307         * bus/services.h:
14308         Add new function that returns an array of strings with the currently
14309         registered services.
14310
14311         * glib/dbus-glib.h:
14312         * glib/dbus-gmain.c:
14313         Update copyright year.
14314
14315 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14316
14317         * dbus/dbus-connection.c: (dbus_connection_send_message):
14318         Unlock the message in case it was sent earlier.
14319
14320         (dbus_connection_send_message_with_reply_and_block):
14321         Remove the reply message from the list.
14322
14323         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14324         Set array_len and new_pos correctly.
14325
14326         (_dbus_marshal_test):
14327         Remove debug output.
14328
14329         * dbus/dbus-message-internal.h:
14330         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14331         New function that returns the reply serial.
14332
14333         (_dbus_message_unlock):
14334         New function that unlocks a message and resets its header.
14335
14336         (dbus_message_append_string_array),
14337         (dbus_message_get_fields_valist),
14338         (dbus_message_iter_get_field_type),
14339         (dbus_message_iter_get_string_array),
14340         (dbus_message_get_fields),
14341         (dbus_message_append_fields_valist):
14342         Handle string arrays.
14343
14344         (dbus_message_set_sender):
14345         Make this function public since the bus daemon needs it.
14346
14347         (decode_header_data):
14348         Set the reply serial to -1 initially.
14349
14350         * dbus/dbus-message.h:
14351         Add dbus_message_set_sender.
14352
14353 2003-01-24  Havoc Pennington  <hp@pobox.com>
14354
14355         * doc/dbus-specification.sgml: add some stuff
14356
14357 2003-01-22  Havoc Pennington  <hp@pobox.com>
14358
14359         * doc/dbus-specification.sgml: Start to document the protocol.
14360
14361 2003-01-22  Havoc Pennington  <hp@pobox.com>
14362
14363         * dbus/dbus-connection.c
14364         (dbus_connection_send_message_with_reply_and_block): add some @todo
14365
14366         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14367
14368 2003-01-21  Havoc Pennington  <hp@pobox.com>
14369
14370         (patch untested because can't compile)
14371
14372         * bus/driver.c (create_unique_client_name): make this function
14373         never recycle client names. Also, caller should initialize
14374         the DBusString.
14375
14376         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14377
14378 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14379
14380         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14381         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14382         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14383         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14384         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14385         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14386         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14387         * dbus/dbus-marshal.h:
14388         * dbus/dbus-protocol.h:
14389         Add support for marshalling and demarshalling integer, double
14390         and string arrays.
14391
14392 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14393
14394         * bus/Makefile.am:
14395         Add driver.[ch]
14396
14397         * bus/connection.c: (connection_disconnect_handler):
14398         Remove the connection from the bus driver's list.
14399
14400         (connection_watch_callback): Dispatch messages.
14401
14402         (free_connection_data): Free connection name.
14403
14404         (bus_connection_setup): Add connection to the bus driver's list.
14405         (bus_connection_remove_owned_service):
14406         (bus_connection_set_name), (bus_connection_get_name):
14407         Add functions for setting and getting the connection's name.
14408
14409         * bus/connection.h:
14410         Add function headers.
14411
14412         * bus/driver.c: (create_unique_client_name),
14413         (bus_driver_handle_hello_message),
14414         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14415         (bus_driver_add_connection), (bus_driver_remove_connection):
14416         * bus/driver.h:
14417         * bus/main.c:
14418         * bus/services.c: (bus_service_free):
14419         * bus/services.h:
14420         New file that handles communication and registreation with the bus
14421         itself.
14422
14423 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14424
14425         * dbus/dbus-connection.c: (dbus_connection_send_message):
14426         Add a new client_serial parameter.
14427
14428         (dbus_connection_send_message_with_reply):
14429         Remove a @todo since we've implemented the blocking function.
14430
14431         (dbus_connection_send_message_with_reply_and_block):
14432         New function that sends a message and waits for a reply and
14433         then returns the reply.
14434
14435         * dbus/dbus-connection.h:
14436         Add new functions.
14437
14438         * dbus/dbus-errors.c: (dbus_result_to_string):
14439         * dbus/dbus-errors.h:
14440         Add new DBUS_RESULT.
14441
14442         * dbus/dbus-message-internal.h:
14443         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14444         (_dbus_message_set_sender), (dbus_message_write_header),
14445         (dbus_message_new_reply), (decode_header_data),
14446         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14447         * dbus/dbus-message.h:
14448         Add new functions that set the reply serial and sender.
14449         Also marshal and demarshal them correctly and add test.
14450
14451         * dbus/dbus-protocol.h:
14452         Add new DBUS_MESSAGE_TYPE_SENDER.
14453
14454         * glib/dbus-glib.h:
14455         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14456         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14457         (dbus_connection_hookup_with_g_main):
14458         * glib/test-dbus-glib.c: (main):
14459         Rewrite to use GIOChannel and remove the GSource crack.
14460
14461         * test/echo-client.c: (main):
14462         * test/watch.c: (check_messages):
14463         Update for changed APIs
14464
14465 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14466
14467         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14468
14469         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14470         Create a DBusTimeoutList.
14471         (dbus_connection_set_timeout_functions): Add new function to
14472         set timeout callbacks
14473
14474         * dbus/dbus-connection.h: Add public DBusTimeout API.
14475
14476         * dbus/dbus-message.c: (dbus_message_get_service):
14477         * dbus/dbus-message.h:  New function.
14478
14479         * dbus/dbus-server.c: Fix small doc typo.
14480
14481         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14482
14483 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14484
14485         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14486         of the string, just as long as specified.
14487
14488 2003-01-19  Havoc Pennington  <hp@pobox.com>
14489
14490         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14491         new function
14492
14493         * dbus/dbus-server.c (dbus_server_set_max_connections)
14494         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14495         keep track of current number of connections, and add API for
14496         setting a max (but haven't implemented enforcing the max yet)
14497
14498 2003-01-18  Havoc Pennington  <hp@pobox.com>
14499
14500         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14501         reading/writing if read_watch != NULL or write_watch != NULL.
14502
14503         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14504         the message loader code to actually load message->header and
14505         message->body into the newly-created message.
14506
14507         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14508         in OOM case
14509
14510         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14511         (dbus_connection_get_max_message_size)
14512         (dbus_connection_set_max_live_messages_size)
14513         (dbus_connection_get_max_live_messages_size): implement some
14514         resource limitation functions
14515
14516         * dbus/dbus-resources.c: new file implementing some of the
14517         resource limits stuff
14518
14519         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14520         missing docs, add @todo to handle OOM etc.
14521
14522         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14523         docs
14524
14525 2003-01-18  Havoc Pennington  <hp@pobox.com>
14526
14527         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14528         connection if it hasn't been already.
14529
14530         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14531         replace with DisconnectFunction.
14532
14533 2003-01-18  Havoc Pennington  <hp@pobox.com>
14534
14535         Building --disable-verbose-mode --disable-asserts --disable-tests
14536         cuts the library from 112K to 45K or so
14537
14538         * configure.in: check for varargs macro support,
14539         add --enable-verbose-mode, --enable-asserts.
14540
14541         * dbus/dbus-internals.h (_dbus_assert): support
14542         DBUS_DISABLE_ASSERT
14543         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14544
14545 2003-01-18  Havoc Pennington  <hp@pobox.com>
14546
14547         * dbus/dbus-test.c: include config.h so that tests actually run
14548
14549         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14550         so the failure mode when that assumption fails will be plenty
14551         obvious.
14552
14553 2003-01-18  Havoc Pennington  <hp@pobox.com>
14554
14555         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14556
14557         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14558         the distribution
14559
14560         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14561         since we don't want to use those in make check
14562
14563 2003-01-15  Havoc Pennington  <hp@redhat.com>
14564
14565         Release 0.2
14566
14567         * NEWS: update
14568
14569 2003-01-15  Havoc Pennington  <hp@redhat.com>
14570
14571         * test/Makefile.am: fix so that test source code ends up in the
14572         distribution on make distcheck
14573
14574 2003-01-15  Havoc Pennington  <hp@redhat.com>
14575
14576         Release 0.1.
14577
14578         * NEWS: update
14579
14580 2003-01-15  Havoc Pennington  <hp@redhat.com>
14581
14582         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14583         fix build when --disable-tests
14584
14585         * Makefile.am (EXTRA_DIST): put HACKING in here
14586
14587         * HACKING: document procedure for making a tarball release.
14588
14589 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14590
14591         * bus/connection.c: (connection_error_handler),
14592         (bus_connection_setup):
14593         * bus/main.c: (main):
14594         Make sure that the DBusConnectionData struct is NULLed
14595         out to prevent a segfault.
14596
14597         * dbus/dbus-errors.c: (dbus_result_to_string):
14598         * dbus/dbus-errors.h:
14599         * dbus/dbus-message.c: (dbus_message_get_fields),
14600         (dbus_message_get_fields_valist), (_dbus_message_test):
14601         * dbus/dbus-message.h:
14602         Make dbus_message_get_fields return a result code so we can
14603         track invalid fields as well as oom.
14604
14605 2003-01-11  Havoc Pennington  <hp@pobox.com>
14606
14607         * configure.in: change --enable-test/--enable-ansi action-if-given
14608         to enable_foo=$enableval instead of enable_foo=yes
14609
14610 2003-01-08  Havoc Pennington  <hp@pobox.com>
14611
14612         * dbus/dbus-string.c (_dbus_string_align_length): new function
14613
14614         * dbus/dbus-test-main.c: move main() for test app here
14615         * dbus/dbus-test.c
14616         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14617         symbol to run tests, because dbus-test isn't in the main
14618         library
14619
14620         Code review nitpicks.
14621
14622         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14623         for people with narrow emacs ;-). Assert client_serial was filled
14624         in. Assert message->name != NULL.
14625         (dbus_message_append_fields): have "first_field_type" arg separate
14626         from va list, needed for C++ binding that also uses varargs IIRC
14627         and helps with type safety
14628         (dbus_message_new): add @todo about using DBusString to store
14629         service/name internally
14630         (dbus_message_new): don't leak ->service and ->name on OOM later
14631         in the function
14632         (dbus_message_unref): free the service name
14633         (dbus_message_get_fields): same change to varargs
14634         i.e. first_field_type
14635         (_dbus_message_loader_return_buffer): assert that the message data
14636         is aligned (if not it's a bug in our code). Put in verbose griping
14637         about why we set corrupted = TRUE.
14638         (decode_header_data): add FIXME that char* is evil.  Was going to
14639         add FIXME about evil locale-specific string.h strncmp, but just
14640         switched to wacky string-as-uint32 optimization. Move check for
14641         "no room for field name" above get_const_data_len() to avoid
14642         assertion failure in get_const_data_len if we have trailing 2
14643         bytes or the like. Check for service and name fields being
14644         provided twice. Don't leak service/name on error. Require field
14645         names to be aligned to 4 bytes.
14646
14647         * dbus/dbus-marshal.c: move byte swap stuff to header
14648         (_dbus_pack_int32): uscore-prefix
14649         (_dbus_unpack_int32): uscore-prefix
14650         (_dbus_unpack_uint32): export
14651         (_dbus_demarshal_string): add @todo complaining about use of
14652         memcpy()
14653         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14654         handling allowing corrupt data to go unchecked
14655
14656 2003-01-08  Havoc Pennington  <hp@redhat.com>
14657
14658         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14659         to the select() as needed for authentication. (should be using
14660         _dbus_poll() not select, but for another day)
14661
14662         * dbus/dbus.h: include dbus/dbus-protocol.h
14663
14664 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14665
14666         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14667         dbus-connection.h
14668
14669 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14670
14671         * dbus/dbus-internals.c: (_dbus_type_to_string):
14672         New function that returns a string describing a type.
14673
14674         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14675         * dbus/dbus-marshal.h:
14676         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14677         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14678         (dbus_message_iter_get_byte_array):
14679         * dbus/dbus-message.h:
14680         Add new convenience functions for appending and getting message fields.
14681         Also add demarshalling routines for byte arrays.
14682
14683 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14684
14685         * dbus/dbus-connection-internal.h:
14686         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14687         (_dbus_connection_get_next_client_serial),
14688         (dbus_connection_send_message):
14689         * dbus/dbus-internals.h:
14690         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14691         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14692         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14693         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14694         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14695         (_dbus_verbose_bytes), (_dbus_marshal_test):
14696         * dbus/dbus-marshal.h:
14697         * dbus/dbus-message-internal.h:
14698         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14699         (dbus_message_write_header), (_dbus_message_lock),
14700         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14701         (dbus_message_get_name), (dbus_message_append_int32),
14702         (dbus_message_append_uint32), (dbus_message_append_double),
14703         (dbus_message_append_string), (dbus_message_append_byte_array),
14704         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14705         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14706         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14707         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14708         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14709         (decode_header_data), (_dbus_message_loader_return_buffer),
14710         (message_iter_test), (_dbus_message_test):
14711         * dbus/dbus-message.h:
14712         * dbus/dbus-protocol.h:
14713         * dbus/dbus-test.c: (main):
14714         * dbus/dbus-test.h:
14715         * glib/test-dbus-glib.c: (message_handler), (main):
14716         * test/echo-client.c: (main):
14717         * test/watch.c: (check_messages):
14718         Make messages sendable and receivable for real.
14719
14720 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14721
14722         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14723         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14724         * dbus/dbus-message.c: (dbus_message_append_int32),
14725         (dbus_message_append_uint32), (dbus_message_append_double),
14726         (dbus_message_append_string), (dbus_message_append_byte_array):
14727         Handle OOM restoration.
14728
14729 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14730
14731         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14732         (_dbus_demarshal_string), (_dbus_marshal_test):
14733         * dbus/dbus-marshal.h:
14734         * dbus/dbus-message.c: (dbus_message_get_name),
14735         Document these functions.
14736
14737         (dbus_message_append_int32), (dbus_message_append_uint32),
14738         (dbus_message_append_double), (dbus_message_append_string),
14739         (dbus_message_append_byte_array):
14740         * dbus/dbus-message.h:
14741         Add functions for adding message fields of different types.
14742
14743         * dbus/dbus-protocol.h:
14744         Add the different types.
14745
14746 2003-01-05  Havoc Pennington  <hp@pobox.com>
14747
14748         * bus/connection.c: implement routines for handling connections,
14749         first thing is keeping a list of owned services on each connection
14750         and setting up watches etc.
14751
14752         * bus/services.c: implement a mapping from service names to lists
14753         of connections
14754
14755         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14756
14757         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14758         to use static mutexes for global data
14759
14760         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14761         collection of functions to set/get application-specific data
14762         on the DBusConnection.
14763
14764 2003-01-04  Havoc Pennington  <hp@pobox.com>
14765
14766         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14767         (_dbus_poll): new function
14768
14769         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14770         copied from GLib
14771
14772         * bus/loop.c: initial code for the daemon main loop
14773
14774 2003-01-04  Havoc Pennington  <hp@pobox.com>
14775
14776         * test/watch.c (error_handler): make it safe if the error handler
14777         is called multiple times (if we s/error handler/disconnect
14778         handler/ we should just guarantee it's called only once)
14779
14780         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14781         error handler on disconnect (it's quite possible we should
14782         just change the error handler to a "disconnect handler," I'm
14783         not sure we have any other meaningful errors)
14784
14785         * configure.in: check for getpwnam_r
14786
14787         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14788         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14789         mechanism as in SASL spec, using socket credentials
14790
14791         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14792         (_dbus_send_credentials_unix_socket): new function
14793
14794         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14795         dbus_accept()
14796         (_dbus_write): only check errno if <0 returned
14797         (_dbus_write_two): ditto
14798
14799 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14800
14801         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14802         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14803         (_dbus_marshal_test):
14804         * dbus/dbus-marshal.h:
14805         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14806         to _dbus_marshal_utf8_string. Also fix some tests.
14807
14808 2002-12-28  Harri Porten  <porten@kde.org>
14809
14810         * configure.in: added check for C++ compiler and a very cheesy
14811         check for the Qt integration
14812
14813         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14814
14815         * qt/Makefile.am: added
14816
14817         * qt/.cvsignore: added
14818
14819         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14820         latter, added #ifdef QT_THREAD_SUPPORT guard.
14821
14822         * dbus/Makefile.am: added missing headers for make dist
14823
14824 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14825
14826         * dbus/Makefile.am: fixup export-symbols-regex.
14827
14828 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14829
14830         * acinclude.m4: Add this file and put the
14831         PKG_CHECK_MODULE macro in it.
14832
14833 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14834
14835         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14836         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14837         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14838         (_dbus_marshal_test):
14839         Make the demarshalling routines align the pos argument.
14840         Add string marshalling tests and fix the obvious bugs
14841         discovered.
14842
14843 2002-12-26  Havoc Pennington  <hp@pobox.com>
14844
14845         * dbus/dbus-auth.c: fixes fixes fixes
14846
14847         * dbus/dbus-transport-unix.c: wire up support for
14848         encoding/decoding data on the wire
14849
14850         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14851         (_dbus_auth_decode_data): append to target string
14852         instead of nuking it.
14853
14854 2002-12-26  Havoc Pennington  <hp@pobox.com>
14855
14856         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14857         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14858         doh
14859
14860         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14861         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14862         now). Main point is because I wanted unpack_uint32 to implement
14863         _dbus_verbose_bytes
14864         (_dbus_verbose_bytes): new function
14865
14866         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14867
14868         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14869         mechanism to handle a corrupt message stream
14870         (_dbus_message_loader_new): fix preallocation to only prealloc,
14871         not prelengthen
14872
14873         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14874         (_dbus_string_test): enhance tests for copy/move and fix the
14875         functions
14876
14877         * dbus/dbus-transport-unix.c: Hold references in more places to
14878         avoid reentrancy problems
14879
14880         * dbus/dbus-transport.c: ditto
14881
14882         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14883         leak reference count in no-message case
14884
14885         * test/watch.c (do_mainloop): handle adding/removing watches
14886         during iteration over the watches. Also, ref the connection/server
14887         stored on a watch, so we don't try to mangle a destroyed one.
14888
14889         * dbus/dbus-transport-unix.c (do_authentication): perform
14890         authentication
14891
14892         * dbus/dbus-auth.c (get_state): add a state
14893         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14894         (_dbus_auth_get_unused_bytes): append the unused bytes
14895         to the passed in string, rather than prepend
14896
14897         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14898         the auth conversation DBusAuth
14899
14900         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14901         (_dbus_transport_new_for_domain_socket): when creating a
14902         transport, pass in whether it's a client-side or server-side
14903         transport so we know which DBusAuth to create
14904
14905 2002-12-03  Havoc Pennington  <hp@pobox.com>
14906
14907         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14908         _after_ finalizing the derived members
14909         (unix_connection_set): unref watch if we fail to add it
14910
14911         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14912         transport first, so that the connection owned by the
14913         transport will be valid as the transport finalizes.
14914
14915         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14916         if necessary, and remove watches from the connection.
14917
14918         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14919
14920 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14921
14922         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14923         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14924         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14925         (_dbus_marshal_test):
14926         * dbus/dbus-marshal.h:
14927         Add string marshal functions and have the demarshal functions
14928         return the new position.
14929
14930 2002-12-25  Havoc Pennington  <hp@pobox.com>
14931
14932         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14933         it is a simple protocol that just maps directly to SASL.
14934
14935         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14936         initial implementation, not actually used yet.
14937
14938         * dbus/dbus-string.c (_dbus_string_find): new function
14939         (_dbus_string_equal): new function
14940         (_dbus_string_base64_encode): new function
14941         (_dbus_string_base64_decode): new function
14942
14943 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14944
14945         * dbus/Makefile.am:
14946         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14947         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14948         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14949         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14950         * dbus/dbus-marshal.h:
14951         * dbus/dbus-protocol.h:
14952         * dbus/dbus-test.c: (main):
14953         * dbus/dbus-test.h:
14954         Add un-optimized marshalling/demarshalling routines.
14955
14956 2002-12-25  Harri Porten  <porten@kde.org>
14957
14958         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14959
14960 2002-12-24  Zack Rusin  <zack@kde.org>
14961
14962         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14963         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14964         main loop stuff
14965
14966 2002-12-24  Havoc Pennington  <hp@pobox.com>
14967
14968         * glib/dbus-gthread.c: fix include
14969
14970         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14971         I think glib API needs to change, though, as you don't
14972         want to use DBusMessageFunction, you want to use the
14973         DBusMessageHandler object. Probably
14974         dbus_connection_open_with_g_main_loop()
14975         and dbus_connection_setup_g_main_loop() or something like that
14976         (but think of better names...) that just create a connection
14977         that has watch/timeout functions etc. already set up.
14978
14979         * dbus/dbus-connection.c
14980         (dbus_connection_send_message_with_reply): new function just to
14981         show how the message handler helps us deal with replies.
14982
14983         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14984
14985         * dbus/dbus-string.c (_dbus_string_test): free a string that
14986         wasn't
14987
14988         * dbus/dbus-hash.c: use memory pools for the hash entries
14989         (rebuild_table): be more paranoid about overflow, and
14990         shrink table when we can
14991         (_dbus_hash_test): reduce number of sprintfs and write
14992         valid C89. Add tests for case where we grow and then
14993         shrink the hash table.
14994
14995         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14996
14997         * dbus/dbus-connection.c (dbus_connection_register_handler)
14998         (dbus_connection_unregister_handler): new functions
14999
15000         * dbus/dbus-message.c (dbus_message_get_name): new
15001
15002         * dbus/dbus-list.c: fix docs typo
15003
15004         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15005         an object representing a handler for messages.
15006
15007 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15008
15009         * glib/dbus-glib.h:
15010         * glib/dbus-gthread.c: (dbus_gthread_init):
15011         Don't use the gdbus prefix for public functions.
15012
15013 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15014
15015         * Makefile.am:
15016         * configure.in:
15017         Add GLib checks and fixup .pc files
15018
15019         * glib/Makefile.am:
15020         * glib/dbus-glib.h:
15021         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15022         (gdbus_connection_check), (gdbus_connection_dispatch),
15023         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15024         (dbus_connection_gsource_new):
15025         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15026         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15027         * glib/test-dbus-glib.c: (message_handler), (main):
15028         Add GLib support.
15029
15030 2002-12-15  Harri Porten  <porten@kde.org>
15031
15032         * autogen.sh: check for libtoolize before attempting to use it
15033
15034         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15035         struct.
15036
15037         * .cvsignore: ignore more stamp files
15038
15039         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15040
15041         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15042         without make install.
15043
15044 2002-12-15  Havoc Pennington  <hp@pobox.com>
15045
15046         * dbus/dbus-threads.c: add thread stubs that a higher library
15047         layer can fill in. e.g. the GLib wrapper might fill them in with
15048         GThread stuff. We still need to use this thread API to
15049         thread-safe-ize the library.
15050
15051 2002-12-12  Havoc Pennington  <hp@pobox.com>
15052
15053         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15054         below new interfaces and include fewer system headers.
15055
15056         * dbus/dbus-sysdeps.c (_dbus_read): new function
15057         (_dbus_write): new function
15058         (_dbus_write_two): new function
15059         (_dbus_connect_unix_socket): new function
15060         (_dbus_listen_unix_socket): new function
15061
15062         * dbus/dbus-message-internal.h: change interfaces to use
15063         DBusString
15064
15065 2002-12-11  Havoc Pennington  <hp@pobox.com>
15066
15067         * dbus/dbus-types.h: add dbus_unichar
15068
15069         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15070
15071         * dbus/dbus-connection.c (dbus_connection_send_message): return
15072         TRUE on success
15073
15074         * dbus/dbus-transport.c: include dbus-watch.h
15075
15076         * dbus/dbus-connection.c: include dbus-message-internal.h
15077
15078         * HACKING: add file with coding guidelines stuff.
15079
15080         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15081         handling here, for security purposes (as in vsftpd). Not actually
15082         using this class yet.
15083
15084         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15085         system/libc usage here, as in vsftpd, for ease of auditing (and
15086         should also simplify portability). Haven't actually moved all the
15087         system/libc usage into here yet.
15088
15089 2002-11-25  Havoc Pennington  <hp@pobox.com>
15090
15091         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15092         always print the first verbose message.
15093
15094 2002-11-24  Havoc Pennington  <hp@pobox.com>
15095
15096         * test/echo-client.c, test/echo-server.c: cheesy test
15097         clients.
15098
15099         * configure.in (AC_CHECK_FUNCS): check for writev
15100
15101         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15102         function
15103
15104         * dbus/dbus-list.c (_dbus_list_foreach): new function
15105
15106         * dbus/dbus-internals.c (_dbus_verbose): new function
15107
15108         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15109         representing a server that listens for connections.
15110
15111         * dbus/.cvsignore: create
15112
15113         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15114         public API for reporting errors
15115
15116         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15117         public object representing a connection that
15118         sends/receives messages. (Same object used for
15119         both client and server.)
15120
15121         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15122         Basic abstraction for different kinds of stream
15123         that we might read/write messages from.
15124
15125 2002-11-23  Havoc Pennington  <hp@pobox.com>
15126
15127         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15128         _DBUS_INT_MAX
15129
15130         * dbus/dbus-test.c (main): add list test, and include
15131         dbus-test.h as intended
15132
15133         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15134         (_dbus_hash_table_remove_int): return value indicates
15135         whether the entry existed to remove
15136
15137         * dbus/dbus-list.c: add linked list utility class,
15138         with docs and tests
15139
15140         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15141         array sometimes.
15142
15143 2002-11-23  Havoc Pennington  <hp@pobox.com>
15144
15145         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15146         DBUS_END_DECLS to nothing, that should fix this once and for all
15147
15148         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15149
15150         * dbus/dbus-message.c, dbus/dbus-hash.c:
15151         add some missing @brief
15152
15153 2002-11-23  Havoc Pennington  <hp@pobox.com>
15154
15155         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15156         to avoid confusing Doxygen
15157
15158         * dbus/dbus-hash.c: @} not }@
15159
15160         * dbus/dbus-message.c (struct DBusMessage): split out
15161         internals docs
15162
15163 2002-11-23  Havoc Pennington  <hp@pobox.com>
15164
15165         * configure.in: pile on more warning flags if using gcc
15166
15167         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15168         to document static functions
15169
15170         * configure.in: add summary to end of configure so it
15171         looks nice and attractive
15172
15173         * dbus/dbus-hash.c: finish implementation and write unit
15174         tests and docs
15175
15176         * configure.in: add --enable-tests to enable unit tests
15177
15178         * dbus/dbus-test.c: test program to run unit tests
15179         for all files in dbus/*, initially runs a test for
15180         dbus-hash.c
15181
15182         * dbus/dbus-internals.h: file to hold some internal utility stuff
15183
15184 2002-11-22  Havoc Pennington  <hp@redhat.com>
15185
15186         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15187         "ported" away from Tcl
15188
15189         * dbus/dbus-types.h: header for types such as dbus_bool_t
15190
15191 2002-11-22  Havoc Pennington  <hp@redhat.com>
15192
15193         * dbus/dbus.h: fixups for doc warnings
15194
15195         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15196         macros
15197         (QUIET): make it quiet so we can see warnings
15198
15199         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15200
15201 2002-11-22  Havoc Pennington  <hp@redhat.com>
15202
15203         * Makefile.am: include "Doxyfile" target in all-local
15204
15205         * configure.in: generate the Doxyfile
15206
15207         * Doxyfile.in: move Doxyfile here, so we can use
15208         configure to generate a Doxyfile with the right
15209         version number etc.
15210
15211 2002-11-22  Havoc Pennington  <hp@redhat.com>
15212
15213         * dbus/dbus-message.c: move inline docs into .c file
15214
15215         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15216         so all docs are under doc/
15217         (MAN_EXTENSION): generate man pages. Use extension
15218         ".3dbus" which matches ".3qt" on my system,
15219         I guess this is OK, I don't know really.
15220         (FILE_PATTERNS): look for .c files not .h, makes sense
15221         for plain C I think
15222
15223 2002-11-22  Havoc Pennington  <hp@pobox.com>
15224
15225         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15226         because any app can be a server, and any app can be a client,
15227         the bus is a special kind of server.
15228
15229 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15230
15231         * Doxyfile : adding. Still needs Makefile rules to be generated
15232         automatically (just run "doxygen" in the toplevel dir for now to
15233         generate docs)
15234
15235         * dbus/dbus-message.h : Adding sample docs (javadoc since
15236         resembles gtk-doc a little more)
15237
15238         * dbus/dbus.h : Adding sample docs
15239
15240 2002-11-21  Havoc Pennington  <hp@redhat.com>
15241
15242         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15243         so we can allow ourselves to include files directly,
15244         instead of having to use dbus.h
15245
15246         * dbus/dbus.h: fill in
15247
15248         * dbus/dbus-message.h: sketch out a sample header file.
15249         Include griping if you include it directly instead of
15250         via dbus.h
15251
15252         * dbus/dbus-macros.h: new file with macros for extern "C",
15253         TRUE/FALSE, NULL, etc.
15254
15255         * doc/file-boilerplate.c: put include guards in here
15256
15257 2002-11-21  Havoc Pennington  <hp@redhat.com>
15258
15259         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15260
15261         * COPYING: include the GPL as well, and license code
15262         under both AFL and GPL.
15263
15264 2002-11-21  Havoc Pennington  <hp@redhat.com>
15265
15266         * acconfig.h: get rid of this
15267
15268         * autogen.sh (run_configure): add --no-configure option
15269
15270         * configure.in: remove AC_ARG_PROGRAM to make
15271         autoconf complain less. add AC_PREREQ.
15272         add AC_DEFINE third arg.
15273
15274 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15275
15276         * doc/Makefile.am:
15277         Fix references so we can distcheck.
15278
15279 2002-11-21  Havoc Pennington  <hp@redhat.com>
15280
15281         * Initial module creation
15282