1 2006-12-31 Ralf Habacker <ralf.habacker@freenet.de>
3 * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec()
4 from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec()
5 is in dbus-sysdeps-win.c (not in this patch).
7 * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit
8 with InterlockedInc/Decrement.
9 - Patches from Christian Ehrlicher
11 2006-12-31 Ralf Habacker <ralf.habacker@freenet.de>
13 * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
15 2006-12-31 Ralf Habacker <ralf.habacker@freenet.de>
17 * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
18 fix mispaced const statement. - Patch from Peter Kümmel
20 2006-12-19 Ray Strode <rstrode@redhat.com>
22 * bus/bus.c (process_config_every_time):
23 don't overwrite existing bus context activation object
24 until after we've checked that the new activation is
28 (signal_handler), (handle_reload_watch):
29 don't call exit() on failure, instead make do and keep
31 (close_reload_pipe): new function to turn off
32 hangup-causes-config-reload behavior if an unexpected
35 2006-12-13 Ralf Habacker <ralf.habacker@freenet.de>
37 * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
38 correctness fix. - Patch from Christian Ehrlicher
40 2006-12-13 Ralf Habacker <ralf.habacker@freenet.de>
42 * dbus/dbus-internals.h: msvc also knows about __FUNCTION__,
43 we should also use it. - Patch from Christian Ehrlicher
45 2006-12-13 Ralf Habacker <ralf.habacker@freenet.de>
47 * dbus-sysdeps-util.c: added win32 related tests
49 2006-12-12 Ralf Habacker <ralf.habacker@freenet.de>
51 * dbus/dbus-string.c (_dbus_string_pop_line),
52 bus/desktop-file.c (parse_section_start,
53 parse_comment_or_blank,parse_key_value,): uses
54 _dbus_string_find_eol() to support platform independent eol style.
56 2006-12-12 Ralf Habacker <ralf.habacker@freenet.de>
58 * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function.
59 * dbus/dbus-string-util.c (_dbus_string_test): added testcases for
60 _dbus_string_find_eol().
61 Approved by: Havoc Pennington.
63 2006-12-12 Tim Dijkstra <tim@famdijkstra.org>
65 * configure.in: Added switch to disable user_database caching.
67 * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
68 be able disable user_dabase caching.
70 2006-12-12 Tim Dijkstra <tim@famdijkstra.org>
72 * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext
73 struct. It is unnecessary we have a global one already. Also remove
74 bus_context_get_user_database function, it is no longer needed.
75 Flush the global database on reload.
77 * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups
78 with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
80 * dbus/dbus-userdb.c, dbus/dbus-userdb.h:
81 Add _dbus_user_database_flush_system.
82 Make more functions DBUS_USERDB_INCLUDES_PRIVATE.
83 Small unrelated change in _dbus_is_a_number: change
84 _dbus_string_parse_int to _dbus_string_parse_uint.
86 * bus/connection.c: Change call to _dbus_user_database_get_groups to
87 _dbus_groups_from_uid.
89 * bus/policy.c, bus/policy.h: Change call to
90 _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove
91 DBusUserDatabase from bus_policy_allow_user prototype, it no longer
94 2006-12-12 John (J5) Palmieri <johnp@redhat.com>
96 * bus/signal.c: Fix match_rule_equal errata
97 (CVE-2006-6107 - Patch from Kimmo Hämäläinen
98 <kimmo.hamalainen@nokia.com>)
100 2006-11-19 Thiago Macieira <thiago@kde.org>
102 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
103 _dbus_pthread_condvar_wait,
104 _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
105 pthread_self() after coming back from a conditional variable
106 wait as well as in one codepath where it was forgotten.
107 Approved by: Havoc Pennington.
109 2006-11-17 Havoc Pennington <hp@redhat.com>
111 * update-dbus-docs.sh: allow setting fd.org username via env
112 variable. Make it run autogen with --enable-xml-docs=yes
113 --enable-doxygen-docs=yes so configure will fail if the required
116 2006-11-17 Havoc Pennington <hp@redhat.com>
118 * doc/dbus-faq.xml: minor FAQ tweaks
120 2006-11-14 Havoc Pennington <hp@redhat.com>
122 * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
123 dbus_get_local_machine_id() to its own file, no substantive
124 changes. There are a couple other things we might want to add that
125 are "misc" so moving out of dbus-connection.[hc] which is big
128 2006-11-14 Havoc Pennington <hp@redhat.com>
130 * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
131 UUID had the timestamp last, but the implementation had it first;
132 move it to last since I think it's a tiny bit nicer (easier to
133 compare at a glance, faster to sort, less code), and will not
134 cause any practical compatibility problems. Also, always convert
135 the timestamp to big endian.
137 * doc/dbus-specification.xml: Clean up the docs on the UUID.
139 * tools/dbus-uuidgen.1: more prominently say it is not suitable
140 as a replacement for regular uuidgen/RFC4122.
142 2006-11-14 John (J5) Palmieri <johnp@redhat.com>
144 * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
145 the correct value so we don't assert when initalizing recursive threads
147 * test/name-test/test-thread-init.c: call dbus_threads_init_default
148 instead of _dbus_threads_init_debug since it is more of a real world
151 2006-11-09 John (J5) Palmieri <johnp@redhat.com>
155 2006-11-09 John (J5) Palmieri <johnp@redhat.com>
157 * AUTHORS: added Peter and Tor of windows porting fame
159 2006-11-08 Havoc Pennington <hp@redhat.com>
161 * doc/dbus-specification.xml: add a note about protocol stability
163 * doc/TODO: Remove "important for 1.0" section, replace with
164 "important for 1.2" section
166 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
168 * README: remove some of the out of date flags
170 * doc/TODO: Remove todo items which are done
172 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
174 * tools/dbus-monitor.c: Handle sigint so we flush stdout
175 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
177 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
179 * tools/dbus-monitor.1: update the manpage for dbus-monitor
180 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
182 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
184 * AUTHORS: Update with all people listed in the ChangeLog
186 2006-11-08 John (J5) Palmieri <johnp@redhat.com>
188 * tools/dbus-monitor.c: add profiling tools to dbus-monitor
189 (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
191 2006-11-07 Havoc Pennington <hp@redhat.com>
193 * HACKING: Update release instructions to include stuff about
194 stable releases, branching, etc. May not be totally correct,
195 please fix if needed, but keep instructions up-to-date so we do
196 each stable release consistently in the future.
198 2006-11-07 Havoc Pennington <hp@redhat.com>
200 * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
201 documentation updates. Bump faq/spec versions (not to 1.0; I don't
202 think the spec will be "finished"/1.0 when we ship the 1.0 library).
204 2006-11-06 John (J5) Palmieri <johnp@redhat.com>
206 * bus/bus.c: Missed patch - pass in the context to the directory watch
208 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
210 * Released D-Bus 1.0 RC 3(0.95)
212 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
214 * bus/activation.c (bus_activation_new): don't fail if we can not read
215 the directory as it may not exist
217 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
219 * bus/config-parser.c (service_dirs_find_dir): use
220 _dbus_list_get_next_link so we don't get stuck in an infinite loop
221 (start_busconfig_child): move processing of standard_session_servicedirs
222 tags here because they have no content
223 (bus_config_parser_content): check we don't have content in
224 standard_session_servicedirs tag
226 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
228 * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
229 Packagers need to own this directory
231 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
233 * tools/run-with-tmp-session-bus.sh: fixed script to replace the
234 <standard_session_servicedirs> tag with a <sevicedir> tag that
235 points to the test service directory
237 2006-11-02 John (J5) Palmieri <johnp@redhat.com>
239 * configure.in: Add a check for DIR *dirp->dd_fd
241 * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use
242 DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care
243 of both Solaris and Irix
245 2006-11-01 Havoc Pennington <hp@redhat.com>
247 * bus/dbus-daemon.1.in: document standard_session_servicedirs
249 2006-11-01 John (J5) Palmieri <johnp@redhat.com>
251 * configure.in: expose DBUS_DATADIR
253 * bus/config-parser.c: add the standard_session_servicedirs element
255 (bus_config_parser_content): process the standard_session_servicedirs
256 element by getting the standard directories from sysdeps and merging
257 them into the service directory list
258 (test_default_session_servicedirs): make sure we get what we expect
260 * bus/session.conf.in: replace the servicedir tag with the
261 standard_session_servicedirs tag
263 * dbus/dbus-list.h: remove the typedef of DBusList and place it in
264 dbus-sysdeps.h to avoid circular header dependencies
266 * dbus/dbus-sysdeps.h: add the typedef of DBusList
268 * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
269 which takes a string of directories delimited by colons, parses them
270 out, appends a suffix and puts them in a list ignoring empty elements
271 (_dbus_get_standard_session_servicedirs): returns the standard
272 directories for a session bus to look for service activation files
273 on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and
274 DBUS_DATADIR directories
276 * test/data/valid-config-files/many-rules.conf: add the
277 standard_session_servicedirs tag to the valid config file tests
279 2006-10-30 Havoc Pennington <hp@redhat.com>
281 * tools/dbus-launch.1, doc/TODO: capture intent to change the
282 command line options of dbus-launch a bit post 1.0
284 2006-10-27 Havoc Pennington <hp@redhat.com>
286 * dbus/dbus-connection.c (dbus_connection_open_private): document
287 how to choose shared vs. private connections
289 2006-10-27 Havoc Pennington <hp@redhat.com>
291 * dbus/dbus-test.c: enclose more of the file in the
292 DBUS_BUILD_TESTS check.
294 * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
295 DBUS_DISABLE_ASSERT case.
297 * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
298 that it only works on the server side
300 * dbus/dbus-bus.c: add a global lock covering the BusData we
301 attach to each connection
302 (internal_bus_get): lock our access to the BusData
303 (dbus_bus_register): lock the entire registration process
304 with _DBUS_LOCK(bus_datas). If we get the lock and
305 registration is already complete, silently return (vs. previous
306 behavior of aborting).
307 (dbus_bus_set_unique_name): lock the BusData
308 (dbus_bus_get_unique_name): lock the BusData
310 2006-10-27 John (J5) Palmieri <johnp@redhat.com>
312 * bus/config-parser.c (service_dirs_find_dir,
313 service_dirs_append_unique_or_free,
314 service_dirs_append_link_unique_or_free): New static methods
315 for only appending unique service directory names into
316 the service directory list
317 (merge_included, bus_config_parser_content): Only add unique
318 service directory names into the list
320 2006-10-27 Havoc Pennington <hp@redhat.com>
322 * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
323 variables volatile, suggested by Thiago. Document struct fields.
324 (PTHREAD_CHECK): remove pthread error checking if assertions are
325 disabled, should reduce the no-assertions case to the bare
328 2006-10-26 Havoc Pennington <hp@redhat.com>
330 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
332 (_dbus_pthread_mutex_unlock): make it recursive
333 (_dbus_pthread_condvar_wait): save/restore the recursion count
334 (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
336 2006-10-26 Havoc Pennington <hp@redhat.com>
338 * doc/dbus-specification.xml: clarify the UUID text slightly
340 * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
341 pthread errors. Add DBusMutexPThread and DBusCondVarPThread
342 in preparation for being able to extend them for e.g. recursive
345 2006-10-26 Havoc Pennington <hp@redhat.com>
347 * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how
348 condition variables relate to recursive mutexes.
350 * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c,
351 dbus/dbus-threads.c: Split the platforms-specific thread
352 implementations into their own files.
354 * dbus/dbus-sysdeps-pthread.c
355 (_dbus_pthread_condvar_wait_timeout): invert the return value, it
356 was backward. Not that anything uses it.
358 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
360 * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
361 LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This
362 needs to be cleaned up more.
364 * doc/TODO: Add a todo that *BSD hackers should look at cleaning
367 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
369 * configure.in, dbus-1.pc.in: Check to see if thread methods
370 are in glibc or libpthread and add -lpthread to the link stage
373 2006-10-26 Thiago Macieira <thiago@kde.org>
375 * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
376 bug 8780: the connection lock is only required while recording
377 the shared connection, so protect only that code
378 section. Don't require connection_lookup_shared to return a
381 2006-10-26 Thiago Macieira <thiago@kde.org>
383 * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
384 check if get_machine_uuid() returns NULL before proceeding any
385 further: we can't init the X atoms or create a session file
386 name if there is no machine ID.
387 This solves a crash reported by some users if
388 --exit-with-session was used without --autolaunch=<machine-id>
390 2006-10-26 John (J5) Palmieri <johnp@redhat.com>
392 * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
393 if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
395 * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
396 before we run dbus-launch
398 * configure.in: define TEST_BUS_BINARY to be the full path to
399 dbus-daemon in the build root
401 2006-10-25 Sjoerd Simons <sjoerd@luon.net>
405 * toos/dbus-uuidgen.1:
406 Move the machine-id file to /var/lib/dbus
408 2006-10-24 David Zeuthen <davidz@redhat.com>
410 * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
411 _dbus_assert (thread_init_generation != _dbus_current_generation)
412 not _dbus_assert (thread_init_generation == _dbus_current_generation)
414 2006-10-24 Thiago Macieira <thiago@kde.org>
416 * dbus/dbus-sysdeps.h:
417 * dbus/dbus-sysdeps-unix.c: Add function
418 _dbus_make_file_world_readable that chmods a file to 0644.
420 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
421 Avoid writing to the static "argv" array, thereby avoiding a
422 COW on the child process.
424 * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
425 call _dbus_make_file_world_readable on the created file.
427 2006-10-23 David Zeuthen <davidz@redhat.com>
429 * dbus/dbus-memory.c: Use atomic variable to protect
430 n_blocks_outstanding otherwise OOM will be reported using SMP on
433 * bus/dispatch.c: Add missing end of line characters
435 * bus/desktop-file.c (parse_section_start, parse_key_value)
436 (bus_desktop_file_load): Propertly handle OOM
438 * dbus/dbus-threads.c (init_uninitialized_locks): Check that
439 thread_init_generation equals _dbus_current_generation, not 0
441 2006-10-22 Havoc Pennington <hp@redhat.com>
443 * dbus/dbus-connection-internal.h: move prototype of
444 _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
445 it isn't in a public header and doesn't end up in the DBusBus
448 2006-10-21 Havoc Pennington <hp@redhat.com>
450 * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
451 the tarball if packagers want to run it
453 * cleanup-man-pages.sh: Add a script which munges all the internal
454 API man pages out of the Doxygen output. This reduces the size of
455 the installed man pages from 7 to 2 megs, and avoids
456 namespace-polluting pages. Right now (like Doxygen) this script
457 isn't in the build, it's something packagers can do manually.
459 2006-10-21 Havoc Pennington <hp@redhat.com>
461 * dbus/dbus-connection.h: don't include the watch/timeout
462 functions in connection section
464 2006-10-21 Havoc Pennington <hp@redhat.com>
466 * Documentation! Whee! Doxygen now 100% silent. If you make it
467 angry again, you will be punished.
469 2006-10-21 Havoc Pennington <hp@redhat.com>
471 * More documentation - all public API now documented according to
474 2006-10-21 Havoc Pennington <hp@redhat.com>
476 * Document a bunch of undocumented stuff
478 2006-10-21 Havoc Pennington <hp@redhat.com>
480 * Clean up Doxygen group markers for public API so Doxygen finds
481 everything (not comprehensively fixed for private API).
482 Means all remaining Doxygen warnings are just about missing docs
483 and thus pretty simple to resolve.
485 2006-10-21 Havoc Pennington <hp@redhat.com>
487 * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
489 * dbus/dbus-message.h: mark dbus_message_iter_get_array_len()
490 as DBUS_GNUC_DEPRECATED
492 2006-10-21 Havoc Pennington <hp@redhat.com>
494 * Move all private API into the private Doxygen group sections of
495 the files, so they don't show up in the public API docs
497 2006-10-21 Havoc Pennington <hp@redhat.com>
499 * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around
500 dbus_message_iter_get_array_len().
502 * throughout: documentation improvements.
504 2006-10-20 Havoc Pennington <hp@redhat.com>
506 * doc/TODO: remove the int64 thing from 1.0 since it doesn't
507 matter, and the message-loader-breaker thing since nobody is going
508 to do it. Add an item to 1.0 about supporting recursive locks
509 in dbus_threads_init_default() though, since it should be easy.
511 * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
512 Fix this in the !dispatch case to avoid busy-looping after
515 * More misc docs improvements
517 2006-10-19 Havoc Pennington <hp@redhat.com>
519 * more Doxygen-related fixes (lots of moving things from the
520 public to internal section in dbus-connection.c)
522 2006-10-19 Havoc Pennington <hp@redhat.com>
524 * Fix a pile of Doxygen warnings and missing docs
526 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
528 * bus/dir-watch-default.c, bus/dir-watch-dnotify.c,
529 bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext
530 instead of a void *. kqueue uses this to get the context's loop
531 while the other modules ignore the parameter. This allows us to
532 avoid platform conditionals
534 * bus/bus.c (process_config_postinit): Pass in the context to the
537 2006-10-19 John (J5) Palmieri <johnp@redhat.com>
539 * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
540 when starting the system bus
542 2006-10-18 John (J5) Palmieri <johnp@redhat.com>
544 * configure.in: More fixups for cross compile (Patch from
545 Marco Pracucci <development at pracucci dot com>)
547 2006-10-17 Havoc Pennington <hp@redhat.com>
549 * tools/dbus-send.c (main): don't close shared connection, fix
552 2006-10-17 Havoc Pennington <hp@redhat.com>
554 * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
556 * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
557 since realistically it doesn't look like we'll be changing it
560 2006-10-17 Havoc Pennington <hp@redhat.com>
562 * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
563 be used for return_if_fail type warnings; prefixes the pid, and
566 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
568 * configure.in: Released 1.0 RC 2(0.94)
569 Add check for -fPIC and enable it if available
571 2006-10-14 John (J5) Palmieri <johnp@redhat.com>
573 * doc/TODO: Remove the check TODO item
575 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
577 * dbus-transport-socket.c (exchange_credentials):
578 Print out more detailed errors if reading or sending
579 credentials fail (Patch from Julio M. Merino Vidal
580 <jmmv at NetBSD dot org>)
582 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
584 * configure.in: when checking for posix getpwnam_r assume true
587 2006-10-13 John (J5) Palmieri <johnp@redhat.com>
589 * configure.in: Check for gethostbyname first before we check for it
590 in libnsl. On gnu systems it is implemeneted
592 2006-10-13 Havoc Pennington <hp@redhat.com>
594 * dbus/dbus-connection.c
595 (dbus_connection_send_with_reply_and_block): fix to handle closed
596 connections, from Tambet Ingo bug #8631
598 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
600 * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
602 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
604 * test/name-test/Makefile.am: don't link against both libdbus and
607 2006-10-11 John (J5) Palmieri <johnp@redhat.com>
609 * configure.in: check for dirfd even if it is a macro
610 (Patch from Timothy Redaelli <drizzt at gufi dot org>)
612 2006-10-08 John (J5) Palmieri <johnp@redhat.com>
614 * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
615 avoid using dirfd on systems that don't have dirfd
616 (Patch by Brian Cameron <brian dot cameron at sun dot com>)
618 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
620 * dbus/dbus-sysdeps.c (_dbus_abort): Remove from
621 #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
623 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
624 #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
625 macro because _dbus_abort calls it
627 * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
630 2006-10-02 John (J5) Palmieir <johnp@redhat.com>
632 * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
633 MAXNAMELEN for Mac OSX. (Patch from Jonas B <sanoix at gmail dot com>)
635 2006-10-02 Thiago Macieira <thiago@kde.org>
637 * tools/dbus-launch.c (main): make it complain and abort
638 execution in case an unknown option is given. Also, process
639 the '--' argument as the end of arguments.
641 2006-10-01 Havoc Pennington <hp@redhat.com>
643 * tools/dbus-launch.c (print_variables): if no syntax is given,
644 don't print something that's sort-of-half-sh-syntax, just print
645 a plain key-value pairs thing.
647 * tools/dbus-launch-x11.c: use machine ID rather than hostname for
648 the local machine representation (but still have the hostname in
649 the display). Remove the hostname from the display if it is
650 localhost. Change session files to be named
651 ~/.dbus/session-bus/machine-display. Change X atoms to be
652 underscore-prefixed so nobody whines about ICCCM compliance.
653 Otherwise name them the same as the env variables.
654 Change session file format to include key-value pairs and an
655 explanatory comment. Keys are the same as the env variables.
656 (set_address_in_x11): X property format can't depend on
657 sizeof(pid_t) on a particular machine, fix to always be 32 bits
659 * tools/dbus-launch.c: make --autolaunch take a machine id
660 argument. If --autolaunch is used with a program to run, complain
661 for now (but add a FIXME). Also, don't look for existing bus if
662 there's a program to run (but add a FIXME).
664 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
665 machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
666 just to get this, and avoids duplicating uuid-reading code).
668 * tools/dbus-launch.1: clarify various things
670 2006-10-01 Havoc Pennington <hp@redhat.com>
672 * test/test-service.c (path_message_func): remove broken extra
673 unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
675 * test/test-shell-service.c (path_message_func): same fix
677 * dbus/dbus-connection.c
678 (_dbus_connection_get_dispatch_status_unlocked): break up the
679 function a little for clarity and fix the notification of
680 dbus-bus.c to not require dispatch to be complete
682 * dbus/dbus-connection.c (dbus_connection_unref): improve the
683 warning when you try to finalize an open connection.
685 2006-10-01 Havoc Pennington <hp@redhat.com>
688 (internal_bus_get): only weak ref the connection; this means
689 _dbus_bus_notify_shared_connection_disconnected_unlocked can be
690 called safely in any context
691 (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
694 * dbus/dbus-connection.c
695 (_dbus_connection_get_dispatch_status_unlocked): move
696 _dbus_bus_notify_shared_connection_disconnected_unlocked here
697 when queuing Disconnected instead of when the Disconnected message
698 arrives, so dbus_bus_get() won't return closed connections.
700 2006-10-01 Havoc Pennington <hp@redhat.com>
702 * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref):
703 Add a hack to make DBusNewConnectionFunction work right.
705 * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
706 the hack here. Also, fix the todo about refcount leak.
708 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
709 and use the hack here
711 * dbus/dbus-connection.c: Kill the "shared" flag vs. the
712 "shareable" flag; this was completely broken, since it meant
713 dbus_connection_open() returned a connection of unknown
714 shared-ness. Now, we always hold a ref on anything opened
717 Move the call to notify dbus-bus.c into
718 connection_forget_shared_unlocked, so libdbus consistently forgets
719 all its knowledge of a connection at once. This exposed numerous
720 places where things were totally broken if we dropped a ref inside
721 get_dispatch_status_unlocked where
722 connection_forget_shared_unlocked was previously, so move
723 connection_forget_shared_unlocked into
724 _dbus_connection_update_dispatch_status_and_unlock. Also move the
725 exit_on_disconnect here.
727 (shared_connections_shutdown): this assumed weak refs to the
728 shared connections; since we have strong refs now, the assertion
729 was failing and stuff was left in the hash. Fix it to close
730 still-open shared connections.
732 * bus/dispatch.c: fixup to use dbus_connection_open_private on the
733 debug pipe connections
735 * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
736 dbus-bus.c if the closed connection is in fact shared
737 (_dbus_connection_close_possibly_shared): rename from
738 _dbus_connection_close_internal
739 (dbus_connection_close, dbus_connection_open,
740 dbus_connection_open_private): Improve docs to explain the deal
741 with when you should close or unref or both
744 (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
745 from _dbus_bus_check_connection_and_unref_unlocked and modify to
746 loop over all connections
748 * test/test-utils.c (test_connection_shutdown): don't try to close
751 * test/name-test/test-threads-init.c (main): fix warnings in here
753 * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
754 env variable to cause blocking waiting for gdb; drop
755 DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
758 * configure.in: add -export-dynamic to libtool flags if assertions enabled
759 so _dbus_print_backtrace works.
761 * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
762 instead of _dbus_verbose to print the backtrace, and diagnose lack
763 of -rdynamic/-export-dynamic
765 2006-09-30 Havoc Pennington <hp@redhat.com>
767 * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get)
768 (internal_bus_get): fix screwy code formatting. whoever committed
769 that was not paying attention!
771 2006-09-30 Havoc Pennington <hp@redhat.com>
773 * configure.in (LT_CURRENT, LT_AGE): increment current and age to
774 reflect addition of interfaces.
776 * doc/dbus-specification.xml: describe a new
777 org.freedesktop.DBus.Peer.GetMachineId method
779 * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
780 (_dbus_string_skip_white, _dbus_string_skip_blank): use new
781 DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
783 (_dbus_string_chop_white): new function
785 * bus/connection.c (bus_connections_setup_connection): call
786 dbus_connection_set_route_peer_messages.
788 * dbus/dbus-connection.c
789 (_dbus_connection_peer_filter_unlocked_no_update): modify to
790 support a GetMachineId method.
792 Also, support a new flag to let the bus pass peer methods through
793 to apps on the bus, which can be set with
794 dbus_connection_set_route_peer_messages.
796 Finally, handle and return an error for anything unknown on the
797 Peer interface, which will allow us to extend the Peer interface
798 in the future without fear that we're now intercepting something
799 apps were wanting to see.
801 * tools/dbus-uuidgen.c: a thin wrapper around the functions in
804 * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
805 binary here, since most of the code is already in libdbus
807 * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
808 uuid from the system config file
810 * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode)
811 (_dbus_read_uuid_file_without_creating)
812 (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
813 uuid-related functions, partly factored out from dbus-server.c
815 * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
816 DBUS_ERROR_FILE_EXISTS instead of EEXIST
818 * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
820 * tools/dbus-cleanup-sockets.1: explain what the point of this
823 * autogen.sh (run_configure): add --config-cache to default
826 * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
827 error set/clear assertions when DBUS_DISABLE_CHECKS is defined
829 * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
830 don't try to save address, fixes crash in make check
832 2006-09-30 Thiago Macieira <thiago@kde.org>
834 * configure.in: add DBUS_BINDIR as a #define to C source code.
836 * tools/dbus-launch.c
837 * tools/dbus-launch.h
838 * tools/dbus-launch-x11.c:
839 * tools/dbus-launch.1: Add the --autolaunch option to
840 dbus-launch, which makes it scan for an existing session
841 started with --autolaunch. With that option, it also creates
842 an X11 window and saves the bus address and PID to it.
844 * dbus/dbus-sysdeps.h:
845 * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
846 a function that runs "dbus-launch --autolaunch" to retrieve
847 the running D-Bus session address (or start one if none was running)
849 * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
850 address protocol, which tries to get the running session from
854 * dbus/dbus-internals.h: Make "autolaunch:" be the default
855 D-Bus session bus address.
857 * dbus/dbus-connection.c: Fix horrible typo in error message.
859 2006-09-18 John (J5) Palmieri <johnp@redhat.com>
861 * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@
863 2006-09-17 Havoc Pennington <hp@redhat.com>
865 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
866 fix so that if unix_user_function is set on windows, we still
867 do the default check that the auth identity matches the bus identity
869 2006-09-16 Havoc Pennington <hp@redhat.com>
871 * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
872 to _dbus_transport_open_platform_specific,
873 _dbus_transport_open_socket,
874 and _dbus_transport_open_debug_pipe
876 * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
878 2006-09-16 Havoc Pennington <hp@redhat.com>
880 Attempt auditing public API to remove all cases where a Unix
881 function returns weird emulated goo to Windows. This probably
882 breaks the bus daemon on Windows, to fix it again we may
883 need to stop processing unix-specific config options on Windows,
884 and may need to add Windows-specific public API or config options.
886 * configure.in (LT_CURRENT, LT_AGE): increment current and age,
887 to reflect added interfaces; should not break soname.
889 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
890 not invoke unix user function on Windows. Kind of a hacky fix, but
891 we don't want a "unix uid" leaking out on Windows.
893 * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
894 to get the socket fd on Windows or UNIX
895 (dbus_connection_get_unix_fd): make this always fail on Windows
897 2006-09-16 Havoc Pennington <hp@redhat.com>
899 * dbus/dbus-server.c (dbus_server_listen): change how this works
900 to be able to delegate to a set of handlers that can succeed,
901 fail, or choose not to handle. Allows us to have
902 dbus_server_listen_platform_specific.
904 * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
905 factor out the tcp socket stuff to be used on windows, leaving
906 unix domain socket only in dbus-socket-unix.c
908 * dbus/dbus-transport-socket.c
909 (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
910 stuff to be used on windows, leaving unix domain socket only
911 in dbus-transport-unix.c
913 * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
914 temporary hack to be sure this fails on windows
915 (dbus_connection_get_unix_process_id): ditto
917 2006-09-16 Havoc Pennington <hp@redhat.com>
919 * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket)
920 (_dbus_open_unix_socket, _dbus_open_socket): change API for
921 _dbus_open_socket so the domain/type/protocol from system headers
922 are not required. This is kind of pointless though unless we move
923 part of _dbus_connect_tcp_socket into sysdeps.c instead of
924 sysdeps-unix.c, which would mean adding a wrapper around
926 Also, add DBusError to the socket-opening functions so they
927 don't require use of errno.
929 2006-09-16 Havoc Pennington <hp@redhat.com>
931 * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
932 dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
934 * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter
935 Kümmel bug #8249 to make the sysdeps.h read/write/open/close
936 functions specifically for sockets only, and move generic
937 read/write/open/close into unix-specific code.
939 2006-09-14 Havoc Pennington <hp@redhat.com>
941 * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
942 complaint about accessing revents when poll returns 0, from Julian Seward.
944 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
946 * Released 1.0 RC 1 (0.93)
948 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
950 * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
951 use _dbus_close instead of close
953 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
955 * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
956 credentials. Fixes "external" authentication under e.g. NetBSD
957 which does not support any other socket credentials mechanism.
958 (Patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
960 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
962 * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
963 dbus_threads_init and be used by the dbus mutex functions to
966 * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
968 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
970 * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
971 use threadsafe readdir_r instead of readdir
973 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
975 * dbus-threads.c (dbus_threads_init_default): New method for
976 initializing the internal thread implementation (Patch from
977 Alexander Larsson <alexl at redhat dot com>)
979 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
981 * remove a bunch of todo items from the 1.0 list
983 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
985 * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
988 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
990 * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
991 complex debugging code
993 * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
994 between the test suite ifdefs
995 (_dbus_verbose_bytes): return if verbosity is not enabled
997 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
999 * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1002 2006-09-10 Havoc Pennington <hp@redhat.com>
1004 patch mostly by Peter Kümmel, bug #8211
1006 * dbus/dbus-sysdeps-unix.c: new file, which splits out
1007 unix-specific stuff in dbus-sysdeps.c
1009 * dbus/dbus-sysdeps.c: don't include any UNIX-only headers,
1010 and move unix-specific stuff to dbus-sysdeps-unix.c
1012 * configure.in: check HAVE_ERRNO_H
1014 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
1016 * bus/test-main.c (main): Initialize threading during tests
1018 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1019 Unlock connection on error
1020 (generate_local_error_message): static method for generating
1021 an error message when we don't have a message to reply to
1022 (_dbus_connection_block_pending_call): Send a disconnect error
1023 instead of just a timeout (NULL) when the bus gets disconnected
1024 while blocking for a reply.
1026 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
1028 * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1029 filters (Patch from Kimmo Hämäläinen
1030 <kimmo dot hamalainen at nokia dot com>)
1032 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
1034 * dbus/dbus-connection-internal.h: Add prototype for
1035 _dbus_connection_test_get_locks to remove warning
1037 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
1039 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1040 close child_err_report_pipe[WRITE_END] on exec (Patch from
1041 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1043 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
1045 * Clean up close calls to use _dbus_close (Patch from
1046 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1048 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
1051 - Remove pending call locking todo item
1052 - dbus_connection_open now holds hard ref. Remove todo item
1053 - do proper locking on _dbus_bus_check_connection_and_unref
1054 and handle DBUS_BUS_STARTER. Remove todo item
1055 - Warn on closing of a shared connection. Remove todo item
1057 * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1058 dbus/dbus-connection.c: Use the dbus_connection_close_internal
1059 so we don't get the warning when closing shared connections
1061 * test/test-service.c, test/test-shell-service.c: Applications
1062 don't close shared connections themselves so we unref instead of
1065 * test/test-utils.c (test_connection_shutdown): Close the connection
1067 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1068 _dbus_bus_check_connection_and_unref_unlocked since we only call this
1069 method on a locked connection.
1070 Make sure we call _dbus_connection_unref_unlocked instead of
1071 dbus_connection_unref also.
1072 Handle DBUS_BUS_STARTER correctly
1074 * dbus/dbus-connection.c (connection_record_shared_unlocked):
1075 Mark as shared and hard ref the connection
1076 (connection_forget_shared_unlocked): Remove the hard ref from the
1078 (_dbus_connection_close_internal_and_unlock): New internal function
1079 which takes a locked connection and unlocks it after closing it
1080 (_dbus_connection_close_internal): New internal function which acts
1081 like the origonal dbus_connection_close method by grabbing a connection
1082 lock and calling _dbus_connection_close_internal_and_unlock
1083 (dbus_connection_close): Public close method, warns when the app
1084 trys to close a shared connection
1086 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
1089 (bus_driver_generate_introspect_string): New method for populating
1090 a DBusString with the introspect data
1091 (bus_driver_handle_introspect): Move introspect generation code to
1092 bus_driver_generate_introspect_string
1095 (introspect): New function which prints out the intropect data and
1097 (main): Add a --introspect switch
1099 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
1101 * doc/TODO: Removed dtd publishing item.
1102 It seems the dtd has already been added at
1103 http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1105 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
1107 * doc/TODO, various source files: Audited todo's and FIXME's and
1108 prepended the ones we should be looking at with 1.0. Those
1109 prepended with 1.0? need clerification or might not be needed
1112 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
1114 * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1115 NULL in the public API (Patch from Kimmo Hämäläinen
1116 <kimmo dot hamalainen at nokia dot com>)
1118 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
1120 * configure.in: Fix for OS-X compile time endian issues (patch from
1121 Benjamin Reed <ranger at befunk dot com>)
1123 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
1125 * configure.in: Check for no-common compiler flag (OS-X fix from
1126 Benjamin Reed <ranger at befunk dot com>)
1128 2006-09-01 John (J5) Palmieri <johnp@redhat.com>
1130 * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1131 <fcrozat at mandriva dot com>)
1133 2006-08-29 Havoc Pennington <hp@redhat.com>
1135 * test/test-service.c (path_message_func): fix lack of return value
1137 * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1138 formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1139 any more sense than on anything else in this file.
1140 (_dbus_get_tmpdir): add const to return value, and keep the
1141 results of the various getenv around in a static variable.
1143 2006-08-29 Havoc Pennington <hp@redhat.com>
1145 * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1146 from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1148 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1150 * test/Makefile.am: change find to use syntax that works with non
1151 gnu versions of find
1153 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1155 * dbus/dbus-transport.c: fix invalid deref when checking if
1156 a vtable method exists (Patch from Christian Ehrlicher
1157 <ch dot ehrlicher at gmx dot de>)
1159 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1161 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
1162 test/name-test/Makefile.am: Fixed some issues with getting get dbus
1163 to build with builddir != srcdir (Taken from a patch by Bernard Leak
1164 <bernard at brenda-arkle dot demon dot co dot uk>)
1166 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1168 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1171 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
1173 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1174 it works on any system providing this interface, not only FreeBSD.
1175 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
1177 2006-08-20 Havoc Pennington <hp@redhat.com>
1179 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1182 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1186 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1188 * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1189 to reflect the init late change
1191 * bus/bus.c (bus_context_new): Check user before we fork so we can
1192 print out an error message a user will be able to see
1194 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1196 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
1198 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1199 Add two more global locks for use on windows platforms. These are
1200 unused on non-windows platforms but are not ifdefed out to avoid
1201 potential bugs (i.e. the few bytes lost does not warrent the extra
1202 maintanence and complexity that having seperate sets of locks would
1205 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
1207 * bus/services.c (bus_registry_acquire_service): Return an error
1208 when an application tries to register the org.freedesktop.DBus Bus Name
1210 * bus/services.c (bus_registry_release_service): Return an error
1211 when an application tries to release the org.freedesktop.DBus Bus Name
1213 2006-08-17 Alp Toker <alp@atoker.com>
1215 * doc/dbus-specification.xml: Fix some minor typos.
1217 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
1219 * configure.in: use $with_init_scripts instead of $operating_system
1220 to determine where to store the pid since the init scripts manipulate
1221 the pid file (patch from Marcelo Ricardo Leitner
1222 <marcelo dot leitner at terra dot com dot br>.
1224 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
1226 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1227 static DBusList *uninitialized_condvar_list to support new late
1228 initialization threading model. In this model threads can be initialized
1229 even after the D-Bus API has been used but still needs to be initialized
1230 before the second thread has been started. Mutexes and condvar addresses
1231 are stored in the two static lists and are replaced with actuall locks
1232 when threads are initalized.
1233 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1234 the location into the static list
1235 (_dbus_mutex_free_at_location): New method for removing a mutex location
1236 from the static list and freeing the mutex
1237 (_dbus_condvar_new_at_location): New method for creating a conditional
1238 variable and placing the location into the static list
1239 (_dbus_condvar_free_at_location): New method for removing a conditional
1240 variable location from the static list and freeing the conditional variable
1241 (init_uninitialized_locks): Atomic method which goes through the static
1242 lists of mutex and condvar location and updates them with actuall locks
1243 (init_global_locks): changed to init_locks
1245 * dbus/dbus-connection.c:
1246 (_dbus_connection_test_get_locks): New method for tests to check connections
1247 (_dbus_connection_new_for_transport): Use the new at_location mutex and
1249 (dbus_connection_allocate_data_slot): Pass in the global lock address
1250 to _dbus_data_slot_allocator_alloc
1252 * dbus/dbus-dataslot.c:
1253 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1254 instead of the mutex itself
1256 * dbus/dbus-message.c:
1257 (dbus_message_allocate_data_slot): Pass in the global lock address
1258 to _dbus_data_slot_allocator_alloc
1260 * dbus/dbus-pending-call.c:
1261 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1262 to _dbus_data_slot_allocator_alloc
1264 * dbus/dbus-server.c:
1265 (_dbus_server_init_base): Use the new at_location mutex API
1266 (dbus_server_allocate_data_slot): Pass in the global lock address
1267 to _dbus_data_slot_allocator_alloc
1269 * test/name-test/test-threads-init.c: New test case for late thread
1272 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1274 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1275 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1276 causes compile problems when asserts are turned off
1277 Keeping _dbus_warn for printing out the message so even if
1278 asserts are turned off the user gets the messages that something is
1281 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1283 Patches by Kjartan Maraas <kmaraas at gnome dot org>
1285 * bus/services.c (bus_service_list_queued_owners):
1286 Add a pointer cast to fix compiler warning
1288 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1289 return a NULL instead of FALSE since the return type
1290 is not expecting a boolean
1292 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1293 Remove unused variable
1295 * dbus/dbus-marshal-recursive-util.c (node_new):
1296 return a NULL instead of FALSE since the return type
1297 is not expecting a boolean
1299 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1300 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1301 because we are expecting a pointer not a boolean
1303 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
1304 add void as the parameter so some compilers
1307 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1308 _dbus_transport_new_for_tcp_socket):
1309 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1310 because we are expecting a pointer not a boolean
1312 * test/shell-test.c (test_command_line):
1313 cast the second argument to _dbus_list_append to avoid compiler
1316 * test/test-names.c (main): remove unused variable
1318 * test/test-service.c (check_hello_from_self_reply):
1319 Initialize echo_message and echo_reply to NULL
1321 * test/test-shell-service.c (handle_echo):
1322 Remove unused variable and cast the third parameter passed to
1323 dbus_connection_get_object_path_data to avoid compiler warrnings
1325 * test/name-test/test-names.c (clear_message_queue):
1326 Remove unused function
1328 * test/name-test/test-pending-call-dispatch.c:
1329 Fix format string in printf
1332 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
1335 * test/name-test/test-names.c:
1336 Remove test method dbus_bus_connection_get_unique_name because
1337 we already have public method dbus_bus_get_unique_name that
1338 does the exact same thing
1340 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1342 * dbus/dbus-signature.c:
1343 fix typos in Julio's previous patch which cause make check to fail
1345 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1347 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
1348 In any case it was wrong since this is a test checking to see if
1349 address parsing is correct. There was no need to get the true
1352 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1354 * dbus/dbus-macros.h: Revert the addition of stddef.h
1355 as we should not be adding it to library headers
1357 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1359 * dbus/dbus-signature.c:
1360 Fix the unit tests so that they work if assertions are not enabled.
1361 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
1363 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1365 * tools/run-with-tmp-session-bus.sh:
1366 * test/name-test/run-test.sh:
1367 Remove bashisms (patch from Julio M. Merino Vidal
1368 <jmmv at NetBSD dot org>)
1370 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1372 * configure.in: add a version (>= 2.6.0) check for libxml2
1374 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1376 * configure.in: make sure the compiler supports -Wfloat-equal
1378 * bus/dir-watch-dnotify.c: move functional code after
1379 variable declerations (C99 fix) (patches from Jens Granseuer
1380 <jensgr at gmx dot net>
1382 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1384 * dbus/dbus-macros.h:
1385 add #include <stddef.h> so that Sun compilers don't complain about
1388 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
1390 * dbus/dbus-sysdeps.c:
1391 * dbus/dbus-address.c:
1393 * test/shell-test.c:
1394 don't hardcode tmp directory (patch from Dave Meikle
1395 <dmk at davemeikle dot co dot uk>)
1397 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
1399 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1400 Change an assert to a detailed warning and abort.
1401 When allocator->lock != mutex it indicates that the user has failed
1402 to initalize threads before using the D-Bus library. This warning
1403 helps the user identify the issue and fix their app.
1405 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1407 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1408 with cleanups of bugs found from Coverity reports:
1410 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1411 close the file on error to avoid a leak
1413 * bus/expirelist.c (bus_expire_list_test):
1414 Check for NULL on dbus_new0
1416 * bus/activation.c (update_directory):
1419 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1422 * bus/bus.c (process_config_every_time):
1425 * bus/desktop-file.c (parse_key_value):
1428 * bus/selinux.c (bus_selinux_id_table_insert):
1431 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1433 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1436 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1438 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1441 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1443 * Doxyfile.in: fix the INPUT line so we can generate docs
1444 when sourcedir != builddir (patch from Cygwin Ports maintainer
1445 <yselkowitz at users dot sourceforge dot net>
1447 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1449 * dbus/dbus-sysdeps.h:
1450 * dbus/dbus-sysdeps.c:
1451 * dbus/dbus-string.c:
1452 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1453 GLib's function which does the same thing
1457 * bus/dir-watch-default.c:
1458 * bus/dir-watch-dnotify.c:
1459 * bus/dir-watch-kqueue.c:
1460 Add kqueue directory watching for freebsd and split the directory
1461 watching code into seperate files per method/arch
1462 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1464 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1467 * tools/Makefile.am:
1468 * tools/dbus-launch.c:
1470 allow --with-dbus-daemondir switch to be used to make the
1471 daemon install to a seperate bindir like /usr/libexec
1472 (patch from Brian Cameron <brian dot cameron at sun dot com)
1474 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1476 * bus/Makefile.am (install-data-hook): removed the slash after
1477 $(DESTDIR) so we don't get the double slash which does not work
1478 in windows (patch from Andras Porjesz
1479 <andras dot porjesz at siemens dot com>)
1481 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1483 * dbus/dbus-sysdeps.h:
1484 * dbus/dbus-sysdeps.c:
1485 add _dbus_printf_length (patch from Peter Kümmel
1486 <syntheticpp at gmx dot net>)
1488 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1490 * dbus/dbus-internals.c: unistd.h is not used
1491 (_dbus_verbose_real): only enable verbose printing
1492 if DBUS_VERBOSE environment var is set to '1'
1493 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1495 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
1497 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1498 so we still compile on older gcc (patch from Frederic Peters
1499 <fpeters at 0d dot be>
1501 2006-08-04 Havoc Pennington <hp@redhat.com>
1503 * configure.in: add -Wdeclaration-after-statement
1505 * dbus/dbus-connection.c: change all the pending call stuff to
1506 reflect the fact that pending call operations use the connection
1509 * dbus/dbus-pending-call.c: add locking here
1511 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1512 field const consistent with how message field is done
1514 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1518 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
1520 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
1521 <in7y118 at public.uni-hamburg dot de> - fix invalid
1522 read/write reported by valgrind
1524 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
1528 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
1530 * dbus/dbus-connection.c:
1531 (_dbus_connection_attach_pending_call_unlocked):
1532 (connection_timeout_and_complete_all_pending_calls_unlocked):
1533 Make sure we set timeout_added on pending calls to FALSE when
1534 we remove the timeout from the connection
1536 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
1538 * Removed some extra bindings stuff lingering around (thanks timo)
1539 * dbus-pendingcall.c (_dbus_pending_call_new):
1540 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1541 when we tried to take a lock on an already locked connection
1543 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1547 2006-07-17 Havoc Pennington <hp@redhat.com>
1549 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1550 ints, reported by Owen Taylor
1552 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1557 * dbus/dbus-marshal-validate.c:
1558 Removed TODO items which were fixed or are no longer relevent
1560 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
1562 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1563 Remove stray files from the stripped bindings
1565 2006-07-16 Havoc Pennington <hp@redhat.com>
1567 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1568 Improve the error message on reply timeout
1570 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
1572 * Remove all bindings
1574 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
1576 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1577 and set pending_reply out arg to NULL is connection is disconnected
1578 (connection_timeout_and_complete_all_pending_calls_unlocked): New
1579 static method for cleaning up pending calls on disconnect
1580 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
1581 calls queued timeouts on disconnect
1583 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1586 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
1588 * bus/activation.[ch] (bus_activation_list_services): new function to
1589 get the list of services that can be activated
1591 * bus/dispatch.c: test coverage for the new bus method
1592 ListActivatableNames
1594 * bus/driver.c: new bus method ListActivatableNames to get the list of
1595 services that can be activated
1597 * doc/dbus-specification.xml: ListActivatableNames method documentation
1599 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1600 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1603 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1604 * dbus/dbus-message-factory.c:
1605 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1607 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
1608 * dbus/dbus-connection-internal.h:
1609 * dbus/dbus-connection.c:
1610 * file dbus/dbus-pending-call.c:
1611 * dbus/dbus-pending-call.h:
1612 Make DBusPendingCall an opaque type even to D-Bus internals
1614 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1616 * dbus/dbus-connection.h: remove connection_disconnect and replace with
1619 * dbus/dbus-connection.c: include dbus-bus.h
1620 (_dbus_connection_read_write_dispatch): make static
1622 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
1624 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1626 (dbus_connection_dispatch): On disconnect unref any shared connections
1628 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1629 for cleaning up shared connections on disconnect
1630 (internal_bus_get): get a hard refrence to shared connections when
1633 * doc/TODO: Remove items which are no longer relevent or have been fixed
1634 Split 1.0 todo items with a 0.90 freeze todo list
1636 2006-06-14 Ross Burton <ross@openedhand.com>
1638 * glib/dbus-gobject.c:
1639 Free a leaking GArray (surely not!) in dbus_g_method_return.
1641 2006-06-14 Ross Burton <ross@openedhand.com>
1643 * tools/Makefile.am:
1644 * tools/dbus-monitor.c:
1645 Don't use the GLib bindings in dbus-monitor (patch from Ralf
1648 2006-06-14 Ross Burton <ross@openedhand.com>
1650 * tools/dbus-print-message.c:
1651 Also print the object path when outputting signals or method calls.
1653 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
1655 * qt/src/Makefile.am: install the qdbus.h header.
1656 This allows people to actually use the installed code.
1658 2006-06-12 Ross Burton <ross@openedhand.com>
1660 * glib/dbus-gproxy.c:
1661 Don't leak a GArray when firing signals (thank Rob Taylor for review).
1663 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1667 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1669 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1670 break pedantic builds. Closes bug 6043 (patch approved by
1671 Havoc back in February).
1673 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
1675 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1676 that took a QDBusMessage parameter.
1677 * qt/src/qdbusbus.h: Add a default flag for RequestName.
1678 * qt/tools/dbus.cpp: Don't use automatic call because we might
1679 be calling an async method: request a reply.
1681 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1683 * test/qt/*: Update the testcases, including testing the new
1684 functionality of sending null QByteArray and QString over the
1685 bus. Add new headertest test and restore the old
1686 qdbusxmlparser test.
1688 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
1690 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1691 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1693 * qt/examples/Makefile.am:
1694 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1697 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1698 QByteArray() (nulls) over the bus.
1699 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1700 the one that has the signature suffix stripped.
1701 * qt/src/qdbusreply.h: Make some methods const.
1703 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
1705 Patch from Timo Hoenig <thoenig@suse.de>.
1707 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
1708 required during build to EXTRA_DIST.
1709 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1710 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1711 * configure.in: Fix "make dist", take care that the Makefile for
1712 qt/dbus is being generated.
1714 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1716 * bus/bus.c: Fix eavesdropping on method calls
1718 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
1721 * dbus/dbus-userdb-util.c:
1722 Add Solaris console owner patch from Artem Kachitchkine
1724 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
1727 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1728 reorganisation. Thanks to Timo Hoenig for pointing this out.
1730 2006-06-06 Robert McQueen <robot101@debian.org>
1732 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1733 call to dbus_g_type_get_struct.
1735 2006-06-06 Robert McQueen <robot101@debian.org>
1737 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1738 pointers were put into a GPtrArray-based specialised collection, and
1739 then freed along with the array. GValues which you add into
1740 collections or maps which have the NOCOPY flag set are assumed to not
1741 belong to the caller, so rather than the existing pointer-stealing
1742 semantics, they are copied instead. Given that the main consumers of
1743 this abstraction are the bindings themselves, I don't think this is
1744 too bad, but others should watch their choice of take vs set_static.
1746 2006-06-06 Robert McQueen <robot101@debian.org>
1748 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1749 of g_slist_prepend not being used. Fixed copying of slist-based
1750 specialised collections, then wrote a test case and found that it was
1751 all broken. Went on to fix iterating and appending too. Good thing
1752 nobody uses this code yet.
1754 2006-06-06 Robert McQueen <robot101@debian.org>
1756 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1757 the iterators use gvalue_take_ptrarray_value (the GValues themselves
1758 are discarded without unsetting, so it makes no difference whether
1759 we take or set_static). Remove cases for G_TYPE_POINTER because
1760 there really is nothing useful we can do with them in our
1761 specialised types - we *need* boxed copy/free functions at the very
1764 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
1766 * qt/dbus: Add directory. I had forgotten to add this
1767 yesterday after the move...
1769 * qt/examples/Makefile.am:
1770 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1772 * qt/tools/Makefile.am:
1773 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1774 Added feature to get and set properties.
1775 Added validation of service, object path and interface names.
1777 * qt/tools/dbusidl2cpp.cpp: Two new features:
1778 1) Allow specifying both the header and the source file names,
1779 by separating them with a colon.
1780 2) Don't write an interface output if the -p switch wasn't
1781 given, but the -a was.
1783 * qt/src/*: Fix usage of Iterators and ConstIterators.
1784 Fix shadowing of variables by other variables (-Wshadow).
1785 Fix keyword-cleanliness in headers.
1786 Fix ASCII-cast (QLatin1String, QLatin1Char).
1787 Fix validation of member names.
1788 Add extra checking of introspection data during XML parsing.
1791 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1794 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1795 qt/dbus/qdbus.h now.
1797 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1799 * configure.in: Make --disable-qt actually do
1800 something. Patch inspired by Zack Rusin.
1802 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
1804 * qt/: Update to Subversion r548032.
1805 This includes a big reorganisation of the files inside the
1808 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
1810 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1812 "Failed to connect to socket <host>:<port> <error>" instead of
1813 "Failed to connect to socket <host>: <error>:<port>"
1815 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1816 for a tcp transport.
1818 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
1820 * qt/*: Update the QtDBus bindings up to revision 546310 in
1822 This adds the dbuscpp2xml tool, that parses a C++ header and
1823 outputs a D-BUS Introspection XML.
1825 2006-05-21 Havoc Pennington <hp@redhat.com>
1827 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1828 is not NULL when it shouldn't be. Also a couple of possible fixes
1829 for #4637 though I don't understand why the bug happens, to be
1830 honest... also the object constructor has an assert name != NULL
1831 and the name is only currently NULL for peer-to-peer proxies that
1832 I don't think anyone uses? So it should be asserting.
1833 Anyway, for now at least see if we get an earlier assertion failure.
1835 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1836 apparently broken code to be sure the tests fail and someone
1839 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
1841 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1842 and arrays when they had a single element: has_next returns
1843 false, even before you read the element. So, instead, check
1846 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
1848 * qt/qdbusmessage.cpp:
1849 * qt/qdbustypehelper_p.h:
1850 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1851 the list is a const-reference
1853 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
1855 * Adding old doc patch that never got applied
1857 * dbus/bus.c (dbus_bus_add_match): Add documentation
1859 * doc/dbus-specification.xml: Add documentation for the match rules
1860 and the AddMatch and RemoveMatch methods
1862 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
1864 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1867 * qt/dbusidl2cpp.cpp:
1868 * qt/qdbusabstractadaptor.cpp:
1869 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1870 sibling of the QDBusAbstractAdaptor objects instead of the
1873 * qt/dbusidl2cpp.cpp:
1874 * qt/qdbusabstractinterface.cpp:
1875 * qt/qdbusabstractinterface.h:
1876 * qt/qdbusabstractinterface_p.h:
1877 * qt/qdbusinterface.cpp: Make properties in interfaces
1878 actually work. The code that was generated would not compile,
1879 due to moc calls to functions that did not exist. They now
1882 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
1886 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1887 Thanks to Brad Hards for providing the patch
1889 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1891 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1894 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1896 * qt/examples/dbus.cpp: Enhance error messages and use
1899 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1901 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1902 and disable the copy operators. (r533772, r534746)
1904 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1906 * qt/qdbusabstractinterface.cpp:
1907 * qt/qdbusabstractinterface.h: Change the default call mode to
1908 not use the event loop. Add convenience call() methods that
1909 take a CallMode parameter. (r534042)
1911 * qt/qdbusconnection.h: Change the default call mode to not
1912 use the event loop. (r534042)
1914 * qt/qdbusinterface.cpp:
1915 * qt/qdbusinterface.h: Add a method to tell us if the
1916 interface is valid (since we don't return a null pointer
1919 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1922 * qt/qdbusinternalfilters.cpp: Decouple the introspection
1923 function in two so taht we get the chance to introspect
1924 without having a QDBusMessage (r534102)
1927 * qt/qdbusconnection.cpp:
1928 * qt/qdbusconnection_p.h:
1929 * qt/qdbusintegrator.cpp: Keep a list of our own names to
1930 avoid a round-trip to the server when attempting to introspect
1931 one of our own objects. Also make sure the filter functions
1932 match the empty interface as well. (r534108)
1933 Don't keep the connection names. Instead, trust the unique
1934 connection name (r534111)
1935 Remove event loop usage (r534112)
1937 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
1939 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1942 2006-04-28 Robert McQueen <robot101@debian.org>
1944 * glib/dbus-gproxy.c: Fix properties so that they can be given in
1945 any order, making it easier for people who inherit from this
1948 2006-04-28 Robert McQueen <robot101@debian.org>
1950 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1951 of memory from within pointer arrays and lists. Fixes bug #6300.
1953 2006-04-28 Robert McQueen <robot101@debian.org>
1955 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1956 generating struct signatures. Fixes bug #6083.
1958 2006-04-28 Robert McQueen <robot101@debian.org>
1960 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1961 to qdbusconnection_p.moc.
1963 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1965 * README, INSTALL: Doc fixes
1966 Patch from Brad Hards <bradh at frogmouth.net>
1968 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1970 * qt/examples/dbus.cpp: Use the new merged-interface mode for
1971 the dynamic meta object. No need to guess which interface to
1974 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1976 * qt/qdbusconnection_p.h:
1977 * qt/qdbusmetaobject.cpp:
1978 * qt/qdbusmetaobject_p.h:
1979 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1980 for the dynamic meta object. No need to guess which
1982 * qt/qdbusabstractinterface_p.h:
1983 * qt/qdbusconnection.cpp:
1984 * qt/qdbusintegrator.cpp:
1985 * qt/qdbusinterface.cpp:
1986 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1987 Add a QDBusRef that looks and behaves like DCOPRef.
1989 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1991 * dbus/dbus-connection.c: Interfaces are optional in method
1992 calls, so don't give up if the interface parameter is NULL.
1993 Patch reviewed by Havoc Pennington.
1995 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1997 * qt/qdbusreply.h: Add default constructor and operator=
1999 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2000 in public headers (r532952)
2001 * qt/qdbusabstractinterface.cpp:
2002 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2003 make it the default (r532951)
2005 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
2007 * dbus/dbus-connection.c: Fix asserts
2008 Patch from Tim Moloney <t.moloney at verizon.net>
2010 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
2012 * mono/Connection.cs, mono/Message.cs: Check Target type
2013 Patch from Aaron Bockover (abockover at novell.com)
2015 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
2017 * INSTALL: fine-tune the requirements for the Qt4 binding.
2019 2006-04-16 Daniel P. Berrange <dan@berrange.com>
2021 * tools/dbus-print-message.c: Added support for printing of all
2022 remaining data types. Fixed logic for indentation of compound
2025 2006-04-15 Daniel P. Berrange <dan@berrange.com>
2027 * INSTALL: fill out content of file providing DBus specific
2028 build installations, followed by generic Auto* INSTALL file
2031 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
2033 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2034 Patch by Stefan Eilers. (r529537)
2036 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
2038 * qt/qdbusinternalfilters.cpp: Don't show the parent's
2041 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
2043 * qt/Makefile.am: fix the dependency for
2044 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2045 not in qdbusconnection.cpp.
2046 Thanks to Jakub Stachowski <stachowski@hypair.net> for
2049 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
2051 * qt/examples/listnames.cpp:
2052 * qt/examples/Makefile.am: Three ways to list the names on the
2055 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
2057 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2058 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2060 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
2062 Merge from Subversion:
2063 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2064 something that exists (r526315)
2065 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2066 slots/signals (r526316)
2067 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2068 also return an unknown-method error if the parameters don't
2069 match for org.freedesktop.DBus.Properties. (r526842)
2070 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2071 * qt/qdbusintegrator.cpp: Restore the proper order of
2072 delivery: don't make method returns be delivered on priority
2075 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
2077 * configure.in qt/Makefile.am: add qt/examples
2078 * qt/examples: Add QtDBus example programs:
2079 - hello: Hello, World
2080 - ping: Simple method-calling program
2081 - pong: Simple object-exporting program (not using adaptors)
2082 - complexping: Interactive method-calling program
2083 (also gets and sets properties).
2084 - complexpong: Sample program exporting methods, signals and
2085 properties, using adaptors.
2086 - dbus: Simple implementation of a generic method-calling
2087 program, similar to 'dbus-send', but with semantics
2089 - chat: Simplistic chat program, implemented using signals
2090 and the system bus. Looks like IRC.
2092 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
2094 * configure.in: Detect QtGui (necessary for one of the
2095 example programs). Note: this increases the minimum required
2096 version of Qt to 4.1.3.
2098 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
2100 * test/qt/*: Sync with KDE Subversion revision 523647.
2101 Update the testcases to the new API. Remove testcases for
2102 classes that are no longer public or have been removed.
2104 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
2107 * dbus/qdbus.h: Sync with KDE Subversion revision
2108 523647. Hopefully, this will be the last of the
2109 source-incompatible changes. Documentation has been improved;
2110 support for QList<basic-types> has been added; QDBusObject is
2111 gone; QDBus(Abstract)Interface is now a QObject with
2112 auto-generated meta-object; QDBusIntrospection is marked
2113 private, since QMetaObject can be used now; lots of bugfixes.
2115 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
2117 Patch from Milosz Derezynski <internalerror at gmail.com>
2120 Output the service directory in the configure summary
2123 Add session_bus_services_dir
2125 2006-03-10 Ross Burton <ross@openedhand.com>
2127 * tools/dbus-print-message.c:
2128 Add support for object paths and signatures.
2130 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
2132 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2134 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2136 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
2137 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2138 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2139 * dbus/dbus-userdb.h: Add function to flush all user/group information
2142 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2144 * qt/dbusidl2cpp.cpp:
2145 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2146 for dcopidl2cpp, found in the KDE installations (or the more
2147 modern kalyptus): generate Qt4 C++ code for the input XML
2148 introspection. Currently no IDL parsing.
2150 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2152 * test/qt/*: Update the self-tests.
2154 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2157 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2158 represents the first feature-complete version of the Qt4
2159 bindings since I took ove maintainership.
2161 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
2163 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2164 dir. This is C++, so we can't use the DBus ones.
2166 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
2168 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2169 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2171 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
2173 * dbus/dbus-connection.c:
2174 (_dbus_connection_block_pending_call):
2175 Check to see if our data has already been read off the connection
2176 by another blocking pending call before we block in poll.
2177 (check_for_reply_and_update_dispatch_unlocked):
2178 Code taken from _dbus_connection_block_pending_call - checks for
2179 an already read reply and updates the dispatch if there is one.
2181 * test/name-test/test-pending-call-dispatch.c:
2182 New test for making sure we don't get stuck polling a
2183 dbus connection which has no data on the socket when
2184 blocking out of order on two or more pending calls.
2186 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
2188 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2189 make/automake don't detect that we're talking about the same
2190 .lo file if I specify the full path to the source files.
2192 2006-02-26 Havoc Pennington <hp@redhat.com>
2194 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2196 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2197 session bus variable is unset, suggest "man dbus-launch" and "man
2198 dbus-daemon" to figure out how to fix the problem
2200 2006-02-25 Havoc Pennington <hp@redhat.com>
2202 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2203 should make this thing use the new glib options parser
2205 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
2207 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2208 .lo files taking moc sources.
2210 2006-02-25 Havoc Pennington <hp@redhat.com>
2212 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2213 and install it as a public header
2215 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2219 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2221 * proxies.py: Fix the callchain
2223 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
2225 * patch from Sjoerd Simons <sjoerd at debian.org>:
2227 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
2230 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2231 call _dbus_group_info_free_allocated which causes infinite loop,
2232 correctly call _dbus_group_info_free
2234 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
2236 * qt/qdbusinterface_p.h:
2237 * qt/qdbusinterface.cpp: Use the standard
2238 org.freedesktop.DBus.Method.NoReply annotation for the "async"
2239 calls instead of creating one for us.
2241 * qt/qdbusconnection_p.h:
2242 * qt/qdbusintegrator.cpp: Remove debugging code.
2244 * qt/qdbusintegrator.cpp:
2245 * qt/qdbusmessage.cpp:
2246 * qt/qdbusmessage_p.h:
2247 * qt/qdbusmessage.h: Change the behaviour of automatic
2248 reply-sending: now a reply is always sent, unless the caller
2249 didn't request one or if the user slot has already sent one.
2251 2006-02-16 Robert McQueen <robot101@debian.org>
2253 * configure.in: Patch from Debian packages by Sjoerd Simons
2254 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2255 arguments so it's possible to build both bindings in the
2258 * qt/Makefile.am: Fix truncated value so that make dist works.
2260 2006-02-16 Robert McQueen <robot101@debian.org>
2262 * acinclude.m4, configure.in: Patch from Brad Hards
2263 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2264 improving quoting, re-ordering a few checks, and a few other
2267 2006-02-16 Robert McQueen <robot101@debian.org>
2269 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2270 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2271 assertion that the next element to read from the iter is fixed in
2272 size. This is not the case when you are at the end of the iter,
2273 because the next element type is INVALID.
2275 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2276 a bogus assert which means that you may not initialise a 0-length
2277 string unless you provide a non-NULL pointer. This prevented
2278 you from marshalling messages containing zero-length arrays in
2281 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2282 from Rob to correct bogus asserts when trying to demarshal an
2283 array and get_fixed_array got you 0 elements. Append nothing to
2284 the GArray in this case.
2286 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2287 an empty array via the glib bindings. Without all of the above
2288 patches, this new test fails.
2290 2006-02-16 Robert McQueen <robot101@debian.org>
2292 * glib/dbus-gmain.c: Make the previous commit compile.
2294 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2295 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2296 specify sender_keyword="foo", path_keyword="bar" when adding
2297 a signal listener, so that you can bind to signals generically
2298 but still do something useful in your callback.
2300 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2301 chars so that they're not cast to chars and made negative. Thanks
2302 to Jakub Stachowski for reporting this and testing the fix.
2304 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
2307 * glib/dbus-gmain.h:
2308 (dbus_g_connection_open): new method for openning
2309 a connection to an arbitrary address in the glib bindings
2311 * ChangeLog: checkin last entry which doesn't seem to be commited
2313 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
2315 * tools/dbus-launch.c: Fixed sh syntax output
2317 2006-02-13 Robert McQueen <robot101@debian.org>
2319 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2320 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2321 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2322 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2323 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2324 missing piece of the glib bindings jigsaw puzzle. This modifies
2325 the existing specialised types to have N type parameters (rather
2326 than the current 1 or 2 for arrays and dictionaries respectively).
2327 You can then use this to get a glib type to represent any arbitrary
2328 D-Bus struct type using dbus_g_type_get_struct. The only
2329 implementation of these types is with GValueArrays as before,
2330 but it's now possible to store these in arrays, emit them in
2333 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2335 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2336 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
2337 <thiago.macieira at trolltech.com>
2339 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2341 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2342 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2344 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2346 * bus/connection.c (bus_connections_expect_reply): Make
2347 pending reply limit not common to all connections (Bug #5416)
2348 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2350 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2352 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2354 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
2356 * gcj/Makefile.am: point to correct jar command (Bug #4529)
2357 patch from Doug Goldstein <cardoe at gentoo.org>
2359 2006-02-09 Joe Shaw <joeshaw@novell.com>
2361 * mono/Arguments.cs: Fix a magic number in the mono bindings
2362 that doesn't work on 64 bit arches. Patch from Peter Johanson.
2364 2006-01-27 Robert McQueen <robot101@debian.org>
2366 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2367 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2368 when generating the client-side methods, instead of overloading
2369 CSymbol which broke everything horribly. My apologies.
2371 2006-01-27 Robert McQueen <robot101@debian.org>
2373 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2374 by me and Rob Taylor to add a simple_free function to D-Bus map
2375 and collection types, which allows those types which can be freed
2376 with a GDestroyNotify (such as GHashTables and GArrays, but not
2377 GPtrArrays) to be stored as the values in hashtables.
2379 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2380 Patch by Rob Taylor to add nested dicts to the glib tests to check
2381 the above code works, and appears not to leak when called repeatedly.
2383 2006-01-27 Robert McQueen <robot101@debian.org>
2385 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2386 to free a D-Bus allocated string with dbus_free () instead of
2389 2006-01-27 Iain Holmes <iain@openedhand.com>
2391 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2392 method from being called multiple times.
2394 2006-01-19 Robert McQueen <robot101@debian.org>
2396 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2397 <rob.taylor@collabora.co.uk> to add support for generating bindings
2398 to arrays that are represented as GPtrArrays rather than GArrays (ie
2399 size-variable things, such as strings, objects, structs, etc).
2401 2006-01-05 Robert McQueen <robot101@debian.org>
2403 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2404 <ricardo.kekki@movial.fi> to make it possible to inherit from
2405 DBusGProxy, by splitting the DBusGProxy struct into a public part and
2406 a private part, and moving the setting of the DBusGProxyManager into a
2407 connection property, allowing proper GObject construction.
2409 2006-01-05 Robert McQueen <robot101@debian.org>
2411 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2412 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2413 annotations when generating glib client bindings.
2415 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2417 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2419 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2421 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2423 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2425 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2427 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2429 2005-12-19 Ross Burton <ross@openedhand.com>
2431 * doc/dbus-tutorial.xml:
2432 Document the Glib client-side bindings, and list all possible annotations.
2434 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
2436 * dbus/bus.c (dbus_bus_release_name): Add documentation
2438 2005-12-06 Robert McQueen <robot101@debian.org>
2440 * python/service.py: s/sucessful/successful/ so we're allocating to
2441 and reading from the same variable. Oops.
2443 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2447 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2449 * test/qt/Makefile.am: build from srcdir
2451 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2452 Note - this code is wrong and needs to be fixed by the Qt binding
2453 developers. The flags should be treated as bitfields and not enums.
2455 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2457 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2459 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
2460 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
2463 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2465 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2466 method for getting messages off the bus in the absence of a
2467 mainloop. This method is much like
2468 dbus_connection_read_write_dispatch except it does not dispatch
2469 the messages to a registered filter function. Instead it
2470 allows a developer to process messages by directly popping
2473 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2475 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
2476 the parser to continue instead of returning error
2477 (bus_desktop_file_load): Do not free parser data when
2478 parse_section_start or parse_key_value fails because it was
2479 already freed by parser_free (patch from Carlos Garcia Campos
2480 <carlosgc at gnome.org>)
2482 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2484 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2485 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2486 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2487 test/test-segfault.c, test/test-utils.c,
2488 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2489 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2490 Various cleanup of dead code and compiler warnings (patch from
2491 Kjartan Maraas <kmaraas at gnome.org>)
2493 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
2495 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2496 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2498 2005-11-27 Robert McQueen <robot101@debian.org>
2500 * python/dbus_bindings.pyx: Repair my previous commit which reverted
2501 part of the preceding one. Oops. Merge patch by Johan Hedberg
2502 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2503 on big-endian platforms.
2505 * test/python/test-client.py: Add some 16-bit integers to the test
2508 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
2510 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2511 method return message for property getters
2513 2005-11-27 Robert McQueen <robot101@debian.org>
2515 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2516 with type v of an instance of dbus.Variant(foo, type='x') caused
2517 it to be boxed twice before sending over the bus.
2519 * python/dbus_bindings.pyx, python/service.py,
2520 test/python/test-client.py: Update the constants for the new
2521 request_name flags, and update comments/test cases now that queueing
2522 is the default action.
2524 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2527 - Change version to 0.60 for impending release
2528 - upped the sonames because of ABI and API breakage
2530 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
2532 * configure.in: Add test/name-test/Makefile to the generated
2535 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2536 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2537 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2538 not to queue an ower if it can't be the primary owner
2540 * bus/bus.h: Add new internal BusOwner struct
2542 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2543 to bus_registry_ensure and don't set the prohibit_replacement flag
2544 since they are now set per BusOwner and not per name.
2545 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
2546 that returns the list of connections in a name's connection queue
2548 * bus/services.c (struct BusService): remove prohibit_replacement field
2549 (struct BusOwner): new struct for keeping track of queued connections
2550 and their associated flags for the queue
2551 (struct BusRegistry): add a BusOwner memory pool
2552 (bus_registry_new): initialize the BusOwner memory pool
2553 (bus_registry_unref): free the BusOwner memory pool
2554 (_bus_service_find_owner_link): new internal method for
2555 searching the queue for a specific connection
2556 (bus_owner_set_flags): new method for adding setting the flags on a
2558 (bus_owner_new): new method that creates a BusOwner object from the
2559 pool and sets its flags
2560 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2561 (bus_registry_ensure): Add the flags parameter
2562 (bus_registry_acquire_service): Switch from using raw connections to
2563 using the BusOwner struct
2564 Add new state machine for dealing with the new set of flags
2565 (bus_registry_set_service_context_table, struct OwnershipCancelData,
2566 cancel_ownership, free_ownership_cancel_data,
2567 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
2568 restore_ownership, free_ownership_restore_data,
2569 add_restore_ownership_to_transaction): Switch to using BusOwner
2570 instead of raw connections
2571 (bus_service_add_owner): Add flags parameter
2572 Switch to using BusOwner instead of raw connections
2573 Add state machine for dealing with the new set of flags
2574 (bus_service_swap_owner): Swaps the first and second owners in the
2575 queue. Used to make sure proper signals are sent when a service looses
2576 or gains primary ownership. We never insert an owner at the top of the
2577 queue. Instead we insert it in the second position and then swap.
2578 (bus_service_remove_owner): Remove the owner from the queue sending
2579 out the NameLost and NameOwnerChanged signals if the we were the
2581 (bus_service_get_primary_owners_connection): New method that extracts
2582 the connection from the primary owner
2583 (bus_service_get_primary_owner): Returns the BusOwner instead of the
2585 (bus_service_get_allow_replacement): Changed from the old
2586 bus_service_get_prohibit_replacement method. Checks the flags of the
2587 primary owner and returns if it can be replaced or not
2588 (bus_service_set_prohibit_replacement): removed
2589 (bus_service_has_owner): returns TRUE if and owner with
2590 the specified connection exists in the queue
2592 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2593 method that only compiles if tests are enabled. Allows us to get the
2594 unique name of a connection so we can check it against the queue when
2595 doing regression tests
2597 * bus/activation.c (bus_activation_send_pending_auto_activate),
2598 bus/dispatch.c (bus_dispatch),
2599 bus/driver.c (bus_driver_handle_get_service_owner,
2600 bus_driver_handle_get_connection_unix_user,
2601 bus_driver_handle_get_connection_unix_process_id,
2602 bus_driver_handle_get_connection_selinux_security_context),
2603 bus/signals.c (connection_is_primary_owner):
2604 use bus_service_get_primary_owners_connection instead of
2605 bus_service_get_primary_owner
2607 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
2608 _dbus_listen_unix_socket): Calculate the length of the socket
2609 path and use that instead of using a fixed length which was
2610 causing socket names to contain many trailing Nul bytes.
2612 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2613 (dbus_g_method_get_sender): New method for extracting the sender
2614 from a DBusGMethodInvocation
2615 (dbus_g_method_return_get_reply): changed name to
2616 dbus_g_method_get_reply
2617 (dbus_g_method_return_send_reply): changed name to
2618 dbus_g_method_send reply
2620 * doc/dbus-specification.xml: New docs that describe how the new
2621 queueing system works and talks about the changes to the how
2622 we specify socket names
2624 * glib/examples/example-service.c,
2625 glib/examples/example-signal-emitter.c,
2626 glib/examples/statemachine/statemachine-server.c:
2627 Changed the RequestName flags to the new system
2629 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2630 regression test suite for testing various states of the new
2633 2005-11-15 Robert McQueen <robot101@debian.org>
2635 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2636 Taylor to add two methods, dbus_g_method_return_get_reply and
2637 dbus_g_method_return_send_reply, to allow you to get the reply
2638 message from a DBusGMethodInvocation, append arbitrary stuff to it,
2639 and send it. The GLib bindings can't marshal a return value of
2640 something like a(s) if the array is empty - ultimately they should be
2641 made to heed the signature of the out arguments as the Python bindings
2642 now can, but this is a workable interim solution which might have
2645 2005-11-15 Robert McQueen <robot101@debian.org>
2647 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2648 method to org.freedesktop.DBus to release a bus name or give up
2649 waiting in the queue for it.
2651 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2652 dbus_bus_release_name method to send the ReleaseName method calls.
2653 Add constants for the return values to dbus/dbus-shared.h.
2655 * doc/dbus-specification.xml: Document the new ReleaseName method
2656 in the specification.
2658 * python/dbus_bindings.pyx: Add a low-level python binding for the
2659 release name method.
2661 * python/exceptions.py, python/service.py: Make freeing BusName
2662 objects release the name. Add a NameExistsException, and fix a
2663 bug with creating UnknownMethodException.
2665 * test/python/test-client.py: Add tests for freeing BusName
2666 objects causing names to be released.
2668 2005-11-14 Robert McQueen <robot101@debian.org>
2670 * python/service.py: Include the traceback in the error reply when we
2671 send an exception over the bus. _BEST_ _PATCH_ _EVER_
2673 2005-11-14 David Zeuthen <davidz@redhat.com>
2675 Patch from Timo Hoenig <thoenig@suse.de>.
2677 * bus/bus.c: I've recently investigated why the automatic reload
2678 of configuration files does not work as expected.
2680 Currently, reloading configuration files does only work when
2681 running dbus-daemon with --nodaemon. If we are running as daemon
2682 we're hitting a dnotify bug once we fork the process.
2684 We're initializing the dnotify fds before calling fork(). Once
2685 the child process forked it does still have the fds (and they
2686 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2687 getting SIGIO as changes are made to the configuration files.
2689 The attached patch moves the initialization of the dnotify fds to
2690 process_config_postinit(). This is safe for all current code
2691 paths and solves the dnotify disfunction. If we're running
2692 dbus-daemon as daemon the fds for dnotify are now being
2693 initialized after fork() for the child process.
2695 * configure.in: The current configure.in check for dnotify probes
2696 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
2697 match for 'xlinux', too. Additionally I have adapted the configure
2698 option's style to match with the others.
2700 2005-11-14 Robert McQueen <robot101@debian.org>
2702 * python/decorators.py, python/service.py: Add a new argument to the
2703 dbus.service.method decorator called sender_keyword, which if set,
2704 specifies the name of an argument which will be provided the bus
2705 name of the method caller.
2707 * test/python/test-client.py, test/python/test-service.py: Add a
2708 method and test to check the sender_keyword functionality.
2710 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
2712 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
2713 empty reply so blocking calls don't block forever (Patch from Sjoerd
2714 Simons <sjoerd at luon.net>)
2716 * AUTHORS: Add Robert McQueen for his work on the Python
2717 Bindings and other parts of D-Bus
2719 2005-11-07 Robert McQueen <robot101@debian.org>
2721 * python/decorators.py: Change emit_signal function to use the
2722 signature annotation of the signal when marhsalling the arguments from
2723 the service. Fix a bug where the code checking signature length
2724 against argument length referenced the wrong variable.
2726 * python/introspect_parser.py: Avoid adding the type signature of
2727 signal arguments to any methods which occur after them in the
2728 introspection data (!) by making the parser a little more careful
2729 about its current state.
2731 * python/service.py: Remove debug prints from last commit (again :D).
2733 * test/python/test-client.py, test/python/test-service.py: Add test
2734 signals with signature decorators to test the strict marshalling code
2735 gives errors at the right time. Could do with checking the signals
2736 actually get emitted too, given that the test does nothing with
2737 signals at the moment...
2739 2005-11-07 Robert McQueen <robot101@debian.org>
2741 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2742 instances to stop madness of creating new instances representing
2743 the same bus connection all the time, rendering any tracking of
2744 match rules and bus names quite meaningless. Caught a bug where
2745 the private argument to SessionBus() and friends was being passed
2746 in as use_default_mainloop by mistake. Still some problems with
2747 multiple dbus_binding.Connection instances representing the same
2748 low-level connection (eg when you use both SessionBus() and
2749 StarterBus() in same process), but it's a lot better now than it
2752 * python/dbus_bindings.pyx: Add constants with the return values
2753 for bus_request_name().
2755 * python/service.py: Store bus name instances in a per-dbus.Bus cache
2756 and retrieve the same instances for the same name, so deletion can be
2757 done with refcounting. Also now throws some kind of error if you
2758 don't actually get the name you requested, unlike previously...
2760 * test/python/test-client.py: Add tests for instance caching of buses
2761 and bus name objects.
2763 2005-11-04 Robert McQueen <robot101@debian.org>
2765 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2766 marshalling of boolean values. Add some booleans to the values in
2769 * python/decorators.py, python/service.py: Add an 'async_callbacks'
2770 argument to the dbus.service.method decorator, which allows you to
2771 name arguments to take two callback functions for replying with
2772 return values or an exception.
2774 * test/python/test-client.py, test/python/test-service.py: Add test
2775 case using asynchronous method reply functions, both return values and
2776 errors, and from within both the function itself and from a mainloop
2779 * python/decorators.py, python/service.py: Perform checking that the
2780 number of method/signal arguments matches the number of types in the
2781 signature at class loading time, not when you first introspect the
2784 * python/service.py: Remove debug print left by the last commit.
2786 2005-11-03 Robert McQueen <robot101@debian.org>
2788 * python/service.py: Heavy refactoring of method invocation, with
2789 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2790 in favour of a new _message_cb that uses seperate functions for
2791 looking up the method to call, marshalling the return values, and
2792 sending exceptions as errors, and is easier to follow as a
2793 consequence. Fixes some corner cases about returning things that
2794 don't match your declared out_signature, allows exceptions to define
2795 _dbus_error_name and have it be sent over the bus as the error name,
2796 and paves the way for cool stuff like heeding the message no reply
2797 flag, asynchronous method implementations, informing the method of the
2798 sender, and including backtraces in the error messages.
2800 * test/python/test-client.py: Catch and print exceptions thrown in the
2801 async callback tests, rather than passing them to the low-level
2802 bindings to be ignored in a noisy and frustrating manner.
2804 2005-11-03 Robert McQueen <robot101@debian.org>
2806 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2807 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2808 tweak others to be consistent.
2810 * test/python/test-client.py: Tweak output of testInheritance.
2812 2005-10-29 Robert McQueen <robot101@debian.org>
2814 * python/service.py: Major changes to allow multiple inheritance
2815 from classes that define D-Bus interfaces:
2817 1. Create a new Interface class which is the parent class of
2818 Object, and make the ObjectType metaclass into InterfaceType.
2820 2. Patch written with Rob Taylor to replace use of method_vtable
2821 with code that walks the class's __MRO__ (method resolution order)
2822 to behave like Python does when invoking methods and allow
2823 overriding as you'd expect. Code is quite tricky because
2824 we have to find two methods, the one to invoke which has the
2825 right name and isn't decorated with the /wrong/ interface,
2826 and the one to pick up the signatures from which is decorated
2827 with the right interface.
2829 The same caveats apply as to normal multiple inheritance -
2830 this has undefined behaviour if you try and inherit from two
2831 classes that define a method with the same name but are
2832 decorated with different interfaces. You should decorate
2833 your overriding method with the interface you want.
2835 3. Replace grungy introspection XML generation code in the metaclass
2836 with dictionaries that cope correctly with multiple inheritance
2837 and the overriding of methods. This also uses the signature
2838 decorations to provide correct introspection data, including
2839 the debut appearance of the types of your return values. :D
2841 * test/python/test-client.py, test/python/test-service.py: Add a test
2842 case to try invoking an method that overrides one inherited from a
2843 D-Bus interface class.
2845 2005-10-29 Robert McQueen <robot101@debian.org>
2847 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2848 Add checking for the end of struct character when marshalling a
2849 struct in MessageIter.append_strict.
2851 * python/examples/example-service.py,
2852 python/examples/gconf-proxy-service.py,
2853 python/examples/gconf-proxy-service2.py: Update to use gobject
2854 mainloop directly rather than appearing to depend on gtk.
2856 * python/test/test-client.py, python/test/test-server.py: Remove
2857 obsolete and broken test scripts for old bindings. We have up to date
2858 and working tests in test/python/.
2860 2005-10-29 Robert McQueen <robot101@debian.org>
2862 * python/decorators.py: Add optional arguments to the method and
2863 signal decorators to allow you to specify the signature of arguments
2864 and return values. Preserve the doc strings of signal functions in the
2865 decorated version, for pydoc and friends.
2867 * python/dbus_bindings.pyx, python/proxies.py: Replace the
2868 parse_signature_block function with an iterable dbus.Signature()
2869 type. Fix a bug in MessageIter.append_strict where you could append
2870 anything by claiming it was a string.
2872 * python/service.py: Use the out_signature decoration on methods to
2873 marshal return values, meaning you no longer require dbus.Array()
2874 or dbus.Dictionary() to indicate the type when returning empty
2875 arrays or dictionaries. Fix a bug where exceptions which are defined
2876 in __main__ are not turned into error replies.
2878 * test/python/test-client.py, test/python/test-service.py: Add test
2879 for correct marshalling of return values according to out_signature.
2880 Fix a bug in the async call test where the error_handler is missing a
2883 2005-10-29 Robert McQueen <robot101@debian.org>
2885 * glib/Makefile.am, glib/examples/Makefile.am,
2886 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2887 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2889 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2891 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2892 from Ubuntu by Daniel Silverstone to allow specifying match rules on
2895 2005-10-27 Ross Burton <ross@openedhand.com>
2897 * dbus/dbus-marshal-header.c:
2900 * glib/dbus-gobject.c:
2901 Stop compiler warning.
2903 2005-10-25 Ross Burton <ross@openedhand.com>
2906 * dbus/dbus-server-unix.c:
2907 * dbus/dbus-transport-unix.c:
2908 * glib/dbus-gmain.c:
2909 * glib/dbus-gobject.c:
2910 Add some const keywords.
2912 2005-10-25 Ross Burton <ross@openedhand.com>
2914 * doc/dbus-specification.xml:
2915 Document the NoReply annotation.
2917 * glib/dbus-binding-tool-glib.h:
2918 * glib/dbus-binding-tool-glib.c:
2919 Respect the NoReply annotation.
2921 2005-10-24 Robert McQueen <robot101@debian.org>
2923 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2924 derive from unicode instead of str, and encode/decode UTF-8 when
2925 marshalling/unmarshalling bus messages
2927 * python/introspect_parser.py: encode introspection data as UTF-8
2928 before passing the buffer into libxml2
2930 * test/python/test-client.py: add unicode test strings
2932 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2933 ignore generated python test files
2935 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
2937 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2938 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2939 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2941 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2942 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2943 when constructing struct signatures
2945 * python/_dbus.py (Bus): handle private connections using the
2946 private keyword in the constructor. defaults to private=False
2947 (Bus::close): new method to close a connection to the bus
2949 * python/dbus_bindings.pyx (Connection::close): renamed method
2950 was previously called disconnect
2951 (bus_get): now supports getting a private connection
2953 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2954 keyword is set to True. if it is, execute the method without waiting
2956 (ProxyObject::_introspect_execute_queue): new method for executing
2957 all the pending methods that were waiting for the introspect to
2958 finish. this is called when introspect either succeeds or fails
2959 (ProxyObject::_introspect_error_handler): call queued methods
2961 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
2963 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2964 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2966 * python/service.py (Object::_message_cb): handle exceptions correctly
2967 by sending them over the wire to the calling app. This makes sure
2968 the client returns immediately instead of waiting the 15 seconds to
2971 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
2972 Add a test to benchmark how long it takes to introspect a service and
2973 call a method which returns a large element (pretty fast)
2975 * test/python/test-service.py (TestObject::GetComplexArray): new test
2976 method which pushes a lot of data
2978 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2980 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
2981 reclaim memory outside of the loop and use del istead of just setting
2984 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2986 * python/service.py (ObjectType::_reflect_on_signal): Always close
2987 signal tag even when there are no arguments
2989 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2991 * configure.in: Set mono, mono-docs and Qt3 to default
2992 to no instead of auto when building. These bindings do not
2993 have full time maintainers and will not be supported for the
2996 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
2998 patches from Michael Krivoruchko <misha at sun.com>:
3000 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3001 _dbus_connection_message_sent,
3002 _dbus_connection_send_preallocated_unlocked_no_update,
3003 _dbus_connection_pop_message_link_unlocked): handle the case when path
3004 is NULL when calling _dbus_verbose
3006 * configure.in: check for functions getpeerucred and getpeereid
3008 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
3009 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
3010 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
3011 Patch was only tested on Solaris 10 x86 so it might be issues
3012 with other platforms (i.e. BSDs and MacOSX)
3015 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
3017 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
3018 instead of marshal basic so we can handle recursive types in a variant
3020 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3023 * test/glib/test-service-glib.c, test-service-glib.xml
3024 (my_object_echo_variant [EchoVariant],
3025 my_object_process_variant_of_array_of_ints123
3026 [ProcessVariantOfArrayOfInts123]):
3027 Add two test methods
3029 * python/introspect_parser.py: New module for parsing introspect
3032 * python/dbus_bindings.pyx:
3033 (various places): when throwing errors fix to use errormsg instead
3034 of message local variable because Pyrex can get confused with other
3035 message variables (initial patch by Robert McQueen
3036 <robert.mcqueen at collabora.co.uk>)
3037 (MessageIter::parse_signature_block): new method for getting the next
3038 block in a signiture.
3039 (MessageIter::append_strict): new method for appending values strictly
3040 using the passed in signature instead of guessing at the type
3041 (MessageItter:: append_dict, append_struct, append_array): use
3042 signatures to marshal children if the signature is available
3044 * python/exceptions.py (IntrospectionParserException): new exception
3046 * python/proxies.py (ProxyMethod::__call__): Marshal args with
3047 introspected signatures if available, else we fall back to the
3048 old way of doing things.
3049 (ProxyObject::_introspect_reply_handler ): parse introspection data
3051 * python/service.py (ObjectType::_reflect_on_method): Properly
3052 terminate <method> if there are no args in the reflection data
3054 * test/python/test-client.py: add tests for talking with the GLib
3055 test server. This gives us better coverage for introspection since
3056 python to python will always generate arguments as variants. It also
3057 allows us to test the robustness of the GLib bindings and interlanguage
3061 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
3063 * bus/driver.c (bus_driver_handle_introspect): Add signals
3064 to the introspect data. (patch from Daniel P. Berrange
3065 <dan at berrange.com>)
3067 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3069 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3070 _dbus_connection_run_builtin_filters): Changed these to
3071 be unlock_no_update functions and call
3072 _dbus_connection_send_unlocked_no_update instead of
3073 dbus_connection_send to avoid locking errors.
3075 * doc/TODO: Removed the make Ping test TODO
3077 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
3079 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3080 We now copy the message from a DBusError and then free
3081 the error object befor throwing the error
3083 * glib/dbus-glib-tool.c: removed extra comma at the end of the
3084 DBusBindingOutputMode enum which was causing a warning.
3085 #include <time.h> so using time_t is explicitly defined
3087 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
3089 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3091 (internal_bus_get): new method that take over the heavy lifting
3092 of dbus_bus_get and adds the ability to get a private connection
3094 (dbus_bus_get): wrapper to internal_bus_get that provides the same
3095 interface as in previous versions
3096 (dbus_bus_get_private): new method that is a wrapper to
3097 internal_bus_get to get a private connection to the bus
3100 (dbus_bus_get_private): add as a public libdbus interface
3102 - dbus-1.pc.in: output system_bus_default_address and
3103 sysconfdir variables so apps can use them when compiling
3105 2005-09-23 Harald Fernengel <harry@kdevelop.org>
3106 * dbus/qt: New Qt bindings
3108 2005-09-12 Waldo Bastian <bastian@kde.org>
3110 * dbus/dbus-marshal-validate.c,
3111 doc/dbus-specification.xml, test/Makefile.am,
3112 test/test-names.c: allow hyphens in bus names.
3114 2005-09-11 Mark McLoughlin <mark@skynet.ie>
3116 * test/data/auth/fallback.auth-script: we don't
3117 retry the EXTERNAL method when we know its going
3120 2005-09-11 Mark McLoughlin <mark@skynet.ie>
3122 * dbus/dbus-connection-internal.h: rename
3123 (add|remove|toggle)_(watch|timeout) to unlocked()
3125 * dbus/dbus-connection.c: ditto.
3127 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3128 Update some callers for the renaming.
3130 2005-09-10 Mark McLoughlin <mark@skynet.ie>
3132 * dbus/dbus-auth.c: (record_mechanisms): don't
3133 retry the first auth mechanism because we know
3134 we're just going to get rejected again.
3136 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3137 Fix thinko ... and what a nasty little bugger to
3138 track down you were ...
3140 * dbus/dbus-connection.c:
3141 (_dbus_connection_add_watch),
3142 (_dbus_connection_remove_watch): add note about
3143 these needing the connection to be locked.
3144 (_dbus_connection_get_dispatch_status_unlocked):
3145 set status to DATA_REMAINS when we queue the
3146 disconnected message.
3149 (bus_dispatch): fix warning.
3150 (check_existent_service_no_auto_start):
3151 Expect ChildSignaled error too.
3152 (check_existent_hello_from_self): fix another
3155 2005-09-08 Joe Shaw <joeshaw@novell.com>
3157 Patches from James Willcox <snorp@snorp.net>
3159 * mono/Makefile.am: Add Int16.cs and UInt16.cs
3161 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3162 support array "out" parameters.
3164 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3165 for 16-bit int support.
3167 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
3171 * Patch from Steve Grubb:
3172 - bus/activation.c (bus_activation_service_reload_test): clean up
3174 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
3175 - dbus/dbus-message-factory.c (generate_special): fix a couple of
3176 buffer overflows in the test suite. This is non critical because
3177 it can not be exploited and this code is only run when doing a
3180 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3181 - configure.in: Don't check and link against kdecore, only qt headers
3182 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3183 - gcj/org/freedesktop/dbus/Makefile.am:
3184 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3185 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3186 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3187 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3188 - tools/Makefile.am: Add platform extentions to binaries
3189 (i.e. .exe on windows)
3192 - Make it so if no suitable version of python is found we only
3193 disable building python instead of exiting the configure script
3194 - Require version 2.4 of glib for glib bindings
3195 - Up version to 0.50
3197 * python/__init__.py: Sync version with libdbus to (0,50,0)
3199 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
3201 * dbus/dbus-object-tree.c (find_subtree_recurse):
3202 a couple of optimizations (bug #710):
3203 - do a binary search in the tree
3204 - insert a new child at the right place directly, no need for
3206 - do the "double alloc" thing when allocating children
3208 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
3210 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3212 * python/dbus_bindings.pyx: Memory management foo
3213 (global): remove hacky _user_data_references global list
3214 (GIL_safe_cunregister_function_handler): userdata now stuffed into
3215 tuples. Unref user_data
3216 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3217 (Connection::__del__): Remove and replace with __dealloc__ method
3218 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
3219 to keep tuple from being deallocated instead of the global var hack
3220 (Connection::register_object_path): Stuff user_data into a tuple.
3221 Use Py_INCREF to keep tuple from being deallocated instead of the
3223 (Connection::register_fallback): Stuff user_data into a tuple.
3224 Use Py_INCREF to keep tuple from being deallocated instead of the
3226 (GIL_safe_pending_call_notification): Don't unref the message
3227 because it gets unreffed when going out of scope. Py_XDECREF
3229 (PendingCall::__del__): Remove and replace with __dealloc__ method
3230 (PendingCall::set_notify): ref the pending call because we will
3231 need it to stick around for when the notify callback gets called
3232 (Message::__del__): Remove and replace with __dealloc__ method
3234 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
3235 gthreads_init to match up with the dbus call
3237 * python/glib.py (init_threads): Changed to threads_init to match
3238 up with gobject.threads_init(). init_threads is kept for backwards
3239 compat but will most likely be deprecated in the future
3241 * test/python/test-client.py:
3242 - revamp to use Python's unittest functionality
3243 - add async call tests
3244 - setup threads in glib and dbus so we make sure locks are working
3246 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3248 * python/dbus_bindings.pyx
3249 (_pending_call_notification, cunregister_function_handler,
3250 cmessage_function_handler): All callback functions have been rearranged
3251 to workaround a bug in Pyrex when working with the GIL which is Python's
3252 global lock when dealing with threads. They have been split into
3253 a wrapper function (which assumes the name of the old function) and
3254 a _GIL_safe_<function name> function which contains the functionality
3255 of the old function. This ensures that Pyrex does not write code
3256 the lock is released.
3259 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
3261 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3262 GIL global lock when calling back into Python
3264 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
3268 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3270 * bus/policy.c (bus_policy_allow_user): change default "user is
3271 allowed" to be "user has same uid as the bus itself"; any
3272 allow/deny rules will override.
3274 * bus/session.conf.in: don't allow all users, since now by default
3275 the user that ran the bus can connect.
3277 2005-08-26 Colin Walters <walters@verbum.org>
3279 * tools/dbus-print-message.c (print_message): Flush stdout
3280 after printing a message, so that redirecting to a file, then
3281 hitting Ctrl-C works.
3283 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
3285 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3286 (EmptyMessage): new class that subclasses Message. This is a workaround
3287 to a Pyrex bug that fails to call __del__ when the Message object goes out
3288 of scope. For some reason subclassing Message fixes this bug
3289 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3290 - s/Message(_create=0)/EmptyMessage everywhere else
3292 * test/python/test-{server|client}.py: add the python/.libs directory
3293 to the lookup path so dbus_bindings and dbus_glib_bindings don't
3294 get picked up from the system
3296 2005-08-25 Colin Walters <walters@verbum.org>
3298 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3299 to Ryan Lortie for the suggestion.
3301 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3303 * test/python: Add python regression test
3305 * configure.in: Add test/python/Makefile
3307 * test/Makefile.am: Add the python directory to SUBDIRS
3309 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
3314 (Interface::connect_to_signal): propigate keywords for match on args
3315 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3317 * python/proxies.py (ProxyObject::connect_to_signal):
3318 propigate keywords for match on args
3320 * Makefile.am: point everything to pyexecdir since python borks
3323 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3327 2005-08-23 Colin Walters <walters@verbum.org>
3329 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3331 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
3333 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3334 to fix some wranings. We now use dbus_bindings.DBusConnection instead
3335 of defining DBusConnection ourselves.
3337 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
3339 * python/dbus.pth: New path file to fix up problems when installing
3340 c libraries to lib64 and python files to lib.
3342 * python/Makefile.am: install dbus.pth in the correct spot
3344 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
3345 * ChangeLog: clean up my last entry a bit
3347 * doc/introspect.xsl: New stylesheet for converting introspection data
3348 into browser renderable xhtml. Contributed by Lennart Poettering.
3350 * doc/introspect.dtd: Fixups in the introspect format from Lennart
3353 * doc/dbus-tutorial.xml:
3354 - Add Colin Walter to the Authors section for authoring the GLib
3356 - Add descriptions of the new signature and type functionality
3357 in the Python complex type mapping section
3358 - Add a sidenote on the new args matching functionality in
3360 - Fixed up some of the examples to use the gobject.MainLoop
3364 (Bus::_create_args_dict): New. Converts a hash of arg matches
3365 to a more useable format
3366 (Bus::add_signal_receiver): add a **keywords parameter for catching
3367 arg match parameters
3368 (Bus::remove_signal_receiver): add a **keywords parameter for catching
3369 arg match parameters
3371 * python/matchrules.py:
3372 (MatchTree::exec_matches): Check for arg matches
3373 (SignalMatchRule::add_args_match): New method
3374 (SignalMatchRule::execute): Added args_list parameter as an optimization
3375 so we don't have to marshal the args more than once
3376 (SignalMatchRule::match_args_from_list): New method that checks to see
3377 if the rule's arg matches match an argument list. Only arguments
3378 set in the rule are checked.
3379 (SignalMatchRule::match_args_from_rule): New method that checks to see
3380 if the rule's arg matches match another rule's. All args have to match
3381 in order for this method to return true. If either rule has more args
3382 then it is not a match.
3383 (SignalMatchRule::is_match): Add args match
3384 (SignalMatchRule::repr): Add args to the final output if they exist
3386 2005-08-17 Ross Burton <ross@burtonini.com>
3388 * glib/dbus-gproxy.c:
3389 (dbus_g_proxy_call_no_reply): unref the message once sent.
3390 (dbus_g_proxy_call): protect against NULL proxy.
3392 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
3394 * python/__init__.py: Version updated (0, 43, 0)
3396 * python/dbus_bindings.pyx:
3397 - Fixed type objects to have self passed into __init__
3398 - Added the Variant type
3399 - Add the ability to specify types or signatures for Array, Variant
3401 (Connection::send_with_reply_handlers): return a PendingCall object
3402 (_pending_call_notification): handle the case when an error is returned
3403 without an error message in the body
3404 (MessageIter::get_boolean): return True or False instead of an integer
3405 (MessageIter::python_value_to_dbus_sig): add direct checking of types
3406 and add checks for objects with embeded signatures or types (Array,
3407 Variant and Dictionary)
3408 (MessageIter::append_byte): handle case when the value is a dbus.Byte
3409 (MessageIter::append_dict): handle embeded types or signatures
3410 (MessageIter::append_array): handle embeded types or signatures
3411 (MessageIter::append_variant): new method
3413 * python/proxies.py:
3414 (DeferedMethod): New. Dummy executable object used when queuing calls
3415 blocking on introspection data
3416 (ProxyMethod::__call__): add the timeout keyword for specifying longer
3417 or shorter timeouts for method calls
3418 (ProxyObject): Add first pass at an introspection state machine
3419 (ProxyObject::__init__): Add introspect keyword for turing off an on
3421 (ProxyObject::_Introspect): Internal Introspect call that bypasses
3422 the usual mechanisms for sending messages. This is to avoid a deadlock
3423 where the Intospect call would be queued waiting for the Introspect
3425 (ProxyObject::_introspect_reply_handler): New. This method is called
3426 when introspection returns with no error
3427 (ProxyObject::_introspect_error_handler): New. This method is called
3428 when introspection encounters an error
3429 (ProxyObject::__getattr__): Code to handle different introspection
3430 states. Queue async calls or block blocking calls if we are
3431 introspecting. Pass through as normal if we are not or are done with
3434 * python/service.py: Import signal and method from decorators.py
3436 * python/types.py: Add Variant type
3438 2005-08-16 Colin Walters <walters@verbum.org>
3440 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3441 DBusError message is NULL.
3443 2005-08-09 Havoc Pennington <hp@redhat.com>
3445 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3446 malloc'd copy of the name parameter
3448 2005-08-09 Havoc Pennington <hp@redhat.com>
3450 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3451 warning if the reply serial is set to 0
3453 2005-08-04 Colin Walters <walters@verbum.org>
3455 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3456 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3457 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3458 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3459 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3460 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3461 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3462 * glib/dbus-gvalue.h (dbus_g_value_types_init)
3463 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3464 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3466 Prefix name with _ to ensure they're not exported. All callers
3469 * glib/dbus-gvalue.c (typecode_to_gtype)
3470 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3471 (signature_iter_to_g_type_dict)
3472 (signature_iter_to_g_type_array)
3473 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3474 (dbus_gtypes_from_arg_signature):
3475 Move to dbus-gsignature.c.
3477 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3478 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3479 (dbus_binding_tool_output_glib_client): Ditto.
3481 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3482 and dbus-gsignature.h
3484 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3487 2005-08-03 Colin Walters <walters@verbum.org>
3489 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3490 catch any incompatible changes accidentally made.
3492 2005-08-03 Havoc Pennington <hp@redhat.com>
3494 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3495 typo, from Julien Puydt
3497 * bus/connection.c (bus_connection_disconnected): we were always
3498 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3500 2005-08-01 Colin Walters <walters@verbum.org>
3502 Patch from Joe Markus Clarke:
3504 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3507 2005-08-01 Colin Walters <walters@verbum.org>
3509 Patch from Joe Markus Clarke:
3511 * tools/dbus-send.c (main):
3513 Don't use C99 style initializers (bug #3933).
3515 2005-08-01 Colin Walters <walters@verbum.org>
3517 Patch from Joe Markus Clarke:
3519 * glib/dbus-gvalue.c (dbus_g_value_types_init):
3520 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
3521 * glib/dbus-gobject.c (write_interface):
3523 Don't use C99 style initializers (bug #3933).
3525 2005-07-31 Havoc Pennington <hp@redhat.com>
3527 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3528 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3530 2005-07-30 Havoc Pennington <hp@redhat.com>
3532 * fix a bunch of Doxygen warnings and mistakes
3534 2005-07-30 Havoc Pennington <hp@redhat.com>
3536 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3537 DBUS_BUILD_TESTS since it's now used in production code
3539 2005-07-29 Havoc Pennington <hp@redhat.com>
3541 * test/glib/test-profile.c (write_junk): initialize the junk
3542 buffer so valgrind doesn't have a breakdown
3544 2005-07-29 Havoc Pennington <hp@redhat.com>
3546 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3547 (match_rule_matches): remove unused arg
3548 (test_matching): add tests for match_rule_matches()
3550 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3551 do arg0='foo' arg5='bar' in the match rules
3552 (match_rule_matches): don't match if the arg0='foo' doesn't match.
3554 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3556 2005-07-29 Ross Burton <ross@openedhand.com>
3558 * dbus/dbus-connection.c:
3559 Don't create a DBusCondVar which is never used.
3561 2005-07-27 Ross Burton <ross@openedhand.com>
3563 * dbus/dbus-message.c:
3564 Reduce the size of the maximum cached message to 10K.
3566 2005-07-25 Ross Burton <ross@openedhand.com>
3568 * glib/dbus-gproxy.c:
3569 Remove matches when all proxies are unregistered.
3571 2005-07-24 Colin Walters <walters@verbum.org>
3573 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3574 typedata; recursive arrays won't have it.
3576 * test/glib/test-dbus-glib.c:
3577 * test/glib/test-service-glib.c:
3578 * test/glib/test-service-glib.xml: Add recursive arrays tests.
3580 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
3582 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3583 proxies.py, service.py: Cleanup of code after running it through the
3584 pyflakes code checker mostly dealing with undefined names.
3585 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3587 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3589 * NEWS: Update to 0.35.2
3591 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
3593 * python/_dbus.py: Remove import of the dbus.services
3594 module as it no longer exists (patch from Dimitur Kirov)
3596 * python/service.py (Object::__init__): Fixed typo
3597 s/name/bus_name (patch from Dimitur Kirov)
3599 * python/examples/example-signal-emitter.py: import dbus.glib
3600 to get the main loop and use glib mainloop instead of gtk so
3601 X doesn't have to be running.
3603 * python/examples/example-signal-recipient.py: import dbus.glib
3604 to get the main loop and use glib mainloop instead of gtk so
3605 X doesn't have to be running. Import the decorators module
3608 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
3609 didn't pick up on but are needed to build
3611 * configure.in: upped version to 0.35.2
3613 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3614 added Colin Walters' SELinux API rename patch from head
3615 s/unix sercurity context/selinux security context/
3617 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
3619 * python/Makefile.am: dbus_binding.pxd.in should be included
3620 in EXTRA_DIST not dbus_binding.pxd
3621 fix up $(srcdir) hopefully for the last time
3623 * NEWS: Update to 0.35.1
3625 2005-07-16 Colin Walters <walters@verbum.org>
3627 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3628 from bus_driver_handle_get_connection_unix_security_context. Update for
3630 (message_handlers): Update for renames.
3632 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3633 _dbus_string_init failure correctly.
3634 (bus_selinux_append_context): Convert SID to context. Append it
3636 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3639 * bus/selinux.h: Update prototype.
3641 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3642 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3644 2005-07-15 Colin Walters <walters@verbum.org>
3646 * doc/TODO: Add note about convenience wrappers.
3648 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3650 * NEWS: Update to 0.35
3652 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3654 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3655 so distcheck doesn't fail
3657 * glib/examples/Makefile.am: Add example-service.xml and
3658 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3660 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3661 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3663 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3664 compiler looks in the right places during distcheck
3666 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3668 * glib/example/Makefile.am: Fix a typo which cause make distcheck
3671 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3673 * python/examples/example-service.py,
3674 python/examples/example-signal-emitter.py: Fixed up examples
3677 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3679 * python/__init__.py: Upped to version (0,42,0) because of
3682 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3684 * ChangeLog: fix date in last entry
3686 * configure.in, bus/system.conf.in: add the ability to configure
3687 the system bus user at compiletime with the --with-dbus-user flag
3688 (patch from Kristof Vansant)
3690 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
3692 * bus/dispatch.c, test/test-service.c: Add testcase
3693 for sending messages to oneself (TODO item).
3695 * python/service.py (class Object): Swap ordering of bus_name
3696 and object_path parameters to better support inheritance.
3698 * doc/dbus-tutorial.xml: change Python docs to reflect change
3699 in parameter ordering and fix the inheritance section.
3701 * doc/TODO: remove sending message to oneself TODO item
3703 2005-07-15 Ross Burton <ross@openedhand.com>
3705 * glib/dbus-gproxy.c:
3706 Fix a leak when calling methods via the proxy.
3708 2005-07-15 Colin Walters <walters@verbum.org>
3710 * bus/selinux.c (bus_selinux_append_context): Wrap in
3713 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3715 * python/_dbus.py (Bus::remove_signal_receiver):
3716 don't add a callback to the match if none has been passed in
3718 * python/matchrules.py (SignalMatchTree::remove): if the rule
3719 being matched does not have a callback treat it as a wildcard
3722 * doc/dbus-tutorial.xml: Add Python tutorial
3724 2005-07-14 Colin Walters <walters@verbum.org>
3727 (bus_driver_handle_get_connection_unix_security_context): New function.
3728 (message_handlers): Add.
3730 * bus/selinux.c (bus_selinux_append_context): New function; appends
3731 security context to message.
3733 * bus/selinux.h: Prototype.
3735 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3737 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
3739 * bus/activation.c: clean up all tabs to be 8 spaces
3740 (bus_activation_activate_service): make sure we clean up
3743 * bus/dispatch.c: clean up all tabs to be 8 spaces
3744 (check_shell_fail_service_auto_start): New function
3745 tests to make sure we get fail properly when trying to auto start a service
3746 with a faulty command line
3747 (check_shell_service_success_auto_start): New function tests to make sure
3748 auto started services get the arguments on the command line
3750 * test/test-shell-service.c: Added service for testing auto-starting with
3751 command line arguments
3753 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
3754 test/data/valid-service-files/debug-shell-echo-success.service.in:
3755 Added service files for testing auto-starting with command line arguments
3757 * */.cvsignore: added a bunch of generated files to various .cvsignore files
3759 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
3761 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3763 * dbus/Makefile.am: added new files to build.
3765 * bus/activation.c (bus_activation_activate_service): support
3766 activation commands with parameters.
3768 * test/shell-test.c: added test program for the shell parsing
3771 2005-07-13 David Zeuthen <davidz@redhat.com>
3773 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3774 64 bit signed and unsigned parameters
3776 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
3778 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3780 * python/service.py (class Name): renamed BusName to make it clearer
3781 what the object is for (a name on the bus)
3783 * python/examples/example-service.py,
3784 python/examples/example-signal-emitter.py: change the Name object to
3787 2005-07-12 Colin Walters <walters@verbum.org>
3789 Patch from Jim Gettys <Jim.Gettys@hp.com>.
3791 * tools/dbus-launch.c: Include sys/select.h.
3793 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
3794 * python/dbus_bindings.pyx.in: removed
3796 * python/dbus_bindings.pyx: Added.
3797 - Fixed some memleaks (patch from
3798 Sean Meiners <sean.meiners@linspireinc.com>)
3799 - Broke out the #include "dbus_h_wrapper.h" and put it in its
3800 own pxd file (Pyrex definition)
3801 - Broke out glib dependancies into its own pyx module
3803 * python/dbus_bindings.pdx: Added.
3804 - Defines C class Connection for exporting to other modules
3806 * python/dbus_glib_bindings.pyx: Added.
3807 - New module to handle lowlevel dbus-glib mainloop integration
3809 * python/glib.py: Added.
3810 - Registers the glib mainloop when you import this module
3812 * python/services.py: Removed (renamed to service.py)
3814 * python/service.py: Added.
3815 - (class Server): renamed Name
3817 * python/__init__.py: Bump ro version (0,41,0)
3818 -don't import the decorators or service module
3819 by default. These now reside in the dbus.service namespace
3821 * python/_dbus.py (Bus::__init__): Add code run the main loop
3822 setup function on creation
3824 * python/examples/example-service.py,
3825 python/examples/example-signal-emitter.py: update examples
3827 * python/examples/gconf-proxy-service.py,
3828 python/examples/gconf-proxy-service2.py: TODO fix these up
3830 * doc/TODO: Addition
3831 - Added a Python Bindings 1.0 section
3832 - added "Add match on args or match on details to match rules"
3835 2005-07-12 Colin Walters <walters@verbum.org>
3837 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
3838 (statemachine-glue.h):
3839 * glib/examples/Makefile.am (example-service-glue.h)
3840 (example-signal-emitter-glue.h):
3841 * glib/Makefile.am (dbus-glib-error-switch.h):
3842 Add libtool --mode=execute so we use the built library instead
3843 of any installed one.
3845 2005-07-11 Colin Walters <walters@verbum.org>
3847 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3848 (dbus_g_value_types_init): Remove assertion.
3849 (dbus_g_value_get_g_type, dbus_g_value_open)
3850 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3851 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3852 functions related to DBusGValue. Now we marshal/demarshal
3853 structures as GValueArray.
3854 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3856 (signature_iter_to_g_type_array): Don't call
3857 signature_iter_to_g_type_struct.
3858 (signature_iter_to_g_type_struct): Delete.
3859 (dbus_gvalue_to_signature): Delete.
3860 (dbus_gvalue_to_signature): New function with same name as other
3861 one; we can convert structures to signatures.
3862 (demarshal_valuearray): New function.
3863 (get_type_demarshaller): Use it.
3864 (demarshal_recurse): Delete.
3865 (marshal_proxy): New function.
3866 (marshal_map): Warn if we can't determine signature from type.
3867 (marshal_collection_ptrarray): Ditto.
3868 (marshal_collection_array): Ditto.
3869 (get_type_marshaller): Use marshal_valuearray.
3870 (marshal_recurse): Delete.
3871 (_dbus_gvalue_test): Add some tests.
3873 * dbus/dbus-glib.h (struct _DBusGValueIterator):
3874 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3875 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3876 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3877 (dbus_g_value_free): Remove prototypes.
3879 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3882 * glib/examples/example-service.c:
3883 * glib/examples/example-client.c: Implement GetTuple.
3885 * test/glib/test-dbus-glib.c:
3886 * test/glib/test-service-glib.c:
3887 * test/glib/test-service-glib.xml: Add structure tests.
3889 2005-07-10 Colin Walters <walters@verbum.org>
3891 * doc/TODO: Knock off some GLib items with this patch.
3893 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
3894 (_dbus_gvalue_signals_error): New functions.
3896 * glib/dbus-gvalue-utils.h: Prototype them.
3898 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3899 and change to not output const/retval flags for input args. All
3901 (invoke_object_method): Refactor to handle return values. Add
3902 some more comments in various places. Remove debug g_print.
3904 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3906 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3908 (compute_gsignature): New function; refactored from code from
3909 compute_marshaller and compute_marshaller_name. Enhance to
3910 handle return values and async ops more cleanly. Update for
3911 async ops returning NONE instead of BOOLEAN.
3912 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3913 and output appropriate string.
3914 (generate_glue): Handle return value annotation. Also don't dump
3915 constness flag for input arguments.
3917 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3918 files shared between installed library and utilities.
3919 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3920 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3921 binding tool can access gtype utility functions.
3923 * test/glib/test-service-glib.c:
3924 * test/glib/test-service-glib.xml:
3925 * test/glib/test-dbus-glib.c: Add some tests for return values.
3927 2005-07-09 Colin Walters <walters@verbum.org>
3929 * glib/dbus-gparser.c (parse_annotation): Add annotations to
3930 argument if available, not method.
3932 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3933 (invoke_object_method): First, remove some redundant
3934 GValues (object_value, error_value) in favor of working on
3935 array directly. Second, rework constness to be less buggy.
3936 Now we iterate directly over the argument metadata instead
3937 of parallel iterating over output signature and metadata.
3939 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3941 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3942 annotation on input args.
3944 2005-07-09 Colin Walters <walters@verbum.org>
3946 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3949 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3952 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3953 (method_dir_signature_from_object_info): Handle arg_iterate change.
3954 (write_interface): Ditto.
3955 (lookup_object_info): Don't barf if format_version is > 0.
3956 (invoke_object_method): Handle arg constness.
3958 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3959 (arg_info_new): Create.
3960 (arg_info_unref): Destroy.
3961 (arg_info_get_annotations, arg_info_get_annotation)
3962 (arg_info_add_annotation): New functions.
3964 * glib/dbus-gidl.h: Prototype them.
3966 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3967 args, disallow them in properties.
3968 (parse_annotation): Handle arg annotations.
3970 * test/glib/test-service-glib.xml:
3971 * test/glib/test-service-glib.c: Update to make some methods
3974 2005-07-08 Colin Walters <walters@verbum.org>
3976 * test/glib/test-service-glib.xml:
3977 * test/glib/test-service-glib.c:
3978 * test/glib/test-dbus-glib.c: Test a{sv}.
3980 * glib/examples/statemachine/statemachine.c:
3981 * glib/examples/statemachine/statemachine-server.c:
3982 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3983 add progress bar, etc.
3985 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3986 needed anymore due to generic array/map marshalling.
3987 (dbus_g_value_types_init): Don't register basic arrays or the
3989 (dbus_gtype_from_signature_iter): Don't try to recurse into
3991 (dbus_gtype_to_signature): Check collection/map before type
3993 (demarshal_garray_basic): Renamed to demarshal_collection_array.
3994 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3995 generic map creation/append functions instead of hash table
3997 (get_type_demarshaller): Handle maps.
3998 (demarshal_collection): Dispatch on collection type to either
3999 demarshal_collection_ptrarray or demarshal_collection_array.
4000 (get_type_marshaller): Handle maps.
4001 (marshal_collection): Dispatch collection type to either
4002 marshal_collection_ptrarray or marshal_collection_array.
4003 (_dbus_gvalue_test): New test.
4005 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4006 (hash_free_from_gtype): Use it to free GValues.
4007 (hashtable_append): New function.
4008 (ptrarray_append): Fix prototype.
4009 (slist_append): Ditto.
4010 (_dbus_gvalue_utils_test): Extend tests.
4012 * glib/dbus-gtype-specialized.c
4013 (dbus_g_type_specialized_init_append): Renamed from
4014 dbus_g_type_specialized_collection_init_append. Remove const from
4015 value, since we steal it.
4016 (dbus_g_type_specialized_map_append): New function.
4018 * glib/dbus-gtype-specialized.h: Update prototypes.
4019 Add DBusGTypeSpecializedMapAppendFunc.
4021 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4024 * glib/dbus-gtest.h: Prototype it.
4026 2005-07-08 Ross Burton <ross@openedhand.com>
4029 Add DBysGAsyncData for the async bindings.
4031 * glib/dbus-binding-tool-glib.c:
4032 Re-enable the async bindings.
4034 * test/glib/test-dbus-glib.c:
4035 Add a test for the generated async bindings.
4037 2005-07-08 Colin Walters <walters@verbum.org>
4039 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4042 2005-07-08 Colin Walters <walters@verbum.org>
4044 * tools/Makefile.am: Kill of print-introspect in favor of using
4045 dbus-send --print-reply=literal.
4047 * test/glib/test-service-glib.xml:
4048 * test/glib/test-service-glib.c (my_object_get_objs): New test
4051 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4052 (main): Test GetObjs.
4054 * glib/examples/statemachine/Makefile.am:
4055 * glib/examples/statemachine/sm-marshal.list:
4056 * glib/examples/statemachine/statemachine-client.c:
4057 * glib/examples/statemachine/statemachine-server.c:
4058 * glib/examples/statemachine/statemachine-server.xml:
4059 * glib/examples/statemachine/statemachine.c:
4060 * glib/examples/statemachine/statemachine.h:
4061 * glib/examples/statemachine/statemachine.xml:
4065 * glib/examples/example-service.c (main): Move invocation
4066 of dbus_g_object_type_install_info earlier, to emphasize it
4067 should only be done once.
4069 * glib/examples/example-signal-emitter.c (main): Ditto.
4071 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4073 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4074 (dbus_gvalue_marshal): Update prototypes.
4076 * glib/dbus-gvalue.c: Update all marshalling functions to take
4077 const GValue instead of GValue.
4078 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4080 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4082 (dbus_gtype_to_signature): Handle generic collecitons and maps.
4083 Return a newly-allocated string.
4084 (demarshal_proxy, demarshal_object_path, demarshal_object)
4085 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4086 we get the wrong types from message.
4087 (get_type_demarshaller): New function, extracted from
4088 dbus_gvalue_demarshal.
4089 (demarshal_collection): New function, demarshals generic
4091 (dbus_gvalue_demarshal): Just invoke result of
4092 get_type_demarshaller. Throw error if we don't have one.
4093 (marshal_garray_basic): Abort on OOM.
4094 (get_type_marshaller): New function, extracted from
4095 dbus_gvalue_marshal.
4096 (collection_marshal_iterator, marshal_collection): New functions;
4097 implements generic marshalling for an iteratable specialized
4099 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4101 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4103 (ptrarray_value_from_gvalue): Ditto.
4104 (ptrarray_append, ptrarray_free): New functions.
4105 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
4106 (slist_append, slist_end_append, slist_free): New functions.
4107 (dbus_g_type_specialized_builtins_init): Add append fuctions
4108 for GPtrArray and GSList. Register GSList.
4109 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4111 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4113 (dbus_g_type_specialized_collection_init_append)
4114 (dbus_g_type_specialized_collection_append)
4115 (dbus_g_type_specialized_collection_end_append): Prototype.
4116 (DBusGTypeSpecializedCollectionVtable): Add append_func and
4119 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
4120 (dbus_g_type_specialized_collection_append)
4121 (dbus_g_type_specialized_collection_end_append): New functions.
4122 (dbus_g_type_map_value_iterate): Take const GValue.
4123 (dbus_g_type_collection_value_iterate): Ditto.
4125 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4126 _dbus_gvalue_utils_test.
4128 * glib/dbus-gtest.h: Prototype it.
4130 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4131 using uninitialized owner_list.
4132 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4134 (dbus_g_proxy_end_call_internal): Update to use error set
4135 from dbus_gvalue_demarshal instead of setting it here.
4136 (dbus_g_proxy_begin_call): Move return_if_fail here.
4138 * glib/dbus-gobject.c (write_interface): Update for
4139 dbus_gtype_to_signature returning new string.
4141 * configure.in: Add glib/examples/statemachine.
4143 2005-07-08 Joe Shaw <joeshaw@novell.com>
4145 * configure.in: Add a configure option, --with-console-auth-dir
4147 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4148 new setting. Patch from Kay Sievers.
4150 2005-07-06 Colin Walters <walters@verbum.org>
4152 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4153 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4154 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4155 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4156 Delete in favor of dbus_g_proxy_begin_call and
4157 dbus_g_proxy_cancel_call.
4158 (DBusGProxyCall, DBusGProxyCallNotify): New.
4159 (dbus_g_proxy_begin_call): Change prototype to take callback, user
4160 data, and destroy function. This replaces
4161 dbus_g_pending_call_set_notify.
4162 (dbus_g_proxy_cancel_call): Prototype.
4163 (DBusGAsyncData): Delete, shouldn't be needed anymore.
4165 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4167 (struct _DBusGProxyManager): Add bus_proxy member, which is an
4168 internal proxy for calls to the bus. Remove
4169 pending_nameowner_calls, now the internal proxy keeps track.
4170 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4171 pending_nameowner_calls.
4172 (got_name_owner_cb): Update prototype, and use
4173 dbus_g_proxy_end_call.
4174 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4175 (dbus_g_proxy_manager_register): Delete directly libdbus code in
4176 favor of using internal proxy.
4177 (dbus_g_proxy_manager_unregister): Update to use
4178 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4179 (dbus_g_proxy_init): Initialize pending calls map.
4180 (dbus_g_proxy_constructor): New.
4181 (dbus_g_proxy_class_init): Add get/set property functions,
4182 constructor, and add NAME, PATH, and INTERFACE properties.
4183 (cancel_pending_call): New function.
4184 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4186 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4187 (GPendingNotifyClosure): New structure.
4188 (d_pending_call_notify, d_pending_call_free): Moved here from
4190 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4192 (manager_begin_bus_call): New internal function for talking to
4194 (dbus_g_proxy_new): Construct object using GObjet properties.
4195 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4196 Create closure of same, and insert call into map of pending calls.
4197 (dbus_g_proxy_end_call_internal): Take call id instead of pending
4198 call. Look up pending call in current set. Remove it when we've
4200 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4201 (dbus_g_proxy_begin_call): Change API to take callback, user data,
4202 and destroy function directly.
4203 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4204 (dbus_g_proxy_call): Invoke with NULL callback.
4205 (dbus_g_proxy_cancel_call): New function, replaces
4206 dbus_g_pending_call_cancel.
4208 * glib/dbus-gparser.c (validate_signature): Fix call to
4211 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4212 New quark for attaching metadata to GType.
4213 (info_hash): Delete.
4214 (lookup_object_info): Look up using quark.
4215 (dbus_g_object_type_install_info): Check that a type is classed,
4216 not that it's an object. Also just install type data using quark
4217 instead of using global hash.
4219 * glib/dbus-glib.c (dbus_g_pending_call_ref)
4220 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4221 (GPendingNotifyClosure): Delete.
4222 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4223 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4225 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4226 client method generation until we can fix it...
4228 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4229 (load_from_service_thread_func): Ditto.
4231 * tools/dbus-names-model.c (struct NamesModel): Hold
4233 (have_names_notify): Update prototype, use
4234 dbus_g_proxy_cancel_call.
4235 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4237 * tools/dbus-monitor.c (filter_func): Update for print_message
4240 * test/glib/test-dbus-glib.c: Add more tests for async
4241 invocations. Update many begin_call/end_call pairs to just use
4244 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
4245 allows us to dump print-introspect.c.
4247 * tools/dbus-print-message.h (print_message): Add literal argument
4248 to print_message which is intended to allow printing arguments without
4249 metadata like "string=".
4251 * tools/dbus-print-message.c (print_iter): Add literal argument.
4252 (print_message): Allow printing string messages literally.
4254 2005-07-05 Colin Walters <walters@verbum.org>
4256 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4257 Remove value refcount leak, original patch from Jorn Baayen
4258 <jorn@openedhand.com>. Also remove useless extra value in favor
4259 of prepending to value array directly.
4261 2005-07-02 Colin Walters <walters@verbum.org>
4263 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4265 2005-07-01 Colin Walters <walters@verbum.org>
4267 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4269 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4270 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4271 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4272 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4274 2005-06-30 Colin Walters <walters@verbum.org>
4276 * test/glib/test-dbus-glib.c:
4277 * test/glib/test-service-glib.c:
4278 * test/glib/test-service-glib.xml: Update tests for new error
4279 setting bits, also add async tests (patch from Ross Burton).
4281 * test/glib/Makefile.am (test_service_glib_LDADD): Add
4282 DBUS_GLIB_THREADS_LIBS.
4284 * glib/dbus-gproxy.c (get_name_owner)
4285 (dbus_g_pending_call_end_valist): Ditto.
4287 * glib/dbus-gobject.c (error_metadata): New mapping from GError
4288 domain (GQuark) to DBusGErrorInfo.
4289 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4290 quark in error_metadata. Take message interface as default
4291 error message interface.
4292 (gerror_to_dbus_error_message): Pass message interface.
4293 (dbus_set_g_error): Resurrected.
4294 (dbus_g_error_info_free): New function.
4295 (dbus_g_object_type_install_info): Use g_type_class_ref instead
4296 of _peek to actually create the object class if it hasn't been
4298 (dbus_g_error_domain_register): New function.
4300 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4302 * glib/dbus-gparser.c (validate_signature): Ditto.
4304 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4305 (dbus_g_error_domain_register): Prototype.
4307 * glib/dbus-glib.c (dbus_g_error_set): Delete.
4310 2005-06-29 Colin Walters <walters@verbum.org>
4312 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
4313 DBUS_TYPE_G_OBJECT_PATH.
4315 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4316 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4317 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
4318 (dbus_g_object_path_get_g_type): New function.
4319 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4320 to DBUS_TYPE_G_OBJECT_PATH by default.
4321 (demarshal_proxy): Remove unused name variable.
4322 (demarshal_object_path, marshal_object_path): New functions.
4323 (demarshal_proxy_array, marshal_proxy_array): Delete.
4325 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4326 DBUS_TYPE_G_OBJECT_PATH to char *.
4327 (dbus_g_type_get_lookup_function): Map builtin
4328 DBUS_TYPE_G_OBJECT_PATH.
4330 * test/glib/test-dbus-glib.c
4331 * test/glib/test-service-glib.c (my_object_objpath):
4332 Adapt tests to new object path marshalling.
4334 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
4336 * configure.in: force check for Python >= 2.4
4338 2005-06-29 Colin Walters <walters@verbum.org>
4340 Patch from Ross Burton <ross@openedhand.com>
4342 * glib/dbus-gobject.c (invoke_object_method): Unset object
4343 value in all cases, not only in async case.
4345 2005-06-29 Colin Walters <walters@verbum.org>
4347 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4348 name_call for keeping track of any outgoing GetNameOwner call.
4349 Also add for_owner and associated.
4350 (struct _DBusGProxyManager): Add owner_names, which is hash table
4351 that maps a base name to a list of names it owns (that we're
4352 interested in). Add pending_nameowner_calls which is a list of
4353 all outstanding GetNameOwner; avoids us having to iterate over
4354 every proxy. Add unassociated_proxies which keeps track of name
4355 proxies with no associated name owner.
4356 (dbus_g_proxy_manager_unref): Destroy owner_names.
4357 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4359 (find_name_in_info, name_owner_foreach)
4360 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4361 (dbus_g_proxy_manager_monitor_name_owner)
4362 (dbus_g_proxy_manager_unmonitor_name_owner)
4363 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4364 New functions; they manipulate the owner_names mapping.
4365 (got_name_owner_cb): New function.
4366 (get_name_owner): New function, extracted from
4367 dbus_g_proxy_new_for_name_owner.
4368 (dbus_g_proxy_manager_register): For now we need to keep track of
4369 all NameOwnerChanged. Also if the proxy is for a name, if we
4370 don't already know the name owner, queue a new GetNameOwner
4371 request and add it to our list of unassociated proxies. Otherwise
4373 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4374 cancel any pending GetNameOwner call, etc.
4375 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
4376 the owner_names mapping to look up the current names for the
4377 signal source, and dispatch to any proxies for that name.
4378 (dbus_g_proxy_new): Initialize new members.
4379 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4380 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4381 (dbus_g_pending_call_end_valist): New function, extracted from
4382 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
4383 but want to use the GLib infrastructure. Also note how many
4384 arguments in reply were over.
4385 (dbus_g_pending_call_end): New function, just call
4386 dbus_g_pending_call_end_valist.
4387 (dbus_g_proxy_end_call_internal): Just call
4388 dbus_g_pending_call_end_valist.
4390 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4391 of builtin marshaller for STRING_STRING_STRING.
4393 * test/glib/test-dbus-glib.c:
4394 * test/glib/test-service-glib.c:
4395 * test/glib/test-service-glib.xml:
4396 Extend tests to cover name proxies, destruction of owner proxies,
4399 * glib/examples/example-signal-recipient.c
4400 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4402 * tools/dbus-send.c (main): Print D-BUS error name in addition
4405 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
4407 * python/dbus_bindings.pyx.in (cunregister_function_handler,
4408 cmessage_function_handler): Patch from
4409 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4410 by using the Py_GILState_Ensure/Release to synchronize with the
4413 2005-06-28 Ray Strode <rstrode@redhat.com>
4415 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4416 babysitter helper process on last unref, bug #2813.
4418 2005-06-27 Colin Walters <walters@verbum.org>
4420 * test/glib/test-dbus-glib.c:
4421 * test/glib/test-service-glib.c:
4422 * test/glib/test-service-glib.xml:
4423 Test hash table signal emitting.
4425 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4426 types to their fundamental basis types, since this is what
4427 marshallers operate on. Also add an entry for VOID__BOXED.
4428 (dbus_g_object_register_marshaller_array): Convert to fundamental.
4430 2005-06-26 Havoc Pennington <hp@redhat.com>
4432 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4435 2005-06-26 Colin Walters <walters@verbum.org>
4437 * glib/dbus-glib.c (dbus_set_g_error): Delete.
4438 (dbus_g_error_set): New public function from its ashes; used by
4439 both service-side method implementation and GLib bindings
4441 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4442 (_dbus_glib_test): Add some tests.
4444 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4446 * test/glib/test-service-glib.c (my_object_throw_error): Use
4449 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4450 errors thrown by dbus_g_error_set.
4452 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4454 * glib/dbus-gparser.c (validate_signature): Ditto.
4456 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
4457 (dbus_g_proxy_end_call_internal): Ditto.
4459 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4460 converts DBUS_ERROR_x to DBUS_GERROR_x.
4461 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4463 * doc/TODO: Remove error TODO.
4465 * doc/dbus-tutorial.xml: Update with documentation about error
4468 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4469 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4470 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
4472 2005-06-22 Colin Walters <walters@verbum.org>
4474 Patch from Ross Burton <ross@openedhand.com>
4476 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4478 2005-06-20 Colin Walters <walters@verbum.org>
4480 * configure.in: Add glib/examples.
4482 * glib/Makefile.am: Add examples/
4484 * glib/examples/.cvsignore
4485 * glib/examples/Makefile.am
4486 * glib/examples/example-client.c
4487 * glib/examples/example-service.c
4488 * glib/examples/example-service.xml
4489 * glib/examples/example-signal-emitter.c
4490 * glib/examples/example-signal-emitter.xml
4491 * glib/examples/example-signal-recipient.c:
4492 New files; GLib binding examples, ported from
4495 2005-06-20 Colin Walters <walters@verbum.org>
4498 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4501 * glib/dbus-binding-tool-glib.c:
4502 * doc/dbus-tutorial.xml:
4503 * test/glib/test-dbus-glib.c: Update for rename.
4505 2005-06-20 Colin Walters <walters@verbum.org>
4507 Patch suggested by Ross Burton <ross@openedhand.com>
4509 * glib/dbus-gobject.c (export_signals): Free signal name.
4510 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4511 memory leak. Add a bit of documentation.
4512 (dbus_g_method_return_error): Free context, and note we do
4515 2005-06-18 Murray Cumming <murrayc@murrayc.com>
4518 * glib/dbus-gobject.c:
4519 * glib/dbus-gproxy.c:
4520 * glib/dbus-gvalue.c: Predeclare structs as
4521 typedef struct _Something Something instead of
4522 typedef struct Something Something, so we can
4523 redeclare the prototypes. Other GNOME libraries
4526 2005-06-17 Colin Walters <walters@verbum.org>
4528 * tools/dbus-names-model.c (have_names_notify): Fix call
4529 to dbus_g_proxy_end_call.
4531 2005-06-17 Colin Walters <walters@verbum.org>
4533 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4534 spew warnings if we get malformed remote signals.
4536 * glib/dbus-gobject.c (propsig_iterate): New function.
4537 (lookup_object_info): New function, extracted from
4538 lookup_object_and_method.
4539 (introspect_properties, introspect_signals): Delete; these
4540 are merged into write_interface.
4541 (write_interface): Write out signals and properties here;
4542 dump the org.gtk.object stuff and use the interface given
4543 in the introspection data blob. Also fix up property XML.
4544 (lookup_values): New function.
4545 (introspect_interfaces): Gather a mapping from interface to a
4546 list of its methods, signals, and properties, then write out
4548 (lookup_object_and_method): Use lookup_object_info.
4549 (struct DBusGSignalClosure): Add interface.
4550 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4551 we can just use the constant data.
4552 (dbus_g_signal_closure_finalize): Don't free signal name.
4553 (signal_emitter_marshaller): Use interface from signal closure.
4554 (export_signals): Only export signals mentioned in introspection
4556 (dbus_g_connection_register_g_object): Warn if we have no
4557 introspection data for an object.
4558 (funcsig_equal): Remove unused variable.
4559 (dbus_g_object_register_marshaller): Take varargs instead of
4561 (dbus_g_object_register_marshaller_array): New function,
4562 extracted from old dbus_g_object_register_marshaller.
4564 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4565 signals and property data.
4566 (write_quoted_string): New function, extracted from generate_glue.
4567 (generate_glue): Write signals and properties to introspection
4570 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4571 exported_signals and exported_properties.
4572 (dbus_g_object_register_marshaller): Update prototype.
4573 (dbus_g_object_register_marshaller_array): Prototype.
4575 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4577 * test/glib/test-service-glib.c: Add new test signals and method
4580 * test/glib/test-service-glib.xml: Add some test signals.
4582 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4583 and my-object-marshal.h
4584 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4585 my-object-marshal.c.
4586 (my-object-marshal.c, my-object-marshal.h): Implement.
4588 * test/glib/.cvsignore: Update.
4590 * doc/TODO: Remove two GLib TODO items fixed by this
4593 2005-06-16 Colin Walters <walters@verbum.org>
4595 * doc/TODO: Update for GLib bindings.
4597 2005-06-16 Colin Walters <walters@verbum.org>
4599 * glib/dbus-binding-tool-glib.c:
4600 * glib/dbus-gobject.c:
4601 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
4602 from Ross Burton, for his GLib bindings work.
4604 2005-06-16 Colin Walters <walters@verbum.org>
4606 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4607 to iterate instead of walking to G_TYPE_INVALID.
4609 Patch based on a patch from Ryan Gammon.
4611 2005-06-16 Colin Walters <walters@verbum.org>
4613 * bus/bus.c (bus_context_new): Set parser to NULL
4614 after we unref it (Patch from Chris Boscolo, #2174).
4616 2005-06-16 Colin Walters <walters@verbum.org>
4618 * python/dbus_bindings.pyx.in: Import size_t,
4619 __int64_t, __uint64_t, and __signed.
4621 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4622 Define cmsg struct, output it.
4623 (_dbus_read_credentials_unix_socket):
4626 Patch from Joe Markus Clarke for FreeBSD support.
4628 2005-06-16 Colin Walters <walters@verbum.org>
4630 * tools/dbus-send.c (append_array): Use strtok.
4631 (append_dict): New function.
4632 (type_from_name): New function, extracted from main.
4633 (main): Handle sending dicts.
4635 * tools/dbus-print-message.c (print_iter): Print dict
4638 2005-06-16 Colin Walters <walters@verbum.org>
4640 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4641 values as the empty string (#2948).
4643 2005-06-16 Colin Walters <walters@verbum.org>
4646 * mono/doc/Makefile.am:
4647 * test/glib/Makefile.am:
4649 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4651 2005-06-16 Colin Walters <walters@verbum.org>
4653 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4654 header byte order from expected byte order (Patch from Chris Wilson, #3475).
4656 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
4657 Increment pointer after swapping fixed array. Add assertion
4660 2005-06-15 Colin Walters <walters@verbum.org>
4662 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4663 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
4665 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4667 * NEWS: Update to 0.34
4669 2005-06-15 David Zeuthen <davidz@redhat.com>
4671 * configure.in (LT_CURRENT): Revert back to 1 as the library
4672 hasn't changed and we've certainly not committed to protocol
4673 stability yet. All this does is to break ABI. See commit note
4674 from hp@redhat.com 2005-05-05 for details.
4676 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4678 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
4679 (_dbus_connection_run_builtin_filters): New method
4680 (dbus_connection_dispatch): Run the builtin filters which in turn
4681 runs the peer filter which handles Ping messages.
4684 - Ping isn't handled: This patch fixes it
4686 - Add a test case for the Ping message: added TODO item
4688 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4690 * dbus/dbus-message.c:
4691 (dbus_message_has_path): New method
4692 (dbus_message_has_interface): New method
4693 (dbus_message_has_member): New method
4695 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4698 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
4699 the keyring directory is private to the user
4702 - The convenience functions in dbus-bus.h should perhaps have
4703 the signatures that they would have if they were autogenerated
4704 stubs. e.g. the acquire service function. We should also evaluate
4705 which of these functions to include, in light of the fact that
4706 GLib/Qt native stubs will probably also exist.: Punted
4708 - add dbus_message_has_path(), maybe has_member/interface:
4711 - in dbus-keyring.c, enforce that the keyring dir is not
4712 world readable/writable: Fixed in this patch
4714 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
4716 * dbus/dbus-marshal-validate.h: Added a new validation
4717 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
4718 out of memory errors when validating signitures
4720 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4721 in places where we previously used DBUS_VALID and a FALSE return
4722 value to indicate OOM
4724 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4725 Use a stack to track the number of elements inside containers. The
4726 stack values are then used to validate that dict entries have only two
4727 elements within them.
4728 (validate_body_helper): check the reason for failure when validating
4731 * dbus/dbus-message.c (load_message): use
4732 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
4733 DBUS_VALID and a FALSE return value to indicate OOM
4735 * doc/TODO: remove "- validate dict entry number of fields" as this
4738 2005-06-14 David Zeuthen <davidz@redhat.com>
4740 * bus/bus.c (process_config_every_time): Drop existing conf-dir
4741 watches (if applicable) and add new watches
4743 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4744 (main): Setup SIGIO signal handler if using D_NOTIFY
4746 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4748 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4749 (merge_included): Also merge conf_dirs list
4750 (bus_config_parser_unref): Clear conf_dirs list
4751 (include_dir): Add directory to conf_dirs list
4752 (bus_config_parser_get_conf_dirs): New function
4754 * bus/dir-watch.[ch]: New files
4756 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4758 * configure.in: Add checks for D_NOTIFY on Linux
4760 2005-06-14 Colin Walters <walters@verbum.org>
4762 * glib/dbus-binding-tool-glib.c:
4763 * glib/dbus-gobject.c:
4764 * glib/dbus-gvalue.c: Fix indentation and brace style.
4766 2005-06-14 Ross Burton <ross@openedhand.com>.
4768 * glib/dbus-glib.h: Make DBusGMethodInvocation
4769 a private structure. Rearrange prototypes a bit.
4771 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4772 documentation for first_arg_type.
4774 * glib/dbus-gobject.c: Move DBusGMethodInvocation
4775 here, add documentation. Move dbus_g_method_return
4776 and dbus_g_method_return_error into public API
4779 2005-06-14 Colin Walters <walters@verbum.org>
4781 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4782 Add missing return statements, noticed by Ross Burton.
4784 2005-06-13 Ross Burton <ross@openedhand.com>.
4786 * glib/dbus-gobject.c: Handle errors on message
4787 demarshalling by sending error message back.
4788 * glib/dbus-gvalue.c: Initialize return variables.
4790 2005-06-13 Colin Walters <walters@verbum.org>
4792 * glib/Makefile.am: Fix thinko in last patch.
4794 2005-06-13 Colin Walters <walters@verbum.org>
4796 * glib/Makefile.am: Move dbus-gtype-specialized.c
4797 and dbus-gtype-specialized.h into a _HEADERS variable,
4800 2005-06-12 Colin Walters <walters@verbum.org>
4802 Async signals and various bugfixes and testing by
4803 Ross Burton <ross@openedhand.com>.
4805 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4806 (dbus_gvalue_genmarshal_name_from_type)
4807 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4808 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4809 (dbus_g_value_types_init, dbus_gtype_from_signature)
4810 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4811 (dbus_gtypes_from_arg_signature): New function prototypes.
4812 (dbus_gvalue_demarshal): Take context and error arguments.
4813 (dbus_gvalue_demarshal_variant): New function.
4814 (dbus_gvalue_demarshal_message): New function.
4815 (dbus_gvalue_store): Delete.
4817 * glib/dbus-gvalue.c:
4819 File has been almost entirely rewritten; now we special-case
4820 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4821 hash tables correctly, etc. Full support for recursive values
4822 is not yet complete.
4824 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4825 argument of signal to G_TYPE_POINTER since we now pass a
4827 (lookup_g_marshaller): Delete in favor of
4828 _dbus_gobject_lookup_marshaller.
4829 (marshal_dbus_message_to_g_marshaller): Use
4830 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4831 to handle remote signal callbacks.
4832 (dbus_g_proxy_new_from_proxy): New function; creates a new
4833 DBusGProxy by copying an existing one.
4834 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4835 (dbus_g_proxy_get_path): New functions.
4836 (dbus_g_proxy_marshal_args_to_message): New function;
4837 factored out of existing code.
4838 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4839 from a varargs array.
4840 (dbus_g_proxy_begin_call_internal): New function.
4841 (dbus_g_proxy_end_call_internal): New function.
4842 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4843 as arguments; simply invoke dbus_g_proxy_begin_call_internal
4844 after collecting args into value array.
4845 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4846 invoke dbus_g_proxy_end_call_internal.
4847 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4849 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4851 (array_free_all): New function.
4852 (dbus_g_proxy_add_signal): Take GTypes.
4854 * glib/dbus-gobject.h:
4855 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4856 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4859 * glib/dbus-gobject.c: Add a global marshal_table hash which
4860 stores mappings from type signatures to marshallers. Change lots
4861 of invocations of dbus_gtype_to_dbus_type to
4862 dbus_gtype_to_signature.
4863 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4864 (introspect_signals): Fix test for query.return_type.
4865 (set_object_property): Update invocation of dbus_gvalue_demarshal.
4866 (invoke_object_method): Many changes. Handle asynchronous
4867 invocations. Convert arguments with
4868 dbus_gvalue_demarshal_message. Handle errors. Use
4869 DBusSignatureIter instead of strlen on args. Handle all arguments
4870 generically. Special-case variants.
4871 (dbus_g_method_return, dbus_g_method_return_error): New function.
4872 (DBusGSignalClosure): New structure, closes over signal
4874 (dbus_g_signal_closure_new): New function.
4875 (dbus_g_signal_closure_finalize): New function.
4876 (signal_emitter_marshaller): New function; is special marshaller
4877 which emits signals on bus.
4878 (export_signals): New function; introspects object signals and
4880 (dbus_g_object_type_install_info): Take GType instead of
4882 (dbus_g_connection_register_g_object): Invoke export_signals.
4883 (dbus_g_connection_lookup_g_object): New function.
4884 (DBusGFuncSignature) New structure; used for mapping type
4885 signatures to marshallers.
4886 (funcsig_hash): New function; hashes DBusGFuncSignature.
4887 (funcsig_equal): New function; compares DBusGFuncSignature.
4888 (_dbus_gobject_lookup_marshaller): New function.
4889 (dbus_g_object_register_marshaller): New function; used to
4890 register a marshaller at runtime for a particular signature.
4892 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4894 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4895 which notes a server method implementation should be
4898 * glib/dbus-binding-tool-glib.c
4899 (dbus_binding_tool_output_glib_server): Call
4900 dbus_g_value_types_init.
4901 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
4903 (dbus_g_type_get_lookup_function): Turn GType into an invocation
4904 of a lookup function.
4905 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4906 (write_untyped_out_args): New method; write output arguments.
4907 (write_formal_declarations_for_direction): Function for
4909 (write_formal_parameters_for_direction): Function for
4910 writing implementations.
4911 (write_typed_args_for_direction): Function for writing
4912 arguments prefixed with GTypes.
4913 (write_async_method_client): Write out async version
4916 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4917 (dbus_g_type_get_marshal_name): Move mapping from GType
4918 to marshal name into here.
4919 (dbus_g_type_get_c_name): Move into here.
4920 (compute_marshaller): Convert signature to type with
4921 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4922 (compute_marshaller_name): Ditto.
4923 (compute_marshaller): Handle async signal annotations.
4924 (gather_marshallers): Return if we don't have a known
4926 (generate_glue): Collect introspection blob here, and
4927 write all of the blob at the end. This allows an object
4928 with multiple interfaces to work.
4929 Mark async methods in introspection blob.
4931 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4932 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4933 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4935 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4936 avoids people accidentally using DBUS_TYPE_* which should
4937 not be necessary anymore.
4938 Do include dbus-gtype-specialized.h, which are utilities
4939 for GLib container types.
4940 Add various #defines for types such as
4941 DBUS_TYPE_G_BOOLEAN_ARRAY.
4942 (DBusGValueIterator, DBusGValue): Define, not fully used
4944 (dbus_g_value_get_g_type): Type for recursive value.
4945 (dbus_g_value_open, dbus_g_value_iterator_get_value)
4946 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4947 (dbus_g_value_free): Prototypes.
4948 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4949 (dbus_g_proxy_set_interface): Prototype.
4950 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4951 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4953 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4955 (DBusGAsyncData, DBusGMethodInvocation): Structures for
4956 doing async invocations.
4957 (dbus_g_method_return, dbus_g_method_return_error):
4959 * doc/dbus-tutorial.xml: Update GLib section.
4961 * tools/dbus-viewer.c (load_child_nodes): Update
4962 for new invocation type of dbus_g_proxy_end_call.
4963 (load_from_service_thread_func): Ditto.
4965 * tools/print-introspect.c (main): Ditto.
4967 * tools/dbus-names-model.c (have_names_notify)
4968 (names_model_reload, names_model_set_connection)
4971 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4972 needed since Python bindings use GLib bindings.
4974 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4975 Add --prefix argument.
4977 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
4978 unneeded --ignore-unsupported arg.
4980 * test/glib/test-service-glib.c:
4981 * test/glib/test-service-glib.xml:
4982 * test/glib/test-dbus-glib.c: Add many more tests.
4984 2005-06-06 David Zeuthen <davidz@redhat.com>
4986 * doc/TODO: Add item about need to remove deprecated functions.
4988 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4990 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4991 to repair the ABI which was broken with the last commit.
4993 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
4995 * dbus/dbus-connection.c, dbus/dbus-connection.h
4996 (dbus_connection_disconnect): renamed to dbus_connection_close
4997 for API symmetry with dbus_connection_open
4998 (_dbus_connection_open_internal):
4999 s/dbus_connection_disconnect/dbus_connection_close
5001 * dbus/dbus-bus.c (dbus_bus_get):
5002 s/dbus_connection_disconnect/dbus_connection_close
5004 * bus/connection.c (bus_connections_unref,
5005 bus_connections_setup_connection, bus_connections_expire_incomplete):
5006 s/dbus_connection_disconnect/dbus_connection_close
5008 * bus/dispatch.c (bus_dispatch, kill_client_connection,
5009 kill_client_connection_unchecked, check_hello_connection):
5010 s/dbus_connection_disconnect/dbus_connection_close
5012 * bus/bus.c (new_connection_callback):
5013 s/dbus_connection_disconnect/dbus_connection_close
5015 * tools/dbus-send.c (main):
5016 s/dbus_connection_disconnect/dbus_connection_close
5018 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5019 s/dbus_connection_disconnect/dbus_connection_close
5021 * test/test-service.c (path_message_func, filter_func):
5022 s/dbus_connection_disconnect/dbus_connection_close
5024 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
5026 2005-05-25 Colin Walters <walters@verbum.org>
5028 * dbus/dbus-protocol.h: Move various bus service #defines such
5029 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5031 * dbus/dbus-shared.h: Various defines moved here.
5032 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5034 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
5036 * python/__init__.py: Python bindings deserve a minor version
5037 update. Upped to (0, 40, 2)
5039 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
5041 * python/decorators.py: add explicitly_pass_message decorator
5042 for passing in the dbus message as keyword for edge case signal
5045 * python/matchrules.py (SignalMatchRule.__repr__): fix output
5046 to conform with what dbus expects for match rules
5047 (SignalMatchRule.execute): add the dbus message as a keyword
5048 if the signal handler has requested it
5050 * python/examples/example/signal-recipient.py: added some more
5051 examples on how to hook up to signals
5053 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
5055 * python/decorators.py: import dbus_bindings
5057 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
5058 SignalMatchNode): new classes that implement wildcard signal
5059 callback matching using a tree lookup. Heavily modified from a
5060 patch sent by Celso Pinto (fd.o bug #3241)
5062 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5063 use new match classes to handle signals.
5065 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
5067 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5069 2005-05-18 Havoc Pennington <hp@redhat.com>
5071 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5072 gettext. Not really worth requiring yet perhaps, but any
5073 production quality 1.0 would require it so we should go ahead and
5074 get things set up. We do have a couple token calls to
5075 bindtextdomain in the code already.
5077 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
5079 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5080 when using recursive g_main_loops
5082 * python/_dbus.py (class Bus): add the ProxyObjectClass
5083 alias for ProxyObject to make it easier for the Twisted
5084 networking framework to integrate dbus.
5086 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5087 alias for ProxyMethod to make it easier for the Twisted
5088 networking framework to integrate dbus.
5090 2005-05-11 Ross Burton <ross@openedhand.com>
5092 * glib/dbus-glib-tool.c: Add --prefix argument.
5093 * glib/dbus-binding-tool-glib.h: Add prefix argument.
5094 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5095 Add prefix argument.
5096 (generate_glue): Pass prefix argument down.
5097 (dbus_binding_tool_output_glib_server): Pass prefix to
5100 2005-05-11 Colin Walters <walters@verbum.org>
5102 * tools/dbus-send.c (append_array): New function.
5103 (append_arg): Broken out from main.
5104 (main): Add cheesy hack to send arrays and variants.
5106 * tools/dbus-print-message.c (print_iter): Broken out
5109 2005-05-11 Colin Walters <walters@verbum.org>
5111 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5112 New function, returns signature string for signature iter.
5113 * dbus/dbus-signature.h: Prototype it.
5114 * dbus/dbus-message.c (dbus_message_iter_get_signature):
5115 New function, returns signature string for message iter.
5116 (dbus_message_iter_get_array_len): New function, returns
5118 (dbus_message_iter_get_fixed_array): Fix assertion; this
5119 function should be used when the iter is pointing to the
5120 contents of an array
5121 * dbus/dbus-message.h: Prototypes.
5122 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5123 New function; returns length of an array.
5124 * dbus/dbus-marshal-recursive.h: Prototype it.
5126 2005-05-11 Colin Walters <walters@verbum.org>
5128 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5131 2005-05-08 Havoc Pennington <hp@redhat.com>
5133 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5134 daemon's pid, not the parent's pid, to the file descriptor.
5135 Reported by Taj Morton.
5137 2005-05-05 Havoc Pennington <hp@redhat.com>
5139 * configure.in (LT_*): add notes on how the libtool versioning
5140 works to save thinking. Increment soname to indicate protocol
5141 breakage (though really the library interface hasn't changed I
5144 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5145 verify the GUID received from server matches what we were
5146 expecting, if we had an expectation
5148 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5149 (_dbus_auth_get_guid_from_server): new function
5150 (send_begin): parse the OK args
5152 * doc/dbus-specification.xml: add GUID to the auth protocol
5154 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
5156 * Fix my name in previous changelog ;)
5158 * python/proxies.py (ProxyObject.__getattr__): add further patch
5159 from Anthony Baxter to throw an AttributeError when python
5160 __special__ functions are called instead of marshling them over
5161 the bus (Bug#1685 comment 3).
5163 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
5165 * python/Makefile.am: changed to use pyexecdir for the binding
5166 shared libraries (Bug#2494)
5168 * python/exceptions.py: bring exceptions over from the bindings
5169 so they can be used in applications (Bug#2036)
5170 Make all exceptions derive from DBusException
5172 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5173 of classes so that print obj doesn't throw an exception (Bug #1685)
5175 2005-05-03 Ross Burton <ross@openedhand.com>
5177 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5178 Return if we get an error during registration. Set up a
5179 weak reference on object to unregister if object is destroyed.
5180 (unregister_gobject): New function.
5182 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
5184 * python/dbus_bindings.pyx.in:
5185 - added new type classes for hinting to the marashaler what type
5186 to send over the wire
5187 - added int16 and uint16 marshalers
5188 - Fixed a bug in the type constants that caused int32 to go out
5189 as uint16 over the wire
5190 * python/dbus.py: split up into different files and renamed _dbus.py
5191 * python/__init__.py, python/_util.py, python/decorators.py,
5192 python/exceptions.py, python/proxies.py, python/services.py,
5193 python/types.py: new files split off from dbus.py
5194 * python/Makefile.am: Add new files, remove dbus.py and
5195 install all python files to <python module dir>/dbus
5196 * python/examples/*: Added #!/usr/bin/env python to the top of
5197 every example. Patch provided by Tatavarty Kalyan
5199 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5201 * NEWS: Update to 0.33
5203 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
5205 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5206 method for doing async calls
5207 (_pending_call_notification): New C function for handling pendning call
5209 (set_notify): New method for setting pending call notification
5211 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5212 Async capabilities added to remote method calls
5213 (Sender): class removed
5214 (RemoteService): class removed
5215 (ObjectTree): class removed for now
5216 (RemoteObject): Renamed to ProxyObject
5217 (RemoteMethod): Renamed to ProxyMethod
5218 (method): Decorator added for decorating python methods as dbus methods
5219 (signal): Decorator added for decorating python methods as signal emitters
5220 (ObjectType): Metaclass added for generating introspection data and the
5221 method callback vtable
5222 (Interface): Wrapper class added to wrap objects in a dbus interface
5223 (Object): Uses ObjectType as its metaclass and exports Introspect
5224 of the org.freedesktop.DBus.Introspectable interface
5225 (ValidationException, UnknownMethodException): new exceptions
5227 * python/examples/*: Modified to fit with the new bindings
5229 2005-04-23 Havoc Pennington <hp@redhat.com>
5231 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5232 reported by Tony Houghton
5234 * test/test-service.c (main): test
5235 dbus_connection_get_object_path_data()
5237 * dbus/dbus-object-tree.c (find_handler): be sure we always init
5239 (_dbus_object_tree_get_user_data_unlocked): new function used by
5240 dbus_connection_get_object_path_data()
5241 (do_register): add assertion test for get_user_data_unlocked
5242 (object_tree_test_iteration): more tests
5244 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5245 new function from Dan Reed to let you get the user data from
5246 dbus_connection_register_object_path()
5248 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
5250 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5251 in numerous places that did not account for the NULL terminator
5252 (signature_from_seed): changed the manual string copy loop to
5253 just use strcpy instead
5254 make check should now pass
5256 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
5258 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5259 so that it allows messages that are not signals to pass in
5260 NULL as the interface.
5262 2005-04-18 David Zeuthen <davidz@redhat.com>
5264 * glib/dbus-gmain.c (io_handler_destroy_source):
5265 (timeout_handler_destroy_source, connection_setup_free):
5266 Also unref the source to avoid memory leaks.
5268 2005-04-13 David Zeuthen <davidz@redhat.com>
5270 * bus/config-parser.c (bus_config_parser_new): Bump this to a
5271 more reasonable, yet still totally arbitrary, value :-).
5273 2005-04-13 David Zeuthen <davidz@redhat.com>
5275 * doc/TODO: Added an "important for 1.0" item about selinux
5278 2005-04-13 David Zeuthen <davidz@redhat.com>
5280 * bus/selinux.c: Add c-file-style to top of file
5281 (log_audit_callback): Don't free the data here anymore
5282 (bus_selinux_check): Don't take spid and tpid since appending
5283 that to auxdata may OOM.
5284 (bus_selinux_allows_acquire_service): Handle OOM and signal back
5285 to the caller if we are OOM by taking an error object.
5286 (bus_selinux_allows_send): -do-
5288 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5289 and bus_selinux_allows_send
5291 * bus/bus.c (bus_context_check_security_policy): Pass error and
5292 pass on OOM thrown by bus_selinux_allows_send()
5294 * bus/services.c (bus_registry_acquire_service): Pass error and
5295 pass on OOM thrown by bus_selinux_allows_acquire_service()
5297 2005-04-13 Havoc Pennington <hp@redhat.com>
5299 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5300 message at a time to avoid monopolizing the main loop, bug
5301 #2953 from Benjamin Otte
5303 2005-04-09 Havoc Pennington <hp@redhat.com>
5305 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5306 possible overlap, fix from Daniel Reed
5307 (fixup_alignment): fix signedness warnings
5308 (_dbus_string_append_unichar): ditto
5310 2005-04-09 Havoc Pennington <hp@redhat.com>
5312 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5314 * glib/dbus-glib-tool.c (main): fix warning
5316 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5318 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5319 add a new function that can be used in simple applications that
5320 don't have a main loop and are willing to block
5322 2005-04-05 David Zeuthen <davidz@redhat.com>
5324 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5326 * glib/dbus-gmain.c:
5327 (io_handler_destroy_source): Remove from list of IO handlers
5328 of the ConnectionSetup object
5329 (timeout_handler_destroy_source): -do- for timeout handlers
5330 (io_handler_source_finalized): Don't remove from list since
5331 we now do that in io_handler_destroy_source(). Renamed from
5332 io_handler_source_destroyed
5333 (timeout_handler_source_destroyed): -do- for timeout handlers
5334 (connection_setup_free): It is now safe to iterate over all
5335 IO and timeout handlers as the _destroy_source removes them
5336 from the list synchronously
5338 2005-03-30 Havoc Pennington <hp@redhat.com>
5340 * configure.in: change check to gtk 2.4
5342 * tools/dbus-viewer.c (name_combo_changed_callback): remove
5343 gtk_combo_box_get_active_text() usage to decrement GTK requirement
5346 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5350 * HACKING: Fixed realease instructions. configure.in should be updated to
5351 the next release by the person who made the last release.
5353 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
5355 * python/lvalue_cast_post_process.py - removed. Patch has been
5356 submitted to Pyrex maintainers that fixes gcc4.0 errors
5358 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5360 2005-03-24 Daniel Reed <n@ml.org>
5362 * tools/Makefile.am: Make print-introspect and
5363 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5365 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
5367 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5369 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
5370 had in Red Hat packages for a while but for some reason never
5372 (_dbus_is_a_number): New checks if a string
5373 can be converted to a number and does the conversion if it can
5374 (_dbus_user_database_lookup): Add check to see if the given username
5375 is a udi. This allows udi's to be used instead of usernames in the
5377 (_dbus_user_database_lookup_group): Add check to see if the given groupname
5378 is a gdi. This allows gdi's to be used instead of groupnames in the
5381 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
5383 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5384 code so that it compiles with gcc4.0
5386 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5387 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5388 results back to dbus_binding.c
5390 2005-03-20 Colin Walters <walters@verbum.org>
5392 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5394 * configure.in: Require GTK+ 2.6.
5396 2005-03-20 Colin Walters <walters@verbum.org>
5398 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5400 2005-03-17 Tom Parker <palfrey@tevp.net>
5402 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5403 print DBUS_UID_UNSET; instead print passed username. Also
5404 be sure to actually use gid looked up in cache.
5406 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5407 for DBUS_GID_UNSET and groupname.
5409 2005-03-17 Colin Walters <walters@verbum.org>
5411 * bus/print-introspect.c: Move to tools/.
5412 * bus/run-with-tmp-session-bus.sh: Ditto.
5414 * glib/Makefile.am (dbus-glib-bindings.h): Move
5415 generation to tools/Makefile.am.
5417 * test/glib/run-test.sh: Update to handle move
5418 of run-with-tmp-session-bus.sh.
5420 * test/glib/test-service-glib.c: Update to handle
5421 move of dbus-glib-bindings.h.
5423 * tools/print-introspect.c: Moved here
5424 from bus/, and ported to GLib bindings.
5426 * tools/run-with-tmp-session-bus.sh: Moved here
5429 * tools/Makefile.am: Generate dbus-glib-bindings.h
5430 and dbus-bus-introspect.xml here.
5432 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5435 2005-03-17 Colin Walters <walters@verbum.org>
5437 * bus/driver.c (write_args_for_direction): Use
5438 _dbus_string_get_const_data to retrieve string;
5439 _dbus_string_get_const_data_len doesn't actually return
5440 a NULL-terminated substring.
5442 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5443 (main): Change to use org_freedesktop_DBus_request_name
5444 instead of using g_proxy_begin_call/end_call.
5446 2005-03-15 Joe Shaw <joeshaw@novell.com>
5448 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5449 generating the finalizer. Fixes from Ben Maurer.
5451 2005-03-12 Joe Shaw <joeshaw@novell.com>
5453 * mono/BusDriver.cs: Update method names: ListServices
5454 becomes ListNames; GetOwner becomes GetNameOwner.
5456 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5457 onto the eval stack when removing the delegate.
5459 2005-03-12 Joe Shaw <joeshaw@novell.com>
5461 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5462 LT_CURRENT. Set it to the autoconf variable.
5464 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5465 classes that disconnects the signal handler delegate from the
5466 service object. Fixes a big leak of proxy objects on the
5467 client side of things. Patch from Ben Maurer
5468 <bmaurer@ximian.com>
5470 2005-03-12 Colin Walters <walters@verbum.org>
5472 * bus/driver.c (write_args_for_direction): New function,
5473 parses a type signature into arguments and outputs to
5475 (bus_driver_handle_introspect): Use it instead of
5476 hardcoding XML for certain signatures.
5478 * bus/Makefile.am (dbus-bus-introspect.xml): Add
5479 dependency on dbus-daemon.
5481 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5482 argument, pass it to dbus_binding_tool_output_glib_client.
5484 * glib/dbus-binding-tool-glib.c
5485 (generate_client_glue): Protect against multiple inclusion.
5486 (dbus_binding_tool_output_glib_client): Add
5487 G_BEGIN_DECLS/G_END_DECLS.
5489 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5490 Change to just take iface prefix directly.
5491 (write_formal_parameters): Clarify error message.
5492 (check_supported_parameters): New function; checks to see type
5493 signatures of method parameters are supported.
5494 (generate_client_glue): Handle ignore_unsupported flag.
5495 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5498 * glib/Makefile.am (dbus-glib-bindings.h): Pass
5499 --ignore-unsupported by default until glib bindings
5502 2005-03-11 Colin Walters <walters@verbum.org>
5504 * glib/Makefile.am: Generate dbus-glib-bindings.h and
5507 * bus/print-introspect.c: New file; prints introspection
5508 data for a given name and object path.
5510 * bus/run-with-tmp-session-bus.sh: New file, refactored
5511 from test/glib/run-test.sh. Creates a temporary session
5512 bus and runs another program.
5514 * test/glib/run-test.sh: Refactor to invoke
5515 run-with-tmp-session-bus.sh.
5517 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5518 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
5519 macros instead of hardcoding.
5521 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5523 2005-03-11 Joe Shaw <joeshaw@novell.com>
5525 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5526 this unref; it doesn't match up evenly in some codepaths.
5527 (_dbus_connection_block_pending_call): Unref at every exitpoint;
5528 this evenly matches with the ref near the top of this function.
5530 2005-03-09 Joe Shaw <joeshaw@novell.com>
5532 * dbus/dbus-object-tree.c
5533 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5534 and we try to unregister a path that's not registered, still go
5535 through the process of unlocking and don't just return.
5537 2005-03-09 Colin Walters <walters@verbum.org>
5539 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5540 to this are generated for client-side wrappers. Invokes a
5541 D-BUS method and returns reply values.
5543 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5544 function; writes signature string for argument direction.
5545 (write_args_for_direction): Change to pass input values directly
5546 instead of via address, and fix indentation.
5547 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
5548 make generated wrappers inlineable.
5550 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5551 note about using dbus_type_is_fixed.
5553 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5554 dbus/dbus-signature.c as dbus_type_is_fixed.
5556 All callers updated.
5558 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5559 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5561 * dbus/dbus-signature.h: Prototype.
5563 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5566 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5567 appropriate instead of just freeing it.
5568 (main): Free returned strings using g_free.
5570 * test/glib/Makefile.am (test-service-glib-glue.h)
5571 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5573 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5574 simply maps a simple D-BUS type to GType.
5575 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5577 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5578 initialize the value with it.
5579 (dbus_gvalue_binding_type_from_type): Unused, delete.
5580 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5581 various types instead of unmarshalling to value data directly.
5582 Remove can_convert boolean.
5583 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5584 returning directly instead of using can_convert boolean.
5585 (dbus_gvalue_store): New function; not related to D-BUS per-se.
5586 Stores a GValue in a pointer to a value of its corresponding C
5589 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5590 add dbus_gvalue_store.
5592 2005-03-08 Joe Shaw <joeshaw@novell.com>
5594 Fix a bunch of lifecycle and memory management problems
5595 in the mono bindings.
5597 * mono/Arguments.cs (Arguments): Implement IDisposable
5599 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
5600 strictly a static class.
5602 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5603 delegates into this file.
5604 (Connection): Implement IDisposable.
5605 (Dispose): Disconnect the connection and set the raw connection
5606 pointer to IntPtr.Zero.
5607 (~Connection): Call Dispose().
5608 (RegisterObjectPath): Added. Manages the registration of object
5609 paths so we can cleanly disconnect them at dispose/finalize time.
5610 (UnregisterObjectPath): Ditto.
5611 (set_RawConnection): Unregister all of the object paths when
5612 changing the underlying DBusConnection. Add them back onto the
5613 new connection, if any.
5615 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5616 more unmanaged resources anymore, so it's not necessary. Move all
5617 the DBusObjectPathVTable stuff out of here.
5618 (Handler): Save references to our delegates so that they don't get
5619 finalized. Call Connection.RegisterObjectPath() instead of
5620 dbus_connection_register_object_path() directly.
5621 (Message_Called): Dispose the message after we're finished with
5624 * mono/Message.cs (Message): Implement IDisposable.
5625 (Dispose): Dispose the Arguments, and set the RawMessage to
5627 (SendWithReplyAndBlock): We own the ref to the reply that comes
5628 back from dbus_connection_send_with_reply_and_block() so add a
5629 comment about that and unref it after we've constructed a managed
5630 MethodReturn class around it. Fixes a big, big leak.
5632 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5634 (BuildSignalHandler): After we've sent the Signal message, dispose
5636 (BuildMethod): Dispose of the method call and reply messages after
5637 we've sent the message and extracted the data we want from the
5640 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5642 (Service_FilterCalled): Dispose of the message after we're
5645 2005-03-08 Joe Shaw <joeshaw@novell.com>
5647 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5648 After we attach our pending call to the connection, unref
5651 * mono/Connection.cs (set_RawConnection): Disconnect our
5652 filter and match callbacks from the old connection and
5653 reconnect them to the new connection, if any.
5655 * mono/DBusType/Array.cs: "Code" is a static member, so
5656 don't use "this" to refer to it. Fix for stricter checking
5659 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5660 object path that we pass into unmanaged code.
5662 * mono/DBusType/String.cs (Append): Don't leak the string
5663 that we pass into unmanged code.
5665 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
5666 * NEWS: Update for 0.31
5668 * configure.in: Release 0.31
5669 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5671 * qt/Makefile.am: fixed build
5673 * dbus/Makefile.am: soname bump for libdbus
5675 * glib/Makefile.am: soname bump for libdbus-glib
5677 2005-03-05 Havoc Pennington <hp@redhat.com>
5679 * dbus/dbus-sysdeps.c:
5680 (pseudorandom_generate_random_bytes_buffer): fix to have no return
5682 (_dbus_generate_random_bytes_buffer): fix return value
5684 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5685 checks actually work, from Tom Parker <fdo@tevp.net>
5687 2005-03-01 Colin Walters <walters@verbum.org>
5689 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5690 functions copied from dbus-glib-tool.c.
5691 (main): Convert lots of error code to use them.
5692 Also add some testing for introspection bits.
5694 2005-03-01 Colin Walters <walters@verbum.org>
5696 * doc/TODO: Remove introspection signature TODO.
5698 2005-02-27 Colin Walters <walters@verbum.org>
5700 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5701 Change return value to const char * instead of int so we can do
5703 (struct PropertyInfo, struct ArgInfo): Store char *.
5704 (property_info_new, arg_info_new): Update parameters, strdup.
5705 (property_info_unref, arg_info_unref): Free.
5707 * glib/dbus-gidl.h: Update prototypes.
5709 * glib/dbus-gparser.c (basic_type_from_string): Delete.
5710 (validate_signature): New function, just validates signature and
5712 (parse_property, parse_arg): Invoke validate_signature. Store
5713 signature instead of just type code.
5715 * glib/dbus-gvalue.c (base_type_from_signature): New utility
5716 function to return a primary type for a signature, dropping
5717 information about types in container types.
5718 (dbus_gvalue_genmarshal_name_from_type)
5719 (dbus_gvalue_binding_type_from_type)
5720 (dbus_gvalue_ctype_from_type): Update to take full signature
5721 instead of type code.
5722 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5724 * glib/dbus-gvalue.h: Update prototypes for above.
5726 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5727 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5728 (introspect_properties, introspect_signals, write_interface):
5729 Update to handle signatures, and remove usage of
5730 _dbus_gutils_type_to_string.
5731 (handle_introspect): Print out type codes instead of e.g. "string"
5732 in hardcoded introspection XML; also use x_AS_STRING constants
5733 instead of hardcoding in string.
5735 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5736 to string. Remove usage of _dbus_gutils_type_to_string.
5738 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5740 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5743 * glib/dbus-binding-tool-glib.c (compute_marshaller)
5744 (compute_marshaller_name, generate_glue): Handle signature change
5746 (write_formal_parameters, write_args_for_direction): Ditto, and
5749 * tools/dbus-tree-view.c (type_to_string): Delete.
5750 (info_set_func_text): Update to print full signatures.
5752 * test/glib/test-service-glib.xml: Change types to new
5753 introspection format.
5755 2005-02-26 Havoc Pennington <hp@redhat.com>
5757 * doc/TODO: remove the "guid" item
5759 * test/glib/test-profile.c (no_bus_thread_func): use open_private
5760 (with_bus_thread_func): use open_private
5762 * dbus/dbus-connection.c (dbus_connection_open_private): new
5763 function that works like the old dbus_connection_open()
5764 (dbus_connection_open): now returns an existing connection if
5767 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5768 through the GUID to the transport
5770 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5771 GUID in hex-encoded form.
5773 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5774 pass GUID argument in to the transport
5776 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5779 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5781 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5783 2005-02-25 Havoc Pennington <hp@redhat.com>
5785 * doc/dbus-specification.xml: document the GUID thing
5787 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5788 globally unique ID for the server, and put a "guid=hexencoded"
5789 field in the address
5791 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5793 * dbus/dbus-message.c: ditto
5795 * dbus/dbus-dataslot.c: ditto
5797 * dbus/dbus-list.c: ditto
5799 * dbus/dbus-internals.h: wait, just include
5800 dbus-threads-internal.h here
5802 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5805 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5807 2005-02-24 Colin Walters <walters@verbum.org>
5809 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5811 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
5813 * glib/Makefile.am: added dbus-gobject.h to sources list
5814 so distcheck doesn't fail
5816 2005-02-24 Havoc Pennington <hp@redhat.com>
5818 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5819 you must disconnect before unref, since locking and other things
5820 are screwed up otherwise. Fix assorted other locking stuff.
5822 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5825 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5826 into a private header and don't export from the library
5828 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5830 2005-02-24 Colin Walters <walters@verbum.org>
5832 * dbus/dbus-signature.c: New file; implements various functions
5833 related to type signatures. Includes an interator for parsing,
5834 validation functions.
5835 (dbus_type_is_basic): Moved here from
5836 dbus-marshal-basic.c:_dbus_type_is_basic.
5837 (dbus_type_is_container): Moved here from
5838 dbus-marshal-basic.c:_dbus_type_is_container.
5840 All callers of _dbus_type_is_container and _dbus_type_is_basic
5841 updated, and include dbus-signature.h.
5843 * dbus/dbus-signature.h: New file; prototypes for the above.
5845 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5848 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5849 function factored out of _dbus_first_type_in_signature.
5850 (_dbus_first_type_in_signature_c_str): New function; returns first
5851 type code for a type signature character.
5853 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5854 handle function moves.
5856 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5858 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5859 function; skips to next complete type in type signature.
5860 Implemented using previous skip_one_complete_type. Now
5861 skip_one_complete_type just delegates to
5862 _dbus_type_signature_next.
5864 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5866 (_dbus_type_is_container): Ditto.
5868 * doc/dbus-specification.xml: Update introspection sample to
5869 use real type signatures.
5871 * dbus/dbus-test.h: Prototype signature test.
5873 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5876 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5878 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
5880 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5881 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5883 2005-02-21 Colin Walters <walters@verbum.org>
5885 * dbus/dbus-test-main.c (main): Take optional specific test
5888 * dbus/dbus-test.c (run_test): New function, runs a test function
5889 with no data directory.
5890 (run_data_test): Like above, but takes data directory.
5891 (dbus_internal_do_not_use_run_tests): Take
5892 specific test argument. Replace lots of cut n' paste code
5893 with run_test and run_data_test.
5895 * dbus/dbus-test.h: Update prototype for
5896 dbus_internal_do_not_use_run_tests.
5898 2005-02-20 Havoc Pennington <hp@redhat.com>
5900 Fix bugs reported by Daniel P. Berrange
5902 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5903 (protected_change_watch): new function
5904 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5905 (_dbus_server_add_watch): change to work like the
5906 dbus-connection.c equivalents; like those, probably kind of
5907 busted, but should at least mostly work for now
5908 (dbus_server_disconnect): drop the lock if we were already
5909 disconnected, patch from Daniel P. Berrange
5911 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
5912 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5915 * doc/TODO: todo about unscrewing this mess
5917 2005-02-19 Colin Walters <walters@verbum.org>
5919 * glib/dbus-binding-tool-glib.c
5920 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5922 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5923 as errno.h and sys/stat.h.
5924 (lose): New function, prints error with
5926 (lose_gerror): Similar, but takes GError for message.
5927 (main): Add --output argument to specify output file to write to,
5928 instead of always printing to stdout. In this mode, determine
5929 timestamps on source files to see whether any are newer than the
5930 target file. If not, exit. Also convert a number of error
5931 messages to use lose (since it's shorter), and switch to using
5932 g_io_channel_shutdown.
5934 2005-02-19 Havoc Pennington <hp@redhat.com>
5936 * glib/dbus-gobject.c
5937 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5939 * glib/dbus-glib.c: fix doxygen warnings
5941 * glib/dbus-gparser.c (parse_annotation): error if an annotation
5942 is found on an <arg>
5944 2005-02-17 Colin Walters <walters@verbum.org>
5946 * glib/dbus-gobject.h: Don't export
5947 _dbus_glib_marshal_dbus_message_to_gvalue_array.
5949 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5950 (invoke_object_method): Handle it.
5952 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5955 2005-02-17 Colin Walters <walters@verbum.org>
5957 * bus/.cvsignore, doc/.cvsignore
5958 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5961 2005-02-17 Colin Walters <walters@verbum.org>
5963 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5964 Rename to DBUS_SERVICE_DBUS.
5965 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5966 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5967 Change the value from "org.freedesktop.Local"
5968 to "org.freedesktop.DBus.Local".
5969 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5970 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5971 DBUS_INTERFACE_INTROSPECTABLE.
5972 Change the value from "org.freedesktop.Introspectable"
5973 to "org.freedesktop.DBus.Introspectable".
5974 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5975 DBUS_INTERFACE_PROPERTIES.
5976 Change the value from "org.freedesktop.Properties"
5977 to "org.freedesktop.DBus.Properties".
5978 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5979 DBUS_INTERFACE_PEER.
5980 Change the value from "org.freedesktop.Peer"
5981 to "org.freedesktop.DBus.Peer".
5982 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
5983 DBUS_INTERFACE_LOCAL.
5984 Change the value from "org.freedesktop.Local"
5985 to "org.freedesktop.DBus.Local".
5987 All other users of those constants have been changed.
5989 * bus/driver.c (bus_driver_handle_introspect): Use constants.
5991 * glib/dbus-gobject.c (handle_introspect): Use constants.
5993 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5995 2005-02-17 Colin Walters <walters@verbum.org>
5997 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5998 (parse_node, parse_interface, parse_method, parse_signal)
5999 (parse_property, parse_annotation): Lose if we're currently in an
6001 (parse_annotation): New function.
6002 (parser_start_element, parser_end_element): Handle annotation.
6003 (parse_method, parse_interface): Remove support for c_name attribute,
6004 switch to annotations.
6006 * glib/dbus-gidl.h (interface_info_get_binding_names)
6007 (method_info_get_binding_names)
6008 (interface_info_get_binding_name, method_info_get_binding_name)
6009 (interface_info_set_binding_name, method_info_set_binding_name):
6011 (interface_info_get_annotations, method_info_get_annotations)
6012 (interface_info_get_annotation, method_info_get_annotation)
6013 (interface_info_add_annotation, method_info_add_annotation):
6016 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6018 (struct MethodInfo): Ditto.
6019 Straightfoward conversion of binding methods into annotation methods
6022 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6024 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6026 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6027 Use new annotation API.
6029 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
6032 * doc/dbus-specification.xml: Discuss introspection annotations,
6033 include list of well-known annotations.
6035 * test/glib/test-service-glib.xml: Make validate against new DTD.
6037 2005-02-17 Colin Walters <walters@verbum.org>
6039 This patch is based on initial work from
6040 Paul Kuliniewicz <kuliniew@purdue.edu>.
6042 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6043 initialization of GValue from dbus type to here.
6044 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6045 for the "glib-genmarshal" program from a DBus type.
6046 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6047 into the C name for it we use in the glib bindings.
6048 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6049 glib C type (not GValue).
6050 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6052 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6053 from dbus-gobject.c.
6055 * glib/dbus-gutils.h: Prototype it.
6057 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6058 (marshal_dbus_message_to_g_marshaller): Use new shared function
6059 dbus_glib_marshal_dbus_message_to_gvalue_array.
6061 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6062 Will be changed once we have annotations.
6064 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6065 GStaticRWLock. Callers updated.
6066 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
6067 (string_table_next): New function for iterating over zero-terminated
6069 (string_table_lookup): New function; retrieves specific entry in
6071 (get_method_data): New function; look up method data in object data chunk.
6072 (object_error_domain_prefix_from_object_info)
6073 (object_error_code_from_object_info): New functions, but not implemented yet.
6074 (method_interface_from_object_info): New function; retrieve interface name.
6075 (method_name_from_object_info): New function; retrieve method name.
6076 (method_arg_info_from_object_info): New function; retrieve argument data.
6077 (arg_iterate): New function; iterates over serialized argument data.
6078 (method_dir_signature_from_object_info): New function; returns a
6079 GString holding type signature for arguments for just one
6080 direction (input or output).
6081 (method_input_signature_from_object_info)
6082 (method_output_signature_from_object_info): New functions.
6083 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6084 converts dbus message arguments into a GValue array. Used for both
6085 signal handling and method invocation.
6086 (struct DBusGlibWriteIterfaceData): New utility structure.
6087 (write_interface): New function; generate introspection XML for
6089 (introspect_interfaces): New function; gathers all interface->methods,
6090 generates introspection XML for them.
6091 (handle_introspect): Invoke introspect_interfaces.
6092 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6093 (lookup_object_and_method): New function; examines an incoming message
6094 and attempts to match it up (via interface, method name, and argument
6095 signature) with a known object and method.
6096 (gerror_domaincode_to_dbus_error_name): New function; converts a
6097 GError domain and code into a DBus error name. Needs GError data
6098 added to object introspection to work well.
6099 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6101 (invoke_object_method): New function to invoke an object method
6102 looked up via lookup_object_and_method. Parses the incoming
6103 message, turns it into a GValue array, then invokes the marshaller
6104 specified in the DBusGMethodInfo. Creates a new message with
6105 either return values or error message as appropriate.
6106 (gobject_message_function): Invoke lookup_object_and_method and
6107 invoke_object_method.
6109 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6110 (enum DBusBindingOutputMode): New enum for binding output modes.
6111 (pretty_print): Print binding names.
6112 (dbus_binding_tool_error_quark): GError bits.
6113 (version): Fix typo.
6114 (main): Create GIOChannel for output. Parse new --mode argument,
6115 possible values are "pretty-print", "glib-server", "glib-client".
6116 Use mode to invoke appropriate function.
6118 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6120 * glib/dbus-glib-tool.h: New header, just includes GError bits
6123 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6124 maps binding style to name.
6125 (struct MethodInfo): Ditto.
6126 (get_hash_keys, get_hash_key): Utility function, returns keys for
6128 (interface_info_new, method_info_new): Initialize bindings.
6129 (interface_info_unref, method_info_unref): Destroy bindings.
6130 (method_info_get_binding_names, method_info_get_binding_name)
6131 (interface_info_get_binding_names, interface_info_get_binding_name):
6132 Functions for retrieving binding names.
6133 (method_info_set_binding_name, interface_info_set_binding_name):
6134 Functions for setting binding names.
6136 * glib/dbus-binding-tool-glib.h: New file, has prototypes
6137 for glib binding generation.
6139 * glib/dbus-binding-tool-glib.c: New file, implements server-side
6140 and client-side glib glue generation.
6142 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6143 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6146 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6147 of using GClosureMarshal directly.
6148 (struct DBusGObjectInfo): Add n_infos member.
6150 * test/glib/test-service-glib.xml: New file; contains introspection data
6151 for MyTestObject used in test-service-glib.c.
6153 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6154 (my_object_do_nothing, my_object_increment, my_object_throw_error)
6155 (my_object_uppercase, my_object_many_args): New test methods.
6156 (main): Use dbus_g_object_class_install_info to include generated object
6159 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6160 as well as client-side bindings.
6162 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6163 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6164 using both the dbus_gproxy stuff directly as well as the generated bindings.
6166 2005-02-15 Havoc Pennington <hp@redhat.com>
6168 * dbus/dbus-connection.c (dbus_connection_dispatch): always
6169 complete a pending call, don't run filters first.
6171 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6172 dbus_pending_call_steal_reply
6174 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6175 _dbus_connection_block_pending_call
6176 (dbus_pending_call_get_reply): change to steal_reply and return a
6179 * dbus/dbus-connection.c
6180 (dbus_connection_send_with_reply_and_block): port to work in terms
6182 (_dbus_connection_block_pending_call): replace block_for_reply
6185 2005-02-14 Havoc Pennington <hp@redhat.com>
6187 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6188 properly handle looking up group information by name; fix
6191 2005-02-13 Havoc Pennington <hp@redhat.com>
6193 * dbus/dbus-connection.c (dbus_connection_return_message)
6194 (dbus_connection_borrow_message): hold dispatch lock while message
6196 (_dbus_connection_block_for_reply): hold dispatch lock while we
6197 block for the reply, so nobody steals our reply
6198 (dbus_connection_pop_message): hold the dispatch lock while we
6201 2005-02-13 Havoc Pennington <hp@redhat.com>
6203 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6204 (_dbus_connection_release_dispatch)
6205 (_dbus_connection_acquire_io_path)
6206 (_dbus_connection_release_io_path): make the mutex and condvar
6207 control access to the "acquired" flag. Drop the connection lock
6208 while waiting on the condvar. Hopefully these are baby steps in
6209 roughly the right direction.
6211 2005-02-13 Havoc Pennington <hp@redhat.com>
6213 * dbus/dbus-connection.c: use separate mutexes for the condition
6214 variables; this is some kind of baseline for sanity, but the
6215 condition variables still aren't used correctly afaict
6217 2005-02-13 Havoc Pennington <hp@redhat.com>
6219 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6222 * dbus/dbus-connection.c
6223 (_dbus_connection_detach_pending_call_unlocked): add this
6225 Initial semi-correct pass through to fix thread locking; there are
6226 still some issues with the condition variable paths I'm pretty
6229 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6232 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6233 rename to add _unlocked
6234 (struct DBusConnection): move "dispatch_acquired" and
6235 "io_path_acquired" to use only one bit each.
6236 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6237 (dbus_connection_set_watch_functions): hacky fix to reentrancy
6238 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
6239 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
6240 (_dbus_connection_remove_timeout)
6241 (_dbus_connection_toggle_timeout): drop lock when calling out to
6242 user functions; done in a hacky/bad way.
6243 (_dbus_connection_send_and_unlock): add a missing unlock
6244 (_dbus_connection_block_for_reply): add a missing unlock
6246 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6247 drop lock in a hacky probably unsafe way to call out to user
6250 2005-02-12 Havoc Pennington <hp@redhat.com>
6252 * tools/dbus-tree-view.c (info_set_func_text): display more
6255 * bus/driver.c (bus_driver_handle_list_services): list the bus
6258 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6260 * glib/dbus-gidl.c (signal_info_get_n_args): new function
6261 (method_info_get_n_args): new function
6263 2005-02-12 Havoc Pennington <hp@redhat.com>
6265 * bus/driver.c (bus_driver_handle_introspect): add introspection
6268 2005-02-12 Havoc Pennington <hp@redhat.com>
6270 * bus/driver.c: put the signature of each bus driver method in the
6271 table of handlers and check it on incoming calls; this isn't
6272 really useful, but going to add introspect support in a minute.
6274 2005-02-11 Joe Shaw <joeshaw@novell.com>
6276 * mono/Connection.cs: The unpredictability of finalizers in mono
6277 prevents us from deterministically disconnecting the filters from
6278 the Service class's finalizer, so move tracking of filters and
6279 matches here. Add API for that.
6281 * mono/Service.cs: Remove the code, add code which calls the
6282 methods now on the Connection class.
6284 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
6286 * python/dbus.py (class Sender): added to support dbus signals better
6287 (Bus::add_signal_receiver): added expand_args parameter which defaults
6288 to True. When expand args is True the signal handler will pass the
6289 message arguments as parameters to the signal handler. If False
6290 revert to previous behavior where the signal handler must get the
6291 argument list from the message. This is to help port applications
6292 like HAL that have a tendancy to send variable length argument lists.
6293 self._match_rule_to_receivers is now a dict of dicts.
6294 (Bus::remove_signal_receiver): pop handler off the dict intead of
6295 removing it from a list
6296 (Bus::_signal_func): change signal handlers so that interface,
6297 signal_name, service, path and message are packed into a Sender
6298 object and that is passed to the handler. If expand_args is True
6299 extract the args list from the message and append it to the parameter
6302 * python/dbus_bindings.pyx.in (class Signature): added to support
6304 (MessageIter::__init__): changed iteration limit to match D-BUS
6305 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
6306 STRUCT and VARIENT type support
6307 (MessageIter::python_value_to_dbus_sig): made recursive to support
6309 (MessageIter::append*): added Signature, dict, tuple
6312 * python/examples/example-client.py: added examples of getting tuples
6315 * python/examples/example-service.py: added examples of sending tuples
6318 * python/examples/example-signal-recipient.py: Fixed to handle new
6319 signal callback format
6321 2005-02-10 Havoc Pennington <hp@redhat.com>
6323 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6324 (call dbus_g_proxy_add_signal)
6326 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6328 (_dbus_server_new_for_domain_socket): escape the path
6330 * dbus/dbus-address.c (dbus_address_escape_value): new
6331 (dbus_address_unescape_value): new
6332 (dbus_parse_address): unescape values
6334 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6336 * doc/dbus-specification.xml: explain how to escape values in
6339 2005-02-10 Havoc Pennington <hp@redhat.com>
6341 * dbus/dbus-message-factory.c (generate_special): modify test to
6342 avoid using a non-basic dict key
6344 * dbus/dbus-marshal-validate-util.c: add test for the below
6346 * doc/dbus-specification.xml: require that dict keys are a basic
6349 * dbus/dbus-marshal-validate.c
6350 (_dbus_validate_signature_with_reason): require that dict key is a
6353 2005-02-10 Havoc Pennington <hp@redhat.com>
6355 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6356 change to be _and_unlock instead of _unlocked
6358 * dbus/dbus-connection.c
6359 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6360 have no_update so we can find this bug quickly in future
6362 2005-02-10 Havoc Pennington <hp@redhat.com>
6364 * dbus/dbus-message-util.c (verify_test_message): tests for string
6367 * dbus/dbus-message.c (dbus_message_append_args_valist): add
6368 support for arrays of string/signature/path
6370 2005-02-10 Joe Shaw <joeshaw@novell.com>
6372 * dbus/dbus-connection.c
6373 (_dbus_connection_queue_received_message_link,
6374 _dbus_connection_message_sent): Add the path to
6376 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
6377 _dbus_connection_send_preallocated_unlocked(), updated the
6378 dispatch status, and unlocks. Fixes a bug where certain
6379 situations (like a broken pipe) could cause a Disconnect message
6380 to not be sent, tricking the bus into thinking a service was still
6381 there when the process had quit.
6382 (_dbus_connection_send_preallocated): Call
6383 _dbus_connection_send_preallocated_and_unlock().
6384 (_dbus_connection_send_and_unlock): Added. Calls
6385 _dbus_connection_send_preallocated_and_unlock().
6386 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6387 (dbus_connection_send_with_reply): Update the dispatch status and
6390 * mono/Service.cs (~Service): Added. Removes the filter so that
6391 we don't get unmanaged code calling back into a GCed delegate.
6392 (RemoveFilter); Added.
6394 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
6396 * dbus/dbus-message.c (dbus_message_iter_open_container):
6397 - Removed check for iterator type being an array because
6398 get_arg_type does not work with writer iterators
6399 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6401 2005-02-07 Havoc Pennington <hp@redhat.com>
6403 * doc/dbus-specification.xml: some more language cleanups; add
6404 stuff about how to deal with invalid protocol and extension
6405 points; add _ to allowed chars in auth commands; add EXTENSION_
6408 2005-02-06 Havoc Pennington <hp@redhat.com>
6410 * s/expected/required/ in a couple places for clarity
6412 2005-02-07 Colin Walters <walters@verbum.org>
6414 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6415 sender or proposed_recipient.
6417 2005-02-06 Havoc Pennington <hp@redhat.com>
6419 * dbus/dbus-message-factory.c (generate_special): more tests
6421 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6422 array length that exceeds the maximum
6424 2005-02-05 Havoc Pennington <hp@redhat.com>
6426 * dbus/dbus-message-factory.c (generate_special): more test cases,
6429 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6430 reason why a signature was invalid
6432 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6433 skip the length of the string before we look at it in validation
6435 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6438 * dbus/dbus-message.c (_dbus_message_loader_new): default
6439 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6441 2005-02-05 Havoc Pennington <hp@redhat.com>
6443 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6444 if the signature of a variant was empty
6445 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6446 struct with no element type)
6448 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6449 mangled messages to break things
6451 2005-02-04 Havoc Pennington <hp@redhat.com>
6453 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6454 g_quark_try_string() so it actually can return 0
6455 (dbus_g_proxy_connect_signal): ditto
6457 2005-02-04 Havoc Pennington <hp@redhat.com>
6459 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6461 (tristring_from_message): assert cleanly on null path/interface
6462 (should not be possible though I decided later)
6463 (dbus_g_proxy_dispose): move proxy manager unregistration here
6464 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6465 g_return_if_fail() checks
6467 2005-02-04 Havoc Pennington <hp@redhat.com>
6469 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6471 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6472 (with some minor changes)
6474 * doc/dbus-specification.xml: add deprecated attribute to
6475 introspection format
6477 2005-01-31 Havoc Pennington <hp@redhat.com>
6479 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6480 think it's sort of right
6482 2005-01-30 Havoc Pennington <hp@redhat.com>
6484 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6486 2005-01-30 Havoc Pennington <hp@redhat.com>
6488 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6490 * autogen.sh: change to autotools 1.9
6492 * glib/dbus-gproxy.c: completely change how signals work
6493 (dbus_g_proxy_add_signal): new function to specify signature of a
6495 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6496 and g_warning if the incoming message has the wrong signature.
6498 2005-01-30 Havoc Pennington <hp@redhat.com>
6500 * tools/dbus-names-model.c (have_names_notify): fix this
6502 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6503 up the string array handling a bit
6505 2005-01-30 Havoc Pennington <hp@redhat.com>
6507 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6508 (dbus_g_pending_call_cancel): new function
6510 * dbus/dbus-glib.h: move GType decls for connection/message here;
6511 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6512 here, just kind of rationalizing how we handle all that
6514 * tools/dbus-names-model.c: new file for a tree model listing the
6517 * tools/dbus-tree-view.c (model_new): use proper typing on the
6520 2005-01-30 Havoc Pennington <hp@redhat.com>
6522 * glib/dbus-gmain.c: add a custom GSource back that just checks
6523 whether the message queue has anything in it; otherwise, there are
6524 cases where we won't see messages in the queue since there was no
6525 IO visible to the glib main loop
6527 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6528 increase default message timeout to 25 seconds
6530 2005-01-30 Havoc Pennington <hp@redhat.com>
6532 * test/glib/test-profile.c (no_bus_stop_server): remove the
6533 warning about the g_warning that I just fixed
6535 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6536 custom source, seems to be a lot easier to understand and work
6539 2005-01-30 Havoc Pennington <hp@redhat.com>
6541 I think this main loop thing is conceptually broken, but here are
6542 some band aids. I'll maybe rewrite it in a minute.
6544 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6545 custom GSource, so don't pass it in; confusing
6546 (gsource_server_finalize, gsource_connection_finalize): add
6547 finalize handlers that remove all the watches.
6549 2005-01-30 Havoc Pennington <hp@redhat.com>
6551 * glib/dbus-gobject.c (introspect_properties): fix the XML
6554 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6555 which effectively detects the use of freed messages
6557 * glib/dbus-gobject.c (handle_introspect): modify and return the
6558 reply message instead of the incoming message
6560 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6561 gee, maybe it should SEND THE XML instead of just making a string
6562 and freeing it again ;-)
6564 * tools/dbus-print-message.c (print_message): improve printing of
6567 * configure.in: add debug-glib.service to the output
6569 2005-01-30 Havoc Pennington <hp@redhat.com>
6571 dbus-viewer introspected and displayed the bus driver
6573 * dbus/dbus-object-tree.c
6574 (object_tree_test_iteration): add tests for a handler registered on "/"
6576 * dbus/dbus-object-tree.c
6577 (_dbus_decompose_path): fix to handle path "/" properly
6578 (run_decompose_tests): add tests for path decomposition
6580 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6583 * glib/dbus-gobject.c (handle_introspect): fix quotes
6585 * test/glib/run-test.sh: support launching the bus, then running
6588 * test/glib/test-service-glib.c (main): put in a trivial gobject
6589 subclass and register it on the connection
6591 * bus/driver.c (bus_driver_handle_introspect): implement
6592 introspection of the bus driver service
6594 * dbus/dbus-protocol.h: add #defines for the XML namespace,
6595 identifiers, doctype decl
6597 * bus/driver.c (bus_driver_handle_get_service_owner): handle
6598 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
6599 returning the service unchanged.
6600 (bus_driver_handle_message): remove old check for reply_serial in
6601 method calls, now the message type deals with that
6602 (bus_driver_handle_message): handle NULL interface
6604 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6606 * glib/dbus-gloader-expat.c (description_load_from_string): allow
6609 * tools/dbus-viewer.c: add support for introspecting a service on
6612 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6613 (dbus_g_pending_call_unref): add
6615 2005-01-29 Havoc Pennington <hp@redhat.com>
6617 * tools/dbus-tree-view.c: add support for displaying properties.
6618 (run dbus-viewer with an introspect xml file as arg, then resize
6619 the window so the tree elements show up, not sure what that is)
6621 * glib/dbus-gobject.c (handle_introspect): return
6622 org.freedesktop.Properties and org.freedesktop.Introspectable
6623 interfaces when we are introspected.
6625 * doc/dbus-specification.xml: allow empty interface name when
6628 2005-01-29 Havoc Pennington <hp@redhat.com>
6630 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6631 though it uses glib, it could be extended for any binding in
6634 * glib/dbus-gobject.c (gobject_message_function): change to the
6635 new way properties work
6637 * dbus/dbus-protocol.h: add the new interfaces
6639 * doc/dbus-specification.xml: document the introspection format,
6640 Introspectable interface, and add an org.freedesktop.Properties
6643 * glib/dbus-gparser.c: add support for a <property> element
6645 * glib/dbus-gidl.c: add PropertyInfo
6647 * glib/dbus-gobject.c (handle_introspect): put the outermost
6648 <node> outside the signal and property descriptions.
6649 (introspect_properties): export properties as <property> rather
6650 than as method calls
6652 2005-01-28 Havoc Pennington <hp@redhat.com>
6654 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6655 related to authentication protocol
6657 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
6659 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6660 - BUS_ACTIVATION -> BUS_STARTER
6661 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6662 - class MessageIter (__init__): Added recursion checking
6663 so we throw a nice error instead of just disconnecting from the
6665 (get): Added arg_type parameter for recursion.
6666 Removed the nil type
6667 Added signiture type placeholder (not implemented)
6668 Added struct type placeholder (not implemented)
6669 Added varient type placeholder (not implemented)
6670 Commented out dict type for now
6671 (get_element_type): renamed from get_array_type
6672 (get_*): changed to use the dbus_message_iter_get_basic API
6673 (get_*_array): removed in favor of recursive get_array method
6674 (get_array): new recursive method which calls get to marshal
6675 the elements of the array
6676 (value_to_dbus_sig): New method returns the corrasponding
6677 dbus signiture to a python value
6678 (append): Comment out dict handling for now
6679 Handle lists with the new recursive API
6680 Comment out None handling for now
6681 (append_nil): removed
6682 (append_*): changed to use dbus_message_iter_append_basic API
6683 (append_*_array): removed in favor of recursive append_array
6685 (__str__): Make it easier to print out recursive iterators
6687 - class Message (__str__): moved type inspection to the
6688 MessageIter class' __str__ method
6689 (get_iter): Added an append parameter wich defaults to False
6690 If True use the new API's to create an append iterator
6692 * python/dbus.py: Update to use new bindings API
6693 - TYPE_ACTIVATION -> TYPE_STARTER
6694 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6695 - class ActivationBus -> class StarterBus
6696 - class RemoteObject (__call__): get an append iterator
6697 - (_dispatch_dbus_method_call): get an append iterator
6698 - class Object (emit_signal): get an append iterator
6700 * python/examples/: Fixed up the examples to work with the new API
6702 2005-01-28 Joe Shaw <joeshaw@novell.com>
6704 * configure.in: Bump version up to 0.30.
6706 * HACKING: Add a release item to bump the version number up after
6709 2005-01-28 Havoc Pennington <hp@redhat.com>
6711 * doc/dbus-specification.xml: update to describe 16-bit types and
6714 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6717 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6720 * dbus/dbus-marshal-recursive.c: implement
6722 2005-01-27 Havoc Pennington <hp@redhat.com>
6724 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6726 * configure.in: find the right type for 16 and 32 bit ints as well
6729 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6730 the 16-bit types so people don't have to stuff them in 32-bit or
6733 2005-01-27 Havoc Pennington <hp@redhat.com>
6735 * dbus/dbus-message.c: byteswap the message if you init an
6736 iterator to read/write from it
6738 * dbus/dbus-marshal-byteswap.c: new file implementing
6739 _dbus_marshal_byteswap()
6741 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6743 2005-01-26 Havoc Pennington <hp@redhat.com>
6745 * dbus/dbus-marshal-validate-util.c: break this out (and fix
6746 build, apparently - nobody noticed?)
6748 2005-01-26 Havoc Pennington <hp@redhat.com>
6750 * dbus/dbus-marshal-recursive.h: remove todo comment
6752 2005-01-25 Joe Shaw <joeshaw@novell.com>
6754 * Land the mono binding changes to conform to the new APIs.
6756 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6757 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6759 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
6760 type code as a string.
6761 (InitAppending): Rename dbus_message_append_iter_init() to
6762 dbus_message_iter_init_append().
6764 * mono/BusDriver.cs: Rename ServiceEventHandler to
6765 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
6766 Rename ServiceOwnerChanged to NameOwnerChanged.
6768 * mono/Connection.cs: Rename BaseService to UniqueName, and the
6771 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
6773 * mono/Service.cs: Rename Exists to HasOwner, internally rename
6774 dbus_bus_acquire_service() to dbus_bus_request_name().
6776 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6777 of Type.UnderlyingSystemType to get the correct element type for
6779 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6780 dbus_message_get_{element|arg}_type() instead of
6781 dbus_message_iter_init_array_iterator().
6782 (Append): Replace dbus_message_iter_append_array() with
6783 dbus_message_iter_open_container() and
6784 dbus_message_iter_close_container().
6786 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
6787 types have been removed.
6789 * mono/DBusType/*.cs: Replace calls of
6790 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6791 but specify the type in the DllImport extern declaration. Ditto
6792 for dbus_message_iter_append_[type]() ->
6793 dbus_message_iter_append_basic().
6795 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6796 NameOwnerChangedHandler.
6798 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
6800 * python/dbus_bindings.pyx.in: Rename of methods and bindings
6801 - get_base_service -> get_unique_name
6802 - bus_get_base_service -> bus_get_unique_name
6803 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6804 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
6805 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6806 - bus_activate_service -> bus_start_service_by_name
6807 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6808 - bus_acquire_service -> bus_request_name
6809 - dbus_bus_acquire_service -> dbus_bus_request_name
6810 - bus_service_exists -> bus_name_has_owner
6811 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6813 * python/dbus.py: Rename of methods
6814 - activate_service -> start_service_by_name
6815 - bus_acquire_service -> bus_request_name
6816 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
6817 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6820 2005-01-24 Joe Shaw <joeshaw@novell.com>
6822 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6823 signature for the method that can't be found.
6825 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6826 the message has any arguments, we need to call
6827 _dbus_type_reader_get_current_type(), not
6828 _dbus_type_reader_has_next().
6830 2005-01-24 Havoc Pennington <hp@redhat.com>
6832 * dbus/dbus-message-factory.c: more testing of message validation
6834 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6837 2005-01-23 Havoc Pennington <hp@redhat.com>
6839 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
6840 get this all working, not many tests in the framework yet though
6842 2005-01-22 Havoc Pennington <hp@redhat.com>
6844 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6845 tutorial, based on work from David Wheeler.
6847 2005-01-21 Havoc Pennington <hp@redhat.com>
6849 * dbus/dbus-bus.c: add more return_if_fail checks
6851 * dbus/dbus-message.c (load_message): have the "no validation"
6852 mode (have to edit the code to toggle the mode for now though)
6854 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6855 skips all validation; I want to use this at least for benchmark
6856 baseline, I'm not sure if it should be a publicly-available switch.
6858 2005-01-21 Havoc Pennington <hp@redhat.com>
6860 * glib/dbus-gmain.c: don't put the GLib bindings in the same
6861 toplevel doxygen group as the low-level API stuff
6863 * dbus/dbus.h: note that libdbus is the low-level API
6865 2005-01-20 Havoc Pennington <hp@redhat.com>
6867 * update-dbus-docs.sh: script to update docs on the web site, only
6868 works for me though. neener.
6870 2005-01-20 Havoc Pennington <hp@redhat.com>
6872 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6873 code can reveal bugs in it
6875 2005-01-20 Havoc Pennington <hp@redhat.com>
6877 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6878 select() version, patches from Tor Lillqvist
6880 2005-01-20 Havoc Pennington <hp@redhat.com>
6882 * doc/dbus-tutorial.xml: replace > with >
6884 * bus/services.c (bus_registry_acquire_service): validate the name
6885 and return a better error if it's no good.
6887 * doc/dbus-specification.xml: note NO_AUTO_START change
6889 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6890 from AUTO_START, we're toggling the default
6892 * bus/dispatch.c: adapt the tests to change of auto-start default
6894 2005-01-18 Havoc Pennington <hp@redhat.com>
6896 * rename dbus-daemon-1 to dbus-daemon throughout
6898 2005-01-18 Havoc Pennington <hp@redhat.com>
6900 * Throughout, grand renaming to strip out the use of "service",
6901 just say "name" instead (or "bus name" when ambiguous). Did not
6902 change the internal code of the message bus itself, only the
6903 programmer-facing API and messages.
6905 * doc/dbus-specification.xml: further update the message bus section
6907 * bus/config-parser.c (all_are_equiv): fix bug using freed string
6910 2005-01-17 Havoc Pennington <hp@redhat.com>
6912 * dbus/dbus-types.h: remove 16-bit types since we don't use them
6915 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6916 "invalid name character" not only non-ASCII
6918 * doc/dbus-specification.xml: further update spec, message bus
6919 parts are still out-of-date but the marshaling etc. stuff is now
6922 2005-01-17 Havoc Pennington <hp@redhat.com>
6924 * doc/dbus-specification.xml: partially update spec
6926 2005-01-17 Havoc Pennington <hp@redhat.com>
6928 * Throughout, align variant bodies according to the contained
6929 type, rather than always to 8. Should save a fair bit of space in
6932 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6933 fix handling of case where p == end
6935 * doc/TODO: remove the dbus_bool_t item and variant alignment items
6937 2005-01-17 Havoc Pennington <hp@redhat.com>
6939 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6941 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6942 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
6943 are marshaling/unmarshaling a boolean.
6945 2005-01-16 Havoc Pennington <hp@redhat.com>
6947 This is about it on what can be disabled/deleted from libdbus
6948 easily, back below 150K anyhow. Deeper cuts are more work than
6949 just turning the code off as I've done here.
6951 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6952 signed int convenience funcs
6954 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6957 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6958 things out of libdbus
6960 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6962 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6963 tests-enabled-only, though it should probably be deleted)
6965 * dbus/dbus-message-util.c: same stuff
6967 * dbus/dbus-auth-util.c: same stuff
6969 2005-01-16 Havoc Pennington <hp@redhat.com>
6971 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6973 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6974 way for stripping down dbus-userdb.c stuff included in libdbus.
6975 Rename _dbus_parse_uid for consistency.
6977 2005-01-16 Havoc Pennington <hp@redhat.com>
6979 * dbus/dbus-internals.c (_dbus_real_assert): print the function
6980 name the assertion failed in
6982 * dbus/dbus-internals.h (_dbus_return_if_fail)
6983 (_dbus_return_val_if_fail): assert that the name of the function
6984 containing the check doesn't start with '_', since we only want to
6985 use checks on public functions
6987 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6988 checks to assertions
6990 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6991 change checks to asserts for private function
6993 * dbus/dbus-message.c (_dbus_message_set_serial): checks
6994 to asserts for private function
6996 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6997 broken assertion that was breaking make check
6998 (_dbus_type_reader_array_is_empty): remove this rather than fix
6999 it, was only used in assertions
7001 2005-01-16 Havoc Pennington <hp@redhat.com>
7003 * test/unused-code-gc.py: hacky script to find code that's used
7004 only by the bus (not libdbus) or used only by tests or not used at
7005 all. It has some false alarms, but looks like we can clean up a
7006 lot of size from libdbus.
7008 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7009 dbus/Makefile.am: initially move 10K of binary size out of libdbus
7011 2005-01-16 Havoc Pennington <hp@redhat.com>
7013 * Add and fix docs according to Doxygen warnings throughout
7016 * dbus/dbus-marshal-recursive.c
7017 (_dbus_type_reader_array_is_empty): change this to just call
7018 array_reader_get_array_len() and make it static
7020 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7022 (dbus_message_iter_init_append): rename from append_iter_init
7024 * dbus/dbus-marshal-recursive.c
7025 (_dbus_type_reader_get_element_type): rename from
7026 _dbus_type_reader_get_array_type
7028 2005-01-15 Havoc Pennington <hp@redhat.com>
7030 * test/glib/test-profile.c (with_bus_server_filter): fix crash
7032 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7033 when DBUS_DISABLE_ASSERT
7034 (_dbus_marshal_set_basic): be sure we align for the string length
7036 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7039 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7040 inline macro version
7041 (_dbus_string_set_byte): provide inline macro version
7043 2005-01-15 Havoc Pennington <hp@redhat.com>
7045 * Land the new message args API and type system.
7047 This patch is huge, but the public API change is not
7048 really large. The set of D-BUS types has changed somewhat,
7049 and the arg "getters" are more geared toward language bindings;
7050 they don't make a copy, etc.
7052 There are also some known issues. See these emails for details
7054 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7055 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7057 * dbus/dbus-marshal-*: all the new stuff
7059 * dbus/dbus-message.c: basically rewritten
7061 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7062 freed blocks to be all non-nul bytes so using freed memory is less
7063 likely to work right
7065 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7066 DBUS_FAIL_MALLOC=N environment variable, so you can do
7067 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7068 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7071 * qt/message.cpp: port to the new message args API
7072 (operator<<): use str.utf8() rather than str.unicode()
7073 (pretty sure this is right from the Qt docs?)
7075 * glib/dbus-gvalue.c: port to the new message args API
7077 * bus/dispatch.c, bus/driver.c: port to the new message args API
7079 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7080 "locked" flag to TRUE and align_offset to 0; I guess we never
7081 looked at these anyhow, but seems cleaner.
7083 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7084 move allocation padding macro to this header; use it to implement
7085 (_DBUS_STRING_STATIC): ability to declare a static string.
7087 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7088 change to return TRUE if the interface is not set.
7090 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7091 to dbus-marshal-validate.[hc]
7093 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7096 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7097 to dbus-marshal-*.[hc]
7099 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7100 function here from dbus-marshal.c
7102 2005-01-12 Joe Shaw <joeshaw@novell.com>
7104 * NEWS: Update for 0.23.
7106 * configure.in: Release 0.23.
7108 2005-01-12 Joe Shaw <joeshaw@novell.com>
7110 * mono/Makefile.am, mono/example/Makefile.am: Always build the
7111 dbus DLL with --debug. Clean up after the .mdb files this leaves
7114 * mono/doc/Makefile.am: Need to uninstall the docs on "make
7117 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7118 is an enum, get the enum's underlying type. Another mono
7121 2005-01-11 Joe Shaw <joeshaw@novell.com>
7123 Patch from Sjoerd Simons <sjoerd@luon.net>
7125 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7126 DESTDIR. It breaks stuff.
7128 2005-01-11 Joe Shaw <joeshaw@novell.com>
7130 Patch from Tambet Ingo <tambet@ximian.com>
7132 * mono/DBusType/Array.cs (Get): Get the underlying element type by
7133 calling type.GetElementType(). The code previously depended on
7134 broken Mono behavior, which was fixed in Mono 1.1.3.
7136 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7137 Activator.CreateInstance() so that the class's constructor is
7138 called with the right parameters.
7140 2005-01-11 Joe Shaw <joeshaw@novell.com>
7142 Patch from Timo Teräs <ext-timo.teras@nokia.com>
7144 * dbus/dbus-connection.c
7145 (_dbus_connection_queue_received_message_link): Call
7146 _dbus_connection_remove_timeout() instead of the _locked()
7147 variant, since it's always called from
7148 _dbus_connection_handle_watch(), which handles the locking.
7149 Removed the _locked() variant since it's no longer used.
7151 2005-01-03 Havoc Pennington <hp@redhat.com>
7153 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7156 2004-12-26 Havoc Pennington <hp@redhat.com>
7158 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7160 2005-01-03 Havoc Pennington <hp@redhat.com>
7162 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7165 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7167 2005-01-02 Havoc Pennington <hp@redhat.com>
7169 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7171 2005-01-01 Havoc Pennington <hp@redhat.com>
7173 * configure.in: add -Wfloat-equal
7175 2005-01-01 Havoc Pennington <hp@redhat.com>
7177 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
7178 for a variety of reasons '==' doesn't do this.
7180 2004-12-31 Havoc Pennington <hp@redhat.com>
7182 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7183 I keep wishing I had
7185 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
7187 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7189 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
7191 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7192 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7193 dbus-protocol.h. Because they are defines and not enums they are not
7196 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
7198 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7199 dbus_bus_activate_service
7201 * python/dbus.py (Bus.activate_service): activate a service on the
7204 2004-12-24 Havoc Pennington <hp@redhat.com>
7206 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7207 file format has also changed and I haven't adapted to that yet
7209 * Makefile.am: load .gcno files from latest gcc
7211 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
7212 * Patch from Rob Taylor <robtaylor@fastmail.fm>
7214 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7217 * python/dbus.py (get_unix_user): Added binding to
7218 call dbus_bindings.bus_get_unix_user
7220 * python/extract.py: Modified the proto_pat regex to
7221 handle unsigned long
7223 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7225 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7226 better POSIX compliance.
7228 2004-12-19 Havoc Pennington <hp@redhat.com>
7230 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
7231 (_dbus_string_insert_8_aligned): new functions
7233 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7235 2004-12-18 Havoc Pennington <hp@redhat.com>
7237 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7240 * dbus/dbus-message.c: fix a comment, and add a still-unused
7241 not-implemented function
7243 * dbus/dbus-marshal.h: fix comment
7245 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7247 2004-12-17 Joe Shaw <joeshaw@novell.com>
7249 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7250 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7251 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7252 Type.UnderlyingSystemType to get the actual system type
7253 underneath. This code previously depended on the broken Mono
7254 behavior, which was fixed in 1.1.3.
7256 2004-11-27 Havoc Pennington <hp@redhat.com>
7258 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7260 (_dbus_string_get_const_data): inline when asserts are disabled
7262 * dbus/dbus-message.c: record the _dbus_current_generation of
7263 creation so we can complain if dbus_shutdown() is used improperly.
7264 Do this only if checks are enabled.
7266 * dbus/dbus-connection.c: ditto
7268 2004-11-26 Havoc Pennington <hp@redhat.com>
7270 * test/glib/test-profile.c: add with_bus mode to profile echoes
7271 that go through the bus.
7273 * test/glib/run-test.sh: add ability to run test-profile
7275 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7278 2004-11-26 Havoc Pennington <hp@redhat.com>
7280 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7281 thing was implemented
7283 2004-11-26 Havoc Pennington <hp@redhat.com>
7285 * test/glib/test-profile.c: tweak a bit, add support for some
7286 made-up minimal malloc overhead with plain sockets, since in
7287 real life some sort of buffers are unavoidable thus we could
7288 count them in the theoretical best case
7290 2004-11-26 Havoc Pennington <hp@redhat.com>
7292 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7293 where I was trying to cache one too many messages
7295 2004-11-26 Havoc Pennington <hp@redhat.com>
7297 * dbus/dbus-message.c: reimplement message cache as an array which
7298 makes the cache about twice as fast and saves maybe 1.5% overall
7300 2004-11-26 Havoc Pennington <hp@redhat.com>
7302 * dbus/dbus-threads.c (init_global_locks): forgot to put the
7303 message cache lock here
7305 2004-11-26 Havoc Pennington <hp@redhat.com>
7307 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7308 the "char byte_order" next to each other to save 4 bytes
7309 (dbus_message_new_empty_header): reduce preallocation, since the
7310 message cache should achieve a similar effect
7311 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7312 message cache that keeps a few DBusMessage around in a pool,
7313 another 8% speedup or so.
7315 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7317 2004-11-25 Havoc Pennington <hp@redhat.com>
7319 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7320 to write, without reading or blocking, try it before the poll()
7321 and skip the poll() if nothing remains to write. This is about a
7322 3% speedup in the echo client/server
7324 2004-11-25 Havoc Pennington <hp@redhat.com>
7326 The primary change here is to always write() once before adding
7327 the write watch, which gives us about a 10% performance increase.
7329 * dbus/dbus-transport-unix.c: a number of modifications to cope
7330 with removing messages_pending
7331 (check_write_watch): properly handle
7332 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7333 messages_pending stuff
7334 (check_read_watch): properly handle WAITING_FOR_MEMORY and
7336 (unix_handle_watch): after writing, see if the write watch can be
7338 (unix_do_iteration): assert that write_watch/read_watch are
7339 non-NULL rather than testing that they aren't, since they
7340 aren't allowed to be NULL. check_write_watch() at the end so
7341 we add the watch if we did not finish writing (e.g. got EAGAIN)
7343 * dbus/dbus-transport-protected.h: remove messages_pending call,
7344 since it resulted in too much inefficient watch adding/removing;
7345 instead we now require that the transport user does an iteration
7346 after queueing outgoing messages, and after trying the first
7347 write() we add a write watch if we got EAGAIN or exceeded our
7348 max bytes to write per iteration setting
7350 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7353 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7354 freed and then accessed, valgrind flagged this bug, fix it
7356 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7357 as the last valid field plus 1, where really it is equal to the
7358 last valid field. Corrects some message corruption issues.
7360 * dbus/dbus-mainloop.c: verbosity changes
7362 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7363 instead of aborting in one of the test codepaths
7365 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7366 caused not printing the pid ever again if a verbose was missing
7367 the newline at the end
7368 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7370 * dbus/dbus-connection.c: verbosity changes;
7371 (dbus_connection_has_messages_to_send): new function
7372 (_dbus_connection_message_sent): no longer call transport->messages_pending
7373 (_dbus_connection_send_preallocated_unlocked): do one iteration to
7374 try to write() immediately, so we can avoid the write watch. This
7375 is the core purpose of this patchset
7376 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7377 dump the outgoing message queue, so nobody will get confused
7378 trying to send them or thinking stuff is pending to be sent
7380 * bus/test.c: verbosity changes
7382 * bus/driver.c: verbosity/assertion changes
7384 * bus/dispatch.c: a bunch of little tweaks to get it working again
7385 because this patchset changes when/where you need to block.
7387 2004-11-23 Havoc Pennington <hp@redhat.com>
7389 * test/glib/test-profile.c: modify to accept a plain_sockets
7390 argument in which case it will bench plain sockets instead of
7391 libdbus, for comparison purposes.
7393 2004-11-22 Havoc Pennington <hp@redhat.com>
7395 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7396 threads for more time, so sysprof can get a grip on it.
7398 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7401 2004-11-13 Havoc Pennington <hp@redhat.com>
7403 * test/glib/test-profile.c: fix this thing up a bit
7405 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7406 preallocation sizes by a fair bit; not sure if this will be an
7407 overall performance win or not, but it does reduce reallocs.
7409 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7410 the test hack that forced constant realloc if asserts are
7411 disabled, so we can profile sanely. Sprinkle in some
7412 _DBUS_UNLIKELY() which are probably pointless, but before I
7413 noticed the real performance problem I put them in.
7414 (_dbus_string_validate_utf8): micro-optimize this thing a little
7415 bit, though callgrind says it didn't help; then special-case
7416 ascii, which did help a lot; then be sure we detect nul bytes as
7417 invalid, which is a bugfix.
7418 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7419 superstition; use memset to nul the padding instead of a manual
7421 (_dbus_string_get_length): inline this as a
7422 macro; it showed up in the profile because it's used for loop
7425 2004-11-10 Colin Walters <walters@verbum.org>
7427 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7430 2004-11-09 Colin Walters <walters@verbum.org>
7432 * dbus/dbus-string.c (_dbus_string_get_length): New
7433 function, writes DBusString to C buffer.
7435 * dbus/dbus-string.h: Prototype it.
7437 * dbus/dbus-message.c (dbus_message_type_to_string): New
7438 function, converts message type into C string.
7440 * dbus/dbus-message.h: Prototype it.
7442 * bus/selinux.c (bus_selinux_check): Take source pid,
7443 target pid, and audit data. Pass audit data to
7445 (log_audit_callback): New function, appends extra
7447 (bus_selinux_allows_acquire_service): Also take
7448 service name, add it to audit data.
7449 (bus_selinux_allows_send): Also take message
7450 type, interface, method member, error name,
7451 and destination, and add them to audit data.
7452 (log_cb): Initialize func_audit.
7454 * bus/selinux.h (bus_selinux_allows_acquire_service)
7455 (bus_selinux_allows_send): Update prototypes
7457 * bus/services.c (bus_registry_acquire_service): Pass
7458 service name to bus_selinux_allows_acquire_service.
7460 * bus/bus.c (bus_context_check_security_policy): Pass
7461 additional audit data. Move assignment of dest
7464 2004-11-07 Colin Walters <walters@verbum.org>
7466 * dbus/dbus-transport-unix.c (do_authentication): Always
7467 initialize auth_completed.
7469 2004-11-07 Colin Walters <walters@verbum.org>
7471 * bus/bus.c (load_config): Break into three
7472 separate functions: process_config_first_time_only,
7473 process_config_every_time, and process_config_postinit.
7474 (process_config_every_time): Move call of
7475 bus_registry_set_service_context_table into
7476 process_config_postinit.
7477 (process_config_postinit): New function, does
7478 any processing that needs to happen late
7479 in initialization (and also on reload).
7480 (bus_context_new): Instead of calling load_config,
7481 open config parser here and call process_config_first_time_only
7482 and process_config_every_time directly. Later, after
7483 we have forked but before changing UID,
7484 invoke bus_selinux_full_init, and then call
7485 process_config_postinit.
7486 (bus_context_reload_config): As in bus_context_new,
7487 load parse file inside here, and call process_config_every_time
7488 and process_config_postinit.
7490 * bus/services.h, bus/services.c
7491 (bus_registry_set_service_context_table): Rename
7492 from bus_registry_set_sid_table. Take string hash from config
7493 parser, and convert them here into SIDs.
7495 * bus/config-parser.c (struct BusConfigParser): Have
7496 config parser only store a mapping of service->context
7498 (merge_service_context_hash): New function.
7499 (merge_included): Merge context string hashes instead
7500 of using bus_selinux_id_table_union.
7501 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7502 simply create a new string hash.
7503 (bus_config_parser_unref): Unref it.
7504 (start_selinux_child): Simply insert strings into hash,
7505 don't call bus_selinux_id_table_copy_over.
7507 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7508 (bus_selinux_id_table_copy_over): Delete.
7510 2004-11-03 Colin Walters <walters@verbum.org>
7512 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7515 2004-11-03 Colin Walters <walters@verbum.org>
7517 * bus/test-main.c (test_pre_hook): Fix test logic,
7518 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7520 2004-11-02 Colin Walters <walters@redhat.com>
7522 * bus/selinux.c (bus_selinux_init): Split into two functions,
7523 bus_selinux_pre_init and bus_selinux_post_init.
7524 (bus_selinux_pre_init): Just determine whether SELinux is
7526 (bus_selinux_post_init): Do everything else.
7528 * bus/main.c (main): Call bus_selinux_pre_init before parsing
7529 config file, and bus_selinux_post_init after. This ensures that
7530 we don't lose the policyreload notification thread that
7531 bus_selinux_init created before forking previously.
7533 * bus/test-main.c (test_pre_hook): Update for split.
7535 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
7537 Patch from Johan Fischer <linux@fischaz.com>
7539 * mono/doc/Makefile.am (install-data-local): Added directory
7542 2004-10-29 Colin Walters <walters@redhat.com>
7544 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7545 parameter for fd to write pid to.
7547 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7549 * bus/bus.c (bus_context_new): Pass print_pid_fd
7550 to _dbus_become_daemon (bug #1720)
7552 2004-10-29 Colin Walters <walters@redhat.com>
7554 Patch from Ed Catmur <ed@catmur.co.uk>
7556 * mono/doc/Makefile.am (install-data-local): Handle
7559 2004-10-29 Colin Walters <walters@redhat.com>
7561 * bus/.cvsignore, qt/.cvsignore: Update.
7563 2004-10-29 Colin Walters <walters@redhat.com>
7565 Patch from Kristof Vansant <de_lupus@pandora.be>
7567 * configure.in: Detect Slackware.
7568 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7569 * bus/rc.messagebus.in: New file.
7571 2004-10-29 Colin Walters <walters@redhat.com>
7573 * tools/dbus-monitor.c (filter_func): Return
7574 DBUS_HANDLER_RESULT_HANDLED in filter function
7576 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7578 2004-10-29 Colin Walters <walters@redhat.com>
7580 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7582 * bus/services.c (bus_registry_acquire_service):
7583 Correctly retrieve service name from DBusString
7586 2004-10-29 Colin Walters <walters@redhat.com>
7588 * dbus/dbus-glib.h: Update documentation to not
7589 refer to internal APIs.
7591 2004-10-27 Joe Shaw <joeshaw@novell.com>
7593 * mono/Arguments.cs (GetDBusTypeConstructor):
7594 type.UnderlyingSystemType will return "System.Byte" if you do it
7595 on "byte[]", which is not what we want. So check the type.IsArray
7596 property and use System.Array instead.
7598 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
7600 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7601 the DBusUserInfo structure since this is passed into the function.
7602 This would cause a double free when the function that allocated
7603 the structure would try to free it when an error occured.
7605 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7606 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7607 for service activation to avoid 32bit/64bit parallel install issues
7609 2004-10-21 Colin Walters <walters@verbum.org>
7611 * AUTHORS: Fix my email address, the @gnu.org one
7612 has been bouncing for some time. Also add J5.
7614 2004-10-21 Colin Walters <walters@verbum.org>
7616 * dbus/dbus-transport-unix.c (do_authentication): Return
7617 authentication status to callers.
7618 (unix_handle_watch): If we completed authentication this round,
7619 don't do another read. Instead wait until the next iteration,
7620 after we've read any pending data in the auth buffer.
7621 (unix_do_iteration): Ditto.
7622 (unix_handle_watch): Updated for new do_authentication prototype.
7624 2004-10-18 Colin Walters <walters@verbum.org>
7626 * bus/selinux.c (bus_selinux_enabled): Handle
7627 --disable-selinux case.
7629 2004-10-18 Colin Walters <walters@verbum.org>
7631 * bus/selinux.h: Add bus_selinux_enabled.
7633 * bus/selinux.c (bus_selinux_enabled): Implement it.
7635 * bus/config-parser.c (struct include): Add
7636 if_selinux_enabled member.
7637 (start_busconfig_child): Parse if_selinux_enabled
7638 attribute for include.
7639 (bus_config_parser_content): Handle it.
7641 * bus/session.conf.in, bus/system.conf.in: Add
7642 inclusion of context mapping to default config files;
7643 conditional on SELinux being enabled.
7645 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7647 * test/data/invalid-config-files/badselinux-1.conf,
7648 test/data/invalid-config-files/badselinux-2.conf:
7649 Test files for bad syntax.
7651 2004-10-17 Colin Walters <walters@verbum.org>
7653 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7654 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7655 format specifier mismatches.
7657 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
7659 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7662 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7663 pointer (bug #1540, Leonardo Boiko).
7665 2004-09-28 Jon Trowbridge <trow@ximian.com>
7667 * mono/BusDriver.cs: Changed BusDriver struct to remove
7668 the ServiceCreated and ServiceDeleted events and replace them
7669 with the new ServiceOwnerChanged event.
7671 * mono/example/BusListener.cs: Added a new example program,
7672 which listens for and reports any ServiceOwnerChanged events
7675 * mono/example/Makefile.am (DESTDIR): Build changes for the
7676 new BusListener.cs example.
7678 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
7680 * bus/signals.c (bus_match_rule_parse): validate the components of
7681 match rules (bug #1439).
7683 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7685 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
7687 * doc/dbus-specification.xml: document ServiceOwnerChanged
7690 * bus/driver.c, bus/driver.h, bus/services.c: Use
7691 ServiceOwnerChanged signal instead of ServiceCreated and
7694 * bus/dispatch.c: update testcase for the new signal.
7696 2004-09-20 Jon Trowbridge <trow@ximian.com>
7698 Patch from Nat Friedman <nat@novell.com>
7700 * mono/Makefile.am: A number of small build fixes to allow "make
7701 distcheck" to succeed.
7703 * mono/example/Makefile.am: "make distcheck" fixes.
7705 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7708 * test/Makefile.am: "make distcheck" fixes.
7710 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7712 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7714 * doc/busconfig.dtd: update the DTD for the at_console attribute.
7716 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7717 messages after the first one (bug #1389).
7719 * bus/dispatch.c (check_double_hello_message): add a test case for
7720 the double hello message bug.
7721 (check_existent_service_activation): fix check of spawning error.
7723 2004-09-16 David Zeuthen <david@fubar.dk>
7725 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7727 2004-09-12 David Zeuthen <david@fubar.dk>
7729 Patch from Kay Sievers <kay.sievers@vrfy.org>
7731 * bus/bus.c (bus_context_new):
7733 * bus/main.c (usage)
7735 Add commandline option --nofork to override configuration file
7738 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
7740 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7741 compilers don't like it (bug #974).
7743 2004-09-04 Harald Fernengel <harry@kdevelop.org>
7745 * qt/connection.*: Applied patch by Jérôme Lodewyck
7746 <lodewyck@clipper.ens.fr> to integrate an existing
7747 connection into the Qt eventloop
7749 2004-08-30 Jon Trowbridge <trow@ximian.com>
7751 * mono/BusDriver.cs: Added. This is a class for interacting with
7752 the org.freedesktop.DBus service.
7754 * mono/Message.cs: Added a mechanism to expose the message that is
7755 currently being dispatched via the static Message.Current
7756 property. Added Message.Sender and Message.Destination
7759 * mono/Handler.cs: Expose the dispatched message via
7760 Message.Current when handling method calls.
7762 * mono/Service.cs: Expose the dispatched message via
7763 Message.Current when handling signal emissions.
7765 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7766 Connection.BaseService property.
7768 2004-08-28 Havoc Pennington <hp@redhat.com>
7770 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7772 More fixes from Steve Grubb
7774 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7775 (_dbus_listen_tcp_socket): fix fd leak
7777 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7778 EINTR to a bit lower in the code
7780 2004-08-26 Jon Trowbridge <trow@ximian.com>
7782 * bus/driver.c (bus_driver_handle_service_exists): Respond with
7783 TRUE if we are inquiring about the existence of the built-in
7784 org.freedesktop.DBus service.
7786 2004-08-25 John Palmieri <johnp@redhat.com>
7787 * bus/config-parser.c:
7788 (struct PolicyType): Add POLICY_CONSOLE
7789 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7790 (start_busconfig_child): Sets up console element when
7791 <policy at_console=""> is encountered in a policy file
7792 (append_rule_from_element): Convert console elements to console
7796 (bus_policy_create_client_policy): Add console rules to the client
7797 policy based on if the client is at the console
7798 (bus_policy_append_console_rule): New function for adding a
7799 console rule to a policy
7800 (bus_policy_merge): Handle console rule merging
7802 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7803 where we check for console user files
7805 * dbus/dbus-sysdeps.c:
7806 (_dbus_file_exists): New function which checks if the given
7808 (_dbus_user_at_console): New function which does the system
7809 specific process of checking if the user is at the console
7811 * dbus/dbus-userdb.c:
7812 (_dbus_is_console_user): New function converts a UID to user name
7813 and then calls the system specific _dbus_user_at_console to
7814 see if the user is at the console and therefor a console user
7816 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
7818 * bus/config-parser.c (set_limit):
7819 * bus/dbus-daemon-1.1.in:
7820 * test/data/valid-config-files/many-rules.conf: set the
7821 max_match_rules_per_connection limt from the config file.
7823 * doc/busconfig.dtd: update the DTD.
7825 * bus/driver.c: remove some unused variables.
7827 2004-08-24 Mikael Hallendal <micke@imendio.com>
7829 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
7830 it's been replaced by dbus_g_bus_get
7832 2004-08-23 Colin Walters <walters@redhat.com>
7834 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7836 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7838 * bus/selinux.c: Create a thread for policy reload notification.
7839 (bus_selinux_get_policy_root): Implement.
7841 * bus/config-parser.c (start_busconfig_child)
7842 (bus_config_parser_content): Support SELinux-root relative
7845 * configure.in <HAVE_SELINUX>: Add -lpthread.
7847 * bus/test-main.c (test_pre_hook, test_post_hook): New.
7848 (test_post_hook): Move memory checking into here.
7849 (test_pre_hook, test_post_hook): Move SELinux checks in
7850 here, but conditional on a DBUS_TEST_SELINUX environment
7851 variable. Unfortunately we can't run the SELinux checks
7852 as a normal user, since they won't have any permissions
7853 for /selinux. So this will have to be tested manually
7854 for now, until we have virtualization for most of
7857 2004-08-23 Havoc Pennington <hp@redhat.com>
7859 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7860 drop supplementary groups, suggested by Steve Grubb
7862 2004-08-20 Colin Walters <walters@redhat.com>
7864 * bus/config-parser.c (start_busconfig_child): Remove some unused
7867 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7870 2004-08-17 Joe Shaw <joeshaw@novell.com>
7872 * configure.in: If --enable-mono is passed in, if we can't find
7875 * mono/Makefile.am: Use /gacutil to install assemblies into the
7878 2004-08-12 Havoc Pennington <hp@redhat.com>
7880 * NEWS: update for 0.22
7882 * configure.in: release 0.22
7884 2004-08-11 Colin Walters <walters@redhat.com>
7886 * tools/dbus-send.c (main, usage): Add --reply-timeout
7889 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
7891 * bus/bus.c (process_config_first_time_only): get rid of an unused
7892 DBusError that was causing a memoy leak (bug #989).
7894 * dbus/dbus-keyring.c, dbus/dbus-message.c:
7895 fix compilation on Solaris/Forte C (bug #974)
7897 * bus/main.c (main): plug two minuscule memleaks.
7899 2004-08-10 Havoc Pennington <hp@redhat.com>
7901 * doc/dbus-tutorial.xml: add some more info on GLib bindings
7903 2004-08-09 Havoc Pennington <hp@redhat.com>
7905 * COPYING: switch to Academic Free License version 2.1 instead of
7906 2.0, to resolve complaints about patent termination clause.
7908 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
7910 * README: added documentation for the --enable-python
7913 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7915 * bus/config-parser.c (bus_config_parser_new): fix an invalid
7916 _unref in the SELinux support.
7918 * doc/busconfig.dtd: update DTD for SELinux support.
7920 * bus/config-loader-libxml.c: fix error handler and parser
7921 initialisation/cleanup. OOM test now works with libxml2 HEAD.
7923 * configure.in: remove the warning about libxml2.
7925 * dbus/dbus-bus.c: silence doxygen warning.
7927 2004-07-31 Colin Walters <walters@redhat.com>
7929 * configure.in: Move #error in SELinux check to its own line.
7931 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
7933 * dbus/dbus-internals.h (_DBUS_SET_OOM):
7934 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7937 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7938 broken by the change in the _SET_OOM macros.
7940 2004-07-31 Colin Walters <walters@redhat.com>
7942 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7945 2004-07-31 Colin Walters <walters@redhat.com>
7947 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7948 to correctly detect DBUS__ACQUIRE_SVC. Also add an
7951 2004-07-24 Havoc Pennington <hp@redhat.com>
7953 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7955 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7958 * configure.in: add --enable-selinux
7960 * bus/policy.c (bus_policy_merge): add FIXME to a comment
7962 * bus/main.c (main): initialize and shut down selinux
7964 * bus/connection.c: store SELinux ID on each connection, to avoid
7965 repeated getting of the string context and converting it into
7968 * bus/bus.c (bus_context_get_policy): new accessor, though it
7970 (bus_context_check_security_policy): check whether the security
7971 context of sender connection can send to the security context of
7972 recipient connection
7974 * bus/config-parser.c: add parsing for <selinux> and <associate>
7976 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7977 implement dbus_connection_get_unix_fd()
7979 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7980 function, used by the selinux stuff
7982 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
7984 * bus/config-loader-libxml.c: complete the implementation of
7985 libxml backend for config file loader. Doesn't work with full OOM
7988 * configure.in: change error when selecting libxml into a warning.
7990 * test/data/invalid-config-files: add two non-well-formed XML
7993 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7995 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7996 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7997 be necessary to read all the buffer. (bug #894)
7999 * bus/activation.c (bus_activation_activate_service): fix a
8000 potential assertion failure (bug #896). Small optimization in the
8001 case of auto-activation messages.
8003 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8004 add test case for byte-through-vararg bug (#901). patch by Kimmo
8007 2004-07-28 Anders Carlsson <andersca@gnome.org>
8010 * python/dbus_bindings.pyx.in:
8011 Add dbus.init_gthreads (), allow emit_signal to pass
8012 arguments to the signal.
8014 2004-07-24 Havoc Pennington <hp@redhat.com>
8016 * AUTHORS: add some people, not really comprehensively, let me
8017 know if I missed you
8019 2004-07-24 Havoc Pennington <hp@redhat.com>
8021 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8024 * test/Makefile.am (DIST_SUBDIRS): here also
8026 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
8028 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8029 breaking build on Solaris, reported by Farhad Saberi on the ML.
8031 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8032 va_arg invocation to account for integer promotion in the case of
8033 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8035 * bus/services.c (bus_service_remove_owner): fix bug #902, use
8036 _dbus_list_get_first_link, not _dbus_list_get_first.
8038 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8040 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8041 handler functions so that the asserts in _dbus_object_subtree_unref
8044 * dbus/dbus-transport-unix.c (do_reading):
8045 _dbus_transport_queue_messages return value is of type
8046 dbus_bool_t, not DBusDispatchStatus.
8048 2004-07-19 David Zeuthen <david@fubar.dk>
8050 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8053 (check_get_connection_unix_user): Debug says GetProperty; but the
8054 method is called GetConnectionUnixUser
8055 (check_get_connection_unix_process_id): New function
8056 (bus_dispatch_test): Actually call check_get_connection_unix_user();
8057 also call check_get_connection_unix_process_id()
8060 (bus_driver_handle_get_connection_unix_process_id): New function,
8061 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8065 (handle_server_data_external_mech): Set pid from the credentials
8066 obtained from the socket
8068 * dbus/dbus-connection.c:
8069 (dbus_connection_get_unix_process_id): New function
8071 * dbus/dbus-connection.h:
8072 Add prototype for dbus_connection_get_unix_process_id
8074 * dbus/dbus-transport.c:
8075 (_dbus_transport_get_unix_process_id): New function
8077 * dbus/dbus-transport.h:
8078 Add prototype for _dbus_transport_get_unix_process_id
8080 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
8082 * dbus/dbus-message.c: Message counter fix, patch by Christian
8083 Hammond <chipx86@gnupdate.org>
8085 2004-07-18 Seth Nickell <seth@gnome.org>
8088 * python/dbus_bindings.pyx.in:
8089 * python/tests/test-client.py:
8091 Add dbus.ByteArray and dbus_bindings.ByteArray
8092 types so that byte streams can be passed back.
8094 Give jdahlin the heaps of credit that are so
8097 2004-07-12 Seth Nickell <seth@gnome.org>
8101 Add message argument to the default object_method_handler
8104 * python/dbus_bindings.pyx.in:
8106 Automatically return NIL when passed an empty list
8107 (we can't pass back a list since lists are typed
8108 and we don't have any idea what type the the client
8109 intended the list to be... :-( )
8111 2004-07-10 Seth Nickell <seth@gnome.org>
8113 * python/examples/Makefile.am:
8115 Fix distcheck breakage caused by new examples.
8117 2004-07-10 Seth Nickell <seth@gnome.org>
8121 Add "message" argument to service-side dbus.Object
8122 methods. This will break existing services written
8123 using the python bindings, but will allow extraction
8124 of all the message information (e.g. who its from).
8126 Add improved "object oriented" signal handling/emission.
8128 * python/examples/example-service.py:
8132 * python/examples/example-signal-emitter.py:
8133 * python/examples/example-signal-recipient.py:
8135 Two new examples that show how to emit and receive
8136 signals using the new APIs.
8138 * python/examples/example-signals.py:
8139 * python/examples/gconf-proxy-service.py:
8140 * python/examples/gconf-proxy-service2.py:
8142 Add "message" argument to service methods.
8144 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
8146 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8147 * dbus/bus.c (dbus_bus_get_unix_user)
8148 * doc/dbus-specification.xml: implement GetConnectionUnixUser
8149 method of org.freedesktop.DBus interface.
8151 * bus/dispatch.c: test case
8153 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
8155 * python/Makefile.am: switched include directory from glib/ to dbus/
8156 since dbus-glib.h moved
8158 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
8160 * configure.in: prevent building the gcj stuff and libxml loader
8161 since they are broken.
8163 2004-06-20 Havoc Pennington <hp@redhat.com>
8165 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
8166 codes from the dbus error names
8168 * glib/dbus-glib.h: move to subdir dbus/ since it's included
8169 as dbus/dbus-glib.h and that breakage is now visible due to
8170 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8172 * glib/dbus-glib.h: s/gproxy/g_proxy/
8174 * dbus/dbus-shared.h: new header to hold stuff shared with
8177 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8180 * glib/dbus-glib.h (dbus_set_g_error): move to
8181 dbus-glib-lowlevel.h
8183 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8184 of stuff to enable this
8186 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8188 * a bunch of other changes with the same basic "separate glib
8189 bindings from dbus.h" theme
8191 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
8193 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8195 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8197 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
8199 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8200 the reply value of the ServiceExists message.
8202 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
8204 * python/dbus_bindings.pyx.in: No longer need to parse path
8205 elements and pass them as arrays of strings. The C API now
8206 accepts plain path strings.
8207 (_build_parsed_path): removed
8209 2004-06-07 Havoc Pennington <hp@redhat.com>
8211 * doc/TODO: remove auto-activation item since it's done; sort
8212 items by importance/milestone
8214 2004-06-07 Havoc Pennington <hp@redhat.com>
8216 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8217 random signature when using REQUIRED_FIELDS (this hack won't work
8220 * dbus/dbus-message.c: change the signature to be a header field,
8221 instead of message->signature special-case string. Incremental
8222 step forward. Then we can fix up code to send the signature in the
8223 message, then fix up code to validate said signature, then fix up
8224 code to not put the typecodes inline, etc.
8225 (load_one_message): don't make up the signature after the fact
8226 (decode_header_data): require signature field for the known
8229 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8231 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8233 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
8235 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8237 * mono/Handler.cs: Updated to follow new path argument for
8238 (un-)registering objects.
8240 * mono/example/Makefile.am:
8242 * configure.in: Bumped required version for mono and use new -pkg
8245 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
8247 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8248 registration functions take the path argument as char* instead of
8251 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8252 split off the path decompostion part of
8253 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8256 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8258 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8260 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8261 machine approach. A state is implemented as a function that
8262 handles incoming events as specified for that state.
8264 * doc/dbus-specification.xml: Update auth protocol state machine
8265 specification to match implementation. Remove some leftover
8268 2004-06-02 Kristian Høgsberg <krh@redhat.com>
8270 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8271 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8274 * Doxyfile.in: remove deprecated options.
8276 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8277 glib/test-thread.h, glib/test-thread-client.c,
8278 glib/test-thread-server.c, glib/test-profile.c,
8279 glib/test-dbus-glib.c: remove these unused files.
8281 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
8283 * dbus/dbus-object-tree.c
8284 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8285 non-fallback handlers (bug #684).
8286 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8287 (find_subtree_recurse): report wether the returned subtree is an
8288 exact match or a "fallback" match higher up in the tree.
8289 (object_tree_test_iteration): update test case.
8291 2004-06-01 Seth Nickell <seth@gnome.org>
8293 * python/dbus_bindings.pyx.in:
8294 * python/tests/test-client.py:
8296 Round off basic type support. Add dicts (yay!), and
8297 remaining array types.
8299 Make MessageIter more general so it works for dicts too.
8301 Mark all loop variables as C integers.
8303 2004-05-31 Havoc Pennington <hp@redhat.com>
8305 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8308 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8310 * glib/dbus-glib-tool.c (main): set up to have a --self-test
8311 option that runs the tests, and start filling in some code
8312 including for starters just dumping the interfaces to stdout
8314 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8316 * test/data/valid-introspection-files/lots-of-types.xml: test of
8317 an example introspection file
8319 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8322 2004-05-31 Seth Nickell <seth@gnome.org>
8324 * python/dbus_bindings.pyx.in:
8325 * python/tests/test-client.py:
8330 Fix string array memory trashing bug... oops...
8332 2004-05-30 Seth Nickell <seth@gnome.org>
8336 Add a nicer-but-less-flexible alternate API for handling
8337 calls to virtual objects in dbus.ObjectTree.
8339 Screw up the argument order to the dbus.Object constructor
8340 for consistency with dbus.ObjectTree (and to make dbus_methods
8341 optional for future extension)
8343 * python/examples/Makefile.am:
8344 * python/examples/gconf-proxy-service.py:
8345 * python/examples/gconf-proxy-service2.py:
8347 Alternate implementation of gconf-proxy-service using the
8348 nicer dbus.ObjectTree API.
8350 * python/examples/example-service.py:
8351 * python/tests/test-server.py
8353 Reverse the argument order to deal with dbus.Object constructor
8356 2004-05-30 Seth Nickell <seth@gnome.org>
8358 * python/examples/example-client.py:
8359 * python/examples/example-service.py:
8361 Take it back. Lists seem to work but they're broken
8362 in the test suite. Make the base examples use
8365 2004-05-30 Seth Nickell <seth@gnome.org>
8367 * python/dbus_bindings.pyx.in:
8368 * python/tests/test-client.py:
8370 Add some more tests and fix errors that crop up.
8371 Unfortunately, currently it seems like marshalling
8372 and unmarshalling of lists is completely broken :-(
8374 2004-05-30 Seth Nickell <seth@gnome.org>
8376 * python/dbus_bindings.pyx.in:
8378 Add support for ObjectPath type.
8382 Refactor message handling code to a common function.
8384 * python/tests/test-client.py:
8385 * python/tests/test-server.py:
8387 Add tests that check to make sure values of all types
8388 can be echoed from a service w/o mangling.
8390 2004-05-29 Seth Nickell <seth@gnome.org>
8394 Add ObjectTree class which allows implementation
8395 of trees of "virtual" objects. Basically the python
8396 wrapper for "register_fallback".
8398 * python/examples/Makefile.am
8399 * python/examples/gconf-proxy-client.py:
8400 * python/examples/gconf-proxy-service.py:
8402 Implement a simple GConf proxy service that supports
8403 get/set on string and int GConf keys using the ObjectTree.
8405 2004-05-29 Seth Nickell <seth@gnome.org>
8408 * python/examples/example-client.py:
8409 * python/examples/example-service.py:
8410 * python/examples/list-system-services.py:
8412 Add SessionBus, SystemBus and ActivationBus classes
8413 so you don't need to know the special little BUS_TYPE
8416 2004-05-29 Havoc Pennington <hp@redhat.com>
8418 * bus/config-parser.c (process_test_valid_subdir): temporarily
8419 stop testing config parser OOM handling, since expat has issues
8420 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8422 * bus/dbus-daemon-1.1.in: change requested_reply to
8423 send_requested_reply/receive_requested_reply so we can send the
8424 replies, not just receive them.
8426 * bus/config-parser.c: parse the new
8427 send_requested_reply/receive_requested_reply
8429 * bus/policy.c (bus_client_policy_check_can_send): add
8430 requested_reply argument and use it
8432 * bus/bus.c (bus_context_check_security_policy): pass through
8433 requested_reply status to message send check
8435 * bus/system.conf.in: adapt to requested_reply change
8437 2004-05-28 Havoc Pennington <hp@redhat.com>
8439 * test/glib/test-service-glib.c (main): remove unused variable
8441 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8443 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8444 from the enum, no longer in use.
8446 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8449 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8450 whether error_name passed in is a valid error name.
8452 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
8454 * dbus/dbus-message.c (dbus_message_get_args): Added support for
8455 OBJECT_PATH and OBJECT_PATH_ARRAY
8457 2004-05-28 Seth Nickell <seth@gnome.org>
8459 * python/examples/Makefile.am:
8461 Forget to add Makefile.am. Do not pass go.
8463 2004-05-28 Michael Meeks <michael@ximian.com>
8465 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
8468 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8470 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8471 (_dbus_message_iter_get_basic_type_array): impl.
8472 drastically simplify ~all relevant _get methods to use these.
8473 (_dbus_message_iter_append_basic_array),
8474 (dbus_message_iter_append_basic): impl
8475 drastically simplify ~all relevant _append methods to use these.
8477 * dbus/dbus-message-builder.c (parse_basic_type)
8478 (parse_basic_array, lookup_basic_type): impl.
8479 (_dbus_message_data_load): prune scads of duplicate /
8482 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
8483 (_dbus_demarshal_basic_type): implement,
8484 (demarshal_and_validate_len/arg): beef up debug.
8485 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8487 2004-05-27 Seth Nickell <seth@gnome.org>
8490 * python/Makefile.am:
8492 Include the example python apps in the tarball.
8494 * python/examples/list-system-services.py
8496 Add a python new example that fetches the list of services
8497 from the system bus.
8499 2004-05-27 Seth Nickell <seth@gnome.org>
8502 * python/dbus_bindings.pyx.in:
8504 Fix failure to notify that a signal was not handled,
8505 resulted in hung functions.
8507 2004-05-25 Colin Walters <walters@redhat.com>
8509 * tools/dbus-monitor.c (main): Monitor all types of messages.
8511 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
8513 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8514 which unregisters the object path and disposes the handler.
8516 2004-05-23 Kristian Høgsberg <krh@redhat.com>
8518 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8520 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8521 operands to && so we call dbus_message_iter_next () for the last
8524 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8526 * dbus/dbus-object-tree.c
8527 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8528 children even if the requested path isn't registered.
8529 (object_tree_test_iteration): test object_tree_list_registered.
8531 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8534 2004-05-20 Kristian Høgsberg <krh@redhat.com>
8536 * doc/TODO: Remove resolved items.
8538 * bus/expirelist.h (struct BusExpireList): remove unused n_items
8541 * bus/connection.c (bus_connections_expect_reply): Enforce the
8542 per-connection limit on pending replies.
8544 Patch from Jon Trowbridge <trow@ximian.com>:
8546 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
8547 up a watch that triggers a config reload when one end of the pipe
8549 (signal_handler): Instead of doing the config reload in our SIGHUP
8550 handler, just write to the reload pipe and let the associated
8551 watch handle the reload when control returns to the main loop.
8553 * bus/driver.c (bus_driver_handle_reload_config): Added.
8554 Implements a ReloadConfig method for requesting a configuration
8555 file reload via the bus driver.
8557 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
8559 * HACKING: Updated release instructions concerning the wiki page.
8561 2004-05-18 Kristian Høgsberg <krh@redhat.com>
8563 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8564 filter against auth->allowed_mechs; we only add allowed mechs in
8565 record_mechanisms().
8567 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8568 ALLOWED_MECHS to auth-script format so we can set the list of
8571 * data/auth/client-out-of-mechanisms.auth-script: New test to
8572 check client disconnects when it is out of mechanisms to try.
8574 * dbus/dbus-auth.c (process_command): Remove check for lines
8575 longer that 1 MB; we only buffer up maximum 16 kB.
8577 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8578 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8579 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8580 assume there might be unused bytes.
8582 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8583 client-out-of-mechs, it is handled in process_reject(). Move check
8584 for max failures to send_rejected(), as it's a server-only thing.
8586 * dbus/dbus-auth.c: Factor out protocol reply code into functions
8587 send_auth(), send_data(), send_rejected(), send_error(),
8588 send_ok(), send_begin() and send_cancel().
8590 2004-05-17 Kristian Høgsberg <krh@redhat.com>
8592 Remove base64 encoding, replace with hex encoding. Original patch
8593 from trow@ximian.com, added error handling.
8595 * dbus/dbus-string.c (_dbus_string_base64_encode)
8596 (_dbus_string_base64_decode): Remove.
8597 (_dbus_string_hex_decode): Add end_return argument so we can
8598 distinguish between OOM and invalid hex encoding.
8599 (_dbus_string_test): Remove base64 tests and add test case for
8602 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8603 Replace base64 with hex.
8605 * test/data/auth/invalid-hex-encoding.auth-script: New test case
8606 for invalid hex encoded data in auth protocol.
8608 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
8610 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8613 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8615 * mono/dbus-sharp.dll.config.in: Added for GAC
8616 * mono/dbus-sharp.snk: Added for GAC
8617 * mono/Assembly.cs.in: Added for GAC
8618 * mono/Makefile.am: Changes for GAC installation
8619 * configure.in: Added refs for dbus-sharp.dll.config.in and
8620 Assembly.cs.in. More fixes for mono testing
8621 * mono/example/Makefile.am: Changed var to CSC
8622 * Makefile.am: Changed flag name to DBUS_USE_CSC
8624 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
8626 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8627 * mono/doc/*: Added documentation framework
8628 * configure.in: Added monodoc check
8629 * README: Added description of mono configure flags
8631 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
8633 * doc/dbus-specification.xml: Added a "Required" column to the
8634 header fields table and changed the "zero or more" verbage in
8635 the above paragraph to read "The header must contain the required
8636 named header fields and zero or more of the optional named header
8638 * test/data/invalid-messages/*.message: Added the required PATH
8639 named header field to the tests so that they don't fail on
8640 'Missing path field'
8642 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
8644 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8645 the stack by implicitly defining variable and parameter types and
8646 removing the hack of defining C pointers as python objects and later
8649 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
8651 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8653 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
8655 * mono/DBusType/Dict.cs: Handle empty dicts
8656 * mono/DBusType/Array.cs: Handle empty arrays
8657 * mono/Arguments.cs: Handle empty arguments
8659 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
8661 * dbus-sharp.pc.in: Modified to include include Libs and Requires
8664 2004-04-25 Kristian Høgsberg <krh@redhat.com>
8666 * test/data/valid-messages/standard-*.message: Update message
8667 test scripts to new header field names.
8669 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
8671 * test/break-loader.c (randomly_do_n_things): tracked down buffer
8672 overflow to times_we_did_each_thing array which would chop off the
8673 first character of the failure_dir string. Increased the size of
8674 the array to 7 to reflect the number of random mutation functions
8677 2004-04-21 Kristian Høgsberg <krh@redhat.com>
8679 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8680 unix_server->watch here, it is unreffed in disconnect.
8681 (_dbus_server_new_for_tcp_socket): convert NULL host to
8682 "localhost" here so we don't append NULL to address.
8684 * dbus/dbus-server.c (_dbus_server_test): Add test case for
8685 various addresses, including tcp with no explicit host.
8687 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8689 * dbus/dbus-message.c (decode_header_data, decode_string_field):
8690 fix incorrect setting of .name_offset in the HeaderField (it was
8691 off by two bytes, positioned right after the name and typecode)
8693 * bus/bus.c (bus_context_new, bus_context_unref): test before
8694 calling dbus_server_free_data_slot and _dbus_user_database_unref
8695 in case of an error.
8697 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8700 2004-04-19 Kristian Høgsberg <krh@redhat.com>
8702 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8703 _dbus_poll() instead of select().
8705 2004-04-15 Jon Trowbridge <trow@ximian.com>
8707 * bus/main.c (signal_handler): Reload the configuration files
8709 (main): Set up our SIGHUP handler.
8711 * bus/bus.c (struct BusContext): Store the config file, user and
8712 fork flag in the BusContext.
8713 (process_config_first_time_only): Added. Contains the code
8714 (previously in bus_context_new) for setting up the BusContext from
8715 the BusConfigParser that should only be run the first time the
8716 config files are read.
8717 (process_config_every_time): Added. Contains the code (previously
8718 in bus_context_new) for setting up the BusContext from the
8719 BusConfigParser that should be run every time the config files are
8721 (load_config): Added. Builds a BusConfigParser from the config
8722 files and passes the resulting structure off to
8723 process_config_first_time_only (assuming this is the first time)
8724 and process_config_every_time.
8725 (bus_context_new): All of the config-related code has been moved
8726 to process_config_first_time_only and process_config_every_time.
8727 Now this function just does the non-config-related initializations
8728 and calls load_config.
8729 (bus_context_reload_config): Added.
8731 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
8733 * bus/driver.c (bus_driver_handle_get_service_owner):
8734 implement a GetServiceOwner method.
8735 * doc/dbus-specification.xml: document it.
8736 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8738 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8739 implement, using the bus GetServiceOwner method.
8741 * test/glib/test-dbus-glib.c:
8742 use dbus_gproxy_new_for_service_owner so that we can receive the
8745 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
8747 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8748 dbus/dbus-message.c, dbus/dbus-protocol.h
8749 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8751 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8752 dbus/dbus-message.c, dbus/dbus-protocol.h
8753 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8755 * dbus/dbus-internals.c (_dbus_header_field_to_string):
8756 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8757 DBUS_HEADER_FIELD_SENDER resolves to "sender"
8759 * doc/dbus-specification.xml (Header Fields Table):
8760 s/SERVICE/DESTINATION
8761 s/SENDER_SERVICE/SENDER
8764 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
8766 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8769 2004-04-13 Michael Meeks <michael@ximian.com>
8771 * glib/dbus-gobject.c (handle_introspect): split out
8772 (introspect_properties): this.
8773 (handle_introspect): implement this.
8775 * test/glib/Makefile.am: use the absolute path so the bus
8776 daemon's chdir ("/") doesn't kill us dead.
8778 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8780 2004-04-12 Jon Trowbridge <trow@ximian.com>
8782 * bus/config-parser.c (struct BusConfigParser): Added
8783 included_files field.
8784 (seen_include): Added. Checks whether or not a file has already
8785 been included by any parent BusConfigParser.
8786 (bus_config_parser_new): Copy the parent's included_files.
8787 (include_file): Track which files have been included, and fail on
8788 circular inclusions.
8789 (process_test_valid_subdir): Changed printf to report if we are
8790 testing valid or invalid conf files.
8791 (all_are_equiv): Changed printf to be a bit clearer about
8792 what we are actually doing.
8793 (bus_config_parser_test): Test invalid configuration files.
8795 2004-04-09 Jon Trowbridge <trow@ximian.com>
8797 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8798 argument. If non-null, the newly-constructed BusConfigParser will
8799 be initialized with the parent's BusLimits instead of the default
8801 (include_file): When including a config file, pass in
8802 the current parser as the parent and then copy the BusLimits
8803 from the included BusConfigParser pack to the current parser.
8804 (process_test_valid_subdir): Renamed from process_test_subdir.
8805 (process_test_equiv_subdir): Added. Walks through a directory,
8806 descending into each subdirectory and loading the config files
8807 it finds there. If any subdirectory contains two config files
8808 that don't produce identical BusConfigParser structs, fail.
8809 For now, the BusConfigParser's BusPolicies are not compared.
8810 (bus_config_parser_test): Call both process_test_valid_subdir and
8811 process_test_equiv_subdir.
8813 * bus/config-loader-libxml.c (bus_config_load): Take a parent
8814 argument and pass it along to the call to bus_config_parser_new.
8815 Also made a few small changes to allow this code to compile.
8817 * bus/config-loader-expat.c (bus_config_load): Take a parent
8818 argument and pass it along to the call to bus_config_parser_new.
8820 * bus/bus.c (bus_context_new): Load the config file
8821 with a NULL parent argument.
8823 2004-03-29 Michael Meeks <michael@ximian.com>
8825 * glib/dbus-gobject.c (introspect_properties): split
8826 out, fix mangled 'while' flow control.
8827 (introspect_signals): implement.
8828 (handle_introspect): update.
8830 2004-03-29 Michael Meeks <michael@ximian.com>
8832 * glib/dbus-gobject.c (set_object_property): split out /
8833 re-work, use the property type, and not the message type(!)
8834 (get_object_property): ditto.
8836 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8837 (dbus_gvalue_marshal): make this code re-usable, needed
8838 for signals too, also on both proxy and server side.
8839 Re-write for more efficiency / readability.
8841 2004-03-29 Michael Meeks <michael@ximian.com>
8843 * dbus/dbus-message.c
8844 (dbus_message_new_error_printf): impl.
8846 * dbus/dbus-connection.c
8847 (dbus_connection_unregister_object_path): fix warning.
8849 * configure.in: fix no-mono-installed situation.
8851 2004-03-27 Havoc Pennington <hp@redhat.com>
8853 Patch from Timo Teräs:
8855 * tools/dbus-send.c (main): if --print-reply, assume type is
8856 method call; support boolean type args
8858 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8859 bunch of memleak and logic bugs
8861 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8863 * mono/Arguments.cs:
8864 * mono/Introspector.cs:
8866 * mono/InterfaceProxy.cs:
8868 * mono/ProxyBuilder.cs:
8870 Added InterfaceProxy class to avoid building proxies for every
8874 * dbus-message.c (dbus_message_append_args_valist)
8875 (dbus_message_iter_get_object_path)
8876 (dbus_message_iter_get_object_path_array)
8877 (dbus_message_iter_append_object_path)
8878 (dbus_message_iter_append_object_path_array):
8879 Added object_path iter functions to handle OBJECT_PATH arguments
8881 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
8883 First checkin of mono bindings.
8886 Build stuff for the bindings
8887 * dbus-sharp.pc.in: Added for pkgconfig
8889 2004-03-21 Havoc Pennington <hp@redhat.com>
8891 * test/test-service.c (main): remove debug spew
8893 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
8895 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8898 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8899 (dbus_message_iter_init_array_iterator)
8900 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8901 indicate whether the iterator is empty
8903 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8906 2004-03-19 Havoc Pennington <hp@redhat.com>
8908 * NEWS: 0.21 updates
8910 * configure.in: 0.21
8912 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8914 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8915 you don't need pyrex to make dist
8917 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8920 2004-03-18 Richard Hult <richard@imendio.com>
8922 * dbus/dbus-message.c (dbus_message_get_auto_activation)
8923 (dbus_message_set_auto_activation): Add doxygen docs.
8925 2004-03-16 Richard Hult <richard@imendio.com>
8927 * bus/activation.c: (bus_activation_service_created),
8928 (bus_activation_send_pending_auto_activation_messages),
8929 (bus_activation_activate_service):
8931 * bus/dispatch.c: (bus_dispatch),
8932 (check_nonexistent_service_auto_activation),
8933 (check_service_auto_activated),
8934 (check_segfault_service_auto_activation),
8935 (check_existent_service_auto_activation), (bus_dispatch_test):
8936 * bus/driver.c: (bus_driver_handle_activate_service):
8937 * bus/services.c: (bus_registry_acquire_service):
8938 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8939 (dbus_message_get_auto_activation):
8940 * dbus/dbus-message.h:
8941 * dbus/dbus-protocol.h: Implement auto-activation.
8943 * doc/dbus-specification.xml: Add auto-activation to the spec.
8945 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
8947 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8948 fix a bug with CUSTOM types.
8950 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8951 a unit test for this bug (used to fail).
8953 2004-03-12 Mikael Hallendal <micke@imendio.com>
8956 (babysitter_watch_callback): notify all pending activations waiting for
8957 the same exec that the activation failed.
8958 (bus_activation_activate_service): shortcut the activation if we
8959 already waiting for the same executable to start up.
8961 2004-03-12 Mikael Hallendal <micke@imendio.com>
8964 - Added service file reloading.
8965 Each service files directory is kept in an hash table in
8966 BusActivation and each BusActivationEntry knows what .service-file it
8967 was read from. So when you try to activate a service the bus will
8968 check if it's been updated, removed or if new .service-files has
8970 - Test code at the bottom for the service file reloading.
8971 * bus/test-main.c: (main):
8973 - added service reloading test.
8974 * dbus/dbus-sysdeps.c:
8975 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8977 2004-03-08 Michael Meeks <michael@ximian.com>
8979 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
8980 bail immediately if disconnected, to avoid busy loop.
8982 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8983 cleanup cut/paste/inefficiency.
8985 2004-03-01 David Zeuthen <david@fubar.dk>
8987 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8988 bug where args were used twice. This bug resulted in a segfault
8989 on a Debian/PPC system when starting the messagebus daemon. Include
8990 dbus-sysdeps.h for DBUS_VA_COPY
8992 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8994 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8995 appropriate va_copy implementation. From GLib
8997 2004-02-24 Joe Shaw <joe@ximian.com>
8999 * bus/services.c (bus_registry_acquire_service): We need to pass
9000 in the service name to dbus_set_error() to prevent a crash.
9002 2003-12-26 Anders Carlsson <andersca@gnome.org>
9004 * AUTHORS: Reveal my True identity.
9006 2003-12-17 Mikael Hallendal <micke@imendio.com>
9008 * dbus/dbus-message.c: (dbus_message_append_args_valist):
9009 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9011 2003-12-13 Mikael Hallendal <micke@imendio.com>
9013 * doc/TODO: Added not about better error check of configuration files.
9015 2003-12-02 Richard Hult <richard@imendio.com>
9017 * Update AFL version to 2.0 throughout the source files to reflect
9018 the update that was done a while ago.
9020 2003-12-02 Richard Hult <richard@imendio.com>
9022 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9023 wrote_dict_key to FALSE on the iter that the dict is appended to,
9024 just like when appending other types. Fixes a bug where a dict
9025 couldn't be put inside a dict.
9026 (dbus_message_iter_append_dict_key): Fix typo in warning message.
9027 (message_iter_test, _dbus_message_test): Add test case for dict
9030 2003-12-01 David Zeuthen <david@fubar.dk>
9032 * python/dbus.py: Add the actual message when calling the reciever
9033 of a signal such that parameters can be inspected. Add the method
9034 remove_signal_receiver
9036 2003-11-26 Mikael Hallendal <micke@imendio.com>
9040 * glib/*.[ch]: Made ref functions return the pointer
9042 2003-11-25 Zack Rusin <zack@kde.org>
9044 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9046 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
9049 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
9050 the Integrator and to better fit with the server,
9052 2003-11-24 Zack Rusin <zack@kde.org>
9054 * qt/connection.h, qt/connection.cpp: removing initDbus method since
9055 the integrator handles it now
9057 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9058 since QTimer wasn't really meant to be used the way DBusTimeout is
9060 2003-11-24 Zack Rusin <zack@kde.org>
9062 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
9063 Integrator class which integrates D-BUS with the Qt event loop,
9065 * qt/connection.h, qt/connection.cpp: Move all the code which
9066 was dealing with D-BUS integration to the Integrator class,
9067 and start using Integrator,
9069 2003-11-23 Zack Rusin <zack@kde.org>
9071 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
9074 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9075 switching namespaces to DBusQt, reworking the class,
9077 * Makefile.cvs: switching dependencies so that it matches KDE
9080 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
9083 2003-11-19 Havoc Pennington <hp@redhat.com>
9087 * configure.in: bump version to 0.20
9089 * configure.in (have_qt): add yet another place to look for qt
9090 (someone hand trolltech a .pc file...)
9092 2003-11-01 Havoc Pennington <hp@redhat.com>
9094 * doc/dbus-specification.xml: add state machine docs on the auth
9095 protocol; just a first draft, I'm sure it's wrong.
9097 2003-10-28 David Zeuthen <david@fubar.dk>
9099 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9100 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9102 2003-10-28 Havoc Pennington <hp@redhat.com>
9104 * dbus/dbus-message.c (get_next_field): delete unused function
9106 2003-10-28 Havoc Pennington <hp@redhat.com>
9108 * bus/expirelist.c (do_expiration_with_current_time): detect
9109 failure of the expire_func due to OOM
9111 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9113 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9114 NoReply error that's now created by the bus when the service exits
9116 2003-10-28 Havoc Pennington <hp@redhat.com>
9118 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9119 tests for set_path, set_interface, set_member, etc.
9121 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9123 * dbus/dbus-message.c (set_string_field): always just delete and
9124 re-append the field; accept NULL for deletion
9125 (re_align_fields_recurse): reimplement
9127 2003-10-26 Havoc Pennington <hp@redhat.com>
9129 * dbus/dbus-connection.c: fix docs to properly describe the
9130 disconnected message
9131 (_dbus_connection_notify_disconnected): remove this function;
9132 we can't synchronously add the disconnected message, we have to
9133 do it after we've queued any remaining real messages
9134 (_dbus_connection_get_dispatch_status_unlocked): queue the
9135 disconnect message only if the transport has finished queueing all
9136 its real messages and is disconnected.
9137 (dbus_connection_disconnect): update the dispatch status here
9139 2003-10-22 Havoc Pennington <hp@redhat.com>
9141 * bus/bus.c (bus_context_check_security_policy): fix up assertion
9143 * bus/connection.c (bus_transaction_send_from_driver): set the
9144 destination to the connection's base service
9146 2003-10-20 Havoc Pennington <hp@redhat.com>
9148 hmm, make check is currently not passing.
9150 * doc/dbus-specification.xml: add requirement that custom type
9151 names follow the same rules as interface names.
9153 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9154 duplication and allow 'c' to be 'custom'; dict is now 'm' for
9157 * doc/dbus-specification.xml: update type codes to match
9158 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9159 CUSTOM. Add type OBJECT_PATH to the spec.
9161 2003-10-17 Havoc Pennington <hp@redhat.com>
9163 * bus/driver.c (create_unique_client_name): use "." as separator
9164 in base service names instead of '-'
9166 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9167 byte at the end of the string
9169 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9170 optimization macros since string validation seems to be a slow
9173 * doc/dbus-specification.xml: restrict valid
9174 service/interface/member/error names. Add test suite code for the
9177 * dbus/dbus-string.c: limit service/interface/member/error names
9180 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9181 format arg to verbose spew
9183 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9184 memory, return instead of g_error
9186 * test/test-service.c (path_message_func): support emitting a
9189 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9190 activation bus type if DBUS_BUS_ACTIVATION was set; default to
9191 assuming the activation bus was the session bus so that services
9192 started manually will still register.
9193 (init_connections_unlocked): fix so that in OOM situation we get
9194 the same semantics when retrying the function
9196 * test/test-service.c (main): change to use path registration, to
9197 test those codepaths; register with DBUS_BUS_ACTIVATION rather
9198 than DBUS_BUS_SESSION
9200 2003-10-16 Havoc Pennington <hp@redhat.com>
9202 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9204 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9205 coverage of the tests
9206 (coverage-report.txt): don't move the .da and .bbg files around
9208 2003-10-16 Havoc Pennington <hp@redhat.com>
9210 * bus/bus.c (struct BusContext): remove struct field I didn't mean
9213 2003-10-16 Havoc Pennington <hp@redhat.com>
9215 * bus/connection.c (bus_pending_reply_expired): either cancel or
9217 (bus_connections_check_reply): use unlink, not remove_link, as we
9218 don't want to free the link; fixes double free mess
9220 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9221 where no reply was received
9223 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9226 * bus/signals.c (match_rule_matches): add special cases for the
9227 bus driver, so you can match on sender/destination for it.
9229 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9230 DBUS_PRINT_BACKTRACE is set
9232 * dbus/dbus-internals.c: add pid to assertion failure messages
9234 * dbus/dbus-connection.c: add message type code to the debug spew
9236 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9237 sender=foo not service=foo
9239 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9240 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
9241 DBUS_ACTIVATION_ADDRESS instead
9243 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9244 DBUS_SYSTEM_BUS_ADDRESS if appropriate
9246 * bus/bus.c (bus_context_new): handle OOM copying bus type into
9249 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9250 (dbus_message_iter_get_object_path_array): new function (half
9251 finished, disabled for the moment)
9253 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9254 DBUS_MESSAGE_TYPE_ERROR
9256 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9257 avoid redirecting stderr to /dev/null
9258 (babysit): close stdin if not doing the "exit_with_session" thing
9260 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9261 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9262 stdout/stdin, so things don't get confused
9264 * bus/system.conf.in: fix to allow replies, I modified .conf
9265 instead of .conf.in again.
9267 2003-10-14 David Zeuthen <david@fubar.dk>
9269 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9270 argtype to arg_type when raising unknown arg type exception.
9271 Changed type list to reflect the changes in dbus-protocol.h so
9272 the bindings actually work.
9274 2003-10-14 Havoc Pennington <hp@redhat.com>
9276 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9277 to have a bug keeping it from outputting the .da files sometimes
9278 (string_get_string): don't append garbage nul bytes to the string.
9280 2003-10-15 Seth Nickell <seth@gnome.org>
9282 * python/Makefile.am:
9284 Include dbus_h_wrapper.h in the dist tarball.
9286 2003-10-14 Havoc Pennington <hp@redhat.com>
9288 * bus/bus.c (bus_context_check_security_policy): revamp this to
9289 work more sanely with new policy-based requested reply setup
9291 * bus/connection.c (bus_transaction_send_from_driver): set bus
9292 driver messages as no reply
9294 * bus/policy.c (bus_client_policy_check_can_receive): handle a
9295 requested_reply attribute on allow/deny rules
9297 * bus/system.conf: add <allow requested_reply="true"/>
9299 * bus/driver.c (bus_driver_handle_message): fix check for replies
9300 sent to the bus driver, which was backward. How did this ever work
9301 at all though? I think I'm missing something.
9303 * dbus/dbus-message.c (decode_header_data): require error and
9304 method return messages to have a reply serial field to be valid
9305 (_dbus_message_loader_queue_messages): break up this function;
9306 validate that reply serial and plain serial are nonzero;
9307 clean up the OOM/error handling.
9308 (get_uint_field): don't return -1 from this
9309 (dbus_message_create_header): fix signed/unsigned bug
9311 * bus/connection.c (bus_connections_expect_reply): save serial of
9312 the incoming message, not reply serial
9314 2003-10-14 Havoc Pennington <hp@redhat.com>
9316 * bus/connection.c: implement pending reply tracking using
9319 * bus/bus.c (bus_context_check_security_policy): verify that a
9320 reply is pending in order to allow a reply to be sent. Deny
9321 messages of unknown type.
9323 * bus/dbus-daemon-1.1.in: update to mention new resource limits
9325 * bus/bus.c (bus_context_get_max_replies_per_connection): new
9326 (bus_context_get_reply_timeout): new
9328 2003-10-13 Seth Nickell <seth@gnome.org>
9330 * python/Makefile.am:
9332 Pass "make distcheck": remove a couple files from DIST_FILES
9333 that weren't included in the final version.
9335 2003-10-12 Havoc Pennington <hp@pobox.com>
9337 Added test code that 1) starts an actual bus daemon and 2) uses
9338 DBusGProxy; fixed bugs that were revealed by the test. Lots
9339 more testing possible, but this is the basic framework.
9341 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9342 empty proxy lists from the proxy list hash
9344 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9345 couple of return_if_fail checks
9347 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9348 to allocate, so everything is cleared to NULL as it should be.
9350 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9351 source as data to dbus_connection_set_timeout_functions() as the
9352 timeout functions expected
9354 * test/glib/run-test.sh: add a little script to start up a message
9355 bus and run tests using it
9357 * tools/dbus-launch.1: updates
9359 * tools/dbus-launch.c (main): add --config-file option
9361 * tools/dbus-launch.c (main): remove confusing else if (runprog)
9362 that could never be reached.
9364 * dbus/dbus-message.c (dbus_message_new_method_return)
9365 (dbus_message_new_error, dbus_message_new_signal): set the
9366 no-reply-expected flag on all these. Redundant, but may
9367 as well be consistent.
9369 2003-10-11 Havoc Pennington <hp@pobox.com>
9371 * test/decode-gcov.c (function_solve_graph): make broken block
9372 graph a nonfatal error since it seems to be broken. Need to debug
9375 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9376 can't just check type > INVALID < LAST anymore
9378 * dbus/dbus-message.c (dbus_message_get_signature): new function
9379 (dbus_message_has_signature): new function
9380 (struct DBusMessage): add signature field (right now it isn't sent
9381 over the wire, just generated on the fly)
9382 (dbus_message_copy): copy the signature, and init strings to
9383 proper length to avoid some reallocs
9384 (dbus_message_iter_init_array_iterator): return void, since it
9386 (dbus_message_iter_init_dict_iterator): return void since it can't fail
9387 (_dbus_message_loader_queue_messages): add silly temporary hack to
9388 fill in message->signature on load
9390 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9391 characters, so they are relatively human-readable.
9393 2003-10-11 Havoc Pennington <hp@pobox.com>
9395 * dbus/dbus-message.c (_dbus_message_test): add more test
9396 coverage, but #if 0 for now since they uncover a bug
9397 not fixed yet; I think in re_align_field_recurse()
9398 (re_align_field_recurse): add FIXME about broken assertion
9400 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9402 * bus/connection.c: share a couple code bits with expirelist.c
9404 * bus/expirelist.h, bus/expirelist.c: implement a generic
9405 expire-items-after-N-seconds facility, was going to share between
9406 expiring connections and replies, decided not to use for expiring
9407 connections for now.
9409 * COPYING: include AFL 2.0 (still need to change all the file headers)
9411 2003-10-09 Havoc Pennington <hp@redhat.com>
9413 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9414 gcc 3.3. Not that we do anything about it yet.
9416 * bus/signals.c (bus_match_rule_parse): impose max length on the
9419 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9421 2003-10-09 Havoc Pennington <hp@redhat.com>
9423 Make matching rules theoretically work (add parser).
9425 * bus/bus.c (bus_context_check_security_policy): fix up to handle
9426 the case where destination is explicitly specified as bus driver
9427 and someone else is eavesdropping.
9429 * bus/policy.c (bus_client_policy_check_can_receive): fix up
9430 definition of eavesdropping and assertion
9432 * tools/dbus-send.c (main): use dbus_message_type_from_string
9434 * bus/signals.c (bus_match_rule_parse): implement
9436 * dbus/dbus-message.c (dbus_message_type_from_string): new
9438 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9440 2003-10-02 Havoc Pennington <hp@pobox.com>
9442 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9443 dbus_gproxy_oneway_call
9445 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
9446 (dbus_server_setup_with_g_main): fix to allow calling them more
9447 than once on the same args
9448 (dbus_bus_get_with_g_main): new function
9450 2003-10-02 Havoc Pennington <hp@redhat.com>
9452 * doc/dbus-tutorial.xml: write some stuff
9454 2003-09-29 Havoc Pennington <hp@pobox.com>
9456 * configure.in: split checks for Doxygen from XML docs, check for
9459 * doc/Makefile.am: XML-ify all the docs, and add a blank
9462 2003-09-29 Havoc Pennington <hp@pobox.com>
9464 * Merge dbus-object-names branch. To see the entire patch
9465 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9466 it's huuuuge though.
9467 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9469 2003-09-28 Havoc Pennington <hp@pobox.com>
9471 * HACKING: update to reflect new server
9473 2003-09-26 Seth Nickell <seth@gnome.org>
9476 * python/examples/example-signals.py:
9478 Start implementing some notions of signals. The API
9479 is really terrible, but they sort of work (with the
9480 exception of being able to filter by service, and to
9481 transmit signals *as* a particular service). Need to
9482 figure out how to make messages come from the service
9485 * python/dbus_bindings.pyx.in:
9487 Removed duplicate message_handler callbacks.
9489 2003-09-25 Havoc Pennington <hp@redhat.com>
9491 * bus/session.conf.in: fix my mess
9493 2003-09-25 Havoc Pennington <hp@pobox.com>
9495 * bus/session.conf.in: fix security policy, reported by Seth Nickell
9497 2003-09-25 Seth Nickell <seth@gnome.org>
9499 * python/examples/example-service.py:
9501 Johan notices complete wrong code in example-service, but
9502 completely wrong in a way that works exactly the same (!).
9503 Johan is confused, how could this possibly work? Example
9504 code fails to serve purpose of making things clear.
9507 2003-09-25 Mark McLoughlin <mark@skynet.ie>
9509 * doc/dbus-specification.sgml: don't require header fields
9510 to be 4-byte aligned and specify that fields should be
9511 distinguished from padding by the fact that zero is not
9514 * doc/TODO: remove re-alignment item and add item to doc
9515 the OBJECT_PATH type.
9517 * dbus/dbus-message.c:
9518 (HeaderField): rename the original member to value_offset
9519 and introduce a name_offset member to keep track of where
9520 the field actually begins.
9521 (adjust_field_offsets): remove.
9522 (append_int_field), (append_uint_field),
9523 (append_string_field): don't align the start of the header
9524 field to a 4-byte boundary.
9525 (get_next_field): impl finding the next marhsalled field
9526 after a given field.
9527 (re_align_field_recurse): impl re-aligning a number of
9528 already marshalled fields.
9529 (delete_field): impl deleting a field of any type and
9530 re-aligning any following fields.
9531 (delete_int_or_uint_field), (delete_string_field): remove.
9532 (set_int_field), (set_uint_field): no need to re-check
9533 that we have the correct type for the field.
9534 (set_string_field): ditto and impl re-aligning any
9536 (decode_header_data): update to take into account that
9537 the fields aren't 4-byte aligned any more and the new
9538 way to distinguish padding from header fields. Also,
9539 don't exit when there is too much header padding.
9540 (process_test_subdir): print the directory.
9541 (_dbus_message_test): add test to make sure a following
9542 field is re-aligned correctly after field deletion.
9544 * dbus/dbus-string.[ch]:
9545 (_dbus_string_insert_bytes): rename from insert_byte and
9546 allow the insert of multiple bytes.
9547 (_dbus_string_test): test inserting multiple bytes.
9549 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9550 warning note to docs about having to re-align any
9551 marshalled values following the string.
9553 * dbus/dbus-message-builder.c:
9554 (append_string_field), (_dbus_message_data_load):
9555 don't align the header field.
9557 * dbus/dbus-auth.c: (process_test_subdir): print the
9560 * test/break-loader.c: (randomly_add_one_byte): upd. for
9563 * test/data/invalid-messages/bad-header-field-alignment.message:
9566 * test/data/valid-messages/unknown-header-field.message: shove
9567 a dict in the unknown field.
9569 2003-09-25 Seth Nickell <seth@gnome.org>
9572 * python/dbus_bindings.pyx.in:
9574 Handle return values.
9576 * python/examples/example-client.py:
9577 * python/examples/example-service.py:
9579 Pass back return values from the service to the client.
9581 2003-09-24 Seth Nickell <seth@gnome.org>
9585 Connect Object methods (when you are sharing an object) up... pass
9586 in a list of methods to be shared. Sharing all the methods just
9587 worked out too weird. You can now create nice Services over the
9590 * python/dbus_bindings.pyx.in:
9592 Keep references to user_data tuples passed into C functions so
9593 Python doesn't garbage collect on us.
9595 Implement MethodReturn and Error subclasses of Message for creating
9596 DBusMessage's of those types.
9598 * python/examples/example-client.py:
9599 * python/examples/example-service.py:
9601 Simple example code showing both how create DBus services and objects,
9602 and how to use them.
9604 2003-09-23 Havoc Pennington <hp@pobox.com>
9606 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9608 2003-09-23 Havoc Pennington <hp@redhat.com>
9610 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9611 (dbus_gproxy_disconnect_signal): implement
9612 (dbus_gproxy_manager_remove_signal_match): implement
9613 (dbus_gproxy_manager_add_signal_match): implement
9614 (dbus_gproxy_oneway_call): implement
9616 2003-09-23 Havoc Pennington <hp@pobox.com>
9618 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9619 subclass. This means dropping the transparent thread safety of the
9620 proxy; you now need a separate proxy per-thread, or your own
9621 locking on the proxy. Probably right anyway.
9622 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9624 2003-09-22 Havoc Pennington <hp@redhat.com>
9626 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9628 2003-09-21 Seth Nickell <seth@gnome.org>
9630 First checkin of the Python bindings.
9632 * python/.cvsignore:
9633 * python/Makefile.am:
9634 * python/dbus_bindings.pyx.in:
9635 * python/dbus_h_wrapper.h:
9637 Pieces for Pyrex to operate on, building a dbus_bindings.so
9638 python module for low-level access to the DBus APIs.
9642 High-level Python module for accessing DBus objects.
9647 Build stuff for the python bindings.
9651 Extra macro needed for finding the Python C header files.
9653 2003-09-21 Havoc Pennington <hp@pobox.com>
9655 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9656 implementing the proxy manager, didn't get very far.
9658 * dbus/dbus-bus.c (dbus_bus_add_match): new
9659 (dbus_bus_remove_match): new
9661 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9662 path_name argument; adjust the other not-yet-implemented
9663 gproxy constructors to be what I think they should be.
9665 2003-09-21 Havoc Pennington <hp@pobox.com>
9667 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9668 by default for message bus connections.
9670 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9671 exit_on_disconnect flag is set and we process the disconnected
9673 (dbus_connection_set_exit_on_disconnect): new function
9675 2003-09-21 Havoc Pennington <hp@pobox.com>
9677 Get matching rules mostly working in the bus; only actually
9678 parsing the rule text remains. However, the client side of
9679 "signal connections" hasn't been started, this patch is only the
9682 * dbus/dispatch.c: fix for the matching rules changes
9684 * bus/driver.c (bus_driver_handle_remove_match)
9685 (bus_driver_handle_add_match): send an ack reply from these
9688 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9689 arguments, reported by Seth Nickell
9691 * bus/config-parser.c (append_rule_from_element): support
9692 eavesdrop=true|false attribute on policies so match rules
9693 can be prevented from snooping on the system bus.
9695 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9696 and "destination" in attribute names; fix some docs bugs;
9697 add eavesdrop=true|false attribute
9699 * bus/driver.c (bus_driver_handle_add_match)
9700 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9703 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9704 rid of broadcast service concept, signals are just always broadcast
9706 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9707 mostly implement matching rules stuff (currently only exposed as signal
9710 2003-09-21 Mark McLoughlin <mark@skynet.ie>
9712 * doc/dbus-specification.sgml: Change the header field name
9713 to be an enum and update the rest of the spec to reference
9714 the fields using the conventinal name.
9716 * dbus/dbus-protocol.h: update to reflect the spec.
9718 * doc/TODO: add item to remove the 4 byte alignment requirement.
9720 * dbus/dbus-message.c: Remove the code to generalise the
9721 header/body length and serial number header fields as named
9722 header fields so we can reference field names using the
9724 (append_int_field), (append_uint_field), (append_string_field):
9725 Append the field name as a byte rather than four chars.
9726 (delete_int_or_uint_field), (delete_string_field): reflect the
9727 fact that the field name and typecode now occupy 4 bytes instead
9729 (decode_string_field), (decode_header_data): update to reflect
9730 protocol changes and move the field specific encoding from
9731 decode_string_field() back into decode_header_data().
9733 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9734 Add utility to aid debugging.
9736 * dbus/dbus-message-builder.c:
9737 (append_string_field), (_dbus_message_data_load): Update to
9738 reflect protocol changes; Change the FIELD_NAME directive
9739 to HEADER_FIELD and allow it to take the field's conventional
9740 name rather than the actual value.
9742 * test/data/*/*.message: Update to use HEADER_FIELD instead
9743 of FIELD_NAME; Always align the header on an 8 byte boundary
9744 *before* updating the header length.
9746 2003-09-15 Havoc Pennington <hp@pobox.com>
9748 * dbus/dbus-pending-call.c: add the get/set object data
9749 boilerplate as for DBusConnection, etc. Use generic object data
9750 for the notify callback.
9752 * glib/dbus-gparser.c (parse_node): parse child nodes
9754 * tools/dbus-viewer.c: more hacking on the dbus-viewer
9756 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9757 contain functions shared between the convenience lib and the
9760 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9761 -export-symbols-regex to the GLib library
9763 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9764 fix the locking in here, and add a default handler for
9765 Introspect() that just returns sub-nodes.
9767 2003-09-14 Havoc Pennington <hp@pobox.com>
9769 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9770 rather than gfoo consistent
9772 * glib/dbus-gproxy.h: delete for now, move contents to
9773 dbus-glib.h, because the include files don't work right since we
9774 aren't in the dbus/ subdir.
9776 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9777 (dbus_gproxy_end_call): finish
9778 (dbus_gproxy_begin_call): finish
9780 * glib/dbus-gmain.c (dbus_set_g_error): new
9782 * glib/dbus-gobject.c (handle_introspect): include information
9783 about child nodes in the introspection
9785 * dbus/dbus-connection.c (dbus_connection_list_registered): new
9786 function to help in implementation of introspection
9788 * dbus/dbus-object-tree.c
9789 (_dbus_object_tree_list_registered_and_unlock): new function
9791 2003-09-12 Havoc Pennington <hp@pobox.com>
9793 * glib/dbus-gidl.h: add common base class for all the foo_info
9796 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9799 * test/Makefile.am: try test srcdir -ef . in addition to test
9800 srcdir = ., one of them should work (yeah lame)
9802 * glib/Makefile.am: build the "idl" parser stuff as a convenience
9805 * glib/dbus-gparser.h: make description_load routines return
9806 NodeInfo* not Parser*
9808 * Makefile.am (SUBDIRS): build test dir after all library dirs
9810 * configure.in: add GTK+ detection
9812 2003-09-07 Havoc Pennington <hp@pobox.com>
9814 * Make Doxygen contented.
9816 2003-09-07 Havoc Pennington <hp@pobox.com>
9818 * doc/dbus-specification.sgml: more updates
9820 2003-09-06 Havoc Pennington <hp@pobox.com>
9822 * doc/dbus-specification.sgml: partial updates
9824 * bus/dbus-daemon-1.1.in: fix the config file docs for the
9825 zillionth time; hopefully I edited the right file this time.
9827 * bus/config-parser.c (append_rule_from_element): support
9828 send_type, send_path, receive_type, receive_path
9830 * bus/policy.c: add message type and path to the list of things
9831 that can be "firewalled"
9833 2003-09-06 Havoc Pennington <hp@pobox.com>
9835 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9836 (dbus_connection_register_object_path): make this not handle
9837 messages to paths below the given path
9839 2003-09-03 Havoc Pennington <hp@pobox.com>
9841 * test/glib/Makefile.am: add this with random glib-linked test
9844 * glib/Makefile.am: remove the random test programs from here,
9845 leave only the unit tests
9847 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
9848 uscore/javacaps conversion, and fix
9849 (get_object_property, set_object_property): change to .NET
9850 convention for mapping props to methods, set_FooBar/get_FooBar,
9851 since one language has such a convention we may as well copy it.
9852 Plus real methods in either getFooBar or get_foo_bar style won't
9853 collide with this convention.
9855 2003-09-01 Havoc Pennington <hp@pobox.com>
9857 * glib/dbus-gparser.c: implement
9859 * glib/dbus-gobject.c: start implementing skeletons support
9861 * configure.in: when disabling checks/assert, also define
9862 G_DISABLE_ASSERT and G_DISABLE_CHECKS
9864 2003-09-01 Havoc Pennington <hp@pobox.com>
9866 * glib/Makefile.am: rearrange a bunch of files and get "make
9867 check" framework set up
9869 2003-08-31 Havoc Pennington <hp@pobox.com>
9871 * fix build with --disable-tests
9873 2003-08-30 Havoc Pennington <hp@pobox.com>
9875 * dbus/dbus-connection.c: purge DBusMessageHandler
9877 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
9878 use callbacks everywhere
9880 2003-08-30 Havoc Pennington <hp@pobox.com>
9882 * test/data/valid-config-files/system.d/test.conf: change to
9883 root for the user so warnings don't get printed
9885 * dbus/dbus-message.c: add dbus_message_get_path,
9886 dbus_message_set_path
9888 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9889 dispatching to a path
9891 * dbus/dbus-string.c (_dbus_string_validate_path): add
9893 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9894 (_dbus_marshal_object_path): implement
9896 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
9897 to contain the path to the target object
9898 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9899 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9901 2003-08-30 Havoc Pennington <hp@pobox.com>
9903 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9905 2003-08-29 Havoc Pennington <hp@pobox.com>
9907 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9909 (struct DBusObjectSubtree): shrink this
9910 a lot, since we may have a lot of them
9911 (_dbus_object_tree_free_all_unlocked): implement
9912 (_dbus_object_tree_dispatch_and_unlock): implement
9914 2003-08-29 Havoc Pennington <hp@pobox.com>
9916 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9918 2003-08-28 Havoc Pennington <hp@pobox.com>
9922 * dbus/dbus-connection.c: port to no ObjectID, create a
9923 DBusObjectTree, rename ObjectTree to ObjectPath in public API
9925 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
9926 everything except UnregisterFunction and MessageFunction
9928 * dbus/dbus-marshal.c: port away from DBusObjectID,
9929 add DBUS_TYPE_OBJECT_PATH
9931 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
9932 dbus/dbus-objectid.[hc]: remove these, we are moving to
9933 path-based object IDs
9935 2003-08-25 Havoc Pennington <hp@pobox.com>
9937 Just noticed that dbus_message_test is hosed, I wonder when I
9938 broke that. I thought make check was passing earlier...
9940 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
9941 container tree, will replace most of dbus-object-registry
9943 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9946 2003-08-19 Havoc Pennington <hp@pobox.com>
9948 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9949 (dbus_message_is_error): fix this function
9951 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9954 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9955 reflect clarified man page
9956 (bus_client_policy_check_can_send): ditto
9958 * bus/session.conf.in: fixup
9960 * bus/system.conf.in: fixup
9962 2003-08-18 Havoc Pennington <hp@redhat.com>
9964 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9966 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9967 dumb bug created earlier (wrong order of args to
9968 decode_header_data())
9970 * tools/dbus-send.c: port
9972 * tools/dbus-print-message.c (print_message): port
9974 * test/data/*messages: port all messages over
9976 * dbus/dbus-message-builder.c: support including
9979 * bus/driver.c: port over
9981 * bus/dispatch.c: port over to new stuff
9983 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9984 rename disconnect signal to "Disconnected"
9986 2003-08-17 Havoc Pennington <hp@pobox.com>
9988 This doesn't compile yet, but syncing up so I can hack on it from
9989 work. What are branches for if not broken code? ;-)
9991 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9992 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9993 DBUS_HEADER_FIELD_ERROR_NAME
9995 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9996 for the interface+member pairs
9997 (string_hash): change to use g_str_hash algorithm
9998 (find_direct_function, find_string_function): refactor these to
10001 * dbus/dbus-message.c: port all of this over to support
10002 interface/member fields instead of name field
10004 * dbus/dbus-object-registry.c: port over
10006 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10007 from _dbus_string_validate_name
10009 * bus/dbus-daemon-1.1: change file format for the
10010 <deny>/<allow> stuff to match new message naming scheme
10012 * bus/policy.c: port over
10014 * bus/config-parser.c: parse new format
10016 2003-08-16 Havoc Pennington <hp@pobox.com>
10018 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10021 * glib/dbus-gproxy.c: some hacking
10023 2003-08-15 Havoc Pennington <hp@redhat.com>
10025 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10027 * dbus/dbus-connection.c
10028 (dbus_connection_send_with_reply_and_block): factor out internals;
10029 change to convert any error replies to DBusError instead of
10030 returning them as a message
10032 2003-08-15 Havoc Pennington <hp@pobox.com>
10034 * dbus/dbus-connection.c,
10035 dbus/dbus-pending-call.c: Finish the pending call stuff
10037 2003-08-14 Havoc Pennington <hp@redhat.com>
10039 * dbus/dbus-pending-call.c: start on new object that will replace
10040 DBusMessageHandler and ReplyHandlerData for tracking outstanding
10043 * dbus/dbus-gproxy.c: start on proxy object used to communicate
10044 with remote interfaces
10046 * dbus/dbus-gidl.c: do the boring boilerplate in here
10048 2003-08-12 Havoc Pennington <hp@pobox.com>
10050 * bus/dispatch.c (bus_dispatch): make this return proper
10051 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10053 * dbus/dbus-errors.c (dbus_set_error): use
10054 _dbus_string_append_printf_valist
10056 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10057 (_dbus_string_append_printf): new
10059 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10062 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10063 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10064 message is unhandled.
10066 2003-08-11 Havoc Pennington <hp@pobox.com>
10068 * bus/test.c (client_disconnect_handler): change to return
10069 HANDLED (would have been REMOVE_MESSAGE)
10071 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10072 HANDLED/NOT_YET_HANDLED instead of
10073 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
10076 2003-08-10 Havoc Pennington <hp@pobox.com>
10078 * tools/dbus-send.c (main): add --type argument, for now
10079 supporting only method_call and signal types.
10081 * tools/dbus-print-message.c: print message type
10083 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10084 init connection->objects
10086 * doc/dbus-specification.sgml: fix sgml
10088 * bus/*.c: port over to object-instance API changes
10090 * test/test-service.c: ditto
10092 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10093 name, we will have to fix up the rest of the code to also handle
10095 (dbus_message_new): generic message-creation call
10096 (set_string_field): allow appending name field
10098 2003-08-06 Havoc Pennington <hp@pobox.com>
10100 * dbus/dbus-object-registry.c: implement signal connection
10103 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10105 * dbus/dbus-internals.c (_dbus_memdup): new function
10107 2003-08-02 Havoc Pennington <hp@pobox.com>
10109 * dbus/dbus-message.c (dbus_message_get_no_reply)
10110 (dbus_message_set_no_reply): add these and remove
10111 set_is_error/get_is_error
10113 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
10114 remove the ERROR flag, since there's now an ERROR type
10116 2003-08-01 Havoc Pennington <hp@pobox.com>
10118 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10121 * dbus/dbus-message.c (dbus_message_get_type): new function
10123 * doc/dbus-specification.sgml: add "type" byte to messages
10125 2003-08-01 Havoc Pennington <hp@pobox.com>
10127 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10128 a message type enum to distinguish kinds of message
10129 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
10130 that need not be replied to
10132 2003-08-01 Havoc Pennington <hp@pobox.com>
10134 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10135 (unpack_8_octets): fix no-64-bit-int bug
10137 * dbus/dbus-object-registry.c (validate_id): validate the
10138 connection ID bits, not just the instance ID.
10140 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10141 the connection-global 33 bits of the object ID
10143 * dbus/dbus-object-registry.c (info_from_entry): fill in
10144 object ID in the new way
10146 * dbus/dbus-objectid.h: rather than high/low bits, specifically
10147 define server/client/instance bits.
10149 2003-07-30 Havoc Pennington <hp@pobox.com>
10151 * dbus/dbus-connection.c (dbus_connection_register_object): fix
10154 2003-07-13 Havoc Pennington <hp@pobox.com>
10156 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10157 fields to DBusObjectVTable and DBusObjectInfo
10159 2003-07-12 Havoc Pennington <hp@pobox.com>
10161 * dbus/dbus-object-registry.c: implement unit test,
10162 fix bugs discovered in process
10164 * dbus/dbus-connection.c: remove handler_table and
10165 register_handler(), add DBusObjectRegistry usage
10167 * dbus/dbus-objectid.c (dbus_object_id_is_null)
10168 (dbus_object_id_set_null): new functions
10170 2003-07-08 Havoc Pennington <hp@pobox.com>
10172 * dbus/dbus-object.c: implement some of this
10174 * dbus/dbus-object-registry.c
10175 (_dbus_object_registry_add_and_unlock): fill in the object_id out
10177 (_dbus_object_registry_new): handle OOM
10179 2003-07-08 Havoc Pennington <hp@pobox.com>
10181 * dbus/dbus-object.h: sketch out an API for registering objects
10182 with a connection, that allows us to use as little as 24 bytes
10183 per object and lets application code represent an object in
10184 any conceivable way.
10186 * dbus/dbus-object-registry.c: implement the hard bits of the
10187 DBusConnection aspect of object API. Not yet wired up.
10189 2003-07-06 Havoc Pennington <hp@pobox.com>
10191 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10192 (_dbus_marshal_object_id): new
10193 (_dbus_demarshal_object_id): new
10194 (_dbus_marshal_get_arg_end_pos): support object ID type, and
10195 consolidate identical switch cases. Don't conditionalize handling
10196 of DBUS_TYPE_UINT64, need to handle the type always.
10197 (_dbus_marshal_validate_arg): consolidate identical cases, and
10198 handle DBUS_TYPE_OBJECT_ID
10200 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10202 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10204 2003-09-28 Havoc Pennington <hp@pobox.com>
10206 * real 0.13 release
10208 2003-09-28 Havoc Pennington <hp@pobox.com>
10210 * doc/Makefile.am (dbus-specification.html): testing a funky hack
10211 to work with Debian db2html
10213 2003-09-28 Havoc Pennington <hp@pobox.com>
10215 * configure.in: 0.13
10217 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10218 stylesheet-images for benefit of Debian
10220 Change back to using filesystem-linked sockets for the system
10221 bus, so only root can create the default system bus address.
10223 * bus/system.conf.in: change to use
10224 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10226 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10229 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10230 here, and AC_DEFINE DBUS_SYSTEM_PATH
10232 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10235 * doc/busconfig.dtd:
10238 2003-08-09 Anders Carlsson <andersca@codefactory.se>
10240 * doc/dbus-specification.sgml:
10241 Add activation reply values.
10243 2003-08-05 Havoc Pennington <hp@redhat.com>
10245 * configure.in: 0.12
10247 2003-08-05 Anders Carlsson <andersca@codefactory.se>
10249 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10250 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10251 (add_watch), (remove_watch), (create_source):
10252 Refcount fds, fixes some reentrancy issues.
10254 2003-07-30 Havoc Pennington <hp@redhat.com>
10256 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10257 bus address to be abstract if we have abstract sockets
10261 2003-07-28 Havoc Pennington <hp@redhat.com>
10263 * bus/messagebus.in: fix to avoid processname/servicename
10264 confusion, from Michael Kearey
10265 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10267 2003-07-23 Havoc Pennington <hp@pobox.com>
10269 * dbus/dbus-message.c (dbus_message_iter_get_named):
10270 fix from Andy Hanton to remove broken "+1"
10272 2003-07-16 Havoc Pennington <hp@pobox.com>
10274 * tools/dbus-launch.c (babysit): close stdout/stderr in the
10275 babysitter process, as suggested by Thomas Leonard, so
10276 an "eval `dbus-launch --exit-with-session`" will actually
10279 2003-07-16 Havoc Pennington <hp@pobox.com>
10281 * configure.in: print out EXPANDED_* variables in the summary at
10282 the end; clean up the code that computes EXPANDED_ variables and
10283 get the ones using exec_prefix right. Should make things work
10284 when you build without --prefix
10286 2003-06-29 Havoc Pennington <hp@pobox.com>
10288 * mono/Test.cs (class Test): fire up a main loop and run it
10290 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10291 done once, the app has to do it
10293 2003-06-26 Havoc Pennington <hp@pobox.com>
10295 * mono/Connection.cs: set up connection with the glib main loop
10297 2003-07-01 Havoc Pennington <hp@redhat.com>
10299 * doc/dbus-specification.sgml: clarify the format of a type code,
10300 change suggested by Jim Blandy
10302 2003-06-29 Miloslav Trmac <mitr@volny.cz>
10305 * tools/Makefile.am: Don't assume srcdir == builddir.
10307 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10308 the allocated block.
10309 (_dbus_memory_test): New function.
10310 * dbus/dbus-test.h: Add _dbus_memory_test ().
10311 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10313 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10315 (dbus_message_new): Remove obsolete @todo.
10317 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10318 (_dbus_marshal_set_uint64): Fix comment.
10320 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10321 hardcode FIELD_REPLY_SERIAL.
10323 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10324 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10326 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10327 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10329 2003-06-24 Havoc Pennington <hp@pobox.com>
10331 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10333 2003-06-23 Anders Carlsson <andersca@codefactory.se>
10339 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10340 * gcj/org/.cvsignore:
10341 * gcj/org/Makefile.am:
10342 * gcj/org/freedesktop/.cvsignore:
10343 * gcj/org/freedesktop/Makefile.am:
10344 * gcj/org/freedesktop/dbus/.cvsignore:
10345 * gcj/org/freedesktop/dbus/Makefile.am:
10346 * gcj/org/freedesktop/dbus/Message.java: (Message),
10348 * gcj/org/freedesktop/dbus/natMessage.cc:
10349 Fix the build system.
10351 2003-06-22 Havoc Pennington <hp@pobox.com>
10353 * mono/Connection.cs: add more bindings
10355 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10358 2003-06-22 Havoc Pennington <hp@pobox.com>
10360 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10361 Start wrapping more stuff.
10363 2003-06-22 Havoc Pennington <hp@pobox.com>
10365 * mono/Message.cs: implement Message.Wrap() that ensures we only
10366 have a single C# wrapper per DBusMessage, assuming it works which
10367 it probably doesn't.
10369 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10370 (dbus_message_free_data_slot): new
10371 (dbus_message_set_data): new
10372 (dbus_message_get_data): new
10374 2003-06-22 Havoc Pennington <hp@pobox.com>
10376 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10377 (_dbus_data_slot_allocator_alloc): rework these to keep a
10378 reference count on each slot and automatically manage a global
10379 slot ID variable passed in by address
10381 * bus/bus.c: convert to new dataslot API
10383 * dbus/dbus-bus.c: convert to new dataslot API
10385 * dbus/dbus-connection.c: convert to new dataslot API
10387 * dbus/dbus-server.c: convert to new dataslot API
10389 * glib/dbus-gmain.c: ditto
10391 * bus/test.c: ditto
10393 * bus/connection.c: ditto
10395 2003-06-22 Anders Carlsson <andersca@codefactory.se>
10397 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10398 after the gcj checks so that the correct configuration tags
10399 will be added to libtool.
10401 * dbus-glib-1.pc.in: No need to specify any includes since
10402 dbus-1.pc.in has those.
10404 2003-06-22 Havoc Pennington <hp@pobox.com>
10406 * mono/*, gcj/*, configure.in, Makefile.am:
10407 Check in makefiles and subdirs for mono and gcj bindings.
10408 Neither binding actually exists, just trying to get through
10409 all the build and other boring bits.
10411 2003-06-21 Philip Blundell <philb@gnu.org>
10413 * tools/dbus-monitor.1: Updated.
10415 * tools/dbus-send.1: Likewise.
10417 2003-06-20 Anders Carlsson <andersca@codefactory.se>
10419 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10420 for hangup and error after checking read so we won't discard
10421 pending data if both hangup and read are set.
10423 2003-06-19 Philip Blundell <philb@gnu.org>
10425 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10427 * tools/dbus-send.c: Accept both --system and --session.
10429 * tools/dbus-monitor.c: Same here.
10431 2003-06-19 Anders Carlsson <andersca@codefactory.se>
10433 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10434 from C++ (Patch by Miloslav Trmac).
10436 2003-06-15 Joe Shaw <joe@assbarn.com>
10438 * configure.in: Check for socklen_t.
10440 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10442 * test/test-segfault.c: Add #include <sys/time.h>
10444 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10445 dbus-launch needs it.
10447 2003-06-09 Havoc Pennington <hp@redhat.com>
10449 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10450 SUN_LEN, it breaks abstract socket usage
10452 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10455 2003-06-04 Havoc Pennington <hp@pobox.com>
10457 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10458 using unix:abstract=/foo, and when listening in a tmpdir
10459 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10461 * dbus/dbus-transport.c (_dbus_transport_open): support
10464 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10465 support abstract sockets
10467 * dbus/dbus-transport-unix.c
10468 (_dbus_transport_new_for_domain_socket): support abstract sockets
10470 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10471 toggle as an argument, implement abstract namespace support
10472 (_dbus_listen_unix_socket): ditto
10474 * configure.in: add --enable-abstract-sockets and implement
10475 a configure check for autodetection of the right value.
10477 2003-06-01 Havoc Pennington <hp@pobox.com>
10479 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10480 in /tmp (though on Linux this will end up being useless,
10481 when we add abstract namespace support)
10483 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10486 2003-05-28 Colin Walters <walters@verbum.org>
10488 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10490 2003-05-18 Anders Carlsson <andersca@codefactory.se>
10492 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10494 2003-05-17 Colin Walters <walters@gnu.org>
10496 * tools/dbus-send.c: Don't exit with an error code if --help was
10497 passed. Default to using the session bus instead of the system
10500 * tools/dbus-launch.c: Ditto.
10502 * tools/dbus-monitor.c: Ditto.
10504 * tools/dbus-send.1: Update with new arguments.
10506 * tools/dbus-launch.c: Emit code to export variables. New
10507 arguments -s and -c to specify shell syntax, and a bit of code to
10508 autodetect syntax. Also, allow specifying a program to run.
10510 * tools/dbus-launch.1: Update with new arguments.
10512 * tools/dbus-send.1: Ditto.
10514 * tools/dbus-monitor.1: Ditto.
10516 2003-05-17 Havoc Pennington <hp@pobox.com>
10518 * bus/config-parser.c (merge_included): merge in policies from
10519 child configuration file.
10521 * bus/policy.c (bus_policy_merge): function to merge two policies
10524 2003-05-16 Havoc Pennington <hp@redhat.com>
10526 * dbus/dbus-connection.c: disable verbose lock spew
10528 * tools/dbus-send.c: add --print-reply command line option
10530 * tools/dbus-print-message.h (print_message): new util function
10531 shared by dbus-send and dbus-monitor
10533 * tools/dbus-monitor.c (handler_func): exit on disconnect
10535 * dbus/dbus-transport-unix.c (do_reading): if the transport is
10536 disconnected, don't try to use the read_watch
10538 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10539 so we can find this bug more easily
10541 2003-05-16 Havoc Pennington <hp@redhat.com>
10543 * bus/policy.c (free_rule_list_func): avoid a crash when passed
10544 NULL as DBusHashTable is annoyingly likely to do.
10546 2003-05-16 Colin Walters <walters@verbum.org>
10548 * tools/dbus-monitor.c: Add --session argument and usage()
10551 * tools/dbus-monitor.1: Update with new --session arg.
10553 * bus/Makefile.am (install-data-hook): Create
10554 $(libdir)/dbus-1.0/services so that the session bus is happy.
10556 2003-05-15 Havoc Pennington <hp@redhat.com>
10558 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10559 on non-x86. ifdef's are evil.
10561 2003-05-15 Havoc Pennington <hp@redhat.com>
10563 * configure.in: 0.11
10567 * bus/Makefile.am (initddir): apparently we are supposed to put
10568 init scripts in /etc/rc.d/init.d not /etc/init.d
10570 * bus/Makefile.am: remove the "you must --enable-tests to make
10571 check" as it broke distcheck
10573 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10575 2003-05-13 James Willcox <jwillcox@gnome.org>
10578 * bus/activation.c: (bus_activation_service_created),
10579 (bus_activation_activate_service):
10580 * bus/driver.c: (bus_driver_send_service_deleted),
10581 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10582 (bus_driver_send_service_acquired),
10583 (bus_driver_send_welcome_message),
10584 (bus_driver_handle_list_services):
10585 * bus/session.conf.in:
10586 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10587 (dbus_bus_service_exists), (dbus_bus_activate_service):
10590 Add some convenience API which lets you activate a service, and did a
10591 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10592 and dbus_message_get_args()
10594 2003-05-11 Havoc Pennington <hp@pobox.com>
10596 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10597 calling _dbus_marshal_validate_arg() for every byte in a byte
10600 * dbus/dbus-message-handler.c: use atomic reference counting to
10601 reduce number of locks slightly; the global lock in here sucks
10603 * dbus/dbus-connection.c
10604 (_dbus_connection_update_dispatch_status_and_unlock): variant of
10605 update_dispatch_status that can be called with lock held; then use
10606 in a couple places to reduce locking/unlocking
10607 (dbus_connection_send): hold the lock over the whole function
10608 instead of acquiring it twice.
10610 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10612 * bus/connection.c (bus_connections_setup_connection): fix access
10613 to already-freed memory.
10615 * dbus/dbus-connection.c: keep a little cache of linked list
10616 nodes, to avoid using the global linked list alloc lock in the
10617 normal send-message case. Instead we just use the connection lock
10618 that we already have to take.
10620 * dbus/dbus-list.c (_dbus_list_find_last): new function
10622 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10623 change to use a struct for the atomic type; fix docs,
10624 they return value before increment, not after increment.
10626 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10627 (_dbus_string_append_8_aligned): new functions to try to
10628 microoptimize this operation.
10629 (reallocate_for_length): break this out of set_length(), to
10630 improve profile info, and also so we can consider inlining the
10633 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10634 strings with some preallocation, cuts down on our calls to realloc
10635 a fair bit. Though if we can get the "move entire string to empty
10636 string" optimization below to kick in here, it would be better.
10638 * dbus/dbus-string.c (_dbus_string_move): just call
10639 _dbus_string_move_len
10640 (_dbus_string_move_len): add a special case for moving
10641 an entire string into an empty string; we can just
10642 swap the string data instead of doing any reallocs.
10643 (_dbus_string_init_preallocated): new function
10645 2003-05-11 Havoc Pennington <hp@pobox.com>
10647 Write a "test-profile" that does echo client-server with threads;
10648 profile reveals lock contention, memcpy/realloc of buffers, and
10649 UTF-8 validation as hot spots. 20% of lock contention eliminated
10650 with dbus_atomic_inc/dec implementation on x86. Much remaining
10651 contention is global mempool locks for GList and DBusList.
10653 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10656 * dbus/dbus-connection.c (struct DBusConnection): use
10657 dbus_atomic_t for the reference count
10659 * dbus/dbus-message.c (struct DBusMessage): declare
10660 dbus_atomic_t values as volatile
10662 * configure.in: code to detect ability to use atomic integer
10663 operations in assembly, from GLib patch
10665 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10666 time, tired of it being wrong in threads and forked processes
10668 * glib/test-profile.c: a little program to bounce messages back
10669 and forth between threads and eat CPU
10671 * dbus/dbus-connection.c: add debug spew macros for debugging
10672 thread locks; include config.h at top; fix deadlock in
10673 dbus_connection_flush()
10675 2003-05-08 Havoc Pennington <hp@pobox.com>
10677 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10678 data from getting written, and there wasn't a good reason to
10681 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10682 dbus_verbose lines in test coverage
10683 (main): add list of functions sorted by # of untested blocks
10684 to the coverage report
10686 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10688 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10690 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10691 extend test coverage
10693 * test/data/auth/cancel.auth-script: test canceling an
10696 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10697 aren't used. in CVS history if we end up needing them.
10699 2003-05-04 Havoc Pennington <hp@pobox.com>
10701 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10704 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10705 function, which assumed length was in # of strings, not bytes
10707 * dbus/dbus-message.c (_dbus_message_test): add tests for some
10710 * dbus/dbus-connection.c
10711 (_dbus_connection_queue_received_message): disable function for
10712 now, we are only using it in test mode
10714 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10715 remove a mistaken FIXME
10717 2003-05-04 Havoc Pennington <hp@pobox.com>
10719 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10720 unlock mutex on successful return, patch from Anders Gustafsson
10722 2003-05-04 Havoc Pennington <hp@pobox.com>
10724 * dbus-glib-1.pc.in (Requires): fix dependencies, from
10727 2003-05-04 Havoc Pennington <hp@pobox.com>
10729 * tools/dbus-launch.c: implement
10731 * bus/main.c (main), bus/bus.c (bus_context_new):
10732 implement --print-pid and --fork
10734 2003-05-03 Havoc Pennington <hp@redhat.com>
10736 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10737 the address had no value, and add to test suite. Fix and
10738 regression test from Miloslav Trmac
10740 2003-05-03 Havoc Pennington <hp@pobox.com>
10742 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10743 watch is invalid when handled
10745 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10746 dbus-launch utility to launch the bus from a shell script. Didn't
10747 actually implement dbus-launch yet, it's just a placeholder still.
10749 2003-05-03 Havoc Pennington <hp@pobox.com>
10751 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10752 daemon; also documents daemon config file, so replaces
10753 doc/config-file.txt. Corrected some stuff from config-file.txt in
10754 the process of moving it.
10756 2003-05-03 Havoc Pennington <hp@pobox.com>
10758 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10761 2003-05-03 Colin Walters <walters@verbum.org>
10763 * dbus/dbus-sysdeps.c (fill_user_info): Test against
10764 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10766 * Makefile.am: Update to use new .pc versioning scheme.
10768 2003-05-02 Havoc Pennington <hp@redhat.com>
10770 * bus/system.conf.in: allow send/receive to/from message bus
10773 2003-04-30 Havoc Pennington <hp@redhat.com>
10775 * configure.in: print a note when building with unit tests and
10778 2003-04-30 Havoc Pennington <hp@redhat.com>
10780 * Makefile.am: add a check-local that complains if you didn't
10781 configure with --enable-tests
10783 2003-04-29 Havoc Pennington <hp@redhat.com>
10785 * glib/dbus-gmain.c: docs cleanups
10787 * dbus/dbus-types.h: add docs on int64 types
10789 * dbus/dbus-memory.c: fix docs to avoid putting private API in
10790 public API docs section
10792 2003-04-29 Havoc Pennington <hp@redhat.com>
10794 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10795 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10796 parallel install API version, not with the D-BUS package version.
10798 * HACKING: move some of README over here
10800 * README: updates, and document API/ABI policy
10802 * configure.in: reindentation
10804 2003-04-29 Havoc Pennington <hp@redhat.com>
10806 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10807 to use this library" to be sure people have the right
10810 2003-04-28 Havoc Pennington <hp@redhat.com>
10812 * configure.in: add --enable-docs which by default is auto yes if
10813 doxygen and db2html found, no otherwise; but can be forced on/off
10815 * doc/Makefile.am: conditionalize whether to build docs on
10818 2003-04-28 Havoc Pennington <hp@redhat.com>
10820 * configure.in: 0.10
10824 * bus/system.conf.in: add <includedir>system.d</includedir>
10826 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10827 username was provided but not uid
10829 * bus/config-parser.c (struct BusConfigParser): keep track of
10830 whether the parser is toplevel or was included; change some
10831 of the error handling if it's included.
10833 2003-04-27 Havoc Pennington <hp@pobox.com>
10837 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10838 report correct status if we finish processing authentication
10839 inside this function.
10841 * bus/activation.c (try_send_activation_failure): use
10842 bus_transaction_send_error_reply
10844 * bus/connection.c (bus_connection_get_groups): return an error
10845 explaining the problem
10847 * bus/bus.c (bus_context_check_security_policy): implement
10848 restriction here that inactive connections can only send the
10849 hello message. Also, allow bus driver to send anything to
10852 * bus/connection.c (bus_connection_complete): create the
10853 BusClientPolicy here instead of on-demand.
10854 (bus_connection_get_policy): don't return an error
10856 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10857 sender field in message being replied to
10859 * bus/bus.c (bus_context_check_security_policy): fix silly typo
10860 causing it to return FALSE always
10862 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10863 we checked sender rather than destination
10865 2003-04-25 Havoc Pennington <hp@redhat.com>
10867 test suite is slightly hosed at the moment, will fix soon
10869 * bus/connection.c (bus_connections_expire_incomplete): fix to
10870 properly disable the timeout when required
10871 (bus_connection_set_name): check whether we can remove incomplete
10872 connections timeout after we complete each connection.
10874 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10875 probably still broken.
10877 * bus/services.c (bus_registry_acquire_service): implement max
10878 number of services owned, and honor allow/deny rules on which
10879 services a connection can own.
10881 * bus/connection.c (bus_connection_get_policy): report errors here
10883 * bus/activation.c: implement limit on number of pending
10886 2003-04-25 Havoc Pennington <hp@redhat.com>
10888 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10889 where we used >= 0 instead of != DBUS_UID_UNSET.
10891 2003-04-25 Havoc Pennington <hp@redhat.com>
10893 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10894 were toggled without add/remove, fix from Anders Gustafsson
10896 2003-04-24 Havoc Pennington <hp@redhat.com>
10898 * test/data/valid-config-files/basic.conf: add <limit> tags to
10901 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10902 <limit> tag in configuration file.
10904 2003-04-24 Havoc Pennington <hp@redhat.com>
10906 * bus/dispatch.c: somehow missed some name_is
10908 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10909 (_dbus_timeout_set_interval): new
10911 * bus/connection.c (bus_connections_setup_connection): record time
10912 when each connection is first set up, and expire them after the
10913 auth timeout passes.
10915 2003-04-24 Havoc Pennington <hp@redhat.com>
10917 * dbus/dbus-message.c (dbus_message_name_is): rename
10918 (dbus_message_service_is): rename
10919 (dbus_message_sender_is): rename
10920 (dbus_message_get_service): rename
10922 2003-04-24 Havoc Pennington <hp@redhat.com>
10924 * configure.in: add --enable-checks
10926 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10928 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10929 to use thread locks.
10930 (_dbus_connection_handler_destroyed_locked): move some private
10931 functions into proper docs group
10933 * dbus/dbus-internals.h: add _dbus_return_if_fail,
10934 _dbus_return_val_if_fail
10936 Throughout: use dbus_return_if_fail
10938 2003-04-23 James Willcox <jwillcox@gnome.org>
10940 * glib/dbus-glib.h:
10941 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10942 (dbus_connection_setup_with_g_main),
10943 (dbus_server_setup_with_g_main):
10944 * glib/test-dbus-glib.c: (main):
10945 * glib/test-thread-client.c: (main):
10946 * glib/test-thread-server.c: (new_connection_callback), (main):
10947 * tools/dbus-monitor.c: (main):
10949 Added a GMainContext argument to dbus_connection_setup_with_g_main()
10950 and dbus_server_setup_with_g_main().
10952 2003-04-20 Havoc Pennington <hp@pobox.com>
10954 * doc/dbus-specification.sgml: document the restrictions on
10955 message and service names
10957 2003-04-22 Havoc Pennington <hp@redhat.com>
10959 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10960 support, and do some code cleanups to share more code and
10961 speed up array marshal/demarshal.
10963 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10965 * configure.in: generate dbus-arch-deps.h
10967 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10970 2003-04-22 Havoc Pennington <hp@redhat.com>
10972 * test/data/valid-messages/opposite-endian.message: fix test
10973 to use proper type for rply field
10975 * test/data/invalid-messages: add tests for below validation
10977 * dbus/dbus-message.c (decode_header_data): validate field types,
10978 and validate that named fields are valid names
10979 (decode_name_field): consider messages in the
10980 org.freedesktop.Local. namespace to be invalid.
10982 * dbus/dbus-string.c (_dbus_string_validate_name): new
10984 2003-04-19 Havoc Pennington <hp@pobox.com>
10986 * bus/driver.c (bus_driver_handle_hello): check limits and
10987 return an error if they are exceeded.
10989 * bus/connection.c: maintain separate lists of active and inactive
10990 connections, and a count of each. Maintain count of completed
10991 connections per user. Implement code to check connection limits.
10993 * dbus/dbus-list.c (_dbus_list_unlink): export
10995 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10996 number of bytes in the message queue for a connection
10998 2003-04-18 Havoc Pennington <hp@pobox.com>
11000 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11002 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11005 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11006 on realloc be sure to update the pointer in the keyring
11008 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11009 offset to avoid writing to unallocated memory
11011 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11012 try the next mechanism, so we properly handle OOM
11014 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11016 (_dbus_keyring_new): fix OOM bug
11017 (_dbus_keyring_new_homedir): always set error; impose a maximum
11018 number of keys we'll load from the file, mostly to speed up the
11019 test suite and make its OOM checks more useful, but also for
11022 * dbus/dbus-auth.c (process_error_server): reject authentication
11023 if we get an error from the client
11024 (process_cancel): on cancel, send REJECTED, per the spec
11025 (process_error_client): send CANCEL if we get an error from the
11028 2003-04-18 Havoc Pennington <hp@pobox.com>
11030 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11033 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11036 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11037 about DBUS_TEST_HOMEDIR once
11039 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11042 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11043 config file so we test the right thing
11045 Throughout: assorted docs improvements
11047 2003-04-18 Havoc Pennington <hp@pobox.com>
11049 * glib/dbus-gmain.c: adapt to watch changes
11051 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11053 * dbus/dbus-server.h: remove dbus_server_handle_watch
11055 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11057 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11058 like DBusTimeout, so we don't need dbus_connection_handle_watch
11061 2003-04-17 Havoc Pennington <hp@redhat.com>
11063 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11064 database usage so it all goes via the DBusUserDatabase cache.
11066 2003-04-17 Havoc Pennington <hp@redhat.com>
11068 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11069 there was an OOM watch we skipped, we always return TRUE so we
11070 iterate again to have a look at it again. Fixes test suite hang.
11071 Code rearrangement also lets us lose some memset and only iterate
11072 over callbacks once.
11074 * bus/driver.c (bus_driver_handle_message): sense of test for
11077 2003-04-16 Havoc Pennington <hp@pobox.com>
11079 * doc/dbus-specification.sgml: make spec say serials are unsigned
11081 * dbus/dbus-message.h: change message serials to unsigned
11083 * dbus/dbus-connection.c: adapt to message serials being unsigned
11085 2003-04-15 Havoc Pennington <hp@pobox.com>
11087 * bus/bus.c: create and keep around a shared DBusUserDatabase
11090 * bus/connection.c (bus_connection_get_groups): don't cache
11091 groups for user in the connection object, since user database
11092 object now does that.
11094 2003-04-16 Havoc Pennington <hp@redhat.com>
11096 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11097 list of size counters
11098 (_dbus_message_loader_putback_message_link): put back a popped link
11100 * dbus/dbus-connection.c
11101 (dbus_connection_set_max_live_messages_size): rename
11103 (dbus_connection_get_outgoing_size): get size of outgoing
11105 (_dbus_connection_set_connection_counter): remove this cruft
11107 2003-04-14 Havoc Pennington <hp@redhat.com>
11109 * dbus/dbus-userdb.c: user database abstraction, mostly to get
11110 caching, but at some point we might want to be able to use a
11111 different database.
11113 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11114 SHA1 conf file to test the sha1 auth mechanism, since the regular
11115 test always uses EXTERNAL when available.
11118 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11119 add conf file that requires use of sha1 auth
11121 2003-04-13 Havoc Pennington <hp@pobox.com>
11123 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11124 from Philip Blundell to send messages and monitor them.
11126 2003-04-13 Havoc Pennington <hp@pobox.com>
11128 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11131 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11134 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11135 fix to only recover unused bytes if we're already authenticated
11136 (_dbus_transport_get_is_authenticated): fix to still mark us
11137 authenticated if there are unused bytes.
11139 * bus/dispatch.c: implement security policy checking
11141 * bus/connection.c (bus_transaction_send_from_driver): new
11143 * bus/bus.c (bus_context_check_security_policy): new
11145 * bus/dispatch.c (send_service_nonexistent_error): delete this,
11146 now we just set the DBusError and it gets converted to an error
11149 * bus/connection.c (allow_user_function): enable code using actual
11150 data from the config file
11152 * bus/policy.c (list_allows_user): handle wildcard rules for
11153 user/group connection perms
11155 2003-04-13 Havoc Pennington <hp@pobox.com>
11157 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11159 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11161 * bus/policy.c (bus_policy_append_mandatory_rule)
11162 (bus_policy_append_default_rule, bus_policy_append_user_rule)
11163 (bus_policy_append_group_rule): new functions
11165 2003-04-12 Havoc Pennington <hp@pobox.com>
11167 * bus/config-parser.c (bus_config_parser_new): fix a memleak
11169 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11170 the pid/gid/uid, just for paranoia.
11172 * test/break-loader.c (randomly_do_n_things): find a byte
11173 containing a type code, and randomly change it to a different
11176 2003-04-12 Havoc Pennington <hp@pobox.com>
11178 * bus/policy.h: change BusPolicy to be the thing from the config
11179 file, and rename old BusPolicy to BusClientPolicy
11181 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11182 match change in how policy works
11184 * dbus/dbus-internals.h: mark assert_not_reached as
11185 __attribute((noreturn))__
11187 2003-04-11 Havoc Pennington <hp@redhat.com>
11189 * doc/dbus-specification.sgml: fix a spot with the wrong name for
11190 the broadcast service. Use boolean return for ServiceExists.
11192 2003-04-11 Havoc Pennington <hp@redhat.com>
11194 * configure.in: add another directory to look for qt in.
11196 2003-04-11 Havoc Pennington <hp@redhat.com>
11198 * AUTHORS: add Colin Walters
11200 2003-04-11 Havoc Pennington <hp@redhat.com>
11204 * configure.in: 0.9
11206 2003-04-11 Havoc Pennington <hp@redhat.com>
11208 * bus/messagebus.in: remove pid file when stopping the
11209 message bus, since the bus won't have privileges to remove it
11212 2003-04-11 Havoc Pennington <hp@redhat.com>
11214 * bus/bus.c (bus_context_new): move credentials change after
11217 2003-04-11 Havoc Pennington <hp@pobox.com>
11219 * test/decode-gcov.c: add "below average functions" to the
11220 coverage report, and change how some of the code works.
11222 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11223 not in the coverage stats.
11225 * test/test-service.c (main): use _dbus_verbose not fprintf in a
11226 couple places so running the test suite doesn't result in megaspam.
11228 2003-04-11 Havoc Pennington <hp@pobox.com>
11230 * bus/dispatch.c (check_existent_service_activation): accept a no
11231 memory error in a place we didn't before
11233 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11234 in case the first one failed," since the test suite is less
11237 2003-04-10 Havoc Pennington <hp@pobox.com>
11239 * bus/dispatch.c (check_segfault_service_activation): add test
11240 for launching an executable that just crashes.
11242 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11243 don't leave a million cores. We'll see how portable this is.
11245 2003-04-10 Havoc Pennington <hp@pobox.com>
11247 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11248 the possible parent failures before we fork, so that we don't
11249 fail to create a babysitter after creating the child.
11251 * bus/activation.c (bus_activation_activate_service): kill child
11252 if we don't successfully complete the activation.
11254 2003-04-10 Havoc Pennington <hp@redhat.com>
11256 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11257 the connection if it's disconnected
11259 * bus/activation.c (bus_activation_service_created): use new
11260 transaction features to roll back removal of pending activation if
11261 we don't successfully create the service after all. Don't remove
11262 pending activation if the function fails.
11264 * dbus/dbus-list.c (_dbus_list_insert_before_link)
11265 (_dbus_list_insert_after_link): new code to facilitate
11268 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11269 new functionality, so we can preallocate the ability to insert
11272 * bus/connection.c (bus_transaction_add_cancel_hook): new function
11273 allowing us to put custom hooks in a transaction to be used for
11274 cancelling said transaction
11276 * doc/dbus-specification.sgml: add some discussion of secondary
11277 service owners, and disallow zero-length service names
11279 * bus/services.c (bus_registry_acquire_service): new function,
11280 splits out part of bus_driver_handle_acquire_service() and fixes
11281 a bug where we didn't remove the service doing the acquiring
11282 from the secondary queue if we failed to remove the current owner
11283 from the front of the queue.
11285 2003-04-10 Alexander Larsson <alexl@redhat.com>
11287 * doc/dbus-specification.sgml:
11288 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11290 2003-04-10 Alexander Larsson <alexl@redhat.com>
11295 Added files to cvsignore
11297 * dbus/dbus-message.h:
11298 * dbus/dbus-message.c: (dbus_message_iter_get_named):
11299 Make get_named() take two out argument and return a boolean.
11300 (dbus_message_iter_get_args_valist):
11301 Update usage of get_named().
11302 (dbus_message_iter_append_byte):
11304 (dbus_message_iter_append_named)
11306 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11309 2003-04-10 Alexander Larsson <alexl@redhat.com>
11311 * dbus/dbus-marshal.[ch]:
11312 Add array_type_pos argument to _dbus_marshal_validate_arg.
11313 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11315 * dbus/dbus-message.[ch]:
11316 Multi-dimensional arrays have full type specification in the
11317 outermost array. Iter code re-arranged to handle this.
11318 Added some more iter tests.
11320 * doc/dbus-specification.sgml:
11323 Update new array encoding description.
11324 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11326 * test/data/invalid-messages/array-with-mixed-types.message:
11327 * test/data/valid-messages/array-of-array-of-uint32.message:
11328 Change to the new array format.
11330 * test/data/invalid-messages/too-short-dict.message:
11333 * test/data/valid-messages/recursive-types.message:
11334 Fix up and extend test.
11336 2003-04-10 Havoc Pennington <hp@pobox.com>
11338 * bus/dispatch.c: lots of fixes
11340 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11341 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11342 that was crack, broke the test service.
11344 * dbus/dbus-transport.c (_dbus_transport_open): fix error
11345 handling to avoid piling up errors if we get a failure on the
11348 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11349 pid in assertion failures.
11351 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11352 to some fixed size of file descriptor array. Don't return TRUE
11353 anytime a timeout exists, that led to lots of busy loop silliness
11356 2003-04-09 Havoc Pennington <hp@redhat.com>
11358 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11359 I'd checked this in earlier but hadn't.
11361 2003-04-09 Havoc Pennington <hp@redhat.com>
11363 * bus/dispatch.c (bus_dispatch_test): get a bit further through
11364 the activation test (man this is getting old!)
11366 2003-04-09 Havoc Pennington <hp@redhat.com>
11368 * test/test-utils.c: use dispatch status function to fix this up
11370 * bus/connection.c (connection_watch_callback): don't dispatch
11372 (connection_timeout_callback): don't dispatch from here
11373 (bus_connections_setup_connection): set the dispatch status function
11374 (bus_connection_disconnected): unset it
11376 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11377 used to add a connection to be dispatched
11378 (_dbus_loop_iterate): do the dispatching at the end of each
11381 * dbus/dbus-connection.c
11382 (dbus_connection_set_dispatch_status_function): new function
11383 allowing us to fix up main loop usage
11384 (_dbus_connection_last_unref): free all the various function
11386 (dbus_connection_dispatch): call the DispatchStatusFunction
11387 whenever this function returns
11388 (dbus_connection_handle_watch): call DispatchStatusFunction
11389 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11390 (reply_handler_timeout): call DispatchStatusFunction
11391 (dbus_connection_flush): call DispatchStatusFunction
11393 2003-04-09 Havoc Pennington <hp@redhat.com>
11395 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11398 * bus/dispatch.c (check_service_activated): fix bug in test
11400 * dbus/dbus-mainloop.c (check_timeout): fix this up
11402 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11403 verbose output so we can sort out output from different processes,
11404 e.g. in the activation case.
11406 2003-04-08 Colin Walters <walters@gnu.org>
11408 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11410 (bus_context_new): Set it.
11411 (bus_context_unref): Use it to delete the pid file.
11413 2003-04-08 Havoc Pennington <hp@redhat.com>
11415 * test/data/invalid-messages/array-with-mixed-types.message:
11416 regression test that fails for the moment
11418 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11419 tests for convenience
11421 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11422 array of nil, it broke things.
11424 * test/data/invalid-messages/array-of-nil.message: regression test
11426 * test/data/valid-messages/array-of-array-of-uint32.message:
11427 happened to write this so added it to suite
11429 2003-04-08 Havoc Pennington <hp@redhat.com>
11431 * bus/driver.c (bus_driver_handle_acquire_service): init
11432 retval/reply before checking name
11434 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11435 recursion depth argument
11437 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11438 in the public struct for future extension
11440 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11443 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11446 * doc/dbus-specification.sgml: fix typo
11448 2003-04-08 Alexander Larsson <alexl@redhat.com>
11450 Implemented recursive types, named types and new-style iters
11453 * glib/test-thread-client.c: (thread_func):
11454 * glib/test-thread-server.c: (handle_test_message):
11455 * test/test-service.c: (handle_echo):
11458 * dbus/Makefile.am:
11459 * dbus/dbus-dict.c:
11460 * dbus/dbus-dict.h:
11464 * dbus/dbus-internals.c: (_dbus_type_to_string):
11465 Update for new types.
11467 * dbus/dbus-marshal.[ch]:
11468 Implement recursive types and the new marshalling format.
11469 Remove hardcoded dict marshalling.
11470 Marshal named types.
11472 * dbus/dbus-message-builder.c:
11474 Remove references to old types
11476 * dbus/dbus-message.[ch]:
11477 New non-refcounted iter API that supports recursive iters.
11478 Use iters for appending, including support for recursive
11480 Add byte and named type support.
11481 Update everything to new marshalling formats.
11482 Add tests for new API.
11484 * dbus/dbus-protocol.h:
11485 Remove old array types.
11486 Add types: BYTE, ARRAY, DICT, NAMED
11488 * dbus/dbus-string.c:
11489 * dbus/dbus-sysdeps.c:
11490 Make parse_double locale safe.
11492 * dbus/dbus-test-main.c:
11495 * dbus/dbus-test.c:
11498 * doc/dbus-specification.sgml:
11501 * test/data/incomplete-messages/missing-body.message:
11502 * test/data/invalid-messages/bad-boolean.message:
11503 * test/data/invalid-messages/bad-boolean-array.message:
11504 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11505 * test/data/invalid-messages/boolean-has-no-value.message-raw:
11506 * test/data/invalid-messages/too-short-dict.message:
11507 * test/data/valid-messages/dict-simple.message:
11508 * test/data/valid-messages/dict.message:
11509 * test/data/valid-messages/emptiness.message:
11510 * test/data/valid-messages/lots-of-arguments.message:
11511 * test/data/valid-messages/no-padding.message:
11512 * test/data/valid-messages/recursive-types.message:
11513 Add missing NAME fields
11514 Fix up dicts & arrays
11516 * test/data/invalid-messages/dict-with-nil-value.message:
11517 Removed, this is not invalid anymore.
11519 * test/data/valid-messages/recursive-types.message:
11520 Add new test for deeply recursive types.
11522 2003-04-07 Havoc Pennington <hp@pobox.com>
11524 * bus/driver.c (bus_driver_handle_acquire_service): return an
11525 error if you try to acquire a service that starts with ':'
11527 2003-04-07 Havoc Pennington <hp@redhat.com>
11529 * doc/dbus-specification.sgml: require that base service names
11530 start with ':' and that the base service is created/deleted
11531 as first and last things a connection does on the bus
11533 * bus/dispatch.c (check_existent_service_activation): lots more
11534 work on the activation test; it doesn't fully pass yet...
11536 * test/test-service.c (main): fix so we don't memleak the
11537 connection to the message bus
11538 (filter_func): accept a message asking us to exit
11540 2003-04-06 Havoc Pennington <hp@pobox.com>
11542 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11545 * configure.in: fixes to Qt detection from Colin Walters
11547 * doc/Makefile.am: Only remove generated docbook dirs if they
11548 exist, from Colin Walters
11550 * dbus/dbus-bus.c: change how we set well-known connections to
11551 NULL, so that it works if a single connection is stored in
11552 two well-known array slots.
11554 * test/Makefile.am: remove a lot of stuff that isn't immediately
11555 useful, it's in CVS history if we want it.
11557 * test/test-service.c: use dbus-mainloop instead of that
11560 2003-04-06 Havoc Pennington <hp@pobox.com>
11562 * dbus/Makefile.am: split lists of sources into stuff that goes in
11563 the library, util functions that go in the lib and are also used
11564 elsewhere, and util functions that are used in tests/daemon but
11565 don't go in the lib.
11567 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11568 here so it can be used in test binaries also
11570 2003-04-06 Havoc Pennington <hp@pobox.com>
11572 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11573 here in the parent process, so we can return an error if it
11574 fails. Also, move some of the code into the child so the parent
11575 is less hosed if we fail midway through.
11577 * bus/bus.c (bus_context_new): move pidfile detection further up
11578 in the function, before we start overwriting sockets and such.
11580 * bus/messagebus.in: adjust this a bit, not sure if it will work.
11582 * configure.in: add --with-system-pid-file and --with-system-socket
11584 2003-04-06 Colin Walters <walters@verbum.org>
11586 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11588 * bus/system.conf.in: Declare a pidfile.
11590 * bus/bus.c (bus_context_new): Test for an existing pid file, and
11591 create one (if appropriate).
11593 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11594 (struct BusConfigParser) [pidfile]: New.
11595 (element_type_to_name, merge_included, start_busconfig_child)
11596 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11597 (bus_config_parser_unref): Free it.
11598 (bus_config_parser_get_pidfile): New function.
11600 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11602 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11604 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11606 * dbus/dbus-sysdeps.h: Prototype it.
11608 2003-04-06 Havoc Pennington <hp@pobox.com>
11610 * bus/bus.c (bus_context_new): print the address in here, rather
11611 than in main(), because we need to do it before forking the daemon
11613 * bus/dispatch.c (send_service_nonexistent_error): set the sender
11614 on the service nonexistent error
11616 * bus/driver.c (bus_driver_handle_acquire_service): set the
11617 sender on the AcquireService reply
11619 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11620 server also listen on a UNIX socket so services can connect to it.
11622 2003-04-06 Havoc Pennington <hp@pobox.com>
11624 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11625 so it detects deadlocks and also we actually init threads when
11628 2003-04-06 Havoc Pennington <hp@pobox.com>
11630 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11631 save the domain socket name, and unlink it when we disconnect the
11632 server. Means that at least when we exit normally, we won't leave
11633 a bunch of junk in /tmp
11635 * dbus/dbus-transport-unix.c
11636 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11637 memory management). (I was making a real change here but then
11640 2003-04-06 Havoc Pennington <hp@pobox.com>
11642 * bus/bus.c (bus_context_new): fix wrong handling of
11643 server_data_slot_unref() in the error case.
11645 * dbus/dbus-internals.h (_dbus_assert): change so it passes
11646 "(condition) != 0" to _dbus_real_assert so that
11647 "_dbus_assert (pointer)" doesn't cause a warning
11649 * bus/main.c (main): accept --print-address option to print out
11650 the message bus address
11652 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11654 * dbus/dbus-transport.c (_dbus_transport_open): special error for
11655 "tmpdir" option to unix: address on client side
11657 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11660 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11661 we can use to create sockets in the test suite.
11663 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11664 cleanly. To be used for testing.
11666 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11668 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11670 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11671 handle trying to call this when there's no servers active
11673 2003-04-05 Havoc Pennington <hp@pobox.com>
11677 * configure.in: 0.8
11679 2003-04-05 Havoc Pennington <hp@pobox.com>
11681 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11682 crash on startup. Need to get "try starting the daemon"
11683 in the test suite I guess. ;-)
11685 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11686 tracked the number of open connections; it's better done in
11687 application-specific code as you want it to span all servers etc.
11689 2003-04-05 Havoc Pennington <hp@pobox.com>
11691 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11692 patch from Colin Walters
11694 2003-04-05 Havoc Pennington <hp@pobox.com>
11696 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11697 reality; in fact multiple mechanisms are allowed.
11699 * dbus/dbus-internals.c (_dbus_real_assert)
11700 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11701 _dbus_assert_not_reached() into functions, so that they don't show
11702 up in basic block counts for test coverage, and don't use up as
11703 much disk space. Does mean slower execution speed though, so
11704 assumes --disable-asserts is the normal production case.
11706 2003-04-05 Havoc Pennington <hp@pobox.com>
11708 * test/Makefile.am (dist-hook): also dist *.in files
11712 * configure.in: 0.7
11714 2003-04-05 Havoc Pennington <hp@pobox.com>
11716 * dbus/dbus-string.c: docs warning
11718 * dbus/dbus-spawn.c: missing docs
11720 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11722 2003-04-05 Havoc Pennington <hp@pobox.com>
11724 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11727 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11728 to -1 once we've reaped the babysitter
11729 (_dbus_babysitter_handle_watch): do as much work as we can, not
11732 * bus/activation.c: add code using DBusBabysitter so that we
11733 handle it when a service fails to start up properly.
11734 (bus_activation_service_created): don't remove the activation
11735 entries as we go, just let them get removed when we free the pending
11736 activation. Unref reply messages after sending them.
11738 2003-04-05 Havoc Pennington <hp@pobox.com>
11740 * test/decode-gcov.c (main): print per-directory stats in the report
11742 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11744 2003-04-05 Havoc Pennington <hp@pobox.com>
11746 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11748 * test/decode-gcov.c: hack up a little program to suck data
11749 out of gcov files. Yes this is sort of silly.
11751 * configure.in: define something in config.h and do an
11752 AM_CONDITIONAL when gcov is enabled
11754 2003-04-04 Havoc Pennington <hp@redhat.com>
11756 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11757 return a "babysitter" object that is used to monitor the status of
11758 the spawned process and reap it when required.
11760 * test/test-segfault.c, test/test-exit.c,
11761 test/test-sleep-forever.c: binaries that do various lame things,
11762 used in the test suite.
11764 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11766 2003-04-03 Havoc Pennington <hp@pobox.com>
11768 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11769 in preparation for modifying it, dbus-sysdeps is getting
11770 a bit unmanageable.
11772 2003-04-03 Havoc Pennington <hp@redhat.com>
11774 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11777 * bus/*.[hc]: adapt to mainloop change
11779 2003-04-03 Havoc Pennington <hp@redhat.com>
11781 * bus/activation.c (load_directory): fix up memleaks
11782 (bus_activation_entry_free): free the entry
11784 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11785 we get one from the message bus; fix memleaks.
11787 * dbus/dbus-message.c (dbus_set_error_from_message): new function
11789 2003-04-03 Havoc Pennington <hp@pobox.com>
11791 * bus/config-parser.c (bus_config_parser_unref): free
11792 list of mechanisms, bug discovered by test suite enhancements
11793 (putting system.conf and session.conf into suite)
11795 * test/Makefile.am, test/test-service.c: add placeholder for a
11796 test service that we'll activate as part of test suite. Doesn't
11799 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11800 setting NULL value, and use system malloc not dbus_malloc()
11801 when we have unavoidable memleakage.
11803 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11804 didn't work, and support DBUS_BUS_ACTIVATION.
11806 * bus/activation.c (child_setup): pass our well-known bus type to
11809 * bus/config-parser.c: support <type> to specify well-known type
11811 * doc/dbus-specification.sgml: document the env variables to
11812 locate well-known buses and find service activator
11814 2003-04-02 Havoc Pennington <hp@redhat.com>
11816 * test/Makefile.am (all-local): add a rule to copy tests to
11817 builddir, so we can have generated tests. Use this to remove the
11818 silly hack for testing system.conf and session.conf. Will use this
11819 shortly to generate .service files pointing to test binaries.
11821 2003-04-02 Havoc Pennington <hp@redhat.com>
11823 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11824 current alloc and needed new length, not max of the doubled
11825 allocation and needed new length. Also, when building tests,
11826 don't do the double-allocation stuff, just realloc every time.
11828 2003-04-02 Havoc Pennington <hp@redhat.com>
11830 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11832 (_dbus_string_get_dirname): new
11833 (_dbus_sysdeps_test): new
11834 (_dbus_directory_open): include dirnames in error messages
11836 * bus/config-parser.c: interpret <include> and <includedir> and
11837 <servicedir> relative to config file location if the given
11838 filename is not absolute.
11840 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11842 2003-04-02 Havoc Pennington <hp@redhat.com>
11844 * bus/connection.c (bus_transaction_send_error_reply): set sender
11845 service for the error, and unref the reply on success
11847 * bus/activation.c: convert to use BusTransaction so OOM can be
11849 (bus_activation_service_created): set sender of the message
11851 2003-04-01 Havoc Pennington <hp@redhat.com>
11853 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11854 <includedir> (at least mostly)
11856 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11857 first, then the user ID
11859 2003-04-01 Havoc Pennington <hp@pobox.com>
11861 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11864 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11866 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11868 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11869 socket 0777, and unlink any existing socket.
11871 * bus/bus.c (bus_context_new): change our UID/GID and fork if
11872 the configuration file so specifies; set up auth mechanism
11875 * bus/config-parser.c (bus_config_parser_content): add support
11876 for <fork> option and fill in code for <auth>
11878 * bus/system.conf.in: add <fork/> to default configuration,
11879 and limit auth mechanisms to EXTERNAL
11881 * doc/config-file.txt (Elements): add <fork>
11883 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11884 (_dbus_change_identity): new function
11886 2003-03-31 Havoc Pennington <hp@redhat.com>
11888 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11889 (_dbus_listen_unix_socket): fix off-by-one error in null
11890 termination spotted by Nalin
11892 2003-03-31 Havoc Pennington <hp@redhat.com>
11894 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11895 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11896 having a real home directory available.
11898 2003-03-31 Havoc Pennington <hp@redhat.com>
11900 * bus/Makefile.am (install-data-hook): create /var/run/dbus
11902 * bus/messagebus.in: add init script for Red Hat /etc/init.d
11904 * configure.in: add support for specifying a style of init script
11907 2003-03-31 Havoc Pennington <hp@redhat.com>
11909 Fix some annoying DBusString API and fix all affected code.
11911 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11912 max_length argument
11913 (_dbus_string_get_data): change to return string instead of using
11915 (_dbus_string_get_const_data): ditto
11916 (_dbus_string_get_data_len): ditto
11917 (_dbus_string_get_const_data_len): ditto
11919 2003-03-31 Havoc Pennington <hp@redhat.com>
11921 * bus/main.c (main): fix up the command line arguments to be nicer
11923 2003-03-31 Havoc Pennington <hp@redhat.com>
11925 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11926 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11927 final location that lands in the config file
11929 * bus/config-loader-expat.c (bus_config_load): fix type of
11930 XML_Parser variable
11932 * doc/TODO: remove TODO item for dbus_bus_get()
11934 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11936 2003-03-31 Havoc Pennington <hp@pobox.com>
11938 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11939 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11940 argument since they are always client side
11942 * dbus/dbus-server.c (dbus_server_get_address): new function
11944 * bus/main.c (main): take the configuration file as an argument.
11946 * test/data/valid-config-files/debug-allow-all.conf: new file to
11947 use with dispatch.c tests for example
11949 * bus/test-main.c (main): require test data dir
11951 * bus/bus.c (bus_context_new): change this to take a
11952 configuration file name as argument
11954 * doc/config-file.txt (Elements): add <servicedir>
11956 * bus/system.conf, bus/session.conf: new files
11958 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11959 well-known socket if none set
11961 * configure.in: create system.conf and session.conf
11963 2003-03-30 Havoc Pennington <hp@pobox.com>
11965 * bus/config-parser.c: hacking
11967 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11968 to shut down, since it could cause weirdness with the DBusList
11971 * dbus/dbus-list.c (_dbus_list_test): add tests for the
11972 link-oriented stack routines
11973 (alloc_link): free the mempool if the first alloc from it fails
11975 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11977 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11979 (_dbus_string_skip_white): new
11981 * doc/config-file.txt (Elements): add <includedir>
11983 2003-03-28 Havoc Pennington <hp@pobox.com>
11985 * dbus/dbus-string.c (_dbus_string_copy_data_len)
11986 (_dbus_string_copy_data): new functions
11988 2003-03-28 Anders Carlsson <andersca@codefactory.se>
11990 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11994 * dbus/dbus-memory.c:
11997 2003-03-28 Havoc Pennington <hp@pobox.com>
11999 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12000 I think it may have just been superstition. Not sure.
12002 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12003 failures that were not being handled.
12005 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12007 * dbus/dbus-memory.c: add ability to set number of mallocs in a
12008 row that will fail on out-of-memory.
12010 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12011 function for testing out-of-memory handling.
12013 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12014 allocation functions, they do map exactly to the expat ones.
12016 2003-03-27 Havoc Pennington <hp@redhat.com>
12018 * bus/config-loader-libxml.c (bus_config_load): add another error
12021 2003-03-26 Anders Carlsson <andersca@codefactory.se>
12024 Add note about automatic service activation.
12026 * doc/dbus-specification.sgml:
12027 Rename the specification and clarify a few things.
12029 2003-03-26 Anders Carlsson <andersca@codefactory.se>
12032 * dbus/dbus-address.c:
12033 * dbus/dbus-dict.c:
12034 * dbus/dbus-marshal.c:
12035 * dbus/dbus-server-debug-pipe.c:
12036 * dbus/dbus-transport-unix.c:
12037 Fix documentation warnings.
12039 2003-03-26 Havoc Pennington <hp@pobox.com>
12041 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12042 after every test so it's quick and easy to see which leaked, and
12043 so we test multiple dbus_shutdown() calls
12045 * configure.in: change configure.in XML stuff to also support
12048 * config-loader-libxml.c: some hacking
12050 * config-loader-expat.c: some hacking
12052 * config-parser.c: some hacking, plus tests
12054 2003-03-25 Havoc Pennington <hp@redhat.com>
12056 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12058 * configure.in: add --with-xml option to specify XML library,
12059 right now only libxml is supported.
12061 * bus/config-loader-libxml.c, config-parser.c: sync some minor
12062 nonworking code between home and work, still just stubs
12064 2003-03-24 Havoc Pennington <hp@redhat.com>
12066 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12069 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12070 NULL argument for "message" if the error is a well-known one,
12071 fill in a generic message in this case.
12073 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12076 * bus/test.c (bus_test_flush_bus): add
12078 * bus/policy.c (bus_policy_test): test code stub
12080 2003-03-24 Havoc Pennington <hp@pobox.com>
12082 * bus/connection.c (bus_connections_setup_connection): set up
12083 the "can this user connect" function, but it always returns
12084 TRUE until we have a config file parser so we can have a config
12085 file that allows connections.
12087 2003-03-23 Havoc Pennington <hp@pobox.com>
12089 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12090 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12091 the mutex, so we can check for proper memory management
12094 * dbus/dbus-dataslot.c: remove the mutex from
12095 DBusDataSlotAllocator and lock it manually when using it,
12096 to simplify fitting it into the global slots framework.
12098 * dbus/dbus-threads.c (init_static_locks): rework how we're
12099 handling global locks so they are easily shut down.
12101 * bus/policy.c (bus_policy_append_rule): fix
12103 * bus/test-main.c (main): check for memleaks
12105 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12106 test suite check for memleaks
12108 * dbus/dbus-memory.c: add support in test mode for tracking
12109 number of outstanding blocks
12111 2003-03-23 Havoc Pennington <hp@pobox.com>
12113 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12116 * dbus/dbus-hash.h: add ULONG hash keys
12118 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12119 (_dbus_get_group_id): new function
12121 2003-03-20 Havoc Pennington <hp@redhat.com>
12123 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12125 (dbus_connection_get_unix_user): new function
12127 2003-03-20 Havoc Pennington <hp@pobox.com>
12129 * bus/connection.c (bus_connection_send_oom_error): assert that
12130 message has a sender
12131 (connection_execute_transaction): ditto
12132 (bus_connection_preallocate_oom_error): fix to set the sender, and
12133 set recipient to the destination service, not the bus driver
12135 * bus/policy.c: hacking
12137 * dbus/dbus-message.c (dbus_message_service_is): new function
12138 (dbus_message_sender_is): new
12140 2003-03-19 Havoc Pennington <hp@redhat.com>
12142 * bus/policy.c: start sketching code for policy restrictions on
12143 what connections can do.
12145 2003-03-18 Havoc Pennington <hp@redhat.com>
12147 * doc/TODO: some notes on high-level todo items. Little nitpick
12148 stuff is all in @todo, so no need to add it here.
12150 * doc/config-file.txt: some notes on how config file might look
12152 2003-03-18 Anders Carlsson <andersca@codefactory.se>
12154 * configure.in: 0.6
12158 2003-03-17 Havoc Pennington <hp@redhat.com>
12160 * dbus/dbus-internals.h: add gcc attributes so that
12161 our printf-style functions warn on bad arguments to
12164 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12167 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12170 2003-03-17 Havoc Pennington <hp@redhat.com>
12172 * bus/test-main.c (main): make it print something as it runs
12173 so make check doesn't look stuck
12175 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12176 from CVS, now obsolete
12178 2003-03-17 Anders Carlsson <andersca@codefactory.se>
12180 * bus/dispatch.c: (bus_dispatch):
12181 Refetch the service name since it may have been reallocated
12182 when dbus_message_set_sender was called.
12184 * dbus/dbus-sysdeps.c: (_dbus_accept):
12185 Add address and address length variables and use them to stop
12186 valgrind from complaining.
12188 2003-03-17 Havoc Pennington <hp@pobox.com>
12190 All tests pass, no memleaks, no valgrind complaints.
12192 * bus/test.c: refcount handler_slot
12194 * bus/connection.c (bus_connections_new): refcount
12195 connection_data_slot
12197 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12198 bytes so that auth scripts pass.
12200 * bus/dispatch.c: init message_handler_slot so it gets allocated
12203 * bus/dispatch.c (message_handler_slot_ref): fix memleak
12205 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12206 dealloc server_pipe_hash when no longer used for benefit of
12209 * dbus/dbus-auth.c (process_command): memleak fix
12211 * bus/dispatch.c (check_hello_message): memleak fix
12213 2003-03-16 Havoc Pennington <hp@pobox.com>
12215 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12217 2003-03-17 Anders Carlsson <andersca@codefactory.se>
12219 * bus/activation.c (bus_activation_activate_service): Append
12220 the pending activation entry to the list of pending activations.
12222 2003-03-16 Havoc Pennington <hp@pobox.com>
12224 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12227 * dbus/dbus-address.c (create_entry): fix OOM handling when
12228 failing to alloc entry->method
12230 2003-03-16 Havoc Pennington <hp@pobox.com>
12232 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12235 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12236 add some missing dbus_set_result
12238 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12239 alloc the DBusMessageHandler
12241 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12242 the transport here, since we call this from the finalizer; it
12243 resulted in a double-finalize.
12245 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12246 where we tried to use transport->connection that was NULL,
12247 happened when transport was disconnected early on due to OOM
12249 * bus/*.c: adapt to handle OOM for watches/timeouts
12251 * dbus/dbus-transport-unix.c: port to handle OOM during
12254 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12255 reference to unused bytes instead of a copy
12257 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12260 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12263 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12266 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12268 * doc/dbus-specification.sgml:
12269 Document reply message for ActivateService.
12271 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12273 * bus/activation.c: (bus_pending_activation_entry_free),
12274 (bus_pending_activation_free), (bus_activation_new),
12275 (bus_activation_unref), (bus_activation_service_created),
12276 (bus_activation_activate_service):
12277 * bus/activation.h:
12278 * bus/bus.c: (bus_context_new):
12279 * bus/desktop-file.c: (new_section):
12280 * bus/driver.c: (bus_driver_send_service_deleted),
12281 (bus_driver_handle_activate_service):
12282 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12284 * dbus/dbus-connection.c:
12285 (dbus_connection_send_with_reply_and_block):
12286 * dbus/dbus-message.c: (dbus_message_append_args_valist):
12287 * dbus/dbus-protocol.h:
12288 Make activation work better. Now pending activations will be queued
12289 and the daemon won't try to activate services that are already registered.
12291 2003-03-16 Havoc Pennington <hp@pobox.com>
12293 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12296 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12297 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12299 2003-03-16 Havoc Pennington <hp@pobox.com>
12301 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12302 this. always run the test suite before commit...
12304 * bus/*: adapt to DBusConnection API changes
12306 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12307 requires renaming stuff to avoid dbus_connection_dispatch name
12310 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12313 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12314 separate from _dbus_message_loader_return_buffer()
12316 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12317 this, because it's now always broken to use; the number of
12318 messages in queue vs. the number still buffered by the message
12319 loader is undefined/meaningless. Should use
12320 dbus_connection_get_dispatch_state().
12321 (dbus_connection_dispatch): rename from
12322 dbus_connection_dispatch_message
12324 2003-03-16 Havoc Pennington <hp@pobox.com>
12326 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12329 2003-03-16 Anders Carlsson <andersca@codefactory.se>
12331 * dbus/dbus-connection.c:
12332 (dbus_connection_send_with_reply_and_block):
12333 Decrease connection->n_incoming when removing an entry
12335 * dbus/dbus-dict.c: (dbus_dict_entry_free),
12336 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12337 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12338 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12339 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12340 (dbus_dict_get_byte_array):
12341 Handle NULL arrays and strings. Also add support for byte arrays.
12343 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12344 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12345 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12346 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12347 (_dbus_demarshal_dict), (demarshal_and_validate_len),
12348 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12349 * dbus/dbus-marshal.h:
12350 Add support for marshalling and demarshalling empty arrays and strings.
12352 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12353 (dbus_message_append_string_array),
12354 (dbus_message_iter_get_boolean),
12355 (dbus_message_iter_get_boolean_array),
12356 (dbus_message_iter_get_int32_array),
12357 (dbus_message_iter_get_uint32_array),
12358 (dbus_message_iter_get_double_array),
12359 (dbus_message_iter_get_byte_array),
12360 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12361 (check_message_handling):
12362 Add support for getting empty arrays and dicts.
12364 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12365 Don't do any validation at all for now, that's better than just checking
12368 * test/data/valid-messages/emptiness.message:
12369 New test message with lots of empty arrays.
12371 2003-03-16 Havoc Pennington <hp@pobox.com>
12373 * dbus/dbus-connection.c
12374 (_dbus_connection_queue_received_message_link): new function that
12375 can't fail due to OOM
12377 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12378 new function pops a message together with a list link
12381 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12382 message queuing functions to avoid needing to alloc memory
12384 2003-03-16 Havoc Pennington <hp@pobox.com>
12386 Oops - test code was only testing failure of around 30 of the
12387 mallocs in the test path, but it turns out there are 500+
12388 mallocs. I believe this was due to misguided linking setup such
12389 that there was one copy of dbus_malloc etc. in the daemon and one
12390 in the shared lib, and only daemon mallocs were tested. In any
12391 case, the test case now tests all 500+ mallocs, and doesn't pass
12392 yet, though there are lots of fixes in this patch.
12394 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12395 this so that it doesn't need to allocate memory, since it
12396 has no way of indicating failure due to OOM (and would be
12397 annoying if it did).
12399 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12401 * bus/Makefile.am: rearrange to create two self-contained
12402 libraries, to avoid having libraries with overlapping symbols.
12403 that was resulting in weirdness, e.g. I'm pretty sure there
12404 were two copies of global static variables.
12406 * dbus/dbus-internals.c: move the malloc debug stuff to
12409 * dbus/dbus-list.c (free_link): free list mempool if it becomes
12412 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12414 * dbus/dbus-address.c (dbus_parse_address): free list nodes
12417 * bus/dispatch.c (bus_dispatch_add_connection): free
12418 message_handler_slot when no longer using it, so
12419 memory leak checkers are happy for the test suite.
12421 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12423 * bus/bus.c (new_connection_callback): disconnect in here if
12424 bus_connections_setup_connection fails.
12426 * bus/connection.c (bus_connections_unref): fix to free the
12428 (bus_connections_setup_connection): if this fails, don't
12429 disconnect the connection, just be sure there are no side
12432 * dbus/dbus-string.c (undo_alignment): unbreak this
12434 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12436 (_dbus_auth_new): fix the order in which we free strings
12439 * bus/connection.c (bus_connection_disconnected): fix to
12440 not send ServiceDeleted multiple times in case of memory
12443 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12444 get the base service name
12445 (dbus_bus_register_client): don't return base service name,
12446 instead store it on the DBusConnection and have an accessor
12448 (dbus_bus_register_client): rename dbus_bus_register()
12450 * bus/dispatch.c (check_hello_message): verify that other
12451 connections on the bus also got the correct results, not
12452 just the one sending hello
12454 2003-03-15 Havoc Pennington <hp@pobox.com>
12456 Make it pass the Hello handling test including all OOM codepaths.
12457 Now to do other messages...
12459 * bus/services.c (bus_service_remove_owner): fix crash when
12460 removing owner from an empty list of owners
12461 (bus_registry_ensure): don't leave service in the list of
12462 a connection's owned services if we fail to put the service
12465 * bus/connection.c (bus_connection_preallocate_oom_error): set
12466 error flag on the OOM error.
12468 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12469 handle _dbus_transport_set_connection failure
12471 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12472 to create watches up front and simply enable/disable them as
12474 (unix_connection_set): this can now fail on OOM
12476 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12477 of enabling/disabling a watch or timeout.
12479 * bus/loop.c (bus_loop_iterate): don't touch disabled
12482 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12484 2003-03-15 Havoc Pennington <hp@pobox.com>
12486 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12487 write useful test code, after all that futzing around ;-)
12489 Test does not yet pass because we can't handle OOM in
12490 _dbus_transport_messages_pending (basically,
12491 dbus_connection_preallocate_send() does not prealloc the write
12492 watch). To fix this, I think we need to add new stuff to
12493 set_watch_functions, namely a SetEnabled function so we can alloc
12494 the watch earlier, then enable it later.
12496 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12497 dbus-memory.c to the convenience lib
12499 * bus/test.c: rename some static functions to keep them clearly
12500 distinct from stuff in connection.c. Handle client disconnection.
12502 2003-03-14 Havoc Pennington <hp@pobox.com>
12504 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12505 transport, tests more of the real codepath. Set up clients
12506 with bus_setup_debug_client.
12508 * bus/test.c (bus_setup_debug_client): function to set up debug
12509 "clients" on the main loop
12511 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12514 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12517 * dbus/dbus-server-debug.c: support a debug server based on pipes
12519 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12520 (_dbus_close): new function
12522 * configure.in: check for socketpair
12524 2003-03-14 Havoc Pennington <hp@redhat.com>
12526 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12529 * dbus/dbus-transport-debug.c: rework this a good bit to be
12530 less complicated. hopefully still works.
12532 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12535 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12538 * dbus/dbus-message.c (dbus_message_copy): rename from
12539 dbus_message_new_from_message, fix it up to copy
12540 all the message fields, add test case
12542 * bus/dispatch.c (bus_dispatch_test): add some more test code,
12543 not quite passing yet
12545 2003-03-14 Havoc Pennington <hp@pobox.com>
12547 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12548 until no work remains" in test code. (the large diff here
12549 is just code movement, no actual changes)
12551 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12552 1, no point waiting around for test code.
12553 (_dbus_server_debug_accept_transport): unref the timeout
12554 after adding it (right?)
12556 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12558 2003-03-13 Havoc Pennington <hp@redhat.com>
12560 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12563 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12566 * dbus/dbus-connection.h: Make AddWatchFunction and
12567 AddTimeoutFunction return a bool so they can fail on out-of-memory
12569 * bus/bus.c (bus_context_new): set up timeout handlers
12571 * bus/connection.c (bus_connections_setup_connection): set up
12574 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12577 * bus/bus.c (bus_context_new): adapt to changes
12579 * bus/connection.c: adapt to changes
12581 * test/watch.c: adapt to DBusWatch changes
12583 * bus/dispatch.c (bus_dispatch_test): started adding this but
12586 2003-03-14 Anders Carlsson <andersca@codefactory.se>
12588 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12590 2003-03-13 Havoc Pennington <hp@pobox.com>
12592 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12593 set up a test framework as for the library
12595 2003-03-12 Havoc Pennington <hp@pobox.com>
12597 Throughout: purge global variables, introduce BusActivation,
12598 BusConnections, BusRegistry, etc. objects instead.
12600 * bus/bus.h, bus/bus.c: introduce BusContext as a global
12603 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12604 going to redo this a bit differently I think
12606 2003-03-12 Havoc Pennington <hp@redhat.com>
12608 Mega-patch that gets the message bus daemon initially handling
12609 out-of-memory. Work still needed. Also lots of random
12610 moving stuff to DBusError instead of ResultCode.
12612 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12614 * dbus/dbus-connection.c
12615 (dbus_connection_send_with_reply_and_block): use DBusError
12617 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12620 * dbus/dbus-connection.c (dbus_connection_send): drop the result
12621 code here, as the only failure possible is OOM.
12623 * bus/connection.c (bus_connection_disconnect):
12624 rename bus_connection_disconnected as it's a notification only
12626 * bus/driver.c (bus_driver_handle_acquire_service): don't free
12627 "name" on get_args failure, should be done by get_args;
12628 don't disconnect client for bad args, just return an error.
12629 (bus_driver_handle_service_exists): ditto
12631 * bus/services.c (bus_services_list): NULL-terminate returned array
12633 * bus/driver.c (bus_driver_send_service_lost)
12634 (bus_driver_send_service_acquired): send messages from driver to a
12635 specific client to the client's unique name, not to the broadcast
12638 * dbus/dbus-message.c (decode_header_data): reject messages that
12639 contain no name field
12640 (_dbus_message_get_client_serial): rename to
12641 dbus_message_get_serial and make public
12642 (_dbus_message_set_serial): rename from set_client_serial
12643 (_dbus_message_set_reply_serial): make public
12644 (_dbus_message_get_reply_serial): make public
12646 * bus/connection.c (bus_connection_foreach): allow stopping
12647 iteration by returning FALSE from foreach function.
12649 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12650 (dbus_connection_free_preallocated_send)
12651 (dbus_connection_preallocate_send): new API for sending a message
12652 without possibility of malloc failure.
12653 (dbus_connection_send_message): rename to just
12654 dbus_connection_send (and same for whole function family)
12656 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12658 * dbus/dbus-sysdeps.c (_dbus_exit): new function
12660 * bus/activation.c: handle/return errors
12662 * dbus/dbus-errors.h: add more DBUS_ERROR #define
12664 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12665 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12666 (_dbus_result_from_errno): move to this file
12668 2003-03-10 Anders Carlsson <andersca@codefactory.se>
12670 * dbus/dbus-marshal.c:
12671 (_dbus_marshal_set_string):
12672 Take a length argument so we can marshal the correct string
12675 (_dbus_marshal_dict), (_dbus_demarshal_dict),
12676 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12677 (_dbus_marshal_test):
12678 * dbus/dbus-marshal.h:
12679 Add support for marshalling and demarshalling dicts.
12681 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12682 Add support for TYPE DICT.
12684 * dbus/dbus-message.c: (set_string_field):
12685 Adjust header padding.
12687 (dbus_message_append_args_valist), (dbus_message_append_dict),
12688 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12689 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12690 (check_message_handling), (check_have_valid_message):
12691 * dbus/dbus-message.h:
12692 Add functions for setting and getting dicts.
12694 * dbus/dbus-protocol.h:
12695 Add DBUS_TYPE_DICT.
12700 * doc/dbus-specification.sgml:
12701 Add information about how dicts are marshalled.
12703 * test/data/invalid-messages/dict-with-nil-value.message:
12704 * test/data/invalid-messages/too-short-dict.message:
12705 * test/data/valid-messages/dict-simple.message:
12706 * test/data/valid-messages/dict.message:
12707 Add sample messages containing dicts.
12709 2003-03-08 Anders Carlsson <andersca@codefactory.se>
12711 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12713 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12715 * dbus/Makefile.am:
12716 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12717 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12718 (dbus_dict_set_int32), (dbus_dict_set_uint32),
12719 (dbus_dict_set_double), (dbus_dict_set_string),
12720 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12721 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12722 (dbus_dict_set_string_array), (_dbus_dict_test):
12723 * dbus/dbus-dict.h:
12724 Fix according to comments from Havoc.
12726 2003-03-06 Michael Meeks <michael@server.home>
12728 * configure.in: if we don't have kde-config, disable have_qt.
12730 2003-03-07 Anders Carlsson <andersca@codefactory.se>
12732 * dbus/Makefile.am:
12735 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12736 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12737 (dbus_dict_remove), (dbus_dict_get_value_type),
12738 (dbus_dict_get_keys), (dbus_dict_put_boolean),
12739 (dbus_dict_put_int32), (dbus_dict_put_uint32),
12740 (dbus_dict_put_double), (dbus_dict_put_string),
12741 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12742 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12743 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12744 (dbus_dict_get_int32), (dbus_dict_get_uint32),
12745 (dbus_dict_get_double), (dbus_dict_get_string),
12746 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12747 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12748 (dbus_dict_get_string_array), (_dbus_dict_test):
12749 * dbus/dbus-dict.h:
12750 Add DBusDict implementation
12752 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12753 * dbus/dbus-test.h:
12754 Add _dbus_dict_test
12756 2003-03-04 Havoc Pennington <hp@pobox.com>
12758 * test/data/auth/*: adapt to changes
12760 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12761 USERID_BASE64 and change USERNAME_BASE64 to put in username not
12764 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12765 more stuff from being in a context name, to make the protocol
12766 simpler to deal with
12768 * dbus/dbus-errors.c (dbus_error_has_name): new function
12769 (dbus_error_is_set): new function
12771 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12772 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12774 * dbus/dbus-connection.c (dbus_connection_flush): also read
12775 messages during a flush operation
12777 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12779 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12781 * configure.in: Check for gethostbyname on Solaris.
12783 * dbus/dbus-transport.c: (_dbus_transport_open):
12784 Remove duplicate "tcp" entry.
12786 * doc/dbus-specification.sgml:
12787 Clarify some things.
12789 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12791 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12792 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12793 (_dbus_keyring_test):
12794 * dbus/dbus-md5.c: (_dbus_md5_compute):
12795 * dbus/dbus-sha.c: (_dbus_sha_compute):
12798 2003-03-05 Anders Carlsson <andersca@codefactory.se>
12800 * README: Add some things.
12802 2003-03-04 Anders Carlsson <andersca@codefactory.se>
12804 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12805 after case DBUS_TYPE_BOOELAN.
12807 2003-03-02 Havoc Pennington <hp@pobox.com>
12809 * test/break-loader.c (randomly_set_extreme_ints): add test that
12810 sets really huge and small integers
12812 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12813 that length of boolean array fits in the string, and that
12814 string has room for boolean value in single-bool case.
12816 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12817 optional value to "ALIGN" command which is what to fill the
12820 * test/data/valid-messages/no-padding.message: add regression
12821 test for the message padding problem
12823 2003-03-02 Havoc Pennington <hp@pobox.com>
12825 * dbus/dbus-message.c (decode_header_data): fix to always init
12826 message_padding, from Benjamin Dauvergne
12828 2003-03-02 Havoc Pennington <hp@pobox.com>
12830 * configure.in: 0.5
12834 2003-03-01 Joe Shaw <joe@assbarn.com>
12836 * configure.in: Check for "struct cmsgcred" and try to access its
12837 members for BSD-like unices.
12839 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12840 _dbus_read_credentials_unix_socket().
12841 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12842 read() for reading the credential byte off the unix socket. Use
12843 struct cmsgcred on systems that support it.
12845 2003-02-27 Alexander Larsson <alexl@redhat.com>
12847 * glib/Makefile.am:
12849 Make gthreads-2.0 dependency optional. Don't build thread test if
12852 2003-02-27 Havoc Pennington <hp@pobox.com>
12854 * dbus/dbus-connection.c
12855 (dbus_connection_send_message_with_reply_and_block): fix doh!
12856 doh! doh! bug that resulted in never removing a reply from the
12857 queue, no wonder we called get_reply_serial so much ;-)
12859 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12860 and client serial instead of demarshaling them every time
12862 2003-02-27 Havoc Pennington <hp@pobox.com>
12864 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12865 more inlined, using dbus-string-private.h, speeds things up
12868 * dbus/dbus-string.c (_dbus_string_free): apply align offset
12869 when freeing the string
12870 (_dbus_string_steal_data): fix for align offset
12871 (undo_alignment): new function
12873 2003-02-26 Havoc Pennington <hp@redhat.com>
12875 All kinds of audit fixes from Owen, plus initial attempt to
12876 handle unaligned memory returned from malloc.
12878 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12879 leave room for align_offset and nul byte
12880 (fixup_alignment): function to track an align_offset and
12881 ensure real->str is aligned
12882 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12883 to allow a nul byte plus align offset
12884 (_dbus_string_lock): fix overflow issue
12885 (_dbus_string_init_const_len): add assertions on sanity of len,
12886 assign allocated to be ALLOCATION_PADDING larger than len
12887 (set_length): fixup the overflow handling
12888 (_dbus_string_get_data_len): fix overflow in assertion
12889 (open_gap): detect overflow in size of gap to be opened
12890 (_dbus_string_lengthen): add overflow check
12891 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12892 (_dbus_string_append): add overflow check
12893 (_dbus_string_append_unichar): overflow
12894 (_dbus_string_delete): fix overflow in assertion
12895 (_dbus_string_copy_len): overflow in assertion
12896 (_dbus_string_replace_len): overflows in assertions
12897 (_dbus_string_find): change to implement in terms of
12898 _dbus_string_find_to
12899 (_dbus_string_find_to): assorted fixage
12900 (_dbus_string_equal_c_str): assert c_str != NULL,
12901 fix logic so the function works
12902 (_dbus_string_ends_with_c_str): fix overflow thingy
12903 (_dbus_string_base64_encode): overflow fix
12904 (_dbus_string_validate_ascii): overflow
12905 (_dbus_string_validate_nul): overflow
12907 2003-02-26 Havoc Pennington <hp@redhat.com>
12909 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12911 2003-02-26 Alexander Larsson <alexl@redhat.com>
12914 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12916 * dbus/dbus-connection.c:
12917 * dbus/dbus-connection.h:
12918 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12919 Add dbus_connection_set_wakeup_main_function and use it when queueing
12920 incoming and outgoing messages.
12923 * dbus/dbus-dataslot.c:
12924 Threadsafe usage of DBusDataSlotAllocator
12926 * dbus/dbus-message.c: (dbus_message_get_args_iter):
12929 * dbus/dbus-server-unix.c:
12932 * glib/dbus-gmain.c:
12933 Implement the new wakeup functions for glib.
12935 * glib/Makefile.am:
12936 * glib/test-thread-client.c:
12937 * glib/test-thread-server.c:
12938 * glib/test-thread.h:
12939 Initial cut at some thread test code. Not really done yet.
12941 2003-02-26 Havoc Pennington <hp@pobox.com>
12943 * dbus/dbus-connection.c
12944 (dbus_connection_send_message_with_reply_and_block): fix crash
12945 where we ref'd the outgoing message instead of the returned reply
12947 * dbus/dbus-transport-unix.c (do_authentication): check read watch
12948 at the end of this function, so if we didn't need to read for
12949 authentication, we reinstall it for receiving messages
12951 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12952 a NULL sender for peer-to-peer case
12954 * dbus/dbus-transport-unix.c (check_read_watch): handle
12955 !authenticated case correctly
12957 * glib/dbus-gmain.c: add support for DBusServer
12959 * dbus/dbus-server.c: add data slot support
12961 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12962 return values and handle errors
12964 * dbus/dbus-dataslot.c: factor out the data slot stuff from
12967 * Doxyfile.in (INPUT): add glib subdir
12969 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12970 setup_with_g_main instead of hookup_with_g_main; write docs
12972 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12974 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12975 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12976 * dbus/dbus-message.c: (dbus_message_append_boolean),
12977 (dbus_message_append_boolean_array),
12978 (dbus_message_get_args_valist), (_dbus_message_test):
12979 * dbus/dbus-message.h:
12980 * doc/dbus-specification.sgml:
12981 Various fixes as pointed out by Havoc.
12983 * test/data/invalid-messages/bad-boolean-array.message:
12984 * test/data/invalid-messages/bad-boolean.message:
12985 Add invalid boolean value test cases.
12987 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12989 * dbus/dbus-internals.c: (_dbus_type_to_string):
12990 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12991 (_dbus_marshal_validate_arg):
12992 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12993 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12994 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12995 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12996 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12997 (dbus_message_iter_get_double),
12998 (dbus_message_iter_get_boolean_array), (message_iter_test):
12999 * dbus/dbus-message.h:
13000 * dbus/dbus-protocol.h:
13001 * doc/dbus-specification.sgml:
13002 * test/data/valid-messages/lots-of-arguments.message:
13003 Add support for boolean and boolean array types.
13005 2003-02-23 Havoc Pennington <hp@pobox.com>
13007 * dbus/dbus-keyring.c: finish most of this implementation and
13010 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13011 these barf if the error isn't cleared to NULL
13013 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13014 (_dbus_create_directory): new function
13016 * dbus/dbus-errors.c (dbus_set_error): fix warning
13018 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13019 (_dbus_string_hex_decode): new function
13020 (test_hex_roundtrip): test code
13022 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13024 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13026 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13027 the save-to-temp/rename trick to atomically write the new file
13028 (_dbus_string_parse_uint): new function
13030 2003-02-22 Havoc Pennington <hp@pobox.com>
13032 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13034 2003-02-22 Havoc Pennington <hp@pobox.com>
13036 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13037 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13039 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13041 * dbus/test/data/sha-1: add US government test suite for SHA-1
13043 2003-02-21 Anders Carlsson <andersca@codefactory.se>
13045 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13046 Make string arrays NULL-terminated.
13048 * dbus/dbus-memory.c: (dbus_free_string_array):
13049 * dbus/dbus-memory.h:
13050 New function for freeing NULL-terminated string arrays.
13052 * dbus/dbus-message-builder.c: (append_quoted_string),
13053 (_dbus_message_data_load):
13054 Add support for array types.
13056 * dbus/dbus-message.c: (check_message_handling):
13057 Add more types as test cases.
13059 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13060 (_dbus_string_parse_double):
13061 Add the start offset to the end offset.
13063 * test/data/valid-messages/lots-of-arguments.message:
13064 New test message with lots of arguments.
13066 2003-02-21 Anders Carlsson <andersca@codefactory.se>
13068 * dbus/dbus-message.c: (dbus_message_append_nil),
13069 (dbus_message_append_int32), (dbus_message_append_uint32),
13070 (dbus_message_append_double), (dbus_message_append_string),
13071 (dbus_message_append_int32_array),
13072 (dbus_message_append_uint32_array),
13073 (dbus_message_append_double_array),
13074 (dbus_message_append_byte_array),
13075 (dbus_message_append_string_array):
13076 Fix all out-of-memory handling in these functions.
13078 2003-02-21 Anders Carlsson <andersca@codefactory.se>
13080 * dbus/dbus-message.c: (dbus_message_append_nil):
13083 2003-02-21 Anders Carlsson <andersca@codefactory.se>
13085 * dbus/dbus-message.c: (dbus_message_append_args_valist),
13086 (dbus_message_append_nil), (dbus_message_append_int32_array),
13087 (dbus_message_append_uint32_array),
13088 (dbus_message_append_double_array),
13089 (dbus_message_append_byte_array),
13090 (dbus_message_append_string_array), (dbus_message_get_args_valist),
13091 (dbus_message_iter_get_int32_array),
13092 (dbus_message_iter_get_uint32_array),
13093 (dbus_message_iter_get_double_array),
13094 (dbus_message_iter_get_byte_array),
13095 (dbus_message_iter_get_string_array):
13097 * dbus/dbus-message.h:
13098 Add functions for appending and getting arrays.
13100 2003-02-21 Anders Carlsson <andersca@codefactory.se>
13102 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13103 element size at least 8 bytes, fixes mempool tests on
13106 2003-02-20 Alexander Larsson <alexl@redhat.com>
13108 * dbus/dbus-transport-unix.c (unix_do_iteration):
13109 Unlock the connection mutex during a blocking select call.
13110 Add todo about how we need a way to wake up the select.
13112 * dbus/dbus-connection-internal.h:
13113 * dbus/dbus-connection.c:
13114 Add _dbus_connection_lock and _dbus_connection_unlock.
13116 2003-02-19 Havoc Pennington <hp@pobox.com>
13118 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13119 Doxyfile.in, not Doxyfile
13121 * dbus/dbus-keyring.c: do some hacking on this
13123 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13125 * dbus/dbus-errors.c (dbus_set_error_const): do not call
13127 (dbus_set_error): remove dbus_error_init, check for message ==
13128 NULL *before* we sprintf into it, and add @todo about including
13129 system headers in this file
13131 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13133 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13135 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13136 get various bits of user information based on either username
13138 (_dbus_homedir_from_username): new function
13140 2003-02-19 Anders Carlsson <andersca@codefactory.se>
13143 Add check for nonposix getpwnam_r
13145 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13146 Align the pool element size to a sizeof (void *) boundary.
13148 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13149 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13150 General Solaris fixes.
13152 * test/data/valid-messages/simplest-manual.message:
13153 Explicitly state that we want little-endian packing.
13155 2003-02-19 Mikael Hallendal <micke@codefactory.se>
13157 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13159 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13160 Added to create a transport connecting using a tcp/ip socket.
13162 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13163 to a tcp socket at given host and port.
13164 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13167 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13169 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13170 Added to create a server listening on a TCP/IP socket.
13172 2003-02-19 Havoc Pennington <hp@pobox.com>
13174 Throughout: mop up all the Doxygen warnings and undocumented
13177 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13178 to search any paths.
13180 * dbus/dbus-threads.c: move global mutex initializers to
13181 dbus-internals.h, multiple prototypes was confusing doxygen
13182 besides being kind of ugly
13184 * Doxyfile (PREDEFINED): have Doxygen define
13185 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13186 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13187 (do not abuse the feature! it's for stuff like the autogenerated
13188 macros in dbus-md5.c, not just for things you don't feel like
13191 2003-02-18 Havoc Pennington <hp@pobox.com>
13193 * dbus/dbus-string.c (_dbus_string_zero): new function
13195 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13196 wrap it in some dbus-friendly API
13198 * dbus/dbus-types.h: add 16-bit types
13200 2003-02-18 Joe Shaw <joe@assbarn.com>
13202 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13203 credentials from our currently running process.
13204 (get_word): Fix a buglet where we were copying the entire length
13205 instead of relative to our position.
13207 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13208 keys on the stack... it's 640k of data.
13210 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13211 read the credentials byte off the socket, even if we don't have
13213 (_dbus_poll): Implement poll() using select() for systems which
13216 * glib/test-dbus-glib.c (main): Print out an error if no
13217 parameters are given.
13219 * test/data/auth/fallback.auth-script: Added. Tests that a client
13220 can fallback to a secondary auth mechanism if the first fails.
13222 2003-02-18 Havoc Pennington <hp@pobox.com>
13224 * AUTHORS: add Alex
13226 2003-02-17 Havoc Pennington <hp@pobox.com>
13228 * doc/dbus-specification.sgml: lots of cosmetic
13229 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13230 env variable to DBUS_BUS_ADDRESS, s/client/application/,
13231 s/server/bus/ (except in authentication section). Add a section
13232 "Message Bus Message Routing"
13234 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
13240 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13242 * doc/dbus-specification.sgml:
13243 Specification updates.
13245 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13247 * bus/activation.c: (bus_activation_init), (child_setup),
13248 (bus_activation_activate_service):
13249 * bus/activation.h:
13250 * bus/main.c: (main):
13251 Set DBUS_ADDRESS environment variable.
13253 * dbus/dbus-errors.c: (dbus_set_error):
13254 Don't use va_copy since that's a C99 feature.
13256 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13257 (_dbus_spawn_async):
13258 * dbus/dbus-sysdeps.h:
13259 Add child_setup_func to _dbus_spawn_async.
13261 * doc/dbus-specification.sgml:
13262 Update specification.
13264 * test/spawn-test.c: (setup_func), (main):
13267 2003-02-17 Alexander Larsson <alexl@redhat.com>
13269 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13272 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13276 * doc/dbus-test-plan.sgml:
13277 Add test plan document.
13279 * test/Makefile.am:
13282 2003-02-17 Anders Carlsson <andersca@codefactory.se>
13284 * dbus/dbus-message.c: (decode_header_data),
13285 (_dbus_message_loader_return_buffer):
13286 Set the header padding amount when loading a message.
13288 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13290 * bus/dispatch.c: (send_one_message):
13291 Only send broadcast messages to registered connections.
13293 * dbus/dbus-message.c: (dbus_message_name_is):
13294 * dbus/dbus-message.h:
13295 New convenience function.
13297 * dbus/dbus-transport-debug.c: (do_reading):
13298 Only dispatch one message per run.
13300 * test/Makefile.am:
13301 * test/bus-test.c: (new_connection_callback), (die),
13302 (test_hello_client1_handler), (test_hello_client2_handler),
13303 (test_hello_replies), (main):
13305 * test/bus-test-loop.[ch]:
13308 2003-02-16 Havoc Pennington <hp@pobox.com>
13310 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13311 backward conditional
13313 2003-02-16 Alexander Larsson <alexl@redhat.com>
13315 * dbus/dbus-connection.c:
13316 Implement sent_message_with_reply. (with_reply_and block is still
13318 Made dispatch_message not lose message if OOM.
13320 * dbus/dbus-errors.h:
13321 Add NoReply error (for reply timeouts).
13323 2003-02-16 Alexander Larsson <alexl@redhat.com>
13325 * dbus/dbus-hash.c (_dbus_hash_table_unref):
13326 Actually free keys and values when destroying hashtable.
13328 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13330 * dbus/dbus-auth.c: (client_try_next_mechanism):
13333 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13334 Return TRUE if there's no thread implementation around.
13336 * glib/dbus-gmain.c: (free_source),
13337 (dbus_connection_hookup_with_g_main):
13338 Make sure to remove the GSource when the connection is finalized.
13340 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13342 * bus/dispatch.c: (bus_dispatch_message_handler):
13343 * dbus/dbus-errors.h:
13344 Return an error if someone tries to send a message to a service
13345 that doesn't exist.
13347 2003-02-16 Anders Carlsson <andersca@codefactory.se>
13349 * bus/activation.c: (load_directory), (bus_activation_init),
13350 (bus_activation_activate_service):
13351 * bus/activation.h:
13353 (bus_driver_handle_activate_service), (bus_driver_handle_message):
13354 More work on the activation handling.
13356 * dbus/dbus-errors.h:
13357 Add some error messages
13359 * dbus/dbus-message.c: (dbus_message_new_error_reply):
13360 * dbus/dbus-message.h:
13361 New function that creates an error message.
13363 * dbus/dbus-protocol.h:
13364 Add ACTIVATE_SERVER message.
13366 * dbus/dbus-server-unix.c: (unix_handle_watch),
13367 (_dbus_server_new_for_domain_socket):
13368 Call _dbus_fd_set_close_on_exec.
13370 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13371 (_dbus_spawn_async), (_dbus_disable_sigpipe),
13372 (_dbus_fd_set_close_on_exec):
13373 * dbus/dbus-sysdeps.h:
13374 Add _dbus_fd_set_close_on exec function. Also add function that checks
13375 that all open fds are set to close-on-exec and warns otherwise.
13377 * dbus/dbus-transport-unix.c:
13378 (_dbus_transport_new_for_domain_socket):
13379 Call _dbus_fd_set_close_on_exec.
13381 2003-02-16 Havoc Pennington <hp@pobox.com>
13383 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13384 allow people to avoid setting SIGPIPE to SIG_IGN
13385 (_dbus_connection_new_for_transport): disable SIGPIPE unless
13386 we've been asked not to
13388 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13390 * dbus/dbus-list.c: (_dbus_list_append_link),
13391 (_dbus_list_prepend_link):
13392 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13396 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13399 * bus/activation.c: (bus_activation_entry_free),
13400 (add_desktop_file_entry), (load_directory), (bus_activation_init):
13401 * bus/activation.h:
13402 * bus/main.c: (main):
13403 Add simple activation support, doesn't work yet though.
13405 2003-02-15 Zack Rusin <zack@kde.org>
13407 * qt/dbus-qthread.cpp: small casting fix
13409 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13411 * dbus/dbus-errors.c: (dbus_set_error):
13412 * dbus/dbus-errors.h:
13413 Add a few errors and make dbus_set_error void.
13415 * dbus/dbus-sysdeps.c:
13416 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13417 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13418 * dbus/dbus-sysdeps.h:
13419 Add _dbus_spawn_async.
13421 * test/spawn-test.c: (main):
13422 Test for _dbus_spawn_async.
13424 2003-02-15 Anders Carlsson <andersca@codefactory.se>
13426 * dbus/dbus-internals.h:
13427 Fix build without tests.
13429 * dbus/dbus-list.c: (alloc_link):
13430 Fix a segfault when a malloc fails.
13432 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13433 (dbus_malloc0), (dbus_realloc):
13434 Add support for malloc debugging.
13436 2003-02-15 Alexander Larsson <alexl@redhat.com>
13438 * dbus/dbus-threads.c:
13439 * dbus/dbus-threads.h:
13440 Add condvars. Remove static mutext from API.
13441 Implement static mutexes by initializing them from threads_init.
13443 * glib/dbus-gthread.c:
13444 * qt/dbus-qthread.cpp:
13445 Update with the thread api changes.
13448 * dbus/dbus-list.c:
13449 * dbus/dbus-list.h:
13450 Turn StaticMutex into normal mutex + init function.
13451 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13452 _dbus_list_append_link, _dbus_list_prepend_link
13455 * dbus/dbus-sysdeps.c:
13456 * dbus/dbus-sysdeps.h:
13457 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13458 _dbus_atomic_dec. Only slow fallback implementation at the moment.
13460 * dbus/dbus-protocol.h:
13461 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13463 * dbus/dbus-message.c:
13464 Make ref/unref atomic.
13467 * dbus/dbus-connection-internal.h:
13468 * dbus/dbus-connection.c:
13469 * dbus/dbus-connection.h:
13471 Change _peek to _borrow,_return & _steal_borrowed.
13472 Change disconnect callback to event.
13473 Make dbus_connection_dispatch_messages reentrant.
13475 * dbus/dbus-transport.c:
13476 Don't ref the connection on calls to the transport
13479 * dbus/dbus-message-handler.c:
13482 * glib/dbus-gmain.c:
13483 Don't use peek_message anymore
13485 * test/Makefile.am:
13486 * test/debug-thread.c:
13487 * test/debug-thread.h:
13488 Simple thread implementation that asserts() on deadlocks in
13489 single-threaded code.
13492 (main) Call debug_threads_init.
13495 Use disconnect message instead of disconnect callback.
13497 * bus/connection.c:
13498 * bus/connection.h:
13499 Don't call dbus_connection_set_disconnect_function. Instead export
13500 bus_connection_disconnect.
13503 Call bus_connection_disconnect when we get a disconnected message.
13505 2003-02-15 Havoc Pennington <hp@pobox.com>
13507 * dbus/dbus-message.c (dbus_message_new): fool around with the
13510 2003-02-14 Havoc Pennington <hp@pobox.com>
13512 * dbus/dbus-mempool.c: fail if the debug functions so indicate
13514 * dbus/dbus-memory.c: fail if the debug functions indicate we
13517 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13518 (_dbus_decrement_fail_alloc_counter): debug functions to
13519 simulate memory allocation failures
13521 2003-02-14 Havoc Pennington <hp@pobox.com>
13523 * dbus/dbus-errors.h (struct DBusError): add a word of padding
13526 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13528 * bus/driver.c: (bus_driver_handle_hello):
13530 * bus/services.c: (bus_service_lookup):
13531 Reorder message sending so we get a more sane order.
13533 * test/bus-test.c: (message_handler):
13536 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13538 * bus/driver.c: (bus_driver_send_service_deleted),
13539 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13540 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13541 (bus_driver_send_welcome_message),
13542 (bus_driver_handle_list_services),
13543 (bus_driver_handle_acquire_service),
13544 (bus_driver_handle_service_exists):
13545 * dbus/dbus-bus.c: (dbus_bus_register_client),
13546 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13547 * dbus/dbus-errors.c: (dbus_result_to_string):
13548 * dbus/dbus-errors.h:
13549 * dbus/dbus-message.c: (dbus_message_append_args),
13550 (dbus_message_append_args_valist), (dbus_message_get_args),
13551 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13552 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13553 (dbus_message_iter_get_byte_array),
13554 (dbus_message_iter_get_string_array), (message_iter_test),
13555 (check_message_handling), (_dbus_message_test):
13556 * dbus/dbus-message.h:
13557 * test/bus-test.c: (main):
13558 Change fields to arguments in messages, so that they won't be
13559 confused with header fields.
13561 * glib/test-dbus-glib.c: (main):
13562 Remove append_fields from hello message.
13564 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13566 * dbus/dbus-errors.c:
13567 * dbus/dbus-message.c:
13568 * dbus/dbus-string.c:
13569 Documentation fixes.
13571 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13573 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13575 Implement support for timeouts in dbus-glib.
13577 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13579 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13580 * dbus/dbus-message.c: (process_test_subdir):
13581 * test/break-loader.c: (find_breaks_based_on):
13582 Plug some memory leaks.
13584 2003-02-13 Richard Hult <rhult@codefactory.se>
13586 * bus/main.c: Fix build.
13588 * dbus/dbus-errors.h:
13589 * dbus/dbus-errors.c: Fix copyright for Anders.
13591 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13596 * bus/connection.c: (bus_connection_foreach):
13599 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13600 (unescape_string), (new_section), (parse_section_start),
13601 (parse_key_value), (report_error), (bus_desktop_file_load),
13602 (bus_desktop_file_get_string):
13603 * bus/desktop-file.h:
13604 Use DBusError for error reporting.
13606 * bus/dispatch.c: (send_one_message),
13607 (bus_dispatch_message_handler):
13608 * bus/driver.c: (bus_driver_send_service_deleted),
13609 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13610 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13611 (bus_driver_send_welcome_message),
13612 (bus_driver_handle_list_services),
13613 (bus_driver_handle_acquire_service),
13614 (bus_driver_handle_service_exists):
13615 * bus/loop.c: (bus_loop_run):
13617 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13619 * bus/utils.c: (bus_wait_for_memory):
13621 New files with general utility functions.
13623 * dbus/dbus-internals.h:
13624 Remove _DBUS_HANDLE_OOM.
13626 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13628 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13629 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13630 * dbus/dbus-errors.h:
13631 Add DBusError structure.
13633 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13635 * test/data/valid-messages/standard-acquire-service.message:
13636 * test/data/valid-messages/standard-hello.message:
13637 * test/data/valid-messages/standard-list-services.message:
13638 * test/data/valid-messages/standard-service-exists.message:
13639 Add some standard messages.
13641 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13643 * bus/driver.c: (bus_driver_send_welcome_message),
13644 (bus_driver_handle_list_services),
13645 (bus_driver_handle_acquire_service),
13646 (bus_driver_handle_service_exists), (bus_driver_handle_message):
13647 Update for API changes in libdbus.
13649 * dbus/dbus-message.c: (dbus_message_new_reply):
13650 * dbus/dbus-message.h:
13651 Remove the name argument. The spec states that replies shouldn't
13654 2003-02-13 Anders Carlsson <andersca@codefactory.se>
13656 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13657 (report_error), (bus_desktop_file_load), (lookup_section),
13658 (lookup_line), (bus_desktop_file_get_raw),
13659 (bus_desktop_file_get_string):
13660 * bus/desktop-file.h:
13661 Some fixes, and new functions for getting a key value from a section.
13663 2003-02-13 Havoc Pennington <hp@pobox.com>
13665 * test/data/auth/fail-after-n-attempts.auth-script: new test
13667 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13670 2003-02-13 Havoc Pennington <hp@pobox.com>
13672 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13673 dbus_credentials_match were backward
13675 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13676 NO_CREDENTIALS and ROOT_CREDENTIALS
13678 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13679 into here. Never process more commands after we've reached an
13680 end state; store further data as unused bytes.
13682 * test/data/auth/*: add more auth tests
13684 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13685 command to match exact string and EXPECT_UNUSED to match unused
13688 * test/Makefile.am (dist-hook): fix to dist all the test stuff
13690 2003-02-12 Havoc Pennington <hp@pobox.com>
13692 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13693 \r off of popped lines
13695 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13698 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13701 2003-02-12 Havoc Pennington <hp@pobox.com>
13703 * dbus/Makefile.am: remove break-loader from the build, since it
13706 * configure.in: add --enable-gcov to turn on coverage profiling
13707 flags and disable optimization
13709 2003-02-10 Havoc Pennington <hp@pobox.com>
13711 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13712 initial cut at test framework for DBusAuth from laptop.
13713 Doesn't quite work yet but it compiles and I need to get
13714 it off the 266mhz laptop. ;-)
13716 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13717 fix a memleak in error case
13719 2003-02-12 Anders Carlsson <andersca@codefactory.se>
13722 * bus/desktop-file.c:
13723 * bus/desktop-file.h:
13724 Add a desktop file parser.
13726 2003-02-11 Zack Rusin <zack@kde.org>
13728 * qt/message.[h|cpp]: sample implementation
13729 of the KDE wrapper for DBusMessage
13731 2003-02-09 Zack Rusin <zack@kde.org>
13733 * test/bus-test.c: make_it_compile
13734 * doc/dbus-specification.sgml: minimal semantic fix
13736 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13742 2003-02-06 Anders Carlsson <andersca@codefactory.se>
13744 * dbus/Makefile.am:
13745 * dbus/dbus-break-loader.c:
13746 * test/Makefile.am:
13747 * test/break-loader.c:
13748 Move dbus-break-loader to test/ and rename it to break-loader.
13750 2003-02-02 Havoc Pennington <hp@pobox.com>
13752 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13753 for code to manage cookies in your home directory
13755 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13757 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13758 to authenticate, then disconnect the client.
13760 2003-02-03 Alexander Larsson <alexl@redhat.com>
13762 * dbus/dbus-message.c (dbus_message_append_fields):
13765 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13767 * doc/dbus-specification.sgml:
13768 Update address format section.
13770 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13772 * test/Makefile.am:
13773 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13774 (message_handler), (new_connection_callback), (loop_quit),
13775 (loop_run), (main):
13778 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13780 * bus/driver.c: (bus_driver_handle_service_exists):
13781 Simplify the code a bit.
13783 * dbus/dbus-bus.c: (dbus_bus_service_exists):
13786 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13789 Add libdbus-daemon.la and link to it.
13791 2003-02-01 James Willcox <jwillcox@gnome.org>
13793 * bus/driver.c: (bus_driver_handle_own_service):
13794 Actually include the service reply code in the message.
13796 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13798 * bus/driver.c: (bus_driver_handle_service_exists):
13799 Don't unref the incoming message.
13801 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13803 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13805 2003-02-02 Anders Carlsson <andersca@codefactory.se>
13807 * dbus/dbus-server.c: (dbus_server_listen):
13808 * dbus/dbus-transport.c: (_dbus_transport_open):
13809 ifdef out the calls to the debug transport and server.
13811 2003-02-02 Alexander Larsson <alexl@redhat.com>
13813 * dbus/dbus-watch.c (dbus_watch_get_flags):
13814 Add note in the docs that ERROR or HANGUP won't be returned
13815 and are assumed always on.
13817 * glib/dbus-gmain.c (add_watch):
13818 Always add IO_ERR | IO_HUP
13820 * dbus/dbus-message.h:
13821 Add semicolon after dbus_message_iter_get_string_array().
13822 Makes qt code build again
13824 2003-02-01 Anders Carlsson <andersca@codefactory.se>
13826 * bus/driver.c: (create_unique_client_name),
13827 (bus_driver_handle_hello):
13828 Don't take a name, just use a numeric id to identify
13831 * dbus/Makefile.am:
13832 * dbus/dbus-bus.c: (dbus_bus_register_client),
13833 (dbus_bus_acquire_service), (dbus_bus_service_exists):
13835 Add new convenience functions for communicating with the bus.
13837 * dbus/dbus-message.h:
13839 * dbus/dbus-protocol.h:
13842 2003-02-01 Alexander Larsson <alexl@redhat.com>
13844 * dbus/dbus-message.c (dbus_message_append_fields):
13845 Add some more doc comments.
13847 2003-02-01 Havoc Pennington <hp@pobox.com>
13849 * dbus/dbus-break-loader.c (randomly_modify_length): change
13850 a 4-byte value in the message as if it were a length
13852 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13853 execute bit on saved files
13855 2003-02-01 Havoc Pennington <hp@pobox.com>
13857 * dbus/dbus-break-loader.c (main): new program to find messages
13858 that break the loader.
13860 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13861 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13863 * dbus/dbus-string.c (_dbus_string_set_byte): new
13865 2003-01-31 Havoc Pennington <hp@pobox.com>
13867 * dbus/dbus-message.c: refactor the test code to be more general,
13868 in preparation for writing a "randomly permute test cases to
13869 try to break the loader" program.
13871 2003-01-31 Havoc Pennington <hp@pobox.com>
13873 * doc/dbus-specification.sgml: work on the specification
13875 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13876 the protocol version of the message.
13878 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13879 no longer specifies that.
13880 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13883 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13884 "break" for DBUS_TYPE_NIL, remove @todo
13886 2003-01-31 Havoc Pennington <hp@pobox.com>
13888 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13889 just set_is_error/get_is_error as this is a commonly-used
13890 function, and write docs.
13892 2003-01-31 Anders Carlsson <andersca@codefactory.se>
13894 * dbus/dbus-address.c: (dbus_address_entry_free):
13895 Free key and value lists.
13897 * dbus/dbus-internals.c: (_dbus_type_to_string):
13898 Add the types we didn't have.
13900 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13901 (_dbus_marshal_validate_arg):
13904 * dbus/dbus-message.c: (dbus_message_set_sender):
13905 Remove todo about being able to set sender to NULL.
13907 (dbus_message_set_is_error_reply),
13908 (dbus_message_get_is_error_reply):
13909 * dbus/dbus-message.h:
13912 * dbus/dbus-protocol.h:
13913 Add error reply flag.
13915 * test/data/valid-messages/opposite-endian.message:
13916 Add NIL type to test.
13918 2003-01-31 Havoc Pennington <hp@pobox.com>
13920 * doc/dbus-specification.sgml: fully specify the header. Add
13921 flags and major protocol version, and change header/body len to
13924 * dbus/dbus-message-builder.c (append_saved_length): append length
13927 * dbus/dbus-message.c (dbus_message_create_header): change header
13928 length and body length to unsigned. Add the new fields from the
13930 (_dbus_message_loader_return_buffer): unsigned header/body len
13932 2003-01-30 Havoc Pennington <hp@pobox.com>
13934 * dbus/dbus-auth.c: rework to use only REJECTED, no
13937 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13938 use REJECTED, suggested by Mark McLoughlin
13940 2003-01-30 Havoc Pennington <hp@pobox.com>
13942 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13943 a better way to report errors here. e.g. "unix address lacks
13944 path" or something. also "no such file" when the path doesn't
13947 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13949 (dbus_parse_address): add @todo about documenting address format,
13950 and allowing , and ; to be escaped
13952 2003-01-30 Anders Carlsson <andersca@codefactory.se>
13954 * dbus/Makefile.am:
13955 Add dbus-address.[ch]
13957 * dbus/dbus-address.c: (dbus_address_entry_free),
13958 (dbus_address_entries_free), (create_entry),
13959 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13960 (dbus_parse_address), (_dbus_address_test):
13961 * dbus/dbus-address.h:
13962 New files for dealing with address parsing.
13964 * dbus/dbus-connection.c:
13965 Document timeout functions.
13967 * dbus/dbus-message.c:
13968 Document dbus_message_new_from_message.
13970 * dbus/dbus-server-debug.c:
13973 * dbus/dbus-server.c: (dbus_server_listen):
13974 Parse address and use correct server implementation.
13976 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13977 * dbus/dbus-string.h:
13978 New function with test.
13980 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13981 * dbus/dbus-test.h:
13984 * dbus/dbus-transport-debug.c:
13987 * dbus/dbus-transport.c: (_dbus_transport_open):
13988 Parse address and use correct transport implementation.
13990 2003-01-30 Havoc Pennington <hp@pobox.com>
13992 * dbus/dbus-message.c: use message->byte_order instead of
13993 DBUS_COMPILER_BYTE_ORDER throughout.
13994 (dbus_message_create_header): pad header to align the
13995 start of the body of the message to 8-byte boundary
13997 * dbus/dbus-marshal.h: make all the demarshalers take const
13998 DBusString arguments.
14000 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14001 validate message args here, so we don't have to do slow validation
14002 later, and so we catch bad messages as they are incoming. Also add
14003 better checks on header_len and body_len. Also fill in
14004 message->byte_order
14006 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14007 implemented properly)
14008 (_dbus_string_validate_nul): new function to check all-nul
14010 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14011 get_arg_end_pos and remove all validation
14012 (_dbus_marshal_validate_arg): actually do validation here.
14014 2003-01-29 Havoc Pennington <hp@pobox.com>
14016 * dbus/dbus-message.c (check_message_handling): fix assertion
14017 failure on set_client_serial
14019 2003-01-28 Havoc Pennington <hp@pobox.com>
14021 * dbus/dbus-server-debug.c: Add doc section comments
14023 * dbus/dbus-transport-debug.c: add doc section comments
14025 2003-01-28 Havoc Pennington <hp@redhat.com>
14027 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14028 the reverse order from how I had it
14029 (_dbus_string_base64_encode): reverse encoding order. I was
14030 basically byteswapping everything during encoding.
14032 2003-01-28 Anders Carlsson <andersca@codefactory.se>
14034 * dbus/dbus-connection-internal.h:
14035 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14036 (_dbus_connection_remove_timeout):
14037 Add functions for adding and removing timeouts.
14039 * dbus/dbus-message.c: (dbus_message_new_from_message):
14040 Add new function that takes a message and creates an exact
14041 copy of it, but with the refcount set to 1.
14042 (check_message_handling):
14045 * dbus/dbus-server-protected.h:
14046 * dbus/dbus-server.c: (_dbus_server_init_base),
14047 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14048 (dbus_server_set_timeout_functions):
14049 (_dbus_server_remove_timeout):
14050 New functions so that a server can add and remove timeouts.
14052 (dbus_server_listen):
14053 Add commented out call to dbus_server_debug_new.
14055 * dbus/dbus-timeout.c: (_dbus_timeout_new):
14056 Actually set the handler, doh.
14058 * dbus/dbus-transport.c: (_dbus_transport_open):
14059 Add commented out call to dbus_transport_debug_client_new.
14061 * dbus/Makefile.am:
14062 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14064 2003-01-28 Havoc Pennington <hp@pobox.com>
14066 * dbus/dbus-message.c (check_message_handling): function to check
14067 on the loaded message, iterates over it etc.
14069 2003-01-28 Havoc Pennington <hp@pobox.com>
14071 * test/Makefile.am (dist-hook): fix make distdir
14073 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14075 2003-01-27 Havoc Pennington <hp@pobox.com>
14077 * dbus/dbus-mempool.c (time_for_size): replace printf with
14080 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14081 empty lines; fix the SAVE_LENGTH stuff to be
14082 START_LENGTH/END_LENGTH so it actually works; couple other
14085 * test/Makefile.am (dist-hook): add dist-hook for .message files
14087 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14088 can be constant or locked.
14089 (_dbus_string_free): allow freeing a const string as
14090 documented/intended
14092 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14094 * dbus/dbus-test-main.c (main): take an argument which is the
14095 directory containing test data
14097 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14098 argument to this and load all the messages in test/data/
14099 checking that they can be loaded or not loaded as appropriate.
14101 2003-01-27 Anders Carlsson <andersca@codefactory.se>
14103 * bus/dispatch.c: (bus_dispatch_message_handler):
14104 Dispatch messages sent to services.
14106 * bus/driver.c: (bus_driver_send_service_deleted),
14107 (bus_driver_send_service_created), (bus_driver_send_service_lost),
14108 (bus_driver_send_service_acquired):
14109 Add helper functions for sending service related messages.
14111 (bus_driver_send_welcome_message):
14112 Send HELLO_REPLY instead of WELCOME.
14114 (bus_driver_handle_list_services):
14115 Send LIST_SERVICES_REPLY instead of SERVICES.
14117 (bus_driver_handle_own_service),
14118 (bus_driver_handle_service_exists):
14119 New message handlers.
14121 (bus_driver_handle_message):
14122 Invoke new message handlers.
14124 (bus_driver_remove_connection):
14125 Don't remove any services here since that's done automatically
14126 by bus_service_remove_owner now.
14129 New function signatures.
14131 * bus/services.c: (bus_service_add_owner):
14132 Send ServiceAcquired message if we're the only primary owner.
14134 (bus_service_remove_owner):
14135 Send ServiceAcquired/ServiceLost messages.
14137 (bus_service_set_prohibit_replacement),
14138 (bus_service_get_prohibit_replacement):
14139 Functions for setting prohibit replacement.
14141 (bus_service_has_owner):
14142 New function that checks if a connection is in the owner queue of
14146 Add new function signatures.
14148 * dbus/dbus-list.c: (_dbus_list_test):
14149 Add tests for _dbus_list_remove_last and traversing the list backwards.
14151 * dbus/dbus-list.h:
14152 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14153 go any further, so return NULL then.
14155 * dbus/dbus-protocol.h:
14156 Add new messages, service flags and service replies.
14158 2003-01-26 Havoc Pennington <hp@pobox.com>
14160 * dbus/dbus-message-builder.c: implement, completely untested.
14162 * test/data/*: add data to be used in testing.
14163 ".message" files are our simple loadable text format.
14164 ".message-raw" will be binary dumps of messages.
14166 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14168 2003-01-26 Havoc Pennington <hp@pobox.com>
14170 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14172 * dbus/dbus-errors.c (dbus_result_to_string): add
14175 * dbus/dbus-message-builder.c: new file, will contain code to load
14176 up messages from files. Not implemented yet.
14178 2003-01-26 Havoc Pennington <hp@pobox.com>
14180 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14181 the sender by setting to NULL
14183 2003-01-26 Havoc Pennington <hp@pobox.com>
14185 The unit tests pass, but otherwise untested. If it breaks, the
14186 tests should have been better. ;-)
14188 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14191 * dbus/dbus-message.c: redo everything so we maintain
14192 message->header as the only copy of the various fields.
14193 This avoids the possibility of out-of-memory in some cases,
14194 for example dbus_message_lock() can't run out of memory anymore,
14195 and avoids extra copying. Figured I may as well go ahead and do
14196 this since it was busted for dbus_message_lock to not return
14197 failure on OOM, and dbus_message_write_header was totally
14198 unchecked for OOM. Also fixed some random other bugs.
14200 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14201 that strings are nul-terminated. Also, end_pos can be equal
14202 to string length just not greater than, I think.
14203 (_dbus_marshal_set_int32): new function
14204 (_dbus_marshal_set_uint32): new function
14205 (_dbus_marshal_set_string): new function
14207 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14208 a warning, init timeout_list to NULL
14209 (dbus_connection_send_message): don't use uninitialized variable
14212 * dbus/dbus-string.c (_dbus_string_replace_len): new function
14214 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14216 * bus/driver.c: (bus_driver_handle_hello),
14217 (bus_driver_send_welcome_message):
14220 2003-01-26 Anders Carlsson <andersca@codefactory.se>
14222 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14223 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14224 (dbus_connection_unref):
14225 * dbus/dbus-marshal.c: (_dbus_marshal_test):
14226 * dbus/dbus-message.c: (dbus_message_unref),
14229 (dbus_message_get_fields):
14230 Remove debugging printout.
14232 (_dbus_message_loader_return_buffer):
14233 Don't store the header string.
14235 (_dbus_message_test):
14238 2003-01-26 Richard Hult <rhult@codefactory.se>
14240 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14241 the file descriptor list, since it can change under us.
14243 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14245 * glib/dbus-gmain.c: (dbus_connection_prepare),
14246 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14247 (remove_watch), (dbus_connection_hookup_with_g_main):
14248 Rewrite the glib handling to use its own GSource instead of a
14249 GIOChannel so we can catch messages put in the queue while waiting
14252 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14255 * bus/connection.c: (connection_disconnect_handler),
14256 (connection_watch_callback), (bus_connection_setup):
14257 * bus/dispatch.c: (send_one_message),
14258 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14259 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14261 * bus/driver.c: (bus_driver_send_service_deleted),
14262 (bus_driver_send_service_created), (bus_driver_handle_hello),
14263 (bus_driver_send_welcome_message),
14264 (bus_driver_handle_list_services), (bus_driver_remove_connection),
14265 (bus_driver_handle_message):
14267 Refactor code, put the message dispatching in its own file. Use
14268 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14271 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14273 * dbus/dbus-internals.h:
14274 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14276 * dbus/dbus-message.c: (dbus_message_get_sender):
14277 * dbus/dbus-message.h:
14278 Implement dbus_message_get_sender.
14280 * dbus/dbus-protocol.h:
14281 Add message and service defines.
14283 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14285 * dbus/dbus-connection.c: (dbus_connection_send_message):
14286 * dbus/dbus-message-internal.h:
14287 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14288 (dbus_message_write_header):
14289 Remove _dbus_messag_unlock and don't set the client serial on a
14290 message if one already exists.
14292 2003-01-24 Havoc Pennington <hp@pobox.com>
14294 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14297 * bus/driver.c (bus_driver_handle_list_services): fix a leak
14300 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14302 * dbus/dbus-list.c: (alloc_link), (free_link):
14303 Use a memory pool for the links.
14305 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14307 * bus/connection.c: (bus_connection_foreach):
14308 * bus/connection.h:
14309 Add new bus_connection_foreach function.
14311 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14312 Add function that broadcasts a message to all clients.
14314 (bus_driver_send_service_created), (bus_driver_handle_hello),
14315 (bus_driver_send_welcome_message),
14316 (bus_driver_handle_list_services), (bus_driver_message_handler):
14317 Implement functions that take care of listing services, and notifying
14318 clients when new services are created.
14320 * bus/services.c: (bus_services_list):
14322 Add new function that returns an array of strings with the currently
14323 registered services.
14325 * glib/dbus-glib.h:
14326 * glib/dbus-gmain.c:
14327 Update copyright year.
14329 2003-01-25 Anders Carlsson <andersca@codefactory.se>
14331 * dbus/dbus-connection.c: (dbus_connection_send_message):
14332 Unlock the message in case it was sent earlier.
14334 (dbus_connection_send_message_with_reply_and_block):
14335 Remove the reply message from the list.
14337 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14338 Set array_len and new_pos correctly.
14340 (_dbus_marshal_test):
14341 Remove debug output.
14343 * dbus/dbus-message-internal.h:
14344 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14345 New function that returns the reply serial.
14347 (_dbus_message_unlock):
14348 New function that unlocks a message and resets its header.
14350 (dbus_message_append_string_array),
14351 (dbus_message_get_fields_valist),
14352 (dbus_message_iter_get_field_type),
14353 (dbus_message_iter_get_string_array),
14354 (dbus_message_get_fields),
14355 (dbus_message_append_fields_valist):
14356 Handle string arrays.
14358 (dbus_message_set_sender):
14359 Make this function public since the bus daemon needs it.
14361 (decode_header_data):
14362 Set the reply serial to -1 initially.
14364 * dbus/dbus-message.h:
14365 Add dbus_message_set_sender.
14367 2003-01-24 Havoc Pennington <hp@pobox.com>
14369 * doc/dbus-specification.sgml: add some stuff
14371 2003-01-22 Havoc Pennington <hp@pobox.com>
14373 * doc/dbus-specification.sgml: Start to document the protocol.
14375 2003-01-22 Havoc Pennington <hp@pobox.com>
14377 * dbus/dbus-connection.c
14378 (dbus_connection_send_message_with_reply_and_block): add some @todo
14380 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14382 2003-01-21 Havoc Pennington <hp@pobox.com>
14384 (patch untested because can't compile)
14386 * bus/driver.c (create_unique_client_name): make this function
14387 never recycle client names. Also, caller should initialize
14390 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14392 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14394 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14395 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14396 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14397 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14398 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14399 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14400 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14401 * dbus/dbus-marshal.h:
14402 * dbus/dbus-protocol.h:
14403 Add support for marshalling and demarshalling integer, double
14406 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14411 * bus/connection.c: (connection_disconnect_handler):
14412 Remove the connection from the bus driver's list.
14414 (connection_watch_callback): Dispatch messages.
14416 (free_connection_data): Free connection name.
14418 (bus_connection_setup): Add connection to the bus driver's list.
14419 (bus_connection_remove_owned_service):
14420 (bus_connection_set_name), (bus_connection_get_name):
14421 Add functions for setting and getting the connection's name.
14423 * bus/connection.h:
14424 Add function headers.
14426 * bus/driver.c: (create_unique_client_name),
14427 (bus_driver_handle_hello_message),
14428 (bus_driver_send_welcome_message), (bus_driver_message_handler),
14429 (bus_driver_add_connection), (bus_driver_remove_connection):
14432 * bus/services.c: (bus_service_free):
14434 New file that handles communication and registreation with the bus
14437 2003-01-21 Anders Carlsson <andersca@codefactory.se>
14439 * dbus/dbus-connection.c: (dbus_connection_send_message):
14440 Add a new client_serial parameter.
14442 (dbus_connection_send_message_with_reply):
14443 Remove a @todo since we've implemented the blocking function.
14445 (dbus_connection_send_message_with_reply_and_block):
14446 New function that sends a message and waits for a reply and
14447 then returns the reply.
14449 * dbus/dbus-connection.h:
14452 * dbus/dbus-errors.c: (dbus_result_to_string):
14453 * dbus/dbus-errors.h:
14454 Add new DBUS_RESULT.
14456 * dbus/dbus-message-internal.h:
14457 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14458 (_dbus_message_set_sender), (dbus_message_write_header),
14459 (dbus_message_new_reply), (decode_header_data),
14460 (_dbus_message_loader_return_buffer), (_dbus_message_test):
14461 * dbus/dbus-message.h:
14462 Add new functions that set the reply serial and sender.
14463 Also marshal and demarshal them correctly and add test.
14465 * dbus/dbus-protocol.h:
14466 Add new DBUS_MESSAGE_TYPE_SENDER.
14468 * glib/dbus-glib.h:
14469 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14470 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14471 (dbus_connection_hookup_with_g_main):
14472 * glib/test-dbus-glib.c: (main):
14473 Rewrite to use GIOChannel and remove the GSource crack.
14475 * test/echo-client.c: (main):
14476 * test/watch.c: (check_messages):
14477 Update for changed APIs
14479 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14481 * dbus/Makefile.am: Add dbus-timeout.[cħ]
14483 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14484 Create a DBusTimeoutList.
14485 (dbus_connection_set_timeout_functions): Add new function to
14486 set timeout callbacks
14488 * dbus/dbus-connection.h: Add public DBusTimeout API.
14490 * dbus/dbus-message.c: (dbus_message_get_service):
14491 * dbus/dbus-message.h: New function.
14493 * dbus/dbus-server.c: Fix small doc typo.
14495 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14497 2003-01-19 Anders Carlsson <andersca@codefactory.se>
14499 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14500 of the string, just as long as specified.
14502 2003-01-19 Havoc Pennington <hp@pobox.com>
14504 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14507 * dbus/dbus-server.c (dbus_server_set_max_connections)
14508 (dbus_server_get_max_connections, dbus_server_get_n_connections):
14509 keep track of current number of connections, and add API for
14510 setting a max (but haven't implemented enforcing the max yet)
14512 2003-01-18 Havoc Pennington <hp@pobox.com>
14514 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14515 reading/writing if read_watch != NULL or write_watch != NULL.
14517 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14518 the message loader code to actually load message->header and
14519 message->body into the newly-created message.
14521 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14524 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14525 (dbus_connection_get_max_message_size)
14526 (dbus_connection_set_max_live_messages_size)
14527 (dbus_connection_get_max_live_messages_size): implement some
14528 resource limitation functions
14530 * dbus/dbus-resources.c: new file implementing some of the
14531 resource limits stuff
14533 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14534 missing docs, add @todo to handle OOM etc.
14536 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14539 2003-01-18 Havoc Pennington <hp@pobox.com>
14541 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14542 connection if it hasn't been already.
14544 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14545 replace with DisconnectFunction.
14547 2003-01-18 Havoc Pennington <hp@pobox.com>
14549 Building --disable-verbose-mode --disable-asserts --disable-tests
14550 cuts the library from 112K to 45K or so
14552 * configure.in: check for varargs macro support,
14553 add --enable-verbose-mode, --enable-asserts.
14555 * dbus/dbus-internals.h (_dbus_assert): support
14556 DBUS_DISABLE_ASSERT
14557 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14559 2003-01-18 Havoc Pennington <hp@pobox.com>
14561 * dbus/dbus-test.c: include config.h so that tests actually run
14563 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14564 so the failure mode when that assumption fails will be plenty
14567 2003-01-18 Havoc Pennington <hp@pobox.com>
14569 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14571 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14574 * test/Makefile.am: don't use special variable "TESTS" for echo-*
14575 since we don't want to use those in make check
14577 2003-01-15 Havoc Pennington <hp@redhat.com>
14583 2003-01-15 Havoc Pennington <hp@redhat.com>
14585 * test/Makefile.am: fix so that test source code ends up in the
14586 distribution on make distcheck
14588 2003-01-15 Havoc Pennington <hp@redhat.com>
14594 2003-01-15 Havoc Pennington <hp@redhat.com>
14596 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14597 fix build when --disable-tests
14599 * Makefile.am (EXTRA_DIST): put HACKING in here
14601 * HACKING: document procedure for making a tarball release.
14603 2003-01-14 Anders Carlsson <andersca@codefactory.se>
14605 * bus/connection.c: (connection_error_handler),
14606 (bus_connection_setup):
14607 * bus/main.c: (main):
14608 Make sure that the DBusConnectionData struct is NULLed
14609 out to prevent a segfault.
14611 * dbus/dbus-errors.c: (dbus_result_to_string):
14612 * dbus/dbus-errors.h:
14613 * dbus/dbus-message.c: (dbus_message_get_fields),
14614 (dbus_message_get_fields_valist), (_dbus_message_test):
14615 * dbus/dbus-message.h:
14616 Make dbus_message_get_fields return a result code so we can
14617 track invalid fields as well as oom.
14619 2003-01-11 Havoc Pennington <hp@pobox.com>
14621 * configure.in: change --enable-test/--enable-ansi action-if-given
14622 to enable_foo=$enableval instead of enable_foo=yes
14624 2003-01-08 Havoc Pennington <hp@pobox.com>
14626 * dbus/dbus-string.c (_dbus_string_align_length): new function
14628 * dbus/dbus-test-main.c: move main() for test app here
14630 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14631 symbol to run tests, because dbus-test isn't in the main
14634 Code review nitpicks.
14636 * dbus/dbus-message.c (dbus_message_write_header): add newlines
14637 for people with narrow emacs ;-). Assert client_serial was filled
14638 in. Assert message->name != NULL.
14639 (dbus_message_append_fields): have "first_field_type" arg separate
14640 from va list, needed for C++ binding that also uses varargs IIRC
14641 and helps with type safety
14642 (dbus_message_new): add @todo about using DBusString to store
14643 service/name internally
14644 (dbus_message_new): don't leak ->service and ->name on OOM later
14646 (dbus_message_unref): free the service name
14647 (dbus_message_get_fields): same change to varargs
14648 i.e. first_field_type
14649 (_dbus_message_loader_return_buffer): assert that the message data
14650 is aligned (if not it's a bug in our code). Put in verbose griping
14651 about why we set corrupted = TRUE.
14652 (decode_header_data): add FIXME that char* is evil. Was going to
14653 add FIXME about evil locale-specific string.h strncmp, but just
14654 switched to wacky string-as-uint32 optimization. Move check for
14655 "no room for field name" above get_const_data_len() to avoid
14656 assertion failure in get_const_data_len if we have trailing 2
14657 bytes or the like. Check for service and name fields being
14658 provided twice. Don't leak service/name on error. Require field
14659 names to be aligned to 4 bytes.
14661 * dbus/dbus-marshal.c: move byte swap stuff to header
14662 (_dbus_pack_int32): uscore-prefix
14663 (_dbus_unpack_int32): uscore-prefix
14664 (_dbus_unpack_uint32): export
14665 (_dbus_demarshal_string): add @todo complaining about use of
14667 (_dbus_marshal_get_field_end_pos): add @todo about bad error
14668 handling allowing corrupt data to go unchecked
14670 2003-01-08 Havoc Pennington <hp@redhat.com>
14672 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14673 to the select() as needed for authentication. (should be using
14674 _dbus_poll() not select, but for another day)
14676 * dbus/dbus.h: include dbus/dbus-protocol.h
14678 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14680 * dbus/Makefile.am (dbusinclude_HEADERS): Install
14683 2003-01-08 Anders Carlsson <andersca@codefactory.se>
14685 * dbus/dbus-internals.c: (_dbus_type_to_string):
14686 New function that returns a string describing a type.
14688 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14689 * dbus/dbus-marshal.h:
14690 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14691 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14692 (dbus_message_iter_get_byte_array):
14693 * dbus/dbus-message.h:
14694 Add new convenience functions for appending and getting message fields.
14695 Also add demarshalling routines for byte arrays.
14697 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14699 * dbus/dbus-connection-internal.h:
14700 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14701 (_dbus_connection_get_next_client_serial),
14702 (dbus_connection_send_message):
14703 * dbus/dbus-internals.h:
14704 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14705 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14706 (_dbus_marshal_uint32), (_dbus_demarshal_double),
14707 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14708 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14709 (_dbus_verbose_bytes), (_dbus_marshal_test):
14710 * dbus/dbus-marshal.h:
14711 * dbus/dbus-message-internal.h:
14712 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14713 (dbus_message_write_header), (_dbus_message_lock),
14714 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14715 (dbus_message_get_name), (dbus_message_append_int32),
14716 (dbus_message_append_uint32), (dbus_message_append_double),
14717 (dbus_message_append_string), (dbus_message_append_byte_array),
14718 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14719 (dbus_message_iter_unref), (dbus_message_iter_has_next),
14720 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14721 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14722 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14723 (decode_header_data), (_dbus_message_loader_return_buffer),
14724 (message_iter_test), (_dbus_message_test):
14725 * dbus/dbus-message.h:
14726 * dbus/dbus-protocol.h:
14727 * dbus/dbus-test.c: (main):
14728 * dbus/dbus-test.h:
14729 * glib/test-dbus-glib.c: (message_handler), (main):
14730 * test/echo-client.c: (main):
14731 * test/watch.c: (check_messages):
14732 Make messages sendable and receivable for real.
14734 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14736 * dbus/dbus-marshal.c: (_dbus_marshal_double),
14737 (_dbus_marshal_string), (_dbus_marshal_byte_array):
14738 * dbus/dbus-message.c: (dbus_message_append_int32),
14739 (dbus_message_append_uint32), (dbus_message_append_double),
14740 (dbus_message_append_string), (dbus_message_append_byte_array):
14741 Handle OOM restoration.
14743 2003-01-07 Anders Carlsson <andersca@codefactory.se>
14745 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14746 (_dbus_demarshal_string), (_dbus_marshal_test):
14747 * dbus/dbus-marshal.h:
14748 * dbus/dbus-message.c: (dbus_message_get_name),
14749 Document these functions.
14751 (dbus_message_append_int32), (dbus_message_append_uint32),
14752 (dbus_message_append_double), (dbus_message_append_string),
14753 (dbus_message_append_byte_array):
14754 * dbus/dbus-message.h:
14755 Add functions for adding message fields of different types.
14757 * dbus/dbus-protocol.h:
14758 Add the different types.
14760 2003-01-05 Havoc Pennington <hp@pobox.com>
14762 * bus/connection.c: implement routines for handling connections,
14763 first thing is keeping a list of owned services on each connection
14764 and setting up watches etc.
14766 * bus/services.c: implement a mapping from service names to lists
14769 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14771 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14772 to use static mutexes for global data
14774 * dbus/dbus-connection.c (dbus_connection_set_data): add new
14775 collection of functions to set/get application-specific data
14776 on the DBusConnection.
14778 2003-01-04 Havoc Pennington <hp@pobox.com>
14780 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14781 (_dbus_poll): new function
14783 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14786 * bus/loop.c: initial code for the daemon main loop
14788 2003-01-04 Havoc Pennington <hp@pobox.com>
14790 * test/watch.c (error_handler): make it safe if the error handler
14791 is called multiple times (if we s/error handler/disconnect
14792 handler/ we should just guarantee it's called only once)
14794 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14795 error handler on disconnect (it's quite possible we should
14796 just change the error handler to a "disconnect handler," I'm
14797 not sure we have any other meaningful errors)
14799 * configure.in: check for getpwnam_r
14801 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14802 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14803 mechanism as in SASL spec, using socket credentials
14805 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14806 (_dbus_send_credentials_unix_socket): new function
14808 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14810 (_dbus_write): only check errno if <0 returned
14811 (_dbus_write_two): ditto
14813 2003-01-02 Anders Carlsson <andersca@codefactory.se>
14815 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14816 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14817 (_dbus_marshal_test):
14818 * dbus/dbus-marshal.h:
14819 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14820 to _dbus_marshal_utf8_string. Also fix some tests.
14822 2002-12-28 Harri Porten <porten@kde.org>
14824 * configure.in: added check for C++ compiler and a very cheesy
14825 check for the Qt integration
14827 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14829 * qt/Makefile.am: added
14831 * qt/.cvsignore: added
14833 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14834 latter, added #ifdef QT_THREAD_SUPPORT guard.
14836 * dbus/Makefile.am: added missing headers for make dist
14838 2002-12-28 Kristian Rietveld <kris@gtk.org>
14840 * dbus/Makefile.am: fixup export-symbols-regex.
14842 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14844 * acinclude.m4: Add this file and put the
14845 PKG_CHECK_MODULE macro in it.
14847 2002-12-27 Anders Carlsson <andersca@codefactory.se>
14849 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14850 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14851 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14852 (_dbus_marshal_test):
14853 Make the demarshalling routines align the pos argument.
14854 Add string marshalling tests and fix the obvious bugs
14857 2002-12-26 Havoc Pennington <hp@pobox.com>
14859 * dbus/dbus-auth.c: fixes fixes fixes
14861 * dbus/dbus-transport-unix.c: wire up support for
14862 encoding/decoding data on the wire
14864 * dbus/dbus-auth.c (_dbus_auth_encode_data)
14865 (_dbus_auth_decode_data): append to target string
14866 instead of nuking it.
14868 2002-12-26 Havoc Pennington <hp@pobox.com>
14870 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14871 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14874 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14875 avoid swap_bytes() overhead (ignoring possible assembly stuff for
14876 now). Main point is because I wanted unpack_uint32 to implement
14877 _dbus_verbose_bytes
14878 (_dbus_verbose_bytes): new function
14880 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14882 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14883 mechanism to handle a corrupt message stream
14884 (_dbus_message_loader_new): fix preallocation to only prealloc,
14887 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14888 (_dbus_string_test): enhance tests for copy/move and fix the
14891 * dbus/dbus-transport-unix.c: Hold references in more places to
14892 avoid reentrancy problems
14894 * dbus/dbus-transport.c: ditto
14896 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14897 leak reference count in no-message case
14899 * test/watch.c (do_mainloop): handle adding/removing watches
14900 during iteration over the watches. Also, ref the connection/server
14901 stored on a watch, so we don't try to mangle a destroyed one.
14903 * dbus/dbus-transport-unix.c (do_authentication): perform
14906 * dbus/dbus-auth.c (get_state): add a state
14907 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14908 (_dbus_auth_get_unused_bytes): append the unused bytes
14909 to the passed in string, rather than prepend
14911 * dbus/dbus-transport.c (_dbus_transport_init_base): create
14912 the auth conversation DBusAuth
14914 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14915 (_dbus_transport_new_for_domain_socket): when creating a
14916 transport, pass in whether it's a client-side or server-side
14917 transport so we know which DBusAuth to create
14919 2002-12-03 Havoc Pennington <hp@pobox.com>
14921 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14922 _after_ finalizing the derived members
14923 (unix_connection_set): unref watch if we fail to add it
14925 * dbus/dbus-connection.c (dbus_connection_unref): delete the
14926 transport first, so that the connection owned by the
14927 transport will be valid as the transport finalizes.
14929 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14930 if necessary, and remove watches from the connection.
14932 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14934 2002-12-26 Anders Carlsson <andersca@codefactory.se>
14936 * dbus/dbus-marshal.c: (_dbus_marshal_string),
14937 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14938 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14939 (_dbus_marshal_test):
14940 * dbus/dbus-marshal.h:
14941 Add string marshal functions and have the demarshal functions
14942 return the new position.
14944 2002-12-25 Havoc Pennington <hp@pobox.com>
14946 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14947 it is a simple protocol that just maps directly to SASL.
14949 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14950 initial implementation, not actually used yet.
14952 * dbus/dbus-string.c (_dbus_string_find): new function
14953 (_dbus_string_equal): new function
14954 (_dbus_string_base64_encode): new function
14955 (_dbus_string_base64_decode): new function
14957 2002-12-25 Anders Carlsson <andersca@codefactory.se>
14959 * dbus/Makefile.am:
14960 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14961 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14962 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14963 (_dbus_demarshal_uint32), (_dbus_marshal_test):
14964 * dbus/dbus-marshal.h:
14965 * dbus/dbus-protocol.h:
14966 * dbus/dbus-test.c: (main):
14967 * dbus/dbus-test.h:
14968 Add un-optimized marshalling/demarshalling routines.
14970 2002-12-25 Harri Porten <porten@kde.org>
14972 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14974 2002-12-24 Zack Rusin <zack@kde.org>
14976 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14977 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14980 2002-12-24 Havoc Pennington <hp@pobox.com>
14982 * glib/dbus-gthread.c: fix include
14984 * glib/dbus-glib.h: rename DBusMessageHandler for now.
14985 I think glib API needs to change, though, as you don't
14986 want to use DBusMessageFunction, you want to use the
14987 DBusMessageHandler object. Probably
14988 dbus_connection_open_with_g_main_loop()
14989 and dbus_connection_setup_g_main_loop() or something like that
14990 (but think of better names...) that just create a connection
14991 that has watch/timeout functions etc. already set up.
14993 * dbus/dbus-connection.c
14994 (dbus_connection_send_message_with_reply): new function just to
14995 show how the message handler helps us deal with replies.
14997 * dbus/dbus-list.c (_dbus_list_remove_last): new function
14999 * dbus/dbus-string.c (_dbus_string_test): free a string that
15002 * dbus/dbus-hash.c: use memory pools for the hash entries
15003 (rebuild_table): be more paranoid about overflow, and
15004 shrink table when we can
15005 (_dbus_hash_test): reduce number of sprintfs and write
15006 valid C89. Add tests for case where we grow and then
15007 shrink the hash table.
15009 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15011 * dbus/dbus-connection.c (dbus_connection_register_handler)
15012 (dbus_connection_unregister_handler): new functions
15014 * dbus/dbus-message.c (dbus_message_get_name): new
15016 * dbus/dbus-list.c: fix docs typo
15018 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15019 an object representing a handler for messages.
15021 2002-12-16 Anders Carlsson <andersca@codefactory.se>
15023 * glib/dbus-glib.h:
15024 * glib/dbus-gthread.c: (dbus_gthread_init):
15025 Don't use the gdbus prefix for public functions.
15027 2002-12-16 Anders Carlsson <andersca@codefactory.se>
15031 Add GLib checks and fixup .pc files
15033 * glib/Makefile.am:
15034 * glib/dbus-glib.h:
15035 * glib/dbus-gmain.c: (gdbus_connection_prepare),
15036 (gdbus_connection_check), (gdbus_connection_dispatch),
15037 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15038 (dbus_connection_gsource_new):
15039 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15040 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15041 * glib/test-dbus-glib.c: (message_handler), (main):
15044 2002-12-15 Harri Porten <porten@kde.org>
15046 * autogen.sh: check for libtoolize before attempting to use it
15048 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15051 * .cvsignore: ignore more stamp files
15053 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15055 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15056 without make install.
15058 2002-12-15 Havoc Pennington <hp@pobox.com>
15060 * dbus/dbus-threads.c: add thread stubs that a higher library
15061 layer can fill in. e.g. the GLib wrapper might fill them in with
15062 GThread stuff. We still need to use this thread API to
15063 thread-safe-ize the library.
15065 2002-12-12 Havoc Pennington <hp@pobox.com>
15067 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15068 below new interfaces and include fewer system headers.
15070 * dbus/dbus-sysdeps.c (_dbus_read): new function
15071 (_dbus_write): new function
15072 (_dbus_write_two): new function
15073 (_dbus_connect_unix_socket): new function
15074 (_dbus_listen_unix_socket): new function
15076 * dbus/dbus-message-internal.h: change interfaces to use
15079 2002-12-11 Havoc Pennington <hp@pobox.com>
15081 * dbus/dbus-types.h: add dbus_unichar
15083 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15085 * dbus/dbus-connection.c (dbus_connection_send_message): return
15088 * dbus/dbus-transport.c: include dbus-watch.h
15090 * dbus/dbus-connection.c: include dbus-message-internal.h
15092 * HACKING: add file with coding guidelines stuff.
15094 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15095 handling here, for security purposes (as in vsftpd). Not actually
15096 using this class yet.
15098 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15099 system/libc usage here, as in vsftpd, for ease of auditing (and
15100 should also simplify portability). Haven't actually moved all the
15101 system/libc usage into here yet.
15103 2002-11-25 Havoc Pennington <hp@pobox.com>
15105 * dbus/dbus-internals.c (_dbus_verbose): fix to not
15106 always print the first verbose message.
15108 2002-11-24 Havoc Pennington <hp@pobox.com>
15110 * test/echo-client.c, test/echo-server.c: cheesy test
15113 * configure.in (AC_CHECK_FUNCS): check for writev
15115 * dbus/dbus-message.c (_dbus_message_get_network_data): new
15118 * dbus/dbus-list.c (_dbus_list_foreach): new function
15120 * dbus/dbus-internals.c (_dbus_verbose): new function
15122 * dbus/dbus-server.c, dbus/dbus-server.h: public object
15123 representing a server that listens for connections.
15125 * dbus/.cvsignore: create
15127 * dbus/dbus-errors.h, dbus/dbus-errors.c:
15128 public API for reporting errors
15130 * dbus/dbus-connection.h, dbus/dbus-connection.c:
15131 public object representing a connection that
15132 sends/receives messages. (Same object used for
15133 both client and server.)
15135 * dbus/dbus-transport.h, dbus/dbus-transport.c:
15136 Basic abstraction for different kinds of stream
15137 that we might read/write messages from.
15139 2002-11-23 Havoc Pennington <hp@pobox.com>
15141 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15144 * dbus/dbus-test.c (main): add list test, and include
15145 dbus-test.h as intended
15147 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15148 (_dbus_hash_table_remove_int): return value indicates
15149 whether the entry existed to remove
15151 * dbus/dbus-list.c: add linked list utility class,
15152 with docs and tests
15154 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15157 2002-11-23 Havoc Pennington <hp@pobox.com>
15159 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15160 DBUS_END_DECLS to nothing, that should fix this once and for all
15162 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15164 * dbus/dbus-message.c, dbus/dbus-hash.c:
15165 add some missing @brief
15167 2002-11-23 Havoc Pennington <hp@pobox.com>
15169 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15170 to avoid confusing Doxygen
15172 * dbus/dbus-hash.c: @} not }@
15174 * dbus/dbus-message.c (struct DBusMessage): split out
15177 2002-11-23 Havoc Pennington <hp@pobox.com>
15179 * configure.in: pile on more warning flags if using gcc
15181 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15182 to document static functions
15184 * configure.in: add summary to end of configure so it
15185 looks nice and attractive
15187 * dbus/dbus-hash.c: finish implementation and write unit
15190 * configure.in: add --enable-tests to enable unit tests
15192 * dbus/dbus-test.c: test program to run unit tests
15193 for all files in dbus/*, initially runs a test for
15196 * dbus/dbus-internals.h: file to hold some internal utility stuff
15198 2002-11-22 Havoc Pennington <hp@redhat.com>
15200 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15201 "ported" away from Tcl
15203 * dbus/dbus-types.h: header for types such as dbus_bool_t
15205 2002-11-22 Havoc Pennington <hp@redhat.com>
15207 * dbus/dbus.h: fixups for doc warnings
15209 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15211 (QUIET): make it quiet so we can see warnings
15213 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15215 2002-11-22 Havoc Pennington <hp@redhat.com>
15217 * Makefile.am: include "Doxyfile" target in all-local
15219 * configure.in: generate the Doxyfile
15221 * Doxyfile.in: move Doxyfile here, so we can use
15222 configure to generate a Doxyfile with the right
15223 version number etc.
15225 2002-11-22 Havoc Pennington <hp@redhat.com>
15227 * dbus/dbus-message.c: move inline docs into .c file
15229 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15230 so all docs are under doc/
15231 (MAN_EXTENSION): generate man pages. Use extension
15232 ".3dbus" which matches ".3qt" on my system,
15233 I guess this is OK, I don't know really.
15234 (FILE_PATTERNS): look for .c files not .h, makes sense
15235 for plain C I think
15237 2002-11-22 Havoc Pennington <hp@pobox.com>
15239 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15240 because any app can be a server, and any app can be a client,
15241 the bus is a special kind of server.
15243 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
15245 * Doxyfile : adding. Still needs Makefile rules to be generated
15246 automatically (just run "doxygen" in the toplevel dir for now to
15249 * dbus/dbus-message.h : Adding sample docs (javadoc since
15250 resembles gtk-doc a little more)
15252 * dbus/dbus.h : Adding sample docs
15254 2002-11-21 Havoc Pennington <hp@redhat.com>
15256 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15257 so we can allow ourselves to include files directly,
15258 instead of having to use dbus.h
15260 * dbus/dbus.h: fill in
15262 * dbus/dbus-message.h: sketch out a sample header file.
15263 Include griping if you include it directly instead of
15266 * dbus/dbus-macros.h: new file with macros for extern "C",
15267 TRUE/FALSE, NULL, etc.
15269 * doc/file-boilerplate.c: put include guards in here
15271 2002-11-21 Havoc Pennington <hp@redhat.com>
15273 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15275 * COPYING: include the GPL as well, and license code
15276 under both AFL and GPL.
15278 2002-11-21 Havoc Pennington <hp@redhat.com>
15280 * acconfig.h: get rid of this
15282 * autogen.sh (run_configure): add --no-configure option
15284 * configure.in: remove AC_ARG_PROGRAM to make
15285 autoconf complain less. add AC_PREREQ.
15286 add AC_DEFINE third arg.
15288 2002-11-21 Anders Carlsson <andersca@codefactory.se>
15291 Fix references so we can distcheck.
15293 2002-11-21 Havoc Pennington <hp@redhat.com>
15295 * Initial module creation