From fdbcd4580bc0e4096114ce1939b0ad8f92ab41cf Mon Sep 17 00:00:00 2001 From: "John (J5) Palmieri" Date: Fri, 25 May 2007 20:49:50 +0000 Subject: * Split NEWS and ChangeLog into a .pre-1-0 file as per HACKING We forgot to do this during the 1.0 release and it makes sense now as we get ready to release the first 1.1.0 development tarball --- ChangeLog | 15156 +--------------------------------------------------- ChangeLog.pre-1-0 | 15146 +++++++++++++++++++++++++++++++++++++++++++++++++++ NEWS.pre-1-0 | 614 +++ 3 files changed, 15768 insertions(+), 15148 deletions(-) create mode 100644 ChangeLog.pre-1-0 create mode 100644 NEWS.pre-1-0 diff --git a/ChangeLog b/ChangeLog index 08ee0333..c3369d22 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-05-25 John (J5) Palmieri + + * Split NEWS and ChangeLog into a .pre-1-0 file as per HACKING + We forgot to do this during the 1.0 release and it makes sense + now as we get ready to release the first 1.1.0 development tarball + 2007-05-25 John (J5) Palmieri * create directory test/data/valid-config-files/session.d so that @@ -476,7 +482,7 @@ 2006-12-31 Ralf Habacker * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass): - fix mispaced const statement. - Patch from Peter Kümmel + fix mispaced const statement. - Patch from Peter Kümmel 2006-12-19 Ray Strode @@ -555,7 +561,7 @@ 2006-12-12 John (J5) Palmieri * bus/signal.c: Fix match_rule_equal errata - (CVE-2006-6107 - Patch from Kimmo Hämäläinen + (CVE-2006-6107 - Patch from Kimmo Hämäläinen ) 2006-11-19 Thiago Macieira @@ -609,15149 +615,3 @@ instead of _dbus_threads_init_debug since it is more of a real world test -2006-11-09 John (J5) Palmieri - - * Released 1.0.0 - -2006-11-09 John (J5) Palmieri - - * AUTHORS: added Peter and Tor of windows porting fame - -2006-11-08 Havoc Pennington - - * doc/dbus-specification.xml: add a note about protocol stability - - * doc/TODO: Remove "important for 1.0" section, replace with - "important for 1.2" section - -2006-11-08 John (J5) Palmieri - - * README: remove some of the out of date flags - - * doc/TODO: Remove todo items which are done - -2006-11-08 John (J5) Palmieri - - * tools/dbus-monitor.c: Handle sigint so we flush stdout - (Patch from Olli Salli ) - -2006-11-08 John (J5) Palmieri - - * tools/dbus-monitor.1: update the manpage for dbus-monitor - (Patch from Olli Salli ) - -2006-11-08 John (J5) Palmieri - - * AUTHORS: Update with all people listed in the ChangeLog - -2006-11-08 John (J5) Palmieri - - * tools/dbus-monitor.c: add profiling tools to dbus-monitor - (Patch from Olli Salli ) - -2006-11-07 Havoc Pennington - - * HACKING: Update release instructions to include stuff about - stable releases, branching, etc. May not be totally correct, - please fix if needed, but keep instructions up-to-date so we do - each stable release consistently in the future. - -2006-11-07 Havoc Pennington - - * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various - documentation updates. Bump faq/spec versions (not to 1.0; I don't - think the spec will be "finished"/1.0 when we ship the 1.0 library). - -2006-11-06 John (J5) Palmieri - - * bus/bus.c: Missed patch - pass in the context to the directory watch - -2006-11-02 John (J5) Palmieri - - * Released D-Bus 1.0 RC 3(0.95) - -2006-11-02 John (J5) Palmieri - - * bus/activation.c (bus_activation_new): don't fail if we can not read - the directory as it may not exist - -2006-11-02 John (J5) Palmieri - - * bus/config-parser.c (service_dirs_find_dir): use - _dbus_list_get_next_link so we don't get stuck in an infinite loop - (start_busconfig_child): move processing of standard_session_servicedirs - tags here because they have no content - (bus_config_parser_content): check we don't have content in - standard_session_servicedirs tag - -2006-11-02 John (J5) Palmieri - - * tools/Makefile.am: Make sure the /var/lib/dbus directory is created - Packagers need to own this directory - -2006-11-02 John (J5) Palmieri - - * tools/run-with-tmp-session-bus.sh: fixed script to replace the - tag with a tag that - points to the test service directory - -2006-11-02 John (J5) Palmieri - - * configure.in: Add a check for DIR *dirp->dd_fd - - * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use - DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care - of both Solaris and Irix - -2006-11-01 Havoc Pennington - - * bus/dbus-daemon.1.in: document standard_session_servicedirs - -2006-11-01 John (J5) Palmieri - - * configure.in: expose DBUS_DATADIR - - * bus/config-parser.c: add the standard_session_servicedirs element - to the parser - (bus_config_parser_content): process the standard_session_servicedirs - element by getting the standard directories from sysdeps and merging - them into the service directory list - (test_default_session_servicedirs): make sure we get what we expect - - * bus/session.conf.in: replace the servicedir tag with the - standard_session_servicedirs tag - - * dbus/dbus-list.h: remove the typedef of DBusList and place it in - dbus-sysdeps.h to avoid circular header dependencies - - * dbus/dbus-sysdeps.h: add the typedef of DBusList - - * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function - which takes a string of directories delimited by colons, parses them - out, appends a suffix and puts them in a list ignoring empty elements - (_dbus_get_standard_session_servicedirs): returns the standard - directories for a session bus to look for service activation files - on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and - DBUS_DATADIR directories - - * test/data/valid-config-files/many-rules.conf: add the - standard_session_servicedirs tag to the valid config file tests - -2006-10-30 Havoc Pennington - - * tools/dbus-launch.1, doc/TODO: capture intent to change the - command line options of dbus-launch a bit post 1.0 - -2006-10-27 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_open_private): document - how to choose shared vs. private connections - -2006-10-27 Havoc Pennington - - * dbus/dbus-test.c: enclose more of the file in the - DBUS_BUILD_TESTS check. - - * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for - DBUS_DISABLE_ASSERT case. - - * dbus/dbus-connection.c (dbus_connection_get_unix_user): document - that it only works on the server side - - * dbus/dbus-bus.c: add a global lock covering the BusData we - attach to each connection - (internal_bus_get): lock our access to the BusData - (dbus_bus_register): lock the entire registration process - with _DBUS_LOCK(bus_datas). If we get the lock and - registration is already complete, silently return (vs. previous - behavior of aborting). - (dbus_bus_set_unique_name): lock the BusData - (dbus_bus_get_unique_name): lock the BusData - -2006-10-27 John (J5) Palmieri - - * bus/config-parser.c (service_dirs_find_dir, - service_dirs_append_unique_or_free, - service_dirs_append_link_unique_or_free): New static methods - for only appending unique service directory names into - the service directory list - (merge_included, bus_config_parser_content): Only add unique - service directory names into the list - -2006-10-27 Havoc Pennington - - * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder" - variables volatile, suggested by Thiago. Document struct fields. - (PTHREAD_CHECK): remove pthread error checking if assertions are - disabled, should reduce the no-assertions case to the bare - minimum code. - -2006-10-26 Havoc Pennington - - * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change - to be recursive - (_dbus_pthread_mutex_unlock): make it recursive - (_dbus_pthread_condvar_wait): save/restore the recursion count - (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count - -2006-10-26 Havoc Pennington - - * doc/dbus-specification.xml: clarify the UUID text slightly - - * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on - pthread errors. Add DBusMutexPThread and DBusCondVarPThread - in preparation for being able to extend them for e.g. recursive - mutexes. - -2006-10-26 Havoc Pennington - - * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how - condition variables relate to recursive mutexes. - - * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, - dbus/dbus-threads.c: Split the platforms-specific thread - implementations into their own files. - - * dbus/dbus-sysdeps-pthread.c - (_dbus_pthread_condvar_wait_timeout): invert the return value, it - was backward. Not that anything uses it. - -2006-10-26 John (J5) Palmieri - - * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the - LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This - needs to be cleaned up more. - - * doc/TODO: Add a todo that *BSD hackers should look at cleaning - up the CREDS issue. - -2006-10-26 John (J5) Palmieri - - * configure.in, dbus-1.pc.in: Check to see if thread methods - are in glibc or libpthread and add -lpthread to the link stage - if it is the latter - -2006-10-26 Thiago Macieira - - * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix - bug 8780: the connection lock is only required while recording - the shared connection, so protect only that code - section. Don't require connection_lookup_shared to return a - locked connection. - -2006-10-26 Thiago Macieira - - * tools/dbus-launch-x11.c (get_session_file, init_x_atoms): - check if get_machine_uuid() returns NULL before proceeding any - further: we can't init the X atoms or create a session file - name if there is no machine ID. - This solves a crash reported by some users if - --exit-with-session was used without --autolaunch= - -2006-10-26 John (J5) Palmieri - - * tools/dbus-launch.c (main): run the dbus-daemon in the builddir - if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set - - * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY - before we run dbus-launch - - * configure.in: define TEST_BUS_BINARY to be the full path to - dbus-daemon in the build root - -2006-10-25 Sjoerd Simons - - * dbus/Makefile.am: - * tools/Makefile.am: - * toos/dbus-uuidgen.1: - Move the machine-id file to /var/lib/dbus - -2006-10-24 David Zeuthen - - * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's - _dbus_assert (thread_init_generation != _dbus_current_generation) - not _dbus_assert (thread_init_generation == _dbus_current_generation) - -2006-10-24 Thiago Macieira - - * dbus/dbus-sysdeps.h: - * dbus/dbus-sysdeps-unix.c: Add function - _dbus_make_file_world_readable that chmods a file to 0644. - - * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): - Avoid writing to the static "argv" array, thereby avoiding a - COW on the child process. - - * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively): - call _dbus_make_file_world_readable on the created file. - -2006-10-23 David Zeuthen - - * dbus/dbus-memory.c: Use atomic variable to protect - n_blocks_outstanding otherwise OOM will be reported using SMP on - some arches - - * bus/dispatch.c: Add missing end of line characters - - * bus/desktop-file.c (parse_section_start, parse_key_value) - (bus_desktop_file_load): Propertly handle OOM - - * dbus/dbus-threads.c (init_uninitialized_locks): Check that - thread_init_generation equals _dbus_current_generation, not 0 - -2006-10-22 Havoc Pennington - - * dbus/dbus-connection-internal.h: move prototype of - _dbus_bus_notify_shared_connection_disconnected_unlocked() here so - it isn't in a public header and doesn't end up in the DBusBus - group in Doxygen - -2006-10-21 Havoc Pennington - - * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in - the tarball if packagers want to run it - - * cleanup-man-pages.sh: Add a script which munges all the internal - API man pages out of the Doxygen output. This reduces the size of - the installed man pages from 7 to 2 megs, and avoids - namespace-polluting pages. Right now (like Doxygen) this script - isn't in the build, it's something packagers can do manually. - -2006-10-21 Havoc Pennington - - * dbus/dbus-connection.h: don't include the watch/timeout - functions in connection section - -2006-10-21 Havoc Pennington - - * Documentation! Whee! Doxygen now 100% silent. If you make it - angry again, you will be punished. - -2006-10-21 Havoc Pennington - - * More documentation - all public API now documented according to - Doxygen - -2006-10-21 Havoc Pennington - - * Document a bunch of undocumented stuff - -2006-10-21 Havoc Pennington - - * Clean up Doxygen group markers for public API so Doxygen finds - everything (not comprehensively fixed for private API). - Means all remaining Doxygen warnings are just about missing docs - and thus pretty simple to resolve. - -2006-10-21 Havoc Pennington - - * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro - - * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() - as DBUS_GNUC_DEPRECATED - -2006-10-21 Havoc Pennington - - * Move all private API into the private Doxygen group sections of - the files, so they don't show up in the public API docs - -2006-10-21 Havoc Pennington - - * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around - dbus_message_iter_get_array_len(). - - * throughout: documentation improvements. - -2006-10-20 Havoc Pennington - - * doc/TODO: remove the int64 thing from 1.0 since it doesn't - matter, and the message-loader-breaker thing since nobody is going - to do it. Add an item to 1.0 about supporting recursive locks - in dbus_threads_init_default() though, since it should be easy. - - * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch): - Fix this in the !dispatch case to avoid busy-looping after - disconnection - - * More misc docs improvements - -2006-10-19 Havoc Pennington - - * more Doxygen-related fixes (lots of moving things from the - public to internal section in dbus-connection.c) - -2006-10-19 Havoc Pennington - - * Fix a pile of Doxygen warnings and missing docs - -2006-10-19 John (J5) Palmieri - - * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, - bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext - instead of a void *. kqueue uses this to get the context's loop - while the other modules ignore the parameter. This allows us to - avoid platform conditionals - - * bus/bus.c (process_config_postinit): Pass in the context to the - watch - -2006-10-19 John (J5) Palmieri - - * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure - when starting the system bus - -2006-10-18 John (J5) Palmieri - - * configure.in: More fixups for cross compile (Patch from - Marco Pracucci ) - -2006-10-17 Havoc Pennington - - * tools/dbus-send.c (main): don't close shared connection, fix - from Timo Hoenig - -2006-10-17 Havoc Pennington - - * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here - - * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement, - since realistically it doesn't look like we'll be changing it - anymore. - -2006-10-17 Havoc Pennington - - * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to - be used for return_if_fail type warnings; prefixes the pid, and - fatal by default. - -2006-10-14 John (J5) Palmieri - - * configure.in: Released 1.0 RC 2(0.94) - Add check for -fPIC and enable it if available - -2006-10-14 John (J5) Palmieri - - * doc/TODO: Remove the check TODO item - -2006-10-13 John (J5) Palmieri - - * dbus-transport-socket.c (exchange_credentials): - Print out more detailed errors if reading or sending - credentials fail (Patch from Julio M. Merino Vidal - ) - -2006-10-13 John (J5) Palmieri - - * configure.in: when checking for posix getpwnam_r assume true - for cross compiles - -2006-10-13 John (J5) Palmieri - - * configure.in: Check for gethostbyname first before we check for it - in libnsl. On gnu systems it is implemeneted - -2006-10-13 Havoc Pennington - - * dbus/dbus-connection.c - (dbus_connection_send_with_reply_and_block): fix to handle closed - connections, from Tambet Ingo bug #8631 - -2006-10-11 John (J5) Palmieri - - * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN - -2006-10-11 John (J5) Palmieri - - * test/name-test/Makefile.am: don't link against both libdbus and - libdbus-convenience - -2006-10-11 John (J5) Palmieri - - * configure.in: check for dirfd even if it is a macro - (Patch from Timothy Redaelli ) - -2006-10-08 John (J5) Palmieri - - * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris - avoid using dirfd on systems that don't have dirfd - (Patch by Brian Cameron ) - -2006-10-02 John (J5) Palmieir - - * dbus/dbus-sysdeps.c (_dbus_abort): Remove from - #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck - - * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from - #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS) - macro because _dbus_abort calls it - - * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck - works - -2006-10-02 John (J5) Palmieir - - * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for - MAXNAMELEN for Mac OSX. (Patch from Jonas B ) - -2006-10-02 Thiago Macieira - - * tools/dbus-launch.c (main): make it complain and abort - execution in case an unknown option is given. Also, process - the '--' argument as the end of arguments. - -2006-10-01 Havoc Pennington - - * tools/dbus-launch.c (print_variables): if no syntax is given, - don't print something that's sort-of-half-sh-syntax, just print - a plain key-value pairs thing. - - * tools/dbus-launch-x11.c: use machine ID rather than hostname for - the local machine representation (but still have the hostname in - the display). Remove the hostname from the display if it is - localhost. Change session files to be named - ~/.dbus/session-bus/machine-display. Change X atoms to be - underscore-prefixed so nobody whines about ICCCM compliance. - Otherwise name them the same as the env variables. - Change session file format to include key-value pairs and an - explanatory comment. Keys are the same as the env variables. - (set_address_in_x11): X property format can't depend on - sizeof(pid_t) on a particular machine, fix to always be 32 bits - - * tools/dbus-launch.c: make --autolaunch take a machine id - argument. If --autolaunch is used with a program to run, complain - for now (but add a FIXME). Also, don't look for existing bus if - there's a program to run (but add a FIXME). - - * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass - machine uuid to dbus-launch (avoids linking dbus-launch to libdbus - just to get this, and avoids duplicating uuid-reading code). - - * tools/dbus-launch.1: clarify various things - -2006-10-01 Havoc Pennington - - * test/test-service.c (path_message_func): remove broken extra - unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c - - * test/test-shell-service.c (path_message_func): same fix - - * dbus/dbus-connection.c - (_dbus_connection_get_dispatch_status_unlocked): break up the - function a little for clarity and fix the notification of - dbus-bus.c to not require dispatch to be complete - - * dbus/dbus-connection.c (dbus_connection_unref): improve the - warning when you try to finalize an open connection. - -2006-10-01 Havoc Pennington - - * dbus/dbus-bus.c - (internal_bus_get): only weak ref the connection; this means - _dbus_bus_notify_shared_connection_disconnected_unlocked can be - called safely in any context - (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't - unref - - * dbus/dbus-connection.c - (_dbus_connection_get_dispatch_status_unlocked): move - _dbus_bus_notify_shared_connection_disconnected_unlocked here - when queuing Disconnected instead of when the Disconnected message - arrives, so dbus_bus_get() won't return closed connections. - -2006-10-01 Havoc Pennington - - * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): - Add a hack to make DBusNewConnectionFunction work right. - - * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use - the hack here. Also, fix the todo about refcount leak. - - * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): - and use the hack here - - * dbus/dbus-connection.c: Kill the "shared" flag vs. the - "shareable" flag; this was completely broken, since it meant - dbus_connection_open() returned a connection of unknown - shared-ness. Now, we always hold a ref on anything opened - as shareable. - - Move the call to notify dbus-bus.c into - connection_forget_shared_unlocked, so libdbus consistently forgets - all its knowledge of a connection at once. This exposed numerous - places where things were totally broken if we dropped a ref inside - get_dispatch_status_unlocked where - connection_forget_shared_unlocked was previously, so move - connection_forget_shared_unlocked into - _dbus_connection_update_dispatch_status_and_unlock. Also move the - exit_on_disconnect here. - - (shared_connections_shutdown): this assumed weak refs to the - shared connections; since we have strong refs now, the assertion - was failing and stuff was left in the hash. Fix it to close - still-open shared connections. - - * bus/dispatch.c: fixup to use dbus_connection_open_private on the - debug pipe connections - - * dbus/dbus-connection.c (dbus_connection_dispatch): only notify - dbus-bus.c if the closed connection is in fact shared - (_dbus_connection_close_possibly_shared): rename from - _dbus_connection_close_internal - (dbus_connection_close, dbus_connection_open, - dbus_connection_open_private): Improve docs to explain the deal - with when you should close or unref or both - - * dbus/dbus-bus.c - (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename - from _dbus_bus_check_connection_and_unref_unlocked and modify to - loop over all connections - - * test/test-utils.c (test_connection_shutdown): don't try to close - shared connections. - - * test/name-test/test-threads-init.c (main): fix warnings in here - - * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT - env variable to cause blocking waiting for gdb; drop - DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() - unconditionally. - - * configure.in: add -export-dynamic to libtool flags if assertions enabled - so _dbus_print_backtrace works. - - * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf - instead of _dbus_verbose to print the backtrace, and diagnose lack - of -rdynamic/-export-dynamic - -2006-09-30 Havoc Pennington - - * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) - (internal_bus_get): fix screwy code formatting. whoever committed - that was not paying attention! - -2006-09-30 Havoc Pennington - - * configure.in (LT_CURRENT, LT_AGE): increment current and age to - reflect addition of interfaces. - - * doc/dbus-specification.xml: describe a new - org.freedesktop.DBus.Peer.GetMachineId method - - * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function - (_dbus_string_skip_white, _dbus_string_skip_blank): use new - DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion - at end of skip_white - (_dbus_string_chop_white): new function - - * bus/connection.c (bus_connections_setup_connection): call - dbus_connection_set_route_peer_messages. - - * dbus/dbus-connection.c - (_dbus_connection_peer_filter_unlocked_no_update): modify to - support a GetMachineId method. - - Also, support a new flag to let the bus pass peer methods through - to apps on the bus, which can be set with - dbus_connection_set_route_peer_messages. - - Finally, handle and return an error for anything unknown on the - Peer interface, which will allow us to extend the Peer interface - in the future without fear that we're now intercepting something - apps were wanting to see. - - * tools/dbus-uuidgen.c: a thin wrapper around the functions in - dbus/dbus-uuidgen.c - - * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen - binary here, since most of the code is already in libdbus - - * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the - uuid from the system config file - - * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) - (_dbus_read_uuid_file_without_creating) - (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new - uuid-related functions, partly factored out from dbus-server.c - - * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to - DBUS_ERROR_FILE_EXISTS instead of EEXIST - - * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error - - * tools/dbus-cleanup-sockets.1: explain what the point of this - thing is a bit more - - * autogen.sh (run_configure): add --config-cache to default - configure args - - * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the - error set/clear assertions when DBUS_DISABLE_CHECKS is defined - - * tools/dbus-launch.c (main): if xdisplay hasn't been opened, - don't try to save address, fixes crash in make check - -2006-09-30 Thiago Macieira - - * configure.in: add DBUS_BINDIR as a #define to C source code. - - * tools/dbus-launch.c - * tools/dbus-launch.h - * tools/dbus-launch-x11.c: - * tools/dbus-launch.1: Add the --autolaunch option to - dbus-launch, which makes it scan for an existing session - started with --autolaunch. With that option, it also creates - an X11 window and saves the bus address and PID to it. - - * dbus/dbus-sysdeps.h: - * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add - a function that runs "dbus-launch --autolaunch" to retrieve - the running D-Bus session address (or start one if none was running) - - * dbus/dbus-transport.c: Add the handler for the "autolaunch:" - address protocol, which tries to get the running session from - dbus-launch. - - * dbus/dbus-bus.c: - * dbus/dbus-internals.h: Make "autolaunch:" be the default - D-Bus session bus address. - - * dbus/dbus-connection.c: Fix horrible typo in error message. - -2006-09-18 John (J5) Palmieri - - * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@ - -2006-09-17 Havoc Pennington - - * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): - fix so that if unix_user_function is set on windows, we still - do the default check that the auth identity matches the bus identity - -2006-09-16 Havoc Pennington - - * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate - to _dbus_transport_open_platform_specific, - _dbus_transport_open_socket, - and _dbus_transport_open_debug_pipe - - * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific - -2006-09-16 Havoc Pennington - - Attempt auditing public API to remove all cases where a Unix - function returns weird emulated goo to Windows. This probably - breaks the bus daemon on Windows, to fix it again we may - need to stop processing unix-specific config options on Windows, - and may need to add Windows-specific public API or config options. - - * configure.in (LT_CURRENT, LT_AGE): increment current and age, - to reflect added interfaces; should not break soname. - - * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do - not invoke unix user function on Windows. Kind of a hacky fix, but - we don't want a "unix uid" leaking out on Windows. - - * dbus/dbus-connection.c (dbus_connection_get_socket): add new API - to get the socket fd on Windows or UNIX - (dbus_connection_get_unix_fd): make this always fail on Windows - -2006-09-16 Havoc Pennington - - * dbus/dbus-server.c (dbus_server_listen): change how this works - to be able to delegate to a set of handlers that can succeed, - fail, or choose not to handle. Allows us to have - dbus_server_listen_platform_specific. - - * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket): - factor out the tcp socket stuff to be used on windows, leaving - unix domain socket only in dbus-socket-unix.c - - * dbus/dbus-transport-socket.c - (_dbus_transport_new_for_tcp_socket): factor out the tcp socket - stuff to be used on windows, leaving unix domain socket only - in dbus-transport-unix.c - - * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert - temporary hack to be sure this fails on windows - (dbus_connection_get_unix_process_id): ditto - -2006-09-16 Havoc Pennington - - * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) - (_dbus_open_unix_socket, _dbus_open_socket): change API for - _dbus_open_socket so the domain/type/protocol from system headers - are not required. This is kind of pointless though unless we move - part of _dbus_connect_tcp_socket into sysdeps.c instead of - sysdeps-unix.c, which would mean adding a wrapper around - bind/listen/etc. - Also, add DBusError to the socket-opening functions so they - don't require use of errno. - -2006-09-16 Havoc Pennington - - * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make - dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header. - - * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter - Kümmel bug #8249 to make the sysdeps.h read/write/open/close - functions specifically for sockets only, and move generic - read/write/open/close into unix-specific code. - -2006-09-14 Havoc Pennington - - * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind - complaint about accessing revents when poll returns 0, from Julian Seward. - -2006-09-14 John (J5) Palmieri - - * Released 1.0 RC 1 (0.93) - -2006-09-14 John (J5) Palmieri - - * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file): - use _dbus_close instead of close - -2006-09-14 John (J5) Palmieri - - * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket - credentials. Fixes "external" authentication under e.g. NetBSD - which does not support any other socket credentials mechanism. - (Patch from Julio M. Merino Vidal ) - -2006-09-14 John (J5) Palmieri - - * dbus/dbus-threads.c: Allow recursive mutex's to be passed into - dbus_threads_init and be used by the dbus mutex functions to - avoid deadlocks. - - * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item - -2006-09-13 John (J5) Palmieri - - * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file): - use threadsafe readdir_r instead of readdir - -2006-09-13 John (J5) Palmieri - - * dbus-threads.c (dbus_threads_init_default): New method for - initializing the internal thread implementation (Patch from - Alexander Larsson ) - -2006-09-11 John (J5) Palmieri - - * remove a bunch of todo items from the 1.0 list - -2006-09-11 John (J5) Palmieri - - * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and - key not found - -2006-09-11 John (J5) Palmieri - - * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more - complex debugging code - - * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move - between the test suite ifdefs - (_dbus_verbose_bytes): return if verbosity is not enabled - -2006-09-11 John (J5) Palmieri - - * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c: - remove DBusMark - -2006-09-10 Havoc Pennington - - patch mostly by Peter Kümmel, bug #8211 - - * dbus/dbus-sysdeps-unix.c: new file, which splits out - unix-specific stuff in dbus-sysdeps.c - - * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, - and move unix-specific stuff to dbus-sysdeps-unix.c - - * configure.in: check HAVE_ERRNO_H - -2006-09-08 John (J5) Palmieri - - * bus/test-main.c (main): Initialize threading during tests - - * dbus/dbus-connection.c (_dbus_connection_new_for_transport): - Unlock connection on error - (generate_local_error_message): static method for generating - an error message when we don't have a message to reply to - (_dbus_connection_block_pending_call): Send a disconnect error - instead of just a timeout (NULL) when the bus gets disconnected - while blocking for a reply. - -2006-09-08 John (J5) Palmieri - - * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove - filters (Patch from Kimmo Hämäläinen - ) - -2006-09-07 John (J5) Palmieri - - * dbus/dbus-connection-internal.h: Add prototype for - _dbus_connection_test_get_locks to remove warning - -2006-09-07 John (J5) Palmieri - - * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we - close child_err_report_pipe[WRITE_END] on exec (Patch from - Kimmo Hämäläinen ) - -2006-09-07 John (J5) Palmieri - - * Clean up close calls to use _dbus_close (Patch from - Kimmo Hämäläinen ) - -2006-09-06 John (J5) Palmieri - - * doc/TODO: - - Remove pending call locking todo item - - dbus_connection_open now holds hard ref. Remove todo item - - do proper locking on _dbus_bus_check_connection_and_unref - and handle DBUS_BUS_STARTER. Remove todo item - - Warn on closing of a shared connection. Remove todo item - - * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c, - dbus/dbus-connection.c: Use the dbus_connection_close_internal - so we don't get the warning when closing shared connections - - * test/test-service.c, test/test-shell-service.c: Applications - don't close shared connections themselves so we unref instead of - close - - * test/test-utils.c (test_connection_shutdown): Close the connection - - * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to - _dbus_bus_check_connection_and_unref_unlocked since we only call this - method on a locked connection. - Make sure we call _dbus_connection_unref_unlocked instead of - dbus_connection_unref also. - Handle DBUS_BUS_STARTER correctly - - * dbus/dbus-connection.c (connection_record_shared_unlocked): - Mark as shared and hard ref the connection - (connection_forget_shared_unlocked): Remove the hard ref from the - connection - (_dbus_connection_close_internal_and_unlock): New internal function - which takes a locked connection and unlocks it after closing it - (_dbus_connection_close_internal): New internal function which acts - like the origonal dbus_connection_close method by grabbing a connection - lock and calling _dbus_connection_close_internal_and_unlock - (dbus_connection_close): Public close method, warns when the app - trys to close a shared connection - -2006-09-06 John (J5) Palmieri - - * bus/driver.c: - (bus_driver_generate_introspect_string): New method for populating - a DBusString with the introspect data - (bus_driver_handle_introspect): Move introspect generation code to - bus_driver_generate_introspect_string - - * bus/main.c: - (introspect): New function which prints out the intropect data and - exits - (main): Add a --introspect switch - -2006-09-06 John (J5) Palmieri - - * doc/TODO: Removed dtd publishing item. - It seems the dtd has already been added at - http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd - -2006-09-05 John (J5) Palmieri - - * doc/TODO, various source files: Audited todo's and FIXME's and - prepended the ones we should be looking at with 1.0. Those - prepended with 1.0? need clerification or might not be needed - for 1.0 - -2006-09-05 John (J5) Palmieri - - * dbus/dbus-pending-call.c: Add some checks so we don't crash on - NULL in the public API (Patch from Kimmo Hämäläinen - ) - -2006-09-05 John (J5) Palmieri - - * configure.in: Fix for OS-X compile time endian issues (patch from - Benjamin Reed ) - -2006-09-05 John (J5) Palmieri - - * configure.in: Check for no-common compiler flag (OS-X fix from - Benjamin Reed ) - -2006-09-01 John (J5) Palmieri - - * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat - ) - -2006-08-29 Havoc Pennington - - * test/test-service.c (path_message_func): fix lack of return value - - * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix - formatting, remove #ifdef, and fix docs. #ifdef doesn't make - any more sense than on anything else in this file. - (_dbus_get_tmpdir): add const to return value, and keep the - results of the various getenv around in a static variable. - -2006-08-29 Havoc Pennington - - * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change - from Ralf Habacker to move UNIX-specific sysdeps into a separate file. - -2006-08-25 John (J5) Palmieri - - * test/Makefile.am: change find to use syntax that works with non - gnu versions of find - -2006-08-25 John (J5) Palmieri - - * dbus/dbus-transport.c: fix invalid deref when checking if - a vtable method exists (Patch from Christian Ehrlicher - ) - -2006-08-25 John (J5) Palmieri - - * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, - test/name-test/Makefile.am: Fixed some issues with getting get dbus - to build with builddir != srcdir (Taken from a patch by Bernard Leak - ) - -2006-08-25 John (J5) Palmieri - - * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the - default case - -2006-08-25 John (J5) Palmieri - - * configure.ac, bus/Makefile.am: Generalize kqueue support so that - it works on any system providing this interface, not only FreeBSD. - For example, NetBSD. (Patch by Julio M. Merino Vidal ) - -2006-08-20 Havoc Pennington - - * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to - the docs - -2006-08-18 John (J5) Palmieri - - * Released 0.92 - -2006-08-18 John (J5) Palmieri - - * dbus/dbus-threads.c (dbus_threads_init): change the documentation - to reflect the init late change - - * bus/bus.c (bus_context_new): Check user before we fork so we can - print out an error message a user will be able to see - -2006-08-18 John (J5) Palmieri - - Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) - - * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h: - Add two more global locks for use on windows platforms. These are - unused on non-windows platforms but are not ifdefed out to avoid - potential bugs (i.e. the few bytes lost does not warrent the extra - maintanence and complexity that having seperate sets of locks would - cause) - -2006-08-18 John (J5) Palmieri - - * bus/services.c (bus_registry_acquire_service): Return an error - when an application tries to register the org.freedesktop.DBus Bus Name - - * bus/services.c (bus_registry_release_service): Return an error - when an application tries to release the org.freedesktop.DBus Bus Name - -2006-08-17 Alp Toker - - * doc/dbus-specification.xml: Fix some minor typos. - -2006-08-17 John (J5) Palmieri - - * configure.in: use $with_init_scripts instead of $operating_system - to determine where to store the pid since the init scripts manipulate - the pid file (patch from Marcelo Ricardo Leitner - . - -2006-08-16 John (J5) Palmieri - - * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and - static DBusList *uninitialized_condvar_list to support new late - initialization threading model. In this model threads can be initialized - even after the D-Bus API has been used but still needs to be initialized - before the second thread has been started. Mutexes and condvar addresses - are stored in the two static lists and are replaced with actuall locks - when threads are initalized. - (_dbus_mutex_new_at_location): New method for creating a mutex and placing - the location into the static list - (_dbus_mutex_free_at_location): New method for removing a mutex location - from the static list and freeing the mutex - (_dbus_condvar_new_at_location): New method for creating a conditional - variable and placing the location into the static list - (_dbus_condvar_free_at_location): New method for removing a conditional - variable location from the static list and freeing the conditional variable - (init_uninitialized_locks): Atomic method which goes through the static - lists of mutex and condvar location and updates them with actuall locks - (init_global_locks): changed to init_locks - - * dbus/dbus-connection.c: - (_dbus_connection_test_get_locks): New method for tests to check connections - (_dbus_connection_new_for_transport): Use the new at_location mutex and - condvar API - (dbus_connection_allocate_data_slot): Pass in the global lock address - to _dbus_data_slot_allocator_alloc - - * dbus/dbus-dataslot.c: - (_dbus_data_slot_allocator_alloc): Use the address of the mutex - instead of the mutex itself - - * dbus/dbus-message.c: - (dbus_message_allocate_data_slot): Pass in the global lock address - to _dbus_data_slot_allocator_alloc - - * dbus/dbus-pending-call.c: - (dbus_pending_call_allocate_data_slot): Pass in the global lock address - to _dbus_data_slot_allocator_alloc - - * dbus/dbus-server.c: - (_dbus_server_init_base): Use the new at_location mutex API - (dbus_server_allocate_data_slot): Pass in the global lock address - to _dbus_data_slot_allocator_alloc - - * test/name-test/test-threads-init.c: New test case for late thread - initialization - -2006-08-14 John (J5) Palmieri - - * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): - Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort - causes compile problems when asserts are turned off - Keeping _dbus_warn for printing out the message so even if - asserts are turned off the user gets the messages that something is - wrong - -2006-08-14 John (J5) Palmieri - - Patches by Kjartan Maraas - - * bus/services.c (bus_service_list_queued_owners): - Add a pointer cast to fix compiler warning - - * dbus/dbus-dataslot.c (_dbus_data_slot_list_get): - return a NULL instead of FALSE since the return type - is not expecting a boolean - - * dbus/dbus-marshal-basic.c (_dbus_marshal_test): - Remove unused variable - - * dbus/dbus-marshal-recursive-util.c (node_new): - return a NULL instead of FALSE since the return type - is not expecting a boolean - - * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): - Send a NULL into _dbus_transport_new_for_fd instead of a FALSE - because we are expecting a pointer not a boolean - - * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): - add void as the parameter so some compilers - don't complain - - * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket, - _dbus_transport_new_for_tcp_socket): - Send a NULL into _dbus_transport_new_for_fd instead of a FALSE - because we are expecting a pointer not a boolean - - * test/shell-test.c (test_command_line): - cast the second argument to _dbus_list_append to avoid compiler - warnings - - * test/test-names.c (main): remove unused variable - - * test/test-service.c (check_hello_from_self_reply): - Initialize echo_message and echo_reply to NULL - - * test/test-shell-service.c (handle_echo): - Remove unused variable and cast the third parameter passed to - dbus_connection_get_object_path_data to avoid compiler warrnings - - * test/name-test/test-names.c (clear_message_queue): - Remove unused function - - * test/name-test/test-pending-call-dispatch.c: - Fix format string in printf - - -2006-08-14 John (J5) Palmieri - - * dbus/dbus-bus.c: - * test/name-test/test-names.c: - Remove test method dbus_bus_connection_get_unique_name because - we already have public method dbus_bus_get_unique_name that - does the exact same thing - -2006-08-10 John (J5) Palmieri - - * dbus/dbus-signature.c: - fix typos in Julio's previous patch which cause make check to fail - -2006-08-10 John (J5) Palmieri - - * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp. - In any case it was wrong since this is a test checking to see if - address parsing is correct. There was no need to get the true - tmp directory. - -2006-08-10 John (J5) Palmieri - - * dbus/dbus-macros.h: Revert the addition of stddef.h - as we should not be adding it to library headers - -2006-08-10 John (J5) Palmieri - - * dbus/dbus-signature.c: - Fix the unit tests so that they work if assertions are not enabled. - (patch from Julio M. Merino Vidal ) - -2006-08-10 John (J5) Palmieri - - * tools/run-with-tmp-session-bus.sh: - * test/name-test/run-test.sh: - Remove bashisms (patch from Julio M. Merino Vidal - ) - -2006-08-10 John (J5) Palmieri - - * configure.in: add a version (>= 2.6.0) check for libxml2 - -2006-08-10 John (J5) Palmieri - - * configure.in: make sure the compiler supports -Wfloat-equal - - * bus/dir-watch-dnotify.c: move functional code after - variable declerations (C99 fix) (patches from Jens Granseuer - - -2006-08-10 John (J5) Palmieri - - * dbus/dbus-macros.h: - add #include so that Sun compilers don't complain about - the defining NULL - -2006-08-10 John (J5) Palmieri - - * dbus/dbus-sysdeps.c: - * dbus/dbus-address.c: - * bus/activation.c: - * test/shell-test.c: - don't hardcode tmp directory (patch from Dave Meikle - ) - -2006-08-09 John (J5) Palmieri - - * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): - Change an assert to a detailed warning and abort. - When allocator->lock != mutex it indicates that the user has failed - to initalize threads before using the D-Bus library. This warning - helps the user identify the issue and fix their app. - -2006-08-08 John (J5) Palmieri - - These are all patches from Kjartan Maraas - with cleanups of bugs found from Coverity reports: - - * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file): - close the file on error to avoid a leak - - * bus/expirelist.c (bus_expire_list_test): - Check for NULL on dbus_new0 - - * bus/activation.c (update_directory): - remove dead code - - * bus/config-parser.c (merge_service_context_hash, start_selinux_child): - Fix some leaks - - * bus/bus.c (process_config_every_time): - Fixed a leak - - * bus/desktop-file.c (parse_key_value): - Fixed leak - - * bus/selinux.c (bus_selinux_id_table_insert): - Fixed leak - -2006-08-08 John (J5) Palmieri - - * dbus/dbus-object-tree.c (_dbus_object_subtree_new): - remove dead code - -2006-08-08 John (J5) Palmieri - - * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of - #!/bin/bash - -2006-08-08 John (J5) Palmieri - - * Doxyfile.in: fix the INPUT line so we can generate docs - when sourcedir != builddir (patch from Cygwin Ports maintainer - - -2006-08-08 John (J5) Palmieri - - * dbus/dbus-sysdeps.h: - * dbus/dbus-sysdeps.c: - * dbus/dbus-string.c: - s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with - GLib's function which does the same thing - - * configure.in: - * bus/Makefile.am: - * bus/dir-watch-default.c: - * bus/dir-watch-dnotify.c: - * bus/dir-watch-kqueue.c: - Add kqueue directory watching for freebsd and split the directory - watching code into seperate files per method/arch - (patches from Timothy Redaelli ) - -2006-08-08 John (J5) Palmieri - - * configure.in: - * tools/Makefile.am: - * tools/dbus-launch.c: - * bus/Makefile.am: - allow --with-dbus-daemondir switch to be used to make the - daemon install to a seperate bindir like /usr/libexec - (patch from Brian Cameron - - * bus/Makefile.am (install-data-hook): removed the slash after - $(DESTDIR) so we don't get the double slash which does not work - in windows (patch from Andras Porjesz - ) - -2006-08-08 John (J5) Palmieri - - * dbus/dbus-sysdeps.h: - * dbus/dbus-sysdeps.c: - add _dbus_printf_length (patch from Peter Kümmel - ) - -2006-08-08 John (J5) Palmieri - - * dbus/dbus-internals.c: unistd.h is not used - (_dbus_verbose_real): only enable verbose printing - if DBUS_VERBOSE environment var is set to '1' - (patch from Peter Kümmel ) - -2006-08-08 John (J5) Palmieri - - * configure.in: add a GCC flag check for -Wdeclaration-after-statement - so we still compile on older gcc (patch from Frederic Peters - - -2006-08-04 Havoc Pennington - - * configure.in: add -Wdeclaration-after-statement - - * dbus/dbus-connection.c: change all the pending call stuff to - reflect the fact that pending call operations use the connection - lock - - * dbus/dbus-pending-call.c: add locking here - - * dbus/dbus-errors.c (struct DBusRealError): don't make the name - field const consistent with how message field is done - -2006-08-03 John (J5) Palmieri - - * s/D-BUS/D-Bus/g - -2006-08-03 John (J5) Palmieri - - * dbus/dbus-object-tree.c: Patch by Benjamin Otte - - fix invalid - read/write reported by valgrind - -2006-07-24 John (J5) Palmieri - - * Released 0.91 - -2006-07-22 John (J5) Palmieri - - * dbus/dbus-connection.c: - (_dbus_connection_attach_pending_call_unlocked): - (connection_timeout_and_complete_all_pending_calls_unlocked): - Make sure we set timeout_added on pending calls to FALSE when - we remove the timeout from the connection - -2006-07-21 John (J5) Palmieri - - * Removed some extra bindings stuff lingering around (thanks timo) - * dbus-pendingcall.c (_dbus_pending_call_new): - s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion - when we tried to take a lock on an already locked connection - -2006-07-17 John (J5) Palmieri - - * Released 0.90 - -2006-07-17 Havoc Pennington - - * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit - ints, reported by Owen Taylor - -2006-07-17 John (J5) Palmieri - - * doc/TODO: - * dbus/dbus-bus.c: - * dbus-errors.c: - * dbus/dbus-marshal-validate.c: - Removed TODO items which were fixed or are no longer relevent - -2006-07-17 John (J5) Palmieri - - * dbus-qt4-1.pc.in, dbus-sharp.pc.in: - Remove stray files from the stripped bindings - -2006-07-16 Havoc Pennington - - * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error): - Improve the error message on reply timeout - -2006-07-14 John (J5) Palmieri - - * Remove all bindings - -2006-07-13 John (J5) Palmieri - - * dbus-connection.c (dbus_connection_send_with_reply): return TRUE - and set pending_reply out arg to NULL is connection is disconnected - (connection_timeout_and_complete_all_pending_calls_unlocked): New - static method for cleaning up pending calls on disconnect - (_dbus_connection_get_dispatch_status_unlocked): If we have pending - calls queued timeouts on disconnect - - * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection): - Remove - -2006-07-13 Carlos Garcia Campos - - * bus/activation.[ch] (bus_activation_list_services): new function to - get the list of services that can be activated - - * bus/dispatch.c: test coverage for the new bus method - ListActivatableNames - - * bus/driver.c: new bus method ListActivatableNames to get the list of - services that can be activated - - * doc/dbus-specification.xml: ListActivatableNames method documentation - -2006-07-12 John (J5) Palmieri - * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of - source files - -2006-07-12 John (J5) Palmieri - * dbus/dbus-message-factory.c: - Fix index into an array (patch by Peter Kümmel ) - -2006-07-12 John (J5) Palmieri - * dbus/dbus-connection-internal.h: - * dbus/dbus-connection.c: - * file dbus/dbus-pending-call.c: - * dbus/dbus-pending-call.h: - Make DBusPendingCall an opaque type even to D-Bus internals - -2006-07-07 John (J5) Palmieri - - * dbus/dbus-connection.h: remove connection_disconnect and replace with - connection_close - - * dbus/dbus-connection.c: include dbus-bus.h - (_dbus_connection_read_write_dispatch): make static - -2006-07-07 John (J5) Palmieri - - * dbus/dbus-connection.c (dbus_connection_close): removed deprecated - function - (dbus_connection_dispatch): On disconnect unref any shared connections - - * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function - for cleaning up shared connections on disconnect - (internal_bus_get): get a hard refrence to shared connections when - they are created - - * doc/TODO: Remove items which are no longer relevent or have been fixed - Split 1.0 todo items with a 0.90 freeze todo list - -2006-06-14 Ross Burton - - * glib/dbus-gobject.c: - Free a leaking GArray (surely not!) in dbus_g_method_return. - -2006-06-14 Ross Burton - - * tools/Makefile.am: - * tools/dbus-monitor.c: - Don't use the GLib bindings in dbus-monitor (patch from Ralf - Habacker). - -2006-06-14 Ross Burton - - * tools/dbus-print-message.c: - Also print the object path when outputting signals or method calls. - -2006-06-13 Thiago Macieira - - * qt/src/Makefile.am: install the qdbus.h header. - This allows people to actually use the installed code. - -2006-06-12 Ross Burton - - * glib/dbus-gproxy.c: - Don't leak a GArray when firing signals (thank Rob Taylor for review). - -2006-06-12 Thiago Macieira - - * Released 0.62 - -2006-06-12 Thiago Macieira - - * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that - break pedantic builds. Closes bug 6043 (patch approved by - Havoc back in February). - -2006-06-12 Thiago Macieira - - * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods - that took a QDBusMessage parameter. - * qt/src/qdbusbus.h: Add a default flag for RequestName. - * qt/tools/dbus.cpp: Don't use automatic call because we might - be calling an async method: request a reply. - -2006-06-11 Thiago Macieira - - * test/qt/*: Update the testcases, including testing the new - functionality of sending null QByteArray and QString over the - bus. Add new headertest test and restore the old - qdbusxmlparser test. - -2006-06-11 Thiago Macieira - - * qt/tools/dbuscpp2xml.cpp: Compile on Windows. - * qt/tools/dbusidl2cpp.cpp: Add missing newline. - - * qt/examples/Makefile.am: - * qt/examples/chat.h: Use UI-generated files with the ui_*.h - form. - - * qt/src/qdbusmarshall.cpp: Allow sending of QString() and - QByteArray() (nulls) over the bus. - * qt/src/qdbusabstractinterface.cpp: Use the correct variable, - the one that has the signature suffix stripped. - * qt/src/qdbusreply.h: Make some methods const. - -2006-06-09 Thiago Macieira - - Patch from Timo Hoenig . - - * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers - required during build to EXTRA_DIST. - * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST. - * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS. - * configure.in: Fix "make dist", take care that the Makefile for - qt/dbus is being generated. - -2006-06-07 John (J5) Palmieri - - * bus/bus.c: Fix eavesdropping on method calls - -2006-06-07 John (J5) Palmieri - - * configure.in: - * dbus/dbus-userdb-util.c: - Add Solaris console owner patch from Artem Kachitchkine - -2006-06-07 Thiago Macieira - - * qt/Makfile.am: - * qt/src/Makefile.am: Fix the EXTRA_DIST after the - reorganisation. Thanks to Timo Hoenig for pointing this out. - -2006-06-06 Robert McQueen - - * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every - call to dbus_g_type_get_struct. - -2006-06-06 Robert McQueen - - * glib/dbus-gvalue-utils.c: Fix the failing test where static string - pointers were put into a GPtrArray-based specialised collection, and - then freed along with the array. GValues which you add into - collections or maps which have the NOCOPY flag set are assumed to not - belong to the caller, so rather than the existing pointer-stealing - semantics, they are copied instead. Given that the main consumers of - this abstraction are the bindings themselves, I don't think this is - too bad, but others should watch their choice of take vs set_static. - -2006-06-06 Robert McQueen - - * glib/dbus-gvalue-utils.c: Spotted a warning about the return value - of g_slist_prepend not being used. Fixed copying of slist-based - specialised collections, then wrote a test case and found that it was - all broken. Went on to fix iterating and appending too. Good thing - nobody uses this code yet. - -2006-06-06 Robert McQueen - - * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of - the iterators use gvalue_take_ptrarray_value (the GValues themselves - are discarded without unsetting, so it makes no difference whether - we take or set_static). Remove cases for G_TYPE_POINTER because - there really is nothing useful we can do with them in our - specialised types - we *need* boxed copy/free functions at the very - least. - -2006-06-05 Thiago Macieira - - * qt/dbus: Add directory. I had forgotten to add this - yesterday after the move... - - * qt/examples/Makefile.am: - * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp. - - * qt/tools/Makefile.am: - * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp. - Added feature to get and set properties. - Added validation of service, object path and interface names. - - * qt/tools/dbusidl2cpp.cpp: Two new features: - 1) Allow specifying both the header and the source file names, - by separating them with a colon. - 2) Don't write an interface output if the -p switch wasn't - given, but the -a was. - - * qt/src/*: Fix usage of Iterators and ConstIterators. - Fix shadowing of variables by other variables (-Wshadow). - Fix keyword-cleanliness in headers. - Fix ASCII-cast (QLatin1String, QLatin1Char). - Fix validation of member names. - Add extra checking of introspection data during XML parsing. - Various bug fixes. - -2006-06-04 Thiago Macieira - - * dbus/Makefile.am: - * dbus/qdbus.h: Remove unnecessary file. This is mirrored into - qt/dbus/qdbus.h now. - -2006-06-04 Thiago Macieira - - * configure.in: Make --disable-qt actually do - something. Patch inspired by Zack Rusin. - -2006-06-04 Thiago Macieira - - * qt/: Update to Subversion r548032. - This includes a big reorganisation of the files inside the - subdir. - -2006-05-30 Sjoerd Simons - - * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more - clear: - "Failed to connect to socket : " instead of - "Failed to connect to socket : :" - - * dbus/dbus-transport-unix.c: Fix crash when no host option is given - for a tcp transport. - -2006-05-29 Thiago Macieira - - * qt/*: Update the QtDBus bindings up to revision 546310 in - Subversion. - This adds the dbuscpp2xml tool, that parses a C++ header and - outputs a D-BUS Introspection XML. - -2006-05-21 Havoc Pennington - - * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name - is not NULL when it shouldn't be. Also a couple of possible fixes - for #4637 though I don't understand why the bug happens, to be - honest... also the object constructor has an assert name != NULL - and the name is only currently NULL for peer-to-peer proxies that - I don't think anyone uses? So it should be asserting. - Anyway, for now at least see if we get an earlier assertion failure. - - * glib/dbus-gvalue-utils.c: Put in a couple of assertions for - apparently broken code to be sure the tests fail and someone - will fix them... - -2006-05-07 Thiago Macieira - - * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists - and arrays when they had a single element: has_next returns - false, even before you read the element. So, instead, check - the array length. - -2006-05-06 Thiago Macieira - - * qt/qdbusmessage.cpp: - * qt/qdbustypehelper_p.h: - * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when - the list is a const-reference - -2006-05-03 John (J5) Palmieri - - * Adding old doc patch that never got applied - - * dbus/bus.c (dbus_bus_add_match): Add documentation - - * doc/dbus-specification.xml: Add documentation for the match rules - and the AddMatch and RemoveMatch methods - -2006-05-02 Thiago Macieira - - * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct - call (r535506) - - * qt/dbusidl2cpp.cpp: - * qt/qdbusabstractadaptor.cpp: - * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a - sibling of the QDBusAbstractAdaptor objects instead of the - parent. (r535848) - - * qt/dbusidl2cpp.cpp: - * qt/qdbusabstractinterface.cpp: - * qt/qdbusabstractinterface.h: - * qt/qdbusabstractinterface_p.h: - * qt/qdbusinterface.cpp: Make properties in interfaces - actually work. The code that was generated would not compile, - due to moc calls to functions that did not exist. They now - shall. (r536571) - -2006-04-30 Thiago Macieira - - * Makefile.am: - * configure.in: - * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1. - Thanks to Brad Hards for providing the patch - -2006-04-29 Thiago Macieira - - * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct - call. (r535506) - -2006-04-29 Thiago Macieira - - * qt/examples/dbus.cpp: Enhance error messages and use - QDBusInterfacePtr. - -2006-04-29 Thiago Macieira - - * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr - and disable the copy operators. (r533772, r534746) - - * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929) - - * qt/qdbusabstractinterface.cpp: - * qt/qdbusabstractinterface.h: Change the default call mode to - not use the event loop. Add convenience call() methods that - take a CallMode parameter. (r534042) - - * qt/qdbusconnection.h: Change the default call mode to not - use the event loop. (r534042) - - * qt/qdbusinterface.cpp: - * qt/qdbusinterface.h: Add a method to tell us if the - interface is valid (since we don't return a null pointer - anymore) (r534099) - - * qt/qdbusinterface_p.h: Don't crash if metaObject is 0 - (r534101) - - * qt/qdbusinternalfilters.cpp: Decouple the introspection - function in two so taht we get the chance to introspect - without having a QDBusMessage (r534102) - - * qt/qdbusbus.h: - * qt/qdbusconnection.cpp: - * qt/qdbusconnection_p.h: - * qt/qdbusintegrator.cpp: Keep a list of our own names to - avoid a round-trip to the server when attempting to introspect - one of our own objects. Also make sure the filter functions - match the empty interface as well. (r534108) - Don't keep the connection names. Instead, trust the unique - connection name (r534111) - Remove event loop usage (r534112) - -2006-04-29 Thiago Macieira - - * qt/qdbusintegrator.cpp: Fix assertion failure spotted by - Brad Hards. - -2006-04-28 Robert McQueen - - * glib/dbus-gproxy.c: Fix properties so that they can be given in - any order, making it easier for people who inherit from this - object. - -2006-04-28 Robert McQueen - - * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking - of memory from within pointer arrays and lists. Fixes bug #6300. - -2006-04-28 Robert McQueen - - * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in - generating struct signatures. Fixes bug #6083. - -2006-04-28 Robert McQueen - - * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc - to qdbusconnection_p.moc. - -2006-04-24 John (J5) Palmieri - - * README, INSTALL: Doc fixes - Patch from Brad Hards - -2006-04-23 Thiago Macieira - - * qt/examples/dbus.cpp: Use the new merged-interface mode for - the dynamic meta object. No need to guess which interface to - call. - -2006-04-23 Thiago Macieira - - * qt/qdbusconnection_p.h: - * qt/qdbusmetaobject.cpp: - * qt/qdbusmetaobject_p.h: - * qt/qdbusintegrator.cpp: Use the new merged-interface mode - for the dynamic meta object. No need to guess which - interface to call. - * qt/qdbusabstractinterface_p.h: - * qt/qdbusconnection.cpp: - * qt/qdbusintegrator.cpp: - * qt/qdbusinterface.cpp: - * qt/qdbusinterface.h: Make findInterface always return a non-null pointer. - Add a QDBusRef that looks and behaves like DCOPRef. - -2006-04-23 Thiago Macieira - - * dbus/dbus-connection.c: Interfaces are optional in method - calls, so don't give up if the interface parameter is NULL. - Patch reviewed by Havoc Pennington. - -2006-04-23 Thiago Macieira - - * qt/qdbusreply.h: Add default constructor and operator= - (r532625) - * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach() - in public headers (r532952) - * qt/qdbusabstractinterface.cpp: - * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and - make it the default (r532951) - -2006-04-19 John (J5) Palmieri - - * dbus/dbus-connection.c: Fix asserts - Patch from Tim Moloney - -2006-04-19 John (J5) Palmieri - - * mono/Connection.cs, mono/Message.cs: Check Target type - Patch from Aaron Bockover (abockover at novell.com) - -2006-04-13 Thiago Macieira - - * INSTALL: fine-tune the requirements for the Qt4 binding. - -2006-04-16 Daniel P. Berrange - - * tools/dbus-print-message.c: Added support for printing of all - remaining data types. Fixed logic for indentation of compound - data types. - -2006-04-15 Daniel P. Berrange - - * INSTALL: fill out content of file providing DBus specific - build installations, followed by generic Auto* INSTALL file - content - -2006-04-13 Thiago Macieira - - * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug. - Patch by Stefan Eilers. (r529537) - -2006-04-13 Thiago Macieira - - * qt/qdbusinternalfilters.cpp: Don't show the parent's - contents (r528208) - -2006-04-10 Thiago Macieira - - * qt/Makefile.am: fix the dependency for - qdbusconnection_p.moc. It's included in qdbusintegrator.cpp, - not in qdbusconnection.cpp. - Thanks to Jakub Stachowski for - spotting this. - -2006-04-10 Thiago Macieira - - * qt/examples/listnames.cpp: - * qt/examples/Makefile.am: Three ways to list the names on the - bus. - -2006-04-10 Thiago Macieira - - * test/qt/tst_hal.cpp: Remove the waiting, since it's not - needed anymore. Requires Qt 4.1.3 to work properly. (r528148) - -2006-04-10 Thiago Macieira - - Merge from Subversion: - * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to - something that exists (r526315) - * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable - slots/signals (r526316) - * qt/qdbusinternalfilters.cpp: Fix the setProperty call and - also return an unknown-method error if the parameters don't - match for org.freedesktop.DBus.Properties. (r526842) - * qt/examples/dbus.cpp: Allow passing of QVariants (r526843) - * qt/qdbusintegrator.cpp: Restore the proper order of - delivery: don't make method returns be delivered on priority - (r528150) - -2006-03-28 Thiago Macieira - - * configure.in qt/Makefile.am: add qt/examples - * qt/examples: Add QtDBus example programs: - - hello: Hello, World - - ping: Simple method-calling program - - pong: Simple object-exporting program (not using adaptors) - - complexping: Interactive method-calling program - (also gets and sets properties). - - complexpong: Sample program exporting methods, signals and - properties, using adaptors. - - dbus: Simple implementation of a generic method-calling - program, similar to 'dbus-send', but with semantics - similar to 'dcop'. - - chat: Simplistic chat program, implemented using signals - and the system bus. Looks like IRC. - -2006-03-28 Thiago Macieira - - * configure.in: Detect QtGui (necessary for one of the - example programs). Note: this increases the minimum required - version of Qt to 4.1.3. - -2006-03-28 Thiago Macieira - - * test/qt/*: Sync with KDE Subversion revision 523647. - Update the testcases to the new API. Remove testcases for - classes that are no longer public or have been removed. - -2006-03-28 Thiago Macieira - - * qt/*: - * dbus/qdbus.h: Sync with KDE Subversion revision - 523647. Hopefully, this will be the last of the - source-incompatible changes. Documentation has been improved; - support for QList has been added; QDBusObject is - gone; QDBus(Abstract)Interface is now a QObject with - auto-generated meta-object; QDBusIntrospection is marked - private, since QMetaObject can be used now; lots of bugfixes. - -2006-03-16 John (J5) Palmieri - - Patch from Milosz Derezynski - - * configure.in: - Output the service directory in the configure summary - - * dbus-1.pc.in: - Add session_bus_services_dir - -2006-03-10 Ross Burton - - * tools/dbus-print-message.c: - Add support for object paths and signatures. - -2006-03-06 Sjoerd Simons - - * bus/bus.c: (bus_context_reload_config): Flush the user database cache on - config reload. - * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group - information caches - * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): - * dbus/dbus-hash.h: Add function to remove all entries from a hash table - * dbus/dbus-userdb.c: (_dbus_user_database_flush): - * dbus/dbus-userdb.h: Add function to flush all user/group information - caches. - -2006-03-06 Thiago Macieira - - * qt/dbusidl2cpp.cpp: - * qt/Makefile.am: add the dbusidl2cpp tool, the replacement - for dcopidl2cpp, found in the KDE installations (or the more - modern kalyptus): generate Qt4 C++ code for the input XML - introspection. Currently no IDL parsing. - -2006-03-06 Thiago Macieira - - * test/qt/*: Update the self-tests. - -2006-03-06 Thiago Macieira - - * qt/*: - * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This - represents the first feature-complete version of the Qt4 - bindings since I took ove maintainership. - -2006-03-06 Thiago Macieira - - * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings - dir. This is C++, so we can't use the DBus ones. - -2006-03-02 John (J5) Palmieri - - * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h - (Patch from Artem Kachitchkine ) - -2006-03-02 John (J5) Palmieri - - * dbus/dbus-connection.c: - (_dbus_connection_block_pending_call): - Check to see if our data has already been read off the connection - by another blocking pending call before we block in poll. - (check_for_reply_and_update_dispatch_unlocked): - Code taken from _dbus_connection_block_pending_call - checks for - an already read reply and updates the dispatch if there is one. - - * test/name-test/test-pending-call-dispatch.c: - New test for making sure we don't get stuck polling a - dbus connection which has no data on the socket when - blocking out of order on two or more pending calls. - -2006-02-28 Thiago Macieira - - * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues: - make/automake don't detect that we're talking about the same - .lo file if I specify the full path to the source files. - -2006-02-26 Havoc Pennington - - * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed - - * dbus/dbus-bus.c (internal_bus_get): in the error message if the - session bus variable is unset, suggest "man dbus-launch" and "man - dbus-daemon" to figure out how to fix the problem - -2006-02-25 Havoc Pennington - - * glib/dbus-glib-tool.c (usage): fix up the usage message, someone - should make this thing use the new glib options parser - -2006-02-25 Thiago Macieira - - * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the - .lo files taking moc sources. - -2006-02-25 Havoc Pennington - - * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h - and install it as a public header - -2006-02-24 John (J5) Palmieri - - * Released 0.61 - -2006-02-24 John (J5) Palmieri - - * proxies.py: Fix the callchain - -2006-02-24 John (J5) Palmieri - - * patch from Sjoerd Simons : - - * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to - dbus/dbus-sysdeps.c - - * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't - call _dbus_group_info_free_allocated which causes infinite loop, - correctly call _dbus_group_info_free - -2006-02-20 Thiago Macieira - - * qt/qdbusinterface_p.h: - * qt/qdbusinterface.cpp: Use the standard - org.freedesktop.DBus.Method.NoReply annotation for the "async" - calls instead of creating one for us. - - * qt/qdbusconnection_p.h: - * qt/qdbusintegrator.cpp: Remove debugging code. - - * qt/qdbusintegrator.cpp: - * qt/qdbusmessage.cpp: - * qt/qdbusmessage_p.h: - * qt/qdbusmessage.h: Change the behaviour of automatic - reply-sending: now a reply is always sent, unless the caller - didn't request one or if the user slot has already sent one. - -2006-02-16 Robert McQueen - - * configure.in: Patch from Debian packages by Sjoerd Simons - to add --with-qt-moc and --with-qt3-moc - arguments so it's possible to build both bindings in the - same tree. - - * qt/Makefile.am: Fix truncated value so that make dist works. - -2006-02-16 Robert McQueen - - * acinclude.m4, configure.in: Patch from Brad Hards - to avoid warnings from autoconf 1.9 by - improving quoting, re-ordering a few checks, and a few other - aesthetic tidy-ups. - -2006-02-16 Robert McQueen - - * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): - Patch from Rob Taylor to correct a bogus - assertion that the next element to read from the iter is fixed in - size. This is not the case when you are at the end of the iter, - because the next element type is INVALID. - - * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a - a bogus assert which means that you may not initialise a 0-length - string unless you provide a non-NULL pointer. This prevented - you from marshalling messages containing zero-length arrays in - some cases. - - * glib/dbus-gvalue.c (demarshal_collection_array): Another patch - from Rob to correct bogus asserts when trying to demarshal an - array and get_fixed_array got you 0 elements. Append nothing to - the GArray in this case. - - * test/glib/test-dbus-glib.c: Add a test case for round-tripping - an empty array via the glib bindings. Without all of the above - patches, this new test fails. - -2006-02-16 Robert McQueen - - * glib/dbus-gmain.c: Make the previous commit compile. - - * python/_dbus.py, python/matchrules.py: Patch from Ole Andre - Ravnaas to allow you to - specify sender_keyword="foo", path_keyword="bar" when adding - a signal listener, so that you can bind to signals generically - but still do something useful in your callback. - - * python/dbus_bindings.pyx: Demarshal the byte type as unsigned - chars so that they're not cast to chars and made negative. Thanks - to Jakub Stachowski for reporting this and testing the fix. - -2006-02-15 John (J5) Palmieri - - * dbus/dbus-glib.h: - * glib/dbus-gmain.h: - (dbus_g_connection_open): new method for openning - a connection to an arbitrary address in the glib bindings - - * ChangeLog: checkin last entry which doesn't seem to be commited - -2006-02-13 John (J5) Palmieri - - * tools/dbus-launch.c: Fixed sh syntax output - -2006-02-13 Robert McQueen - - * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c, - glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c, - glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c, - glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c: - Patch from Rob Taylor to add a big - missing piece of the glib bindings jigsaw puzzle. This modifies - the existing specialised types to have N type parameters (rather - than the current 1 or 2 for arrays and dictionaries respectively). - You can then use this to get a glib type to represent any arbitrary - D-Bus struct type using dbus_g_type_get_struct. The only - implementation of these types is with GValueArrays as before, - but it's now possible to store these in arrays, emit them in - signals, etc. - -2006-02-10 John (J5) Palmieri - - * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly - deal with nested arrays (Bug #5823) Patch by Thiago Macieira - - -2006-02-10 John (J5) Palmieri - - * mono/doc/Makefile.am: Fix parallel make problem with mono-doc - (Bug #4213) Patch from Doug Goldstein - -2006-02-10 John (J5) Palmieri - - * bus/connection.c (bus_connections_expect_reply): Make - pending reply limit not common to all connections (Bug #5416) - Patch from Kimmo Hämäläinen - -2006-02-10 John (J5) Palmieri - - * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720) - -2006-02-10 John (J5) Palmieri - - * gcj/Makefile.am: point to correct jar command (Bug #4529) - patch from Doug Goldstein - -2006-02-09 Joe Shaw - - * mono/Arguments.cs: Fix a magic number in the mono bindings - that doesn't work on 64 bit arches. Patch from Peter Johanson. - -2006-01-27 Robert McQueen - - * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's - patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol - when generating the client-side methods, instead of overloading - CSymbol which broke everything horribly. My apologies. - -2006-01-27 Robert McQueen - - * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch - by me and Rob Taylor to add a simple_free function to D-Bus map - and collection types, which allows those types which can be freed - with a GDestroyNotify (such as GHashTables and GArrays, but not - GPtrArrays) to be stored as the values in hashtables. - - * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}: - Patch by Rob Taylor to add nested dicts to the glib tests to check - the above code works, and appears not to leak when called repeatedly. - -2006-01-27 Robert McQueen - - * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor - to free a D-Bus allocated string with dbus_free () instead of - g_free (). - -2006-01-27 Iain Holmes - - * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose - method from being called multiple times. - -2006-01-19 Robert McQueen - - * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor - to add support for generating bindings - to arrays that are represented as GPtrArrays rather than GArrays (ie - size-variable things, such as strings, objects, structs, etc). - -2006-01-05 Robert McQueen - - * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki - to make it possible to inherit from - DBusGProxy, by splitting the DBusGProxy struct into a public part and - a private part, and moving the setting of the DBusGProxyManager into a - connection property, allowing proper GObject construction. - -2006-01-05 Robert McQueen - - * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki - to make dbus-binding-tool heed C symbol name - annotations when generating glib client bindings. - -2005-12-19 John (J5) Palmieri - - * dbus/dbus-shared.h: Call it shared constants instead of shared macros - - * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings - -2005-12-19 John (J5) Palmieri - - * dbus/dbus-shared.h: add DOxygen markup to quiet warnings - -2005-12-19 John (J5) Palmieri - - * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@}) - -2005-12-19 Ross Burton - - * doc/dbus-tutorial.xml: - Document the Glib client-side bindings, and list all possible annotations. - -2005-12-19 John (J5) Palmieri - - * dbus/bus.c (dbus_bus_release_name): Add documentation - -2005-12-06 Robert McQueen - - * python/service.py: s/sucessful/successful/ so we're allocating to - and reading from the same variable. Oops. - -2005-11-30 John (J5) Palmieri - - * Released 0.60 - -2005-11-30 John (J5) Palmieri - - * test/qt/Makefile.am: build from srcdir - - * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE - Note - this code is wrong and needs to be fixed by the Qt binding - developers. The flags should be treated as bitfields and not enums. - - * qt/qtconnection.h: Change ProhibitReplace to AllowReplace - -2005-11-30 John (J5) Palmieri - - * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, - link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods - in production code - -2005-11-30 John (J5) Palmieri - - * dbus/dbus-connection.c (dbus_connection_read_write): Add new - method for getting messages off the bus in the absence of a - mainloop. This method is much like - dbus_connection_read_write_dispatch except it does not dispatch - the messages to a registered filter function. Instead it - allows a developer to process messages by directly popping - them off the bus. - -2005-11-30 John (J5) Palmieri - - * bus/desktop-file.c (parse_key_value): Ignore locales allowing - the parser to continue instead of returning error - (bus_desktop_file_load): Do not free parser data when - parse_section_start or parse_key_value fails because it was - already freed by parser_free (patch from Carlos Garcia Campos - ) - -2005-11-30 John (J5) Palmieri - - * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c, - dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c - glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c - test/test-segfault.c, test/test-utils.c, - test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c - tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c: - Various cleanup of dead code and compiler warnings (patch from - Kjartan Maraas ) - -2005-11-30 John (J5) Palmieri - - * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak - (patch from Carlos Garnacho Parro - -2005-11-27 Robert McQueen - - * python/dbus_bindings.pyx: Repair my previous commit which reverted - part of the preceding one. Oops. Merge patch by Johan Hedberg - to fix marshalling of 16-bit integer values - on big-endian platforms. - - * test/python/test-client.py: Add some 16-bit integers to the test - values. - -2005-11-27 Carlos Garcia Campos - - * glib/dbus-gobject.c: Append a GValue instead of a basic type in - method return message for property getters - -2005-11-27 Robert McQueen - - * python/dbus_bindings.pyx: Fix a bug where doing a strict append - with type v of an instance of dbus.Variant(foo, type='x') caused - it to be boxed twice before sending over the bus. - - * python/dbus_bindings.pyx, python/service.py, - test/python/test-client.py: Update the constants for the new - request_name flags, and update comments/test cases now that queueing - is the default action. - -2005-11-22 John (J5) Palmieri - - * configure.in: - - Change version to 0.60 for impending release - - upped the sonames because of ABI and API breakage - -2005-11-22 John (J5) Palmieri - - * configure.in: Add test/name-test/Makefile to the generated - Makefile list - - * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT): - New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT - (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying - not to queue an ower if it can't be the primary owner - - * bus/bus.h: Add new internal BusOwner struct - - * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default) - to bus_registry_ensure and don't set the prohibit_replacement flag - since they are now set per BusOwner and not per name. - (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) - that returns the list of connections in a name's connection queue - - * bus/services.c (struct BusService): remove prohibit_replacement field - (struct BusOwner): new struct for keeping track of queued connections - and their associated flags for the queue - (struct BusRegistry): add a BusOwner memory pool - (bus_registry_new): initialize the BusOwner memory pool - (bus_registry_unref): free the BusOwner memory pool - (_bus_service_find_owner_link): new internal method for - searching the queue for a specific connection - (bus_owner_set_flags): new method for adding setting the flags on a - bus owner - (bus_owner_new): new method that creates a BusOwner object from the - pool and sets its flags - (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects - (bus_registry_ensure): Add the flags parameter - (bus_registry_acquire_service): Switch from using raw connections to - using the BusOwner struct - Add new state machine for dealing with the new set of flags - (bus_registry_set_service_context_table, struct OwnershipCancelData, - cancel_ownership, free_ownership_cancel_data, - add_cancel_ownership_to_transaction, struct OwnershipRestoreData, - restore_ownership, free_ownership_restore_data, - add_restore_ownership_to_transaction): Switch to using BusOwner - instead of raw connections - (bus_service_add_owner): Add flags parameter - Switch to using BusOwner instead of raw connections - Add state machine for dealing with the new set of flags - (bus_service_swap_owner): Swaps the first and second owners in the - queue. Used to make sure proper signals are sent when a service looses - or gains primary ownership. We never insert an owner at the top of the - queue. Instead we insert it in the second position and then swap. - (bus_service_remove_owner): Remove the owner from the queue sending - out the NameLost and NameOwnerChanged signals if the we were the - primary owner - (bus_service_get_primary_owners_connection): New method that extracts - the connection from the primary owner - (bus_service_get_primary_owner): Returns the BusOwner instead of the - connection - (bus_service_get_allow_replacement): Changed from the old - bus_service_get_prohibit_replacement method. Checks the flags of the - primary owner and returns if it can be replaced or not - (bus_service_set_prohibit_replacement): removed - (bus_service_has_owner): returns TRUE if and owner with - the specified connection exists in the queue - - * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper - method that only compiles if tests are enabled. Allows us to get the - unique name of a connection so we can check it against the queue when - doing regression tests - - * bus/activation.c (bus_activation_send_pending_auto_activate), - bus/dispatch.c (bus_dispatch), - bus/driver.c (bus_driver_handle_get_service_owner, - bus_driver_handle_get_connection_unix_user, - bus_driver_handle_get_connection_unix_process_id, - bus_driver_handle_get_connection_selinux_security_context), - bus/signals.c (connection_is_primary_owner): - use bus_service_get_primary_owners_connection instead of - bus_service_get_primary_owner - - * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, - _dbus_listen_unix_socket): Calculate the length of the socket - path and use that instead of using a fixed length which was - causing socket names to contain many trailing Nul bytes. - - * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c - (dbus_g_method_get_sender): New method for extracting the sender - from a DBusGMethodInvocation - (dbus_g_method_return_get_reply): changed name to - dbus_g_method_get_reply - (dbus_g_method_return_send_reply): changed name to - dbus_g_method_send reply - - * doc/dbus-specification.xml: New docs that describe how the new - queueing system works and talks about the changes to the how - we specify socket names - - * glib/examples/example-service.c, - glib/examples/example-signal-emitter.c, - glib/examples/statemachine/statemachine-server.c: - Changed the RequestName flags to the new system - - * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New - regression test suite for testing various states of the new - queueing system - -2005-11-15 Robert McQueen - - * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob - Taylor to add two methods, dbus_g_method_return_get_reply and - dbus_g_method_return_send_reply, to allow you to get the reply - message from a DBusGMethodInvocation, append arbitrary stuff to it, - and send it. The GLib bindings can't marshal a return value of - something like a(s) if the array is empty - ultimately they should be - made to heed the signature of the out arguments as the Python bindings - now can, but this is a workable interim solution which might have - other applications. - -2005-11-15 Robert McQueen - - * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName - method to org.freedesktop.DBus to release a bus name or give up - waiting in the queue for it. - - * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a - dbus_bus_release_name method to send the ReleaseName method calls. - Add constants for the return values to dbus/dbus-shared.h. - - * doc/dbus-specification.xml: Document the new ReleaseName method - in the specification. - - * python/dbus_bindings.pyx: Add a low-level python binding for the - release name method. - - * python/exceptions.py, python/service.py: Make freeing BusName - objects release the name. Add a NameExistsException, and fix a - bug with creating UnknownMethodException. - - * test/python/test-client.py: Add tests for freeing BusName - objects causing names to be released. - -2005-11-14 Robert McQueen - - * python/service.py: Include the traceback in the error reply when we - send an exception over the bus. _BEST_ _PATCH_ _EVER_ - -2005-11-14 David Zeuthen - - Patch from Timo Hoenig . - - * bus/bus.c: I've recently investigated why the automatic reload - of configuration files does not work as expected. - - Currently, reloading configuration files does only work when - running dbus-daemon with --nodaemon. If we are running as daemon - we're hitting a dnotify bug once we fork the process. - - We're initializing the dnotify fds before calling fork(). Once - the child process forked it does still have the fds (and they - still show up in /proc/`pidof dbus-daemon`/fd/) but we're not - getting SIGIO as changes are made to the configuration files. - - The attached patch moves the initialization of the dnotify fds to - process_config_postinit(). This is safe for all current code - paths and solves the dnotify disfunction. If we're running - dbus-daemon as daemon the fds for dnotify are now being - initialized after fork() for the child process. - - * configure.in: The current configure.in check for dnotify probes - 'x$target_os' for being 'xlinux-gnu'. I've changed the check to - match for 'xlinux', too. Additionally I have adapted the configure - option's style to match with the others. - -2005-11-14 Robert McQueen - - * python/decorators.py, python/service.py: Add a new argument to the - dbus.service.method decorator called sender_keyword, which if set, - specifies the name of an argument which will be provided the bus - name of the method caller. - - * test/python/test-client.py, test/python/test-service.py: Add a - method and test to check the sender_keyword functionality. - -2005-11-07 John (J5) Palmieri - - * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an - empty reply so blocking calls don't block forever (Patch from Sjoerd - Simons ) - - * AUTHORS: Add Robert McQueen for his work on the Python - Bindings and other parts of D-Bus - -2005-11-07 Robert McQueen - - * python/decorators.py: Change emit_signal function to use the - signature annotation of the signal when marhsalling the arguments from - the service. Fix a bug where the code checking signature length - against argument length referenced the wrong variable. - - * python/introspect_parser.py: Avoid adding the type signature of - signal arguments to any methods which occur after them in the - introspection data (!) by making the parser a little more careful - about its current state. - - * python/service.py: Remove debug prints from last commit (again :D). - - * test/python/test-client.py, test/python/test-service.py: Add test - signals with signature decorators to test the strict marshalling code - gives errors at the right time. Could do with checking the signals - actually get emitted too, given that the test does nothing with - signals at the moment... - -2005-11-07 Robert McQueen - - * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus - instances to stop madness of creating new instances representing - the same bus connection all the time, rendering any tracking of - match rules and bus names quite meaningless. Caught a bug where - the private argument to SessionBus() and friends was being passed - in as use_default_mainloop by mistake. Still some problems with - multiple dbus_binding.Connection instances representing the same - low-level connection (eg when you use both SessionBus() and - StarterBus() in same process), but it's a lot better now than it - was. - - * python/dbus_bindings.pyx: Add constants with the return values - for bus_request_name(). - - * python/service.py: Store bus name instances in a per-dbus.Bus cache - and retrieve the same instances for the same name, so deletion can be - done with refcounting. Also now throws some kind of error if you - don't actually get the name you requested, unlike previously... - - * test/python/test-client.py: Add tests for instance caching of buses - and bus name objects. - -2005-11-04 Robert McQueen - - * python/dbus_bindings.pyx, test/python/test-client.py: Fix - marshalling of boolean values. Add some booleans to the values in - the test client. - - * python/decorators.py, python/service.py: Add an 'async_callbacks' - argument to the dbus.service.method decorator, which allows you to - name arguments to take two callback functions for replying with - return values or an exception. - - * test/python/test-client.py, test/python/test-service.py: Add test - case using asynchronous method reply functions, both return values and - errors, and from within both the function itself and from a mainloop - callback. - - * python/decorators.py, python/service.py: Perform checking that the - number of method/signal arguments matches the number of types in the - signature at class loading time, not when you first introspect the - class. - - * python/service.py: Remove debug print left by the last commit. - -2005-11-03 Robert McQueen - - * python/service.py: Heavy refactoring of method invocation, with - hopefully no effect on functionality. Nuked _dispatch_dbus_method_call - in favour of a new _message_cb that uses seperate functions for - looking up the method to call, marshalling the return values, and - sending exceptions as errors, and is easier to follow as a - consequence. Fixes some corner cases about returning things that - don't match your declared out_signature, allows exceptions to define - _dbus_error_name and have it be sent over the bus as the error name, - and paves the way for cool stuff like heeding the message no reply - flag, asynchronous method implementations, informing the method of the - sender, and including backtraces in the error messages. - - * test/python/test-client.py: Catch and print exceptions thrown in the - async callback tests, rather than passing them to the low-level - bindings to be ignored in a noisy and frustrating manner. - -2005-11-03 Robert McQueen - - * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__ - functions to dbus.Bus, dbus.service.BusName and dbus.service.Object, - tweak others to be consistent. - - * test/python/test-client.py: Tweak output of testInheritance. - -2005-10-29 Robert McQueen - - * python/service.py: Major changes to allow multiple inheritance - from classes that define D-Bus interfaces: - - 1. Create a new Interface class which is the parent class of - Object, and make the ObjectType metaclass into InterfaceType. - - 2. Patch written with Rob Taylor to replace use of method_vtable - with code that walks the class's __MRO__ (method resolution order) - to behave like Python does when invoking methods and allow - overriding as you'd expect. Code is quite tricky because - we have to find two methods, the one to invoke which has the - right name and isn't decorated with the /wrong/ interface, - and the one to pick up the signatures from which is decorated - with the right interface. - - The same caveats apply as to normal multiple inheritance - - this has undefined behaviour if you try and inherit from two - classes that define a method with the same name but are - decorated with different interfaces. You should decorate - your overriding method with the interface you want. - - 3. Replace grungy introspection XML generation code in the metaclass - with dictionaries that cope correctly with multiple inheritance - and the overriding of methods. This also uses the signature - decorations to provide correct introspection data, including - the debut appearance of the types of your return values. :D - - * test/python/test-client.py, test/python/test-service.py: Add a test - case to try invoking an method that overrides one inherited from a - D-Bus interface class. - -2005-10-29 Robert McQueen - - * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert(). - Add checking for the end of struct character when marshalling a - struct in MessageIter.append_strict. - - * python/examples/example-service.py, - python/examples/gconf-proxy-service.py, - python/examples/gconf-proxy-service2.py: Update to use gobject - mainloop directly rather than appearing to depend on gtk. - - * python/test/test-client.py, python/test/test-server.py: Remove - obsolete and broken test scripts for old bindings. We have up to date - and working tests in test/python/. - -2005-10-29 Robert McQueen - - * python/decorators.py: Add optional arguments to the method and - signal decorators to allow you to specify the signature of arguments - and return values. Preserve the doc strings of signal functions in the - decorated version, for pydoc and friends. - - * python/dbus_bindings.pyx, python/proxies.py: Replace the - parse_signature_block function with an iterable dbus.Signature() - type. Fix a bug in MessageIter.append_strict where you could append - anything by claiming it was a string. - - * python/service.py: Use the out_signature decoration on methods to - marshal return values, meaning you no longer require dbus.Array() - or dbus.Dictionary() to indicate the type when returning empty - arrays or dictionaries. Fix a bug where exceptions which are defined - in __main__ are not turned into error replies. - - * test/python/test-client.py, test/python/test-service.py: Add test - for correct marshalling of return values according to out_signature. - Fix a bug in the async call test where the error_handler is missing a - self argument. - -2005-10-29 Robert McQueen - - * glib/Makefile.am, glib/examples/Makefile.am, - glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by - Daniel Stone to replace explicit calls to libtool with $(LIBTOOL). - - * test/python/.cvsignore: Add run-with-tmp-session-bus.conf. - - * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch - from Ubuntu by Daniel Silverstone to allow specifying match rules on - the command line. - -2005-10-27 Ross Burton - - * dbus/dbus-marshal-header.c: - Remove dead code. - - * glib/dbus-gobject.c: - Stop compiler warning. - -2005-10-25 Ross Burton - - * dbus/dbus-auth.c: - * dbus/dbus-server-unix.c: - * dbus/dbus-transport-unix.c: - * glib/dbus-gmain.c: - * glib/dbus-gobject.c: - Add some const keywords. - -2005-10-25 Ross Burton - - * doc/dbus-specification.xml: - Document the NoReply annotation. - - * glib/dbus-binding-tool-glib.h: - * glib/dbus-binding-tool-glib.c: - Respect the NoReply annotation. - -2005-10-24 Robert McQueen - - * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings - derive from unicode instead of str, and encode/decode UTF-8 when - marshalling/unmarshalling bus messages - - * python/introspect_parser.py: encode introspection data as UTF-8 - before passing the buffer into libxml2 - - * test/python/test-client.py: add unicode test strings - - * test/data/valid-service-files/.cvsignore, test/python/.cvsignore: - ignore generated python test files - -2005-10-17 John (J5) Palmieri - - * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble - and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT) - (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble - - * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing - DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters - when constructing struct signatures - - * python/_dbus.py (Bus): handle private connections using the - private keyword in the constructor. defaults to private=False - (Bus::close): new method to close a connection to the bus - - * python/dbus_bindings.pyx (Connection::close): renamed method - was previously called disconnect - (bus_get): now supports getting a private connection - - * python/proxies.py (ProxyMethod::__call__): check if ignore_reply - keyword is set to True. if it is, execute the method without waiting - for a reply - (ProxyObject::_introspect_execute_queue): new method for executing - all the pending methods that were waiting for the introspect to - finish. this is called when introspect either succeeds or fails - (ProxyObject::_introspect_error_handler): call queued methods - -2005-10-14 John (J5) Palmieri - - * python/dbus_bindings.pyx (MessageIter::append_strict): check for - STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct - - * python/service.py (Object::_message_cb): handle exceptions correctly - by sending them over the wire to the calling app. This makes sure - the client returns immediately instead of waiting the 15 seconds to - timeout. - - * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): - Add a test to benchmark how long it takes to introspect a service and - call a method which returns a large element (pretty fast) - - * test/python/test-service.py (TestObject::GetComplexArray): new test - method which pushes a lot of data - -2005-10-13 John (J5) Palmieri - - * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method): - reclaim memory outside of the loop and use del istead of just setting - the key to None - -2005-10-13 John (J5) Palmieri - - * python/service.py (ObjectType::_reflect_on_signal): Always close - signal tag even when there are no arguments - -2005-10-13 John (J5) Palmieri - - * configure.in: Set mono, mono-docs and Qt3 to default - to no instead of auto when building. These bindings do not - have full time maintainers and will not be supported for the - 1.0 release. - -2005-10-12 John (J5) Palmieri - - patches from Michael Krivoruchko : - - * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link, - _dbus_connection_message_sent, - _dbus_connection_send_preallocated_unlocked_no_update, - _dbus_connection_pop_message_link_unlocked): handle the case when path - is NULL when calling _dbus_verbose - - * configure.in: check for functions getpeerucred and getpeereid - - * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides - support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, - OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). - Patch was only tested on Solaris 10 x86 so it might be issues - with other platforms (i.e. BSDs and MacOSX) - - -2005-10-05 John (J5) Palmieri - - * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal - instead of marshal basic so we can handle recursive types in a variant - - * test/glib/test-dbus-glib.c: Add test for marshaling recurive types - in variants - - * test/glib/test-service-glib.c, test-service-glib.xml - (my_object_echo_variant [EchoVariant], - my_object_process_variant_of_array_of_ints123 - [ProcessVariantOfArrayOfInts123]): - Add two test methods - - * python/introspect_parser.py: New module for parsing introspect - data. - - * python/dbus_bindings.pyx: - (various places): when throwing errors fix to use errormsg instead - of message local variable because Pyrex can get confused with other - message variables (initial patch by Robert McQueen - ) - (MessageIter::parse_signature_block): new method for getting the next - block in a signiture. - (MessageIter::append_strict): new method for appending values strictly - using the passed in signature instead of guessing at the type - (MessageItter:: append_dict, append_struct, append_array): use - signatures to marshal children if the signature is available - - * python/exceptions.py (IntrospectionParserException): new exception - - * python/proxies.py (ProxyMethod::__call__): Marshal args with - introspected signatures if available, else we fall back to the - old way of doing things. - (ProxyObject::_introspect_reply_handler ): parse introspection data - - * python/service.py (ObjectType::_reflect_on_method): Properly - terminate if there are no args in the reflection data - - * test/python/test-client.py: add tests for talking with the GLib - test server. This gives us better coverage for introspection since - python to python will always generate arguments as variants. It also - allows us to test the robustness of the GLib bindings and interlanguage - communications. - - -2005-10-03 John (J5) Palmieri - - * bus/driver.c (bus_driver_handle_introspect): Add signals - to the introspect data. (patch from Daniel P. Berrange - ) - - * bus/dispatch.c (check_existent_ping): Add testcase for Ping - - * dbus/dbus-connection.c (_dbus_connection_peer_filter, - _dbus_connection_run_builtin_filters): Changed these to - be unlock_no_update functions and call - _dbus_connection_send_unlocked_no_update instead of - dbus_connection_send to avoid locking errors. - - * doc/TODO: Removed the make Ping test TODO - -2005-09-26 John (J5) Palmieri - - * dbus/Python.pyx: Fixed memory leaks when throwing errors. - We now copy the message from a DBusError and then free - the error object befor throwing the error - - * glib/dbus-glib-tool.c: removed extra comma at the end of the - DBusBindingOutputMode enum which was causing a warning. - #include so using time_t is explicitly defined - -2005-09-26 John (J5) Palmieri - - * Integrate patches from Lennart Poettering : - - dbus/dbus-bus.c - (internal_bus_get): new method that take over the heavy lifting - of dbus_bus_get and adds the ability to get a private connection - to the bus - (dbus_bus_get): wrapper to internal_bus_get that provides the same - interface as in previous versions - (dbus_bus_get_private): new method that is a wrapper to - internal_bus_get to get a private connection to the bus - - - dbus/dbus-bus.h - (dbus_bus_get_private): add as a public libdbus interface - - - dbus-1.pc.in: output system_bus_default_address and - sysconfdir variables so apps can use them when compiling - -2005-09-23 Harald Fernengel - * dbus/qt: New Qt bindings - -2005-09-12 Waldo Bastian - - * dbus/dbus-marshal-validate.c, - doc/dbus-specification.xml, test/Makefile.am, - test/test-names.c: allow hyphens in bus names. - -2005-09-11 Mark McLoughlin - - * test/data/auth/fallback.auth-script: we don't - retry the EXTERNAL method when we know its going - to fail anymore. - -2005-09-11 Mark McLoughlin - - * dbus/dbus-connection-internal.h: rename - (add|remove|toggle)_(watch|timeout) to unlocked() - - * dbus/dbus-connection.c: ditto. - - * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c: - Update some callers for the renaming. - -2005-09-10 Mark McLoughlin - - * dbus/dbus-auth.c: (record_mechanisms): don't - retry the first auth mechanism because we know - we're just going to get rejected again. - - * dbus/dbus-keyring.c: (_dbus_keyring_reload): - Fix thinko ... and what a nasty little bugger to - track down you were ... - - * dbus/dbus-connection.c: - (_dbus_connection_add_watch), - (_dbus_connection_remove_watch): add note about - these needing the connection to be locked. - (_dbus_connection_get_dispatch_status_unlocked): - set status to DATA_REMAINS when we queue the - disconnected message. - - * bus/dispatch.c: - (bus_dispatch): fix warning. - (check_existent_service_no_auto_start): - Expect ChildSignaled error too. - (check_existent_hello_from_self): fix another - couple of warnings. - -2005-09-08 Joe Shaw - - Patches from James Willcox - - * mono/Makefile.am: Add Int16.cs and UInt16.cs - - * mono/DBusType/Array.cs: Handle multidimensional arrays, and - support array "out" parameters. - - * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files, - for 16-bit int support. - -2005-09-06 John (J5) Palmieri - - * Released 0.50 - - * Patch from Steve Grubb: - - bus/activation.c (bus_activation_service_reload_test): clean up - some indentation - - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional - - dbus/dbus-message-factory.c (generate_special): fix a couple of - buffer overflows in the test suite. This is non critical because - it can not be exploited and this code is only run when doing a - make check. - - * Patch from Yaakov Selkowitz: Build fixes for Cygwin - - configure.in: Don't check and link against kdecore, only qt headers - - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS - - gcj/org/freedesktop/dbus/Makefile.am: - add libdbus_gcj_1_la_LDFLAGS = -no-undefined - - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS - and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD - - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS - - tools/Makefile.am: Add platform extentions to binaries - (i.e. .exe on windows) - - * configure.in: - - Make it so if no suitable version of python is found we only - disable building python instead of exiting the configure script - - Require version 2.4 of glib for glib bindings - - Up version to 0.50 - - * python/__init__.py: Sync version with libdbus to (0,50,0) - -2005-09-05 Olivier Andrieu - - * dbus/dbus-object-tree.c (find_subtree_recurse): - a couple of optimizations (bug #710): - - do a binary search in the tree - - insert a new child at the right place directly, no need for - qsort anymore - - do the "double alloc" thing when allocating children - -2005-08-31 John (J5) Palmieri - - * python/Makefile.am: Break on pyrexc errors instead of ignoring them - - * python/dbus_bindings.pyx: Memory management foo - (global): remove hacky _user_data_references global list - (GIL_safe_cunregister_function_handler): userdata now stuffed into - tuples. Unref user_data - (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples - (Connection::__del__): Remove and replace with __dealloc__ method - (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF - to keep tuple from being deallocated instead of the global var hack - (Connection::register_object_path): Stuff user_data into a tuple. - Use Py_INCREF to keep tuple from being deallocated instead of the - global var hack - (Connection::register_fallback): Stuff user_data into a tuple. - Use Py_INCREF to keep tuple from being deallocated instead of the - global var hack - (GIL_safe_pending_call_notification): Don't unref the message - because it gets unreffed when going out of scope. Py_XDECREF - the user_data - (PendingCall::__del__): Remove and replace with __dealloc__ method - (PendingCall::set_notify): ref the pending call because we will - need it to stick around for when the notify callback gets called - (Message::__del__): Remove and replace with __dealloc__ method - - * python/dbus_glib_bindings.pyx (init_gthreads): Changed to - gthreads_init to match up with the dbus call - - * python/glib.py (init_threads): Changed to threads_init to match - up with gobject.threads_init(). init_threads is kept for backwards - compat but will most likely be deprecated in the future - - * test/python/test-client.py: - - revamp to use Python's unittest functionality - - add async call tests - - setup threads in glib and dbus so we make sure locks are working - -2005-08-30 John (J5) Palmieri - - * python/dbus_bindings.pyx - (_pending_call_notification, cunregister_function_handler, - cmessage_function_handler): All callback functions have been rearranged - to workaround a bug in Pyrex when working with the GIL which is Python's - global lock when dealing with threads. They have been split into - a wrapper function (which assumes the name of the old function) and - a _GIL_safe_ function which contains the functionality - of the old function. This ensures that Pyrex does not write code - the lock is released. - - -2005-08-30 John (J5) Palmieri - - * python/dbus_bindings.pyx (_pending_call_notification): Obtain the - GIL global lock when calling back into Python - -2005-08-29 John (J5) Palmieri - - * Release 0.36.2 - - * Add Havoc's patch that never got applied to HEAD (Bug #2436): - - * bus/policy.c (bus_policy_allow_user): change default "user is - allowed" to be "user has same uid as the bus itself"; any - allow/deny rules will override. - - * bus/session.conf.in: don't allow all users, since now by default - the user that ran the bus can connect. - -2005-08-26 Colin Walters - - * tools/dbus-print-message.c (print_message): Flush stdout - after printing a message, so that redirecting to a file, then - hitting Ctrl-C works. - -2005-08-25 John (J5) Palmieri - - * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it - (EmptyMessage): new class that subclasses Message. This is a workaround - to a Pyrex bug that fails to call __del__ when the Message object goes out - of scope. For some reason subclassing Message fixes this bug - (Bus::send_with_reply_and_block): use EmptyMessage instead of Message - - s/Message(_create=0)/EmptyMessage everywhere else - - * test/python/test-{server|client}.py: add the python/.libs directory - to the lookup path so dbus_bindings and dbus_glib_bindings don't - get picked up from the system - -2005-08-25 Colin Walters - - * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks - to Ryan Lortie for the suggestion. - -2005-08-24 John (J5) Palmieri - - * test/python: Add python regression test - - * configure.in: Add test/python/Makefile - - * test/Makefile.am: Add the python directory to SUBDIRS - -2005-08-24 John (J5) Palmieri - - * Release 0.36.1 - - * python/_dbus.py: - (Interface::connect_to_signal): propigate keywords for match on args - (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface - - * python/proxies.py (ProxyObject::connect_to_signal): - propigate keywords for match on args - - * Makefile.am: point everything to pyexecdir since python borks - on multilib - -2005-08-23 John (J5) Palmieri - - * Release 0.36 - -2005-08-23 Colin Walters - - * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST. - -2005-08-23 John (J5) Palmieri - - * python/dbus_glib_bindings.pyx: reorder imports and c definitions - to fix some wranings. We now use dbus_bindings.DBusConnection instead - of defining DBusConnection ourselves. - -2005-08-18 John (J5) Palmieri - - * python/dbus.pth: New path file to fix up problems when installing - c libraries to lib64 and python files to lib. - - * python/Makefile.am: install dbus.pth in the correct spot - -2005-08-17 John (J5) Palmieri - * ChangeLog: clean up my last entry a bit - - * doc/introspect.xsl: New stylesheet for converting introspection data - into browser renderable xhtml. Contributed by Lennart Poettering. - - * doc/introspect.dtd: Fixups in the introspect format from Lennart - Poettering. - - * doc/dbus-tutorial.xml: - - Add Colin Walter to the Authors section for authoring the GLib - section - - Add descriptions of the new signature and type functionality - in the Python complex type mapping section - - Add a sidenote on the new args matching functionality in - the Python bindings - - Fixed up some of the examples to use the gobject.MainLoop - instead of gtk.main - - * python/_dbus.py: - (Bus::_create_args_dict): New. Converts a hash of arg matches - to a more useable format - (Bus::add_signal_receiver): add a **keywords parameter for catching - arg match parameters - (Bus::remove_signal_receiver): add a **keywords parameter for catching - arg match parameters - - * python/matchrules.py: - (MatchTree::exec_matches): Check for arg matches - (SignalMatchRule::add_args_match): New method - (SignalMatchRule::execute): Added args_list parameter as an optimization - so we don't have to marshal the args more than once - (SignalMatchRule::match_args_from_list): New method that checks to see - if the rule's arg matches match an argument list. Only arguments - set in the rule are checked. - (SignalMatchRule::match_args_from_rule): New method that checks to see - if the rule's arg matches match another rule's. All args have to match - in order for this method to return true. If either rule has more args - then it is not a match. - (SignalMatchRule::is_match): Add args match - (SignalMatchRule::repr): Add args to the final output if they exist - -2005-08-17 Ross Burton - - * glib/dbus-gproxy.c: - (dbus_g_proxy_call_no_reply): unref the message once sent. - (dbus_g_proxy_call): protect against NULL proxy. - -2005-08-16 John (J5) Palmieri - - * python/__init__.py: Version updated (0, 43, 0) - - * python/dbus_bindings.pyx: - - Fixed type objects to have self passed into __init__ - - Added the Variant type - - Add the ability to specify types or signatures for Array, Variant - and Dictionary - (Connection::send_with_reply_handlers): return a PendingCall object - (_pending_call_notification): handle the case when an error is returned - without an error message in the body - (MessageIter::get_boolean): return True or False instead of an integer - (MessageIter::python_value_to_dbus_sig): add direct checking of types - and add checks for objects with embeded signatures or types (Array, - Variant and Dictionary) - (MessageIter::append_byte): handle case when the value is a dbus.Byte - (MessageIter::append_dict): handle embeded types or signatures - (MessageIter::append_array): handle embeded types or signatures - (MessageIter::append_variant): new method - - * python/proxies.py: - (DeferedMethod): New. Dummy executable object used when queuing calls - blocking on introspection data - (ProxyMethod::__call__): add the timeout keyword for specifying longer - or shorter timeouts for method calls - (ProxyObject): Add first pass at an introspection state machine - (ProxyObject::__init__): Add introspect keyword for turing off an on - introspection. - (ProxyObject::_Introspect): Internal Introspect call that bypasses - the usual mechanisms for sending messages. This is to avoid a deadlock - where the Intospect call would be queued waiting for the Introspect - call to finish ;-) - (ProxyObject::_introspect_reply_handler): New. This method is called - when introspection returns with no error - (ProxyObject::_introspect_error_handler): New. This method is called - when introspection encounters an error - (ProxyObject::__getattr__): Code to handle different introspection - states. Queue async calls or block blocking calls if we are - introspecting. Pass through as normal if we are not or are done with - introspecting. - - * python/service.py: Import signal and method from decorators.py - - * python/types.py: Add Variant type - -2005-08-16 Colin Walters - - * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the - DBusError message is NULL. - -2005-08-09 Havoc Pennington - - * dbus/dbus-errors.c: apply patch from Timo Teras to make a - malloc'd copy of the name parameter - -2005-08-09 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_set_reply_serial): print - warning if the reply serial is set to 0 - -2005-08-04 Colin Walters - - * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init) - (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size) - (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach) - (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values) - (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value) - (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype) - (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take): - * glib/dbus-gvalue.h (dbus_g_value_types_init) - (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant) - (dbus_gvalue_demarshal_message, dbus_gvalue_marshal): - - Prefix name with _ to ensure they're not exported. All callers - updated. - - * glib/dbus-gvalue.c (typecode_to_gtype) - (dbus_typecode_maps_to_basic, basic_typecode_to_gtype) - (signature_iter_to_g_type_dict) - (signature_iter_to_g_type_array) - (dbus_gtype_from_signature_iter, dbus_gtype_from_signature) - (dbus_gtypes_from_arg_signature): - Move to dbus-gsignature.c. - - * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call - dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init. - (dbus_binding_tool_output_glib_client): Ditto. - - * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c - and dbus-gsignature.h - - * test/glib/test-service-glib.c (my_object_rec_arrays): Delete - unused variable. - -2005-08-03 Colin Walters - - * glib/dbus-gobject.c: Add tests on hardcoded object info; this should - catch any incompatible changes accidentally made. - -2005-08-03 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix - typo, from Julien Puydt - - * bus/connection.c (bus_connection_disconnected): we were always - doing a wait_for_memory due to a buggy loop, found by Timo Hoenig - -2005-08-01 Colin Walters - - Patch from Joe Markus Clarke: - - * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix - use-after-free. - -2005-08-01 Colin Walters - - Patch from Joe Markus Clarke: - - * tools/dbus-send.c (main): - - Don't use C99 style initializers (bug #3933). - -2005-08-01 Colin Walters - - Patch from Joe Markus Clarke: - - * glib/dbus-gvalue.c (dbus_g_value_types_init): - * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) - * glib/dbus-gobject.c (write_interface): - - Don't use C99 style initializers (bug #3933). - -2005-07-31 Havoc Pennington - - * tools/dbus-viewer.c (load_child_nodes): fix invocation of - dbus_g_proxy_call, fix from Piotr Zielinski bug #3920 - -2005-07-30 Havoc Pennington - - * fix a bunch of Doxygen warnings and mistakes - -2005-07-30 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef - DBUS_BUILD_TESTS since it's now used in production code - -2005-07-29 Havoc Pennington - - * test/glib/test-profile.c (write_junk): initialize the junk - buffer so valgrind doesn't have a breakdown - -2005-07-29 Havoc Pennington - - * bus/signals.c (bus_signals_test): add match_rule_equal() tests - (match_rule_matches): remove unused arg - (test_matching): add tests for match_rule_matches() - - * bus/signals.c (bus_match_rule_parse_arg_match): add ability to - do arg0='foo' arg5='bar' in the match rules - (match_rule_matches): don't match if the arg0='foo' doesn't match. - - * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this - -2005-07-29 Ross Burton - - * dbus/dbus-connection.c: - Don't create a DBusCondVar which is never used. - -2005-07-27 Ross Burton - - * dbus/dbus-message.c: - Reduce the size of the maximum cached message to 10K. - -2005-07-25 Ross Burton - - * glib/dbus-gproxy.c: - Remove matches when all proxies are unregistered. - -2005-07-24 Colin Walters - - * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require - typedata; recursive arrays won't have it. - - * test/glib/test-dbus-glib.c: - * test/glib/test-service-glib.c: - * test/glib/test-service-glib.xml: Add recursive arrays tests. - -2005-07-20 John (J5) Palmieir - - * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py. - proxies.py, service.py: Cleanup of code after running it through the - pyflakes code checker mostly dealing with undefined names. - (Bug #3828, Patch from Anthony Baxter ) - -2005-07-17 John (J5) Palmieri - - * NEWS: Update to 0.35.2 - -2005-07-17 John (J5) Palmieri - - * python/_dbus.py: Remove import of the dbus.services - module as it no longer exists (patch from Dimitur Kirov) - - * python/service.py (Object::__init__): Fixed typo - s/name/bus_name (patch from Dimitur Kirov) - - * python/examples/example-signal-emitter.py: import dbus.glib - to get the main loop and use glib mainloop instead of gtk so - X doesn't have to be running. - - * python/examples/example-signal-recipient.py: import dbus.glib - to get the main loop and use glib mainloop instead of gtk so - X doesn't have to be running. Import the decorators module - directly. - - * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck - didn't pick up on but are needed to build - - * configure.in: upped version to 0.35.2 - - * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h: - added Colin Walters' SELinux API rename patch from head - s/unix sercurity context/selinux security context/ - -2005-07-16 John (J5) Palmieri - - * python/Makefile.am: dbus_binding.pxd.in should be included - in EXTRA_DIST not dbus_binding.pxd - fix up $(srcdir) hopefully for the last time - - * NEWS: Update to 0.35.1 - -2005-07-16 Colin Walters - - * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed - from bus_driver_handle_get_connection_unix_security_context. Update for - error usage. - (message_handlers): Update for renames. - - * bus/selinux.c (bus_selinux_allows_send): Handle OOM on - _dbus_string_init failure correctly. - (bus_selinux_append_context): Convert SID to context. Append it - as a byte array. - (bus_selinux_shutdown): Handle the case where bus_selinux_full_init - hasn't been called. - - * bus/selinux.h: Update prototype. - - * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed - from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN. - -2005-07-15 Colin Walters - - * doc/TODO: Add note about convenience wrappers. - -2005-07-15 John (J5) Palmieri - - * NEWS: Update to 0.35 - -2005-07-15 John (J5) Palmieri - - * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST - so distcheck doesn't fail - - * glib/examples/Makefile.am: Add example-service.xml and - example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail - - * glib/examples/statemachine/Makefile.am: Add statemachine.xml and - statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail - - * python/Makefile.am: Preprend $(srcdir)/ to source files so the - compiler looks in the right places during distcheck - -2005-07-15 John (J5) Palmieri - - * glib/example/Makefile.am: Fix a typo which cause make distcheck - to fail - -2005-07-15 John (J5) Palmieri - - * python/examples/example-service.py, - python/examples/example-signal-emitter.py: Fixed up examples - for API changes - -2005-07-15 John (J5) Palmieri - - * python/__init__.py: Upped to version (0,42,0) because of - the API change - -2005-07-15 John (J5) Palmieri - - * ChangeLog: fix date in last entry - - * configure.in, bus/system.conf.in: add the ability to configure - the system bus user at compiletime with the --with-dbus-user flag - (patch from Kristof Vansant) - -2005-07-15 John (J5) Palmieri - - * bus/dispatch.c, test/test-service.c: Add testcase - for sending messages to oneself (TODO item). - - * python/service.py (class Object): Swap ordering of bus_name - and object_path parameters to better support inheritance. - - * doc/dbus-tutorial.xml: change Python docs to reflect change - in parameter ordering and fix the inheritance section. - - * doc/TODO: remove sending message to oneself TODO item - -2005-07-15 Ross Burton - - * glib/dbus-gproxy.c: - Fix a leak when calling methods via the proxy. - -2005-07-15 Colin Walters - - * bus/selinux.c (bus_selinux_append_context): Wrap in - HAVE_SELINUX. - -2005-07-14 John (J5) Palmieri - - * python/_dbus.py (Bus::remove_signal_receiver): - don't add a callback to the match if none has been passed in - - * python/matchrules.py (SignalMatchTree::remove): if the rule - being matched does not have a callback treat it as a wildcard - fix matching logic - - * doc/dbus-tutorial.xml: Add Python tutorial - -2005-07-14 Colin Walters - - * bus/driver.c - (bus_driver_handle_get_connection_unix_security_context): New function. - (message_handlers): Add. - - * bus/selinux.c (bus_selinux_append_context): New function; appends - security context to message. - - * bus/selinux.h: Prototype. - - * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New. - -2005-07-14 John (J5) Palmieri - - * bus/activation.c: clean up all tabs to be 8 spaces - (bus_activation_activate_service): make sure we clean up - if activation fails - - * bus/dispatch.c: clean up all tabs to be 8 spaces - (check_shell_fail_service_auto_start): New function - tests to make sure we get fail properly when trying to auto start a service - with a faulty command line - (check_shell_service_success_auto_start): New function tests to make sure - auto started services get the arguments on the command line - - * test/test-shell-service.c: Added service for testing auto-starting with - command line arguments - - * test/data/valid-service-files/debug-shell-echo-fail.service.in, - test/data/valid-service-files/debug-shell-echo-success.service.in: - Added service files for testing auto-starting with command line arguments - - * */.cvsignore: added a bunch of generated files to various .cvsignore files - -2005-07-14 Rodrigo Moya - - * dbus/dbus-shell.[ch]: copy/pasted code from GLib. - - * dbus/Makefile.am: added new files to build. - - * bus/activation.c (bus_activation_activate_service): support - activation commands with parameters. - - * test/shell-test.c: added test program for the shell parsing - code. - -2005-07-13 David Zeuthen - - * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and - 64 bit signed and unsigned parameters - -2005-07-13 John (J5) Palmieri - - * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd - - * python/service.py (class Name): renamed BusName to make it clearer - what the object is for (a name on the bus) - - * python/examples/example-service.py, - python/examples/example-signal-emitter.py: change the Name object to - BusName - -2005-07-12 Colin Walters - - Patch from Jim Gettys . - - * tools/dbus-launch.c: Include sys/select.h. - -2005-07-12 John (J5) Palmieri - * python/dbus_bindings.pyx.in: removed - - * python/dbus_bindings.pyx: Added. - - Fixed some memleaks (patch from - Sean Meiners ) - - Broke out the #include "dbus_h_wrapper.h" and put it in its - own pxd file (Pyrex definition) - - Broke out glib dependancies into its own pyx module - - * python/dbus_bindings.pdx: Added. - - Defines C class Connection for exporting to other modules - - * python/dbus_glib_bindings.pyx: Added. - - New module to handle lowlevel dbus-glib mainloop integration - - * python/glib.py: Added. - - Registers the glib mainloop when you import this module - - * python/services.py: Removed (renamed to service.py) - - * python/service.py: Added. - - (class Server): renamed Name - - * python/__init__.py: Bump ro version (0,41,0) - -don't import the decorators or service module - by default. These now reside in the dbus.service namespace - - * python/_dbus.py (Bus::__init__): Add code run the main loop - setup function on creation - - * python/examples/example-service.py, - python/examples/example-signal-emitter.py: update examples - - * python/examples/gconf-proxy-service.py, - python/examples/gconf-proxy-service2.py: TODO fix these up - - * doc/TODO: Addition - - Added a Python Bindings 1.0 section - - added "Add match on args or match on details to match rules" - - -2005-07-12 Colin Walters - - * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) - (statemachine-glue.h): - * glib/examples/Makefile.am (example-service-glue.h) - (example-signal-emitter-glue.h): - * glib/Makefile.am (dbus-glib-error-switch.h): - Add libtool --mode=execute so we use the built library instead - of any installed one. - -2005-07-11 Colin Walters - - * glib/dbus-gvalue.c (struct _DBusGValue): Delete. - (dbus_g_value_types_init): Remove assertion. - (dbus_g_value_get_g_type, dbus_g_value_open) - (dbus_g_value_iterator_get_values, dbus_g_value_get_signature) - (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented - functions related to DBusGValue. Now we marshal/demarshal - structures as GValueArray. - (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for - structures. - (signature_iter_to_g_type_array): Don't call - signature_iter_to_g_type_struct. - (signature_iter_to_g_type_struct): Delete. - (dbus_gvalue_to_signature): Delete. - (dbus_gvalue_to_signature): New function with same name as other - one; we can convert structures to signatures. - (demarshal_valuearray): New function. - (get_type_demarshaller): Use it. - (demarshal_recurse): Delete. - (marshal_proxy): New function. - (marshal_map): Warn if we can't determine signature from type. - (marshal_collection_ptrarray): Ditto. - (marshal_collection_array): Ditto. - (get_type_marshaller): Use marshal_valuearray. - (marshal_recurse): Delete. - (_dbus_gvalue_test): Add some tests. - - * dbus/dbus-glib.h (struct _DBusGValueIterator): - (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE) - (dbus_g_value_open, dbus_g_value_iterator_get_value) - (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) - (dbus_g_value_free): Remove prototypes. - - * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle - G_TYPE_VALUE_ARRAY. - - * glib/examples/example-service.c: - * glib/examples/example-client.c: Implement GetTuple. - - * test/glib/test-dbus-glib.c: - * test/glib/test-service-glib.c: - * test/glib/test-service-glib.xml: Add structure tests. - -2005-07-10 Colin Walters - - * doc/TODO: Knock off some GLib items with this patch. - - * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) - (_dbus_gvalue_signals_error): New functions. - - * glib/dbus-gvalue-utils.h: Prototype them. - - * glib/dbus-gobject.c (arg_iterate): Update to handle return vals - and change to not output const/retval flags for input args. All - callers updated. - (invoke_object_method): Refactor to handle return values. Add - some more comments in various places. Remove debug g_print. - - * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New. - - * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name): - Handle G_TYPE_NONE. - (compute_gsignature): New function; refactored from code from - compute_marshaller and compute_marshaller_name. Enhance to - handle return values and async ops more cleanly. Update for - async ops returning NONE instead of BOOLEAN. - (compute_marshaller, compute_marshaller_name): Call compute_gsignature - and output appropriate string. - (generate_glue): Handle return value annotation. Also don't dump - constness flag for input arguments. - - * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains - files shared between installed library and utilities. - (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS. - (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the - binding tool can access gtype utility functions. - - * test/glib/test-service-glib.c: - * test/glib/test-service-glib.xml: - * test/glib/test-dbus-glib.c: Add some tests for return values. - -2005-07-09 Colin Walters - - * glib/dbus-gparser.c (parse_annotation): Add annotations to - argument if available, not method. - - * glib/dbus-gobject.c (arg_iterate): More verbose warnings. - (invoke_object_method): First, remove some redundant - GValues (object_value, error_value) in favor of working on - array directly. Second, rework constness to be less buggy. - Now we iterate directly over the argument metadata instead - of parallel iterating over output signature and metadata. - - * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error. - - * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const - annotation on input args. - -2005-07-09 Colin Walters - - * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST): - Define. - - * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const - annotation. - - * glib/dbus-gobject.c (arg_iterate): Update to parse constval too. - (method_dir_signature_from_object_info): Handle arg_iterate change. - (write_interface): Ditto. - (lookup_object_info): Don't barf if format_version is > 0. - (invoke_object_method): Handle arg constness. - - * glib/dbus-gidl.c (struct ArgInfo): Add annotations. - (arg_info_new): Create. - (arg_info_unref): Destroy. - (arg_info_get_annotations, arg_info_get_annotation) - (arg_info_add_annotation): New functions. - - * glib/dbus-gidl.h: Prototype them. - - * glib/dbus-gparser.c (parse_annotation): Allow annotations in - args, disallow them in properties. - (parse_annotation): Handle arg annotations. - - * test/glib/test-service-glib.xml: - * test/glib/test-service-glib.c: Update to make some methods - const. - -2005-07-08 Colin Walters - - * test/glib/test-service-glib.xml: - * test/glib/test-service-glib.c: - * test/glib/test-dbus-glib.c: Test a{sv}. - - * glib/examples/statemachine/statemachine.c: - * glib/examples/statemachine/statemachine-server.c: - * glib/examples/statemachine/statemachine-client.c: Fix some bugs, - add progress bar, etc. - - * glib/dbus-gvalue.c (register_array, register_dict): Delete; not - needed anymore due to generic array/map marshalling. - (dbus_g_value_types_init): Don't register basic arrays or the - string/string hash. - (dbus_gtype_from_signature_iter): Don't try to recurse into - variants. - (dbus_gtype_to_signature): Check collection/map before type - metadata. - (demarshal_garray_basic): Renamed to demarshal_collection_array. - (demarshal_ghashtable): Renamed to demarshal_map; fix to use new - generic map creation/append functions instead of hash table - specifically. - (get_type_demarshaller): Handle maps. - (demarshal_collection): Dispatch on collection type to either - demarshal_collection_ptrarray or demarshal_collection_array. - (get_type_marshaller): Handle maps. - (marshal_collection): Dispatch collection type to either - marshal_collection_ptrarray or marshal_collection_array. - (_dbus_gvalue_test): New test. - - * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function. - (hash_free_from_gtype): Use it to free GValues. - (hashtable_append): New function. - (ptrarray_append): Fix prototype. - (slist_append): Ditto. - (_dbus_gvalue_utils_test): Extend tests. - - * glib/dbus-gtype-specialized.c - (dbus_g_type_specialized_init_append): Renamed from - dbus_g_type_specialized_collection_init_append. Remove const from - value, since we steal it. - (dbus_g_type_specialized_map_append): New function. - - * glib/dbus-gtype-specialized.h: Update prototypes. - Add DBusGTypeSpecializedMapAppendFunc. - - * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run - _dbus_gvalue_test. - - * glib/dbus-gtest.h: Prototype it. - -2005-07-08 Ross Burton - - * dbus/dbus-glib.h: - Add DBysGAsyncData for the async bindings. - - * glib/dbus-binding-tool-glib.c: - Re-enable the async bindings. - - * test/glib/test-dbus-glib.c: - Add a test for the generated async bindings. - -2005-07-08 Colin Walters - - * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a - connection concept. - -2005-07-08 Colin Walters - - * tools/Makefile.am: Kill of print-introspect in favor of using - dbus-send --print-reply=literal. - - * test/glib/test-service-glib.xml: - * test/glib/test-service-glib.c (my_object_get_objs): New test - for "ao". - - * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data. - (main): Test GetObjs. - - * glib/examples/statemachine/Makefile.am: - * glib/examples/statemachine/sm-marshal.list: - * glib/examples/statemachine/statemachine-client.c: - * glib/examples/statemachine/statemachine-server.c: - * glib/examples/statemachine/statemachine-server.xml: - * glib/examples/statemachine/statemachine.c: - * glib/examples/statemachine/statemachine.h: - * glib/examples/statemachine/statemachine.xml: - - New example. - - * glib/examples/example-service.c (main): Move invocation - of dbus_g_object_type_install_info earlier, to emphasize it - should only be done once. - - * glib/examples/example-signal-emitter.c (main): Ditto. - - * glib/examples/Makefile.am (SUBDIRS): Include statemachine. - - * glib/dbus-gvalue.h (dbus_gtype_to_signature) - (dbus_gvalue_marshal): Update prototypes. - - * glib/dbus-gvalue.c: Update all marshalling functions to take - const GValue instead of GValue. - (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed - types. - (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature - change. - (dbus_gtype_to_signature): Handle generic collecitons and maps. - Return a newly-allocated string. - (demarshal_proxy, demarshal_object_path, demarshal_object) - (demarshal_strv, demarshal_ghashtable): Set error, don't assert if - we get the wrong types from message. - (get_type_demarshaller): New function, extracted from - dbus_gvalue_demarshal. - (demarshal_collection): New function, demarshals generic - collection. - (dbus_gvalue_demarshal): Just invoke result of - get_type_demarshaller. Throw error if we don't have one. - (marshal_garray_basic): Abort on OOM. - (get_type_marshaller): New function, extracted from - dbus_gvalue_marshal. - (collection_marshal_iterator, marshal_collection): New functions; - implements generic marshalling for an iteratable specialized - collection. - (dbus_gvalue_marshal): Just invoke result of get_type_marshaller. - - * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle - G_TYPE_STRING. - (ptrarray_value_from_gvalue): Ditto. - (ptrarray_append, ptrarray_free): New functions. - (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) - (slist_append, slist_end_append, slist_free): New functions. - (dbus_g_type_specialized_builtins_init): Add append fuctions - for GPtrArray and GSList. Register GSList. - (test_specialized_hash, _dbus_gvalue_utils_test): New functions. - - * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext): - New. - (dbus_g_type_specialized_collection_init_append) - (dbus_g_type_specialized_collection_append) - (dbus_g_type_specialized_collection_end_append): Prototype. - (DBusGTypeSpecializedCollectionVtable): Add append_func and - end_append_func. - - * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) - (dbus_g_type_specialized_collection_append) - (dbus_g_type_specialized_collection_end_append): New functions. - (dbus_g_type_map_value_iterate): Take const GValue. - (dbus_g_type_collection_value_iterate): Ditto. - - * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run - _dbus_gvalue_utils_test. - - * glib/dbus-gtest.h: Prototype it. - - * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid - using uninitialized owner_list. - (dbus_g_proxy_begin_call_internal): Move return_if_fail to - public API. - (dbus_g_proxy_end_call_internal): Update to use error set - from dbus_gvalue_demarshal instead of setting it here. - (dbus_g_proxy_begin_call): Move return_if_fail here. - - * glib/dbus-gobject.c (write_interface): Update for - dbus_gtype_to_signature returning new string. - - * configure.in: Add glib/examples/statemachine. - -2005-07-08 Joe Shaw - - * configure.in: Add a configure option, --with-console-auth-dir - - * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the - new setting. Patch from Kay Sievers. - -2005-07-06 Colin Walters - - * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify) - (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type) - (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete. - (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): - Delete in favor of dbus_g_proxy_begin_call and - dbus_g_proxy_cancel_call. - (DBusGProxyCall, DBusGProxyCallNotify): New. - (dbus_g_proxy_begin_call): Change prototype to take callback, user - data, and destroy function. This replaces - dbus_g_pending_call_set_notify. - (dbus_g_proxy_cancel_call): Prototype. - (DBusGAsyncData): Delete, shouldn't be needed anymore. - - * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and - pending_calls map. - (struct _DBusGProxyManager): Add bus_proxy member, which is an - internal proxy for calls to the bus. Remove - pending_nameowner_calls, now the internal proxy keeps track. - (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to - pending_nameowner_calls. - (got_name_owner_cb): Update prototype, and use - dbus_g_proxy_end_call. - (got_name_owner_cb): Remove reference to pending_nameowner_calls. - (dbus_g_proxy_manager_register): Delete directly libdbus code in - favor of using internal proxy. - (dbus_g_proxy_manager_unregister): Update to use - dbus_g_proxy_cancel_call for any pending GetNameOwner call. - (dbus_g_proxy_init): Initialize pending calls map. - (dbus_g_proxy_constructor): New. - (dbus_g_proxy_class_init): Add get/set property functions, - constructor, and add NAME, PATH, and INTERFACE properties. - (cancel_pending_call): New function. - (dbus_g_proxy_dispose): Iterate over any outstanding calls and - cancel them. - (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New. - (GPendingNotifyClosure): New structure. - (d_pending_call_notify, d_pending_call_free): Moved here from - dbus-glib.c. - (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function - ordering. - (manager_begin_bus_call): New internal function for talking to - internal bus proxy. - (dbus_g_proxy_new): Construct object using GObjet properties. - (dbus_g_proxy_begin_call_internal): Update to take user data, etc. - Create closure of same, and insert call into map of pending calls. - (dbus_g_proxy_end_call_internal): Take call id instead of pending - call. Look up pending call in current set. Remove it when we've - completed. - (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete. - (dbus_g_proxy_begin_call): Change API to take callback, user data, - and destroy function directly. - (dbus_g_proxy_end_call): Update to take DBusGProxyCall. - (dbus_g_proxy_call): Invoke with NULL callback. - (dbus_g_proxy_cancel_call): New function, replaces - dbus_g_pending_call_cancel. - - * glib/dbus-gparser.c (validate_signature): Fix call to - dbus_set_g_error. - - * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark): - New quark for attaching metadata to GType. - (info_hash): Delete. - (lookup_object_info): Look up using quark. - (dbus_g_object_type_install_info): Check that a type is classed, - not that it's an object. Also just install type data using quark - instead of using global hash. - - * glib/dbus-glib.c (dbus_g_pending_call_ref) - (dbus_g_pending_call_unref, dbus_pending_call_get_g_type) - (GPendingNotifyClosure): Delete. - (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c. - (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete. - - * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async - client method generation until we can fix it... - - * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call. - (load_from_service_thread_func): Ditto. - - * tools/dbus-names-model.c (struct NamesModel): Hold - DBusGProxyCall. - (have_names_notify): Update prototype, use - dbus_g_proxy_cancel_call. - (names_model_reload): Update for new dbus_g_proxy_begin_call API. - - * tools/dbus-monitor.c (filter_func): Update for print_message - API change. - - * test/glib/test-dbus-glib.c: Add more tests for async - invocations. Update many begin_call/end_call pairs to just use - dbus_g_proxy_call. - - * tools/dbus-send.c (main): Add --print-reply=literal mode. This - allows us to dump print-introspect.c. - - * tools/dbus-print-message.h (print_message): Add literal argument - to print_message which is intended to allow printing arguments without - metadata like "string=". - - * tools/dbus-print-message.c (print_iter): Add literal argument. - (print_message): Allow printing string messages literally. - -2005-07-05 Colin Walters - - * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): - Remove value refcount leak, original patch from Jorn Baayen - . Also remove useless extra value in favor - of prepending to value array directly. - -2005-07-02 Colin Walters - - * glib/dbus-gmain.c (_dbus_gmain_test): Fix test. - -2005-07-01 Colin Walters - - Patch from Jonathan Matthew - - * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type. - (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE, - G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32, - and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE. - -2005-06-30 Colin Walters - - * test/glib/test-dbus-glib.c: - * test/glib/test-service-glib.c: - * test/glib/test-service-glib.xml: Update tests for new error - setting bits, also add async tests (patch from Ross Burton). - - * test/glib/Makefile.am (test_service_glib_LDADD): Add - DBUS_GLIB_THREADS_LIBS. - - * glib/dbus-gproxy.c (get_name_owner) - (dbus_g_pending_call_end_valist): Ditto. - - * glib/dbus-gobject.c (error_metadata): New mapping from GError - domain (GQuark) to DBusGErrorInfo. - (gerror_domaincode_to_dbus_error_name): Attempt to look up error - quark in error_metadata. Take message interface as default - error message interface. - (gerror_to_dbus_error_message): Pass message interface. - (dbus_set_g_error): Resurrected. - (dbus_g_error_info_free): New function. - (dbus_g_object_type_install_info): Use g_type_class_ref instead - of _peek to actually create the object class if it hasn't been - created yet. - (dbus_g_error_domain_register): New function. - - * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error. - - * glib/dbus-gparser.c (validate_signature): Ditto. - - * dbus/dbus-glib.h (dbus_g_error_set): Delete. - (dbus_g_error_domain_register): Prototype. - - * glib/dbus-glib.c (dbus_g_error_set): Delete. - Update tests. - -2005-06-29 Colin Walters - - * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add - DBUS_TYPE_G_OBJECT_PATH. - - * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers - for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should - be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH. - (dbus_g_object_path_get_g_type): New function. - (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH - to DBUS_TYPE_G_OBJECT_PATH by default. - (demarshal_proxy): Remove unused name variable. - (demarshal_object_path, marshal_object_path): New functions. - (demarshal_proxy_array, marshal_proxy_array): Delete. - - * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map - DBUS_TYPE_G_OBJECT_PATH to char *. - (dbus_g_type_get_lookup_function): Map builtin - DBUS_TYPE_G_OBJECT_PATH. - - * test/glib/test-dbus-glib.c - * test/glib/test-service-glib.c (my_object_objpath): - Adapt tests to new object path marshalling. - -2005-06-29 John (J5) Palmieri - - * configure.in: force check for Python >= 2.4 - -2005-06-29 Colin Walters - - Patch from Ross Burton - - * glib/dbus-gobject.c (invoke_object_method): Unset object - value in all cases, not only in async case. - -2005-06-29 Colin Walters - - * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member - name_call for keeping track of any outgoing GetNameOwner call. - Also add for_owner and associated. - (struct _DBusGProxyManager): Add owner_names, which is hash table - that maps a base name to a list of names it owns (that we're - interested in). Add pending_nameowner_calls which is a list of - all outstanding GetNameOwner; avoids us having to iterate over - every proxy. Add unassociated_proxies which keeps track of name - proxies with no associated name owner. - (dbus_g_proxy_manager_unref): Destroy owner_names. - (struct DBusGProxyNameOwnerInfo): New struct for keeping track of - name refcounts. - (find_name_in_info, name_owner_foreach) - (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo) - (dbus_g_proxy_manager_monitor_name_owner) - (dbus_g_proxy_manager_unmonitor_name_owner) - (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner): - New functions; they manipulate the owner_names mapping. - (got_name_owner_cb): New function. - (get_name_owner): New function, extracted from - dbus_g_proxy_new_for_name_owner. - (dbus_g_proxy_manager_register): For now we need to keep track of - all NameOwnerChanged. Also if the proxy is for a name, if we - don't already know the name owner, queue a new GetNameOwner - request and add it to our list of unassociated proxies. Otherwise - inc the refcount. - (dbus_g_proxy_manager_unregister): If this proxy is for a name, - cancel any pending GetNameOwner call, etc. - (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use - the owner_names mapping to look up the current names for the - signal source, and dispatch to any proxies for that name. - (dbus_g_proxy_new): Initialize new members. - (dbus_g_proxy_new_for_name): Delete unused proxy variable. - (dbus_g_proxy_new_for_name_owner): Use get_name_owner. - (dbus_g_pending_call_end_valist): New function, extracted from - dbus_g_proxy_end_call_internal. Useful when we don't have a proxy - but want to use the GLib infrastructure. Also note how many - arguments in reply were over. - (dbus_g_pending_call_end): New function, just call - dbus_g_pending_call_end_valist. - (dbus_g_proxy_end_call_internal): Just call - dbus_g_pending_call_end_valist. - - * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup - of builtin marshaller for STRING_STRING_STRING. - - * test/glib/test-dbus-glib.c: - * test/glib/test-service-glib.c: - * test/glib/test-service-glib.xml: - Extend tests to cover name proxies, destruction of owner proxies, - etc. - - * glib/examples/example-signal-recipient.c - (dbus_g_proxy_new_for_name_owner): Create a name proxy. - - * tools/dbus-send.c (main): Print D-BUS error name in addition - to message. - -2005-06-28 John (J5) Palmieri - - * python/dbus_bindings.pyx.in (cunregister_function_handler, - cmessage_function_handler): Patch from - Anthony Baxter fixes threading problems - by using the Py_GILState_Ensure/Release to synchronize with the - python runtime. - -2005-06-28 Ray Strode - - * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill - babysitter helper process on last unref, bug #2813. - -2005-06-27 Colin Walters - - * test/glib/test-dbus-glib.c: - * test/glib/test-service-glib.c: - * test/glib/test-service-glib.xml: - Test hash table signal emitting. - - * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert - types to their fundamental basis types, since this is what - marshallers operate on. Also add an entry for VOID__BOXED. - (dbus_g_object_register_marshaller_array): Convert to fundamental. - -2005-06-26 Havoc Pennington - - * doc/dbus-tutorial.xml: fix names of interface/service/path, fix - from Don Park - -2005-06-26 Colin Walters - - * glib/dbus-glib.c (dbus_set_g_error): Delete. - (dbus_g_error_set): New public function from its ashes; used by - both service-side method implementation and GLib bindings - internals. - (dbus_g_error_has_name, dbus_g_error_get_name): New function. - (_dbus_glib_test): Add some tests. - - * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name. - - * test/glib/test-service-glib.c (my_object_throw_error): Use - dbus_g_error_set. - - * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle - errors thrown by dbus_g_error_set. - - * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set. - - * glib/dbus-gparser.c (validate_signature): Ditto. - - * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) - (dbus_g_proxy_end_call_internal): Ditto. - - * glib/Makefile.am: Generate dbus-glib-error-switch.h, which - converts DBUS_ERROR_x to DBUS_GERROR_x. - (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it. - - * doc/TODO: Remove error TODO. - - * doc/dbus-tutorial.xml: Update with documentation about error - handling. - - * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make - sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to - GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION. - -2005-06-22 Colin Walters - - Patch from Ross Burton - - * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig. - -2005-06-20 Colin Walters - - * configure.in: Add glib/examples. - - * glib/Makefile.am: Add examples/ - - * glib/examples/.cvsignore - * glib/examples/Makefile.am - * glib/examples/example-client.c - * glib/examples/example-service.c - * glib/examples/example-service.xml - * glib/examples/example-signal-emitter.c - * glib/examples/example-signal-emitter.xml - * glib/examples/example-signal-recipient.c: - New files; GLib binding examples, ported from - python/examples. - -2005-06-20 Colin Walters - - * dbus/dbus-glib.h: - * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to - dbus_g_proxy_call. - - * glib/dbus-binding-tool-glib.c: - * doc/dbus-tutorial.xml: - * test/glib/test-dbus-glib.c: Update for rename. - -2005-06-20 Colin Walters - - Patch suggested by Ross Burton - - * glib/dbus-gobject.c (export_signals): Free signal name. - (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug - memory leak. Add a bit of documentation. - (dbus_g_method_return_error): Free context, and note we do - so. - -2005-06-18 Murray Cumming - - * dbus/dbus-glib.h: - * glib/dbus-gobject.c: - * glib/dbus-gproxy.c: - * glib/dbus-gvalue.c: Predeclare structs as - typedef struct _Something Something instead of - typedef struct Something Something, so we can - redeclare the prototypes. Other GNOME libraries - do this already. - -2005-06-17 Colin Walters - - * tools/dbus-names-model.c (have_names_notify): Fix call - to dbus_g_proxy_end_call. - -2005-06-17 Colin Walters - - * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't - spew warnings if we get malformed remote signals. - - * glib/dbus-gobject.c (propsig_iterate): New function. - (lookup_object_info): New function, extracted from - lookup_object_and_method. - (introspect_properties, introspect_signals): Delete; these - are merged into write_interface. - (write_interface): Write out signals and properties here; - dump the org.gtk.object stuff and use the interface given - in the introspection data blob. Also fix up property XML. - (lookup_values): New function. - (introspect_interfaces): Gather a mapping from interface to a - list of its methods, signals, and properties, then write out - each interface. - (lookup_object_and_method): Use lookup_object_info. - (struct DBusGSignalClosure): Add interface. - (dbus_g_signal_closure_new): Add interface. Don't dup signame; - we can just use the constant data. - (dbus_g_signal_closure_finalize): Don't free signal name. - (signal_emitter_marshaller): Use interface from signal closure. - (export_signals): Only export signals mentioned in introspection - blob. - (dbus_g_connection_register_g_object): Warn if we have no - introspection data for an object. - (funcsig_equal): Remove unused variable. - (dbus_g_object_register_marshaller): Take varargs instead of - list. - (dbus_g_object_register_marshaller_array): New function, - extracted from old dbus_g_object_register_marshaller. - - * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add - signals and property data. - (write_quoted_string): New function, extracted from generate_glue. - (generate_glue): Write signals and properties to introspection - blob. - - * dbus/dbus-glib.h (struct DBusGObjectInfo): Include - exported_signals and exported_properties. - (dbus_g_object_register_marshaller): Update prototype. - (dbus_g_object_register_marshaller_array): Prototype. - - * test/glib/test-dbus-glib.c: Extend testing to cover new signals. - - * test/glib/test-service-glib.c: Add new test signals and method - to emit them. - - * test/glib/test-service-glib.xml: Add some test signals. - - * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c - and my-object-marshal.h - (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add - my-object-marshal.c. - (my-object-marshal.c, my-object-marshal.h): Implement. - - * test/glib/.cvsignore: Update. - - * doc/TODO: Remove two GLib TODO items fixed by this - patch. - -2005-06-16 Colin Walters - - * doc/TODO: Update for GLib bindings. - -2005-06-16 Colin Walters - - * glib/dbus-binding-tool-glib.c: - * glib/dbus-gobject.c: - * glib/dbus-gproxy.c: Add Nokia copyright; Patch - from Ross Burton, for his GLib bindings work. - -2005-06-16 Colin Walters - - * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params - to iterate instead of walking to G_TYPE_INVALID. - - Patch based on a patch from Ryan Gammon. - -2005-06-16 Colin Walters - - * bus/bus.c (bus_context_new): Set parser to NULL - after we unref it (Patch from Chris Boscolo, #2174). - -2005-06-16 Colin Walters - - * python/dbus_bindings.pyx.in: Import size_t, - __int64_t, __uint64_t, and __signed. - - * dbus/dbus-sysdeps.c (write_credentials_byte): - Define cmsg struct, output it. - (_dbus_read_credentials_unix_socket): - Use cmsg struct. - - Patch from Joe Markus Clarke for FreeBSD support. - -2005-06-16 Colin Walters - - * tools/dbus-send.c (append_array): Use strtok. - (append_dict): New function. - (type_from_name): New function, extracted from main. - (main): Handle sending dicts. - - * tools/dbus-print-message.c (print_iter): Print dict - entries. - -2005-06-16 Colin Walters - - * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string - values as the empty string (#2948). - -2005-06-16 Colin Walters - - * dbus/Makefile.am: - * mono/doc/Makefile.am: - * test/glib/Makefile.am: - - Fix srcdir != builddir issues (Patch from Chris Wilson, #3477) - -2005-06-16 Colin Walters - - * dbus/dbus-marshal-header.c (_dbus_header_load): Set - header byte order from expected byte order (Patch from Chris Wilson, #3475). - - * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): - Increment pointer after swapping fixed array. Add assertion - for array length. - -2005-06-15 Colin Walters - - * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): - Fix call to dbus_set_error. (Patch from Michael Banck, #3461) - -2005-06-15 John (J5) Palmieri - - * NEWS: Update to 0.34 - -2005-06-15 David Zeuthen - - * configure.in (LT_CURRENT): Revert back to 1 as the library - hasn't changed and we've certainly not committed to protocol - stability yet. All this does is to break ABI. See commit note - from hp@redhat.com 2005-05-05 for details. - -2005-06-15 John (J5) Palmieri - - * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method - (_dbus_connection_run_builtin_filters): New method - (dbus_connection_dispatch): Run the builtin filters which in turn - runs the peer filter which handles Ping messages. - - * doc/TODO: - - Ping isn't handled: This patch fixes it - - - Add a test case for the Ping message: added TODO item - -2005-06-15 John (J5) Palmieri - - * dbus/dbus-message.c: - (dbus_message_has_path): New method - (dbus_message_has_interface): New method - (dbus_message_has_member): New method - - * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user): - New method - - * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that - the keyring directory is private to the user - - * doc/TODO: - - The convenience functions in dbus-bus.h should perhaps have - the signatures that they would have if they were autogenerated - stubs. e.g. the acquire service function. We should also evaluate - which of these functions to include, in light of the fact that - GLib/Qt native stubs will probably also exist.: Punted - - - add dbus_message_has_path(), maybe has_member/interface: - fixed in this patch - - - in dbus-keyring.c, enforce that the keyring dir is not - world readable/writable: Fixed in this patch - -2005-06-15 John (J5) Palmieri - - * dbus/dbus-marshal-validate.h: Added a new validation - error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for - out of memory errors when validating signitures - - * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR - in places where we previously used DBUS_VALID and a FALSE return - value to indicate OOM - - * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason): - Use a stack to track the number of elements inside containers. The - stack values are then used to validate that dict entries have only two - elements within them. - (validate_body_helper): check the reason for failure when validating - varients - - * dbus/dbus-message.c (load_message): use - DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used - DBUS_VALID and a FALSE return value to indicate OOM - - * doc/TODO: remove "- validate dict entry number of fields" as this - patch fixes it - -2005-06-14 David Zeuthen - - * bus/bus.c (process_config_every_time): Drop existing conf-dir - watches (if applicable) and add new watches - - * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY - (main): Setup SIGIO signal handler if using D_NOTIFY - - * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs - - * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list - (merge_included): Also merge conf_dirs list - (bus_config_parser_unref): Clear conf_dirs list - (include_dir): Add directory to conf_dirs list - (bus_config_parser_get_conf_dirs): New function - - * bus/dir-watch.[ch]: New files - - * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch] - - * configure.in: Add checks for D_NOTIFY on Linux - -2005-06-14 Colin Walters - - * glib/dbus-binding-tool-glib.c: - * glib/dbus-gobject.c: - * glib/dbus-gvalue.c: Fix indentation and brace style. - -2005-06-14 Ross Burton . - - * glib/dbus-glib.h: Make DBusGMethodInvocation - a private structure. Rearrange prototypes a bit. - - * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add - documentation for first_arg_type. - - * glib/dbus-gobject.c: Move DBusGMethodInvocation - here, add documentation. Move dbus_g_method_return - and dbus_g_method_return_error into public API - section. - -2005-06-14 Colin Walters - - * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): - Add missing return statements, noticed by Ross Burton. - -2005-06-13 Ross Burton . - - * glib/dbus-gobject.c: Handle errors on message - demarshalling by sending error message back. - * glib/dbus-gvalue.c: Initialize return variables. - -2005-06-13 Colin Walters - - * glib/Makefile.am: Fix thinko in last patch. - -2005-06-13 Colin Walters - - * glib/Makefile.am: Move dbus-gtype-specialized.c - and dbus-gtype-specialized.h into a _HEADERS variable, - install them. - -2005-06-12 Colin Walters - - Async signals and various bugfixes and testing by - Ross Burton . - - * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete. - (dbus_gvalue_genmarshal_name_from_type) - (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c. - (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature. - (dbus_g_value_types_init, dbus_gtype_from_signature) - (dbus_gtype_from_signature_iter, dbus_gtype_to_signature) - (dbus_gtypes_from_arg_signature): New function prototypes. - (dbus_gvalue_demarshal): Take context and error arguments. - (dbus_gvalue_demarshal_variant): New function. - (dbus_gvalue_demarshal_message): New function. - (dbus_gvalue_store): Delete. - - * glib/dbus-gvalue.c: - - File has been almost entirely rewritten; now we special-case - more types such as DBUS_TYPE_SIGNATURE, handle arrays and - hash tables correctly, etc. Full support for recursive values - is not yet complete. - - * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last - argument of signal to G_TYPE_POINTER since we now pass a - structure. - (lookup_g_marshaller): Delete in favor of - _dbus_gobject_lookup_marshaller. - (marshal_dbus_message_to_g_marshaller): Use - _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message - to handle remote signal callbacks. - (dbus_g_proxy_new_from_proxy): New function; creates a new - DBusGProxy by copying an existing one. - (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface) - (dbus_g_proxy_get_path): New functions. - (dbus_g_proxy_marshal_args_to_message): New function; - factored out of existing code. - (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments - from a varargs array. - (dbus_g_proxy_begin_call_internal): New function. - (dbus_g_proxy_end_call_internal): New function. - (dbus_g_proxy_begin_call): Take GTypes instead of DBus types - as arguments; simply invoke dbus_g_proxy_begin_call_internal - after collecting args into value array. - (dbus_g_proxy_end_call): Take GTypes instead of DBus types; - invoke dbus_g_proxy_end_call_internal. - (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and - end_call_internal. - (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus - types. - (array_free_all): New function. - (dbus_g_proxy_add_signal): Take GTypes. - - * glib/dbus-gobject.h: - (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. - (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller): - Prototype. - - * glib/dbus-gobject.c: Add a global marshal_table hash which - stores mappings from type signatures to marshallers. Change lots - of invocations of dbus_gtype_to_dbus_type to - dbus_gtype_to_signature. - (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. - (introspect_signals): Fix test for query.return_type. - (set_object_property): Update invocation of dbus_gvalue_demarshal. - (invoke_object_method): Many changes. Handle asynchronous - invocations. Convert arguments with - dbus_gvalue_demarshal_message. Handle errors. Use - DBusSignatureIter instead of strlen on args. Handle all arguments - generically. Special-case variants. - (dbus_g_method_return, dbus_g_method_return_error): New function. - (DBusGSignalClosure): New structure, closes over signal - information. - (dbus_g_signal_closure_new): New function. - (dbus_g_signal_closure_finalize): New function. - (signal_emitter_marshaller): New function; is special marshaller - which emits signals on bus. - (export_signals): New function; introspects object signals and - connects to them. - (dbus_g_object_type_install_info): Take GType instead of - GObjectClass. - (dbus_g_connection_register_g_object): Invoke export_signals. - (dbus_g_connection_lookup_g_object): New function. - (DBusGFuncSignature) New structure; used for mapping type - signatures to marshallers. - (funcsig_hash): New function; hashes DBusGFuncSignature. - (funcsig_equal): New function; compares DBusGFuncSignature. - (_dbus_gobject_lookup_marshaller): New function. - (dbus_g_object_register_marshaller): New function; used to - register a marshaller at runtime for a particular signature. - - * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests. - - * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC - which notes a server method implementation should be - asynchronous. - - * glib/dbus-binding-tool-glib.c - (dbus_binding_tool_output_glib_server): Call - dbus_g_value_types_init. - (write_formal_parameters): Use dbus_gtype_from_signature. Handle - variants specially. - (dbus_g_type_get_lookup_function): Turn GType into an invocation - of a lookup function. - (write_args_for_direction): Use dbus_g_type_get_lookup_function. - (write_untyped_out_args): New method; write output arguments. - (write_formal_declarations_for_direction): Function for - writing prototypes. - (write_formal_parameters_for_direction): Function for - writing implementations. - (write_typed_args_for_direction): Function for writing - arguments prefixed with GTypes. - (write_async_method_client): Write out async version - of method. - - * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h. - (dbus_g_type_get_marshal_name): Move mapping from GType - to marshal name into here. - (dbus_g_type_get_c_name): Move into here. - (compute_marshaller): Convert signature to type with - dbus_gtype_from_signature, use dbus_g_type_get_marshal_name. - (compute_marshaller_name): Ditto. - (compute_marshaller): Handle async signal annotations. - (gather_marshallers): Return if we don't have a known - prefix. - (generate_glue): Collect introspection blob here, and - write all of the blob at the end. This allows an object - with multiple interfaces to work. - Mark async methods in introspection blob. - - * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add - dbus-gtype-specialized.c, dbus-gtype-specialized.h, - dbus-gvalue-utils.h, dbus-gvalue-utils.c. - - * dbus/dbus-glib.h: Don't include dbus-protocol.h; this - avoids people accidentally using DBUS_TYPE_* which should - not be necessary anymore. - Do include dbus-gtype-specialized.h, which are utilities - for GLib container types. - Add various #defines for types such as - DBUS_TYPE_G_BOOLEAN_ARRAY. - (DBusGValueIterator, DBusGValue): Define, not fully used - yet. - (dbus_g_value_get_g_type): Type for recursive value. - (dbus_g_value_open, dbus_g_value_iterator_get_value) - (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) - (dbus_g_value_free): Prototypes. - (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype. - (dbus_g_proxy_set_interface): Prototype. - (dbus_g_proxy_begin_call, dbus_g_proxy_end_call) - (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus - types. - (dbus_g_proxy_get_path, dbus_g_proxy_get_interface): - Accessors. - (DBusGAsyncData, DBusGMethodInvocation): Structures for - doing async invocations. - (dbus_g_method_return, dbus_g_method_return_error): - Prototypes. - * doc/dbus-tutorial.xml: Update GLib section. - - * tools/dbus-viewer.c (load_child_nodes): Update - for new invocation type of dbus_g_proxy_end_call. - (load_from_service_thread_func): Ditto. - - * tools/print-introspect.c (main): Ditto. - - * tools/dbus-names-model.c (have_names_notify) - (names_model_reload, names_model_set_connection) - Use GTypes. - - * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION, - needed since Python bindings use GLib bindings. - - * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION. - Add --prefix argument. - - * tools/Makefile.am: Define DBUS_COMPILATION. Remove - unneeded --ignore-unsupported arg. - - * test/glib/test-service-glib.c: - * test/glib/test-service-glib.xml: - * test/glib/test-dbus-glib.c: Add many more tests. - -2005-06-06 David Zeuthen - - * doc/TODO: Add item about need to remove deprecated functions. - - * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect - - * dbus/dbus-connection.c (dbus_connection_disconnect): New function - to repair the ABI which was broken with the last commit. - -2005-06-02 John (J5) Palmieri - - * dbus/dbus-connection.c, dbus/dbus-connection.h - (dbus_connection_disconnect): renamed to dbus_connection_close - for API symmetry with dbus_connection_open - (_dbus_connection_open_internal): - s/dbus_connection_disconnect/dbus_connection_close - - * dbus/dbus-bus.c (dbus_bus_get): - s/dbus_connection_disconnect/dbus_connection_close - - * bus/connection.c (bus_connections_unref, - bus_connections_setup_connection, bus_connections_expire_incomplete): - s/dbus_connection_disconnect/dbus_connection_close - - * bus/dispatch.c (bus_dispatch, kill_client_connection, - kill_client_connection_unchecked, check_hello_connection): - s/dbus_connection_disconnect/dbus_connection_close - - * bus/bus.c (new_connection_callback): - s/dbus_connection_disconnect/dbus_connection_close - - * tools/dbus-send.c (main): - s/dbus_connection_disconnect/dbus_connection_close - - * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func): - s/dbus_connection_disconnect/dbus_connection_close - - * test/test-service.c (path_message_func, filter_func): - s/dbus_connection_disconnect/dbus_connection_close - - * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed - -2005-05-25 Colin Walters - - * dbus/dbus-protocol.h: Move various bus service #defines such - as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to - dbus/dbus-shared.h. - * dbus/dbus-shared.h: Various defines moved here. - * dbus/dbus-marshal-header.c: Include dbus-shared.h. - -2005-05-25 John (J5) Palmieri - - * python/__init__.py: Python bindings deserve a minor version - update. Upped to (0, 40, 2) - -2005-05-24 John (J5) Palmieri - - * python/decorators.py: add explicitly_pass_message decorator - for passing in the dbus message as keyword for edge case signal - handling - - * python/matchrules.py (SignalMatchRule.__repr__): fix output - to conform with what dbus expects for match rules - (SignalMatchRule.execute): add the dbus message as a keyword - if the signal handler has requested it - - * python/examples/example/signal-recipient.py: added some more - examples on how to hook up to signals - -2005-05-23 John (J5) Palmieri - - * python/decorators.py: import dbus_bindings - - * python/matchrules.py (SignalMatchRule, SignalMatchTree, - SignalMatchNode): new classes that implement wildcard signal - callback matching using a tree lookup. Heavily modified from a - patch sent by Celso Pinto (fd.o bug #3241) - - * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func): - use new match classes to handle signals. - -2005-05-19 John (J5) Palmieri - - * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH - -2005-05-18 Havoc Pennington - - * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require - gettext. Not really worth requiring yet perhaps, but any - production quality 1.0 would require it so we should go ahead and - get things set up. We do have a couple token calls to - bindtextdomain in the code already. - -2005-05-16 John (J5) Palmieri - - * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock - when using recursive g_main_loops - - * python/_dbus.py (class Bus): add the ProxyObjectClass - alias for ProxyObject to make it easier for the Twisted - networking framework to integrate dbus. - - * python/proxies.py (class ProxyObject): add the ProxyMethodClass - alias for ProxyMethod to make it easier for the Twisted - networking framework to integrate dbus. - -2005-05-11 Ross Burton - - * glib/dbus-glib-tool.c: Add --prefix argument. - * glib/dbus-binding-tool-glib.h: Add prefix argument. - * glib/dbus-binding-tool-glib.c (compute_marshaller_name): - Add prefix argument. - (generate_glue): Pass prefix argument down. - (dbus_binding_tool_output_glib_server): Pass prefix to - glib-genmarshal. - -2005-05-11 Colin Walters - - * tools/dbus-send.c (append_array): New function. - (append_arg): Broken out from main. - (main): Add cheesy hack to send arrays and variants. - (usage): Update. - * tools/dbus-print-message.c (print_iter): Broken out - from main. - -2005-05-11 Colin Walters - - * dbus/dbus-signature.c (dbus_signature_iter_get_signature): - New function, returns signature string for signature iter. - * dbus/dbus-signature.h: Prototype it. - * dbus/dbus-message.c (dbus_message_iter_get_signature): - New function, returns signature string for message iter. - (dbus_message_iter_get_array_len): New function, returns - length of array. - (dbus_message_iter_get_fixed_array): Fix assertion; this - function should be used when the iter is pointing to the - contents of an array - * dbus/dbus-message.h: Prototypes. - * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length): - New function; returns length of an array. - * dbus/dbus-marshal-recursive.h: Prototype it. - -2005-05-11 Colin Walters - - * dbus/dbus-sysdeps-util.c : Fix - compilation error. - -2005-05-08 Havoc Pennington - - * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the - daemon's pid, not the parent's pid, to the file descriptor. - Reported by Taj Morton. - -2005-05-05 Havoc Pennington - - * configure.in (LT_*): add notes on how the libtool versioning - works to save thinking. Increment soname to indicate protocol - breakage (though really the library interface hasn't changed I - guess) - - * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): - verify the GUID received from server matches what we were - expecting, if we had an expectation - - * dbus/dbus-auth.c (send_ok): send GUID along with the OK command - (_dbus_auth_get_guid_from_server): new function - (send_begin): parse the OK args - - * doc/dbus-specification.xml: add GUID to the auth protocol - -2005-05-05 John (J5) Palmieri - - * Fix my name in previous changelog ;) - - * python/proxies.py (ProxyObject.__getattr__): add further patch - from Anthony Baxter to throw an AttributeError when python - __special__ functions are called instead of marshling them over - the bus (Bug#1685 comment 3). - -2005-05-04 John (J5) Palmieri - - * python/Makefile.am: changed to use pyexecdir for the binding - shared libraries (Bug#2494) - - * python/exceptions.py: bring exceptions over from the bindings - so they can be used in applications (Bug#2036) - Make all exceptions derive from DBusException - - * python/_dbus.py, python/proxies.py: implement __repr__ in a couple - of classes so that print obj doesn't throw an exception (Bug #1685) - -2005-05-03 Ross Burton - - * glib/dbus-gobject.c (dbus_g_connection_register_g_object): - Return if we get an error during registration. Set up a - weak reference on object to unregister if object is destroyed. - (unregister_gobject): New function. - -2005-05-01 John (J5) Palmieri - - * python/dbus_bindings.pyx.in: - - added new type classes for hinting to the marashaler what type - to send over the wire - - added int16 and uint16 marshalers - - Fixed a bug in the type constants that caused int32 to go out - as uint16 over the wire - * python/dbus.py: split up into different files and renamed _dbus.py - * python/__init__.py, python/_util.py, python/decorators.py, - python/exceptions.py, python/proxies.py, python/services.py, - python/types.py: new files split off from dbus.py - * python/Makefile.am: Add new files, remove dbus.py and - install all python files to /dbus - * python/examples/*: Added #!/usr/bin/env python to the top of - every example. Patch provided by Tatavarty Kalyan - -2005-04-25 John (J5) Palmieri - - * NEWS: Update to 0.33 - -2005-04-25 John (J5) Palmieri - - * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send - method for doing async calls - (_pending_call_notification): New C function for handling pendning call - callbacks - (set_notify): New method for setting pending call notification - - * python/dbus.py: new version tuple "version" is set at (0, 40, 0) - Async capabilities added to remote method calls - (Sender): class removed - (RemoteService): class removed - (ObjectTree): class removed for now - (RemoteObject): Renamed to ProxyObject - (RemoteMethod): Renamed to ProxyMethod - (method): Decorator added for decorating python methods as dbus methods - (signal): Decorator added for decorating python methods as signal emitters - (ObjectType): Metaclass added for generating introspection data and the - method callback vtable - (Interface): Wrapper class added to wrap objects in a dbus interface - (Object): Uses ObjectType as its metaclass and exports Introspect - of the org.freedesktop.DBus.Introspectable interface - (ValidationException, UnknownMethodException): new exceptions - - * python/examples/*: Modified to fit with the new bindings - -2005-04-23 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_append_args): fix doc comment, - reported by Tony Houghton - - * test/test-service.c (main): test - dbus_connection_get_object_path_data() - - * dbus/dbus-object-tree.c (find_handler): be sure we always init - the exact_match - (_dbus_object_tree_get_user_data_unlocked): new function used by - dbus_connection_get_object_path_data() - (do_register): add assertion test for get_user_data_unlocked - (object_tree_test_iteration): more tests - - * dbus/dbus-connection.c (dbus_connection_get_object_path_data): - new function from Dan Reed to let you get the user data from - dbus_connection_register_object_path() - -2005-04-23 John (J5) Palmieri - - * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow - in numerous places that did not account for the NULL terminator - (signature_from_seed): changed the manual string copy loop to - just use strcpy instead - make check should now pass - -2005-04-19 John (J5) Palmieri - - * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert - so that it allows messages that are not signals to pass in - NULL as the interface. - -2005-04-18 David Zeuthen - - * glib/dbus-gmain.c (io_handler_destroy_source): - (timeout_handler_destroy_source, connection_setup_free): - Also unref the source to avoid memory leaks. - -2005-04-13 David Zeuthen - - * bus/config-parser.c (bus_config_parser_new): Bump this to a - more reasonable, yet still totally arbitrary, value :-). - -2005-04-13 David Zeuthen - - * doc/TODO: Added an "important for 1.0" item about selinux - allow/deny messages - -2005-04-13 David Zeuthen - - * bus/selinux.c: Add c-file-style to top of file - (log_audit_callback): Don't free the data here anymore - (bus_selinux_check): Don't take spid and tpid since appending - that to auxdata may OOM. - (bus_selinux_allows_acquire_service): Handle OOM and signal back - to the caller if we are OOM by taking an error object. - (bus_selinux_allows_send): -do- - - * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service - and bus_selinux_allows_send - - * bus/bus.c (bus_context_check_security_policy): Pass error and - pass on OOM thrown by bus_selinux_allows_send() - - * bus/services.c (bus_registry_acquire_service): Pass error and - pass on OOM thrown by bus_selinux_allows_acquire_service() - -2005-04-13 Havoc Pennington - - * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one - message at a time to avoid monopolizing the main loop, bug - #2953 from Benjamin Otte - -2005-04-09 Havoc Pennington - - * dbus/dbus-string.c (copy): change a memcpy to memmove due to - possible overlap, fix from Daniel Reed - (fixup_alignment): fix signedness warnings - (_dbus_string_append_unichar): ditto - -2005-04-09 Havoc Pennington - - * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning - - * glib/dbus-glib-tool.c (main): fix warning - - * glib/dbus-binding-tool-glib.c (generate_glue): fix warning - - * dbus/dbus-connection.c (dbus_connection_read_write_dispatch): - add a new function that can be used in simple applications that - don't have a main loop and are willing to block - -2005-04-05 David Zeuthen - - Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889 - - * glib/dbus-gmain.c: - (io_handler_destroy_source): Remove from list of IO handlers - of the ConnectionSetup object - (timeout_handler_destroy_source): -do- for timeout handlers - (io_handler_source_finalized): Don't remove from list since - we now do that in io_handler_destroy_source(). Renamed from - io_handler_source_destroyed - (timeout_handler_source_destroyed): -do- for timeout handlers - (connection_setup_free): It is now safe to iterate over all - IO and timeout handlers as the _destroy_source removes them - from the list synchronously - -2005-03-30 Havoc Pennington - - * configure.in: change check to gtk 2.4 - - * tools/dbus-viewer.c (name_combo_changed_callback): remove - gtk_combo_box_get_active_text() usage to decrement GTK requirement - to 2.4 - -2005-03-29 John (J5) Palmieri - - * News: Update 0.32 - - * HACKING: Fixed realease instructions. configure.in should be updated to - the next release by the person who made the last release. - -2005-03-29 John (J5) Palmieri - - * python/lvalue_cast_post_process.py - removed. Patch has been - submitted to Pyrex maintainers that fixes gcc4.0 errors - - * python/Makefile.am: removed refrences to lvalue_cast_post_process.py - -2005-03-24 Daniel Reed - - * tools/Makefile.am: Make print-introspect and - dbus-bus-introspect.xml building conditional on HAVE_GLIB. - -2005-03-22 John (J5) Palmieri - - * tools/Makefile.am: Patch by Colin Walters that fixes distcheck - - * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have - had in Red Hat packages for a while but for some reason never - got merged upstream - (_dbus_is_a_number): New checks if a string - can be converted to a number and does the conversion if it can - (_dbus_user_database_lookup): Add check to see if the given username - is a udi. This allows udi's to be used instead of usernames in the - config file. - (_dbus_user_database_lookup_group): Add check to see if the given groupname - is a gdi. This allows gdi's to be used instead of groupnames in the - config file. - -2005-03-21 John (J5) Palmieri - - * python/lvalue_cast_post_process.py - added post processor to fix Pyrex - code so that it compiles with gcc4.0 - - * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST - run dbus_bindings.c through lvalue_cast_post_process.py and copy the - results back to dbus_binding.c - -2005-03-20 Colin Walters - - Patch suggested by Inguva Rajasekhar . - - * configure.in: Require GTK+ 2.6. - -2005-03-20 Colin Walters - - * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test. - -2005-03-17 Tom Parker - - * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't - print DBUS_UID_UNSET; instead print passed username. Also - be sure to actually use gid looked up in cache. - - * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto - for DBUS_GID_UNSET and groupname. - -2005-03-17 Colin Walters - - * bus/print-introspect.c: Move to tools/. - * bus/run-with-tmp-session-bus.sh: Ditto. - - * glib/Makefile.am (dbus-glib-bindings.h): Move - generation to tools/Makefile.am. - - * test/glib/run-test.sh: Update to handle move - of run-with-tmp-session-bus.sh. - - * test/glib/test-service-glib.c: Update to handle - move of dbus-glib-bindings.h. - - * tools/print-introspect.c: Moved here - from bus/, and ported to GLib bindings. - - * tools/run-with-tmp-session-bus.sh: Moved here - from bus/. - - * tools/Makefile.am: Generate dbus-glib-bindings.h - and dbus-bus-introspect.xml here. - - * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore: - Update. - -2005-03-17 Colin Walters - - * bus/driver.c (write_args_for_direction): Use - _dbus_string_get_const_data to retrieve string; - _dbus_string_get_const_data_len doesn't actually return - a NULL-terminated substring. - - * test/glib/test-service-glib.c: Include dbus-glib-bindings.h. - (main): Change to use org_freedesktop_DBus_request_name - instead of using g_proxy_begin_call/end_call. - -2005-03-15 Joe Shaw - - * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when - generating the finalizer. Fixes from Ben Maurer. - -2005-03-12 Joe Shaw - - * mono/BusDriver.cs: Update method names: ListServices - becomes ListNames; GetOwner becomes GetNameOwner. - - * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0 - onto the eval stack when removing the delegate. - -2005-03-12 Joe Shaw - - * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for - LT_CURRENT. Set it to the autoconf variable. - - * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy - classes that disconnects the signal handler delegate from the - service object. Fixes a big leak of proxy objects on the - client side of things. Patch from Ben Maurer - - -2005-03-12 Colin Walters - - * bus/driver.c (write_args_for_direction): New function, - parses a type signature into arguments and outputs to - XML. - (bus_driver_handle_introspect): Use it instead of - hardcoding XML for certain signatures. - - * bus/Makefile.am (dbus-bus-introspect.xml): Add - dependency on dbus-daemon. - - * glib/dbus-glib-tool.c (main): Parse ignore_unsupported - argument, pass it to dbus_binding_tool_output_glib_client. - - * glib/dbus-binding-tool-glib.c - (generate_client_glue): Protect against multiple inclusion. - (dbus_binding_tool_output_glib_client): Add - G_BEGIN_DECLS/G_END_DECLS. - - * glib/dbus-binding-tool-glib.c (compute_client_method_name): - Change to just take iface prefix directly. - (write_formal_parameters): Clarify error message. - (check_supported_parameters): New function; checks to see type - signatures of method parameters are supported. - (generate_client_glue): Handle ignore_unsupported flag. - (dbus_binding_tool_output_glib_client): Handle ignore_unsupported - parameter. - - * glib/Makefile.am (dbus-glib-bindings.h): Pass - --ignore-unsupported by default until glib bindings - support arrays. - -2005-03-11 Colin Walters - - * glib/Makefile.am: Generate dbus-glib-bindings.h and - install it. - - * bus/print-introspect.c: New file; prints introspection - data for a given name and object path. - - * bus/run-with-tmp-session-bus.sh: New file, refactored - from test/glib/run-test.sh. Creates a temporary session - bus and runs another program. - - * test/glib/run-test.sh: Refactor to invoke - run-with-tmp-session-bus.sh. - - * bus/driver.c (bus_driver_handle_introspect): Fix to print new - introspection format. Also change to use DBUS_TYPE_x_AS_STRING - macros instead of hardcoding. - - * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update. - -2005-03-11 Joe Shaw - - * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove - this unref; it doesn't match up evenly in some codepaths. - (_dbus_connection_block_pending_call): Unref at every exitpoint; - this evenly matches with the ref near the top of this function. - -2005-03-09 Joe Shaw - - * dbus/dbus-object-tree.c - (_dbus_object_tree_unregister_and_unlock): If checks are enabled - and we try to unregister a path that's not registered, still go - through the process of unlocking and don't just return. - -2005-03-09 Colin Walters - - * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls - to this are generated for client-side wrappers. Invokes a - D-BUS method and returns reply values. - - * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New - function; writes signature string for argument direction. - (write_args_for_direction): Change to pass input values directly - instead of via address, and fix indentation. - (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also - make generated wrappers inlineable. - - * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add - note about using dbus_type_is_fixed. - - * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to - dbus/dbus-signature.c as dbus_type_is_fixed. - - All callers updated. - - * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here - from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed. - - * dbus/dbus-signature.h: Prototype. - - * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix - error printf code. - - * test/glib/test-dbus-glib.c (main): Be sure to clear error as - appropriate instead of just freeing it. - (main): Free returned strings using g_free. - - * test/glib/Makefile.am (test-service-glib-glue.h) - (test-service-glib-bindings.h): Add dependency on dbus-binding-tool. - - * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT; - simply maps a simple D-BUS type to GType. - (dbus_dbus_type_to_gtype): Function which maps D-BUS type to - GType. - (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and - initialize the value with it. - (dbus_gvalue_binding_type_from_type): Unused, delete. - (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for - various types instead of unmarshalling to value data directly. - Remove can_convert boolean. - (dbus_gvalue_marshal): Remove duplicate initialization; switch to - returning directly instead of using can_convert boolean. - (dbus_gvalue_store): New function; not related to D-BUS per-se. - Stores a GValue in a pointer to a value of its corresponding C - type. - - * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type, - add dbus_gvalue_store. - -2005-03-08 Joe Shaw - - Fix a bunch of lifecycle and memory management problems - in the mono bindings. - - * mono/Arguments.cs (Arguments): Implement IDisposable - - * mono/Bus.cs (Bus): Don't allow public instantiation. This is - strictly a static class. - - * mono/Connection.cs: Move the DBusObjectPathVTable and associated - delegates into this file. - (Connection): Implement IDisposable. - (Dispose): Disconnect the connection and set the raw connection - pointer to IntPtr.Zero. - (~Connection): Call Dispose(). - (RegisterObjectPath): Added. Manages the registration of object - paths so we can cleanly disconnect them at dispose/finalize time. - (UnregisterObjectPath): Ditto. - (set_RawConnection): Unregister all of the object paths when - changing the underlying DBusConnection. Add them back onto the - new connection, if any. - - * mono/Handler.cs: Don't implement IDisposable; it doesn't use any - more unmanaged resources anymore, so it's not necessary. Move all - the DBusObjectPathVTable stuff out of here. - (Handler): Save references to our delegates so that they don't get - finalized. Call Connection.RegisterObjectPath() instead of - dbus_connection_register_object_path() directly. - (Message_Called): Dispose the message after we're finished with - it. - - * mono/Message.cs (Message): Implement IDisposable. - (Dispose): Dispose the Arguments, and set the RawMessage to - IntPtr.Zero. - (SendWithReplyAndBlock): We own the ref to the reply that comes - back from dbus_connection_send_with_reply_and_block() so add a - comment about that and unref it after we've constructed a managed - MethodReturn class around it. Fixes a big, big leak. - - * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose - method. - (BuildSignalHandler): After we've sent the Signal message, dispose - of it. - (BuildMethod): Dispose of the method call and reply messages after - we've sent the message and extracted the data we want from the - reply. - - * mono/Service.cs (UnregisterObject): Don't call handler.Dispose() - anymore. - (Service_FilterCalled): Dispose of the message after we're - finished with it. - -2005-03-08 Joe Shaw - - * dbus/dbus-connection.c (dbus_connection_send_with_reply): - After we attach our pending call to the connection, unref - it. Fixes a leak. - - * mono/Connection.cs (set_RawConnection): Disconnect our - filter and match callbacks from the old connection and - reconnect them to the new connection, if any. - - * mono/DBusType/Array.cs: "Code" is a static member, so - don't use "this" to refer to it. Fix for stricter checking - in Mono 1.1.4. - - * mono/DBusType/ObjectPath.cs (Append): Don't leak the - object path that we pass into unmanaged code. - - * mono/DBusType/String.cs (Append): Don't leak the string - that we pass into unmanged code. - -2005-03-07 John (J5) Palmieri - * NEWS: Update for 0.31 - - * configure.in: Release 0.31 - add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping - - * qt/Makefile.am: fixed build - - * dbus/Makefile.am: soname bump for libdbus - - * glib/Makefile.am: soname bump for libdbus-glib - -2005-03-05 Havoc Pennington - - * dbus/dbus-sysdeps.c: - (pseudorandom_generate_random_bytes_buffer): fix to have no return - value - (_dbus_generate_random_bytes_buffer): fix return value - - * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure - checks actually work, from Tom Parker - -2005-03-01 Colin Walters - - * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility - functions copied from dbus-glib-tool.c. - (main): Convert lots of error code to use them. - Also add some testing for introspection bits. - -2005-03-01 Colin Walters - - * doc/TODO: Remove introspection signature TODO. - -2005-02-27 Colin Walters - - * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type): - Change return value to const char * instead of int so we can do - full signatures. - (struct PropertyInfo, struct ArgInfo): Store char *. - (property_info_new, arg_info_new): Update parameters, strdup. - (property_info_unref, arg_info_unref): Free. - - * glib/dbus-gidl.h: Update prototypes. - - * glib/dbus-gparser.c (basic_type_from_string): Delete. - (validate_signature): New function, just validates signature and - sets GError. - (parse_property, parse_arg): Invoke validate_signature. Store - signature instead of just type code. - - * glib/dbus-gvalue.c (base_type_from_signature): New utility - function to return a primary type for a signature, dropping - information about types in container types. - (dbus_gvalue_genmarshal_name_from_type) - (dbus_gvalue_binding_type_from_type) - (dbus_gvalue_ctype_from_type): Update to take full signature - instead of type code. - (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c. - - * glib/dbus-gvalue.h: Update prototypes for above. - - * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to - glib/dbus-gvalue.c as dbus_gtype_to_dbus_type. - (introspect_properties, introspect_signals, write_interface): - Update to handle signatures, and remove usage of - _dbus_gutils_type_to_string. - (handle_introspect): Print out type codes instead of e.g. "string" - in hardcoded introspection XML; also use x_AS_STRING constants - instead of hardcoding in string. - - * glib/dbus-glib-tool.c (pretty_print): Handle signature change - to string. Remove usage of _dbus_gutils_type_to_string. - - * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete. - - * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for - deletion. - - * glib/dbus-binding-tool-glib.c (compute_marshaller) - (compute_marshaller_name, generate_glue): Handle signature change - to string. - (write_formal_parameters, write_args_for_direction): Ditto, and - remove FIXME. - - * tools/dbus-tree-view.c (type_to_string): Delete. - (info_set_func_text): Update to print full signatures. - - * test/glib/test-service-glib.xml: Change types to new - introspection format. - -2005-02-26 Havoc Pennington - - * doc/TODO: remove the "guid" item - - * test/glib/test-profile.c (no_bus_thread_func): use open_private - (with_bus_thread_func): use open_private - - * dbus/dbus-connection.c (dbus_connection_open_private): new - function that works like the old dbus_connection_open() - (dbus_connection_open): now returns an existing connection if - possible - - * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass - through the GUID to the transport - - * dbus/dbus-server.c (_dbus_server_init_base): keep around the - GUID in hex-encoded form. - - * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): - pass GUID argument in to the transport - - * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add - guid argument - - * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument - - * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument - -2005-02-25 Havoc Pennington - - * doc/dbus-specification.xml: document the GUID thing - - * dbus/dbus-server.c (_dbus_server_init_base): initialize a - globally unique ID for the server, and put a "guid=hexencoded" - field in the address - - * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h - - * dbus/dbus-message.c: ditto - - * dbus/dbus-dataslot.c: ditto - - * dbus/dbus-list.c: ditto - - * dbus/dbus-internals.h: wait, just include - dbus-threads-internal.h here - - * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for - use in main library - - * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function - -2005-02-24 Colin Walters - - * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml - -2005-02-24 John (J5) Palmieir - - * glib/Makefile.am: added dbus-gobject.h to sources list - so distcheck doesn't fail - -2005-02-24 Havoc Pennington - - * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so - you must disconnect before unref, since locking and other things - are screwed up otherwise. Fix assorted other locking stuff. - - * dbus/dbus-signature.c (dbus_signature_iter_get_element_type): - fix compilation - - * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers - into a private header and don't export from the library - - * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff - -2005-02-24 Colin Walters - - * dbus/dbus-signature.c: New file; implements various functions - related to type signatures. Includes an interator for parsing, - validation functions. - (dbus_type_is_basic): Moved here from - dbus-marshal-basic.c:_dbus_type_is_basic. - (dbus_type_is_container): Moved here from - dbus-marshal-basic.c:_dbus_type_is_container. - - All callers of _dbus_type_is_container and _dbus_type_is_basic - updated, and include dbus-signature.h. - - * dbus/dbus-signature.h: New file; prototypes for the above. - - * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c, - dbus-signature.h. - - * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility - function factored out of _dbus_first_type_in_signature. - (_dbus_first_type_in_signature_c_str): New function; returns first - type code for a type signature character. - - * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str, - handle function moves. - - * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next. - - * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New - function; skips to next complete type in type signature. - Implemented using previous skip_one_complete_type. Now - skip_one_complete_type just delegates to - _dbus_type_signature_next. - - * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved - to dbus-signature.c - (_dbus_type_is_container): Ditto. - - * doc/dbus-specification.xml: Update introspection sample to - use real type signatures. - - * dbus/dbus-test.h: Prototype signature test. - - * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run - signature tests. - - * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error. - -2005-02-23 John (J5) Palmieri - - * python/dbus_bindings.pyx.in (PendingCall::get_reply): - s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply - -2005-02-21 Colin Walters - - * dbus/dbus-test-main.c (main): Take optional specific test - argument. - - * dbus/dbus-test.c (run_test): New function, runs a test function - with no data directory. - (run_data_test): Like above, but takes data directory. - (dbus_internal_do_not_use_run_tests): Take - specific test argument. Replace lots of cut n' paste code - with run_test and run_data_test. - - * dbus/dbus-test.h: Update prototype for - dbus_internal_do_not_use_run_tests. - -2005-02-20 Havoc Pennington - - Fix bugs reported by Daniel P. Berrange - - * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function - (protected_change_watch): new function - (_dbus_server_toggle_watch, _dbus_server_remove_watch) - (_dbus_server_add_watch): change to work like the - dbus-connection.c equivalents; like those, probably kind of - busted, but should at least mostly work for now - (dbus_server_disconnect): drop the lock if we were already - disconnected, patch from Daniel P. Berrange - - * dbus/dbus-server.c (_dbus_server_toggle_timeout) - (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the - same stuff - - * doc/TODO: todo about unscrewing this mess - -2005-02-19 Colin Walters - - * glib/dbus-binding-tool-glib.c - (dbus_binding_tool_output_glib_server): Fix iochannel refcounting. - - * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well - as errno.h and sys/stat.h. - (lose): New function, prints error with - newline and exits. - (lose_gerror): Similar, but takes GError for message. - (main): Add --output argument to specify output file to write to, - instead of always printing to stdout. In this mode, determine - timestamps on source files to see whether any are newer than the - target file. If not, exit. Also convert a number of error - messages to use lose (since it's shorter), and switch to using - g_io_channel_shutdown. - -2005-02-19 Havoc Pennington - - * glib/dbus-gobject.c - (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs - - * glib/dbus-glib.c: fix doxygen warnings - - * glib/dbus-gparser.c (parse_annotation): error if an annotation - is found on an - -2005-02-17 Colin Walters - - * glib/dbus-gobject.h: Don't export - _dbus_glib_marshal_dbus_message_to_gvalue_array. - - * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename. - (invoke_object_method): Handle it. - - * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): - Handle rename. - -2005-02-17 Colin Walters - - * bus/.cvsignore, doc/.cvsignore - * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore: - Update. - -2005-02-17 Colin Walters - - * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS): - Rename to DBUS_SERVICE_DBUS. - (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS. - (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL. - Change the value from "org.freedesktop.Local" - to "org.freedesktop.DBus.Local". - (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS. - (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to - DBUS_INTERFACE_INTROSPECTABLE. - Change the value from "org.freedesktop.Introspectable" - to "org.freedesktop.DBus.Introspectable". - (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to - DBUS_INTERFACE_PROPERTIES. - Change the value from "org.freedesktop.Properties" - to "org.freedesktop.DBus.Properties". - (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to - DBUS_INTERFACE_PEER. - Change the value from "org.freedesktop.Peer" - to "org.freedesktop.DBus.Peer". - (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): - DBUS_INTERFACE_LOCAL. - Change the value from "org.freedesktop.Local" - to "org.freedesktop.DBus.Local". - - All other users of those constants have been changed. - - * bus/driver.c (bus_driver_handle_introspect): Use constants. - - * glib/dbus-gobject.c (handle_introspect): Use constants. - - * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename. - -2005-02-17 Colin Walters - - * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean. - (parse_node, parse_interface, parse_method, parse_signal) - (parse_property, parse_annotation): Lose if we're currently in an - annotation. - (parse_annotation): New function. - (parser_start_element, parser_end_element): Handle annotation. - (parse_method, parse_interface): Remove support for c_name attribute, - switch to annotations. - - * glib/dbus-gidl.h (interface_info_get_binding_names) - (method_info_get_binding_names) - (interface_info_get_binding_name, method_info_get_binding_name) - (interface_info_set_binding_name, method_info_set_binding_name): - Remove. - (interface_info_get_annotations, method_info_get_annotations) - (interface_info_get_annotation, method_info_get_annotation) - (interface_info_add_annotation, method_info_add_annotation): - Prototype. - - * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations" - for "bindings". - (struct MethodInfo): Ditto. - Straightfoward conversion of binding methods into annotation methods - as prototyped. - - * glib/dbus-glib-tool.c (pretty_print): Print annotations. - - * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define. - - * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue): - Use new annotation API. - - * doc/introspect.dtd: Fix a number of DTD syntax errors. Add - annotation element. - - * doc/dbus-specification.xml: Discuss introspection annotations, - include list of well-known annotations. - - * test/glib/test-service-glib.xml: Make validate against new DTD. - -2005-02-17 Colin Walters - - This patch is based on initial work from - Paul Kuliniewicz . - - * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move - initialization of GValue from dbus type to here. - (dbus_gvalue_genmarshal_name_from_type): New function; generates a string - for the "glib-genmarshal" program from a DBus type. - (dbus_gvalue_binding_type_from_type): New function; turns a DBus type - into the C name for it we use in the glib bindings. - (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a - glib C type (not GValue). - (dbus_gvalue_demarshal): invoke dbus_gvalue_init. - - * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here - from dbus-gobject.c. - - * glib/dbus-gutils.h: Prototype it. - - * glib/dbus-gproxy.c: Include new dbus-gobject.h. - (marshal_dbus_message_to_g_marshaller): Use new shared function - dbus_glib_marshal_dbus_message_to_gvalue_array. - - * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute. - Will be changed once we have annotations. - - * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to - GStaticRWLock. Callers updated. - (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated. - (string_table_next): New function for iterating over zero-terminated - string value array. - (string_table_lookup): New function; retrieves specific entry in - array. - (get_method_data): New function; look up method data in object data chunk. - (object_error_domain_prefix_from_object_info) - (object_error_code_from_object_info): New functions, but not implemented yet. - (method_interface_from_object_info): New function; retrieve interface name. - (method_name_from_object_info): New function; retrieve method name. - (method_arg_info_from_object_info): New function; retrieve argument data. - (arg_iterate): New function; iterates over serialized argument data. - (method_dir_signature_from_object_info): New function; returns a - GString holding type signature for arguments for just one - direction (input or output). - (method_input_signature_from_object_info) - (method_output_signature_from_object_info): New functions. - (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function; - converts dbus message arguments into a GValue array. Used for both - signal handling and method invocation. - (struct DBusGlibWriteIterfaceData): New utility structure. - (write_interface): New function; generate introspection XML for - an interface. - (introspect_interfaces): New function; gathers all interface->methods, - generates introspection XML for them. - (handle_introspect): Invoke introspect_interfaces. - (get_object_property): Be sure to zero-initalize stack-allocated GValue. - (lookup_object_and_method): New function; examines an incoming message - and attempts to match it up (via interface, method name, and argument - signature) with a known object and method. - (gerror_domaincode_to_dbus_error_name): New function; converts a - GError domain and code into a DBus error name. Needs GError data - added to object introspection to work well. - (gerror_to_dbus_error_message): Creates a DBusMessage error return from - GError. - (invoke_object_method): New function to invoke an object method - looked up via lookup_object_and_method. Parses the incoming - message, turns it into a GValue array, then invokes the marshaller - specified in the DBusGMethodInfo. Creates a new message with - either return values or error message as appropriate. - (gobject_message_function): Invoke lookup_object_and_method and - invoke_object_method. - - * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h. - (enum DBusBindingOutputMode): New enum for binding output modes. - (pretty_print): Print binding names. - (dbus_binding_tool_error_quark): GError bits. - (version): Fix typo. - (main): Create GIOChannel for output. Parse new --mode argument, - possible values are "pretty-print", "glib-server", "glib-client". - Use mode to invoke appropriate function. - - * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array. - - * glib/dbus-glib-tool.h: New header, just includes GError bits - for now. - - * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable; - maps binding style to name. - (struct MethodInfo): Ditto. - (get_hash_keys, get_hash_key): Utility function, returns keys for - a GHashTable. - (interface_info_new, method_info_new): Initialize bindings. - (interface_info_unref, method_info_unref): Destroy bindings. - (method_info_get_binding_names, method_info_get_binding_name) - (interface_info_get_binding_names, interface_info_get_binding_name): - Functions for retrieving binding names. - (method_info_set_binding_name, interface_info_set_binding_name): - Functions for setting binding names. - - * glib/dbus-binding-tool-glib.h: New file, has prototypes - for glib binding generation. - - * glib/dbus-binding-tool-glib.c: New file, implements server-side - and client-side glib glue generation. - - * glib/Makefile.am (dbus_binding_tool_SOURCES): Add - dbus-binding-tool-glib.c, dbus-binding-tool-glib.h, - dbus-glib-tool.h. - - * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor - of using GClosureMarshal directly. - (struct DBusGObjectInfo): Add n_infos member. - - * test/glib/test-service-glib.xml: New file; contains introspection data - for MyTestObject used in test-service-glib.c. - - * test/glib/test-service-glib.c (enum MyObjectError): New GError enum. - (my_object_do_nothing, my_object_increment, my_object_throw_error) - (my_object_uppercase, my_object_many_args): New test methods. - (main): Use dbus_g_object_class_install_info to include generated object - info. - - * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c, - as well as client-side bindings. - - * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h. - (main): Activate TestSuiteGLibService; test invoke a bunch of its methods - using both the dbus_gproxy stuff directly as well as the generated bindings. - -2005-02-15 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_dispatch): always - complete a pending call, don't run filters first. - - * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use - dbus_pending_call_steal_reply - - * dbus/dbus-pending-call.c (dbus_pending_call_block): just call - _dbus_connection_block_pending_call - (dbus_pending_call_get_reply): change to steal_reply and return a - ref - - * dbus/dbus-connection.c - (dbus_connection_send_with_reply_and_block): port to work in terms - of DBusPendingCall - (_dbus_connection_block_pending_call): replace block_for_reply - with this - -2005-02-14 Havoc Pennington - - * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): - properly handle looking up group information by name; fix - from j@bootlab.org - -2005-02-13 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_return_message) - (dbus_connection_borrow_message): hold dispatch lock while message - is outstanding - (_dbus_connection_block_for_reply): hold dispatch lock while we - block for the reply, so nobody steals our reply - (dbus_connection_pop_message): hold the dispatch lock while we - pluck the message - -2005-02-13 Havoc Pennington - - * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch) - (_dbus_connection_release_dispatch) - (_dbus_connection_acquire_io_path) - (_dbus_connection_release_io_path): make the mutex and condvar - control access to the "acquired" flag. Drop the connection lock - while waiting on the condvar. Hopefully these are baby steps in - roughly the right direction. - -2005-02-13 Havoc Pennington - - * dbus/dbus-connection.c: use separate mutexes for the condition - variables; this is some kind of baseline for sanity, but the - condition variables still aren't used correctly afaict - -2005-02-13 Havoc Pennington - - * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): - fix a double-unlock - - * dbus/dbus-connection.c - (_dbus_connection_detach_pending_call_unlocked): add this - - Initial semi-correct pass through to fix thread locking; there are - still some issues with the condition variable paths I'm pretty - sure - - * dbus/dbus-server.c: add a mutex on DBusServer and appropriate - lock/unlock calls - - * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked): - rename to add _unlocked - (struct DBusConnection): move "dispatch_acquired" and - "io_path_acquired" to use only one bit each. - (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS - (dbus_connection_set_watch_functions): hacky fix to reentrancy - (_dbus_connection_add_watch, _dbus_connection_remove_watch) - (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) - (_dbus_connection_remove_timeout) - (_dbus_connection_toggle_timeout): drop lock when calling out to - user functions; done in a hacky/bad way. - (_dbus_connection_send_and_unlock): add a missing unlock - (_dbus_connection_block_for_reply): add a missing unlock - - * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): - drop lock in a hacky probably unsafe way to call out to user - function - -2005-02-12 Havoc Pennington - - * tools/dbus-tree-view.c (info_set_func_text): display more - details on args - - * bus/driver.c (bus_driver_handle_list_services): list the bus - driver - - * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied - - * glib/dbus-gidl.c (signal_info_get_n_args): new function - (method_info_get_n_args): new function - -2005-02-12 Havoc Pennington - - * bus/driver.c (bus_driver_handle_introspect): add introspection - for bus driver - -2005-02-12 Havoc Pennington - - * bus/driver.c: put the signature of each bus driver method in the - table of handlers and check it on incoming calls; this isn't - really useful, but going to add introspect support in a minute. - -2005-02-11 Joe Shaw - - * mono/Connection.cs: The unpredictability of finalizers in mono - prevents us from deterministically disconnecting the filters from - the Service class's finalizer, so move tracking of filters and - matches here. Add API for that. - - * mono/Service.cs: Remove the code, add code which calls the - methods now on the Connection class. - -2005-02-11 John (J5) Palmieri - - * python/dbus.py (class Sender): added to support dbus signals better - (Bus::add_signal_receiver): added expand_args parameter which defaults - to True. When expand args is True the signal handler will pass the - message arguments as parameters to the signal handler. If False - revert to previous behavior where the signal handler must get the - argument list from the message. This is to help port applications - like HAL that have a tendancy to send variable length argument lists. - self._match_rule_to_receivers is now a dict of dicts. - (Bus::remove_signal_receiver): pop handler off the dict intead of - removing it from a list - (Bus::_signal_func): change signal handlers so that interface, - signal_name, service, path and message are packed into a Sender - object and that is passed to the handler. If expand_args is True - extract the args list from the message and append it to the parameter - list - - * python/dbus_bindings.pyx.in (class Signature): added to support - signiature types - (MessageIter::__init__): changed iteration limit to match D-BUS - (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, - STRUCT and VARIENT type support - (MessageIter::python_value_to_dbus_sig): made recursive to support - recursive types - (MessageIter::append*): added Signature, dict, tuple - support - - * python/examples/example-client.py: added examples of getting tuples - and dicts - - * python/examples/example-service.py: added examples of sending tuples - and dicts - - * python/examples/example-signal-recipient.py: Fixed to handle new - signal callback format - -2005-02-10 Havoc Pennington - - * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail - (call dbus_g_proxy_add_signal) - - * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): - escape the hostname - (_dbus_server_new_for_domain_socket): escape the path - - * dbus/dbus-address.c (dbus_address_escape_value): new - (dbus_address_unescape_value): new - (dbus_parse_address): unescape values - - * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function - - * doc/dbus-specification.xml: explain how to escape values in - addresses - -2005-02-10 Havoc Pennington - - * dbus/dbus-message-factory.c (generate_special): modify test to - avoid using a non-basic dict key - - * dbus/dbus-marshal-validate-util.c: add test for the below - - * doc/dbus-specification.xml: require that dict keys are a basic - type - - * dbus/dbus-marshal-validate.c - (_dbus_validate_signature_with_reason): require that dict key is a - basic type - -2005-02-10 Havoc Pennington - - * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): - change to be _and_unlock instead of _unlocked - - * dbus/dbus-connection.c - (_dbus_connection_send_preallocated_unlocked_no_update): rename to - have no_update so we can find this bug quickly in future - -2005-02-10 Havoc Pennington - - * dbus/dbus-message-util.c (verify_test_message): tests for string - array - - * dbus/dbus-message.c (dbus_message_append_args_valist): add - support for arrays of string/signature/path - -2005-02-10 Joe Shaw - - * dbus/dbus-connection.c - (_dbus_connection_queue_received_message_link, - _dbus_connection_message_sent): Add the path to - the verbose output. - (_dbus_connection_send_preallocated_and_unlock): Added. Calls - _dbus_connection_send_preallocated_unlocked(), updated the - dispatch status, and unlocks. Fixes a bug where certain - situations (like a broken pipe) could cause a Disconnect message - to not be sent, tricking the bus into thinking a service was still - there when the process had quit. - (_dbus_connection_send_preallocated): Call - _dbus_connection_send_preallocated_and_unlock(). - (_dbus_connection_send_and_unlock): Added. Calls - _dbus_connection_send_preallocated_and_unlock(). - (dbus_connection_send): Call _dbus_connection_send_and_unlock(). - (dbus_connection_send_with_reply): Update the dispatch status and - unlock. - - * mono/Service.cs (~Service): Added. Removes the filter so that - we don't get unmanaged code calling back into a GCed delegate. - (RemoveFilter); Added. - -2005-02-09 John (J5) Palmieri - - * dbus/dbus-message.c (dbus_message_iter_open_container): - - Removed check for iterator type being an array because - get_arg_type does not work with writer iterators - - Pass NULL to _dbus_type_writer_recurse if signiture is NULL - -2005-02-07 Havoc Pennington - - * doc/dbus-specification.xml: some more language cleanups; add - stuff about how to deal with invalid protocol and extension - points; add _ to allowed chars in auth commands; add EXTENSION_ - auth command prefix - -2005-02-06 Havoc Pennington - - * s/expected/required/ in a couple places for clarity - -2005-02-07 Colin Walters - - * bus/selinux.c (bus_selinux_allows_send): Handle NULL for - sender or proposed_recipient. - -2005-02-06 Havoc Pennington - - * dbus/dbus-message-factory.c (generate_special): more tests - - * dbus/dbus-marshal-validate.c (validate_body_helper): detect - array length that exceeds the maximum - -2005-02-05 Havoc Pennington - - * dbus/dbus-message-factory.c (generate_special): more test cases, - increasing coverage - - * dbus/dbus-marshal-validate.c (validate_body_helper): return the - reason why a signature was invalid - - * dbus/dbus-marshal-header.c (load_and_validate_field): fix to - skip the length of the string before we look at it in validation - - * dbus/dbus-string-util.c (_dbus_string_test): add tests for - equal_substring - - * dbus/dbus-message.c (_dbus_message_loader_new): default - max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH - -2005-02-05 Havoc Pennington - - * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash - if the signature of a variant was empty - (_dbus_validate_signature_with_reason): catch "(a)" (array inside - struct with no element type) - - * dbus/dbus-message-factory.c (generate_uint32_changed): add more - mangled messages to break things - -2005-02-04 Havoc Pennington - - * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use - g_quark_try_string() so it actually can return 0 - (dbus_g_proxy_connect_signal): ditto - -2005-02-04 Havoc Pennington - - * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a - bogus warning - (tristring_from_message): assert cleanly on null path/interface - (should not be possible though I decided later) - (dbus_g_proxy_dispose): move proxy manager unregistration here - (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of - g_return_if_fail() checks - -2005-02-04 Havoc Pennington - - * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile - - * doc/introspect.dtd: add introspect.dtd from David A. Wheeler - (with some minor changes) - - * doc/dbus-specification.xml: add deprecated attribute to - introspection format - -2005-01-31 Havoc Pennington - - * glib/dbus-gproxy.c: rewrite how signals work again, this time I - think it's sort of right - -2005-01-30 Havoc Pennington - - * tools/dbus-viewer.c: kind of half-ass hook up the option menu. - -2005-01-30 Havoc Pennington - - * tools/dbus-names-model.c: dynamically watch NameOwnerChanged - - * autogen.sh: change to autotools 1.9 - - * glib/dbus-gproxy.c: completely change how signals work - (dbus_g_proxy_add_signal): new function to specify signature of a - signal - (dbus_g_proxy_emit_received): marshal the dbus message to GValues, - and g_warning if the incoming message has the wrong signature. - -2005-01-30 Havoc Pennington - - * tools/dbus-names-model.c (have_names_notify): fix this - - * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean - up the string array handling a bit - -2005-01-30 Havoc Pennington - - * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function - (dbus_g_pending_call_cancel): new function - - * dbus/dbus-glib.h: move GType decls for connection/message here; - * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in - here, just kind of rationalizing how we handle all that - - * tools/dbus-names-model.c: new file for a tree model listing the - services on a bus - - * tools/dbus-tree-view.c (model_new): use proper typing on the - model rows - -2005-01-30 Havoc Pennington - - * glib/dbus-gmain.c: add a custom GSource back that just checks - whether the message queue has anything in it; otherwise, there are - cases where we won't see messages in the queue since there was no - IO visible to the glib main loop - - * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE): - increase default message timeout to 25 seconds - -2005-01-30 Havoc Pennington - - * test/glib/test-profile.c (no_bus_stop_server): remove the - warning about the g_warning that I just fixed - - * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the - custom source, seems to be a lot easier to understand and work - better. - -2005-01-30 Havoc Pennington - - I think this main loop thing is conceptually broken, but here are - some band aids. I'll maybe rewrite it in a minute. - - * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the - custom GSource, so don't pass it in; confusing - (gsource_server_finalize, gsource_connection_finalize): add - finalize handlers that remove all the watches. - -2005-01-30 Havoc Pennington - - * glib/dbus-gobject.c (introspect_properties): fix the XML - generated - - * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag - which effectively detects the use of freed messages - - * glib/dbus-gobject.c (handle_introspect): modify and return the - reply message instead of the incoming message - - * dbus/dbus-object-tree.c (handle_default_introspect_unlocked): - gee, maybe it should SEND THE XML instead of just making a string - and freeing it again ;-) - - * tools/dbus-print-message.c (print_message): improve printing of - messages - - * configure.in: add debug-glib.service to the output - -2005-01-30 Havoc Pennington - - dbus-viewer introspected and displayed the bus driver - - * dbus/dbus-object-tree.c - (object_tree_test_iteration): add tests for a handler registered on "/" - - * dbus/dbus-object-tree.c - (_dbus_decompose_path): fix to handle path "/" properly - (run_decompose_tests): add tests for path decomposition - - * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/" - properly - - * glib/dbus-gobject.c (handle_introspect): fix quotes - - * test/glib/run-test.sh: support launching the bus, then running - dbus-viewer - - * test/glib/test-service-glib.c (main): put in a trivial gobject - subclass and register it on the connection - - * bus/driver.c (bus_driver_handle_introspect): implement - introspection of the bus driver service - - * dbus/dbus-protocol.h: add #defines for the XML namespace, - identifiers, doctype decl - - * bus/driver.c (bus_driver_handle_get_service_owner): handle - attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by - returning the service unchanged. - (bus_driver_handle_message): remove old check for reply_serial in - method calls, now the message type deals with that - (bus_driver_handle_message): handle NULL interface - - * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function - - * glib/dbus-gloader-expat.c (description_load_from_string): allow - -1 for len - - * tools/dbus-viewer.c: add support for introspecting a service on - a bus - - * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add - (dbus_g_pending_call_unref): add - -2005-01-29 Havoc Pennington - - * tools/dbus-tree-view.c: add support for displaying properties. - (run dbus-viewer with an introspect xml file as arg, then resize - the window so the tree elements show up, not sure what that is) - - * glib/dbus-gobject.c (handle_introspect): return - org.freedesktop.Properties and org.freedesktop.Introspectable - interfaces when we are introspected. - - * doc/dbus-specification.xml: allow empty interface name when - Get/Set a property - -2005-01-29 Havoc Pennington - - * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool; - though it uses glib, it could be extended for any binding in - principle - - * glib/dbus-gobject.c (gobject_message_function): change to the - new way properties work - - * dbus/dbus-protocol.h: add the new interfaces - - * doc/dbus-specification.xml: document the introspection format, - Introspectable interface, and add an org.freedesktop.Properties - interface. - - * glib/dbus-gparser.c: add support for a element - - * glib/dbus-gidl.c: add PropertyInfo - - * glib/dbus-gobject.c (handle_introspect): put the outermost - outside the signal and property descriptions. - (introspect_properties): export properties as rather - than as method calls - -2005-01-28 Havoc Pennington - - * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks - related to authentication protocol - -2005-01-28 John (J5) Palmieri - - * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system - - BUS_ACTIVATION -> BUS_STARTER - - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER - - class MessageIter (__init__): Added recursion checking - so we throw a nice error instead of just disconnecting from the - bus. - (get): Added arg_type parameter for recursion. - Removed the nil type - Added signiture type placeholder (not implemented) - Added struct type placeholder (not implemented) - Added varient type placeholder (not implemented) - Commented out dict type for now - (get_element_type): renamed from get_array_type - (get_*): changed to use the dbus_message_iter_get_basic API - (get_*_array): removed in favor of recursive get_array method - (get_array): new recursive method which calls get to marshal - the elements of the array - (value_to_dbus_sig): New method returns the corrasponding - dbus signiture to a python value - (append): Comment out dict handling for now - Handle lists with the new recursive API - Comment out None handling for now - (append_nil): removed - (append_*): changed to use dbus_message_iter_append_basic API - (append_*_array): removed in favor of recursive append_array - method - (__str__): Make it easier to print out recursive iterators - for debugging - - class Message (__str__): moved type inspection to the - MessageIter class' __str__ method - (get_iter): Added an append parameter wich defaults to False - If True use the new API's to create an append iterator - - * python/dbus.py: Update to use new bindings API - - TYPE_ACTIVATION -> TYPE_STARTER - - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner - - class ActivationBus -> class StarterBus - - class RemoteObject (__call__): get an append iterator - - (_dispatch_dbus_method_call): get an append iterator - - class Object (emit_signal): get an append iterator - - * python/examples/: Fixed up the examples to work with the new API - -2005-01-28 Joe Shaw - - * configure.in: Bump version up to 0.30. - - * HACKING: Add a release item to bump the version number up after - a release. - -2005-01-28 Havoc Pennington - - * doc/dbus-specification.xml: update to describe 16-bit types and - dict entries - - * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken - assertion - - * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a - type - - * dbus/dbus-marshal-recursive.c: implement - -2005-01-27 Havoc Pennington - - * dbus/dbus-arch-deps.h.in: add 16/32-bit types - - * configure.in: find the right type for 16 and 32 bit ints as well - as 64 - - * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add - the 16-bit types so people don't have to stuff them in 32-bit or - byte arrays. - -2005-01-27 Havoc Pennington - - * dbus/dbus-message.c: byteswap the message if you init an - iterator to read/write from it - - * dbus/dbus-marshal-byteswap.c: new file implementing - _dbus_marshal_byteswap() - - * dbus/dbus-marshal-basic.c: add _dbus_swap_array() - -2005-01-26 Havoc Pennington - - * dbus/dbus-marshal-validate-util.c: break this out (and fix - build, apparently - nobody noticed?) - -2005-01-26 Havoc Pennington - - * dbus/dbus-marshal-recursive.h: remove todo comment - -2005-01-25 Joe Shaw - - * Land the mono binding changes to conform to the new APIs. - - * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs, - DBusType/Dict.cs, and DBusType/Nil.cs from the build. - - * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus - type code as a string. - (InitAppending): Rename dbus_message_append_iter_init() to - dbus_message_iter_init_append(). - - * mono/BusDriver.cs: Rename ServiceEventHandler to - NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner. - Rename ServiceOwnerChanged to NameOwnerChanged. - - * mono/Connection.cs: Rename BaseService to UniqueName, and the - underlying C call. - - * mono/Custom.cs: Removed. The CUSTOM type has been removed. - - * mono/Service.cs: Rename Exists to HasOwner, internally rename - dbus_bus_acquire_service() to dbus_bus_request_name(). - - * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead - of Type.UnderlyingSystemType to get the correct element type for - the array. - (ctor): Update code for new APIs: use dbus_message_iter_recurse(), - dbus_message_get_{element|arg}_type() instead of - dbus_message_iter_init_array_iterator(). - (Append): Replace dbus_message_iter_append_array() with - dbus_message_iter_open_container() and - dbus_message_iter_close_container(). - - * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These - types have been removed. - - * mono/DBusType/*.cs: Replace calls of - dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(), - but specify the type in the DllImport extern declaration. Ditto - for dbus_message_iter_append_[type]() -> - dbus_message_iter_append_basic(). - - * mono/example/BusListener.cs: Update for ServiceEventHandler -> - NameOwnerChangedHandler. - -2005-01-25 John (J5) Palmieri - - * python/dbus_bindings.pyx.in: Rename of methods and bindings - - get_base_service -> get_unique_name - - bus_get_base_service -> bus_get_unique_name - - dbus_bus_get_base_service -> dbus_bus_get_unique_name - - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS - - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING - - bus_activate_service -> bus_start_service_by_name - - dbus_bus_activate_service -> dbus_bus_start_service_by_name - - bus_acquire_service -> bus_request_name - - dbus_bus_acquire_service -> dbus_bus_request_name - - bus_service_exists -> bus_name_has_owner - - dbus_bus_service_exists -> dbus_bus_name_has_owner - - * python/dbus.py: Rename of methods - - activate_service -> start_service_by_name - - bus_acquire_service -> bus_request_name - - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS - - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING - - -2005-01-24 Joe Shaw - - * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the - signature for the method that can't be found. - - * dbus/dbus-message.c (dbus_message_iter_init): To check to see if - the message has any arguments, we need to call - _dbus_type_reader_get_current_type(), not - _dbus_type_reader_has_next(). - -2005-01-24 Havoc Pennington - - * dbus/dbus-message-factory.c: more testing of message validation - - * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this - header - -2005-01-23 Havoc Pennington - - * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: - get this all working, not many tests in the framework yet though - -2005-01-22 Havoc Pennington - - * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update - tutorial, based on work from David Wheeler. - -2005-01-21 Havoc Pennington - - * dbus/dbus-bus.c: add more return_if_fail checks - - * dbus/dbus-message.c (load_message): have the "no validation" - mode (have to edit the code to toggle the mode for now though) - - * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that - skips all validation; I want to use this at least for benchmark - baseline, I'm not sure if it should be a publicly-available switch. - -2005-01-21 Havoc Pennington - - * glib/dbus-gmain.c: don't put the GLib bindings in the same - toplevel doxygen group as the low-level API stuff - - * dbus/dbus.h: note that libdbus is the low-level API - -2005-01-20 Havoc Pennington - - * update-dbus-docs.sh: script to update docs on the web site, only - works for me though. neener. - -2005-01-20 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile - code can reveal bugs in it - -2005-01-20 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the - select() version, patches from Tor Lillqvist - -2005-01-20 Havoc Pennington - - * doc/dbus-tutorial.xml: replace > with > - - * bus/services.c (bus_registry_acquire_service): validate the name - and return a better error if it's no good. - - * doc/dbus-specification.xml: note NO_AUTO_START change - - * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change - from AUTO_START, we're toggling the default - - * bus/dispatch.c: adapt the tests to change of auto-start default - -2005-01-18 Havoc Pennington - - * rename dbus-daemon-1 to dbus-daemon throughout - -2005-01-18 Havoc Pennington - - * Throughout, grand renaming to strip out the use of "service", - just say "name" instead (or "bus name" when ambiguous). Did not - change the internal code of the message bus itself, only the - programmer-facing API and messages. - - * doc/dbus-specification.xml: further update the message bus section - - * bus/config-parser.c (all_are_equiv): fix bug using freed string - in error case - -2005-01-17 Havoc Pennington - - * dbus/dbus-types.h: remove 16-bit types since we don't use them - ever - - * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any - "invalid name character" not only non-ASCII - - * doc/dbus-specification.xml: further update spec, message bus - parts are still out-of-date but the marshaling etc. stuff is now - accurate-ish - -2005-01-17 Havoc Pennington - - * doc/dbus-specification.xml: partially update spec - -2005-01-17 Havoc Pennington - - * Throughout, align variant bodies according to the contained - type, rather than always to 8. Should save a fair bit of space in - message headers. - - * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason): - fix handling of case where p == end - - * doc/TODO: remove the dbus_bool_t item and variant alignment items - -2005-01-17 Havoc Pennington - - * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits - - * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead - of an 8-bit type. Now dbus_bool_t is the type to use whenever you - are marshaling/unmarshaling a boolean. - -2005-01-16 Havoc Pennington - - This is about it on what can be disabled/deleted from libdbus - easily, back below 150K anyhow. Deeper cuts are more work than - just turning the code off as I've done here. - - * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the - signed int convenience funcs - - * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in - verbose mode - - * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking - things out of libdbus - - * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same - - * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it - tests-enabled-only, though it should probably be deleted) - - * dbus/dbus-message-util.c: same stuff - - * dbus/dbus-auth-util.c: same stuff - -2005-01-16 Havoc Pennington - - * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c - - * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave - way for stripping down dbus-userdb.c stuff included in libdbus. - Rename _dbus_parse_uid for consistency. - -2005-01-16 Havoc Pennington - - * dbus/dbus-internals.c (_dbus_real_assert): print the function - name the assertion failed in - - * dbus/dbus-internals.h (_dbus_return_if_fail) - (_dbus_return_val_if_fail): assert that the name of the function - containing the check doesn't start with '_', since we only want to - use checks on public functions - - * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change - checks to assertions - - * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic): - change checks to asserts for private function - - * dbus/dbus-message.c (_dbus_message_set_serial): checks - to asserts for private function - - * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove - broken assertion that was breaking make check - (_dbus_type_reader_array_is_empty): remove this rather than fix - it, was only used in assertions - -2005-01-16 Havoc Pennington - - * test/unused-code-gc.py: hacky script to find code that's used - only by the bus (not libdbus) or used only by tests or not used at - all. It has some false alarms, but looks like we can clean up a - lot of size from libdbus. - - * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c, - dbus/Makefile.am: initially move 10K of binary size out of libdbus - -2005-01-16 Havoc Pennington - - * Add and fix docs according to Doxygen warnings throughout - source. - - * dbus/dbus-marshal-recursive.c - (_dbus_type_reader_array_is_empty): change this to just call - array_reader_get_array_len() and make it static - - * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename - from get_array_type - (dbus_message_iter_init_append): rename from append_iter_init - - * dbus/dbus-marshal-recursive.c - (_dbus_type_reader_get_element_type): rename from - _dbus_type_reader_get_array_type - -2005-01-15 Havoc Pennington - - * test/glib/test-profile.c (with_bus_server_filter): fix crash - - * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro - when DBUS_DISABLE_ASSERT - (_dbus_marshal_set_basic): be sure we align for the string length - - * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make - this look faster - - * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an - inline macro version - (_dbus_string_set_byte): provide inline macro version - -2005-01-15 Havoc Pennington - - * Land the new message args API and type system. - - This patch is huge, but the public API change is not - really large. The set of D-BUS types has changed somewhat, - and the arg "getters" are more geared toward language bindings; - they don't make a copy, etc. - - There are also some known issues. See these emails for details - on this huge patch: - http://lists.freedesktop.org/archives/dbus/2004-December/001836.html - http://lists.freedesktop.org/archives/dbus/2005-January/001922.html - - * dbus/dbus-marshal-*: all the new stuff - - * dbus/dbus-message.c: basically rewritten - - * dbus/dbus-memory.c (check_guards): with "guards" enabled, init - freed blocks to be all non-nul bytes so using freed memory is less - likely to work right - - * dbus/dbus-internals.c (_dbus_test_oom_handling): add - DBUS_FAIL_MALLOC=N environment variable, so you can do - DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or - DBUS_FAIL_MALLOC=10 to make it really, really, really slow and - thorough. - - * qt/message.cpp: port to the new message args API - (operator<<): use str.utf8() rather than str.unicode() - (pretty sure this is right from the Qt docs?) - - * glib/dbus-gvalue.c: port to the new message args API - - * bus/dispatch.c, bus/driver.c: port to the new message args API - - * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the - "locked" flag to TRUE and align_offset to 0; I guess we never - looked at these anyhow, but seems cleaner. - - * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING): - move allocation padding macro to this header; use it to implement - (_DBUS_STRING_STATIC): ability to declare a static string. - - * dbus/dbus-message.c (_dbus_message_has_type_interface_member): - change to return TRUE if the interface is not set. - - * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff - to dbus-marshal-validate.[hc] - - * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from - dbus-internals.c - - * dbus/Makefile.am: cut over from dbus-marshal.[hc] - to dbus-marshal-*.[hc] - - * dbus/dbus-object-tree.c (_dbus_decompose_path): move this - function here from dbus-marshal.c - -2005-01-12 Joe Shaw - - * NEWS: Update for 0.23. - - * configure.in: Release 0.23. - -2005-01-12 Joe Shaw - - * mono/Makefile.am, mono/example/Makefile.am: Always build the - dbus DLL with --debug. Clean up after the .mdb files this leaves - behind. - - * mono/doc/Makefile.am: Need to uninstall the docs on "make - uninstall" - - * mono/Arguments.cs (GetDBusTypeConstructor): If the type - is an enum, get the enum's underlying type. Another mono - 1.1.3 fix. - -2005-01-11 Joe Shaw - - Patch from Sjoerd Simons - - * mono/Makefile.am, mono/example/Makefile.am: Don't redefine - DESTDIR. It breaks stuff. - -2005-01-11 Joe Shaw - - Patch from Tambet Ingo - - * mono/DBusType/Array.cs (Get): Get the underlying element type by - calling type.GetElementType(). The code previously depended on - broken Mono behavior, which was fixed in Mono 1.1.3. - - * mono/DBusType/Dict.cs (constructor): Fix the parameters for - Activator.CreateInstance() so that the class's constructor is - called with the right parameters. - -2005-01-11 Joe Shaw - - Patch from Timo Teräs - - * dbus/dbus-connection.c - (_dbus_connection_queue_received_message_link): Call - _dbus_connection_remove_timeout() instead of the _locked() - variant, since it's always called from - _dbus_connection_handle_watch(), which handles the locking. - Removed the _locked() variant since it's no longer used. - -2005-01-03 Havoc Pennington - - * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can - return - -2004-12-26 Havoc Pennington - - * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert - -2005-01-03 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on - floating point - - * dbus/dbus-string.c (_dbus_string_insert_alignment): new function - -2005-01-02 Havoc Pennington - - * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro - -2005-01-01 Havoc Pennington - - * configure.in: add -Wfloat-equal - -2005-01-01 Havoc Pennington - - * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, - for a variety of reasons '==' doesn't do this. - -2004-12-31 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_equal_substrings): new function - I keep wishing I had - -2004-12-30 John (J5) Palmieri - - * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED - -2004-12-30 John (J5) Palmieri - - * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED - and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in - dbus-protocol.h. Because they are defines and not enums they are not - autogenerated. - -2004-12-26 John (J5) Palmieri - - * python/dbus_bindings.pyx.in (bus_activate_service): Bind - dbus_bus_activate_service - - * python/dbus.py (Bus.activate_service): activate a service on the - bus. - -2004-12-24 Havoc Pennington - - * test/decode-gcov.c: change to use .gcno and .gcda files, but the - file format has also changed and I haven't adapted to that yet - - * Makefile.am: load .gcno files from latest gcc - -2004-12-23 John (J5) Palmieri - * Patch from Rob Taylor - - * python/dbus_bindings.pyx.in (bus_get_unix_user): New - lowlevel binding - - * python/dbus.py (get_unix_user): Added binding to - call dbus_bindings.bus_get_unix_user - - * python/extract.py: Modified the proto_pat regex to - handle unsigned long - -2004-12-21 Olivier Andrieu - - * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for - better POSIX compliance. - -2004-12-19 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_insert_4_aligned) - (_dbus_string_insert_8_aligned): new functions - - * dbus/dbus-string.c (_dbus_string_alloc_space): new function - -2004-12-18 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII - macro - - * dbus/dbus-message.c: fix a comment, and add a still-unused - not-implemented function - - * dbus/dbus-marshal.h: fix comment - - * dbus/dbus-internals.h (_DBUS_ISASCII): new macro - -2004-12-17 Joe Shaw - - * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs, - mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs, - mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of - Type.UnderlyingSystemType to get the actual system type - underneath. This code previously depended on the broken Mono - behavior, which was fixed in 1.1.3. - -2004-11-27 Havoc Pennington - - * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts - are disabled - (_dbus_string_get_const_data): inline when asserts are disabled - - * dbus/dbus-message.c: record the _dbus_current_generation of - creation so we can complain if dbus_shutdown() is used improperly. - Do this only if checks are enabled. - - * dbus/dbus-connection.c: ditto - -2004-11-26 Havoc Pennington - - * test/glib/test-profile.c: add with_bus mode to profile echoes - that go through the bus. - - * test/glib/run-test.sh: add ability to run test-profile - - * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial - config file reload. - -2004-11-26 Havoc Pennington - - * test/glib/test-profile.c: clean up how the fake_malloc_overhead - thing was implemented - -2004-11-26 Havoc Pennington - - * test/glib/test-profile.c: tweak a bit, add support for some - made-up minimal malloc overhead with plain sockets, since in - real life some sort of buffers are unavoidable thus we could - count them in the theoretical best case - -2004-11-26 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug - where I was trying to cache one too many messages - -2004-11-26 Havoc Pennington - - * dbus/dbus-message.c: reimplement message cache as an array which - makes the cache about twice as fast and saves maybe 1.5% overall - -2004-11-26 Havoc Pennington - - * dbus/dbus-threads.c (init_global_locks): forgot to put the - message cache lock here - -2004-11-26 Havoc Pennington - - * dbus/dbus-message.c (struct DBusMessage): put the locked bit and - the "char byte_order" next to each other to save 4 bytes - (dbus_message_new_empty_header): reduce preallocation, since the - message cache should achieve a similar effect - (dbus_message_cache_or_finalize, dbus_message_get_cached): add a - message cache that keeps a few DBusMessage around in a pool, - another 8% speedup or so. - - * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function - -2004-11-25 Havoc Pennington - - * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going - to write, without reading or blocking, try it before the poll() - and skip the poll() if nothing remains to write. This is about a - 3% speedup in the echo client/server - -2004-11-25 Havoc Pennington - - The primary change here is to always write() once before adding - the write watch, which gives us about a 10% performance increase. - - * dbus/dbus-transport-unix.c: a number of modifications to cope - with removing messages_pending - (check_write_watch): properly handle - DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of - messages_pending stuff - (check_read_watch): properly handle WAITING_FOR_MEMORY and - AUTHENTICATED cases - (unix_handle_watch): after writing, see if the write watch can be - removed - (unix_do_iteration): assert that write_watch/read_watch are - non-NULL rather than testing that they aren't, since they - aren't allowed to be NULL. check_write_watch() at the end so - we add the watch if we did not finish writing (e.g. got EAGAIN) - - * dbus/dbus-transport-protected.h: remove messages_pending call, - since it resulted in too much inefficient watch adding/removing; - instead we now require that the transport user does an iteration - after queueing outgoing messages, and after trying the first - write() we add a write watch if we got EAGAIN or exceeded our - max bytes to write per iteration setting - - * dbus/dbus-string.c (_dbus_string_validate_signature): add this - function - - * dbus/dbus-server-unix.c (unix_finalize): the socket name was - freed and then accessed, valgrind flagged this bug, fix it - - * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken - as the last valid field plus 1, where really it is equal to the - last valid field. Corrects some message corruption issues. - - * dbus/dbus-mainloop.c: verbosity changes - - * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM - instead of aborting in one of the test codepaths - - * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that - caused not printing the pid ever again if a verbose was missing - the newline at the end - (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE - - * dbus/dbus-connection.c: verbosity changes; - (dbus_connection_has_messages_to_send): new function - (_dbus_connection_message_sent): no longer call transport->messages_pending - (_dbus_connection_send_preallocated_unlocked): do one iteration to - try to write() immediately, so we can avoid the write watch. This - is the core purpose of this patchset - (_dbus_connection_get_dispatch_status_unlocked): if disconnected, - dump the outgoing message queue, so nobody will get confused - trying to send them or thinking stuff is pending to be sent - - * bus/test.c: verbosity changes - - * bus/driver.c: verbosity/assertion changes - - * bus/dispatch.c: a bunch of little tweaks to get it working again - because this patchset changes when/where you need to block. - -2004-11-23 Havoc Pennington - - * test/glib/test-profile.c: modify to accept a plain_sockets - argument in which case it will bench plain sockets instead of - libdbus, for comparison purposes. - -2004-11-22 Havoc Pennington - - * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple - threads for more time, so sysprof can get a grip on it. - - * dbus/dbus-string.c (_dbus_string_validate_utf8): remove - pointless variable - -2004-11-13 Havoc Pennington - - * test/glib/test-profile.c: fix this thing up a bit - - * dbus/dbus-message.c (dbus_message_new_empty_header): increase - preallocation sizes by a fair bit; not sure if this will be an - overall performance win or not, but it does reduce reallocs. - - * dbus/dbus-string.c (set_length, reallocate_for_length): ignore - the test hack that forced constant realloc if asserts are - disabled, so we can profile sanely. Sprinkle in some - _DBUS_UNLIKELY() which are probably pointless, but before I - noticed the real performance problem I put them in. - (_dbus_string_validate_utf8): micro-optimize this thing a little - bit, though callgrind says it didn't help; then special-case - ascii, which did help a lot; then be sure we detect nul bytes as - invalid, which is a bugfix. - (align_length_then_lengthen): add some more _DBUS_UNLIKELY - superstition; use memset to nul the padding instead of a manual - loop. - (_dbus_string_get_length): inline this as a - macro; it showed up in the profile because it's used for loop - tests and so forth - -2004-11-10 Colin Walters - - * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR, - for extra paranoia. - -2004-11-09 Colin Walters - - * dbus/dbus-string.c (_dbus_string_get_length): New - function, writes DBusString to C buffer. - - * dbus/dbus-string.h: Prototype it. - - * dbus/dbus-message.c (dbus_message_type_to_string): New - function, converts message type into C string. - - * dbus/dbus-message.h: Prototype it. - - * bus/selinux.c (bus_selinux_check): Take source pid, - target pid, and audit data. Pass audit data to - avc_has_perm. - (log_audit_callback): New function, appends extra - audit information. - (bus_selinux_allows_acquire_service): Also take - service name, add it to audit data. - (bus_selinux_allows_send): Also take message - type, interface, method member, error name, - and destination, and add them to audit data. - (log_cb): Initialize func_audit. - - * bus/selinux.h (bus_selinux_allows_acquire_service) - (bus_selinux_allows_send): Update prototypes - - * bus/services.c (bus_registry_acquire_service): Pass - service name to bus_selinux_allows_acquire_service. - - * bus/bus.c (bus_context_check_security_policy): Pass - additional audit data. Move assignment of dest - to its own line. - -2004-11-07 Colin Walters - - * dbus/dbus-transport-unix.c (do_authentication): Always - initialize auth_completed. - -2004-11-07 Colin Walters - - * bus/bus.c (load_config): Break into three - separate functions: process_config_first_time_only, - process_config_every_time, and process_config_postinit. - (process_config_every_time): Move call of - bus_registry_set_service_context_table into - process_config_postinit. - (process_config_postinit): New function, does - any processing that needs to happen late - in initialization (and also on reload). - (bus_context_new): Instead of calling load_config, - open config parser here and call process_config_first_time_only - and process_config_every_time directly. Later, after - we have forked but before changing UID, - invoke bus_selinux_full_init, and then call - process_config_postinit. - (bus_context_reload_config): As in bus_context_new, - load parse file inside here, and call process_config_every_time - and process_config_postinit. - - * bus/services.h, bus/services.c - (bus_registry_set_service_context_table): Rename - from bus_registry_set_sid_table. Take string hash from config - parser, and convert them here into SIDs. - - * bus/config-parser.c (struct BusConfigParser): Have - config parser only store a mapping of service->context - string. - (merge_service_context_hash): New function. - (merge_included): Merge context string hashes instead - of using bus_selinux_id_table_union. - (bus_config_parser_new): Don't use bus_selinux_id_table_new; - simply create a new string hash. - (bus_config_parser_unref): Unref it. - (start_selinux_child): Simply insert strings into hash, - don't call bus_selinux_id_table_copy_over. - - * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union) - (bus_selinux_id_table_copy_over): Delete. - -2004-11-03 Colin Walters - - * bus/selinux.c (bus_selinux_pre_init): Kill some unused - variables. - -2004-11-03 Colin Walters - - * bus/test-main.c (test_pre_hook): Fix test logic, - thanks Joerg Barfurth . - -2004-11-02 Colin Walters - - * bus/selinux.c (bus_selinux_init): Split into two functions, - bus_selinux_pre_init and bus_selinux_post_init. - (bus_selinux_pre_init): Just determine whether SELinux is - enabled. - (bus_selinux_post_init): Do everything else. - - * bus/main.c (main): Call bus_selinux_pre_init before parsing - config file, and bus_selinux_post_init after. This ensures that - we don't lose the policyreload notification thread that - bus_selinux_init created before forking previously. - - * bus/test-main.c (test_pre_hook): Update for split. - -2004-10-31 Owen Fraser-Green - - Patch from Johan Fischer - - * mono/doc/Makefile.am (install-data-local): Added directory - install for DESTDIR - -2004-10-29 Colin Walters - - * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take - parameter for fd to write pid to. - - * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it. - - * bus/bus.c (bus_context_new): Pass print_pid_fd - to _dbus_become_daemon (bug #1720) - -2004-10-29 Colin Walters - - Patch from Ed Catmur - - * mono/doc/Makefile.am (install-data-local): Handle - DESTDIR. - -2004-10-29 Colin Walters - - * bus/.cvsignore, qt/.cvsignore: Update. - -2004-10-29 Colin Walters - - Patch from Kristof Vansant - - * configure.in: Detect Slackware. - * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in. - * bus/rc.messagebus.in: New file. - -2004-10-29 Colin Walters - - * tools/dbus-monitor.c (filter_func): Return - DBUS_HANDLER_RESULT_HANDLED in filter function - for now. See: - http://freedesktop.org/pipermail/dbus/2004-August/001433.html - -2004-10-29 Colin Walters - - Patch from Matthew Rickard - - * bus/services.c (bus_registry_acquire_service): - Correctly retrieve service name from DBusString - for printing. - -2004-10-29 Colin Walters - - * dbus/dbus-glib.h: Update documentation to not - refer to internal APIs. - -2004-10-27 Joe Shaw - - * mono/Arguments.cs (GetDBusTypeConstructor): - type.UnderlyingSystemType will return "System.Byte" if you do it - on "byte[]", which is not what we want. So check the type.IsArray - property and use System.Array instead. - -2004-10-25 John (J5) Palmieri - - * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free - the DBusUserInfo structure since this is passed into the function. - This would cause a double free when the function that allocated - the structure would try to free it when an error occured. - - * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in): - use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services - for service activation to avoid 32bit/64bit parallel install issues - -2004-10-21 Colin Walters - - * AUTHORS: Fix my email address, the @gnu.org one - has been bouncing for some time. Also add J5. - -2004-10-21 Colin Walters - - * dbus/dbus-transport-unix.c (do_authentication): Return - authentication status to callers. - (unix_handle_watch): If we completed authentication this round, - don't do another read. Instead wait until the next iteration, - after we've read any pending data in the auth buffer. - (unix_do_iteration): Ditto. - (unix_handle_watch): Updated for new do_authentication prototype. - -2004-10-18 Colin Walters - - * bus/selinux.c (bus_selinux_enabled): Handle - --disable-selinux case. - -2004-10-18 Colin Walters - - * bus/selinux.h: Add bus_selinux_enabled. - - * bus/selinux.c (bus_selinux_enabled): Implement it. - - * bus/config-parser.c (struct include): Add - if_selinux_enabled member. - (start_busconfig_child): Parse if_selinux_enabled - attribute for include. - (bus_config_parser_content): Handle it. - - * bus/session.conf.in, bus/system.conf.in: Add - inclusion of context mapping to default config files; - conditional on SELinux being enabled. - - * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD. - - * test/data/invalid-config-files/badselinux-1.conf, - test/data/invalid-config-files/badselinux-2.conf: - Test files for bad syntax. - -2004-10-17 Colin Walters - - * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards) - (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf - format specifier mismatches. - -2004-10-07 Olivier Andrieu - - * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect - format string. - - * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL - pointer (bug #1540, Leonardo Boiko). - -2004-09-28 Jon Trowbridge - - * mono/BusDriver.cs: Changed BusDriver struct to remove - the ServiceCreated and ServiceDeleted events and replace them - with the new ServiceOwnerChanged event. - - * mono/example/BusListener.cs: Added a new example program, - which listens for and reports any ServiceOwnerChanged events - on the bus driver. - - * mono/example/Makefile.am (DESTDIR): Build changes for the - new BusListener.cs example. - -2004-09-27 Olivier Andrieu - - * bus/signals.c (bus_match_rule_parse): validate the components of - match rules (bug #1439). - - * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test. - -2004-09-24 Olivier Andrieu - - * doc/dbus-specification.xml: document ServiceOwnerChanged - signal. - - * bus/driver.c, bus/driver.h, bus/services.c: Use - ServiceOwnerChanged signal instead of ServiceCreated and - ServiceDeleted. - - * bus/dispatch.c: update testcase for the new signal. - -2004-09-20 Jon Trowbridge - - Patch from Nat Friedman - - * mono/Makefile.am: A number of small build fixes to allow "make - distcheck" to succeed. - - * mono/example/Makefile.am: "make distcheck" fixes. - - * mono/AssemblyInfo.cs.in: When signing the assembly, look for the - key in @srcdir@. - - * test/Makefile.am: "make distcheck" fixes. - -2004-09-17 Olivier Andrieu - - * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM. - - * doc/busconfig.dtd: update the DTD for the at_console attribute. - - * bus/driver.c (bus_driver_handle_hello): correctly handle Hello - messages after the first one (bug #1389). - - * bus/dispatch.c (check_double_hello_message): add a test case for - the double hello message bug. - (check_existent_service_activation): fix check of spawning error. - -2004-09-16 David Zeuthen - - * python/dbus_bindings.pyx.in: Add support for int64 and uint64 - -2004-09-12 David Zeuthen - - Patch from Kay Sievers - - * bus/bus.c (bus_context_new): - * bus/bus.h: - * bus/main.c (usage) - (main): - Add commandline option --nofork to override configuration file - setting. - -2004-09-09 Olivier Andrieu - - * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C - compilers don't like it (bug #974). - -2004-09-04 Harald Fernengel - - * qt/connection.*: Applied patch by Jérôme Lodewyck - to integrate an existing - connection into the Qt eventloop - -2004-08-30 Jon Trowbridge - - * mono/BusDriver.cs: Added. This is a class for interacting with - the org.freedesktop.DBus service. - - * mono/Message.cs: Added a mechanism to expose the message that is - currently being dispatched via the static Message.Current - property. Added Message.Sender and Message.Destination - properties. - - * mono/Handler.cs: Expose the dispatched message via - Message.Current when handling method calls. - - * mono/Service.cs: Expose the dispatched message via - Message.Current when handling signal emissions. - - * mono/Connection.cs: Bind dbus_bus_get_base_service via the - Connection.BaseService property. - -2004-08-28 Havoc Pennington - - * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable - - More fixes from Steve Grubb - - * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak - (_dbus_listen_tcp_socket): fix fd leak - - * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for - EINTR to a bit lower in the code - -2004-08-26 Jon Trowbridge - - * bus/driver.c (bus_driver_handle_service_exists): Respond with - TRUE if we are inquiring about the existence of the built-in - org.freedesktop.DBus service. - -2004-08-25 John Palmieri - * bus/config-parser.c: - (struct PolicyType): Add POLICY_CONSOLE - (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console - (start_busconfig_child): Sets up console element when - is encountered in a policy file - (append_rule_from_element): Convert console elements to console - rules. - - * bus/policy.c: - (bus_policy_create_client_policy): Add console rules to the client - policy based on if the client is at the console - (bus_policy_append_console_rule): New function for adding a - console rule to a policy - (bus_policy_merge): Handle console rule merging - - * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant - where we check for console user files - - * dbus/dbus-sysdeps.c: - (_dbus_file_exists): New function which checks if the given - file exists - (_dbus_user_at_console): New function which does the system - specific process of checking if the user is at the console - - * dbus/dbus-userdb.c: - (_dbus_is_console_user): New function converts a UID to user name - and then calls the system specific _dbus_user_at_console to - see if the user is at the console and therefor a console user - -2004-08-25 Olivier Andrieu - - * bus/config-parser.c (set_limit): - * bus/dbus-daemon-1.1.in: - * test/data/valid-config-files/many-rules.conf: set the - max_match_rules_per_connection limt from the config file. - - * doc/busconfig.dtd: update the DTD. - - * bus/driver.c: remove some unused variables. - -2004-08-24 Mikael Hallendal - - * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since - it's been replaced by dbus_g_bus_get - -2004-08-23 Colin Walters - - Updated SELinux support from Matthew Rickard - - * bus/selinux.h: Prototype bus_selinux_get_policy_root. - - * bus/selinux.c: Create a thread for policy reload notification. - (bus_selinux_get_policy_root): Implement. - - * bus/config-parser.c (start_busconfig_child) - (bus_config_parser_content): Support SELinux-root relative - inclusion. - - * configure.in : Add -lpthread. - - * bus/test-main.c (test_pre_hook, test_post_hook): New. - (test_post_hook): Move memory checking into here. - (test_pre_hook, test_post_hook): Move SELinux checks in - here, but conditional on a DBUS_TEST_SELINUX environment - variable. Unfortunately we can't run the SELinux checks - as a normal user, since they won't have any permissions - for /selinux. So this will have to be tested manually - for now, until we have virtualization for most of - libselinux. - -2004-08-23 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to - drop supplementary groups, suggested by Steve Grubb - -2004-08-20 Colin Walters - - * bus/config-parser.c (start_busconfig_child): Remove some unused - variables. - - * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler - warning. - -2004-08-17 Joe Shaw - - * configure.in: If --enable-mono is passed in, if we can't find - mono error out. - - * mono/Makefile.am: Use /gacutil to install assemblies into the - GAC and not /root. - -2004-08-12 Havoc Pennington - - * NEWS: update for 0.22 - - * configure.in: release 0.22 - -2004-08-11 Colin Walters - - * tools/dbus-send.c (main, usage): Add --reply-timeout - argument. - -2004-08-10 Olivier Andrieu - - * bus/bus.c (process_config_first_time_only): get rid of an unused - DBusError that was causing a memoy leak (bug #989). - - * dbus/dbus-keyring.c, dbus/dbus-message.c: - fix compilation on Solaris/Forte C (bug #974) - - * bus/main.c (main): plug two minuscule memleaks. - -2004-08-10 Havoc Pennington - - * doc/dbus-tutorial.xml: add some more info on GLib bindings - -2004-08-09 Havoc Pennington - - * COPYING: switch to Academic Free License version 2.1 instead of - 2.0, to resolve complaints about patent termination clause. - -2004-07-31 John (J5) Palmieri - - * README: added documentation for the --enable-python - configure switch. - -2004-07-31 Olivier Andrieu - - * bus/config-parser.c (bus_config_parser_new): fix an invalid - _unref in the SELinux support. - - * doc/busconfig.dtd: update DTD for SELinux support. - - * bus/config-loader-libxml.c: fix error handler and parser - initialisation/cleanup. OOM test now works with libxml2 HEAD. - - * configure.in: remove the warning about libxml2. - - * dbus/dbus-bus.c: silence doxygen warning. - -2004-07-31 Colin Walters - - * configure.in: Move #error in SELinux check to its own line. - -2004-07-31 Olivier Andrieu - - * dbus/dbus-internals.h (_DBUS_SET_OOM): - * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of - dbus_error_set. - - * bus/dispatch.c (check_send_exit_to_service): fix the test case, - broken by the change in the _SET_OOM macros. - -2004-07-31 Colin Walters - - * bus/selinux.c : Include utils.h to get - BUS_SET_OOM. - -2004-07-31 Colin Walters - - * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER - to correctly detect DBUS__ACQUIRE_SVC. Also add an - AC_MSG_CHECKING. - -2004-07-24 Havoc Pennington - - SELinux support from Matthew Rickard - - * bus/selinux.c, bus/selinux.h: new file encapsulating selinux - functionality - - * configure.in: add --enable-selinux - - * bus/policy.c (bus_policy_merge): add FIXME to a comment - - * bus/main.c (main): initialize and shut down selinux - - * bus/connection.c: store SELinux ID on each connection, to avoid - repeated getting of the string context and converting it into - an ID - - * bus/bus.c (bus_context_get_policy): new accessor, though it - isn't used - (bus_context_check_security_policy): check whether the security - context of sender connection can send to the security context of - recipient connection - - * bus/config-parser.c: add parsing for and - - * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to - implement dbus_connection_get_unix_fd() - - * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new - function, used by the selinux stuff - -2004-07-29 Olivier Andrieu - - * bus/config-loader-libxml.c: complete the implementation of - libxml backend for config file loader. Doesn't work with full OOM - test yet. - - * configure.in: change error when selecting libxml into a warning. - - * test/data/invalid-config-files: add two non-well-formed XML - files. - - * glib/Makefile.am: libdbus_gtool always uses expat, not libxml. - - * dbus/dbus-transport-unix.c (unix_handle_watch): do not - disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may - be necessary to read all the buffer. (bug #894) - - * bus/activation.c (bus_activation_activate_service): fix a - potential assertion failure (bug #896). Small optimization in the - case of auto-activation messages. - - * dbus/dbus-message.c (verify_test_message, _dbus_message_test): - add test case for byte-through-vararg bug (#901). patch by Kimmo - Hämäläinen. - -2004-07-28 Anders Carlsson - - * python/dbus.py: - * python/dbus_bindings.pyx.in: - Add dbus.init_gthreads (), allow emit_signal to pass - arguments to the signal. - -2004-07-24 Havoc Pennington - - * AUTHORS: add some people, not really comprehensively, let me - know if I missed you - -2004-07-24 Havoc Pennington - - * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by - Owen - - * test/Makefile.am (DIST_SUBDIRS): here also - -2004-07-22 Olivier Andrieu - - * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name, - breaking build on Solaris, reported by Farhad Saberi on the ML. - - * dbus/dbus-message.c (dbus_message_append_args_valist): fix the - va_arg invocation to account for integer promotion in the case of - DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901) - - * bus/services.c (bus_service_remove_owner): fix bug #902, use - _dbus_list_get_first_link, not _dbus_list_get_first. - - * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak. - - * dbus/dbus-object-tree.c (free_subtree_recurse): always null - handler functions so that the asserts in _dbus_object_subtree_unref - do not fail. - - * dbus/dbus-transport-unix.c (do_reading): - _dbus_transport_queue_messages return value is of type - dbus_bool_t, not DBusDispatchStatus. - -2004-07-19 David Zeuthen - - * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN - - * bus/dispatch.c: - (check_get_connection_unix_user): Debug says GetProperty; but the - method is called GetConnectionUnixUser - (check_get_connection_unix_process_id): New function - (bus_dispatch_test): Actually call check_get_connection_unix_user(); - also call check_get_connection_unix_process_id() - - * bus/driver.c: - (bus_driver_handle_get_connection_unix_process_id): New function, - handles GetConnectionUnixProcessID on the org.freedesktop.DBus - interface - - * dbus/dbus-auth.c: - (handle_server_data_external_mech): Set pid from the credentials - obtained from the socket - - * dbus/dbus-connection.c: - (dbus_connection_get_unix_process_id): New function - - * dbus/dbus-connection.h: - Add prototype for dbus_connection_get_unix_process_id - - * dbus/dbus-transport.c: - (_dbus_transport_get_unix_process_id): New function - - * dbus/dbus-transport.h: - Add prototype for _dbus_transport_get_unix_process_id - -2004-07-19 Olivier Andrieu - - * dbus/dbus-message.c: Message counter fix, patch by Christian - Hammond - -2004-07-18 Seth Nickell - - * python/dbus.py: - * python/dbus_bindings.pyx.in: - * python/tests/test-client.py: - - Add dbus.ByteArray and dbus_bindings.ByteArray - types so that byte streams can be passed back. - - Give jdahlin the heaps of credit that are so - rightfully his. - -2004-07-12 Seth Nickell - - * python/dbus.py: - - Add message argument to the default object_method_handler - function. - - * python/dbus_bindings.pyx.in: - - Automatically return NIL when passed an empty list - (we can't pass back a list since lists are typed - and we don't have any idea what type the the client - intended the list to be... :-( ) - -2004-07-10 Seth Nickell - - * python/examples/Makefile.am: - - Fix distcheck breakage caused by new examples. - -2004-07-10 Seth Nickell - - * python/dbus.py: - - Add "message" argument to service-side dbus.Object - methods. This will break existing services written - using the python bindings, but will allow extraction - of all the message information (e.g. who its from). - - Add improved "object oriented" signal handling/emission. - - * python/examples/example-service.py: - - Nix this example. - - * python/examples/example-signal-emitter.py: - * python/examples/example-signal-recipient.py: - - Two new examples that show how to emit and receive - signals using the new APIs. - - * python/examples/example-signals.py: - * python/examples/gconf-proxy-service.py: - * python/examples/gconf-proxy-service2.py: - - Add "message" argument to service methods. - -2004-06-28 Kay Sievers - - * bus/driver.c (bus_driver_handle_get_connection_unix_user) - * dbus/bus.c (dbus_bus_get_unix_user) - * doc/dbus-specification.xml: implement GetConnectionUnixUser - method of org.freedesktop.DBus interface. - - * bus/dispatch.c: test case - -2004-06-23 John (J5) Palmieri - - * python/Makefile.am: switched include directory from glib/ to dbus/ - since dbus-glib.h moved - -2004-06-22 Olivier Andrieu - - * configure.in: prevent building the gcj stuff and libxml loader - since they are broken. - -2004-06-20 Havoc Pennington - - * dbus/dbus-glib-error-enum.h: autogenerate the GError enum - codes from the dbus error names - - * glib/dbus-glib.h: move to subdir dbus/ since it's included - as dbus/dbus-glib.h and that breakage is now visible due to - including dbus/dbus-glib.h in dbus-glib-lowlevel.h - - * glib/dbus-glib.h: s/gproxy/g_proxy/ - - * dbus/dbus-shared.h: new header to hold stuff shared with - binding APIs - - * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather - than dbus-errors.h - - * glib/dbus-glib.h (dbus_set_g_error): move to - dbus-glib-lowlevel.h - - * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch - of stuff to enable this - - * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here - - * a bunch of other changes with the same basic "separate glib - bindings from dbus.h" theme - -2004-06-10 Owen Fraser-Green - - * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs. - - * python/examples/Makefile.am: Fixed typo in EXTRA_DIST. - -2004-06-09 Olivier Andrieu - - * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for - the reply value of the ServiceExists message. - -2004-06-07 John (J5) Palmieri - - * python/dbus_bindings.pyx.in: No longer need to parse path - elements and pass them as arrays of strings. The C API now - accepts plain path strings. - (_build_parsed_path): removed - -2004-06-07 Havoc Pennington - - * doc/TODO: remove auto-activation item since it's done; sort - items by importance/milestone - -2004-06-07 Havoc Pennington - - * dbus/dbus-message-builder.c (_dbus_message_data_load): append - random signature when using REQUIRED_FIELDS (this hack won't work - in the long term) - - * dbus/dbus-message.c: change the signature to be a header field, - instead of message->signature special-case string. Incremental - step forward. Then we can fix up code to send the signature in the - message, then fix up code to validate said signature, then fix up - code to not put the typecodes inline, etc. - (load_one_message): don't make up the signature after the fact - (decode_header_data): require signature field for the known - message types - - * dbus/dbus-marshal.c (_dbus_marshal_string_len): new - - * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE - -2004-06-07 Owen Fraser-Green - - * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path - - * mono/Handler.cs: Updated to follow new path argument for - (un-)registering objects. - - * mono/example/Makefile.am: - * mono/Makefile.am: - * configure.in: Bumped required version for mono and use new -pkg - syntax for deps - -2004-06-05 Olivier Andrieu - - * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path - registration functions take the path argument as char* instead of - char**. - - * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path): - split off the path decompostion part of - _dbus_demarshal_object_path. Some misc. fixes to silence compiler - warnings. - - * glib/dbus-gobject.c, test/test-service.c: update accordingly. - -2004-06-02 Kristian Høgsberg - - * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state - machine approach. A state is implemented as a function that - handles incoming events as specified for that state. - - * doc/dbus-specification.xml: Update auth protocol state machine - specification to match implementation. Remove some leftover - base64 examples. - -2004-06-02 Kristian Høgsberg - - * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c, - dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to - quiet doxygen. - - * Doxyfile.in: remove deprecated options. - - * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h, - glib/test-thread.h, glib/test-thread-client.c, - glib/test-thread-server.c, glib/test-profile.c, - glib/test-dbus-glib.c: remove these unused files. - -2004-06-01 Olivier Andrieu - - * dbus/dbus-object-tree.c - (_dbus_object_tree_dispatch_and_unlock): fix dispatch for - non-fallback handlers (bug #684). - (_dbus_object_subtree_new): initialize invoke_as_fallback field. - (find_subtree_recurse): report wether the returned subtree is an - exact match or a "fallback" match higher up in the tree. - (object_tree_test_iteration): update test case. - -2004-06-01 Seth Nickell - - * python/dbus_bindings.pyx.in: - * python/tests/test-client.py: - - Round off basic type support. Add dicts (yay!), and - remaining array types. - - Make MessageIter more general so it works for dicts too. - - Mark all loop variables as C integers. - -2004-05-31 Havoc Pennington - - * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with - "in" before "out" - - * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c - - * glib/dbus-glib-tool.c (main): set up to have a --self-test - option that runs the tests, and start filling in some code - including for starters just dumping the interfaces to stdout - - * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR - - * test/data/valid-introspection-files/lots-of-types.xml: test of - an example introspection file - - * glib/dbus-gparser.c (parser_check_doctype): doctype should be - "node" (I think...) - -2004-05-31 Seth Nickell - - * python/dbus_bindings.pyx.in: - * python/tests/test-client.py: - - Test Suite: 1 - Python Bindings: 0 - - Fix string array memory trashing bug... oops... - -2004-05-30 Seth Nickell - - * python/dbus.py: - - Add a nicer-but-less-flexible alternate API for handling - calls to virtual objects in dbus.ObjectTree. - - Screw up the argument order to the dbus.Object constructor - for consistency with dbus.ObjectTree (and to make dbus_methods - optional for future extension) - - * python/examples/Makefile.am: - * python/examples/gconf-proxy-service.py: - * python/examples/gconf-proxy-service2.py: - - Alternate implementation of gconf-proxy-service using the - nicer dbus.ObjectTree API. - - * python/examples/example-service.py: - * python/tests/test-server.py - - Reverse the argument order to deal with dbus.Object constructor - changes. - -2004-05-30 Seth Nickell - - * python/examples/example-client.py: - * python/examples/example-service.py: - - Take it back. Lists seem to work but they're broken - in the test suite. Make the base examples use - lists (works fine). - -2004-05-30 Seth Nickell - - * python/dbus_bindings.pyx.in: - * python/tests/test-client.py: - - Add some more tests and fix errors that crop up. - Unfortunately, currently it seems like marshalling - and unmarshalling of lists is completely broken :-( - -2004-05-30 Seth Nickell - - * python/dbus_bindings.pyx.in: - - Add support for ObjectPath type. - - * python/dbus.py: - - Refactor message handling code to a common function. - - * python/tests/test-client.py: - * python/tests/test-server.py: - - Add tests that check to make sure values of all types - can be echoed from a service w/o mangling. - -2004-05-29 Seth Nickell - - * python/dbus.py: - - Add ObjectTree class which allows implementation - of trees of "virtual" objects. Basically the python - wrapper for "register_fallback". - - * python/examples/Makefile.am - * python/examples/gconf-proxy-client.py: - * python/examples/gconf-proxy-service.py: - - Implement a simple GConf proxy service that supports - get/set on string and int GConf keys using the ObjectTree. - -2004-05-29 Seth Nickell - - * python/dbus.py: - * python/examples/example-client.py: - * python/examples/example-service.py: - * python/examples/list-system-services.py: - - Add SessionBus, SystemBus and ActivationBus classes - so you don't need to know the special little BUS_TYPE - flag. - -2004-05-29 Havoc Pennington - - * bus/config-parser.c (process_test_valid_subdir): temporarily - stop testing config parser OOM handling, since expat has issues - http://freedesktop.org/pipermail/dbus/2004-May/001153.html - - * bus/dbus-daemon-1.1.in: change requested_reply to - send_requested_reply/receive_requested_reply so we can send the - replies, not just receive them. - - * bus/config-parser.c: parse the new - send_requested_reply/receive_requested_reply - - * bus/policy.c (bus_client_policy_check_can_send): add - requested_reply argument and use it - - * bus/bus.c (bus_context_check_security_policy): pass through - requested_reply status to message send check - - * bus/system.conf.in: adapt to requested_reply change - -2004-05-28 Havoc Pennington - - * test/glib/test-service-glib.c (main): remove unused variable - - * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning - - * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES - from the enum, no longer in use. - - * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually - works right. - - * dbus/dbus-message.c: add various _dbus_return_val_if_fail for - whether error_name passed in is a valid error name. - -2004-05-28 John (J5) Palmieri - - * dbus/dbus-message.c (dbus_message_get_args): Added support for - OBJECT_PATH and OBJECT_PATH_ARRAY - -2004-05-28 Seth Nickell - - * python/examples/Makefile.am: - - Forget to add Makefile.am. Do not pass go. - -2004-05-28 Michael Meeks - - * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): - fix no int64 case. - - * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl. - - * dbus/dbus-message.c (_dbus_message_iter_get_basic_type), - (_dbus_message_iter_get_basic_type_array): impl. - drastically simplify ~all relevant _get methods to use these. - (_dbus_message_iter_append_basic_array), - (dbus_message_iter_append_basic): impl - drastically simplify ~all relevant _append methods to use these. - - * dbus/dbus-message-builder.c (parse_basic_type) - (parse_basic_array, lookup_basic_type): impl. - (_dbus_message_data_load): prune scads of duplicate / - cut & paste coding. - - * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) - (_dbus_demarshal_basic_type): implement, - (demarshal_and_validate_len/arg): beef up debug. - (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl. - -2004-05-27 Seth Nickell - - * configure.in: - * python/Makefile.am: - - Include the example python apps in the tarball. - - * python/examples/list-system-services.py - - Add a python new example that fetches the list of services - from the system bus. - -2004-05-27 Seth Nickell - - * python/dbus.py: - * python/dbus_bindings.pyx.in: - - Fix failure to notify that a signal was not handled, - resulted in hung functions. - -2004-05-25 Colin Walters - - * tools/dbus-monitor.c (main): Monitor all types of messages. - -2004-05-23 Owen Fraser-Green - - * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method - which unregisters the object path and disposes the handler. - -2004-05-23 Kristian Høgsberg - - Patch from Timo Teräs (#614): - - * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap - operands to && so we call dbus_message_iter_next () for the last - argument also. - -2004-05-21 Olivier Andrieu - - * dbus/dbus-object-tree.c - (_dbus_object_tree_list_registered_unlock, lookup_subtree): return - children even if the requested path isn't registered. - (object_tree_test_iteration): test object_tree_list_registered. - - * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining - it to 0. - -2004-05-20 Kristian Høgsberg - - * doc/TODO: Remove resolved items. - - * bus/expirelist.h (struct BusExpireList): remove unused n_items - field. - - * bus/connection.c (bus_connections_expect_reply): Enforce the - per-connection limit on pending replies. - - Patch from Jon Trowbridge : - - * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets - up a watch that triggers a config reload when one end of the pipe - becomes readable. - (signal_handler): Instead of doing the config reload in our SIGHUP - handler, just write to the reload pipe and let the associated - watch handle the reload when control returns to the main loop. - - * bus/driver.c (bus_driver_handle_reload_config): Added. - Implements a ReloadConfig method for requesting a configuration - file reload via the bus driver. - -2004-05-19 Owen Fraser-Green - - * HACKING: Updated release instructions concerning the wiki page. - -2004-05-18 Kristian Høgsberg - - * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to - filter against auth->allowed_mechs; we only add allowed mechs in - record_mechanisms(). - - * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an - ALLOWED_MECHS to auth-script format so we can set the list of - allowed mechanisms. - - * data/auth/client-out-of-mechanisms.auth-script: New test to - check client disconnects when it is out of mechanisms to try. - - * dbus/dbus-auth.c (process_command): Remove check for lines - longer that 1 MB; we only buffer up maximum 16 kB. - - * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, - dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h: - Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always - assume there might be unused bytes. - - * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for - client-out-of-mechs, it is handled in process_reject(). Move check - for max failures to send_rejected(), as it's a server-only thing. - - * dbus/dbus-auth.c: Factor out protocol reply code into functions - send_auth(), send_data(), send_rejected(), send_error(), - send_ok(), send_begin() and send_cancel(). - -2004-05-17 Kristian Høgsberg - - Remove base64 encoding, replace with hex encoding. Original patch - from trow@ximian.com, added error handling. - - * dbus/dbus-string.c (_dbus_string_base64_encode) - (_dbus_string_base64_decode): Remove. - (_dbus_string_hex_decode): Add end_return argument so we can - distinguish between OOM and invalid hex encoding. - (_dbus_string_test): Remove base64 tests and add test case for - invalid hex. - - * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c: - Replace base64 with hex. - - * test/data/auth/invalid-hex-encoding.auth-script: New test case - for invalid hex encoded data in auth protocol. - -2004-05-17 Olivier Andrieu - - * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory - leak. - -2004-05-15 Owen Fraser-Green - - * mono/dbus-sharp.dll.config.in: Added for GAC - * mono/dbus-sharp.snk: Added for GAC - * mono/Assembly.cs.in: Added for GAC - * mono/Makefile.am: Changes for GAC installation - * configure.in: Added refs for dbus-sharp.dll.config.in and - Assembly.cs.in. More fixes for mono testing - * mono/example/Makefile.am: Changed var to CSC - * Makefile.am: Changed flag name to DBUS_USE_CSC - -2004-05-15 Owen Fraser-Green - - * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order - * mono/doc/*: Added documentation framework - * configure.in: Added monodoc check - * README: Added description of mono configure flags - -2004-05-11 John (J5) Palmieri : - - * doc/dbus-specification.xml: Added a "Required" column to the - header fields table and changed the "zero or more" verbage in - the above paragraph to read "The header must contain the required - named header fields and zero or more of the optional named header - fields". - * test/data/invalid-messages/*.message: Added the required PATH - named header field to the tests so that they don't fail on - 'Missing path field' - -2004-05-07 John (J5) Palmieri - - * python/dbus-bindings.pyx.in: Stopped the bindings from trashing - the stack by implicitly defining variable and parameter types and - removing the hack of defining C pointers as python objects and later - casting them. - -2004-05-02 Owen Fraser-Green - - * mono/Makefile.am: Removed test-dbus-sharp.exe from all target - -2004-05-01 Owen Fraser-Green - - * mono/DBusType/Dict.cs: Handle empty dicts - * mono/DBusType/Array.cs: Handle empty arrays - * mono/Arguments.cs: Handle empty arguments - -2004-04-30 Owen Fraser-Green - - * dbus-sharp.pc.in: Modified to include include Libs and Requires - field - -2004-04-25 Kristian Høgsberg - - * test/data/valid-messages/standard-*.message: Update message - test scripts to new header field names. - -2004-04-22 John (J5) Palmieri - - * test/break-loader.c (randomly_do_n_things): tracked down buffer - overflow to times_we_did_each_thing array which would chop off the - first character of the failure_dir string. Increased the size of - the array to 7 to reflect the number of random mutation functions - we have. - -2004-04-21 Kristian Høgsberg - - * dbus/dbus-server-unix.c (unix_finalize): Don't unref - unix_server->watch here, it is unreffed in disconnect. - (_dbus_server_new_for_tcp_socket): convert NULL host to - "localhost" here so we don't append NULL to address. - - * dbus/dbus-server.c (_dbus_server_test): Add test case for - various addresses, including tcp with no explicit host. - -2004-04-21 Olivier Andrieu - - * dbus/dbus-message.c (decode_header_data, decode_string_field): - fix incorrect setting of .name_offset in the HeaderField (it was - off by two bytes, positioned right after the name and typecode) - - * bus/bus.c (bus_context_new, bus_context_unref): test before - calling dbus_server_free_data_slot and _dbus_user_database_unref - in case of an error. - - * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed - by libdbus-gtool. - -2004-04-19 Kristian Høgsberg - - * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use - _dbus_poll() instead of select(). - -2004-04-15 Jon Trowbridge - - * bus/main.c (signal_handler): Reload the configuration files - on SIGHUP. - (main): Set up our SIGHUP handler. - - * bus/bus.c (struct BusContext): Store the config file, user and - fork flag in the BusContext. - (process_config_first_time_only): Added. Contains the code - (previously in bus_context_new) for setting up the BusContext from - the BusConfigParser that should only be run the first time the - config files are read. - (process_config_every_time): Added. Contains the code (previously - in bus_context_new) for setting up the BusContext from the - BusConfigParser that should be run every time the config files are - read. - (load_config): Added. Builds a BusConfigParser from the config - files and passes the resulting structure off to - process_config_first_time_only (assuming this is the first time) - and process_config_every_time. - (bus_context_new): All of the config-related code has been moved - to process_config_first_time_only and process_config_every_time. - Now this function just does the non-config-related initializations - and calls load_config. - (bus_context_reload_config): Added. - -2004-04-15 Olivier Andrieu - - * bus/driver.c (bus_driver_handle_get_service_owner): - implement a GetServiceOwner method. - * doc/dbus-specification.xml: document it. - * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error. - - * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner): - implement, using the bus GetServiceOwner method. - - * test/glib/test-dbus-glib.c: - use dbus_gproxy_new_for_service_owner so that we can receive the - signal. - -2004-04-15 John (J5) Palmieri - - * dbus/dbus-internals.c, dbus/dbus-message-builder.c, - dbus/dbus-message.c, dbus/dbus-protocol.h - (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION - - * dbus/dbus-internals.c, dbus/dbus-message-builder.c, - dbus/dbus-message.c, dbus/dbus-protocol.h - (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER - - * dbus/dbus-internals.c (_dbus_header_field_to_string): - DBUS_HEADER_FIELD_DESTINATION resolves to "destination" - DBUS_HEADER_FIELD_SENDER resolves to "sender" - - * doc/dbus-specification.xml (Header Fields Table): - s/SERVICE/DESTINATION - s/SENDER_SERVICE/SENDER - - -2004-04-14 Olivier Andrieu - - * test/glib/test-dbus-glib.c (timed_exit): fail the test after - a few seconds. - -2004-04-13 Michael Meeks - - * glib/dbus-gobject.c (handle_introspect): split out - (introspect_properties): this. - (handle_introspect): implement this. - - * test/glib/Makefile.am: use the absolute path so the bus - daemon's chdir ("/") doesn't kill us dead. - - * configure.in: subst ABSOLUTE_TOP_BUILDDIR - -2004-04-12 Jon Trowbridge - - * bus/config-parser.c (struct BusConfigParser): Added - included_files field. - (seen_include): Added. Checks whether or not a file has already - been included by any parent BusConfigParser. - (bus_config_parser_new): Copy the parent's included_files. - (include_file): Track which files have been included, and fail on - circular inclusions. - (process_test_valid_subdir): Changed printf to report if we are - testing valid or invalid conf files. - (all_are_equiv): Changed printf to be a bit clearer about - what we are actually doing. - (bus_config_parser_test): Test invalid configuration files. - -2004-04-09 Jon Trowbridge - - * bus/config-parser.c (bus_config_parser_new): Added a 'parent' - argument. If non-null, the newly-constructed BusConfigParser will - be initialized with the parent's BusLimits instead of the default - values. - (include_file): When including a config file, pass in - the current parser as the parent and then copy the BusLimits - from the included BusConfigParser pack to the current parser. - (process_test_valid_subdir): Renamed from process_test_subdir. - (process_test_equiv_subdir): Added. Walks through a directory, - descending into each subdirectory and loading the config files - it finds there. If any subdirectory contains two config files - that don't produce identical BusConfigParser structs, fail. - For now, the BusConfigParser's BusPolicies are not compared. - (bus_config_parser_test): Call both process_test_valid_subdir and - process_test_equiv_subdir. - - * bus/config-loader-libxml.c (bus_config_load): Take a parent - argument and pass it along to the call to bus_config_parser_new. - Also made a few small changes to allow this code to compile. - - * bus/config-loader-expat.c (bus_config_load): Take a parent - argument and pass it along to the call to bus_config_parser_new. - - * bus/bus.c (bus_context_new): Load the config file - with a NULL parent argument. - -2004-03-29 Michael Meeks - - * glib/dbus-gobject.c (introspect_properties): split - out, fix mangled 'while' flow control. - (introspect_signals): implement. - (handle_introspect): update. - -2004-03-29 Michael Meeks - - * glib/dbus-gobject.c (set_object_property): split out / - re-work, use the property type, and not the message type(!) - (get_object_property): ditto. - - * glib/dbus-gvalue.c (dbus_gvalue_demarshal), - (dbus_gvalue_marshal): make this code re-usable, needed - for signals too, also on both proxy and server side. - Re-write for more efficiency / readability. - -2004-03-29 Michael Meeks - - * dbus/dbus-message.c - (dbus_message_new_error_printf): impl. - - * dbus/dbus-connection.c - (dbus_connection_unregister_object_path): fix warning. - - * configure.in: fix no-mono-installed situation. - -2004-03-27 Havoc Pennington - - Patch from Timo Teräs: - - * tools/dbus-send.c (main): if --print-reply, assume type is - method call; support boolean type args - - * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a - bunch of memleak and logic bugs - -2004-03-23 Owen Fraser-Green - - * mono/Arguments.cs: - * mono/Introspector.cs: - * mono/Handler.cs: - * mono/InterfaceProxy.cs: - * mono/Message.cs - * mono/ProxyBuilder.cs: - * mono/Service.cs: - Added InterfaceProxy class to avoid building proxies for every - object. - - * dbus-message.h: - * dbus-message.c (dbus_message_append_args_valist) - (dbus_message_iter_get_object_path) - (dbus_message_iter_get_object_path_array) - (dbus_message_iter_append_object_path) - (dbus_message_iter_append_object_path_array): - Added object_path iter functions to handle OBJECT_PATH arguments - -2004-03-23 Owen Fraser-Green - - First checkin of mono bindings. - * configure.in: - * Makefile.am: - Build stuff for the bindings - * dbus-sharp.pc.in: Added for pkgconfig - -2004-03-21 Havoc Pennington - - * test/test-service.c (main): remove debug spew - -2004-03-21 Olivier Andrieu - - * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty - arrays - - * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init) - (dbus_message_iter_init_array_iterator) - (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to - indicate whether the iterator is empty - - * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler - warnings - -2004-03-19 Havoc Pennington - - * NEWS: 0.21 updates - - * configure.in: 0.21 - - * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED - - * python/Makefile.am: change to avoid dist of dbus_bindings.c so - you don't need pyrex to make dist - - * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to - sources; run moc - -2004-03-18 Richard Hult - - * dbus/dbus-message.c (dbus_message_get_auto_activation) - (dbus_message_set_auto_activation): Add doxygen docs. - -2004-03-16 Richard Hult - - * bus/activation.c: (bus_activation_service_created), - (bus_activation_send_pending_auto_activation_messages), - (bus_activation_activate_service): - * bus/activation.h: - * bus/dispatch.c: (bus_dispatch), - (check_nonexistent_service_auto_activation), - (check_service_auto_activated), - (check_segfault_service_auto_activation), - (check_existent_service_auto_activation), (bus_dispatch_test): - * bus/driver.c: (bus_driver_handle_activate_service): - * bus/services.c: (bus_registry_acquire_service): - * dbus/dbus-message.c: (dbus_message_set_auto_activation), - (dbus_message_get_auto_activation): - * dbus/dbus-message.h: - * dbus/dbus-protocol.h: Implement auto-activation. - - * doc/dbus-specification.xml: Add auto-activation to the spec. - -2004-03-12 Olivier Andrieu - - * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): - fix a bug with CUSTOM types. - - * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add - a unit test for this bug (used to fail). - -2004-03-12 Mikael Hallendal - - * bus/activation.c: - (babysitter_watch_callback): notify all pending activations waiting for - the same exec that the activation failed. - (bus_activation_activate_service): shortcut the activation if we - already waiting for the same executable to start up. - -2004-03-12 Mikael Hallendal - - * bus/activation.c: - - Added service file reloading. - Each service files directory is kept in an hash table in - BusActivation and each BusActivationEntry knows what .service-file it - was read from. So when you try to activate a service the bus will - check if it's been updated, removed or if new .service-files has - been installed. - - Test code at the bottom for the service file reloading. - * bus/test-main.c: (main): - * bus/test.h: - - added service reloading test. - * dbus/dbus-sysdeps.c: - * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added. - -2004-03-08 Michael Meeks - - * dbus/dbus-connection.c (_dbus_connection_block_for_reply): - bail immediately if disconnected, to avoid busy loop. - - * dbus/dbus-message.c (dbus_message_iter_get_args_valist): - cleanup cut/paste/inefficiency. - -2004-03-01 David Zeuthen - - * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a - bug where args were used twice. This bug resulted in a segfault - on a Debian/PPC system when starting the messagebus daemon. Include - dbus-sysdeps.h for DBUS_VA_COPY - - * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib - - * configure.in: Check for va_copy; define DBUS_VA_COPY to the - appropriate va_copy implementation. From GLib - -2004-02-24 Joe Shaw - - * bus/services.c (bus_registry_acquire_service): We need to pass - in the service name to dbus_set_error() to prevent a crash. - -2003-12-26 Anders Carlsson - - * AUTHORS: Reveal my True identity. - -2003-12-17 Mikael Hallendal - - * dbus/dbus-message.c: (dbus_message_append_args_valist): - - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg. - -2003-12-13 Mikael Hallendal - - * doc/TODO: Added not about better error check of configuration files. - -2003-12-02 Richard Hult - - * Update AFL version to 2.0 throughout the source files to reflect - the update that was done a while ago. - -2003-12-02 Richard Hult - - * dbus/dbus-message.c (dbus_message_iter_append_dict): Set - wrote_dict_key to FALSE on the iter that the dict is appended to, - just like when appending other types. Fixes a bug where a dict - couldn't be put inside a dict. - (dbus_message_iter_append_dict_key): Fix typo in warning message. - (message_iter_test, _dbus_message_test): Add test case for dict - inside dict. - -2003-12-01 David Zeuthen - - * python/dbus.py: Add the actual message when calling the reciever - of a signal such that parameters can be inspected. Add the method - remove_signal_receiver - -2003-11-26 Mikael Hallendal - - * bus/*.[ch]: - * dbus/*.[ch]: - * glib/*.[ch]: Made ref functions return the pointer - -2003-11-25 Zack Rusin - - * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer, - - * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer - wrappers, - - * qt/connection.h, qt/connection.cpp: Adjusting to changes in - the Integrator and to better fit with the server, - -2003-11-24 Zack Rusin - - * qt/connection.h, qt/connection.cpp: removing initDbus method since - the integrator handles it now - - * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts, - since QTimer wasn't really meant to be used the way DBusTimeout is - -2003-11-24 Zack Rusin - - * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding - Integrator class which integrates D-BUS with the Qt event loop, - - * qt/connection.h, qt/connection.cpp: Move all the code which - was dealing with D-BUS integration to the Integrator class, - and start using Integrator, - -2003-11-23 Zack Rusin - - * qt/connection.h, qt/connection.cpp: Adding the DBusConnection - wrapper - - * qt/message.h, qt/message.cpp: updating to the current D-BUS api, - switching namespaces to DBusQt, reworking the class, - - * Makefile.cvs: switching dependencies so that it matches KDE - schematics, - - * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to - the library - -2003-11-19 Havoc Pennington - - * NEWS: update - - * configure.in: bump version to 0.20 - - * configure.in (have_qt): add yet another place to look for qt - (someone hand trolltech a .pc file...) - -2003-11-01 Havoc Pennington - - * doc/dbus-specification.xml: add state machine docs on the auth - protocol; just a first draft, I'm sure it's wrong. - -2003-10-28 David Zeuthen - - * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries - return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h - -2003-10-28 Havoc Pennington - - * dbus/dbus-message.c (get_next_field): delete unused function - -2003-10-28 Havoc Pennington - - * bus/expirelist.c (do_expiration_with_current_time): detect - failure of the expire_func due to OOM - - * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM - - * bus/dispatch.c (check_send_exit_to_service): fix to handle the - NoReply error that's now created by the bus when the service exits - -2003-10-28 Havoc Pennington - - * dbus/dbus-message.c (_dbus_message_test): enable and fix the - tests for set_path, set_interface, set_member, etc. - - * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes - - * dbus/dbus-message.c (set_string_field): always just delete and - re-append the field; accept NULL for deletion - (re_align_fields_recurse): reimplement - -2003-10-26 Havoc Pennington - - * dbus/dbus-connection.c: fix docs to properly describe the - disconnected message - (_dbus_connection_notify_disconnected): remove this function; - we can't synchronously add the disconnected message, we have to - do it after we've queued any remaining real messages - (_dbus_connection_get_dispatch_status_unlocked): queue the - disconnect message only if the transport has finished queueing all - its real messages and is disconnected. - (dbus_connection_disconnect): update the dispatch status here - -2003-10-22 Havoc Pennington - - * bus/bus.c (bus_context_check_security_policy): fix up assertion - - * bus/connection.c (bus_transaction_send_from_driver): set the - destination to the connection's base service - -2003-10-20 Havoc Pennington - - hmm, make check is currently not passing. - - * doc/dbus-specification.xml: add requirement that custom type - names follow the same rules as interface names. - - * dbus/dbus-protocol.h: change some of the byte codes, to avoid - duplication and allow 'c' to be 'custom'; dict is now 'm' for - 'map' - - * doc/dbus-specification.xml: update type codes to match - dbus-protocol.h, using the ASCII byte values. Rename type NAMED to - CUSTOM. Add type OBJECT_PATH to the spec. - -2003-10-17 Havoc Pennington - - * bus/driver.c (create_unique_client_name): use "." as separator - in base service names instead of '-' - - * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul - byte at the end of the string - - * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add - optimization macros since string validation seems to be a slow - point. - - * doc/dbus-specification.xml: restrict valid - service/interface/member/error names. Add test suite code for the - name validation. - - * dbus/dbus-string.c: limit service/interface/member/error names - to [0-9][A-Z][a-z]_ - - * dbus/dbus-connection.c (dbus_connection_dispatch): add missing - format arg to verbose spew - - * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of - memory, return instead of g_error - - * test/test-service.c (path_message_func): support emitting a - signal on request - - * dbus/dbus-bus.c (init_connections_unlocked): only fill in - activation bus type if DBUS_BUS_ACTIVATION was set; default to - assuming the activation bus was the session bus so that services - started manually will still register. - (init_connections_unlocked): fix so that in OOM situation we get - the same semantics when retrying the function - - * test/test-service.c (main): change to use path registration, to - test those codepaths; register with DBUS_BUS_ACTIVATION rather - than DBUS_BUS_SESSION - -2003-10-16 Havoc Pennington - - * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS - - * Makefile.am (GCOV_DIRS): remove "test", we don't care about test - coverage of the tests - (coverage-report.txt): don't move the .da and .bbg files around - -2003-10-16 Havoc Pennington - - * bus/bus.c (struct BusContext): remove struct field I didn't mean - to put there - -2003-10-16 Havoc Pennington - - * bus/connection.c (bus_pending_reply_expired): either cancel or - execute, not both - (bus_connections_check_reply): use unlink, not remove_link, as we - don't want to free the link; fixes double free mess - - * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case - where no reply was received - - * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock): - fix a refcount leak - - * bus/signals.c (match_rule_matches): add special cases for the - bus driver, so you can match on sender/destination for it. - - * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if - DBUS_PRINT_BACKTRACE is set - - * dbus/dbus-internals.c: add pid to assertion failure messages - - * dbus/dbus-connection.c: add message type code to the debug spew - - * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want - sender=foo not service=foo - - * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the - session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use - DBUS_ACTIVATION_ADDRESS instead - - * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS, - DBUS_SYSTEM_BUS_ADDRESS if appropriate - - * bus/bus.c (bus_context_new): handle OOM copying bus type into - context struct - - * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function - (dbus_message_iter_get_object_path_array): new function (half - finished, disabled for the moment) - - * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle - DBUS_MESSAGE_TYPE_ERROR - - * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to - avoid redirecting stderr to /dev/null - (babysit): close stdin if not doing the "exit_with_session" thing - - * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover - debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not - stdout/stdin, so things don't get confused - - * bus/system.conf.in: fix to allow replies, I modified .conf - instead of .conf.in again. - -2003-10-14 David Zeuthen - - * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in - argtype to arg_type when raising unknown arg type exception. - Changed type list to reflect the changes in dbus-protocol.h so - the bindings actually work. - -2003-10-14 Havoc Pennington - - * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems - to have a bug keeping it from outputting the .da files sometimes - (string_get_string): don't append garbage nul bytes to the string. - -2003-10-15 Seth Nickell - - * python/Makefile.am: - - Include dbus_h_wrapper.h in the dist tarball. - -2003-10-14 Havoc Pennington - - * bus/bus.c (bus_context_check_security_policy): revamp this to - work more sanely with new policy-based requested reply setup - - * bus/connection.c (bus_transaction_send_from_driver): set bus - driver messages as no reply - - * bus/policy.c (bus_client_policy_check_can_receive): handle a - requested_reply attribute on allow/deny rules - - * bus/system.conf: add - - * bus/driver.c (bus_driver_handle_message): fix check for replies - sent to the bus driver, which was backward. How did this ever work - at all though? I think I'm missing something. - - * dbus/dbus-message.c (decode_header_data): require error and - method return messages to have a reply serial field to be valid - (_dbus_message_loader_queue_messages): break up this function; - validate that reply serial and plain serial are nonzero; - clean up the OOM/error handling. - (get_uint_field): don't return -1 from this - (dbus_message_create_header): fix signed/unsigned bug - - * bus/connection.c (bus_connections_expect_reply): save serial of - the incoming message, not reply serial - -2003-10-14 Havoc Pennington - - * bus/connection.c: implement pending reply tracking using - BusExpireList - - * bus/bus.c (bus_context_check_security_policy): verify that a - reply is pending in order to allow a reply to be sent. Deny - messages of unknown type. - - * bus/dbus-daemon-1.1.in: update to mention new resource limits - - * bus/bus.c (bus_context_get_max_replies_per_connection): new - (bus_context_get_reply_timeout): new - -2003-10-13 Seth Nickell - - * python/Makefile.am: - - Pass "make distcheck": remove a couple files from DIST_FILES - that weren't included in the final version. - -2003-10-12 Havoc Pennington - - Added test code that 1) starts an actual bus daemon and 2) uses - DBusGProxy; fixed bugs that were revealed by the test. Lots - more testing possible, but this is the basic framework. - - * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove - empty proxy lists from the proxy list hash - - * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a - couple of return_if_fail checks - - * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0 - to allocate, so everything is cleared to NULL as it should be. - - * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass - source as data to dbus_connection_set_timeout_functions() as the - timeout functions expected - - * test/glib/run-test.sh: add a little script to start up a message - bus and run tests using it - - * tools/dbus-launch.1: updates - - * tools/dbus-launch.c (main): add --config-file option - - * tools/dbus-launch.c (main): remove confusing else if (runprog) - that could never be reached. - - * dbus/dbus-message.c (dbus_message_new_method_return) - (dbus_message_new_error, dbus_message_new_signal): set the - no-reply-expected flag on all these. Redundant, but may - as well be consistent. - -2003-10-11 Havoc Pennington - - * test/decode-gcov.c (function_solve_graph): make broken block - graph a nonfatal error since it seems to be broken. Need to debug - this. - - * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we - can't just check type > INVALID < LAST anymore - - * dbus/dbus-message.c (dbus_message_get_signature): new function - (dbus_message_has_signature): new function - (struct DBusMessage): add signature field (right now it isn't sent - over the wire, just generated on the fly) - (dbus_message_copy): copy the signature, and init strings to - proper length to avoid some reallocs - (dbus_message_iter_init_array_iterator): return void, since it - can't fail - (dbus_message_iter_init_dict_iterator): return void since it can't fail - (_dbus_message_loader_queue_messages): add silly temporary hack to - fill in message->signature on load - - * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII - characters, so they are relatively human-readable. - -2003-10-11 Havoc Pennington - - * dbus/dbus-message.c (_dbus_message_test): add more test - coverage, but #if 0 for now since they uncover a bug - not fixed yet; I think in re_align_field_recurse() - (re_align_field_recurse): add FIXME about broken assertion - - * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage - - * bus/connection.c: share a couple code bits with expirelist.c - - * bus/expirelist.h, bus/expirelist.c: implement a generic - expire-items-after-N-seconds facility, was going to share between - expiring connections and replies, decided not to use for expiring - connections for now. - - * COPYING: include AFL 2.0 (still need to change all the file headers) - -2003-10-09 Havoc Pennington - - * configure.in: define DBUS_HAVE_GCC33_GCOV if we have - gcc 3.3. Not that we do anything about it yet. - - * bus/signals.c (bus_match_rule_parse): impose max length on the - match rule text - - * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH - -2003-10-09 Havoc Pennington - - Make matching rules theoretically work (add parser). - - * bus/bus.c (bus_context_check_security_policy): fix up to handle - the case where destination is explicitly specified as bus driver - and someone else is eavesdropping. - - * bus/policy.c (bus_client_policy_check_can_receive): fix up - definition of eavesdropping and assertion - - * tools/dbus-send.c (main): use dbus_message_type_from_string - - * bus/signals.c (bus_match_rule_parse): implement - - * dbus/dbus-message.c (dbus_message_type_from_string): new - - * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add - -2003-10-02 Havoc Pennington - - * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from - dbus_gproxy_oneway_call - - * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) - (dbus_server_setup_with_g_main): fix to allow calling them more - than once on the same args - (dbus_bus_get_with_g_main): new function - -2003-10-02 Havoc Pennington - - * doc/dbus-tutorial.xml: write some stuff - -2003-09-29 Havoc Pennington - - * configure.in: split checks for Doxygen from XML docs, check for - xmlto - - * doc/Makefile.am: XML-ify all the docs, and add a blank - dbus-tutorial.xml - -2003-09-29 Havoc Pennington - - * Merge dbus-object-names branch. To see the entire patch - do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names, - it's huuuuge though. - To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE. - -2003-09-28 Havoc Pennington - - * HACKING: update to reflect new server - -2003-09-26 Seth Nickell - - * python/dbus.py: - * python/examples/example-signals.py: - - Start implementing some notions of signals. The API - is really terrible, but they sort of work (with the - exception of being able to filter by service, and to - transmit signals *as* a particular service). Need to - figure out how to make messages come from the service - we registered :-( - - * python/dbus_bindings.pyx.in: - - Removed duplicate message_handler callbacks. - -2003-09-25 Havoc Pennington - - * bus/session.conf.in: fix my mess - -2003-09-25 Havoc Pennington - - * bus/session.conf.in: fix security policy, reported by Seth Nickell - -2003-09-25 Seth Nickell - - * python/examples/example-service.py: - - Johan notices complete wrong code in example-service, but - completely wrong in a way that works exactly the same (!). - Johan is confused, how could this possibly work? Example - code fails to serve purpose of making things clear. - Seth fixes. - -2003-09-25 Mark McLoughlin - - * doc/dbus-specification.sgml: don't require header fields - to be 4-byte aligned and specify that fields should be - distinguished from padding by the fact that zero is not - a valid field name. - - * doc/TODO: remove re-alignment item and add item to doc - the OBJECT_PATH type. - - * dbus/dbus-message.c: - (HeaderField): rename the original member to value_offset - and introduce a name_offset member to keep track of where - the field actually begins. - (adjust_field_offsets): remove. - (append_int_field), (append_uint_field), - (append_string_field): don't align the start of the header - field to a 4-byte boundary. - (get_next_field): impl finding the next marhsalled field - after a given field. - (re_align_field_recurse): impl re-aligning a number of - already marshalled fields. - (delete_field): impl deleting a field of any type and - re-aligning any following fields. - (delete_int_or_uint_field), (delete_string_field): remove. - (set_int_field), (set_uint_field): no need to re-check - that we have the correct type for the field. - (set_string_field): ditto and impl re-aligning any - following fields. - (decode_header_data): update to take into account that - the fields aren't 4-byte aligned any more and the new - way to distinguish padding from header fields. Also, - don't exit when there is too much header padding. - (process_test_subdir): print the directory. - (_dbus_message_test): add test to make sure a following - field is re-aligned correctly after field deletion. - - * dbus/dbus-string.[ch]: - (_dbus_string_insert_bytes): rename from insert_byte and - allow the insert of multiple bytes. - (_dbus_string_test): test inserting multiple bytes. - - * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add - warning note to docs about having to re-align any - marshalled values following the string. - - * dbus/dbus-message-builder.c: - (append_string_field), (_dbus_message_data_load): - don't align the header field. - - * dbus/dbus-auth.c: (process_test_subdir): print the - directory. - - * test/break-loader.c: (randomly_add_one_byte): upd. for - insert_byte change. - - * test/data/invalid-messages/bad-header-field-alignment.message: - new test case. - - * test/data/valid-messages/unknown-header-field.message: shove - a dict in the unknown field. - -2003-09-25 Seth Nickell - - * python/dbus.py: - * python/dbus_bindings.pyx.in: - - Handle return values. - - * python/examples/example-client.py: - * python/examples/example-service.py: - - Pass back return values from the service to the client. - -2003-09-24 Seth Nickell - - * python/dbus.py: - - Connect Object methods (when you are sharing an object) up... pass - in a list of methods to be shared. Sharing all the methods just - worked out too weird. You can now create nice Services over the - DBus in Python. :-) - - * python/dbus_bindings.pyx.in: - - Keep references to user_data tuples passed into C functions so - Python doesn't garbage collect on us. - - Implement MethodReturn and Error subclasses of Message for creating - DBusMessage's of those types. - - * python/examples/example-client.py: - * python/examples/example-service.py: - - Simple example code showing both how create DBus services and objects, - and how to use them. - -2003-09-23 Havoc Pennington - - * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement - -2003-09-23 Havoc Pennington - - * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement - (dbus_gproxy_disconnect_signal): implement - (dbus_gproxy_manager_remove_signal_match): implement - (dbus_gproxy_manager_add_signal_match): implement - (dbus_gproxy_oneway_call): implement - -2003-09-23 Havoc Pennington - - * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject - subclass. This means dropping the transparent thread safety of the - proxy; you now need a separate proxy per-thread, or your own - locking on the proxy. Probably right anyway. - (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref - -2003-09-22 Havoc Pennington - - * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement - -2003-09-21 Seth Nickell - - First checkin of the Python bindings. - - * python/.cvsignore: - * python/Makefile.am: - * python/dbus_bindings.pyx.in: - * python/dbus_h_wrapper.h: - - Pieces for Pyrex to operate on, building a dbus_bindings.so - python module for low-level access to the DBus APIs. - - * python/dbus.py: - - High-level Python module for accessing DBus objects. - - * configure.in: - * Makefile.am: - - Build stuff for the python bindings. - - * acinclude.m4: - - Extra macro needed for finding the Python C header files. - -2003-09-21 Havoc Pennington - - * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start - implementing the proxy manager, didn't get very far. - - * dbus/dbus-bus.c (dbus_bus_add_match): new - (dbus_bus_remove_match): new - - * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a - path_name argument; adjust the other not-yet-implemented - gproxy constructors to be what I think they should be. - -2003-09-21 Havoc Pennington - - * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE - by default for message bus connections. - - * dbus/dbus-connection.c (dbus_connection_dispatch): exit if - exit_on_disconnect flag is set and we process the disconnected - signal. - (dbus_connection_set_exit_on_disconnect): new function - -2003-09-21 Havoc Pennington - - Get matching rules mostly working in the bus; only actually - parsing the rule text remains. However, the client side of - "signal connections" hasn't been started, this patch is only the - bus side. - - * dbus/dispatch.c: fix for the matching rules changes - - * bus/driver.c (bus_driver_handle_remove_match) - (bus_driver_handle_add_match): send an ack reply from these - method calls - - * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of - arguments, reported by Seth Nickell - - * bus/config-parser.c (append_rule_from_element): support - eavesdrop=true|false attribute on policies so match rules - can be prevented from snooping on the system bus. - - * bus/dbus-daemon-1.1.in: consistently use terminology "sender" - and "destination" in attribute names; fix some docs bugs; - add eavesdrop=true|false attribute - - * bus/driver.c (bus_driver_handle_add_match) - (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch - messages - - * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get - rid of broadcast service concept, signals are just always broadcast - - * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c: - mostly implement matching rules stuff (currently only exposed as signal - connections) - -2003-09-21 Mark McLoughlin - - * doc/dbus-specification.sgml: Change the header field name - to be an enum and update the rest of the spec to reference - the fields using the conventinal name. - - * dbus/dbus-protocol.h: update to reflect the spec. - - * doc/TODO: add item to remove the 4 byte alignment requirement. - - * dbus/dbus-message.c: Remove the code to generalise the - header/body length and serial number header fields as named - header fields so we can reference field names using the - protocol values. - (append_int_field), (append_uint_field), (append_string_field): - Append the field name as a byte rather than four chars. - (delete_int_or_uint_field), (delete_string_field): reflect the - fact that the field name and typecode now occupy 4 bytes instead - of 8. - (decode_string_field), (decode_header_data): update to reflect - protocol changes and move the field specific encoding from - decode_string_field() back into decode_header_data(). - - * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string): - Add utility to aid debugging. - - * dbus/dbus-message-builder.c: - (append_string_field), (_dbus_message_data_load): Update to - reflect protocol changes; Change the FIELD_NAME directive - to HEADER_FIELD and allow it to take the field's conventional - name rather than the actual value. - - * test/data/*/*.message: Update to use HEADER_FIELD instead - of FIELD_NAME; Always align the header on an 8 byte boundary - *before* updating the header length. - -2003-09-15 Havoc Pennington - - * dbus/dbus-pending-call.c: add the get/set object data - boilerplate as for DBusConnection, etc. Use generic object data - for the notify callback. - - * glib/dbus-gparser.c (parse_node): parse child nodes - - * tools/dbus-viewer.c: more hacking on the dbus-viewer - - * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to - contain functions shared between the convenience lib and the - installed lib - - * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add - -export-symbols-regex to the GLib library - - * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock): - fix the locking in here, and add a default handler for - Introspect() that just returns sub-nodes. - -2003-09-14 Havoc Pennington - - * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo - rather than gfoo consistent - - * glib/dbus-gproxy.h: delete for now, move contents to - dbus-glib.h, because the include files don't work right since we - aren't in the dbus/ subdir. - - * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing - (dbus_gproxy_end_call): finish - (dbus_gproxy_begin_call): finish - - * glib/dbus-gmain.c (dbus_set_g_error): new - - * glib/dbus-gobject.c (handle_introspect): include information - about child nodes in the introspection - - * dbus/dbus-connection.c (dbus_connection_list_registered): new - function to help in implementation of introspection - - * dbus/dbus-object-tree.c - (_dbus_object_tree_list_registered_and_unlock): new function - -2003-09-12 Havoc Pennington - - * glib/dbus-gidl.h: add common base class for all the foo_info - types - - * tools/dbus-viewer.c: add GTK-based introspection UI thingy - similar to kdcop - - * test/Makefile.am: try test srcdir -ef . in addition to test - srcdir = ., one of them should work (yeah lame) - - * glib/Makefile.am: build the "idl" parser stuff as a convenience - library - - * glib/dbus-gparser.h: make description_load routines return - NodeInfo* not Parser* - - * Makefile.am (SUBDIRS): build test dir after all library dirs - - * configure.in: add GTK+ detection - -2003-09-07 Havoc Pennington - - * Make Doxygen contented. - -2003-09-07 Havoc Pennington - - * doc/dbus-specification.sgml: more updates - -2003-09-06 Havoc Pennington - - * doc/dbus-specification.sgml: partial updates - - * bus/dbus-daemon-1.1.in: fix the config file docs for the - zillionth time; hopefully I edited the right file this time. - - * bus/config-parser.c (append_rule_from_element): support - send_type, send_path, receive_type, receive_path - - * bus/policy.c: add message type and path to the list of things - that can be "firewalled" - -2003-09-06 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_register_fallback): add this - (dbus_connection_register_object_path): make this not handle - messages to paths below the given path - -2003-09-03 Havoc Pennington - - * test/glib/Makefile.am: add this with random glib-linked test - programs - - * glib/Makefile.am: remove the random test programs from here, - leave only the unit tests - - * glib/dbus-gobject.c (_dbus_gobject_test): add test for - uscore/javacaps conversion, and fix - (get_object_property, set_object_property): change to .NET - convention for mapping props to methods, set_FooBar/get_FooBar, - since one language has such a convention we may as well copy it. - Plus real methods in either getFooBar or get_foo_bar style won't - collide with this convention. - -2003-09-01 Havoc Pennington - - * glib/dbus-gparser.c: implement - - * glib/dbus-gobject.c: start implementing skeletons support - - * configure.in: when disabling checks/assert, also define - G_DISABLE_ASSERT and G_DISABLE_CHECKS - -2003-09-01 Havoc Pennington - - * glib/Makefile.am: rearrange a bunch of files and get "make - check" framework set up - -2003-08-31 Havoc Pennington - - * fix build with --disable-tests - -2003-08-30 Havoc Pennington - - * dbus/dbus-connection.c: purge DBusMessageHandler - - * dbus/dbus-message-handler.c: remove DBusMessageHandler, just - use callbacks everywhere - -2003-08-30 Havoc Pennington - - * test/data/valid-config-files/system.d/test.conf: change to - root for the user so warnings don't get printed - - * dbus/dbus-message.c: add dbus_message_get_path, - dbus_message_set_path - - * dbus/dbus-object-tree.c (do_test_dispatch): add test of - dispatching to a path - - * dbus/dbus-string.c (_dbus_string_validate_path): add - - * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement - (_dbus_marshal_object_path): implement - - * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field - to contain the path to the target object - (DBUS_HEADER_FIELD_SENDER_SERVICE): rename - DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service - -2003-08-30 Havoc Pennington - - * dbus/dbus-object-tree.c: write tests and fix the discovered bugs - -2003-08-29 Havoc Pennington - - * dbus/dbus-object-tree.c: modify to allow overlapping paths to be - registered - (struct DBusObjectSubtree): shrink this - a lot, since we may have a lot of them - (_dbus_object_tree_free_all_unlocked): implement - (_dbus_object_tree_dispatch_and_unlock): implement - -2003-08-29 Havoc Pennington - - * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS - -2003-08-28 Havoc Pennington - - purge DBusObjectID - - * dbus/dbus-connection.c: port to no ObjectID, create a - DBusObjectTree, rename ObjectTree to ObjectPath in public API - - * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete - everything except UnregisterFunction and MessageFunction - - * dbus/dbus-marshal.c: port away from DBusObjectID, - add DBUS_TYPE_OBJECT_PATH - - * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], - dbus/dbus-objectid.[hc]: remove these, we are moving to - path-based object IDs - -2003-08-25 Havoc Pennington - - Just noticed that dbus_message_test is hosed, I wonder when I - broke that. I thought make check was passing earlier... - - * dbus/dbus-object-tree.c: add new "object tree" to match DCOP - container tree, will replace most of dbus-object-registry - - * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99 - screwup - -2003-08-19 Havoc Pennington - - * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER - (dbus_message_is_error): fix this function - - * bus/dbus-daemon-1.1: clarify logic on when / rules - match - - * bus/policy.c (bus_client_policy_check_can_receive): fix code to - reflect clarified man page - (bus_client_policy_check_can_send): ditto - - * bus/session.conf.in: fixup - - * bus/system.conf.in: fixup - -2003-08-18 Havoc Pennington - - * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix - - * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix - dumb bug created earlier (wrong order of args to - decode_header_data()) - - * tools/dbus-send.c: port - - * tools/dbus-print-message.c (print_message): port - - * test/data/*messages: port all messages over - - * dbus/dbus-message-builder.c: support including - message type - - * bus/driver.c: port over - - * bus/dispatch.c: port over to new stuff - - * dbus/dbus-connection.c (_dbus_connection_new_for_transport): - rename disconnect signal to "Disconnected" - -2003-08-17 Havoc Pennington - - This doesn't compile yet, but syncing up so I can hack on it from - work. What are branches for if not broken code? ;-) - - * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add - DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER, - DBUS_HEADER_FIELD_ERROR_NAME - - * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use - for the interface+member pairs - (string_hash): change to use g_str_hash algorithm - (find_direct_function, find_string_function): refactor these to - share most code. - - * dbus/dbus-message.c: port all of this over to support - interface/member fields instead of name field - - * dbus/dbus-object-registry.c: port over - - * dbus/dbus-string.c (_dbus_string_validate_interface): rename - from _dbus_string_validate_name - - * bus/dbus-daemon-1.1: change file format for the - / stuff to match new message naming scheme - - * bus/policy.c: port over - - * bus/config-parser.c: parse new format - -2003-08-16 Havoc Pennington - - * dbus/dbus-object-registry.c (add_and_remove_objects): remove - broken assertion - - * glib/dbus-gproxy.c: some hacking - -2003-08-15 Havoc Pennington - - * dbus/dbus-pending-call.c (dbus_pending_call_block): implement - - * dbus/dbus-connection.c - (dbus_connection_send_with_reply_and_block): factor out internals; - change to convert any error replies to DBusError instead of - returning them as a message - -2003-08-15 Havoc Pennington - - * dbus/dbus-connection.c, - dbus/dbus-pending-call.c: Finish the pending call stuff - -2003-08-14 Havoc Pennington - - * dbus/dbus-pending-call.c: start on new object that will replace - DBusMessageHandler and ReplyHandlerData for tracking outstanding - replies - - * dbus/dbus-gproxy.c: start on proxy object used to communicate - with remote interfaces - - * dbus/dbus-gidl.c: do the boring boilerplate in here - -2003-08-12 Havoc Pennington - - * bus/dispatch.c (bus_dispatch): make this return proper - DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD - - * dbus/dbus-errors.c (dbus_set_error): use - _dbus_string_append_printf_valist - - * dbus/dbus-string.c (_dbus_string_append_printf_valist) - (_dbus_string_append_printf): new - - * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to - UNKNOWN_METHOD - - * dbus/dbus-connection.c (dbus_connection_dispatch): handle - DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a - message is unhandled. - -2003-08-11 Havoc Pennington - - * bus/test.c (client_disconnect_handler): change to return - HANDLED (would have been REMOVE_MESSAGE) - - * dbus/dbus-object.h (enum DBusHandlerResult): rename to - HANDLED/NOT_YET_HANDLED instead of - REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it - should be used. - -2003-08-10 Havoc Pennington - - * tools/dbus-send.c (main): add --type argument, for now - supporting only method_call and signal types. - - * tools/dbus-print-message.c: print message type - - * dbus/dbus-connection.c (_dbus_connection_new_for_transport): - init connection->objects - - * doc/dbus-specification.sgml: fix sgml - - * bus/*.c: port over to object-instance API changes - - * test/test-service.c: ditto - - * dbus/dbus-message.c (dbus_message_create_header): allow #NULL - name, we will have to fix up the rest of the code to also handle - this - (dbus_message_new): generic message-creation call - (set_string_field): allow appending name field - -2003-08-06 Havoc Pennington - - * dbus/dbus-object-registry.c: implement signal connection - and dispatch - - * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new - - * dbus/dbus-internals.c (_dbus_memdup): new function - -2003-08-02 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_get_no_reply) - (dbus_message_set_no_reply): add these and remove - set_is_error/get_is_error - - * dbus/dbus-protocol.h, doc/dbus-specification.sgml: - remove the ERROR flag, since there's now an ERROR type - -2003-08-01 Havoc Pennington - - * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock): - implement - - * dbus/dbus-message.c (dbus_message_get_type): new function - - * doc/dbus-specification.sgml: add "type" byte to messages - -2003-08-01 Havoc Pennington - - * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce - a message type enum to distinguish kinds of message - (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message - that need not be replied to - -2003-08-01 Havoc Pennington - - * dbus/dbus-marshal.c: adapt to DBusObjectID changes - (unpack_8_octets): fix no-64-bit-int bug - - * dbus/dbus-object-registry.c (validate_id): validate the - connection ID bits, not just the instance ID. - - * dbus/dbus-connection.c (_dbus_connection_init_id): initialize - the connection-global 33 bits of the object ID - - * dbus/dbus-object-registry.c (info_from_entry): fill in - object ID in the new way - - * dbus/dbus-objectid.h: rather than high/low bits, specifically - define server/client/instance bits. - -2003-07-30 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_register_object): fix - build - -2003-07-13 Havoc Pennington - - * dbus/dbus-object.h (struct DBusObjectVTable): add padding - fields to DBusObjectVTable and DBusObjectInfo - -2003-07-12 Havoc Pennington - - * dbus/dbus-object-registry.c: implement unit test, - fix bugs discovered in process - - * dbus/dbus-connection.c: remove handler_table and - register_handler(), add DBusObjectRegistry usage - - * dbus/dbus-objectid.c (dbus_object_id_is_null) - (dbus_object_id_set_null): new functions - -2003-07-08 Havoc Pennington - - * dbus/dbus-object.c: implement some of this - - * dbus/dbus-object-registry.c - (_dbus_object_registry_add_and_unlock): fill in the object_id out - param - (_dbus_object_registry_new): handle OOM - -2003-07-08 Havoc Pennington - - * dbus/dbus-object.h: sketch out an API for registering objects - with a connection, that allows us to use as little as 24 bytes - per object and lets application code represent an object in - any conceivable way. - - * dbus/dbus-object-registry.c: implement the hard bits of the - DBusConnection aspect of object API. Not yet wired up. - -2003-07-06 Havoc Pennington - - * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function - (_dbus_marshal_object_id): new - (_dbus_demarshal_object_id): new - (_dbus_marshal_get_arg_end_pos): support object ID type, and - consolidate identical switch cases. Don't conditionalize handling - of DBUS_TYPE_UINT64, need to handle the type always. - (_dbus_marshal_validate_arg): consolidate identical cases, and - handle DBUS_TYPE_OBJECT_ID - - * dbus/dbus-objectid.c: new file with DBusObjectID data type. - - * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID - -2003-09-28 Havoc Pennington - - * real 0.13 release - -2003-09-28 Havoc Pennington - - * doc/Makefile.am (dbus-specification.html): testing a funky hack - to work with Debian db2html - -2003-09-28 Havoc Pennington - - * configure.in: 0.13 - - * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of - stylesheet-images for benefit of Debian - - Change back to using filesystem-linked sockets for the system - bus, so only root can create the default system bus address. - - * bus/system.conf.in: change to use - DBUS_SYSTEM_BUS_DEFAULT_ADDRESS - - * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define - from here. - - * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS - here, and AC_DEFINE DBUS_SYSTEM_PATH - -2003-08-09 Anders Carlsson - - * doc/TODO: - * doc/busconfig.dtd: - Add busconfig DTD. - -2003-08-09 Anders Carlsson - - * doc/dbus-specification.sgml: - Add activation reply values. - -2003-08-05 Havoc Pennington - - * configure.in: 0.12 - -2003-08-05 Anders Carlsson - - * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref), - (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch), - (add_watch), (remove_watch), (create_source): - Refcount fds, fixes some reentrancy issues. - -2003-07-30 Havoc Pennington - - * dbus/dbus-bus.c (init_connections_unlocked): fix default system - bus address to be abstract if we have abstract sockets - - * NEWS: update - -2003-07-28 Havoc Pennington - - * bus/messagebus.in: fix to avoid processname/servicename - confusion, from Michael Kearey - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965 - -2003-07-23 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_iter_get_named): - fix from Andy Hanton to remove broken "+1" - -2003-07-16 Havoc Pennington - - * tools/dbus-launch.c (babysit): close stdout/stderr in the - babysitter process, as suggested by Thomas Leonard, so - an "eval `dbus-launch --exit-with-session`" will actually - return - -2003-07-16 Havoc Pennington - - * configure.in: print out EXPANDED_* variables in the summary at - the end; clean up the code that computes EXPANDED_ variables and - get the ones using exec_prefix right. Should make things work - when you build without --prefix - -2003-06-29 Havoc Pennington - - * mono/Test.cs (class Test): fire up a main loop and run it - - * mono/DBus.cs (DBus): don't g_thread_init since it can only be - done once, the app has to do it - -2003-06-26 Havoc Pennington - - * mono/Connection.cs: set up connection with the glib main loop - -2003-07-01 Havoc Pennington - - * doc/dbus-specification.sgml: clarify the format of a type code, - change suggested by Jim Blandy - -2003-06-29 Miloslav Trmac - - * doc/Makefile.am: - * tools/Makefile.am: Don't assume srcdir == builddir. - - * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking - the allocated block. - (_dbus_memory_test): New function. - * dbus/dbus-test.h: Add _dbus_memory_test (). - * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it. - - * dbus/dbus-message.c (decode_header_data): Use %.4s instead - of %c%c%c%c. - (dbus_message_new): Remove obsolete @todo. - - * dbus/dbus-marshal.c (_dbus_marshal_set_int64) - (_dbus_marshal_set_uint64): Fix comment. - - * dbus/dbus-message.c (append_int_field, append_uint_field): Don't - hardcode FIELD_REPLY_SERIAL. - - * dbus/dbus-mainloop.c (_dbus_loop_remove_watch) - (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p - - * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS - and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used - -2003-06-24 Havoc Pennington - - * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0) - -2003-06-23 Anders Carlsson - - * configure.in: - * gcj/.cvsignore: - * gcj/Hello.java: - * gcj/Makefile.am: - * gcj/TestMessage.java: (TestMessage), (TestMessage.main): - * gcj/org/.cvsignore: - * gcj/org/Makefile.am: - * gcj/org/freedesktop/.cvsignore: - * gcj/org/freedesktop/Makefile.am: - * gcj/org/freedesktop/dbus/.cvsignore: - * gcj/org/freedesktop/dbus/Makefile.am: - * gcj/org/freedesktop/dbus/Message.java: (Message), - (Message.Message): - * gcj/org/freedesktop/dbus/natMessage.cc: - Fix the build system. - -2003-06-22 Havoc Pennington - - * mono/Connection.cs: add more bindings - - * dbus/dbus-threads.c (dbus_threads_init): allow calling this - more than once. - -2003-06-22 Havoc Pennington - - * mono/Connection.cs, mono/DBus.cs, mono/Error.cs: - Start wrapping more stuff. - -2003-06-22 Havoc Pennington - - * mono/Message.cs: implement Message.Wrap() that ensures we only - have a single C# wrapper per DBusMessage, assuming it works which - it probably doesn't. - - * dbus/dbus-message.c (dbus_message_allocate_data_slot): new - (dbus_message_free_data_slot): new - (dbus_message_set_data): new - (dbus_message_get_data): new - -2003-06-22 Havoc Pennington - - * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref) - (_dbus_data_slot_allocator_alloc): rework these to keep a - reference count on each slot and automatically manage a global - slot ID variable passed in by address - - * bus/bus.c: convert to new dataslot API - - * dbus/dbus-bus.c: convert to new dataslot API - - * dbus/dbus-connection.c: convert to new dataslot API - - * dbus/dbus-server.c: convert to new dataslot API - - * glib/dbus-gmain.c: ditto - - * bus/test.c: ditto - - * bus/connection.c: ditto - -2003-06-22 Anders Carlsson - - * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL - after the gcj checks so that the correct configuration tags - will be added to libtool. - - * dbus-glib-1.pc.in: No need to specify any includes since - dbus-1.pc.in has those. - -2003-06-22 Havoc Pennington - - * mono/*, gcj/*, configure.in, Makefile.am: - Check in makefiles and subdirs for mono and gcj bindings. - Neither binding actually exists, just trying to get through - all the build and other boring bits. - -2003-06-21 Philip Blundell - - * tools/dbus-monitor.1: Updated. - - * tools/dbus-send.1: Likewise. - -2003-06-20 Anders Carlsson - - * dbus/dbus-transport-unix.c (unix_handle_watch): Check - for hangup and error after checking read so we won't discard - pending data if both hangup and read are set. - -2003-06-19 Philip Blundell - - * tools/dbus-print-message.c (print_message): Handle BOOLEAN. - - * tools/dbus-send.c: Accept both --system and --session. - - * tools/dbus-monitor.c: Same here. - -2003-06-19 Anders Carlsson - - * glib/dbus-glib.h: Fix so that dbus-glib.h can be used - from C++ (Patch by Miloslav Trmac). - -2003-06-15 Joe Shaw - - * configure.in: Check for socklen_t. - - * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined. - - * test/test-segfault.c: Add #include - - * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since - dbus-launch needs it. - -2003-06-09 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use - SUN_LEN, it breaks abstract socket usage - - * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at - starts of lines. - -2003-06-04 Havoc Pennington - - * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets - using unix:abstract=/foo, and when listening in a tmpdir - i.e. unix:tmpdir=/tmp, always use abstract sockets if we can. - - * dbus/dbus-transport.c (_dbus_transport_open): support - unix:abstract=/foo - - * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): - support abstract sockets - - * dbus/dbus-transport-unix.c - (_dbus_transport_new_for_domain_socket): support abstract sockets - - * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract" - toggle as an argument, implement abstract namespace support - (_dbus_listen_unix_socket): ditto - - * configure.in: add --enable-abstract-sockets and implement - a configure check for autodetection of the right value. - -2003-06-01 Havoc Pennington - - * tools/dbus-cleanup-sockets.c: add utility to clean up sockets - in /tmp (though on Linux this will end up being useless, - when we add abstract namespace support) - - * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to - subst'ing it - -2003-05-28 Colin Walters - - * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/). - -2003-05-18 Anders Carlsson - - * dbus/dbus-message.c (dbus_message_new): Remove @todo. - -2003-05-17 Colin Walters - - * tools/dbus-send.c: Don't exit with an error code if --help was - passed. Default to using the session bus instead of the system - one. - - * tools/dbus-launch.c: Ditto. - - * tools/dbus-monitor.c: Ditto. - - * tools/dbus-send.1: Update with new arguments. - - * tools/dbus-launch.c: Emit code to export variables. New - arguments -s and -c to specify shell syntax, and a bit of code to - autodetect syntax. Also, allow specifying a program to run. - - * tools/dbus-launch.1: Update with new arguments. - - * tools/dbus-send.1: Ditto. - - * tools/dbus-monitor.1: Ditto. - -2003-05-17 Havoc Pennington - - * bus/config-parser.c (merge_included): merge in policies from - child configuration file. - - * bus/policy.c (bus_policy_merge): function to merge two policies - together - -2003-05-16 Havoc Pennington - - * dbus/dbus-connection.c: disable verbose lock spew - - * tools/dbus-send.c: add --print-reply command line option - - * tools/dbus-print-message.h (print_message): new util function - shared by dbus-send and dbus-monitor - - * tools/dbus-monitor.c (handler_func): exit on disconnect - - * dbus/dbus-transport-unix.c (do_reading): if the transport is - disconnected, don't try to use the read_watch - - * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL - so we can find this bug more easily - -2003-05-16 Havoc Pennington - - * bus/policy.c (free_rule_list_func): avoid a crash when passed - NULL as DBusHashTable is annoyingly likely to do. - -2003-05-16 Colin Walters - - * tools/dbus-monitor.c: Add --session argument and usage() - function. - - * tools/dbus-monitor.1: Update with new --session arg. - - * bus/Makefile.am (install-data-hook): Create - $(libdir)/dbus-1.0/services so that the session bus is happy. - -2003-05-15 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work - on non-x86. ifdef's are evil. - -2003-05-15 Havoc Pennington - - * configure.in: 0.11 - - * NEWS: update - - * bus/Makefile.am (initddir): apparently we are supposed to put - init scripts in /etc/rc.d/init.d not /etc/init.d - - * bus/Makefile.am: remove the "you must --enable-tests to make - check" as it broke distcheck - - * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d - -2003-05-13 James Willcox - - * configure.in: - * bus/activation.c: (bus_activation_service_created), - (bus_activation_activate_service): - * bus/driver.c: (bus_driver_send_service_deleted), - (bus_driver_send_service_created), (bus_driver_send_service_lost), - (bus_driver_send_service_acquired), - (bus_driver_send_welcome_message), - (bus_driver_handle_list_services): - * bus/session.conf.in: - * dbus/dbus-bus.c: (dbus_bus_acquire_service), - (dbus_bus_service_exists), (dbus_bus_activate_service): - * dbus/dbus-bus.h: - - Add some convenience API which lets you activate a service, and did a - bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args() - and dbus_message_get_args() - -2003-05-11 Havoc Pennington - - * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid - calling _dbus_marshal_validate_arg() for every byte in a byte - array, etc. - - * dbus/dbus-message-handler.c: use atomic reference counting to - reduce number of locks slightly; the global lock in here sucks - - * dbus/dbus-connection.c - (_dbus_connection_update_dispatch_status_and_unlock): variant of - update_dispatch_status that can be called with lock held; then use - in a couple places to reduce locking/unlocking - (dbus_connection_send): hold the lock over the whole function - instead of acquiring it twice. - - * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM - - * bus/connection.c (bus_connections_setup_connection): fix access - to already-freed memory. - - * dbus/dbus-connection.c: keep a little cache of linked list - nodes, to avoid using the global linked list alloc lock in the - normal send-message case. Instead we just use the connection lock - that we already have to take. - - * dbus/dbus-list.c (_dbus_list_find_last): new function - - * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): - change to use a struct for the atomic type; fix docs, - they return value before increment, not after increment. - - * dbus/dbus-string.c (_dbus_string_append_4_aligned) - (_dbus_string_append_8_aligned): new functions to try to - microoptimize this operation. - (reallocate_for_length): break this out of set_length(), to - improve profile info, and also so we can consider inlining the - set_length() part. - - * dbus/dbus-message.c (dbus_message_new_empty_header): init data - strings with some preallocation, cuts down on our calls to realloc - a fair bit. Though if we can get the "move entire string to empty - string" optimization below to kick in here, it would be better. - - * dbus/dbus-string.c (_dbus_string_move): just call - _dbus_string_move_len - (_dbus_string_move_len): add a special case for moving - an entire string into an empty string; we can just - swap the string data instead of doing any reallocs. - (_dbus_string_init_preallocated): new function - -2003-05-11 Havoc Pennington - - Write a "test-profile" that does echo client-server with threads; - profile reveals lock contention, memcpy/realloc of buffers, and - UTF-8 validation as hot spots. 20% of lock contention eliminated - with dbus_atomic_inc/dec implementation on x86. Much remaining - contention is global mempool locks for GList and DBusList. - - * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add - x86 implementation - - * dbus/dbus-connection.c (struct DBusConnection): use - dbus_atomic_t for the reference count - - * dbus/dbus-message.c (struct DBusMessage): declare - dbus_atomic_t values as volatile - - * configure.in: code to detect ability to use atomic integer - operations in assembly, from GLib patch - - * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every - time, tired of it being wrong in threads and forked processes - - * glib/test-profile.c: a little program to bounce messages back - and forth between threads and eat CPU - - * dbus/dbus-connection.c: add debug spew macros for debugging - thread locks; include config.h at top; fix deadlock in - dbus_connection_flush() - -2003-05-08 Havoc Pennington - - * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov - data from getting written, and there wasn't a good reason to - use _exit really. - - * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count - dbus_verbose lines in test coverage - (main): add list of functions sorted by # of untested blocks - to the coverage report - - * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS - - * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage - - * dbus/dbus-message-handler.c (_dbus_message_handler_test): - extend test coverage - - * test/data/auth/cancel.auth-script: test canceling an - authentication - - * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they - aren't used. in CVS history if we end up needing them. - -2003-05-04 Havoc Pennington - - * dbus/dbus-message-handler.c (_dbus_message_handler_test): add - unit test - - * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this - function, which assumed length was in # of strings, not bytes - - * dbus/dbus-message.c (_dbus_message_test): add tests for some - missing coverage - - * dbus/dbus-connection.c - (_dbus_connection_queue_received_message): disable function for - now, we are only using it in test mode - - * dbus/dbus-message.c (_dbus_message_loader_queue_messages): - remove a mistaken FIXME - -2003-05-04 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_preallocate_send): - unlock mutex on successful return, patch from Anders Gustafsson - -2003-05-04 Havoc Pennington - - * dbus-glib-1.pc.in (Requires): fix dependencies, from - Anders Gustafsson - -2003-05-04 Havoc Pennington - - * tools/dbus-launch.c: implement - - * bus/main.c (main), bus/bus.c (bus_context_new): - implement --print-pid and --fork - -2003-05-03 Havoc Pennington - - * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in - the address had no value, and add to test suite. Fix and - regression test from Miloslav Trmac - -2003-05-03 Havoc Pennington - - * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a - watch is invalid when handled - - * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add - dbus-launch utility to launch the bus from a shell script. Didn't - actually implement dbus-launch yet, it's just a placeholder still. - -2003-05-03 Havoc Pennington - - * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the - daemon; also documents daemon config file, so replaces - doc/config-file.txt. Corrected some stuff from config-file.txt in - the process of moving it. - -2003-05-03 Havoc Pennington - - * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1: - add some man pages - -2003-05-03 Colin Walters - - * dbus/dbus-sysdeps.c (fill_user_info): Test against - DBUS_UID_UNSET to determine whether to do a uid lookup or not. - - * Makefile.am: Update to use new .pc versioning scheme. - -2003-05-02 Havoc Pennington - - * bus/system.conf.in: allow send/receive to/from message bus - service - -2003-04-30 Havoc Pennington - - * configure.in: print a note when building with unit tests and - without assertions - -2003-04-30 Havoc Pennington - - * Makefile.am: add a check-local that complains if you didn't - configure with --enable-tests - -2003-04-29 Havoc Pennington - - * glib/dbus-gmain.c: docs cleanups - - * dbus/dbus-types.h: add docs on int64 types - - * dbus/dbus-memory.c: fix docs to avoid putting private API in - public API docs section - -2003-04-29 Havoc Pennington - - * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from - dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the - parallel install API version, not with the D-BUS package version. - - * HACKING: move some of README over here - - * README: updates, and document API/ABI policy - - * configure.in: reindentation - -2003-04-29 Havoc Pennington - - * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE - to use this library" to be sure people have the right - expectations. - -2003-04-28 Havoc Pennington - - * configure.in: add --enable-docs which by default is auto yes if - doxygen and db2html found, no otherwise; but can be forced on/off - - * doc/Makefile.am: conditionalize whether to build docs on - --enable-docs - -2003-04-28 Havoc Pennington - - * configure.in: 0.10 - - * NEWS: update - - * bus/system.conf.in: add system.d - - * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when - username was provided but not uid - - * bus/config-parser.c (struct BusConfigParser): keep track of - whether the parser is toplevel or was included; change some - of the error handling if it's included. - -2003-04-27 Havoc Pennington - - Unbreak my code... - - * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): - report correct status if we finish processing authentication - inside this function. - - * bus/activation.c (try_send_activation_failure): use - bus_transaction_send_error_reply - - * bus/connection.c (bus_connection_get_groups): return an error - explaining the problem - - * bus/bus.c (bus_context_check_security_policy): implement - restriction here that inactive connections can only send the - hello message. Also, allow bus driver to send anything to - any recipient. - - * bus/connection.c (bus_connection_complete): create the - BusClientPolicy here instead of on-demand. - (bus_connection_get_policy): don't return an error - - * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL - sender field in message being replied to - - * bus/bus.c (bus_context_check_security_policy): fix silly typo - causing it to return FALSE always - - * bus/policy.c (bus_client_policy_check_can_send): fix bug where - we checked sender rather than destination - -2003-04-25 Havoc Pennington - - test suite is slightly hosed at the moment, will fix soon - - * bus/connection.c (bus_connections_expire_incomplete): fix to - properly disable the timeout when required - (bus_connection_set_name): check whether we can remove incomplete - connections timeout after we complete each connection. - - * dbus/dbus-mainloop.c (check_timeout): fix this up a bit, - probably still broken. - - * bus/services.c (bus_registry_acquire_service): implement max - number of services owned, and honor allow/deny rules on which - services a connection can own. - - * bus/connection.c (bus_connection_get_policy): report errors here - - * bus/activation.c: implement limit on number of pending - activations - -2003-04-25 Havoc Pennington - - * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug - where we used >= 0 instead of != DBUS_UID_UNSET. - -2003-04-25 Havoc Pennington - - * glib/dbus-gmain.c (remove_watch): fix for a crash when watches - were toggled without add/remove, fix from Anders Gustafsson - -2003-04-24 Havoc Pennington - - * test/data/valid-config-files/basic.conf: add tags to - this test - - * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement - tag in configuration file. - -2003-04-24 Havoc Pennington - - * bus/dispatch.c: somehow missed some name_is - - * dbus/dbus-timeout.c (_dbus_timeout_set_enabled) - (_dbus_timeout_set_interval): new - - * bus/connection.c (bus_connections_setup_connection): record time - when each connection is first set up, and expire them after the - auth timeout passes. - -2003-04-24 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_name_is): rename - (dbus_message_service_is): rename - (dbus_message_sender_is): rename - (dbus_message_get_service): rename - -2003-04-24 Havoc Pennington - - * configure.in: add --enable-checks - - * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments - - * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix - to use thread locks. - (_dbus_connection_handler_destroyed_locked): move some private - functions into proper docs group - - * dbus/dbus-internals.h: add _dbus_return_if_fail, - _dbus_return_val_if_fail - - Throughout: use dbus_return_if_fail - -2003-04-23 James Willcox - - * glib/dbus-glib.h: - * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source), - (dbus_connection_setup_with_g_main), - (dbus_server_setup_with_g_main): - * glib/test-dbus-glib.c: (main): - * glib/test-thread-client.c: (main): - * glib/test-thread-server.c: (new_connection_callback), (main): - * tools/dbus-monitor.c: (main): - - Added a GMainContext argument to dbus_connection_setup_with_g_main() - and dbus_server_setup_with_g_main(). - -2003-04-20 Havoc Pennington - - * doc/dbus-specification.sgml: document the restrictions on - message and service names - -2003-04-22 Havoc Pennington - - * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer - support, and do some code cleanups to share more code and - speed up array marshal/demarshal. - - * dbus-1.0.pc.in (Cflags): put libdir include file in cflags - - * configure.in: generate dbus-arch-deps.h - - * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add - 64-bit typecodes - -2003-04-22 Havoc Pennington - - * test/data/valid-messages/opposite-endian.message: fix test - to use proper type for rply field - - * test/data/invalid-messages: add tests for below validation - - * dbus/dbus-message.c (decode_header_data): validate field types, - and validate that named fields are valid names - (decode_name_field): consider messages in the - org.freedesktop.Local. namespace to be invalid. - - * dbus/dbus-string.c (_dbus_string_validate_name): new - -2003-04-19 Havoc Pennington - - * bus/driver.c (bus_driver_handle_hello): check limits and - return an error if they are exceeded. - - * bus/connection.c: maintain separate lists of active and inactive - connections, and a count of each. Maintain count of completed - connections per user. Implement code to check connection limits. - - * dbus/dbus-list.c (_dbus_list_unlink): export - - * bus/bus.c (bus_context_check_security_policy): enforce a maximum - number of bytes in the message queue for a connection - -2003-04-18 Havoc Pennington - - * dbus/dbus-auth.c (record_mechanisms): memleak fixes - - * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some - memleaks - - * dbus/dbus-keyring.c (add_new_key): fix a memleak, and - on realloc be sure to update the pointer in the keyring - - * dbus/dbus-string.c (_dbus_string_zero): compensate for align - offset to avoid writing to unallocated memory - - * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to - try the next mechanism, so we properly handle OOM - - * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free - on OOM. - (_dbus_keyring_new): fix OOM bug - (_dbus_keyring_new_homedir): always set error; impose a maximum - number of keys we'll load from the file, mostly to speed up the - test suite and make its OOM checks more useful, but also for - general sanity. - - * dbus/dbus-auth.c (process_error_server): reject authentication - if we get an error from the client - (process_cancel): on cancel, send REJECTED, per the spec - (process_error_client): send CANCEL if we get an error from the - server. - -2003-04-18 Havoc Pennington - - * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose - debug spew - - * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM - handling problem - - * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine - about DBUS_TEST_HOMEDIR once - - * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in - the environment - - * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1 - config file so we test the right thing - - Throughout: assorted docs improvements - -2003-04-18 Havoc Pennington - - * glib/dbus-gmain.c: adapt to watch changes - - * bus/bus.c, bus/activation.c, etc.: adjust to watch changes - - * dbus/dbus-server.h: remove dbus_server_handle_watch - - * dbus/dbus-connection.h: remove dbus_connection_handle_watch - - * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work - like DBusTimeout, so we don't need dbus_connection_handle_watch - etc. - -2003-04-17 Havoc Pennington - - * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd - database usage so it all goes via the DBusUserDatabase cache. - -2003-04-17 Havoc Pennington - - * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if - there was an OOM watch we skipped, we always return TRUE so we - iterate again to have a look at it again. Fixes test suite hang. - Code rearrangement also lets us lose some memset and only iterate - over callbacks once. - - * bus/driver.c (bus_driver_handle_message): sense of test for - reply was backward - -2003-04-16 Havoc Pennington - - * doc/dbus-specification.sgml: make spec say serials are unsigned - - * dbus/dbus-message.h: change message serials to unsigned - - * dbus/dbus-connection.c: adapt to message serials being unsigned - -2003-04-15 Havoc Pennington - - * bus/bus.c: create and keep around a shared DBusUserDatabase - object. - - * bus/connection.c (bus_connection_get_groups): don't cache - groups for user in the connection object, since user database - object now does that. - -2003-04-16 Havoc Pennington - - * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a - list of size counters - (_dbus_message_loader_putback_message_link): put back a popped link - - * dbus/dbus-connection.c - (dbus_connection_set_max_live_messages_size): rename - max_received_size - (dbus_connection_get_outgoing_size): get size of outgoing - queue - (_dbus_connection_set_connection_counter): remove this cruft - -2003-04-14 Havoc Pennington - - * dbus/dbus-userdb.c: user database abstraction, mostly to get - caching, but at some point we might want to be able to use a - different database. - - * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses - SHA1 conf file to test the sha1 auth mechanism, since the regular - test always uses EXTERNAL when available. - - * configure.in, - test/data/valid-config-files/debug-allow-all-sha1.conf.in: - add conf file that requires use of sha1 auth - -2003-04-13 Havoc Pennington - - * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs - from Philip Blundell to send messages and monitor them. - -2003-04-13 Havoc Pennington - - * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting - callbacks - - * test/data/valid-config-files/debug-allow-all.conf.in: allow all - users - - * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): - fix to only recover unused bytes if we're already authenticated - (_dbus_transport_get_is_authenticated): fix to still mark us - authenticated if there are unused bytes. - - * bus/dispatch.c: implement security policy checking - - * bus/connection.c (bus_transaction_send_from_driver): new - - * bus/bus.c (bus_context_check_security_policy): new - - * bus/dispatch.c (send_service_nonexistent_error): delete this, - now we just set the DBusError and it gets converted to an error - reply. - - * bus/connection.c (allow_user_function): enable code using actual - data from the config file - - * bus/policy.c (list_allows_user): handle wildcard rules for - user/group connection perms - -2003-04-13 Havoc Pennington - - * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules - - * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function - - * bus/policy.c (bus_policy_append_mandatory_rule) - (bus_policy_append_default_rule, bus_policy_append_user_rule) - (bus_policy_append_group_rule): new functions - -2003-04-12 Havoc Pennington - - * bus/config-parser.c (bus_config_parser_new): fix a memleak - - * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for - the pid/gid/uid, just for paranoia. - - * test/break-loader.c (randomly_do_n_things): find a byte - containing a type code, and randomly change it to a different - type code. - -2003-04-12 Havoc Pennington - - * bus/policy.h: change BusPolicy to be the thing from the config - file, and rename old BusPolicy to BusClientPolicy - - * bus/bus.c, bus/connection.c, bus/config-parser.c: change to - match change in how policy works - - * dbus/dbus-internals.h: mark assert_not_reached as - __attribute((noreturn))__ - -2003-04-11 Havoc Pennington - - * doc/dbus-specification.sgml: fix a spot with the wrong name for - the broadcast service. Use boolean return for ServiceExists. - -2003-04-11 Havoc Pennington - - * configure.in: add another directory to look for qt in. - -2003-04-11 Havoc Pennington - - * AUTHORS: add Colin Walters - -2003-04-11 Havoc Pennington - - * NEWS: update - - * configure.in: 0.9 - -2003-04-11 Havoc Pennington - - * bus/messagebus.in: remove pid file when stopping the - message bus, since the bus won't have privileges to remove it - itself. - -2003-04-11 Havoc Pennington - - * bus/bus.c (bus_context_new): move credentials change after - creating pidfile - -2003-04-11 Havoc Pennington - - * test/decode-gcov.c: add "below average functions" to the - coverage report, and change how some of the code works. - - * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's - not in the coverage stats. - - * test/test-service.c (main): use _dbus_verbose not fprintf in a - couple places so running the test suite doesn't result in megaspam. - -2003-04-11 Havoc Pennington - - * bus/dispatch.c (check_existent_service_activation): accept a no - memory error in a place we didn't before - - * bus/test.c (bus_test_run_everything): remove hacky "do it twice - in case the first one failed," since the test suite is less - broken now. - -2003-04-10 Havoc Pennington - - * bus/dispatch.c (check_segfault_service_activation): add test - for launching an executable that just crashes. - - * test/test-segfault.c (main): try setting coredumpsize to 0 so we - don't leave a million cores. We'll see how portable this is. - -2003-04-10 Havoc Pennington - - * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all - the possible parent failures before we fork, so that we don't - fail to create a babysitter after creating the child. - - * bus/activation.c (bus_activation_activate_service): kill child - if we don't successfully complete the activation. - -2003-04-10 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_flush): don't spin on - the connection if it's disconnected - - * bus/activation.c (bus_activation_service_created): use new - transaction features to roll back removal of pending activation if - we don't successfully create the service after all. Don't remove - pending activation if the function fails. - - * dbus/dbus-list.c (_dbus_list_insert_before_link) - (_dbus_list_insert_after_link): new code to facilitate - services.c fixes - - * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated): - new functionality, so we can preallocate the ability to insert - into a hash table. - - * bus/connection.c (bus_transaction_add_cancel_hook): new function - allowing us to put custom hooks in a transaction to be used for - cancelling said transaction - - * doc/dbus-specification.sgml: add some discussion of secondary - service owners, and disallow zero-length service names - - * bus/services.c (bus_registry_acquire_service): new function, - splits out part of bus_driver_handle_acquire_service() and fixes - a bug where we didn't remove the service doing the acquiring - from the secondary queue if we failed to remove the current owner - from the front of the queue. - -2003-04-10 Alexander Larsson - - * doc/dbus-specification.sgml: - s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/ - -2003-04-10 Alexander Larsson - - * bus/.cvsignore: - * glib/.cvsignore: - * test/.cvsignore: - Added files to cvsignore - - * dbus/dbus-message.h: - * dbus/dbus-message.c: (dbus_message_iter_get_named): - Make get_named() take two out argument and return a boolean. - (dbus_message_iter_get_args_valist): - Update usage of get_named(). - (dbus_message_iter_append_byte): - Fix typo - (dbus_message_iter_append_named) - Fix typo - (message_iter_test), (check_message_handling_type), (_dbus_message_test): - More tests. - -2003-04-10 Alexander Larsson - - * dbus/dbus-marshal.[ch]: - Add array_type_pos argument to _dbus_marshal_validate_arg. - Let you pass a NULL end_pos to _dbus_marshal_validate_type. - - * dbus/dbus-message.[ch]: - Multi-dimensional arrays have full type specification in the - outermost array. Iter code re-arranged to handle this. - Added some more iter tests. - - * doc/dbus-specification.sgml: - Add me to authors. - Remove old FIXME. - Update new array encoding description. - Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description. - - * test/data/invalid-messages/array-with-mixed-types.message: - * test/data/valid-messages/array-of-array-of-uint32.message: - Change to the new array format. - - * test/data/invalid-messages/too-short-dict.message: - Fix bug in test. - - * test/data/valid-messages/recursive-types.message: - Fix up and extend test. - -2003-04-10 Havoc Pennington - - * bus/dispatch.c: lots of fixes - - * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export - (_dbus_loop_iterate): remove old "quit if no callbacks" code, - that was crack, broke the test service. - - * dbus/dbus-transport.c (_dbus_transport_open): fix error - handling to avoid piling up errors if we get a failure on the - first address. - - * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include - pid in assertion failures. - - * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up - to some fixed size of file descriptor array. Don't return TRUE - anytime a timeout exists, that led to lots of busy loop silliness - in the tests. - -2003-04-09 Havoc Pennington - - * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought - I'd checked this in earlier but hadn't. - -2003-04-09 Havoc Pennington - - * bus/dispatch.c (bus_dispatch_test): get a bit further through - the activation test (man this is getting old!) - -2003-04-09 Havoc Pennington - - * test/test-utils.c: use dispatch status function to fix this up - - * bus/connection.c (connection_watch_callback): don't dispatch - from here - (connection_timeout_callback): don't dispatch from here - (bus_connections_setup_connection): set the dispatch status function - (bus_connection_disconnected): unset it - - * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function - used to add a connection to be dispatched - (_dbus_loop_iterate): do the dispatching at the end of each - iteration - - * dbus/dbus-connection.c - (dbus_connection_set_dispatch_status_function): new function - allowing us to fix up main loop usage - (_dbus_connection_last_unref): free all the various function - user data - (dbus_connection_dispatch): call the DispatchStatusFunction - whenever this function returns - (dbus_connection_handle_watch): call DispatchStatusFunction - (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction - (reply_handler_timeout): call DispatchStatusFunction - (dbus_connection_flush): call DispatchStatusFunction - -2003-04-09 Havoc Pennington - - * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and - a memory leak - - * bus/dispatch.c (check_service_activated): fix bug in test - - * dbus/dbus-mainloop.c (check_timeout): fix this up - - * dbus/dbus-internals.c (_dbus_verbose_real): include PID in - verbose output so we can sort out output from different processes, - e.g. in the activation case. - -2003-04-08 Colin Walters - - * bus/bus.c (struct BusContext) [pidfile]: New member, to store - the pid file. - (bus_context_new): Set it. - (bus_context_unref): Use it to delete the pid file. - -2003-04-08 Havoc Pennington - - * test/data/invalid-messages/array-with-mixed-types.message: - regression test that fails for the moment - - * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder - tests for convenience - - * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow - array of nil, it broke things. - - * test/data/invalid-messages/array-of-nil.message: regression test - - * test/data/valid-messages/array-of-array-of-uint32.message: - happened to write this so added it to suite - -2003-04-08 Havoc Pennington - - * bus/driver.c (bus_driver_handle_acquire_service): init - retval/reply before checking name - - * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a - recursion depth argument - - * dbus/dbus-message.h (struct DBusMessageIter): put some padding - in the public struct for future extension - - * dbus/dbus-message-builder.c (_dbus_message_data_load): fix - typo - - * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose - message - - * doc/dbus-specification.sgml: fix typo - -2003-04-08 Alexander Larsson - - Implemented recursive types, named types and new-style iters - - * bus/driver.c: - * glib/test-thread-client.c: (thread_func): - * glib/test-thread-server.c: (handle_test_message): - * test/test-service.c: (handle_echo): - Update to new api - - * dbus/Makefile.am: - * dbus/dbus-dict.c: - * dbus/dbus-dict.h: - * dbus/dbus.h - Remove DBusDict - - * dbus/dbus-internals.c: (_dbus_type_to_string): - Update for new types. - - * dbus/dbus-marshal.[ch]: - Implement recursive types and the new marshalling format. - Remove hardcoded dict marshalling. - Marshal named types. - - * dbus/dbus-message-builder.c: - Add BYTE_ARRAY. - Remove references to old types - - * dbus/dbus-message.[ch]: - New non-refcounted iter API that supports recursive iters. - Use iters for appending, including support for recursive - iters. - Add byte and named type support. - Update everything to new marshalling formats. - Add tests for new API. - - * dbus/dbus-protocol.h: - Remove old array types. - Add types: BYTE, ARRAY, DICT, NAMED - - * dbus/dbus-string.c: - * dbus/dbus-sysdeps.c: - Make parse_double locale safe. - - * dbus/dbus-test-main.c: - Call setlocale. - - * dbus/dbus-test.c: - Kill dict test - - * doc/dbus-specification.sgml: - Update spec - - * test/data/incomplete-messages/missing-body.message: - * test/data/invalid-messages/bad-boolean.message: - * test/data/invalid-messages/bad-boolean-array.message: - * test/data/invalid-messages/boolean-array-length-too-long.message-raw: - * test/data/invalid-messages/boolean-has-no-value.message-raw: - * test/data/invalid-messages/too-short-dict.message: - * test/data/valid-messages/dict-simple.message: - * test/data/valid-messages/dict.message: - * test/data/valid-messages/emptiness.message: - * test/data/valid-messages/lots-of-arguments.message: - * test/data/valid-messages/no-padding.message: - * test/data/valid-messages/recursive-types.message: - Add missing NAME fields - Fix up dicts & arrays - - * test/data/invalid-messages/dict-with-nil-value.message: - Removed, this is not invalid anymore. - - * test/data/valid-messages/recursive-types.message: - Add new test for deeply recursive types. - -2003-04-07 Havoc Pennington - - * bus/driver.c (bus_driver_handle_acquire_service): return an - error if you try to acquire a service that starts with ':' - -2003-04-07 Havoc Pennington - - * doc/dbus-specification.sgml: require that base service names - start with ':' and that the base service is created/deleted - as first and last things a connection does on the bus - - * bus/dispatch.c (check_existent_service_activation): lots more - work on the activation test; it doesn't fully pass yet... - - * test/test-service.c (main): fix so we don't memleak the - connection to the message bus - (filter_func): accept a message asking us to exit - -2003-04-06 Havoc Pennington - - * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h, - from Colin Walters - - * configure.in: fixes to Qt detection from Colin Walters - - * doc/Makefile.am: Only remove generated docbook dirs if they - exist, from Colin Walters - - * dbus/dbus-bus.c: change how we set well-known connections to - NULL, so that it works if a single connection is stored in - two well-known array slots. - - * test/Makefile.am: remove a lot of stuff that isn't immediately - useful, it's in CVS history if we want it. - - * test/test-service.c: use dbus-mainloop instead of that - watch.[hc] crack - -2003-04-06 Havoc Pennington - - * dbus/Makefile.am: split lists of sources into stuff that goes in - the library, util functions that go in the lib and are also used - elsewhere, and util functions that are used in tests/daemon but - don't go in the lib. - - * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc] - here so it can be used in test binaries also - -2003-04-06 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile - here in the parent process, so we can return an error if it - fails. Also, move some of the code into the child so the parent - is less hosed if we fail midway through. - - * bus/bus.c (bus_context_new): move pidfile detection further up - in the function, before we start overwriting sockets and such. - - * bus/messagebus.in: adjust this a bit, not sure if it will work. - - * configure.in: add --with-system-pid-file and --with-system-socket - -2003-04-06 Colin Walters - - * configure.in (DBUS_SYSTEM_PID_FILE): New variable. - - * bus/system.conf.in: Declare a pidfile. - - * bus/bus.c (bus_context_new): Test for an existing pid file, and - create one (if appropriate). - - * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New. - (struct BusConfigParser) [pidfile]: New. - (element_type_to_name, merge_included, start_busconfig_child) - (bus_config_parser_end_element, bus_config_parser_content): Handle it. - (bus_config_parser_unref): Free it. - (bus_config_parser_get_pidfile): New function. - - * bus/config-parser.h (_dbus_write_pid_file): Prototype. - - * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error. - - * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function. - - * dbus/dbus-sysdeps.h: Prototype it. - -2003-04-06 Havoc Pennington - - * bus/bus.c (bus_context_new): print the address in here, rather - than in main(), because we need to do it before forking the daemon - - * bus/dispatch.c (send_service_nonexistent_error): set the sender - on the service nonexistent error - - * bus/driver.c (bus_driver_handle_acquire_service): set the - sender on the AcquireService reply - - * test/data/valid-config-files/debug-allow-all.conf.in: Make test - server also listen on a UNIX socket so services can connect to it. - -2003-04-06 Havoc Pennington - - * dbus/dbus-threads.c: Redo how the fake debug mutexes are done - so it detects deadlocks and also we actually init threads when - debugging. - -2003-04-06 Havoc Pennington - - * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): - save the domain socket name, and unlink it when we disconnect the - server. Means that at least when we exit normally, we won't leave - a bunch of junk in /tmp - - * dbus/dbus-transport-unix.c - (_dbus_transport_new_for_domain_socket): code cleanup (nicer - memory management). (I was making a real change here but then - didn't) - -2003-04-06 Havoc Pennington - - * bus/bus.c (bus_context_new): fix wrong handling of - server_data_slot_unref() in the error case. - - * dbus/dbus-internals.h (_dbus_assert): change so it passes - "(condition) != 0" to _dbus_real_assert so that - "_dbus_assert (pointer)" doesn't cause a warning - - * bus/main.c (main): accept --print-address option to print out - the message bus address - - * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this - - * dbus/dbus-transport.c (_dbus_transport_open): special error for - "tmpdir" option to unix: address on client side - - * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option - to unix: address - - * configure.in (TEST_SOCKET_DIR): locate a temporary directory - we can use to create sockets in the test suite. - - * bus/main.c (signal_handler): on SIGTERM, exit the daemon - cleanly. To be used for testing. - - * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler() - - * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new - - * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): - handle trying to call this when there's no servers active - -2003-04-05 Havoc Pennington - - * NEWS: update - - * configure.in: 0.8 - -2003-04-05 Havoc Pennington - - * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't - crash on startup. Need to get "try starting the daemon" - in the test suite I guess. ;-) - - * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that - tracked the number of open connections; it's better done in - application-specific code as you want it to span all servers etc. - -2003-04-05 Havoc Pennington - - * bus/Makefile.am (install-data-hook): add missing DESTDIR, - patch from Colin Walters - -2003-04-05 Havoc Pennington - - * doc/config-file.txt (Elements): fix docs of to reflect - reality; in fact multiple mechanisms are allowed. - - * dbus/dbus-internals.c (_dbus_real_assert) - (_dbus_real_assert_not_reached): move guts of _dbus_assert() and - _dbus_assert_not_reached() into functions, so that they don't show - up in basic block counts for test coverage, and don't use up as - much disk space. Does mean slower execution speed though, so - assumes --disable-asserts is the normal production case. - -2003-04-05 Havoc Pennington - - * test/Makefile.am (dist-hook): also dist *.in files - - * NEWS: update - - * configure.in: 0.7 - -2003-04-05 Havoc Pennington - - * dbus/dbus-string.c: docs warning - - * dbus/dbus-spawn.c: missing docs - - * dbus/dbus-memory.c (struct ShutdownClosure): missing docs - -2003-04-05 Havoc Pennington - - * bus/loop.c (bus_loop_iterate): fix the timeout code, using - magic from GLib - - * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid - to -1 once we've reaped the babysitter - (_dbus_babysitter_handle_watch): do as much work as we can, not - just one go of it - - * bus/activation.c: add code using DBusBabysitter so that we - handle it when a service fails to start up properly. - (bus_activation_service_created): don't remove the activation - entries as we go, just let them get removed when we free the pending - activation. Unref reply messages after sending them. - -2003-04-05 Havoc Pennington - - * test/decode-gcov.c (main): print per-directory stats in the report - - * Makefile.am (coverage-report.txt): don't include test/* in gcov stats - -2003-04-05 Havoc Pennington - - * Makefile.am (coverage-report.txt): add target "coverage-report.txt" - - * test/decode-gcov.c: hack up a little program to suck data - out of gcov files. Yes this is sort of silly. - - * configure.in: define something in config.h and do an - AM_CONDITIONAL when gcov is enabled - -2003-04-04 Havoc Pennington - - * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to - return a "babysitter" object that is used to monitor the status of - the spawned process and reap it when required. - - * test/test-segfault.c, test/test-exit.c, - test/test-sleep-forever.c: binaries that do various lame things, - used in the test suite. - - * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string() - -2003-04-03 Havoc Pennington - - * dbus/dbus-spawn.c: Move dbus-spawn into a separate file - in preparation for modifying it, dbus-sysdeps is getting - a bit unmanageable. - -2003-04-03 Havoc Pennington - - * bus/loop.h, bus/loop.c: make the mainloop an object so we can - have multiple ones - - * bus/*.[hc]: adapt to mainloop change - -2003-04-03 Havoc Pennington - - * bus/activation.c (load_directory): fix up memleaks - (bus_activation_entry_free): free the entry - - * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if - we get one from the message bus; fix memleaks. - - * dbus/dbus-message.c (dbus_set_error_from_message): new function - -2003-04-03 Havoc Pennington - - * bus/config-parser.c (bus_config_parser_unref): free - list of mechanisms, bug discovered by test suite enhancements - (putting system.conf and session.conf into suite) - - * test/Makefile.am, test/test-service.c: add placeholder for a - test service that we'll activate as part of test suite. Doesn't - do anything yet. - - * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by - setting NULL value, and use system malloc not dbus_malloc() - when we have unavoidable memleakage. - - * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0 - didn't work, and support DBUS_BUS_ACTIVATION. - - * bus/activation.c (child_setup): pass our well-known bus type to - the child - - * bus/config-parser.c: support to specify well-known type - - * doc/dbus-specification.sgml: document the env variables to - locate well-known buses and find service activator - -2003-04-02 Havoc Pennington - - * test/Makefile.am (all-local): add a rule to copy tests to - builddir, so we can have generated tests. Use this to remove the - silly hack for testing system.conf and session.conf. Will use this - shortly to generate .service files pointing to test binaries. - -2003-04-02 Havoc Pennington - - * dbus/dbus-string.c (set_length): fix a bug - we allocated max of - current alloc and needed new length, not max of the doubled - allocation and needed new length. Also, when building tests, - don't do the double-allocation stuff, just realloc every time. - -2003-04-02 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames - in error messages - (_dbus_string_get_dirname): new - (_dbus_sysdeps_test): new - (_dbus_directory_open): include dirnames in error messages - - * bus/config-parser.c: interpret and and - relative to config file location if the given - filename is not absolute. - - * dbus/dbus-string.c (_dbus_string_find_byte_backward): new - -2003-04-02 Havoc Pennington - - * bus/connection.c (bus_transaction_send_error_reply): set sender - service for the error, and unref the reply on success - - * bus/activation.c: convert to use BusTransaction so OOM can be - handled correctly - (bus_activation_service_created): set sender of the message - -2003-04-01 Havoc Pennington - - * bus/config-parser.c, bus/bus.c: implement and - (at least mostly) - - * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID - first, then the user ID - -2003-04-01 Havoc Pennington - - * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new - function - - * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new - - * dbus/dbus-internals.c (_dbus_dup_string_array): new function - - * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the - socket 0777, and unlink any existing socket. - - * bus/bus.c (bus_context_new): change our UID/GID and fork if - the configuration file so specifies; set up auth mechanism - restrictions - - * bus/config-parser.c (bus_config_parser_content): add support - for option and fill in code for - - * bus/system.conf.in: add to default configuration, - and limit auth mechanisms to EXTERNAL - - * doc/config-file.txt (Elements): add - - * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function - (_dbus_change_identity): new function - -2003-03-31 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket) - (_dbus_listen_unix_socket): fix off-by-one error in null - termination spotted by Nalin - -2003-03-31 Havoc Pennington - - * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting - DBUS_TEST_HOMEDIR when tests are enabled, so we can test without - having a real home directory available. - -2003-03-31 Havoc Pennington - - * bus/Makefile.am (install-data-hook): create /var/run/dbus - - * bus/messagebus.in: add init script for Red Hat /etc/init.d - - * configure.in: add support for specifying a style of init script - to install - -2003-03-31 Havoc Pennington - - Fix some annoying DBusString API and fix all affected code. - - * dbus/dbus-string.c (_dbus_string_init): get rid of annoying - max_length argument - (_dbus_string_get_data): change to return string instead of using - an out param - (_dbus_string_get_const_data): ditto - (_dbus_string_get_data_len): ditto - (_dbus_string_get_const_data_len): ditto - -2003-03-31 Havoc Pennington - - * bus/main.c (main): fix up the command line arguments to be nicer - -2003-03-31 Havoc Pennington - - * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to - define DBUS_SYSTEM_BUS_PATH as we want to compile in the same - final location that lands in the config file - - * bus/config-loader-expat.c (bus_config_load): fix type of - XML_Parser variable - - * doc/TODO: remove TODO item for dbus_bus_get() - - * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock - -2003-03-31 Havoc Pennington - - * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket) - (_dbus_transport_new_for_tcp_socket): these didn't need the "server" - argument since they are always client side - - * dbus/dbus-server.c (dbus_server_get_address): new function - - * bus/main.c (main): take the configuration file as an argument. - - * test/data/valid-config-files/debug-allow-all.conf: new file to - use with dispatch.c tests for example - - * bus/test-main.c (main): require test data dir - - * bus/bus.c (bus_context_new): change this to take a - configuration file name as argument - - * doc/config-file.txt (Elements): add - - * bus/system.conf, bus/session.conf: new files - - * dbus/dbus-bus.c (dbus_bus_get): look for system bus on - well-known socket if none set - - * configure.in: create system.conf and session.conf - -2003-03-30 Havoc Pennington - - * bus/config-parser.c: hacking - - * dbus/dbus-memory.c: don't use DBusList for the list of stuff - to shut down, since it could cause weirdness with the DBusList - lock - - * dbus/dbus-list.c (_dbus_list_test): add tests for the - link-oriented stack routines - (alloc_link): free the mempool if the first alloc from it fails - - * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue - - * dbus/dbus-string.c (UNICODE_VALID): sync new version of this - from GLib - (_dbus_string_skip_white): new - - * doc/config-file.txt (Elements): add - -2003-03-28 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_copy_data_len) - (_dbus_string_copy_data): new functions - -2003-03-28 Anders Carlsson - - * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get): - * dbus/dbus-bus.h: - Add dbus_bus_get. - - * dbus/dbus-memory.c: - Fix a doc comment. - -2003-03-28 Havoc Pennington - - * bus/test.c (bus_test_flush_bus): remove the sleep from here, - I think it may have just been superstition. Not sure. - - * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM - failures that were not being handled. - - * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling - - * dbus/dbus-memory.c: add ability to set number of mallocs in a - row that will fail on out-of-memory. - - * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience - function for testing out-of-memory handling. - - * bus/config-loader-expat.c (memsuite): don't wrap the dbus - allocation functions, they do map exactly to the expat ones. - -2003-03-27 Havoc Pennington - - * bus/config-loader-libxml.c (bus_config_load): add another error - check - -2003-03-26 Anders Carlsson - - * doc/TODO: - Add note about automatic service activation. - - * doc/dbus-specification.sgml: - Rename the specification and clarify a few things. - -2003-03-26 Anders Carlsson - - * Doxyfile.in: - * dbus/dbus-address.c: - * dbus/dbus-dict.c: - * dbus/dbus-marshal.c: - * dbus/dbus-server-debug-pipe.c: - * dbus/dbus-transport-unix.c: - Fix documentation warnings. - -2003-03-26 Havoc Pennington - - * bus/test-main.c, dbus/dbus-test.c (main): check memleaks - after every test so it's quick and easy to see which leaked, and - so we test multiple dbus_shutdown() calls - - * configure.in: change configure.in XML stuff to also support - expat - - * config-loader-libxml.c: some hacking - - * config-loader-expat.c: some hacking - - * config-parser.c: some hacking, plus tests - -2003-03-25 Havoc Pennington - - * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR - - * configure.in: add --with-xml option to specify XML library, - right now only libxml is supported. - - * bus/config-loader-libxml.c, config-parser.c: sync some minor - nonworking code between home and work, still just stubs - -2003-03-24 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this - file - - * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow - NULL argument for "message" if the error is a well-known one, - fill in a generic message in this case. - - * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in - favor of DBusError - - * bus/test.c (bus_test_flush_bus): add - - * bus/policy.c (bus_policy_test): test code stub - -2003-03-24 Havoc Pennington - - * bus/connection.c (bus_connections_setup_connection): set up - the "can this user connect" function, but it always returns - TRUE until we have a config file parser so we can have a config - file that allows connections. - -2003-03-23 Havoc Pennington - - * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with - DBUS_BUILD_TESTS, actually alloc/free a block of memory for - the mutex, so we can check for proper memory management - and OOM handling. - - * dbus/dbus-dataslot.c: remove the mutex from - DBusDataSlotAllocator and lock it manually when using it, - to simplify fitting it into the global slots framework. - - * dbus/dbus-threads.c (init_static_locks): rework how we're - handling global locks so they are easily shut down. - - * bus/policy.c (bus_policy_append_rule): fix - - * bus/test-main.c (main): check for memleaks - - * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make - test suite check for memleaks - - * dbus/dbus-memory.c: add support in test mode for tracking - number of outstanding blocks - -2003-03-23 Havoc Pennington - - * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny - policies code - - * dbus/dbus-hash.h: add ULONG hash keys - - * dbus/dbus-sysdeps.c (_dbus_get_groups): new - (_dbus_get_group_id): new function - -2003-03-20 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_set_unix_user_function): - new function - (dbus_connection_get_unix_user): new function - -2003-03-20 Havoc Pennington - - * bus/connection.c (bus_connection_send_oom_error): assert that - message has a sender - (connection_execute_transaction): ditto - (bus_connection_preallocate_oom_error): fix to set the sender, and - set recipient to the destination service, not the bus driver - - * bus/policy.c: hacking - - * dbus/dbus-message.c (dbus_message_service_is): new function - (dbus_message_sender_is): new - -2003-03-19 Havoc Pennington - - * bus/policy.c: start sketching code for policy restrictions on - what connections can do. - -2003-03-18 Havoc Pennington - - * doc/TODO: some notes on high-level todo items. Little nitpick - stuff is all in @todo, so no need to add it here. - - * doc/config-file.txt: some notes on how config file might look - -2003-03-18 Anders Carlsson - - * configure.in: 0.6 - - * NEWS: Update. - -2003-03-17 Havoc Pennington - - * dbus/dbus-internals.h: add gcc attributes so that - our printf-style functions warn on bad arguments to - format - - * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf - format bug - - * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix - printf format bug - -2003-03-17 Havoc Pennington - - * bus/test-main.c (main): make it print something as it runs - so make check doesn't look stuck - - * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove - from CVS, now obsolete - -2003-03-17 Anders Carlsson - - * bus/dispatch.c: (bus_dispatch): - Refetch the service name since it may have been reallocated - when dbus_message_set_sender was called. - - * dbus/dbus-sysdeps.c: (_dbus_accept): - Add address and address length variables and use them to stop - valgrind from complaining. - -2003-03-17 Havoc Pennington - - All tests pass, no memleaks, no valgrind complaints. - - * bus/test.c: refcount handler_slot - - * bus/connection.c (bus_connections_new): refcount - connection_data_slot - - * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused - bytes so that auth scripts pass. - - * bus/dispatch.c: init message_handler_slot so it gets allocated - properly - - * bus/dispatch.c (message_handler_slot_ref): fix memleak - - * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new): - dealloc server_pipe_hash when no longer used for benefit of - leak checking - - * dbus/dbus-auth.c (process_command): memleak fix - - * bus/dispatch.c (check_hello_message): memleak fix - -2003-03-16 Havoc Pennington - - * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot - -2003-03-17 Anders Carlsson - - * bus/activation.c (bus_activation_activate_service): Append - the pending activation entry to the list of pending activations. - -2003-03-16 Havoc Pennington - - * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of - connections - - * dbus/dbus-address.c (create_entry): fix OOM handling when - failing to alloc entry->method - -2003-03-16 Havoc Pennington - - * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc - the watch - - * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): - add some missing dbus_set_result - - * bus/dispatch.c (bus_dispatch_add_connection): handle failure to - alloc the DBusMessageHandler - - * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref - the transport here, since we call this from the finalizer; it - resulted in a double-finalize. - - * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug - where we tried to use transport->connection that was NULL, - happened when transport was disconnected early on due to OOM - - * bus/*.c: adapt to handle OOM for watches/timeouts - - * dbus/dbus-transport-unix.c: port to handle OOM during - watch handling - - * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a - reference to unused bytes instead of a copy - - * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for - out of memory - - * dbus/dbus-connection.c (dbus_connection_handle_watch): return - FALSE on OOM - - * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out - of memory - -2003-03-16 Anders Carlsson - - * doc/dbus-specification.sgml: - Document reply message for ActivateService. - -2003-03-16 Anders Carlsson - - * bus/activation.c: (bus_pending_activation_entry_free), - (bus_pending_activation_free), (bus_activation_new), - (bus_activation_unref), (bus_activation_service_created), - (bus_activation_activate_service): - * bus/activation.h: - * bus/bus.c: (bus_context_new): - * bus/desktop-file.c: (new_section): - * bus/driver.c: (bus_driver_send_service_deleted), - (bus_driver_handle_activate_service): - * bus/services.c: (bus_registry_new), (bus_registry_ensure): - * bus/services.h: - * dbus/dbus-connection.c: - (dbus_connection_send_with_reply_and_block): - * dbus/dbus-message.c: (dbus_message_append_args_valist): - * dbus/dbus-protocol.h: - Make activation work better. Now pending activations will be queued - and the daemon won't try to activate services that are already registered. - -2003-03-16 Havoc Pennington - - * dbus/dbus-bus.c (ensure_bus_data): handle failure to set - connection data - - * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support - DBUS_MALLOC_BACKTRACES to print trace when failing an alloc - -2003-03-16 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak - this. always run the test suite before commit... - - * bus/*: adapt to DBusConnection API changes - - * glib/dbus-gmain.c: adapt to DBusConnection API changes, - requires renaming stuff to avoid dbus_connection_dispatch name - conflict. - - * dbus/dbus-transport.c (_dbus_transport_queue_messages): new - function - - * dbus/dbus-message.c (_dbus_message_loader_queue_messages): - separate from _dbus_message_loader_return_buffer() - - * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove - this, because it's now always broken to use; the number of - messages in queue vs. the number still buffered by the message - loader is undefined/meaningless. Should use - dbus_connection_get_dispatch_state(). - (dbus_connection_dispatch): rename from - dbus_connection_dispatch_message - -2003-03-16 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real - implementation - -2003-03-16 Anders Carlsson - - * dbus/dbus-connection.c: - (dbus_connection_send_with_reply_and_block): - Decrease connection->n_incoming when removing an entry - from the list. - * dbus/dbus-dict.c: (dbus_dict_entry_free), - (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), - (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), - (dbus_dict_set_byte_array), (dbus_dict_set_string_array), - (dbus_dict_get_boolean_array), (dbus_dict_get_double_array), - (dbus_dict_get_byte_array): - Handle NULL arrays and strings. Also add support for byte arrays. - - * dbus/dbus-marshal.c: (_dbus_marshal_byte_array), - (_dbus_marshal_dict), (_dbus_demarshal_byte_array), - (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), - (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), - (_dbus_demarshal_dict), (demarshal_and_validate_len), - (_dbus_marshal_validate_arg), (_dbus_marshal_test): - * dbus/dbus-marshal.h: - Add support for marshalling and demarshalling empty arrays and strings. - - * dbus/dbus-message.c: (dbus_message_append_args_valist), - (dbus_message_append_string_array), - (dbus_message_iter_get_boolean), - (dbus_message_iter_get_boolean_array), - (dbus_message_iter_get_int32_array), - (dbus_message_iter_get_uint32_array), - (dbus_message_iter_get_double_array), - (dbus_message_iter_get_byte_array), - (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict), - (check_message_handling): - Add support for getting empty arrays and dicts. - - * dbus/dbus-string.c: (_dbus_string_validate_utf8): - Don't do any validation at all for now, that's better than just checking - for ASCII. - - * test/data/valid-messages/emptiness.message: - New test message with lots of empty arrays. - -2003-03-16 Havoc Pennington - - * dbus/dbus-connection.c - (_dbus_connection_queue_received_message_link): new function that - can't fail due to OOM - - * dbus/dbus-message.c (_dbus_message_loader_pop_message_link): - new function pops a message together with a list link - containing it. - - * dbus/dbus-transport-unix.c (queue_messages): use new link-based - message queuing functions to avoid needing to alloc memory - -2003-03-16 Havoc Pennington - - Oops - test code was only testing failure of around 30 of the - mallocs in the test path, but it turns out there are 500+ - mallocs. I believe this was due to misguided linking setup such - that there was one copy of dbus_malloc etc. in the daemon and one - in the shared lib, and only daemon mallocs were tested. In any - case, the test case now tests all 500+ mallocs, and doesn't pass - yet, though there are lots of fixes in this patch. - - * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix - this so that it doesn't need to allocate memory, since it - has no way of indicating failure due to OOM (and would be - annoying if it did). - - * dbus/dbus-list.c (_dbus_list_pop_first_link): new function - - * bus/Makefile.am: rearrange to create two self-contained - libraries, to avoid having libraries with overlapping symbols. - that was resulting in weirdness, e.g. I'm pretty sure there - were two copies of global static variables. - - * dbus/dbus-internals.c: move the malloc debug stuff to - dbus-memory.c - - * dbus/dbus-list.c (free_link): free list mempool if it becomes - empty. - - * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function - - * dbus/dbus-address.c (dbus_parse_address): free list nodes - on failure. - - * bus/dispatch.c (bus_dispatch_add_connection): free - message_handler_slot when no longer using it, so - memory leak checkers are happy for the test suite. - - * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name - - * bus/bus.c (new_connection_callback): disconnect in here if - bus_connections_setup_connection fails. - - * bus/connection.c (bus_connections_unref): fix to free the - connections - (bus_connections_setup_connection): if this fails, don't - disconnect the connection, just be sure there are no side - effects. - - * dbus/dbus-string.c (undo_alignment): unbreak this - - * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were - leaking - (_dbus_auth_new): fix the order in which we free strings - on OOM failure - - * bus/connection.c (bus_connection_disconnected): fix to - not send ServiceDeleted multiple times in case of memory - allocation failure - - * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to - get the base service name - (dbus_bus_register_client): don't return base service name, - instead store it on the DBusConnection and have an accessor - function for it. - (dbus_bus_register_client): rename dbus_bus_register() - - * bus/dispatch.c (check_hello_message): verify that other - connections on the bus also got the correct results, not - just the one sending hello - -2003-03-15 Havoc Pennington - - Make it pass the Hello handling test including all OOM codepaths. - Now to do other messages... - - * bus/services.c (bus_service_remove_owner): fix crash when - removing owner from an empty list of owners - (bus_registry_ensure): don't leave service in the list of - a connection's owned services if we fail to put the service - in the hash table. - - * bus/connection.c (bus_connection_preallocate_oom_error): set - error flag on the OOM error. - - * dbus/dbus-connection.c (_dbus_connection_new_for_transport): - handle _dbus_transport_set_connection failure - - * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify - to create watches up front and simply enable/disable them as - needed. - (unix_connection_set): this can now fail on OOM - - * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept - of enabling/disabling a watch or timeout. - - * bus/loop.c (bus_loop_iterate): don't touch disabled - watches/timeouts - - * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts - -2003-03-15 Havoc Pennington - - * bus/dispatch.c (bus_dispatch_test): OK, now finally actually - write useful test code, after all that futzing around ;-) - - Test does not yet pass because we can't handle OOM in - _dbus_transport_messages_pending (basically, - dbus_connection_preallocate_send() does not prealloc the write - watch). To fix this, I think we need to add new stuff to - set_watch_functions, namely a SetEnabled function so we can alloc - the watch earlier, then enable it later. - - * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move - dbus-memory.c to the convenience lib - - * bus/test.c: rename some static functions to keep them clearly - distinct from stuff in connection.c. Handle client disconnection. - -2003-03-14 Havoc Pennington - - * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe - transport, tests more of the real codepath. Set up clients - with bus_setup_debug_client. - - * bus/test.c (bus_setup_debug_client): function to set up debug - "clients" on the main loop - - * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe - support - - * dbus/dbus-server.c (dbus_server_listen): add debug-pipe - server type - - * dbus/dbus-server-debug.c: support a debug server based on pipes - - * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function - (_dbus_close): new function - - * configure.in: check for socketpair - -2003-03-14 Havoc Pennington - - * dbus/dbus-memory.c: add a "detect buffer overwrites on free" - cheesy hack - - * dbus/dbus-transport-debug.c: rework this a good bit to be - less complicated. hopefully still works. - - * dbus/dbus-server-debug.c (handle_new_client): remove timeout - manually - - * glib/dbus-gmain.c (timeout_handler): don't remove timeout - after running it - - * dbus/dbus-message.c (dbus_message_copy): rename from - dbus_message_new_from_message, fix it up to copy - all the message fields, add test case - - * bus/dispatch.c (bus_dispatch_test): add some more test code, - not quite passing yet - -2003-03-14 Havoc Pennington - - * bus/loop.c (bus_loop_iterate): add this so we can "run loop - until no work remains" in test code. (the large diff here - is just code movement, no actual changes) - - * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to - 1, no point waiting around for test code. - (_dbus_server_debug_accept_transport): unref the timeout - after adding it (right?) - - * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto - -2003-03-13 Havoc Pennington - - * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle - out of memory - - * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out - of memory - - * dbus/dbus-connection.h: Make AddWatchFunction and - AddTimeoutFunction return a bool so they can fail on out-of-memory - - * bus/bus.c (bus_context_new): set up timeout handlers - - * bus/connection.c (bus_connections_setup_connection): set up - timeout handlers - - * glib/dbus-gmain.c: adapt to the fact that set_functions stuff - can fail - - * bus/bus.c (bus_context_new): adapt to changes - - * bus/connection.c: adapt to changes - - * test/watch.c: adapt to DBusWatch changes - - * bus/dispatch.c (bus_dispatch_test): started adding this but - didn't finish - -2003-03-14 Anders Carlsson - - * bus/dispatch.c (send_service_nonexistent_error): Fix typo. - -2003-03-13 Havoc Pennington - - * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c: - set up a test framework as for the library - -2003-03-12 Havoc Pennington - - Throughout: purge global variables, introduce BusActivation, - BusConnections, BusRegistry, etc. objects instead. - - * bus/bus.h, bus/bus.c: introduce BusContext as a global - message bus object - - * test/Makefile.am (TEST_BINARIES): disable bus-test for now, - going to redo this a bit differently I think - -2003-03-12 Havoc Pennington - - Mega-patch that gets the message bus daemon initially handling - out-of-memory. Work still needed. Also lots of random - moving stuff to DBusError instead of ResultCode. - - * dbus/dbus-list.c (_dbus_list_length_is_one): new function - - * dbus/dbus-connection.c - (dbus_connection_send_with_reply_and_block): use DBusError - - * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not - DBusResultCode - - * dbus/dbus-connection.c (dbus_connection_send): drop the result - code here, as the only failure possible is OOM. - - * bus/connection.c (bus_connection_disconnect): - rename bus_connection_disconnected as it's a notification only - - * bus/driver.c (bus_driver_handle_acquire_service): don't free - "name" on get_args failure, should be done by get_args; - don't disconnect client for bad args, just return an error. - (bus_driver_handle_service_exists): ditto - - * bus/services.c (bus_services_list): NULL-terminate returned array - - * bus/driver.c (bus_driver_send_service_lost) - (bus_driver_send_service_acquired): send messages from driver to a - specific client to the client's unique name, not to the broadcast - service. - - * dbus/dbus-message.c (decode_header_data): reject messages that - contain no name field - (_dbus_message_get_client_serial): rename to - dbus_message_get_serial and make public - (_dbus_message_set_serial): rename from set_client_serial - (_dbus_message_set_reply_serial): make public - (_dbus_message_get_reply_serial): make public - - * bus/connection.c (bus_connection_foreach): allow stopping - iteration by returning FALSE from foreach function. - - * dbus/dbus-connection.c (dbus_connection_send_preallocated) - (dbus_connection_free_preallocated_send) - (dbus_connection_preallocate_send): new API for sending a message - without possibility of malloc failure. - (dbus_connection_send_message): rename to just - dbus_connection_send (and same for whole function family) - - * dbus/dbus-errors.c (dbus_error_free): make this reinit the error - - * dbus/dbus-sysdeps.c (_dbus_exit): new function - - * bus/activation.c: handle/return errors - - * dbus/dbus-errors.h: add more DBUS_ERROR #define - - * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents) - (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode - (_dbus_result_from_errno): move to this file - -2003-03-10 Anders Carlsson - - * dbus/dbus-marshal.c: - (_dbus_marshal_set_string): - Take a length argument so we can marshal the correct string - length. - - (_dbus_marshal_dict), (_dbus_demarshal_dict), - (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg), - (_dbus_marshal_test): - * dbus/dbus-marshal.h: - Add support for marshalling and demarshalling dicts. - - * dbus/dbus-message-builder.c: (_dbus_message_data_load): - Add support for TYPE DICT. - - * dbus/dbus-message.c: (set_string_field): - Adjust header padding. - - (dbus_message_append_args_valist), (dbus_message_append_dict), - (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type), - (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer), - (check_message_handling), (check_have_valid_message): - * dbus/dbus-message.h: - Add functions for setting and getting dicts. - - * dbus/dbus-protocol.h: - Add DBUS_TYPE_DICT. - - * dbus/dbus.h: - Add dbus-dict.h - - * doc/dbus-specification.sgml: - Add information about how dicts are marshalled. - - * test/data/invalid-messages/dict-with-nil-value.message: - * test/data/invalid-messages/too-short-dict.message: - * test/data/valid-messages/dict-simple.message: - * test/data/valid-messages/dict.message: - Add sample messages containing dicts. - -2003-03-08 Anders Carlsson - - * dbus/dbus-dict.h: Add DBUS_END_DECLS. - -2003-03-07 Anders Carlsson - - * dbus/Makefile.am: - * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), - (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean), - (dbus_dict_set_int32), (dbus_dict_set_uint32), - (dbus_dict_set_double), (dbus_dict_set_string), - (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), - (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), - (dbus_dict_set_string_array), (_dbus_dict_test): - * dbus/dbus-dict.h: - Fix according to comments from Havoc. - -2003-03-06 Michael Meeks - - * configure.in: if we don't have kde-config, disable have_qt. - -2003-03-07 Anders Carlsson - - * dbus/Makefile.am: - Add dbus-dict.[ch] - - * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), - (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains), - (dbus_dict_remove), (dbus_dict_get_value_type), - (dbus_dict_get_keys), (dbus_dict_put_boolean), - (dbus_dict_put_int32), (dbus_dict_put_uint32), - (dbus_dict_put_double), (dbus_dict_put_string), - (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array), - (dbus_dict_put_uint32_array), (dbus_dict_put_double_array), - (dbus_dict_put_string_array), (dbus_dict_get_boolean), - (dbus_dict_get_int32), (dbus_dict_get_uint32), - (dbus_dict_get_double), (dbus_dict_get_string), - (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array), - (dbus_dict_get_uint32_array), (dbus_dict_get_double_array), - (dbus_dict_get_string_array), (_dbus_dict_test): - * dbus/dbus-dict.h: - Add DBusDict implementation - - * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests): - * dbus/dbus-test.h: - Add _dbus_dict_test - -2003-03-04 Havoc Pennington - - * test/data/auth/*: adapt to changes - - * dbus/dbus-auth-script.c (_dbus_auth_script_run): add - USERID_BASE64 and change USERNAME_BASE64 to put in username not - userid - - * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent - more stuff from being in a context name, to make the protocol - simpler to deal with - - * dbus/dbus-errors.c (dbus_error_has_name): new function - (dbus_error_is_set): new function - - * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth - with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1 - - * dbus/dbus-connection.c (dbus_connection_flush): also read - messages during a flush operation - - * dbus/Makefile.am: remove dbus-md5 since it isn't currently used. - -2003-03-05 Anders Carlsson - - * configure.in: Check for gethostbyname on Solaris. - - * dbus/dbus-transport.c: (_dbus_transport_open): - Remove duplicate "tcp" entry. - - * doc/dbus-specification.sgml: - Clarify some things. - -2003-03-05 Anders Carlsson - - * dbus/dbus-auth.c: (send_rejected), (process_test_subdir): - * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir), - (_dbus_keyring_test): - * dbus/dbus-md5.c: (_dbus_md5_compute): - * dbus/dbus-sha.c: (_dbus_sha_compute): - Plug memory leaks. - -2003-03-05 Anders Carlsson - - * README: Add some things. - -2003-03-04 Anders Carlsson - - * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break; - after case DBUS_TYPE_BOOELAN. - -2003-03-02 Havoc Pennington - - * test/break-loader.c (randomly_set_extreme_ints): add test that - sets really huge and small integers - - * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check - that length of boolean array fits in the string, and that - string has room for boolean value in single-bool case. - - * dbus/dbus-message-builder.c (_dbus_message_data_load): add - optional value to "ALIGN" command which is what to fill the - alignment with. - - * test/data/valid-messages/no-padding.message: add regression - test for the message padding problem - -2003-03-02 Havoc Pennington - - * dbus/dbus-message.c (decode_header_data): fix to always init - message_padding, from Benjamin Dauvergne - -2003-03-02 Havoc Pennington - - * configure.in: 0.5 - - * NEWS: Update. - -2003-03-01 Joe Shaw - - * configure.in: Check for "struct cmsgcred" and try to access its - members for BSD-like unices. - - * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into - _dbus_read_credentials_unix_socket(). - (_dbus_read_credentials_unix_socket): Use recvmsg() instead of - read() for reading the credential byte off the unix socket. Use - struct cmsgcred on systems that support it. - -2003-02-27 Alexander Larsson - - * glib/Makefile.am: - * configure.in: - Make gthreads-2.0 dependency optional. Don't build thread test if - its not found. - -2003-02-27 Havoc Pennington - - * dbus/dbus-connection.c - (dbus_connection_send_message_with_reply_and_block): fix doh! - doh! doh! bug that resulted in never removing a reply from the - queue, no wonder we called get_reply_serial so much ;-) - - * dbus/dbus-message.c (struct DBusMessage): cache reply serial - and client serial instead of demarshaling them every time - -2003-02-27 Havoc Pennington - - * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much - more inlined, using dbus-string-private.h, speeds things up - substantially - - * dbus/dbus-string.c (_dbus_string_free): apply align offset - when freeing the string - (_dbus_string_steal_data): fix for align offset - (undo_alignment): new function - -2003-02-26 Havoc Pennington - - All kinds of audit fixes from Owen, plus initial attempt to - handle unaligned memory returned from malloc. - - * dbus/dbus-string.c (_dbus_string_init): clamp max length to - leave room for align_offset and nul byte - (fixup_alignment): function to track an align_offset and - ensure real->str is aligned - (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated, - to allow a nul byte plus align offset - (_dbus_string_lock): fix overflow issue - (_dbus_string_init_const_len): add assertions on sanity of len, - assign allocated to be ALLOCATION_PADDING larger than len - (set_length): fixup the overflow handling - (_dbus_string_get_data_len): fix overflow in assertion - (open_gap): detect overflow in size of gap to be opened - (_dbus_string_lengthen): add overflow check - (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE - (_dbus_string_append): add overflow check - (_dbus_string_append_unichar): overflow - (_dbus_string_delete): fix overflow in assertion - (_dbus_string_copy_len): overflow in assertion - (_dbus_string_replace_len): overflows in assertions - (_dbus_string_find): change to implement in terms of - _dbus_string_find_to - (_dbus_string_find_to): assorted fixage - (_dbus_string_equal_c_str): assert c_str != NULL, - fix logic so the function works - (_dbus_string_ends_with_c_str): fix overflow thingy - (_dbus_string_base64_encode): overflow fix - (_dbus_string_validate_ascii): overflow - (_dbus_string_validate_nul): overflow - -2003-02-26 Havoc Pennington - - * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS - -2003-02-26 Alexander Larsson - - * configure.in: - Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0 - - * dbus/dbus-connection.c: - * dbus/dbus-connection.h: - Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch. - Add dbus_connection_set_wakeup_main_function and use it when queueing - incoming and outgoing messages. - - - * dbus/dbus-dataslot.c: - Threadsafe usage of DBusDataSlotAllocator - - * dbus/dbus-message.c: (dbus_message_get_args_iter): - dbus_new can fail. - - * dbus/dbus-server-unix.c: - Add todo comment - - * glib/dbus-gmain.c: - Implement the new wakeup functions for glib. - - * glib/Makefile.am: - * glib/test-thread-client.c: - * glib/test-thread-server.c: - * glib/test-thread.h: - Initial cut at some thread test code. Not really done yet. - -2003-02-26 Havoc Pennington - - * dbus/dbus-connection.c - (dbus_connection_send_message_with_reply_and_block): fix crash - where we ref'd the outgoing message instead of the returned reply - - * dbus/dbus-transport-unix.c (do_authentication): check read watch - at the end of this function, so if we didn't need to read for - authentication, we reinstall it for receiving messages - - * dbus/dbus-message.c (dbus_message_new_reply): allow replies to - a NULL sender for peer-to-peer case - - * dbus/dbus-transport-unix.c (check_read_watch): handle - !authenticated case correctly - - * glib/dbus-gmain.c: add support for DBusServer - - * dbus/dbus-server.c: add data slot support - - * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check - return values and handle errors - - * dbus/dbus-dataslot.c: factor out the data slot stuff from - DBusConnection - - * Doxyfile.in (INPUT): add glib subdir - - * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename - setup_with_g_main instead of hookup_with_g_main; write docs - -2003-02-24 Anders Carlsson - - * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg): - * dbus/dbus-message-builder.c: (_dbus_message_data_load): - * dbus/dbus-message.c: (dbus_message_append_boolean), - (dbus_message_append_boolean_array), - (dbus_message_get_args_valist), (_dbus_message_test): - * dbus/dbus-message.h: - * doc/dbus-specification.sgml: - Various fixes as pointed out by Havoc. - - * test/data/invalid-messages/bad-boolean-array.message: - * test/data/invalid-messages/bad-boolean.message: - Add invalid boolean value test cases. - -2003-02-24 Anders Carlsson - - * dbus/dbus-internals.c: (_dbus_type_to_string): - * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), - (_dbus_marshal_validate_arg): - * dbus/dbus-message-builder.c: (_dbus_message_data_load): - * dbus/dbus-message.c: (dbus_message_append_args_valist), - (dbus_message_append_boolean), (dbus_message_append_boolean_array), - (dbus_message_get_args_valist), (dbus_message_iter_get_boolean), - (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32), - (dbus_message_iter_get_double), - (dbus_message_iter_get_boolean_array), (message_iter_test): - * dbus/dbus-message.h: - * dbus/dbus-protocol.h: - * doc/dbus-specification.sgml: - * test/data/valid-messages/lots-of-arguments.message: - Add support for boolean and boolean array types. - -2003-02-23 Havoc Pennington - - * dbus/dbus-keyring.c: finish most of this implementation and - simple unit test - - * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make - these barf if the error isn't cleared to NULL - - * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure - (_dbus_create_directory): new function - - * dbus/dbus-errors.c (dbus_set_error): fix warning - - * dbus/dbus-string.c (_dbus_string_hex_encode): new function - (_dbus_string_hex_decode): new function - (test_hex_roundtrip): test code - - * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode - - * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode - - * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use - the save-to-temp/rename trick to atomically write the new file - (_dbus_string_parse_uint): new function - -2003-02-22 Havoc Pennington - - * test/Makefile.am (dist-hook): fix dist for test/data/sha-1 - -2003-02-22 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_iter_get_string_array): - (dbus_message_iter_get_byte_array): Fix up doxygen warnings - - * dbus/dbus-sha.c: add implementation of SHA-1 algorithm - - * dbus/test/data/sha-1: add US government test suite for SHA-1 - -2003-02-21 Anders Carlsson - - * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): - Make string arrays NULL-terminated. - - * dbus/dbus-memory.c: (dbus_free_string_array): - * dbus/dbus-memory.h: - New function for freeing NULL-terminated string arrays. - - * dbus/dbus-message-builder.c: (append_quoted_string), - (_dbus_message_data_load): - Add support for array types. - - * dbus/dbus-message.c: (check_message_handling): - Add more types as test cases. - - * dbus/dbus-sysdeps.c: (_dbus_string_parse_int), - (_dbus_string_parse_double): - Add the start offset to the end offset. - - * test/data/valid-messages/lots-of-arguments.message: - New test message with lots of arguments. - -2003-02-21 Anders Carlsson - - * dbus/dbus-message.c: (dbus_message_append_nil), - (dbus_message_append_int32), (dbus_message_append_uint32), - (dbus_message_append_double), (dbus_message_append_string), - (dbus_message_append_int32_array), - (dbus_message_append_uint32_array), - (dbus_message_append_double_array), - (dbus_message_append_byte_array), - (dbus_message_append_string_array): - Fix all out-of-memory handling in these functions. - -2003-02-21 Anders Carlsson - - * dbus/dbus-message.c: (dbus_message_append_nil): - Fix a silly. - -2003-02-21 Anders Carlsson - - * dbus/dbus-message.c: (dbus_message_append_args_valist), - (dbus_message_append_nil), (dbus_message_append_int32_array), - (dbus_message_append_uint32_array), - (dbus_message_append_double_array), - (dbus_message_append_byte_array), - (dbus_message_append_string_array), (dbus_message_get_args_valist), - (dbus_message_iter_get_int32_array), - (dbus_message_iter_get_uint32_array), - (dbus_message_iter_get_double_array), - (dbus_message_iter_get_byte_array), - (dbus_message_iter_get_string_array): - - * dbus/dbus-message.h: - Add functions for appending and getting arrays. - -2003-02-21 Anders Carlsson - - * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the - element size at least 8 bytes, fixes mempool tests on - 64-bit machines. - -2003-02-20 Alexander Larsson - - * dbus/dbus-transport-unix.c (unix_do_iteration): - Unlock the connection mutex during a blocking select call. - Add todo about how we need a way to wake up the select. - - * dbus/dbus-connection-internal.h: - * dbus/dbus-connection.c: - Add _dbus_connection_lock and _dbus_connection_unlock. - -2003-02-19 Havoc Pennington - - * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in - Doxyfile.in, not Doxyfile - - * dbus/dbus-keyring.c: do some hacking on this - - * dbus/dbus-sysdeps.c (_dbus_delete_file): new - - * dbus/dbus-errors.c (dbus_set_error_const): do not call - dbus_error_init - (dbus_set_error): remove dbus_error_init, check for message == - NULL *before* we sprintf into it, and add @todo about including - system headers in this file - - * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new - - * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add - - * dbus/dbus-sysdeps.c (get_user_info): break this function out to - get various bits of user information based on either username - or user ID - (_dbus_homedir_from_username): new function - -2003-02-19 Anders Carlsson - - * configure.in: - Add check for nonposix getpwnam_r - - * dbus/dbus-mempool.c: (_dbus_mem_pool_new): - Align the pool element size to a sizeof (void *) boundary. - - * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket), - (_dbus_listen_unix_socket), (_dbus_credentials_from_username): - General Solaris fixes. - - * test/data/valid-messages/simplest-manual.message: - Explicitly state that we want little-endian packing. - -2003-02-19 Mikael Hallendal - - * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. - - * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket): - Added to create a transport connecting using a tcp/ip socket. - - * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect - to a tcp socket at given host and port. - (_dbus_listen_tcp_socket): added to listen on tcp socket for given - hostname and port. - - * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. - - * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): - Added to create a server listening on a TCP/IP socket. - -2003-02-19 Havoc Pennington - - Throughout: mop up all the Doxygen warnings and undocumented - stuff. - - * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want - to search any paths. - - * dbus/dbus-threads.c: move global mutex initializers to - dbus-internals.h, multiple prototypes was confusing doxygen - besides being kind of ugly - - * Doxyfile (PREDEFINED): have Doxygen define - DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from - docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS - (do not abuse the feature! it's for stuff like the autogenerated - macros in dbus-md5.c, not just for things you don't feel like - documenting...) - -2003-02-18 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_zero): new function - - * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch, - wrap it in some dbus-friendly API - - * dbus/dbus-types.h: add 16-bit types - -2003-02-18 Joe Shaw - - * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get - credentials from our currently running process. - (get_word): Fix a buglet where we were copying the entire length - instead of relative to our position. - - * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the - keys on the stack... it's 640k of data. - - * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always - read the credentials byte off the socket, even if we don't have - SO_PEERCRED. - (_dbus_poll): Implement poll() using select() for systems which - don't have it. - - * glib/test-dbus-glib.c (main): Print out an error if no - parameters are given. - - * test/data/auth/fallback.auth-script: Added. Tests that a client - can fallback to a secondary auth mechanism if the first fails. - -2003-02-18 Havoc Pennington - - * AUTHORS: add Alex - -2003-02-17 Havoc Pennington - - * doc/dbus-specification.sgml: lots of cosmetic - cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS - env variable to DBUS_BUS_ADDRESS, s/client/application/, - s/server/bus/ (except in authentication section). Add a section - "Message Bus Message Routing" - -2003-02-17 Anders Carlsson - - Release 0.4 - - * NEWS: Update - -2003-02-17 Anders Carlsson - - * doc/dbus-specification.sgml: - Specification updates. - -2003-02-17 Anders Carlsson - - * bus/activation.c: (bus_activation_init), (child_setup), - (bus_activation_activate_service): - * bus/activation.h: - * bus/main.c: (main): - Set DBUS_ADDRESS environment variable. - - * dbus/dbus-errors.c: (dbus_set_error): - Don't use va_copy since that's a C99 feature. - - * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec), - (_dbus_spawn_async): - * dbus/dbus-sysdeps.h: - Add child_setup_func to _dbus_spawn_async. - - * doc/dbus-specification.sgml: - Update specification. - - * test/spawn-test.c: (setup_func), (main): - Fix test. - -2003-02-17 Alexander Larsson - - * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked): - Added todo. - -2003-02-17 Anders Carlsson - - * doc/.cvsignore: - * doc/Makefile.am: - * doc/dbus-test-plan.sgml: - Add test plan document. - - * test/Makefile.am: - Fix distcheck. - -2003-02-17 Anders Carlsson - - * dbus/dbus-message.c: (decode_header_data), - (_dbus_message_loader_return_buffer): - Set the header padding amount when loading a message. - -2003-02-16 Anders Carlsson - - * bus/dispatch.c: (send_one_message): - Only send broadcast messages to registered connections. - - * dbus/dbus-message.c: (dbus_message_name_is): - * dbus/dbus-message.h: - New convenience function. - - * dbus/dbus-transport-debug.c: (do_reading): - Only dispatch one message per run. - - * test/Makefile.am: - * test/bus-test.c: (new_connection_callback), (die), - (test_hello_client1_handler), (test_hello_client2_handler), - (test_hello_replies), (main): - - * test/bus-test-loop.[ch]: - Add these. - -2003-02-16 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix - backward conditional - -2003-02-16 Alexander Larsson - - * dbus/dbus-connection.c: - Implement sent_message_with_reply. (with_reply_and block is still - busted). - Made dispatch_message not lose message if OOM. - - * dbus/dbus-errors.h: - Add NoReply error (for reply timeouts). - -2003-02-16 Alexander Larsson - - * dbus/dbus-hash.c (_dbus_hash_table_unref): - Actually free keys and values when destroying hashtable. - -2003-02-16 Anders Carlsson - - * dbus/dbus-auth.c: (client_try_next_mechanism): - Plug a leak. - - * dbus/dbus-threads.c: (dbus_condvar_wait_timeout): - Return TRUE if there's no thread implementation around. - - * glib/dbus-gmain.c: (free_source), - (dbus_connection_hookup_with_g_main): - Make sure to remove the GSource when the connection is finalized. - -2003-02-16 Anders Carlsson - - * bus/dispatch.c: (bus_dispatch_message_handler): - * dbus/dbus-errors.h: - Return an error if someone tries to send a message to a service - that doesn't exist. - -2003-02-16 Anders Carlsson - - * bus/activation.c: (load_directory), (bus_activation_init), - (bus_activation_activate_service): - * bus/activation.h: - * bus/driver.c: - (bus_driver_handle_activate_service), (bus_driver_handle_message): - More work on the activation handling. - - * dbus/dbus-errors.h: - Add some error messages - - * dbus/dbus-message.c: (dbus_message_new_error_reply): - * dbus/dbus-message.h: - New function that creates an error message. - - * dbus/dbus-protocol.h: - Add ACTIVATE_SERVER message. - - * dbus/dbus-server-unix.c: (unix_handle_watch), - (_dbus_server_new_for_domain_socket): - Call _dbus_fd_set_close_on_exec. - - * dbus/dbus-sysdeps.c: (make_pipe), (do_exec), - (_dbus_spawn_async), (_dbus_disable_sigpipe), - (_dbus_fd_set_close_on_exec): - * dbus/dbus-sysdeps.h: - Add _dbus_fd_set_close_on exec function. Also add function that checks - that all open fds are set to close-on-exec and warns otherwise. - - * dbus/dbus-transport-unix.c: - (_dbus_transport_new_for_domain_socket): - Call _dbus_fd_set_close_on_exec. - -2003-02-16 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe): - allow people to avoid setting SIGPIPE to SIG_IGN - (_dbus_connection_new_for_transport): disable SIGPIPE unless - we've been asked not to - -2003-02-15 Anders Carlsson - - * dbus/dbus-list.c: (_dbus_list_append_link), - (_dbus_list_prepend_link): - * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0), - (dbus_realloc): - Warning fixes. - -2003-02-15 Anders Carlsson - - * bus/Makefile.am: - * bus/activation.c: (bus_activation_entry_free), - (add_desktop_file_entry), (load_directory), (bus_activation_init): - * bus/activation.h: - * bus/main.c: (main): - Add simple activation support, doesn't work yet though. - -2003-02-15 Zack Rusin - - * qt/dbus-qthread.cpp: small casting fix - -2003-02-15 Anders Carlsson - - * dbus/dbus-errors.c: (dbus_set_error): - * dbus/dbus-errors.h: - Add a few errors and make dbus_set_error void. - - * dbus/dbus-sysdeps.c: - (_dbus_errno_to_string), (close_and_invalidate), (make_pipe), - (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async): - * dbus/dbus-sysdeps.h: - Add _dbus_spawn_async. - - * test/spawn-test.c: (main): - Test for _dbus_spawn_async. - -2003-02-15 Anders Carlsson - - * dbus/dbus-internals.h: - Fix build without tests. - - * dbus/dbus-list.c: (alloc_link): - Fix a segfault when a malloc fails. - - * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc), - (dbus_malloc0), (dbus_realloc): - Add support for malloc debugging. - -2003-02-15 Alexander Larsson - - * dbus/dbus-threads.c: - * dbus/dbus-threads.h: - Add condvars. Remove static mutext from API. - Implement static mutexes by initializing them from threads_init. - - * glib/dbus-gthread.c: - * qt/dbus-qthread.cpp: - Update with the thread api changes. - - - * dbus/dbus-list.c: - * dbus/dbus-list.h: - Turn StaticMutex into normal mutex + init function. - Export new functions _dbus_list_alloc_link, _dbus_list_free_link, - _dbus_list_append_link, _dbus_list_prepend_link - - - * dbus/dbus-sysdeps.c: - * dbus/dbus-sysdeps.h: - New type dbus_atomic_t, and new functions _dbus_atomic_inc, - _dbus_atomic_dec. Only slow fallback implementation at the moment. - - * dbus/dbus-protocol.h: - Add DBUS_MESSAGE_LOCAL_DISCONNECT define - - * dbus/dbus-message.c: - Make ref/unref atomic. - Fix some docs. - - * dbus/dbus-connection-internal.h: - * dbus/dbus-connection.c: - * dbus/dbus-connection.h: - Make threadsafe. - Change _peek to _borrow,_return & _steal_borrowed. - Change disconnect callback to event. - Make dbus_connection_dispatch_messages reentrant. - - * dbus/dbus-transport.c: - Don't ref the connection on calls to the transport - implementation. - - * dbus/dbus-message-handler.c: - Make threadsafe. - - * glib/dbus-gmain.c: - Don't use peek_message anymore - - * test/Makefile.am: - * test/debug-thread.c: - * test/debug-thread.h: - Simple thread implementation that asserts() on deadlocks in - single-threaded code. - - * test/bus-test.c: - (main) Call debug_threads_init. - - * test/watch.c: - Use disconnect message instead of disconnect callback. - - * bus/connection.c: - * bus/connection.h: - Don't call dbus_connection_set_disconnect_function. Instead export - bus_connection_disconnect. - - * bus/dispatch.c: - Call bus_connection_disconnect when we get a disconnected message. - -2003-02-15 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_new): fool around with the - docs - -2003-02-14 Havoc Pennington - - * dbus/dbus-mempool.c: fail if the debug functions so indicate - - * dbus/dbus-memory.c: fail if the debug functions indicate we - should - - * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter) - (_dbus_decrement_fail_alloc_counter): debug functions to - simulate memory allocation failures - -2003-02-14 Havoc Pennington - - * dbus/dbus-errors.h (struct DBusError): add a word of padding - to DBusError - -2003-02-13 Anders Carlsson - - * bus/driver.c: (bus_driver_handle_hello): - * bus/driver.h: - * bus/services.c: (bus_service_lookup): - Reorder message sending so we get a more sane order. - - * test/bus-test.c: (message_handler): - Fix tyop. - -2003-02-13 Anders Carlsson - - * bus/driver.c: (bus_driver_send_service_deleted), - (bus_driver_send_service_created), (bus_driver_send_service_lost), - (bus_driver_send_service_acquired), (bus_driver_handle_hello), - (bus_driver_send_welcome_message), - (bus_driver_handle_list_services), - (bus_driver_handle_acquire_service), - (bus_driver_handle_service_exists): - * dbus/dbus-bus.c: (dbus_bus_register_client), - (dbus_bus_acquire_service), (dbus_bus_service_exists): - * dbus/dbus-errors.c: (dbus_result_to_string): - * dbus/dbus-errors.h: - * dbus/dbus-message.c: (dbus_message_append_args), - (dbus_message_append_args_valist), (dbus_message_get_args), - (dbus_message_get_args_valist), (dbus_message_get_args_iter), - (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string), - (dbus_message_iter_get_byte_array), - (dbus_message_iter_get_string_array), (message_iter_test), - (check_message_handling), (_dbus_message_test): - * dbus/dbus-message.h: - * test/bus-test.c: (main): - Change fields to arguments in messages, so that they won't be - confused with header fields. - - * glib/test-dbus-glib.c: (main): - Remove append_fields from hello message. - -2003-02-13 Anders Carlsson - - * dbus/dbus-errors.c: - * dbus/dbus-message.c: - * dbus/dbus-string.c: - Documentation fixes. - -2003-02-13 Anders Carlsson - - * glib/dbus-gmain.c: (timeout_handler), (add_timeout), - (remove_timeout): - Implement support for timeouts in dbus-glib. - -2003-02-13 Anders Carlsson - - * dbus/dbus-message-builder.c: (_dbus_message_data_load): - * dbus/dbus-message.c: (process_test_subdir): - * test/break-loader.c: (find_breaks_based_on): - Plug some memory leaks. - -2003-02-13 Richard Hult - - * bus/main.c: Fix build. - - * dbus/dbus-errors.h: - * dbus/dbus-errors.c: Fix copyright for Anders. - -2003-02-13 Anders Carlsson - - * bus/Makefile.am: - Add utils.[ch] - - * bus/connection.c: (bus_connection_foreach): - Fix a warning. - - * bus/desktop-file.c: (grow_lines_in_section), (grow_sections), - (unescape_string), (new_section), (parse_section_start), - (parse_key_value), (report_error), (bus_desktop_file_load), - (bus_desktop_file_get_string): - * bus/desktop-file.h: - Use DBusError for error reporting. - - * bus/dispatch.c: (send_one_message), - (bus_dispatch_message_handler): - * bus/driver.c: (bus_driver_send_service_deleted), - (bus_driver_send_service_created), (bus_driver_send_service_lost), - (bus_driver_send_service_acquired), (bus_driver_handle_hello), - (bus_driver_send_welcome_message), - (bus_driver_handle_list_services), - (bus_driver_handle_acquire_service), - (bus_driver_handle_service_exists): - * bus/loop.c: (bus_loop_run): - * bus/main.c: - Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM. - - * bus/utils.c: (bus_wait_for_memory): - * bus/utils.h: - New files with general utility functions. - - * dbus/dbus-internals.h: - Remove _DBUS_HANDLE_OOM. - -2003-02-13 Anders Carlsson - - * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init), - (dbus_error_free), (dbus_set_error_const), (dbus_set_error): - * dbus/dbus-errors.h: - Add DBusError structure. - -2003-02-13 Anders Carlsson - - * test/data/valid-messages/standard-acquire-service.message: - * test/data/valid-messages/standard-hello.message: - * test/data/valid-messages/standard-list-services.message: - * test/data/valid-messages/standard-service-exists.message: - Add some standard messages. - -2003-02-13 Anders Carlsson - - * bus/driver.c: (bus_driver_send_welcome_message), - (bus_driver_handle_list_services), - (bus_driver_handle_acquire_service), - (bus_driver_handle_service_exists), (bus_driver_handle_message): - Update for API changes in libdbus. - - * dbus/dbus-message.c: (dbus_message_new_reply): - * dbus/dbus-message.h: - Remove the name argument. The spec states that replies shouldn't - have a name. - -2003-02-13 Anders Carlsson - - * bus/desktop-file.c: (parse_section_start), (parse_key_value), - (report_error), (bus_desktop_file_load), (lookup_section), - (lookup_line), (bus_desktop_file_get_raw), - (bus_desktop_file_get_string): - * bus/desktop-file.h: - Some fixes, and new functions for getting a key value from a section. - -2003-02-13 Havoc Pennington - - * test/data/auth/fail-after-n-attempts.auth-script: new test - - * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we - reject the client. - -2003-02-13 Havoc Pennington - - * dbus/dbus-auth.c (handle_server_data_external_mech): args to - dbus_credentials_match were backward - - * dbus/dbus-auth-script.c (_dbus_auth_script_run): support - NO_CREDENTIALS and ROOT_CREDENTIALS - - * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine - into here. Never process more commands after we've reached an - end state; store further data as unused bytes. - - * test/data/auth/*: add more auth tests - - * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT - command to match exact string and EXPECT_UNUSED to match unused - bytes - - * test/Makefile.am (dist-hook): fix to dist all the test stuff - -2003-02-12 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip - \r off of popped lines - - * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth - scripts - - * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a - SEND, append \r\n - -2003-02-12 Havoc Pennington - - * dbus/Makefile.am: remove break-loader from the build, since it - moved. - - * configure.in: add --enable-gcov to turn on coverage profiling - flags and disable optimization - -2003-02-10 Havoc Pennington - - * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync - initial cut at test framework for DBusAuth from laptop. - Doesn't quite work yet but it compiles and I need to get - it off the 266mhz laptop. ;-) - - * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport): - fix a memleak in error case - -2003-02-12 Anders Carlsson - - * bus/Makefile.am: - * bus/desktop-file.c: - * bus/desktop-file.h: - Add a desktop file parser. - -2003-02-11 Zack Rusin - - * qt/message.[h|cpp]: sample implementation - of the KDE wrapper for DBusMessage - -2003-02-09 Zack Rusin - - * test/bus-test.c: make_it_compile - * doc/dbus-specification.sgml: minimal semantic fix - -2003-02-06 Anders Carlsson - - Release 0.3 - - * NEWS: Update - -2003-02-06 Anders Carlsson - - * dbus/Makefile.am: - * dbus/dbus-break-loader.c: - * test/Makefile.am: - * test/break-loader.c: - Move dbus-break-loader to test/ and rename it to break-loader. - -2003-02-02 Havoc Pennington - - * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files - for code to manage cookies in your home directory - - * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function - - * dbus/dbus-auth.c (get_state): impose a maximum number of tries - to authenticate, then disconnect the client. - -2003-02-03 Alexander Larsson - - * dbus/dbus-message.c (dbus_message_append_fields): - Correct docs. - -2003-02-02 Anders Carlsson - - * doc/dbus-specification.sgml: - Update address format section. - -2003-02-02 Anders Carlsson - - * test/Makefile.am: - * test/bus-test.c: (get_time), (add_timeout), (remove_timeout), - (message_handler), (new_connection_callback), (loop_quit), - (loop_run), (main): - Add bus test. - -2003-02-02 Anders Carlsson - - * bus/driver.c: (bus_driver_handle_service_exists): - Simplify the code a bit. - - * dbus/dbus-bus.c: (dbus_bus_service_exists): - Fix a silly. - -2003-02-02 Anders Carlsson - - * bus/Makefile.am: - Add libdbus-daemon.la and link to it. - -2003-02-01 James Willcox - - * bus/driver.c: (bus_driver_handle_own_service): - Actually include the service reply code in the message. - -2003-02-02 Anders Carlsson - - * bus/driver.c: (bus_driver_handle_service_exists): - Don't unref the incoming message. - -2003-02-02 Anders Carlsson - - * dbus/dbus.h: Add dbus-address.h and dbus-bus.h - -2003-02-02 Anders Carlsson - - * dbus/dbus-server.c: (dbus_server_listen): - * dbus/dbus-transport.c: (_dbus_transport_open): - ifdef out the calls to the debug transport and server. - -2003-02-02 Alexander Larsson - - * dbus/dbus-watch.c (dbus_watch_get_flags): - Add note in the docs that ERROR or HANGUP won't be returned - and are assumed always on. - - * glib/dbus-gmain.c (add_watch): - Always add IO_ERR | IO_HUP - - * dbus/dbus-message.h: - Add semicolon after dbus_message_iter_get_string_array(). - Makes qt code build again - -2003-02-01 Anders Carlsson - - * bus/driver.c: (create_unique_client_name), - (bus_driver_handle_hello): - Don't take a name, just use a numeric id to identify - each client. - - * dbus/Makefile.am: - * dbus/dbus-bus.c: (dbus_bus_register_client), - (dbus_bus_acquire_service), (dbus_bus_service_exists): - * dbus/dbus-bus.h: - Add new convenience functions for communicating with the bus. - - * dbus/dbus-message.h: - - * dbus/dbus-protocol.h: - Fix a typo. - -2003-02-01 Alexander Larsson - - * dbus/dbus-message.c (dbus_message_append_fields): - Add some more doc comments. - -2003-02-01 Havoc Pennington - - * dbus/dbus-break-loader.c (randomly_modify_length): change - a 4-byte value in the message as if it were a length - - * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set - execute bit on saved files - -2003-02-01 Havoc Pennington - - * dbus/dbus-break-loader.c (main): new program to find messages - that break the loader. - - * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function - * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function - - * dbus/dbus-string.c (_dbus_string_set_byte): new - -2003-01-31 Havoc Pennington - - * dbus/dbus-message.c: refactor the test code to be more general, - in preparation for writing a "randomly permute test cases to - try to break the loader" program. - -2003-01-31 Havoc Pennington - - * doc/dbus-specification.sgml: work on the specification - - * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check - the protocol version of the message. - - * dbus/dbus-protocol.h: drop special _REPLY names, the spec - no longer specifies that. - (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not - 1/2/3/4) - - * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing - "break" for DBUS_TYPE_NIL, remove @todo - -2003-01-31 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename - just set_is_error/get_is_error as this is a commonly-used - function, and write docs. - -2003-01-31 Anders Carlsson - - * dbus/dbus-address.c: (dbus_address_entry_free): - Free key and value lists. - - * dbus/dbus-internals.c: (_dbus_type_to_string): - Add the types we didn't have. - - * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), - (_dbus_marshal_validate_arg): - Add NIL types. - - * dbus/dbus-message.c: (dbus_message_set_sender): - Remove todo about being able to set sender to NULL. - - (dbus_message_set_is_error_reply), - (dbus_message_get_is_error_reply): - * dbus/dbus-message.h: - New functions. - - * dbus/dbus-protocol.h: - Add error reply flag. - - * test/data/valid-messages/opposite-endian.message: - Add NIL type to test. - -2003-01-31 Havoc Pennington - - * doc/dbus-specification.sgml: fully specify the header. Add - flags and major protocol version, and change header/body len to - unsigned. - - * dbus/dbus-message-builder.c (append_saved_length): append length - as uint32 - - * dbus/dbus-message.c (dbus_message_create_header): change header - length and body length to unsigned. Add the new fields from the - spec - (_dbus_message_loader_return_buffer): unsigned header/body len - -2003-01-30 Havoc Pennington - - * dbus/dbus-auth.c: rework to use only REJECTED, no - MECHANISMS - - * doc/dbus-sasl-profile.txt: drop MECHANISMS and just - use REJECTED, suggested by Mark McLoughlin - -2003-01-30 Havoc Pennington - - * dbus/dbus-server.c (dbus_server_listen): @todo about how we need - a better way to report errors here. e.g. "unix address lacks - path" or something. also "no such file" when the path doesn't - exist, etc. - - * dbus/dbus-address.c (dbus_address_entries_free): add @todo about - leaking list nodes - (dbus_parse_address): add @todo about documenting address format, - and allowing , and ; to be escaped - -2003-01-30 Anders Carlsson - - * dbus/Makefile.am: - Add dbus-address.[ch] - - * dbus/dbus-address.c: (dbus_address_entry_free), - (dbus_address_entries_free), (create_entry), - (dbus_address_entry_get_method), (dbus_address_entry_get_value), - (dbus_parse_address), (_dbus_address_test): - * dbus/dbus-address.h: - New files for dealing with address parsing. - - * dbus/dbus-connection.c: - Document timeout functions. - - * dbus/dbus-message.c: - Document dbus_message_new_from_message. - - * dbus/dbus-server-debug.c: - Document. - - * dbus/dbus-server.c: (dbus_server_listen): - Parse address and use correct server implementation. - - * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test): - * dbus/dbus-string.h: - New function with test. - - * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests): - * dbus/dbus-test.h: - Add address tests. - - * dbus/dbus-transport-debug.c: - Document. - - * dbus/dbus-transport.c: (_dbus_transport_open): - Parse address and use correct transport implementation. - -2003-01-30 Havoc Pennington - - * dbus/dbus-message.c: use message->byte_order instead of - DBUS_COMPILER_BYTE_ORDER throughout. - (dbus_message_create_header): pad header to align the - start of the body of the message to 8-byte boundary - - * dbus/dbus-marshal.h: make all the demarshalers take const - DBusString arguments. - - * dbus/dbus-message.c (_dbus_message_loader_return_buffer): - validate message args here, so we don't have to do slow validation - later, and so we catch bad messages as they are incoming. Also add - better checks on header_len and body_len. Also fill in - message->byte_order - - * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not - implemented properly) - (_dbus_string_validate_nul): new function to check all-nul - - * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename - get_arg_end_pos and remove all validation - (_dbus_marshal_validate_arg): actually do validation here. - -2003-01-29 Havoc Pennington - - * dbus/dbus-message.c (check_message_handling): fix assertion - failure on set_client_serial - -2003-01-28 Havoc Pennington - - * dbus/dbus-server-debug.c: Add doc section comments - - * dbus/dbus-transport-debug.c: add doc section comments - -2003-01-28 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in - the reverse order from how I had it - (_dbus_string_base64_encode): reverse encoding order. I was - basically byteswapping everything during encoding. - -2003-01-28 Anders Carlsson - - * dbus/dbus-connection-internal.h: - * dbus/dbus-connection.c: (_dbus_connection_add_timeout), - (_dbus_connection_remove_timeout): - Add functions for adding and removing timeouts. - - * dbus/dbus-message.c: (dbus_message_new_from_message): - Add new function that takes a message and creates an exact - copy of it, but with the refcount set to 1. - (check_message_handling): - Fix build error. - - * dbus/dbus-server-protected.h: - * dbus/dbus-server.c: (_dbus_server_init_base), - (_dbus_server_finalize_base), (_dbus_server_add_timeout), - (dbus_server_set_timeout_functions): - (_dbus_server_remove_timeout): - New functions so that a server can add and remove timeouts. - - (dbus_server_listen): - Add commented out call to dbus_server_debug_new. - - * dbus/dbus-timeout.c: (_dbus_timeout_new): - Actually set the handler, doh. - - * dbus/dbus-transport.c: (_dbus_transport_open): - Add commented out call to dbus_transport_debug_client_new. - - * dbus/Makefile.am: - Add dbus-transport-debug.[ch] and dbus-server-debug.[ch] - -2003-01-28 Havoc Pennington - - * dbus/dbus-message.c (check_message_handling): function to check - on the loaded message, iterates over it etc. - -2003-01-28 Havoc Pennington - - * test/Makefile.am (dist-hook): fix make distdir - - * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check - -2003-01-27 Havoc Pennington - - * dbus/dbus-mempool.c (time_for_size): replace printf with - _dbus_verbose - - * dbus/dbus-message-builder.c (_dbus_message_data_load): allow - empty lines; fix the SAVE_LENGTH stuff to be - START_LENGTH/END_LENGTH so it actually works; couple other - bugfixes - - * test/Makefile.am (dist-hook): add dist-hook for .message files - - * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy - can be constant or locked. - (_dbus_string_free): allow freeing a const string as - documented/intended - - * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility - - * dbus/dbus-test-main.c (main): take an argument which is the - directory containing test data - - * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir - argument to this and load all the messages in test/data/ - checking that they can be loaded or not loaded as appropriate. - -2003-01-27 Anders Carlsson - - * bus/dispatch.c: (bus_dispatch_message_handler): - Dispatch messages sent to services. - - * bus/driver.c: (bus_driver_send_service_deleted), - (bus_driver_send_service_created), (bus_driver_send_service_lost), - (bus_driver_send_service_acquired): - Add helper functions for sending service related messages. - - (bus_driver_send_welcome_message): - Send HELLO_REPLY instead of WELCOME. - - (bus_driver_handle_list_services): - Send LIST_SERVICES_REPLY instead of SERVICES. - - (bus_driver_handle_own_service), - (bus_driver_handle_service_exists): - New message handlers. - - (bus_driver_handle_message): - Invoke new message handlers. - - (bus_driver_remove_connection): - Don't remove any services here since that's done automatically - by bus_service_remove_owner now. - - * bus/driver.h: - New function signatures. - - * bus/services.c: (bus_service_add_owner): - Send ServiceAcquired message if we're the only primary owner. - - (bus_service_remove_owner): - Send ServiceAcquired/ServiceLost messages. - - (bus_service_set_prohibit_replacement), - (bus_service_get_prohibit_replacement): - Functions for setting prohibit replacement. - - (bus_service_has_owner): - New function that checks if a connection is in the owner queue of - a certain service. - - * bus/services.h: - Add new function signatures. - - * dbus/dbus-list.c: (_dbus_list_test): - Add tests for _dbus_list_remove_last and traversing the list backwards. - - * dbus/dbus-list.h: - Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't - go any further, so return NULL then. - - * dbus/dbus-protocol.h: - Add new messages, service flags and service replies. - -2003-01-26 Havoc Pennington - - * dbus/dbus-message-builder.c: implement, completely untested. - - * test/data/*: add data to be used in testing. - ".message" files are our simple loadable text format. - ".message-raw" will be binary dumps of messages. - - * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new - -2003-01-26 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function - - * dbus/dbus-errors.c (dbus_result_to_string): add - file errors - - * dbus/dbus-message-builder.c: new file, will contain code to load - up messages from files. Not implemented yet. - -2003-01-26 Havoc Pennington - - * dbus/dbus-message.c (dbus_message_set_sender): support deleting - the sender by setting to NULL - -2003-01-26 Havoc Pennington - - The unit tests pass, but otherwise untested. If it breaks, the - tests should have been better. ;-) - - * bus/driver.c (bus_driver_handle_hello): return if we disconnect - the connection. - - * dbus/dbus-message.c: redo everything so we maintain - message->header as the only copy of the various fields. - This avoids the possibility of out-of-memory in some cases, - for example dbus_message_lock() can't run out of memory anymore, - and avoids extra copying. Figured I may as well go ahead and do - this since it was busted for dbus_message_lock to not return - failure on OOM, and dbus_message_write_header was totally - unchecked for OOM. Also fixed some random other bugs. - - * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify - that strings are nul-terminated. Also, end_pos can be equal - to string length just not greater than, I think. - (_dbus_marshal_set_int32): new function - (_dbus_marshal_set_uint32): new function - (_dbus_marshal_set_string): new function - - * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix - a warning, init timeout_list to NULL - (dbus_connection_send_message): don't use uninitialized variable - "serial" - - * dbus/dbus-string.c (_dbus_string_replace_len): new function - -2003-01-26 Anders Carlsson - - * bus/driver.c: (bus_driver_handle_hello), - (bus_driver_send_welcome_message): - Plug leaks - -2003-01-26 Anders Carlsson - - * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref): - * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), - (dbus_connection_unref): - * dbus/dbus-marshal.c: (_dbus_marshal_test): - * dbus/dbus-message.c: (dbus_message_unref), - Plug memory leaks. - - (dbus_message_get_fields): - Remove debugging printout. - - (_dbus_message_loader_return_buffer): - Don't store the header string. - - (_dbus_message_test): - Plug leaks. - -2003-01-26 Richard Hult - - * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of - the file descriptor list, since it can change under us. - -2003-01-25 Anders Carlsson - - * glib/dbus-gmain.c: (dbus_connection_prepare), - (dbus_connection_check), (dbus_connection_dispatch), (add_watch), - (remove_watch), (dbus_connection_hookup_with_g_main): - Rewrite the glib handling to use its own GSource instead of a - GIOChannel so we can catch messages put in the queue while waiting - for a reply. - -2003-01-25 Anders Carlsson - - * bus/Makefile.am: - * bus/connection.c: (connection_disconnect_handler), - (connection_watch_callback), (bus_connection_setup): - * bus/dispatch.c: (send_one_message), - (bus_dispatch_broadcast_message), (bus_dispatch_message_handler), - (bus_dispatch_add_connection), (bus_dispatch_remove_connection): - * bus/dispatch.h: - * bus/driver.c: (bus_driver_send_service_deleted), - (bus_driver_send_service_created), (bus_driver_handle_hello), - (bus_driver_send_welcome_message), - (bus_driver_handle_list_services), (bus_driver_remove_connection), - (bus_driver_handle_message): - * bus/driver.h: - Refactor code, put the message dispatching in its own file. Use - _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client - is disconnected. - -2003-01-25 Anders Carlsson - - * dbus/dbus-internals.h: - Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently. - - * dbus/dbus-message.c: (dbus_message_get_sender): - * dbus/dbus-message.h: - Implement dbus_message_get_sender. - - * dbus/dbus-protocol.h: - Add message and service defines. - -2003-01-25 Anders Carlsson - - * dbus/dbus-connection.c: (dbus_connection_send_message): - * dbus/dbus-message-internal.h: - * dbus/dbus-message.c: (_dbus_message_get_client_serial), - (dbus_message_write_header): - Remove _dbus_messag_unlock and don't set the client serial on a - message if one already exists. - -2003-01-24 Havoc Pennington - - * dbus/dbus-list.c (alloc_link): put a thread lock on the global - list_pool - - * bus/driver.c (bus_driver_handle_list_services): fix a leak - on OOM - -2003-01-25 Anders Carlsson - - * dbus/dbus-list.c: (alloc_link), (free_link): - Use a memory pool for the links. - -2003-01-25 Anders Carlsson - - * bus/connection.c: (bus_connection_foreach): - * bus/connection.h: - Add new bus_connection_foreach function. - - * bus/driver.c: (send_one_message), (bus_driver_broadcast_message): - Add function that broadcasts a message to all clients. - - (bus_driver_send_service_created), (bus_driver_handle_hello), - (bus_driver_send_welcome_message), - (bus_driver_handle_list_services), (bus_driver_message_handler): - Implement functions that take care of listing services, and notifying - clients when new services are created. - - * bus/services.c: (bus_services_list): - * bus/services.h: - Add new function that returns an array of strings with the currently - registered services. - - * glib/dbus-glib.h: - * glib/dbus-gmain.c: - Update copyright year. - -2003-01-25 Anders Carlsson - - * dbus/dbus-connection.c: (dbus_connection_send_message): - Unlock the message in case it was sent earlier. - - (dbus_connection_send_message_with_reply_and_block): - Remove the reply message from the list. - - * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): - Set array_len and new_pos correctly. - - (_dbus_marshal_test): - Remove debug output. - - * dbus/dbus-message-internal.h: - * dbus/dbus-message.c: (_dbus_message_get_reply_serial): - New function that returns the reply serial. - - (_dbus_message_unlock): - New function that unlocks a message and resets its header. - - (dbus_message_append_string_array), - (dbus_message_get_fields_valist), - (dbus_message_iter_get_field_type), - (dbus_message_iter_get_string_array), - (dbus_message_get_fields), - (dbus_message_append_fields_valist): - Handle string arrays. - - (dbus_message_set_sender): - Make this function public since the bus daemon needs it. - - (decode_header_data): - Set the reply serial to -1 initially. - - * dbus/dbus-message.h: - Add dbus_message_set_sender. - -2003-01-24 Havoc Pennington - - * doc/dbus-specification.sgml: add some stuff - -2003-01-22 Havoc Pennington - - * doc/dbus-specification.sgml: Start to document the protocol. - -2003-01-22 Havoc Pennington - - * dbus/dbus-connection.c - (dbus_connection_send_message_with_reply_and_block): add some @todo - - * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak - -2003-01-21 Havoc Pennington - - (patch untested because can't compile) - - * bus/driver.c (create_unique_client_name): make this function - never recycle client names. Also, caller should initialize - the DBusString. - - * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function - -2003-01-21 Anders Carlsson - - * dbus/dbus-marshal.c: (_dbus_marshal_double), - (_dbus_marshal_int32), (_dbus_marshal_uint32), - (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array), - (_dbus_marshal_double_array), (_dbus_marshal_string_array), - (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), - (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), - (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test): - * dbus/dbus-marshal.h: - * dbus/dbus-protocol.h: - Add support for marshalling and demarshalling integer, double - and string arrays. - -2003-01-21 Anders Carlsson - - * bus/Makefile.am: - Add driver.[ch] - - * bus/connection.c: (connection_disconnect_handler): - Remove the connection from the bus driver's list. - - (connection_watch_callback): Dispatch messages. - - (free_connection_data): Free connection name. - - (bus_connection_setup): Add connection to the bus driver's list. - (bus_connection_remove_owned_service): - (bus_connection_set_name), (bus_connection_get_name): - Add functions for setting and getting the connection's name. - - * bus/connection.h: - Add function headers. - - * bus/driver.c: (create_unique_client_name), - (bus_driver_handle_hello_message), - (bus_driver_send_welcome_message), (bus_driver_message_handler), - (bus_driver_add_connection), (bus_driver_remove_connection): - * bus/driver.h: - * bus/main.c: - * bus/services.c: (bus_service_free): - * bus/services.h: - New file that handles communication and registreation with the bus - itself. - -2003-01-21 Anders Carlsson - - * dbus/dbus-connection.c: (dbus_connection_send_message): - Add a new client_serial parameter. - - (dbus_connection_send_message_with_reply): - Remove a @todo since we've implemented the blocking function. - - (dbus_connection_send_message_with_reply_and_block): - New function that sends a message and waits for a reply and - then returns the reply. - - * dbus/dbus-connection.h: - Add new functions. - - * dbus/dbus-errors.c: (dbus_result_to_string): - * dbus/dbus-errors.h: - Add new DBUS_RESULT. - - * dbus/dbus-message-internal.h: - * dbus/dbus-message.c: (_dbus_message_get_reply_serial), - (_dbus_message_set_sender), (dbus_message_write_header), - (dbus_message_new_reply), (decode_header_data), - (_dbus_message_loader_return_buffer), (_dbus_message_test): - * dbus/dbus-message.h: - Add new functions that set the reply serial and sender. - Also marshal and demarshal them correctly and add test. - - * dbus/dbus-protocol.h: - Add new DBUS_MESSAGE_TYPE_SENDER. - - * glib/dbus-glib.h: - * glib/dbus-gmain.c: (watch_callback), (free_callback_data), - (add_watch), (remove_watch), (add_timeout), (remove_timeout), - (dbus_connection_hookup_with_g_main): - * glib/test-dbus-glib.c: (main): - Rewrite to use GIOChannel and remove the GSource crack. - - * test/echo-client.c: (main): - * test/watch.c: (check_messages): - Update for changed APIs - -2003-01-19 Anders Carlsson - - * dbus/Makefile.am: Add dbus-timeout.[cħ] - - * dbus/dbus-connection.c: (_dbus_connection_new_for_transport): - Create a DBusTimeoutList. - (dbus_connection_set_timeout_functions): Add new function to - set timeout callbacks - - * dbus/dbus-connection.h: Add public DBusTimeout API. - - * dbus/dbus-message.c: (dbus_message_get_service): - * dbus/dbus-message.h: New function. - - * dbus/dbus-server.c: Fix small doc typo. - - * dbus/dbus-timeout.[ch]: New files for mainloop timeouts. - -2003-01-19 Anders Carlsson - - * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all - of the string, just as long as specified. - -2003-01-19 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_get_is_authenticated): - new function - - * dbus/dbus-server.c (dbus_server_set_max_connections) - (dbus_server_get_max_connections, dbus_server_get_n_connections): - keep track of current number of connections, and add API for - setting a max (but haven't implemented enforcing the max yet) - -2003-01-18 Havoc Pennington - - * dbus/dbus-transport-unix.c (unix_do_iteration): only do the - reading/writing if read_watch != NULL or write_watch != NULL. - - * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix - the message loader code to actually load message->header and - message->body into the newly-created message. - - * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak - in OOM case - - * dbus/dbus-connection.c (dbus_connection_set_max_message_size) - (dbus_connection_get_max_message_size) - (dbus_connection_set_max_live_messages_size) - (dbus_connection_get_max_live_messages_size): implement some - resource limitation functions - - * dbus/dbus-resources.c: new file implementing some of the - resource limits stuff - - * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add - missing docs, add @todo to handle OOM etc. - - * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing - docs - -2003-01-18 Havoc Pennington - - * dbus/dbus-connection.c (dbus_connection_unref): disconnect the - connection if it hasn't been already. - - * dbus/dbus-connection.h: kill off the idea of an ErrorFunction, - replace with DisconnectFunction. - -2003-01-18 Havoc Pennington - - Building --disable-verbose-mode --disable-asserts --disable-tests - cuts the library from 112K to 45K or so - - * configure.in: check for varargs macro support, - add --enable-verbose-mode, --enable-asserts. - - * dbus/dbus-internals.h (_dbus_assert): support - DBUS_DISABLE_ASSERT - (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE - -2003-01-18 Havoc Pennington - - * dbus/dbus-test.c: include config.h so that tests actually run - - * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned, - so the failure mode when that assumption fails will be plenty - obvious. - -2003-01-18 Havoc Pennington - - * configure.in: default --enable-tests to $USE_MAINTAINER_MODE - - * dbus/Makefile.am: fix it up so dubs-test-main.c is included in - the distribution - - * test/Makefile.am: don't use special variable "TESTS" for echo-* - since we don't want to use those in make check - -2003-01-15 Havoc Pennington - - Release 0.2 - - * NEWS: update - -2003-01-15 Havoc Pennington - - * test/Makefile.am: fix so that test source code ends up in the - distribution on make distcheck - -2003-01-15 Havoc Pennington - - Release 0.1. - - * NEWS: update - -2003-01-15 Havoc Pennington - - * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests): - fix build when --disable-tests - - * Makefile.am (EXTRA_DIST): put HACKING in here - - * HACKING: document procedure for making a tarball release. - -2003-01-14 Anders Carlsson - - * bus/connection.c: (connection_error_handler), - (bus_connection_setup): - * bus/main.c: (main): - Make sure that the DBusConnectionData struct is NULLed - out to prevent a segfault. - - * dbus/dbus-errors.c: (dbus_result_to_string): - * dbus/dbus-errors.h: - * dbus/dbus-message.c: (dbus_message_get_fields), - (dbus_message_get_fields_valist), (_dbus_message_test): - * dbus/dbus-message.h: - Make dbus_message_get_fields return a result code so we can - track invalid fields as well as oom. - -2003-01-11 Havoc Pennington - - * configure.in: change --enable-test/--enable-ansi action-if-given - to enable_foo=$enableval instead of enable_foo=yes - -2003-01-08 Havoc Pennington - - * dbus/dbus-string.c (_dbus_string_align_length): new function - - * dbus/dbus-test-main.c: move main() for test app here - * dbus/dbus-test.c - (dbus_internal_symbol_do_not_use_run_tests): we have to export a - symbol to run tests, because dbus-test isn't in the main - library - - Code review nitpicks. - - * dbus/dbus-message.c (dbus_message_write_header): add newlines - for people with narrow emacs ;-). Assert client_serial was filled - in. Assert message->name != NULL. - (dbus_message_append_fields): have "first_field_type" arg separate - from va list, needed for C++ binding that also uses varargs IIRC - and helps with type safety - (dbus_message_new): add @todo about using DBusString to store - service/name internally - (dbus_message_new): don't leak ->service and ->name on OOM later - in the function - (dbus_message_unref): free the service name - (dbus_message_get_fields): same change to varargs - i.e. first_field_type - (_dbus_message_loader_return_buffer): assert that the message data - is aligned (if not it's a bug in our code). Put in verbose griping - about why we set corrupted = TRUE. - (decode_header_data): add FIXME that char* is evil. Was going to - add FIXME about evil locale-specific string.h strncmp, but just - switched to wacky string-as-uint32 optimization. Move check for - "no room for field name" above get_const_data_len() to avoid - assertion failure in get_const_data_len if we have trailing 2 - bytes or the like. Check for service and name fields being - provided twice. Don't leak service/name on error. Require field - names to be aligned to 4 bytes. - - * dbus/dbus-marshal.c: move byte swap stuff to header - (_dbus_pack_int32): uscore-prefix - (_dbus_unpack_int32): uscore-prefix - (_dbus_unpack_uint32): export - (_dbus_demarshal_string): add @todo complaining about use of - memcpy() - (_dbus_marshal_get_field_end_pos): add @todo about bad error - handling allowing corrupt data to go unchecked - -2003-01-08 Havoc Pennington - - * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write - to the select() as needed for authentication. (should be using - _dbus_poll() not select, but for another day) - - * dbus/dbus.h: include dbus/dbus-protocol.h - -2003-01-08 Anders Carlsson - - * dbus/Makefile.am (dbusinclude_HEADERS): Install - dbus-connection.h - -2003-01-08 Anders Carlsson - - * dbus/dbus-internals.c: (_dbus_type_to_string): - New function that returns a string describing a type. - - * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array): - * dbus/dbus-marshal.h: - * dbus/dbus-message.c: (dbus_message_get_fields_valist), - (dbus_message_iter_get_field_type), (dbus_message_iter_get_double), - (dbus_message_iter_get_byte_array): - * dbus/dbus-message.h: - Add new convenience functions for appending and getting message fields. - Also add demarshalling routines for byte arrays. - -2003-01-07 Anders Carlsson - - * dbus/dbus-connection-internal.h: - * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), - (_dbus_connection_get_next_client_serial), - (dbus_connection_send_message): - * dbus/dbus-internals.h: - * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32), - (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32), - (_dbus_marshal_uint32), (_dbus_demarshal_double), - (_dbus_demarshal_int32), (_dbus_demarshal_uint32), - (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos), - (_dbus_verbose_bytes), (_dbus_marshal_test): - * dbus/dbus-marshal.h: - * dbus/dbus-message-internal.h: - * dbus/dbus-message.c: (_dbus_message_set_client_serial), - (dbus_message_write_header), (_dbus_message_lock), - (dbus_message_new), (dbus_message_ref), (dbus_message_unref), - (dbus_message_get_name), (dbus_message_append_int32), - (dbus_message_append_uint32), (dbus_message_append_double), - (dbus_message_append_string), (dbus_message_append_byte_array), - (dbus_message_get_fields_iter), (dbus_message_iter_ref), - (dbus_message_iter_unref), (dbus_message_iter_has_next), - (dbus_message_iter_next), (dbus_message_iter_get_field_type), - (dbus_message_iter_get_string), (dbus_message_iter_get_int32), - (dbus_message_iter_get_uint32), (dbus_message_iter_get_double), - (decode_header_data), (_dbus_message_loader_return_buffer), - (message_iter_test), (_dbus_message_test): - * dbus/dbus-message.h: - * dbus/dbus-protocol.h: - * dbus/dbus-test.c: (main): - * dbus/dbus-test.h: - * glib/test-dbus-glib.c: (message_handler), (main): - * test/echo-client.c: (main): - * test/watch.c: (check_messages): - Make messages sendable and receivable for real. - -2003-01-07 Anders Carlsson - - * dbus/dbus-marshal.c: (_dbus_marshal_double), - (_dbus_marshal_string), (_dbus_marshal_byte_array): - * dbus/dbus-message.c: (dbus_message_append_int32), - (dbus_message_append_uint32), (dbus_message_append_double), - (dbus_message_append_string), (dbus_message_append_byte_array): - Handle OOM restoration. - -2003-01-07 Anders Carlsson - - * dbus/dbus-marshal.c: (_dbus_marshal_string), - (_dbus_demarshal_string), (_dbus_marshal_test): - * dbus/dbus-marshal.h: - * dbus/dbus-message.c: (dbus_message_get_name), - Document these functions. - - (dbus_message_append_int32), (dbus_message_append_uint32), - (dbus_message_append_double), (dbus_message_append_string), - (dbus_message_append_byte_array): - * dbus/dbus-message.h: - Add functions for adding message fields of different types. - - * dbus/dbus-protocol.h: - Add the different types. - -2003-01-05 Havoc Pennington - - * bus/connection.c: implement routines for handling connections, - first thing is keeping a list of owned services on each connection - and setting up watches etc. - - * bus/services.c: implement a mapping from service names to lists - of connections - - * dbus/dbus-hash.c: add DBUS_HASH_POINTER - - * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions - to use static mutexes for global data - - * dbus/dbus-connection.c (dbus_connection_set_data): add new - collection of functions to set/get application-specific data - on the DBusConnection. - -2003-01-04 Havoc Pennington - - * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function - (_dbus_poll): new function - - * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro - copied from GLib - - * bus/loop.c: initial code for the daemon main loop - -2003-01-04 Havoc Pennington - - * test/watch.c (error_handler): make it safe if the error handler - is called multiple times (if we s/error handler/disconnect - handler/ we should just guarantee it's called only once) - - * dbus/dbus-transport.c (_dbus_transport_disconnect): call the - error handler on disconnect (it's quite possible we should - just change the error handler to a "disconnect handler," I'm - not sure we have any other meaningful errors) - - * configure.in: check for getpwnam_r - - * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, - dbus/dbus-auth.c: add credentials support, add EXTERNAL auth - mechanism as in SASL spec, using socket credentials - - * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function - (_dbus_send_credentials_unix_socket): new function - - * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just - dbus_accept() - (_dbus_write): only check errno if <0 returned - (_dbus_write_two): ditto - -2003-01-02 Anders Carlsson - - * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string), - (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string), - (_dbus_marshal_test): - * dbus/dbus-marshal.h: - Add _dbus_marshal_byte_array and rename _dbus_marshal_string - to _dbus_marshal_utf8_string. Also fix some tests. - -2002-12-28 Harri Porten - - * configure.in: added check for C++ compiler and a very cheesy - check for the Qt integration - - * Makefile.am (SUBDIRS): compile qt subdir if support is enabled - - * qt/Makefile.am: added - - * qt/.cvsignore: added - - * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to - latter, added #ifdef QT_THREAD_SUPPORT guard. - - * dbus/Makefile.am: added missing headers for make dist - -2002-12-28 Kristian Rietveld - - * dbus/Makefile.am: fixup export-symbols-regex. - -2002-12-27 Anders Carlsson - - * acinclude.m4: Add this file and put the - PKG_CHECK_MODULE macro in it. - -2002-12-27 Anders Carlsson - - * dbus/dbus-marshal.c: (_dbus_marshal_string), - (_dbus_demarshal_double), (_dbus_demarshal_int32), - (_dbus_demarshal_uint32), (_dbus_demarshal_string), - (_dbus_marshal_test): - Make the demarshalling routines align the pos argument. - Add string marshalling tests and fix the obvious bugs - discovered. - -2002-12-26 Havoc Pennington - - * dbus/dbus-auth.c: fixes fixes fixes - - * dbus/dbus-transport-unix.c: wire up support for - encoding/decoding data on the wire - - * dbus/dbus-auth.c (_dbus_auth_encode_data) - (_dbus_auth_decode_data): append to target string - instead of nuking it. - -2002-12-26 Havoc Pennington - - * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef - WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN, - doh - - * dbus/dbus-marshal.c: Add macros to do int swapping in-place and - avoid swap_bytes() overhead (ignoring possible assembly stuff for - now). Main point is because I wanted unpack_uint32 to implement - _dbus_verbose_bytes - (_dbus_verbose_bytes): new function - - * dbus/dbus-string.c (_dbus_string_validate_ascii): new function - - * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add - mechanism to handle a corrupt message stream - (_dbus_message_loader_new): fix preallocation to only prealloc, - not prelengthen - - * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function - (_dbus_string_test): enhance tests for copy/move and fix the - functions - - * dbus/dbus-transport-unix.c: Hold references in more places to - avoid reentrancy problems - - * dbus/dbus-transport.c: ditto - - * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't - leak reference count in no-message case - - * test/watch.c (do_mainloop): handle adding/removing watches - during iteration over the watches. Also, ref the connection/server - stored on a watch, so we don't try to mangle a destroyed one. - - * dbus/dbus-transport-unix.c (do_authentication): perform - authentication - - * dbus/dbus-auth.c (get_state): add a state - AUTHENTICATED_WITH_UNUSED_BYTES and return it if required - (_dbus_auth_get_unused_bytes): append the unused bytes - to the passed in string, rather than prepend - - * dbus/dbus-transport.c (_dbus_transport_init_base): create - the auth conversation DBusAuth - - * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd) - (_dbus_transport_new_for_domain_socket): when creating a - transport, pass in whether it's a client-side or server-side - transport so we know which DBusAuth to create - -2002-12-03 Havoc Pennington - - * dbus/dbus-transport-unix.c (unix_finalize): finalize base - _after_ finalizing the derived members - (unix_connection_set): unref watch if we fail to add it - - * dbus/dbus-connection.c (dbus_connection_unref): delete the - transport first, so that the connection owned by the - transport will be valid as the transport finalizes. - - * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch - if necessary, and remove watches from the connection. - - * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment - -2002-12-26 Anders Carlsson - - * dbus/dbus-marshal.c: (_dbus_marshal_string), - (_dbus_demarshal_double), (_dbus_demarshal_int32), - (_dbus_demarshal_uint32), (_dbus_demarshal_string), - (_dbus_marshal_test): - * dbus/dbus-marshal.h: - Add string marshal functions and have the demarshal functions - return the new position. - -2002-12-25 Havoc Pennington - - * doc/dbus-sasl-profile.txt: docs on the authentication protocol, - it is a simple protocol that just maps directly to SASL. - - * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol - initial implementation, not actually used yet. - - * dbus/dbus-string.c (_dbus_string_find): new function - (_dbus_string_equal): new function - (_dbus_string_base64_encode): new function - (_dbus_string_base64_decode): new function - -2002-12-25 Anders Carlsson - - * dbus/Makefile.am: - * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double), - (_dbus_marshal_int32), (_dbus_marshal_uint32), - (_dbus_demarshal_double), (_dbus_demarshal_int32), - (_dbus_demarshal_uint32), (_dbus_marshal_test): - * dbus/dbus-marshal.h: - * dbus/dbus-protocol.h: - * dbus/dbus-test.c: (main): - * dbus/dbus-test.h: - Add un-optimized marshalling/demarshalling routines. - -2002-12-25 Harri Porten - - * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions - -2002-12-24 Zack Rusin - - * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus - * qt/dbus-qt.h: skeleton with two sample implemenatation of the - main loop stuff - -2002-12-24 Havoc Pennington - - * glib/dbus-gthread.c: fix include - - * glib/dbus-glib.h: rename DBusMessageHandler for now. - I think glib API needs to change, though, as you don't - want to use DBusMessageFunction, you want to use the - DBusMessageHandler object. Probably - dbus_connection_open_with_g_main_loop() - and dbus_connection_setup_g_main_loop() or something like that - (but think of better names...) that just create a connection - that has watch/timeout functions etc. already set up. - - * dbus/dbus-connection.c - (dbus_connection_send_message_with_reply): new function just to - show how the message handler helps us deal with replies. - - * dbus/dbus-list.c (_dbus_list_remove_last): new function - - * dbus/dbus-string.c (_dbus_string_test): free a string that - wasn't - - * dbus/dbus-hash.c: use memory pools for the hash entries - (rebuild_table): be more paranoid about overflow, and - shrink table when we can - (_dbus_hash_test): reduce number of sprintfs and write - valid C89. Add tests for case where we grow and then - shrink the hash table. - - * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools - - * dbus/dbus-connection.c (dbus_connection_register_handler) - (dbus_connection_unregister_handler): new functions - - * dbus/dbus-message.c (dbus_message_get_name): new - - * dbus/dbus-list.c: fix docs typo - - * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c: - an object representing a handler for messages. - -2002-12-16 Anders Carlsson - - * glib/dbus-glib.h: - * glib/dbus-gthread.c: (dbus_gthread_init): - Don't use the gdbus prefix for public functions. - -2002-12-16 Anders Carlsson - - * Makefile.am: - * configure.in: - Add GLib checks and fixup .pc files - - * glib/Makefile.am: - * glib/dbus-glib.h: - * glib/dbus-gmain.c: (gdbus_connection_prepare), - (gdbus_connection_check), (gdbus_connection_dispatch), - (gdbus_add_connection_watch), (gdbus_remove_connection_watch), - (dbus_connection_gsource_new): - * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free), - (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init): - * glib/test-dbus-glib.c: (message_handler), (main): - Add GLib support. - -2002-12-15 Harri Porten - - * autogen.sh: check for libtoolize before attempting to use it - - * dbus/dbus-transport-unix.c: include for timeval - struct. - - * .cvsignore: ignore more stamp files - - * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error - - * test/Makefile.am: added -I$(top_srcdir) to be able to compile - without make install. - -2002-12-15 Havoc Pennington - - * dbus/dbus-threads.c: add thread stubs that a higher library - layer can fill in. e.g. the GLib wrapper might fill them in with - GThread stuff. We still need to use this thread API to - thread-safe-ize the library. - -2002-12-12 Havoc Pennington - - * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the - below new interfaces and include fewer system headers. - - * dbus/dbus-sysdeps.c (_dbus_read): new function - (_dbus_write): new function - (_dbus_write_two): new function - (_dbus_connect_unix_socket): new function - (_dbus_listen_unix_socket): new function - - * dbus/dbus-message-internal.h: change interfaces to use - DBusString - -2002-12-11 Havoc Pennington - - * dbus/dbus-types.h: add dbus_unichar - - * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv - - * dbus/dbus-connection.c (dbus_connection_send_message): return - TRUE on success - - * dbus/dbus-transport.c: include dbus-watch.h - - * dbus/dbus-connection.c: include dbus-message-internal.h - - * HACKING: add file with coding guidelines stuff. - - * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string - handling here, for security purposes (as in vsftpd). Not actually - using this class yet. - - * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all - system/libc usage here, as in vsftpd, for ease of auditing (and - should also simplify portability). Haven't actually moved all the - system/libc usage into here yet. - -2002-11-25 Havoc Pennington - - * dbus/dbus-internals.c (_dbus_verbose): fix to not - always print the first verbose message. - -2002-11-24 Havoc Pennington - - * test/echo-client.c, test/echo-server.c: cheesy test - clients. - - * configure.in (AC_CHECK_FUNCS): check for writev - - * dbus/dbus-message.c (_dbus_message_get_network_data): new - function - - * dbus/dbus-list.c (_dbus_list_foreach): new function - - * dbus/dbus-internals.c (_dbus_verbose): new function - - * dbus/dbus-server.c, dbus/dbus-server.h: public object - representing a server that listens for connections. - - * dbus/.cvsignore: create - - * dbus/dbus-errors.h, dbus/dbus-errors.c: - public API for reporting errors - - * dbus/dbus-connection.h, dbus/dbus-connection.c: - public object representing a connection that - sends/receives messages. (Same object used for - both client and server.) - - * dbus/dbus-transport.h, dbus/dbus-transport.c: - Basic abstraction for different kinds of stream - that we might read/write messages from. - -2002-11-23 Havoc Pennington - - * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN - _DBUS_INT_MAX - - * dbus/dbus-test.c (main): add list test, and include - dbus-test.h as intended - - * dbus/dbus-hash.c (_dbus_hash_table_remove_string) - (_dbus_hash_table_remove_int): return value indicates - whether the entry existed to remove - - * dbus/dbus-list.c: add linked list utility class, - with docs and tests - - * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket - array sometimes. - -2002-11-23 Havoc Pennington - - * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/ - DBUS_END_DECLS to nothing, that should fix this once and for all - - * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES - - * dbus/dbus-message.c, dbus/dbus-hash.c: - add some missing @brief - -2002-11-23 Havoc Pennington - - * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS - to avoid confusing Doxygen - - * dbus/dbus-hash.c: @} not }@ - - * dbus/dbus-message.c (struct DBusMessage): split out - internals docs - -2002-11-23 Havoc Pennington - - * configure.in: pile on more warning flags if using gcc - - * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have - to document static functions - - * configure.in: add summary to end of configure so it - looks nice and attractive - - * dbus/dbus-hash.c: finish implementation and write unit - tests and docs - - * configure.in: add --enable-tests to enable unit tests - - * dbus/dbus-test.c: test program to run unit tests - for all files in dbus/*, initially runs a test for - dbus-hash.c - - * dbus/dbus-internals.h: file to hold some internal utility stuff - -2002-11-22 Havoc Pennington - - * dbus/dbus-hash.c: copy in Tcl hash table, not yet - "ported" away from Tcl - - * dbus/dbus-types.h: header for types such as dbus_bool_t - -2002-11-22 Havoc Pennington - - * dbus/dbus.h: fixups for doc warnings - - * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up - macros - (QUIET): make it quiet so we can see warnings - - * dbus/dbus-memory.c: teach D-BUS to allocate and free memory - -2002-11-22 Havoc Pennington - - * Makefile.am: include "Doxyfile" target in all-local - - * configure.in: generate the Doxyfile - - * Doxyfile.in: move Doxyfile here, so we can use - configure to generate a Doxyfile with the right - version number etc. - -2002-11-22 Havoc Pennington - - * dbus/dbus-message.c: move inline docs into .c file - - * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api - so all docs are under doc/ - (MAN_EXTENSION): generate man pages. Use extension - ".3dbus" which matches ".3qt" on my system, - I guess this is OK, I don't know really. - (FILE_PATTERNS): look for .c files not .h, makes sense - for plain C I think - -2002-11-22 Havoc Pennington - - * Makefile.am (SUBDIRS): rename subdir "server" to "bus" - because any app can be a server, and any app can be a client, - the bus is a special kind of server. - -Thu Nov 21 23:35:31 2002 Zack Rusin - - * Doxyfile : adding. Still needs Makefile rules to be generated - automatically (just run "doxygen" in the toplevel dir for now to - generate docs) - - * dbus/dbus-message.h : Adding sample docs (javadoc since - resembles gtk-doc a little more) - - * dbus/dbus.h : Adding sample docs - -2002-11-21 Havoc Pennington - - * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION - so we can allow ourselves to include files directly, - instead of having to use dbus.h - - * dbus/dbus.h: fill in - - * dbus/dbus-message.h: sketch out a sample header file. - Include griping if you include it directly instead of - via dbus.h - - * dbus/dbus-macros.h: new file with macros for extern "C", - TRUE/FALSE, NULL, etc. - - * doc/file-boilerplate.c: put include guards in here - -2002-11-21 Havoc Pennington - - * doc/file-boilerplate.c: include both AFL and GPL boilerplate. - - * COPYING: include the GPL as well, and license code - under both AFL and GPL. - -2002-11-21 Havoc Pennington - - * acconfig.h: get rid of this - - * autogen.sh (run_configure): add --no-configure option - - * configure.in: remove AC_ARG_PROGRAM to make - autoconf complain less. add AC_PREREQ. - add AC_DEFINE third arg. - -2002-11-21 Anders Carlsson - - * doc/Makefile.am: - Fix references so we can distcheck. - -2002-11-21 Havoc Pennington - - * Initial module creation - diff --git a/ChangeLog.pre-1-0 b/ChangeLog.pre-1-0 new file mode 100644 index 00000000..eab5982f --- /dev/null +++ b/ChangeLog.pre-1-0 @@ -0,0 +1,15146 @@ +2006-11-09 John (J5) Palmieri + + * Released 1.0.0 + +2006-11-09 John (J5) Palmieri + + * AUTHORS: added Peter and Tor of windows porting fame + +2006-11-08 Havoc Pennington + + * doc/dbus-specification.xml: add a note about protocol stability + + * doc/TODO: Remove "important for 1.0" section, replace with + "important for 1.2" section + +2006-11-08 John (J5) Palmieri + + * README: remove some of the out of date flags + + * doc/TODO: Remove todo items which are done + +2006-11-08 John (J5) Palmieri + + * tools/dbus-monitor.c: Handle sigint so we flush stdout + (Patch from Olli Salli ) + +2006-11-08 John (J5) Palmieri + + * tools/dbus-monitor.1: update the manpage for dbus-monitor + (Patch from Olli Salli ) + +2006-11-08 John (J5) Palmieri + + * AUTHORS: Update with all people listed in the ChangeLog + +2006-11-08 John (J5) Palmieri + + * tools/dbus-monitor.c: add profiling tools to dbus-monitor + (Patch from Olli Salli ) + +2006-11-07 Havoc Pennington + + * HACKING: Update release instructions to include stuff about + stable releases, branching, etc. May not be totally correct, + please fix if needed, but keep instructions up-to-date so we do + each stable release consistently in the future. + +2006-11-07 Havoc Pennington + + * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various + documentation updates. Bump faq/spec versions (not to 1.0; I don't + think the spec will be "finished"/1.0 when we ship the 1.0 library). + +2006-11-06 John (J5) Palmieri + + * bus/bus.c: Missed patch - pass in the context to the directory watch + +2006-11-02 John (J5) Palmieri + + * Released D-Bus 1.0 RC 3(0.95) + +2006-11-02 John (J5) Palmieri + + * bus/activation.c (bus_activation_new): don't fail if we can not read + the directory as it may not exist + +2006-11-02 John (J5) Palmieri + + * bus/config-parser.c (service_dirs_find_dir): use + _dbus_list_get_next_link so we don't get stuck in an infinite loop + (start_busconfig_child): move processing of standard_session_servicedirs + tags here because they have no content + (bus_config_parser_content): check we don't have content in + standard_session_servicedirs tag + +2006-11-02 John (J5) Palmieri + + * tools/Makefile.am: Make sure the /var/lib/dbus directory is created + Packagers need to own this directory + +2006-11-02 John (J5) Palmieri + + * tools/run-with-tmp-session-bus.sh: fixed script to replace the + tag with a tag that + points to the test service directory + +2006-11-02 John (J5) Palmieri + + * configure.in: Add a check for DIR *dirp->dd_fd + + * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use + DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care + of both Solaris and Irix + +2006-11-01 Havoc Pennington + + * bus/dbus-daemon.1.in: document standard_session_servicedirs + +2006-11-01 John (J5) Palmieri + + * configure.in: expose DBUS_DATADIR + + * bus/config-parser.c: add the standard_session_servicedirs element + to the parser + (bus_config_parser_content): process the standard_session_servicedirs + element by getting the standard directories from sysdeps and merging + them into the service directory list + (test_default_session_servicedirs): make sure we get what we expect + + * bus/session.conf.in: replace the servicedir tag with the + standard_session_servicedirs tag + + * dbus/dbus-list.h: remove the typedef of DBusList and place it in + dbus-sysdeps.h to avoid circular header dependencies + + * dbus/dbus-sysdeps.h: add the typedef of DBusList + + * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function + which takes a string of directories delimited by colons, parses them + out, appends a suffix and puts them in a list ignoring empty elements + (_dbus_get_standard_session_servicedirs): returns the standard + directories for a session bus to look for service activation files + on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and + DBUS_DATADIR directories + + * test/data/valid-config-files/many-rules.conf: add the + standard_session_servicedirs tag to the valid config file tests + +2006-10-30 Havoc Pennington + + * tools/dbus-launch.1, doc/TODO: capture intent to change the + command line options of dbus-launch a bit post 1.0 + +2006-10-27 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_open_private): document + how to choose shared vs. private connections + +2006-10-27 Havoc Pennington + + * dbus/dbus-test.c: enclose more of the file in the + DBUS_BUILD_TESTS check. + + * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for + DBUS_DISABLE_ASSERT case. + + * dbus/dbus-connection.c (dbus_connection_get_unix_user): document + that it only works on the server side + + * dbus/dbus-bus.c: add a global lock covering the BusData we + attach to each connection + (internal_bus_get): lock our access to the BusData + (dbus_bus_register): lock the entire registration process + with _DBUS_LOCK(bus_datas). If we get the lock and + registration is already complete, silently return (vs. previous + behavior of aborting). + (dbus_bus_set_unique_name): lock the BusData + (dbus_bus_get_unique_name): lock the BusData + +2006-10-27 John (J5) Palmieri + + * bus/config-parser.c (service_dirs_find_dir, + service_dirs_append_unique_or_free, + service_dirs_append_link_unique_or_free): New static methods + for only appending unique service directory names into + the service directory list + (merge_included, bus_config_parser_content): Only add unique + service directory names into the list + +2006-10-27 Havoc Pennington + + * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder" + variables volatile, suggested by Thiago. Document struct fields. + (PTHREAD_CHECK): remove pthread error checking if assertions are + disabled, should reduce the no-assertions case to the bare + minimum code. + +2006-10-26 Havoc Pennington + + * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change + to be recursive + (_dbus_pthread_mutex_unlock): make it recursive + (_dbus_pthread_condvar_wait): save/restore the recursion count + (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count + +2006-10-26 Havoc Pennington + + * doc/dbus-specification.xml: clarify the UUID text slightly + + * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on + pthread errors. Add DBusMutexPThread and DBusCondVarPThread + in preparation for being able to extend them for e.g. recursive + mutexes. + +2006-10-26 Havoc Pennington + + * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how + condition variables relate to recursive mutexes. + + * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, + dbus/dbus-threads.c: Split the platforms-specific thread + implementations into their own files. + + * dbus/dbus-sysdeps-pthread.c + (_dbus_pthread_condvar_wait_timeout): invert the return value, it + was backward. Not that anything uses it. + +2006-10-26 John (J5) Palmieri + + * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the + LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This + needs to be cleaned up more. + + * doc/TODO: Add a todo that *BSD hackers should look at cleaning + up the CREDS issue. + +2006-10-26 John (J5) Palmieri + + * configure.in, dbus-1.pc.in: Check to see if thread methods + are in glibc or libpthread and add -lpthread to the link stage + if it is the latter + +2006-10-26 Thiago Macieira + + * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix + bug 8780: the connection lock is only required while recording + the shared connection, so protect only that code + section. Don't require connection_lookup_shared to return a + locked connection. + +2006-10-26 Thiago Macieira + + * tools/dbus-launch-x11.c (get_session_file, init_x_atoms): + check if get_machine_uuid() returns NULL before proceeding any + further: we can't init the X atoms or create a session file + name if there is no machine ID. + This solves a crash reported by some users if + --exit-with-session was used without --autolaunch= + +2006-10-26 John (J5) Palmieri + + * tools/dbus-launch.c (main): run the dbus-daemon in the builddir + if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set + + * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY + before we run dbus-launch + + * configure.in: define TEST_BUS_BINARY to be the full path to + dbus-daemon in the build root + +2006-10-25 Sjoerd Simons + + * dbus/Makefile.am: + * tools/Makefile.am: + * toos/dbus-uuidgen.1: + Move the machine-id file to /var/lib/dbus + +2006-10-24 David Zeuthen + + * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's + _dbus_assert (thread_init_generation != _dbus_current_generation) + not _dbus_assert (thread_init_generation == _dbus_current_generation) + +2006-10-24 Thiago Macieira + + * dbus/dbus-sysdeps.h: + * dbus/dbus-sysdeps-unix.c: Add function + _dbus_make_file_world_readable that chmods a file to 0644. + + * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): + Avoid writing to the static "argv" array, thereby avoiding a + COW on the child process. + + * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively): + call _dbus_make_file_world_readable on the created file. + +2006-10-23 David Zeuthen + + * dbus/dbus-memory.c: Use atomic variable to protect + n_blocks_outstanding otherwise OOM will be reported using SMP on + some arches + + * bus/dispatch.c: Add missing end of line characters + + * bus/desktop-file.c (parse_section_start, parse_key_value) + (bus_desktop_file_load): Propertly handle OOM + + * dbus/dbus-threads.c (init_uninitialized_locks): Check that + thread_init_generation equals _dbus_current_generation, not 0 + +2006-10-22 Havoc Pennington + + * dbus/dbus-connection-internal.h: move prototype of + _dbus_bus_notify_shared_connection_disconnected_unlocked() here so + it isn't in a public header and doesn't end up in the DBusBus + group in Doxygen + +2006-10-21 Havoc Pennington + + * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in + the tarball if packagers want to run it + + * cleanup-man-pages.sh: Add a script which munges all the internal + API man pages out of the Doxygen output. This reduces the size of + the installed man pages from 7 to 2 megs, and avoids + namespace-polluting pages. Right now (like Doxygen) this script + isn't in the build, it's something packagers can do manually. + +2006-10-21 Havoc Pennington + + * dbus/dbus-connection.h: don't include the watch/timeout + functions in connection section + +2006-10-21 Havoc Pennington + + * Documentation! Whee! Doxygen now 100% silent. If you make it + angry again, you will be punished. + +2006-10-21 Havoc Pennington + + * More documentation - all public API now documented according to + Doxygen + +2006-10-21 Havoc Pennington + + * Document a bunch of undocumented stuff + +2006-10-21 Havoc Pennington + + * Clean up Doxygen group markers for public API so Doxygen finds + everything (not comprehensively fixed for private API). + Means all remaining Doxygen warnings are just about missing docs + and thus pretty simple to resolve. + +2006-10-21 Havoc Pennington + + * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro + + * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() + as DBUS_GNUC_DEPRECATED + +2006-10-21 Havoc Pennington + + * Move all private API into the private Doxygen group sections of + the files, so they don't show up in the public API docs + +2006-10-21 Havoc Pennington + + * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around + dbus_message_iter_get_array_len(). + + * throughout: documentation improvements. + +2006-10-20 Havoc Pennington + + * doc/TODO: remove the int64 thing from 1.0 since it doesn't + matter, and the message-loader-breaker thing since nobody is going + to do it. Add an item to 1.0 about supporting recursive locks + in dbus_threads_init_default() though, since it should be easy. + + * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch): + Fix this in the !dispatch case to avoid busy-looping after + disconnection + + * More misc docs improvements + +2006-10-19 Havoc Pennington + + * more Doxygen-related fixes (lots of moving things from the + public to internal section in dbus-connection.c) + +2006-10-19 Havoc Pennington + + * Fix a pile of Doxygen warnings and missing docs + +2006-10-19 John (J5) Palmieri + + * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, + bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext + instead of a void *. kqueue uses this to get the context's loop + while the other modules ignore the parameter. This allows us to + avoid platform conditionals + + * bus/bus.c (process_config_postinit): Pass in the context to the + watch + +2006-10-19 John (J5) Palmieri + + * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure + when starting the system bus + +2006-10-18 John (J5) Palmieri + + * configure.in: More fixups for cross compile (Patch from + Marco Pracucci ) + +2006-10-17 Havoc Pennington + + * tools/dbus-send.c (main): don't close shared connection, fix + from Timo Hoenig + +2006-10-17 Havoc Pennington + + * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here + + * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement, + since realistically it doesn't look like we'll be changing it + anymore. + +2006-10-17 Havoc Pennington + + * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to + be used for return_if_fail type warnings; prefixes the pid, and + fatal by default. + +2006-10-14 John (J5) Palmieri + + * configure.in: Released 1.0 RC 2(0.94) + Add check for -fPIC and enable it if available + +2006-10-14 John (J5) Palmieri + + * doc/TODO: Remove the check TODO item + +2006-10-13 John (J5) Palmieri + + * dbus-transport-socket.c (exchange_credentials): + Print out more detailed errors if reading or sending + credentials fail (Patch from Julio M. Merino Vidal + ) + +2006-10-13 John (J5) Palmieri + + * configure.in: when checking for posix getpwnam_r assume true + for cross compiles + +2006-10-13 John (J5) Palmieri + + * configure.in: Check for gethostbyname first before we check for it + in libnsl. On gnu systems it is implemeneted + +2006-10-13 Havoc Pennington + + * dbus/dbus-connection.c + (dbus_connection_send_with_reply_and_block): fix to handle closed + connections, from Tambet Ingo bug #8631 + +2006-10-11 John (J5) Palmieri + + * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN + +2006-10-11 John (J5) Palmieri + + * test/name-test/Makefile.am: don't link against both libdbus and + libdbus-convenience + +2006-10-11 John (J5) Palmieri + + * configure.in: check for dirfd even if it is a macro + (Patch from Timothy Redaelli ) + +2006-10-08 John (J5) Palmieri + + * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris + avoid using dirfd on systems that don't have dirfd + (Patch by Brian Cameron ) + +2006-10-02 John (J5) Palmieir + + * dbus/dbus-sysdeps.c (_dbus_abort): Remove from + #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck + + * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from + #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS) + macro because _dbus_abort calls it + + * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck + works + +2006-10-02 John (J5) Palmieir + + * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for + MAXNAMELEN for Mac OSX. (Patch from Jonas B ) + +2006-10-02 Thiago Macieira + + * tools/dbus-launch.c (main): make it complain and abort + execution in case an unknown option is given. Also, process + the '--' argument as the end of arguments. + +2006-10-01 Havoc Pennington + + * tools/dbus-launch.c (print_variables): if no syntax is given, + don't print something that's sort-of-half-sh-syntax, just print + a plain key-value pairs thing. + + * tools/dbus-launch-x11.c: use machine ID rather than hostname for + the local machine representation (but still have the hostname in + the display). Remove the hostname from the display if it is + localhost. Change session files to be named + ~/.dbus/session-bus/machine-display. Change X atoms to be + underscore-prefixed so nobody whines about ICCCM compliance. + Otherwise name them the same as the env variables. + Change session file format to include key-value pairs and an + explanatory comment. Keys are the same as the env variables. + (set_address_in_x11): X property format can't depend on + sizeof(pid_t) on a particular machine, fix to always be 32 bits + + * tools/dbus-launch.c: make --autolaunch take a machine id + argument. If --autolaunch is used with a program to run, complain + for now (but add a FIXME). Also, don't look for existing bus if + there's a program to run (but add a FIXME). + + * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass + machine uuid to dbus-launch (avoids linking dbus-launch to libdbus + just to get this, and avoids duplicating uuid-reading code). + + * tools/dbus-launch.1: clarify various things + +2006-10-01 Havoc Pennington + + * test/test-service.c (path_message_func): remove broken extra + unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c + + * test/test-shell-service.c (path_message_func): same fix + + * dbus/dbus-connection.c + (_dbus_connection_get_dispatch_status_unlocked): break up the + function a little for clarity and fix the notification of + dbus-bus.c to not require dispatch to be complete + + * dbus/dbus-connection.c (dbus_connection_unref): improve the + warning when you try to finalize an open connection. + +2006-10-01 Havoc Pennington + + * dbus/dbus-bus.c + (internal_bus_get): only weak ref the connection; this means + _dbus_bus_notify_shared_connection_disconnected_unlocked can be + called safely in any context + (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't + unref + + * dbus/dbus-connection.c + (_dbus_connection_get_dispatch_status_unlocked): move + _dbus_bus_notify_shared_connection_disconnected_unlocked here + when queuing Disconnected instead of when the Disconnected message + arrives, so dbus_bus_get() won't return closed connections. + +2006-10-01 Havoc Pennington + + * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): + Add a hack to make DBusNewConnectionFunction work right. + + * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use + the hack here. Also, fix the todo about refcount leak. + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + and use the hack here + + * dbus/dbus-connection.c: Kill the "shared" flag vs. the + "shareable" flag; this was completely broken, since it meant + dbus_connection_open() returned a connection of unknown + shared-ness. Now, we always hold a ref on anything opened + as shareable. + + Move the call to notify dbus-bus.c into + connection_forget_shared_unlocked, so libdbus consistently forgets + all its knowledge of a connection at once. This exposed numerous + places where things were totally broken if we dropped a ref inside + get_dispatch_status_unlocked where + connection_forget_shared_unlocked was previously, so move + connection_forget_shared_unlocked into + _dbus_connection_update_dispatch_status_and_unlock. Also move the + exit_on_disconnect here. + + (shared_connections_shutdown): this assumed weak refs to the + shared connections; since we have strong refs now, the assertion + was failing and stuff was left in the hash. Fix it to close + still-open shared connections. + + * bus/dispatch.c: fixup to use dbus_connection_open_private on the + debug pipe connections + + * dbus/dbus-connection.c (dbus_connection_dispatch): only notify + dbus-bus.c if the closed connection is in fact shared + (_dbus_connection_close_possibly_shared): rename from + _dbus_connection_close_internal + (dbus_connection_close, dbus_connection_open, + dbus_connection_open_private): Improve docs to explain the deal + with when you should close or unref or both + + * dbus/dbus-bus.c + (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename + from _dbus_bus_check_connection_and_unref_unlocked and modify to + loop over all connections + + * test/test-utils.c (test_connection_shutdown): don't try to close + shared connections. + + * test/name-test/test-threads-init.c (main): fix warnings in here + + * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT + env variable to cause blocking waiting for gdb; drop + DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() + unconditionally. + + * configure.in: add -export-dynamic to libtool flags if assertions enabled + so _dbus_print_backtrace works. + + * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf + instead of _dbus_verbose to print the backtrace, and diagnose lack + of -rdynamic/-export-dynamic + +2006-09-30 Havoc Pennington + + * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) + (internal_bus_get): fix screwy code formatting. whoever committed + that was not paying attention! + +2006-09-30 Havoc Pennington + + * configure.in (LT_CURRENT, LT_AGE): increment current and age to + reflect addition of interfaces. + + * doc/dbus-specification.xml: describe a new + org.freedesktop.DBus.Peer.GetMachineId method + + * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function + (_dbus_string_skip_white, _dbus_string_skip_blank): use new + DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion + at end of skip_white + (_dbus_string_chop_white): new function + + * bus/connection.c (bus_connections_setup_connection): call + dbus_connection_set_route_peer_messages. + + * dbus/dbus-connection.c + (_dbus_connection_peer_filter_unlocked_no_update): modify to + support a GetMachineId method. + + Also, support a new flag to let the bus pass peer methods through + to apps on the bus, which can be set with + dbus_connection_set_route_peer_messages. + + Finally, handle and return an error for anything unknown on the + Peer interface, which will allow us to extend the Peer interface + in the future without fear that we're now intercepting something + apps were wanting to see. + + * tools/dbus-uuidgen.c: a thin wrapper around the functions in + dbus/dbus-uuidgen.c + + * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen + binary here, since most of the code is already in libdbus + + * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the + uuid from the system config file + + * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) + (_dbus_read_uuid_file_without_creating) + (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new + uuid-related functions, partly factored out from dbus-server.c + + * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to + DBUS_ERROR_FILE_EXISTS instead of EEXIST + + * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error + + * tools/dbus-cleanup-sockets.1: explain what the point of this + thing is a bit more + + * autogen.sh (run_configure): add --config-cache to default + configure args + + * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the + error set/clear assertions when DBUS_DISABLE_CHECKS is defined + + * tools/dbus-launch.c (main): if xdisplay hasn't been opened, + don't try to save address, fixes crash in make check + +2006-09-30 Thiago Macieira + + * configure.in: add DBUS_BINDIR as a #define to C source code. + + * tools/dbus-launch.c + * tools/dbus-launch.h + * tools/dbus-launch-x11.c: + * tools/dbus-launch.1: Add the --autolaunch option to + dbus-launch, which makes it scan for an existing session + started with --autolaunch. With that option, it also creates + an X11 window and saves the bus address and PID to it. + + * dbus/dbus-sysdeps.h: + * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add + a function that runs "dbus-launch --autolaunch" to retrieve + the running D-Bus session address (or start one if none was running) + + * dbus/dbus-transport.c: Add the handler for the "autolaunch:" + address protocol, which tries to get the running session from + dbus-launch. + + * dbus/dbus-bus.c: + * dbus/dbus-internals.h: Make "autolaunch:" be the default + D-Bus session bus address. + + * dbus/dbus-connection.c: Fix horrible typo in error message. + +2006-09-18 John (J5) Palmieri + + * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@ + +2006-09-17 Havoc Pennington + + * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): + fix so that if unix_user_function is set on windows, we still + do the default check that the auth identity matches the bus identity + +2006-09-16 Havoc Pennington + + * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate + to _dbus_transport_open_platform_specific, + _dbus_transport_open_socket, + and _dbus_transport_open_debug_pipe + + * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific + +2006-09-16 Havoc Pennington + + Attempt auditing public API to remove all cases where a Unix + function returns weird emulated goo to Windows. This probably + breaks the bus daemon on Windows, to fix it again we may + need to stop processing unix-specific config options on Windows, + and may need to add Windows-specific public API or config options. + + * configure.in (LT_CURRENT, LT_AGE): increment current and age, + to reflect added interfaces; should not break soname. + + * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do + not invoke unix user function on Windows. Kind of a hacky fix, but + we don't want a "unix uid" leaking out on Windows. + + * dbus/dbus-connection.c (dbus_connection_get_socket): add new API + to get the socket fd on Windows or UNIX + (dbus_connection_get_unix_fd): make this always fail on Windows + +2006-09-16 Havoc Pennington + + * dbus/dbus-server.c (dbus_server_listen): change how this works + to be able to delegate to a set of handlers that can succeed, + fail, or choose not to handle. Allows us to have + dbus_server_listen_platform_specific. + + * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket): + factor out the tcp socket stuff to be used on windows, leaving + unix domain socket only in dbus-socket-unix.c + + * dbus/dbus-transport-socket.c + (_dbus_transport_new_for_tcp_socket): factor out the tcp socket + stuff to be used on windows, leaving unix domain socket only + in dbus-transport-unix.c + + * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert + temporary hack to be sure this fails on windows + (dbus_connection_get_unix_process_id): ditto + +2006-09-16 Havoc Pennington + + * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) + (_dbus_open_unix_socket, _dbus_open_socket): change API for + _dbus_open_socket so the domain/type/protocol from system headers + are not required. This is kind of pointless though unless we move + part of _dbus_connect_tcp_socket into sysdeps.c instead of + sysdeps-unix.c, which would mean adding a wrapper around + bind/listen/etc. + Also, add DBusError to the socket-opening functions so they + don't require use of errno. + +2006-09-16 Havoc Pennington + + * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make + dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header. + + * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter + Kümmel bug #8249 to make the sysdeps.h read/write/open/close + functions specifically for sockets only, and move generic + read/write/open/close into unix-specific code. + +2006-09-14 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind + complaint about accessing revents when poll returns 0, from Julian Seward. + +2006-09-14 John (J5) Palmieri + + * Released 1.0 RC 1 (0.93) + +2006-09-14 John (J5) Palmieri + + * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file): + use _dbus_close instead of close + +2006-09-14 John (J5) Palmieri + + * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket + credentials. Fixes "external" authentication under e.g. NetBSD + which does not support any other socket credentials mechanism. + (Patch from Julio M. Merino Vidal ) + +2006-09-14 John (J5) Palmieri + + * dbus/dbus-threads.c: Allow recursive mutex's to be passed into + dbus_threads_init and be used by the dbus mutex functions to + avoid deadlocks. + + * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item + +2006-09-13 John (J5) Palmieri + + * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file): + use threadsafe readdir_r instead of readdir + +2006-09-13 John (J5) Palmieri + + * dbus-threads.c (dbus_threads_init_default): New method for + initializing the internal thread implementation (Patch from + Alexander Larsson ) + +2006-09-11 John (J5) Palmieri + + * remove a bunch of todo items from the 1.0 list + +2006-09-11 John (J5) Palmieri + + * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and + key not found + +2006-09-11 John (J5) Palmieri + + * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more + complex debugging code + + * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move + between the test suite ifdefs + (_dbus_verbose_bytes): return if verbosity is not enabled + +2006-09-11 John (J5) Palmieri + + * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c: + remove DBusMark + +2006-09-10 Havoc Pennington + + patch mostly by Peter Kümmel, bug #8211 + + * dbus/dbus-sysdeps-unix.c: new file, which splits out + unix-specific stuff in dbus-sysdeps.c + + * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, + and move unix-specific stuff to dbus-sysdeps-unix.c + + * configure.in: check HAVE_ERRNO_H + +2006-09-08 John (J5) Palmieri + + * bus/test-main.c (main): Initialize threading during tests + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): + Unlock connection on error + (generate_local_error_message): static method for generating + an error message when we don't have a message to reply to + (_dbus_connection_block_pending_call): Send a disconnect error + instead of just a timeout (NULL) when the bus gets disconnected + while blocking for a reply. + +2006-09-08 John (J5) Palmieri + + * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove + filters (Patch from Kimmo Hämäläinen + ) + +2006-09-07 John (J5) Palmieri + + * dbus/dbus-connection-internal.h: Add prototype for + _dbus_connection_test_get_locks to remove warning + +2006-09-07 John (J5) Palmieri + + * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we + close child_err_report_pipe[WRITE_END] on exec (Patch from + Kimmo Hämäläinen ) + +2006-09-07 John (J5) Palmieri + + * Clean up close calls to use _dbus_close (Patch from + Kimmo Hämäläinen ) + +2006-09-06 John (J5) Palmieri + + * doc/TODO: + - Remove pending call locking todo item + - dbus_connection_open now holds hard ref. Remove todo item + - do proper locking on _dbus_bus_check_connection_and_unref + and handle DBUS_BUS_STARTER. Remove todo item + - Warn on closing of a shared connection. Remove todo item + + * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c, + dbus/dbus-connection.c: Use the dbus_connection_close_internal + so we don't get the warning when closing shared connections + + * test/test-service.c, test/test-shell-service.c: Applications + don't close shared connections themselves so we unref instead of + close + + * test/test-utils.c (test_connection_shutdown): Close the connection + + * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to + _dbus_bus_check_connection_and_unref_unlocked since we only call this + method on a locked connection. + Make sure we call _dbus_connection_unref_unlocked instead of + dbus_connection_unref also. + Handle DBUS_BUS_STARTER correctly + + * dbus/dbus-connection.c (connection_record_shared_unlocked): + Mark as shared and hard ref the connection + (connection_forget_shared_unlocked): Remove the hard ref from the + connection + (_dbus_connection_close_internal_and_unlock): New internal function + which takes a locked connection and unlocks it after closing it + (_dbus_connection_close_internal): New internal function which acts + like the origonal dbus_connection_close method by grabbing a connection + lock and calling _dbus_connection_close_internal_and_unlock + (dbus_connection_close): Public close method, warns when the app + trys to close a shared connection + +2006-09-06 John (J5) Palmieri + + * bus/driver.c: + (bus_driver_generate_introspect_string): New method for populating + a DBusString with the introspect data + (bus_driver_handle_introspect): Move introspect generation code to + bus_driver_generate_introspect_string + + * bus/main.c: + (introspect): New function which prints out the intropect data and + exits + (main): Add a --introspect switch + +2006-09-06 John (J5) Palmieri + + * doc/TODO: Removed dtd publishing item. + It seems the dtd has already been added at + http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd + +2006-09-05 John (J5) Palmieri + + * doc/TODO, various source files: Audited todo's and FIXME's and + prepended the ones we should be looking at with 1.0. Those + prepended with 1.0? need clerification or might not be needed + for 1.0 + +2006-09-05 John (J5) Palmieri + + * dbus/dbus-pending-call.c: Add some checks so we don't crash on + NULL in the public API (Patch from Kimmo Hämäläinen + ) + +2006-09-05 John (J5) Palmieri + + * configure.in: Fix for OS-X compile time endian issues (patch from + Benjamin Reed ) + +2006-09-05 John (J5) Palmieri + + * configure.in: Check for no-common compiler flag (OS-X fix from + Benjamin Reed ) + +2006-09-01 John (J5) Palmieri + + * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat + ) + +2006-08-29 Havoc Pennington + + * test/test-service.c (path_message_func): fix lack of return value + + * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix + formatting, remove #ifdef, and fix docs. #ifdef doesn't make + any more sense than on anything else in this file. + (_dbus_get_tmpdir): add const to return value, and keep the + results of the various getenv around in a static variable. + +2006-08-29 Havoc Pennington + + * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change + from Ralf Habacker to move UNIX-specific sysdeps into a separate file. + +2006-08-25 John (J5) Palmieri + + * test/Makefile.am: change find to use syntax that works with non + gnu versions of find + +2006-08-25 John (J5) Palmieri + + * dbus/dbus-transport.c: fix invalid deref when checking if + a vtable method exists (Patch from Christian Ehrlicher + ) + +2006-08-25 John (J5) Palmieri + + * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, + test/name-test/Makefile.am: Fixed some issues with getting get dbus + to build with builddir != srcdir (Taken from a patch by Bernard Leak + ) + +2006-08-25 John (J5) Palmieri + + * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the + default case + +2006-08-25 John (J5) Palmieri + + * configure.ac, bus/Makefile.am: Generalize kqueue support so that + it works on any system providing this interface, not only FreeBSD. + For example, NetBSD. (Patch by Julio M. Merino Vidal ) + +2006-08-20 Havoc Pennington + + * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to + the docs + +2006-08-18 John (J5) Palmieri + + * Released 0.92 + +2006-08-18 John (J5) Palmieri + + * dbus/dbus-threads.c (dbus_threads_init): change the documentation + to reflect the init late change + + * bus/bus.c (bus_context_new): Check user before we fork so we can + print out an error message a user will be able to see + +2006-08-18 John (J5) Palmieri + + Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) + + * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h: + Add two more global locks for use on windows platforms. These are + unused on non-windows platforms but are not ifdefed out to avoid + potential bugs (i.e. the few bytes lost does not warrent the extra + maintanence and complexity that having seperate sets of locks would + cause) + +2006-08-18 John (J5) Palmieri + + * bus/services.c (bus_registry_acquire_service): Return an error + when an application tries to register the org.freedesktop.DBus Bus Name + + * bus/services.c (bus_registry_release_service): Return an error + when an application tries to release the org.freedesktop.DBus Bus Name + +2006-08-17 Alp Toker + + * doc/dbus-specification.xml: Fix some minor typos. + +2006-08-17 John (J5) Palmieri + + * configure.in: use $with_init_scripts instead of $operating_system + to determine where to store the pid since the init scripts manipulate + the pid file (patch from Marcelo Ricardo Leitner + . + +2006-08-16 John (J5) Palmieri + + * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and + static DBusList *uninitialized_condvar_list to support new late + initialization threading model. In this model threads can be initialized + even after the D-Bus API has been used but still needs to be initialized + before the second thread has been started. Mutexes and condvar addresses + are stored in the two static lists and are replaced with actuall locks + when threads are initalized. + (_dbus_mutex_new_at_location): New method for creating a mutex and placing + the location into the static list + (_dbus_mutex_free_at_location): New method for removing a mutex location + from the static list and freeing the mutex + (_dbus_condvar_new_at_location): New method for creating a conditional + variable and placing the location into the static list + (_dbus_condvar_free_at_location): New method for removing a conditional + variable location from the static list and freeing the conditional variable + (init_uninitialized_locks): Atomic method which goes through the static + lists of mutex and condvar location and updates them with actuall locks + (init_global_locks): changed to init_locks + + * dbus/dbus-connection.c: + (_dbus_connection_test_get_locks): New method for tests to check connections + (_dbus_connection_new_for_transport): Use the new at_location mutex and + condvar API + (dbus_connection_allocate_data_slot): Pass in the global lock address + to _dbus_data_slot_allocator_alloc + + * dbus/dbus-dataslot.c: + (_dbus_data_slot_allocator_alloc): Use the address of the mutex + instead of the mutex itself + + * dbus/dbus-message.c: + (dbus_message_allocate_data_slot): Pass in the global lock address + to _dbus_data_slot_allocator_alloc + + * dbus/dbus-pending-call.c: + (dbus_pending_call_allocate_data_slot): Pass in the global lock address + to _dbus_data_slot_allocator_alloc + + * dbus/dbus-server.c: + (_dbus_server_init_base): Use the new at_location mutex API + (dbus_server_allocate_data_slot): Pass in the global lock address + to _dbus_data_slot_allocator_alloc + + * test/name-test/test-threads-init.c: New test case for late thread + initialization + +2006-08-14 John (J5) Palmieri + + * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): + Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort + causes compile problems when asserts are turned off + Keeping _dbus_warn for printing out the message so even if + asserts are turned off the user gets the messages that something is + wrong + +2006-08-14 John (J5) Palmieri + + Patches by Kjartan Maraas + + * bus/services.c (bus_service_list_queued_owners): + Add a pointer cast to fix compiler warning + + * dbus/dbus-dataslot.c (_dbus_data_slot_list_get): + return a NULL instead of FALSE since the return type + is not expecting a boolean + + * dbus/dbus-marshal-basic.c (_dbus_marshal_test): + Remove unused variable + + * dbus/dbus-marshal-recursive-util.c (node_new): + return a NULL instead of FALSE since the return type + is not expecting a boolean + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + Send a NULL into _dbus_transport_new_for_fd instead of a FALSE + because we are expecting a pointer not a boolean + + * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): + add void as the parameter so some compilers + don't complain + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket, + _dbus_transport_new_for_tcp_socket): + Send a NULL into _dbus_transport_new_for_fd instead of a FALSE + because we are expecting a pointer not a boolean + + * test/shell-test.c (test_command_line): + cast the second argument to _dbus_list_append to avoid compiler + warnings + + * test/test-names.c (main): remove unused variable + + * test/test-service.c (check_hello_from_self_reply): + Initialize echo_message and echo_reply to NULL + + * test/test-shell-service.c (handle_echo): + Remove unused variable and cast the third parameter passed to + dbus_connection_get_object_path_data to avoid compiler warrnings + + * test/name-test/test-names.c (clear_message_queue): + Remove unused function + + * test/name-test/test-pending-call-dispatch.c: + Fix format string in printf + + +2006-08-14 John (J5) Palmieri + + * dbus/dbus-bus.c: + * test/name-test/test-names.c: + Remove test method dbus_bus_connection_get_unique_name because + we already have public method dbus_bus_get_unique_name that + does the exact same thing + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-signature.c: + fix typos in Julio's previous patch which cause make check to fail + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp. + In any case it was wrong since this is a test checking to see if + address parsing is correct. There was no need to get the true + tmp directory. + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-macros.h: Revert the addition of stddef.h + as we should not be adding it to library headers + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-signature.c: + Fix the unit tests so that they work if assertions are not enabled. + (patch from Julio M. Merino Vidal ) + +2006-08-10 John (J5) Palmieri + + * tools/run-with-tmp-session-bus.sh: + * test/name-test/run-test.sh: + Remove bashisms (patch from Julio M. Merino Vidal + ) + +2006-08-10 John (J5) Palmieri + + * configure.in: add a version (>= 2.6.0) check for libxml2 + +2006-08-10 John (J5) Palmieri + + * configure.in: make sure the compiler supports -Wfloat-equal + + * bus/dir-watch-dnotify.c: move functional code after + variable declerations (C99 fix) (patches from Jens Granseuer + + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-macros.h: + add #include so that Sun compilers don't complain about + the defining NULL + +2006-08-10 John (J5) Palmieri + + * dbus/dbus-sysdeps.c: + * dbus/dbus-address.c: + * bus/activation.c: + * test/shell-test.c: + don't hardcode tmp directory (patch from Dave Meikle + ) + +2006-08-09 John (J5) Palmieri + + * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc): + Change an assert to a detailed warning and abort. + When allocator->lock != mutex it indicates that the user has failed + to initalize threads before using the D-Bus library. This warning + helps the user identify the issue and fix their app. + +2006-08-08 John (J5) Palmieri + + These are all patches from Kjartan Maraas + with cleanups of bugs found from Coverity reports: + + * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file): + close the file on error to avoid a leak + + * bus/expirelist.c (bus_expire_list_test): + Check for NULL on dbus_new0 + + * bus/activation.c (update_directory): + remove dead code + + * bus/config-parser.c (merge_service_context_hash, start_selinux_child): + Fix some leaks + + * bus/bus.c (process_config_every_time): + Fixed a leak + + * bus/desktop-file.c (parse_key_value): + Fixed leak + + * bus/selinux.c (bus_selinux_id_table_insert): + Fixed leak + +2006-08-08 John (J5) Palmieri + + * dbus/dbus-object-tree.c (_dbus_object_subtree_new): + remove dead code + +2006-08-08 John (J5) Palmieri + + * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of + #!/bin/bash + +2006-08-08 John (J5) Palmieri + + * Doxyfile.in: fix the INPUT line so we can generate docs + when sourcedir != builddir (patch from Cygwin Ports maintainer + + +2006-08-08 John (J5) Palmieri + + * dbus/dbus-sysdeps.h: + * dbus/dbus-sysdeps.c: + * dbus/dbus-string.c: + s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with + GLib's function which does the same thing + + * configure.in: + * bus/Makefile.am: + * bus/dir-watch-default.c: + * bus/dir-watch-dnotify.c: + * bus/dir-watch-kqueue.c: + Add kqueue directory watching for freebsd and split the directory + watching code into seperate files per method/arch + (patches from Timothy Redaelli ) + +2006-08-08 John (J5) Palmieri + + * configure.in: + * tools/Makefile.am: + * tools/dbus-launch.c: + * bus/Makefile.am: + allow --with-dbus-daemondir switch to be used to make the + daemon install to a seperate bindir like /usr/libexec + (patch from Brian Cameron + + * bus/Makefile.am (install-data-hook): removed the slash after + $(DESTDIR) so we don't get the double slash which does not work + in windows (patch from Andras Porjesz + ) + +2006-08-08 John (J5) Palmieri + + * dbus/dbus-sysdeps.h: + * dbus/dbus-sysdeps.c: + add _dbus_printf_length (patch from Peter Kümmel + ) + +2006-08-08 John (J5) Palmieri + + * dbus/dbus-internals.c: unistd.h is not used + (_dbus_verbose_real): only enable verbose printing + if DBUS_VERBOSE environment var is set to '1' + (patch from Peter Kümmel ) + +2006-08-08 John (J5) Palmieri + + * configure.in: add a GCC flag check for -Wdeclaration-after-statement + so we still compile on older gcc (patch from Frederic Peters + + +2006-08-04 Havoc Pennington + + * configure.in: add -Wdeclaration-after-statement + + * dbus/dbus-connection.c: change all the pending call stuff to + reflect the fact that pending call operations use the connection + lock + + * dbus/dbus-pending-call.c: add locking here + + * dbus/dbus-errors.c (struct DBusRealError): don't make the name + field const consistent with how message field is done + +2006-08-03 John (J5) Palmieri + + * s/D-BUS/D-Bus/g + +2006-08-03 John (J5) Palmieri + + * dbus/dbus-object-tree.c: Patch by Benjamin Otte + - fix invalid + read/write reported by valgrind + +2006-07-24 John (J5) Palmieri + + * Released 0.91 + +2006-07-22 John (J5) Palmieri + + * dbus/dbus-connection.c: + (_dbus_connection_attach_pending_call_unlocked): + (connection_timeout_and_complete_all_pending_calls_unlocked): + Make sure we set timeout_added on pending calls to FALSE when + we remove the timeout from the connection + +2006-07-21 John (J5) Palmieri + + * Removed some extra bindings stuff lingering around (thanks timo) + * dbus-pendingcall.c (_dbus_pending_call_new): + s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion + when we tried to take a lock on an already locked connection + +2006-07-17 John (J5) Palmieri + + * Released 0.90 + +2006-07-17 Havoc Pennington + + * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit + ints, reported by Owen Taylor + +2006-07-17 John (J5) Palmieri + + * doc/TODO: + * dbus/dbus-bus.c: + * dbus-errors.c: + * dbus/dbus-marshal-validate.c: + Removed TODO items which were fixed or are no longer relevent + +2006-07-17 John (J5) Palmieri + + * dbus-qt4-1.pc.in, dbus-sharp.pc.in: + Remove stray files from the stripped bindings + +2006-07-16 Havoc Pennington + + * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error): + Improve the error message on reply timeout + +2006-07-14 John (J5) Palmieri + + * Remove all bindings + +2006-07-13 John (J5) Palmieri + + * dbus-connection.c (dbus_connection_send_with_reply): return TRUE + and set pending_reply out arg to NULL is connection is disconnected + (connection_timeout_and_complete_all_pending_calls_unlocked): New + static method for cleaning up pending calls on disconnect + (_dbus_connection_get_dispatch_status_unlocked): If we have pending + calls queued timeouts on disconnect + + * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection): + Remove + +2006-07-13 Carlos Garcia Campos + + * bus/activation.[ch] (bus_activation_list_services): new function to + get the list of services that can be activated + + * bus/dispatch.c: test coverage for the new bus method + ListActivatableNames + + * bus/driver.c: new bus method ListActivatableNames to get the list of + services that can be activated + + * doc/dbus-specification.xml: ListActivatableNames method documentation + +2006-07-12 John (J5) Palmieri + * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of + source files + +2006-07-12 John (J5) Palmieri + * dbus/dbus-message-factory.c: + Fix index into an array (patch by Peter Kümmel ) + +2006-07-12 John (J5) Palmieri + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: + * file dbus/dbus-pending-call.c: + * dbus/dbus-pending-call.h: + Make DBusPendingCall an opaque type even to D-Bus internals + +2006-07-07 John (J5) Palmieri + + * dbus/dbus-connection.h: remove connection_disconnect and replace with + connection_close + + * dbus/dbus-connection.c: include dbus-bus.h + (_dbus_connection_read_write_dispatch): make static + +2006-07-07 John (J5) Palmieri + + * dbus/dbus-connection.c (dbus_connection_close): removed deprecated + function + (dbus_connection_dispatch): On disconnect unref any shared connections + + * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function + for cleaning up shared connections on disconnect + (internal_bus_get): get a hard refrence to shared connections when + they are created + + * doc/TODO: Remove items which are no longer relevent or have been fixed + Split 1.0 todo items with a 0.90 freeze todo list + +2006-06-14 Ross Burton + + * glib/dbus-gobject.c: + Free a leaking GArray (surely not!) in dbus_g_method_return. + +2006-06-14 Ross Burton + + * tools/Makefile.am: + * tools/dbus-monitor.c: + Don't use the GLib bindings in dbus-monitor (patch from Ralf + Habacker). + +2006-06-14 Ross Burton + + * tools/dbus-print-message.c: + Also print the object path when outputting signals or method calls. + +2006-06-13 Thiago Macieira + + * qt/src/Makefile.am: install the qdbus.h header. + This allows people to actually use the installed code. + +2006-06-12 Ross Burton + + * glib/dbus-gproxy.c: + Don't leak a GArray when firing signals (thank Rob Taylor for review). + +2006-06-12 Thiago Macieira + + * Released 0.62 + +2006-06-12 Thiago Macieira + + * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that + break pedantic builds. Closes bug 6043 (patch approved by + Havoc back in February). + +2006-06-12 Thiago Macieira + + * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods + that took a QDBusMessage parameter. + * qt/src/qdbusbus.h: Add a default flag for RequestName. + * qt/tools/dbus.cpp: Don't use automatic call because we might + be calling an async method: request a reply. + +2006-06-11 Thiago Macieira + + * test/qt/*: Update the testcases, including testing the new + functionality of sending null QByteArray and QString over the + bus. Add new headertest test and restore the old + qdbusxmlparser test. + +2006-06-11 Thiago Macieira + + * qt/tools/dbuscpp2xml.cpp: Compile on Windows. + * qt/tools/dbusidl2cpp.cpp: Add missing newline. + + * qt/examples/Makefile.am: + * qt/examples/chat.h: Use UI-generated files with the ui_*.h + form. + + * qt/src/qdbusmarshall.cpp: Allow sending of QString() and + QByteArray() (nulls) over the bus. + * qt/src/qdbusabstractinterface.cpp: Use the correct variable, + the one that has the signature suffix stripped. + * qt/src/qdbusreply.h: Make some methods const. + +2006-06-09 Thiago Macieira + + Patch from Timo Hoenig . + + * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers + required during build to EXTRA_DIST. + * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST. + * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS. + * configure.in: Fix "make dist", take care that the Makefile for + qt/dbus is being generated. + +2006-06-07 John (J5) Palmieri + + * bus/bus.c: Fix eavesdropping on method calls + +2006-06-07 John (J5) Palmieri + + * configure.in: + * dbus/dbus-userdb-util.c: + Add Solaris console owner patch from Artem Kachitchkine + +2006-06-07 Thiago Macieira + + * qt/Makfile.am: + * qt/src/Makefile.am: Fix the EXTRA_DIST after the + reorganisation. Thanks to Timo Hoenig for pointing this out. + +2006-06-06 Robert McQueen + + * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every + call to dbus_g_type_get_struct. + +2006-06-06 Robert McQueen + + * glib/dbus-gvalue-utils.c: Fix the failing test where static string + pointers were put into a GPtrArray-based specialised collection, and + then freed along with the array. GValues which you add into + collections or maps which have the NOCOPY flag set are assumed to not + belong to the caller, so rather than the existing pointer-stealing + semantics, they are copied instead. Given that the main consumers of + this abstraction are the bindings themselves, I don't think this is + too bad, but others should watch their choice of take vs set_static. + +2006-06-06 Robert McQueen + + * glib/dbus-gvalue-utils.c: Spotted a warning about the return value + of g_slist_prepend not being used. Fixed copying of slist-based + specialised collections, then wrote a test case and found that it was + all broken. Went on to fix iterating and appending too. Good thing + nobody uses this code yet. + +2006-06-06 Robert McQueen + + * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of + the iterators use gvalue_take_ptrarray_value (the GValues themselves + are discarded without unsetting, so it makes no difference whether + we take or set_static). Remove cases for G_TYPE_POINTER because + there really is nothing useful we can do with them in our + specialised types - we *need* boxed copy/free functions at the very + least. + +2006-06-05 Thiago Macieira + + * qt/dbus: Add directory. I had forgotten to add this + yesterday after the move... + + * qt/examples/Makefile.am: + * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp. + + * qt/tools/Makefile.am: + * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp. + Added feature to get and set properties. + Added validation of service, object path and interface names. + + * qt/tools/dbusidl2cpp.cpp: Two new features: + 1) Allow specifying both the header and the source file names, + by separating them with a colon. + 2) Don't write an interface output if the -p switch wasn't + given, but the -a was. + + * qt/src/*: Fix usage of Iterators and ConstIterators. + Fix shadowing of variables by other variables (-Wshadow). + Fix keyword-cleanliness in headers. + Fix ASCII-cast (QLatin1String, QLatin1Char). + Fix validation of member names. + Add extra checking of introspection data during XML parsing. + Various bug fixes. + +2006-06-04 Thiago Macieira + + * dbus/Makefile.am: + * dbus/qdbus.h: Remove unnecessary file. This is mirrored into + qt/dbus/qdbus.h now. + +2006-06-04 Thiago Macieira + + * configure.in: Make --disable-qt actually do + something. Patch inspired by Zack Rusin. + +2006-06-04 Thiago Macieira + + * qt/: Update to Subversion r548032. + This includes a big reorganisation of the files inside the + subdir. + +2006-05-30 Sjoerd Simons + + * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more + clear: + "Failed to connect to socket : " instead of + "Failed to connect to socket : :" + + * dbus/dbus-transport-unix.c: Fix crash when no host option is given + for a tcp transport. + +2006-05-29 Thiago Macieira + + * qt/*: Update the QtDBus bindings up to revision 546310 in + Subversion. + This adds the dbuscpp2xml tool, that parses a C++ header and + outputs a D-BUS Introspection XML. + +2006-05-21 Havoc Pennington + + * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name + is not NULL when it shouldn't be. Also a couple of possible fixes + for #4637 though I don't understand why the bug happens, to be + honest... also the object constructor has an assert name != NULL + and the name is only currently NULL for peer-to-peer proxies that + I don't think anyone uses? So it should be asserting. + Anyway, for now at least see if we get an earlier assertion failure. + + * glib/dbus-gvalue-utils.c: Put in a couple of assertions for + apparently broken code to be sure the tests fail and someone + will fix them... + +2006-05-07 Thiago Macieira + + * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists + and arrays when they had a single element: has_next returns + false, even before you read the element. So, instead, check + the array length. + +2006-05-06 Thiago Macieira + + * qt/qdbusmessage.cpp: + * qt/qdbustypehelper_p.h: + * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when + the list is a const-reference + +2006-05-03 John (J5) Palmieri + + * Adding old doc patch that never got applied + + * dbus/bus.c (dbus_bus_add_match): Add documentation + + * doc/dbus-specification.xml: Add documentation for the match rules + and the AddMatch and RemoveMatch methods + +2006-05-02 Thiago Macieira + + * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct + call (r535506) + + * qt/dbusidl2cpp.cpp: + * qt/qdbusabstractadaptor.cpp: + * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a + sibling of the QDBusAbstractAdaptor objects instead of the + parent. (r535848) + + * qt/dbusidl2cpp.cpp: + * qt/qdbusabstractinterface.cpp: + * qt/qdbusabstractinterface.h: + * qt/qdbusabstractinterface_p.h: + * qt/qdbusinterface.cpp: Make properties in interfaces + actually work. The code that was generated would not compile, + due to moc calls to functions that did not exist. They now + shall. (r536571) + +2006-04-30 Thiago Macieira + + * Makefile.am: + * configure.in: + * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1. + Thanks to Brad Hards for providing the patch + +2006-04-29 Thiago Macieira + + * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct + call. (r535506) + +2006-04-29 Thiago Macieira + + * qt/examples/dbus.cpp: Enhance error messages and use + QDBusInterfacePtr. + +2006-04-29 Thiago Macieira + + * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr + and disable the copy operators. (r533772, r534746) + + * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929) + + * qt/qdbusabstractinterface.cpp: + * qt/qdbusabstractinterface.h: Change the default call mode to + not use the event loop. Add convenience call() methods that + take a CallMode parameter. (r534042) + + * qt/qdbusconnection.h: Change the default call mode to not + use the event loop. (r534042) + + * qt/qdbusinterface.cpp: + * qt/qdbusinterface.h: Add a method to tell us if the + interface is valid (since we don't return a null pointer + anymore) (r534099) + + * qt/qdbusinterface_p.h: Don't crash if metaObject is 0 + (r534101) + + * qt/qdbusinternalfilters.cpp: Decouple the introspection + function in two so taht we get the chance to introspect + without having a QDBusMessage (r534102) + + * qt/qdbusbus.h: + * qt/qdbusconnection.cpp: + * qt/qdbusconnection_p.h: + * qt/qdbusintegrator.cpp: Keep a list of our own names to + avoid a round-trip to the server when attempting to introspect + one of our own objects. Also make sure the filter functions + match the empty interface as well. (r534108) + Don't keep the connection names. Instead, trust the unique + connection name (r534111) + Remove event loop usage (r534112) + +2006-04-29 Thiago Macieira + + * qt/qdbusintegrator.cpp: Fix assertion failure spotted by + Brad Hards. + +2006-04-28 Robert McQueen + + * glib/dbus-gproxy.c: Fix properties so that they can be given in + any order, making it easier for people who inherit from this + object. + +2006-04-28 Robert McQueen + + * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking + of memory from within pointer arrays and lists. Fixes bug #6300. + +2006-04-28 Robert McQueen + + * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in + generating struct signatures. Fixes bug #6083. + +2006-04-28 Robert McQueen + + * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc + to qdbusconnection_p.moc. + +2006-04-24 John (J5) Palmieri + + * README, INSTALL: Doc fixes + Patch from Brad Hards + +2006-04-23 Thiago Macieira + + * qt/examples/dbus.cpp: Use the new merged-interface mode for + the dynamic meta object. No need to guess which interface to + call. + +2006-04-23 Thiago Macieira + + * qt/qdbusconnection_p.h: + * qt/qdbusmetaobject.cpp: + * qt/qdbusmetaobject_p.h: + * qt/qdbusintegrator.cpp: Use the new merged-interface mode + for the dynamic meta object. No need to guess which + interface to call. + * qt/qdbusabstractinterface_p.h: + * qt/qdbusconnection.cpp: + * qt/qdbusintegrator.cpp: + * qt/qdbusinterface.cpp: + * qt/qdbusinterface.h: Make findInterface always return a non-null pointer. + Add a QDBusRef that looks and behaves like DCOPRef. + +2006-04-23 Thiago Macieira + + * dbus/dbus-connection.c: Interfaces are optional in method + calls, so don't give up if the interface parameter is NULL. + Patch reviewed by Havoc Pennington. + +2006-04-23 Thiago Macieira + + * qt/qdbusreply.h: Add default constructor and operator= + (r532625) + * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach() + in public headers (r532952) + * qt/qdbusabstractinterface.cpp: + * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and + make it the default (r532951) + +2006-04-19 John (J5) Palmieri + + * dbus/dbus-connection.c: Fix asserts + Patch from Tim Moloney + +2006-04-19 John (J5) Palmieri + + * mono/Connection.cs, mono/Message.cs: Check Target type + Patch from Aaron Bockover (abockover at novell.com) + +2006-04-13 Thiago Macieira + + * INSTALL: fine-tune the requirements for the Qt4 binding. + +2006-04-16 Daniel P. Berrange + + * tools/dbus-print-message.c: Added support for printing of all + remaining data types. Fixed logic for indentation of compound + data types. + +2006-04-15 Daniel P. Berrange + + * INSTALL: fill out content of file providing DBus specific + build installations, followed by generic Auto* INSTALL file + content + +2006-04-13 Thiago Macieira + + * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug. + Patch by Stefan Eilers. (r529537) + +2006-04-13 Thiago Macieira + + * qt/qdbusinternalfilters.cpp: Don't show the parent's + contents (r528208) + +2006-04-10 Thiago Macieira + + * qt/Makefile.am: fix the dependency for + qdbusconnection_p.moc. It's included in qdbusintegrator.cpp, + not in qdbusconnection.cpp. + Thanks to Jakub Stachowski for + spotting this. + +2006-04-10 Thiago Macieira + + * qt/examples/listnames.cpp: + * qt/examples/Makefile.am: Three ways to list the names on the + bus. + +2006-04-10 Thiago Macieira + + * test/qt/tst_hal.cpp: Remove the waiting, since it's not + needed anymore. Requires Qt 4.1.3 to work properly. (r528148) + +2006-04-10 Thiago Macieira + + Merge from Subversion: + * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to + something that exists (r526315) + * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable + slots/signals (r526316) + * qt/qdbusinternalfilters.cpp: Fix the setProperty call and + also return an unknown-method error if the parameters don't + match for org.freedesktop.DBus.Properties. (r526842) + * qt/examples/dbus.cpp: Allow passing of QVariants (r526843) + * qt/qdbusintegrator.cpp: Restore the proper order of + delivery: don't make method returns be delivered on priority + (r528150) + +2006-03-28 Thiago Macieira + + * configure.in qt/Makefile.am: add qt/examples + * qt/examples: Add QtDBus example programs: + - hello: Hello, World + - ping: Simple method-calling program + - pong: Simple object-exporting program (not using adaptors) + - complexping: Interactive method-calling program + (also gets and sets properties). + - complexpong: Sample program exporting methods, signals and + properties, using adaptors. + - dbus: Simple implementation of a generic method-calling + program, similar to 'dbus-send', but with semantics + similar to 'dcop'. + - chat: Simplistic chat program, implemented using signals + and the system bus. Looks like IRC. + +2006-03-28 Thiago Macieira + + * configure.in: Detect QtGui (necessary for one of the + example programs). Note: this increases the minimum required + version of Qt to 4.1.3. + +2006-03-28 Thiago Macieira + + * test/qt/*: Sync with KDE Subversion revision 523647. + Update the testcases to the new API. Remove testcases for + classes that are no longer public or have been removed. + +2006-03-28 Thiago Macieira + + * qt/*: + * dbus/qdbus.h: Sync with KDE Subversion revision + 523647. Hopefully, this will be the last of the + source-incompatible changes. Documentation has been improved; + support for QList has been added; QDBusObject is + gone; QDBus(Abstract)Interface is now a QObject with + auto-generated meta-object; QDBusIntrospection is marked + private, since QMetaObject can be used now; lots of bugfixes. + +2006-03-16 John (J5) Palmieri + + Patch from Milosz Derezynski + + * configure.in: + Output the service directory in the configure summary + + * dbus-1.pc.in: + Add session_bus_services_dir + +2006-03-10 Ross Burton + + * tools/dbus-print-message.c: + Add support for object paths and signatures. + +2006-03-06 Sjoerd Simons + + * bus/bus.c: (bus_context_reload_config): Flush the user database cache on + config reload. + * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group + information caches + * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): + * dbus/dbus-hash.h: Add function to remove all entries from a hash table + * dbus/dbus-userdb.c: (_dbus_user_database_flush): + * dbus/dbus-userdb.h: Add function to flush all user/group information + caches. + +2006-03-06 Thiago Macieira + + * qt/dbusidl2cpp.cpp: + * qt/Makefile.am: add the dbusidl2cpp tool, the replacement + for dcopidl2cpp, found in the KDE installations (or the more + modern kalyptus): generate Qt4 C++ code for the input XML + introspection. Currently no IDL parsing. + +2006-03-06 Thiago Macieira + + * test/qt/*: Update the self-tests. + +2006-03-06 Thiago Macieira + + * qt/*: + * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This + represents the first feature-complete version of the Qt4 + bindings since I took ove maintainership. + +2006-03-06 Thiago Macieira + + * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings + dir. This is C++, so we can't use the DBus ones. + +2006-03-02 John (J5) Palmieri + + * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h + (Patch from Artem Kachitchkine ) + +2006-03-02 John (J5) Palmieri + + * dbus/dbus-connection.c: + (_dbus_connection_block_pending_call): + Check to see if our data has already been read off the connection + by another blocking pending call before we block in poll. + (check_for_reply_and_update_dispatch_unlocked): + Code taken from _dbus_connection_block_pending_call - checks for + an already read reply and updates the dispatch if there is one. + + * test/name-test/test-pending-call-dispatch.c: + New test for making sure we don't get stuck polling a + dbus connection which has no data on the socket when + blocking out of order on two or more pending calls. + +2006-02-28 Thiago Macieira + + * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues: + make/automake don't detect that we're talking about the same + .lo file if I specify the full path to the source files. + +2006-02-26 Havoc Pennington + + * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed + + * dbus/dbus-bus.c (internal_bus_get): in the error message if the + session bus variable is unset, suggest "man dbus-launch" and "man + dbus-daemon" to figure out how to fix the problem + +2006-02-25 Havoc Pennington + + * glib/dbus-glib-tool.c (usage): fix up the usage message, someone + should make this thing use the new glib options parser + +2006-02-25 Thiago Macieira + + * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the + .lo files taking moc sources. + +2006-02-25 Havoc Pennington + + * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h + and install it as a public header + +2006-02-24 John (J5) Palmieri + + * Released 0.61 + +2006-02-24 John (J5) Palmieri + + * proxies.py: Fix the callchain + +2006-02-24 John (J5) Palmieri + + * patch from Sjoerd Simons : + + * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to + dbus/dbus-sysdeps.c + + * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't + call _dbus_group_info_free_allocated which causes infinite loop, + correctly call _dbus_group_info_free + +2006-02-20 Thiago Macieira + + * qt/qdbusinterface_p.h: + * qt/qdbusinterface.cpp: Use the standard + org.freedesktop.DBus.Method.NoReply annotation for the "async" + calls instead of creating one for us. + + * qt/qdbusconnection_p.h: + * qt/qdbusintegrator.cpp: Remove debugging code. + + * qt/qdbusintegrator.cpp: + * qt/qdbusmessage.cpp: + * qt/qdbusmessage_p.h: + * qt/qdbusmessage.h: Change the behaviour of automatic + reply-sending: now a reply is always sent, unless the caller + didn't request one or if the user slot has already sent one. + +2006-02-16 Robert McQueen + + * configure.in: Patch from Debian packages by Sjoerd Simons + to add --with-qt-moc and --with-qt3-moc + arguments so it's possible to build both bindings in the + same tree. + + * qt/Makefile.am: Fix truncated value so that make dist works. + +2006-02-16 Robert McQueen + + * acinclude.m4, configure.in: Patch from Brad Hards + to avoid warnings from autoconf 1.9 by + improving quoting, re-ordering a few checks, and a few other + aesthetic tidy-ups. + +2006-02-16 Robert McQueen + + * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): + Patch from Rob Taylor to correct a bogus + assertion that the next element to read from the iter is fixed in + size. This is not the case when you are at the end of the iter, + because the next element type is INVALID. + + * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a + a bogus assert which means that you may not initialise a 0-length + string unless you provide a non-NULL pointer. This prevented + you from marshalling messages containing zero-length arrays in + some cases. + + * glib/dbus-gvalue.c (demarshal_collection_array): Another patch + from Rob to correct bogus asserts when trying to demarshal an + array and get_fixed_array got you 0 elements. Append nothing to + the GArray in this case. + + * test/glib/test-dbus-glib.c: Add a test case for round-tripping + an empty array via the glib bindings. Without all of the above + patches, this new test fails. + +2006-02-16 Robert McQueen + + * glib/dbus-gmain.c: Make the previous commit compile. + + * python/_dbus.py, python/matchrules.py: Patch from Ole Andre + Ravnaas to allow you to + specify sender_keyword="foo", path_keyword="bar" when adding + a signal listener, so that you can bind to signals generically + but still do something useful in your callback. + + * python/dbus_bindings.pyx: Demarshal the byte type as unsigned + chars so that they're not cast to chars and made negative. Thanks + to Jakub Stachowski for reporting this and testing the fix. + +2006-02-15 John (J5) Palmieri + + * dbus/dbus-glib.h: + * glib/dbus-gmain.h: + (dbus_g_connection_open): new method for openning + a connection to an arbitrary address in the glib bindings + + * ChangeLog: checkin last entry which doesn't seem to be commited + +2006-02-13 John (J5) Palmieri + + * tools/dbus-launch.c: Fixed sh syntax output + +2006-02-13 Robert McQueen + + * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c, + glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c, + glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c, + glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c: + Patch from Rob Taylor to add a big + missing piece of the glib bindings jigsaw puzzle. This modifies + the existing specialised types to have N type parameters (rather + than the current 1 or 2 for arrays and dictionaries respectively). + You can then use this to get a glib type to represent any arbitrary + D-Bus struct type using dbus_g_type_get_struct. The only + implementation of these types is with GValueArrays as before, + but it's now possible to store these in arrays, emit them in + signals, etc. + +2006-02-10 John (J5) Palmieri + + * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly + deal with nested arrays (Bug #5823) Patch by Thiago Macieira + + +2006-02-10 John (J5) Palmieri + + * mono/doc/Makefile.am: Fix parallel make problem with mono-doc + (Bug #4213) Patch from Doug Goldstein + +2006-02-10 John (J5) Palmieri + + * bus/connection.c (bus_connections_expect_reply): Make + pending reply limit not common to all connections (Bug #5416) + Patch from Kimmo Hämäläinen + +2006-02-10 John (J5) Palmieri + + * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720) + +2006-02-10 John (J5) Palmieri + + * gcj/Makefile.am: point to correct jar command (Bug #4529) + patch from Doug Goldstein + +2006-02-09 Joe Shaw + + * mono/Arguments.cs: Fix a magic number in the mono bindings + that doesn't work on 64 bit arches. Patch from Peter Johanson. + +2006-01-27 Robert McQueen + + * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's + patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol + when generating the client-side methods, instead of overloading + CSymbol which broke everything horribly. My apologies. + +2006-01-27 Robert McQueen + + * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch + by me and Rob Taylor to add a simple_free function to D-Bus map + and collection types, which allows those types which can be freed + with a GDestroyNotify (such as GHashTables and GArrays, but not + GPtrArrays) to be stored as the values in hashtables. + + * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}: + Patch by Rob Taylor to add nested dicts to the glib tests to check + the above code works, and appears not to leak when called repeatedly. + +2006-01-27 Robert McQueen + + * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor + to free a D-Bus allocated string with dbus_free () instead of + g_free (). + +2006-01-27 Iain Holmes + + * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose + method from being called multiple times. + +2006-01-19 Robert McQueen + + * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor + to add support for generating bindings + to arrays that are represented as GPtrArrays rather than GArrays (ie + size-variable things, such as strings, objects, structs, etc). + +2006-01-05 Robert McQueen + + * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki + to make it possible to inherit from + DBusGProxy, by splitting the DBusGProxy struct into a public part and + a private part, and moving the setting of the DBusGProxyManager into a + connection property, allowing proper GObject construction. + +2006-01-05 Robert McQueen + + * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki + to make dbus-binding-tool heed C symbol name + annotations when generating glib client bindings. + +2005-12-19 John (J5) Palmieri + + * dbus/dbus-shared.h: Call it shared constants instead of shared macros + + * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings + +2005-12-19 John (J5) Palmieri + + * dbus/dbus-shared.h: add DOxygen markup to quiet warnings + +2005-12-19 John (J5) Palmieri + + * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@}) + +2005-12-19 Ross Burton + + * doc/dbus-tutorial.xml: + Document the Glib client-side bindings, and list all possible annotations. + +2005-12-19 John (J5) Palmieri + + * dbus/bus.c (dbus_bus_release_name): Add documentation + +2005-12-06 Robert McQueen + + * python/service.py: s/sucessful/successful/ so we're allocating to + and reading from the same variable. Oops. + +2005-11-30 John (J5) Palmieri + + * Released 0.60 + +2005-11-30 John (J5) Palmieri + + * test/qt/Makefile.am: build from srcdir + + * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE + Note - this code is wrong and needs to be fixed by the Qt binding + developers. The flags should be treated as bitfields and not enums. + + * qt/qtconnection.h: Change ProhibitReplace to AllowReplace + +2005-11-30 John (J5) Palmieri + + * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, + link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods + in production code + +2005-11-30 John (J5) Palmieri + + * dbus/dbus-connection.c (dbus_connection_read_write): Add new + method for getting messages off the bus in the absence of a + mainloop. This method is much like + dbus_connection_read_write_dispatch except it does not dispatch + the messages to a registered filter function. Instead it + allows a developer to process messages by directly popping + them off the bus. + +2005-11-30 John (J5) Palmieri + + * bus/desktop-file.c (parse_key_value): Ignore locales allowing + the parser to continue instead of returning error + (bus_desktop_file_load): Do not free parser data when + parse_section_start or parse_key_value fails because it was + already freed by parser_free (patch from Carlos Garcia Campos + ) + +2005-11-30 John (J5) Palmieri + + * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c, + dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c + glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c + test/test-segfault.c, test/test-utils.c, + test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c + tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c: + Various cleanup of dead code and compiler warnings (patch from + Kjartan Maraas ) + +2005-11-30 John (J5) Palmieri + + * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak + (patch from Carlos Garnacho Parro + +2005-11-27 Robert McQueen + + * python/dbus_bindings.pyx: Repair my previous commit which reverted + part of the preceding one. Oops. Merge patch by Johan Hedberg + to fix marshalling of 16-bit integer values + on big-endian platforms. + + * test/python/test-client.py: Add some 16-bit integers to the test + values. + +2005-11-27 Carlos Garcia Campos + + * glib/dbus-gobject.c: Append a GValue instead of a basic type in + method return message for property getters + +2005-11-27 Robert McQueen + + * python/dbus_bindings.pyx: Fix a bug where doing a strict append + with type v of an instance of dbus.Variant(foo, type='x') caused + it to be boxed twice before sending over the bus. + + * python/dbus_bindings.pyx, python/service.py, + test/python/test-client.py: Update the constants for the new + request_name flags, and update comments/test cases now that queueing + is the default action. + +2005-11-22 John (J5) Palmieri + + * configure.in: + - Change version to 0.60 for impending release + - upped the sonames because of ABI and API breakage + +2005-11-22 John (J5) Palmieri + + * configure.in: Add test/name-test/Makefile to the generated + Makefile list + + * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT): + New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT + (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying + not to queue an ower if it can't be the primary owner + + * bus/bus.h: Add new internal BusOwner struct + + * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default) + to bus_registry_ensure and don't set the prohibit_replacement flag + since they are now set per BusOwner and not per name. + (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) + that returns the list of connections in a name's connection queue + + * bus/services.c (struct BusService): remove prohibit_replacement field + (struct BusOwner): new struct for keeping track of queued connections + and their associated flags for the queue + (struct BusRegistry): add a BusOwner memory pool + (bus_registry_new): initialize the BusOwner memory pool + (bus_registry_unref): free the BusOwner memory pool + (_bus_service_find_owner_link): new internal method for + searching the queue for a specific connection + (bus_owner_set_flags): new method for adding setting the flags on a + bus owner + (bus_owner_new): new method that creates a BusOwner object from the + pool and sets its flags + (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects + (bus_registry_ensure): Add the flags parameter + (bus_registry_acquire_service): Switch from using raw connections to + using the BusOwner struct + Add new state machine for dealing with the new set of flags + (bus_registry_set_service_context_table, struct OwnershipCancelData, + cancel_ownership, free_ownership_cancel_data, + add_cancel_ownership_to_transaction, struct OwnershipRestoreData, + restore_ownership, free_ownership_restore_data, + add_restore_ownership_to_transaction): Switch to using BusOwner + instead of raw connections + (bus_service_add_owner): Add flags parameter + Switch to using BusOwner instead of raw connections + Add state machine for dealing with the new set of flags + (bus_service_swap_owner): Swaps the first and second owners in the + queue. Used to make sure proper signals are sent when a service looses + or gains primary ownership. We never insert an owner at the top of the + queue. Instead we insert it in the second position and then swap. + (bus_service_remove_owner): Remove the owner from the queue sending + out the NameLost and NameOwnerChanged signals if the we were the + primary owner + (bus_service_get_primary_owners_connection): New method that extracts + the connection from the primary owner + (bus_service_get_primary_owner): Returns the BusOwner instead of the + connection + (bus_service_get_allow_replacement): Changed from the old + bus_service_get_prohibit_replacement method. Checks the flags of the + primary owner and returns if it can be replaced or not + (bus_service_set_prohibit_replacement): removed + (bus_service_has_owner): returns TRUE if and owner with + the specified connection exists in the queue + + * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper + method that only compiles if tests are enabled. Allows us to get the + unique name of a connection so we can check it against the queue when + doing regression tests + + * bus/activation.c (bus_activation_send_pending_auto_activate), + bus/dispatch.c (bus_dispatch), + bus/driver.c (bus_driver_handle_get_service_owner, + bus_driver_handle_get_connection_unix_user, + bus_driver_handle_get_connection_unix_process_id, + bus_driver_handle_get_connection_selinux_security_context), + bus/signals.c (connection_is_primary_owner): + use bus_service_get_primary_owners_connection instead of + bus_service_get_primary_owner + + * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, + _dbus_listen_unix_socket): Calculate the length of the socket + path and use that instead of using a fixed length which was + causing socket names to contain many trailing Nul bytes. + + * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c + (dbus_g_method_get_sender): New method for extracting the sender + from a DBusGMethodInvocation + (dbus_g_method_return_get_reply): changed name to + dbus_g_method_get_reply + (dbus_g_method_return_send_reply): changed name to + dbus_g_method_send reply + + * doc/dbus-specification.xml: New docs that describe how the new + queueing system works and talks about the changes to the how + we specify socket names + + * glib/examples/example-service.c, + glib/examples/example-signal-emitter.c, + glib/examples/statemachine/statemachine-server.c: + Changed the RequestName flags to the new system + + * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New + regression test suite for testing various states of the new + queueing system + +2005-11-15 Robert McQueen + + * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob + Taylor to add two methods, dbus_g_method_return_get_reply and + dbus_g_method_return_send_reply, to allow you to get the reply + message from a DBusGMethodInvocation, append arbitrary stuff to it, + and send it. The GLib bindings can't marshal a return value of + something like a(s) if the array is empty - ultimately they should be + made to heed the signature of the out arguments as the Python bindings + now can, but this is a workable interim solution which might have + other applications. + +2005-11-15 Robert McQueen + + * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName + method to org.freedesktop.DBus to release a bus name or give up + waiting in the queue for it. + + * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a + dbus_bus_release_name method to send the ReleaseName method calls. + Add constants for the return values to dbus/dbus-shared.h. + + * doc/dbus-specification.xml: Document the new ReleaseName method + in the specification. + + * python/dbus_bindings.pyx: Add a low-level python binding for the + release name method. + + * python/exceptions.py, python/service.py: Make freeing BusName + objects release the name. Add a NameExistsException, and fix a + bug with creating UnknownMethodException. + + * test/python/test-client.py: Add tests for freeing BusName + objects causing names to be released. + +2005-11-14 Robert McQueen + + * python/service.py: Include the traceback in the error reply when we + send an exception over the bus. _BEST_ _PATCH_ _EVER_ + +2005-11-14 David Zeuthen + + Patch from Timo Hoenig . + + * bus/bus.c: I've recently investigated why the automatic reload + of configuration files does not work as expected. + + Currently, reloading configuration files does only work when + running dbus-daemon with --nodaemon. If we are running as daemon + we're hitting a dnotify bug once we fork the process. + + We're initializing the dnotify fds before calling fork(). Once + the child process forked it does still have the fds (and they + still show up in /proc/`pidof dbus-daemon`/fd/) but we're not + getting SIGIO as changes are made to the configuration files. + + The attached patch moves the initialization of the dnotify fds to + process_config_postinit(). This is safe for all current code + paths and solves the dnotify disfunction. If we're running + dbus-daemon as daemon the fds for dnotify are now being + initialized after fork() for the child process. + + * configure.in: The current configure.in check for dnotify probes + 'x$target_os' for being 'xlinux-gnu'. I've changed the check to + match for 'xlinux', too. Additionally I have adapted the configure + option's style to match with the others. + +2005-11-14 Robert McQueen + + * python/decorators.py, python/service.py: Add a new argument to the + dbus.service.method decorator called sender_keyword, which if set, + specifies the name of an argument which will be provided the bus + name of the method caller. + + * test/python/test-client.py, test/python/test-service.py: Add a + method and test to check the sender_keyword functionality. + +2005-11-07 John (J5) Palmieri + + * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an + empty reply so blocking calls don't block forever (Patch from Sjoerd + Simons ) + + * AUTHORS: Add Robert McQueen for his work on the Python + Bindings and other parts of D-Bus + +2005-11-07 Robert McQueen + + * python/decorators.py: Change emit_signal function to use the + signature annotation of the signal when marhsalling the arguments from + the service. Fix a bug where the code checking signature length + against argument length referenced the wrong variable. + + * python/introspect_parser.py: Avoid adding the type signature of + signal arguments to any methods which occur after them in the + introspection data (!) by making the parser a little more careful + about its current state. + + * python/service.py: Remove debug prints from last commit (again :D). + + * test/python/test-client.py, test/python/test-service.py: Add test + signals with signature decorators to test the strict marshalling code + gives errors at the right time. Could do with checking the signals + actually get emitted too, given that the test does nothing with + signals at the moment... + +2005-11-07 Robert McQueen + + * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus + instances to stop madness of creating new instances representing + the same bus connection all the time, rendering any tracking of + match rules and bus names quite meaningless. Caught a bug where + the private argument to SessionBus() and friends was being passed + in as use_default_mainloop by mistake. Still some problems with + multiple dbus_binding.Connection instances representing the same + low-level connection (eg when you use both SessionBus() and + StarterBus() in same process), but it's a lot better now than it + was. + + * python/dbus_bindings.pyx: Add constants with the return values + for bus_request_name(). + + * python/service.py: Store bus name instances in a per-dbus.Bus cache + and retrieve the same instances for the same name, so deletion can be + done with refcounting. Also now throws some kind of error if you + don't actually get the name you requested, unlike previously... + + * test/python/test-client.py: Add tests for instance caching of buses + and bus name objects. + +2005-11-04 Robert McQueen + + * python/dbus_bindings.pyx, test/python/test-client.py: Fix + marshalling of boolean values. Add some booleans to the values in + the test client. + + * python/decorators.py, python/service.py: Add an 'async_callbacks' + argument to the dbus.service.method decorator, which allows you to + name arguments to take two callback functions for replying with + return values or an exception. + + * test/python/test-client.py, test/python/test-service.py: Add test + case using asynchronous method reply functions, both return values and + errors, and from within both the function itself and from a mainloop + callback. + + * python/decorators.py, python/service.py: Perform checking that the + number of method/signal arguments matches the number of types in the + signature at class loading time, not when you first introspect the + class. + + * python/service.py: Remove debug print left by the last commit. + +2005-11-03 Robert McQueen + + * python/service.py: Heavy refactoring of method invocation, with + hopefully no effect on functionality. Nuked _dispatch_dbus_method_call + in favour of a new _message_cb that uses seperate functions for + looking up the method to call, marshalling the return values, and + sending exceptions as errors, and is easier to follow as a + consequence. Fixes some corner cases about returning things that + don't match your declared out_signature, allows exceptions to define + _dbus_error_name and have it be sent over the bus as the error name, + and paves the way for cool stuff like heeding the message no reply + flag, asynchronous method implementations, informing the method of the + sender, and including backtraces in the error messages. + + * test/python/test-client.py: Catch and print exceptions thrown in the + async callback tests, rather than passing them to the low-level + bindings to be ignored in a noisy and frustrating manner. + +2005-11-03 Robert McQueen + + * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__ + functions to dbus.Bus, dbus.service.BusName and dbus.service.Object, + tweak others to be consistent. + + * test/python/test-client.py: Tweak output of testInheritance. + +2005-10-29 Robert McQueen + + * python/service.py: Major changes to allow multiple inheritance + from classes that define D-Bus interfaces: + + 1. Create a new Interface class which is the parent class of + Object, and make the ObjectType metaclass into InterfaceType. + + 2. Patch written with Rob Taylor to replace use of method_vtable + with code that walks the class's __MRO__ (method resolution order) + to behave like Python does when invoking methods and allow + overriding as you'd expect. Code is quite tricky because + we have to find two methods, the one to invoke which has the + right name and isn't decorated with the /wrong/ interface, + and the one to pick up the signatures from which is decorated + with the right interface. + + The same caveats apply as to normal multiple inheritance - + this has undefined behaviour if you try and inherit from two + classes that define a method with the same name but are + decorated with different interfaces. You should decorate + your overriding method with the interface you want. + + 3. Replace grungy introspection XML generation code in the metaclass + with dictionaries that cope correctly with multiple inheritance + and the overriding of methods. This also uses the signature + decorations to provide correct introspection data, including + the debut appearance of the types of your return values. :D + + * test/python/test-client.py, test/python/test-service.py: Add a test + case to try invoking an method that overrides one inherited from a + D-Bus interface class. + +2005-10-29 Robert McQueen + + * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert(). + Add checking for the end of struct character when marshalling a + struct in MessageIter.append_strict. + + * python/examples/example-service.py, + python/examples/gconf-proxy-service.py, + python/examples/gconf-proxy-service2.py: Update to use gobject + mainloop directly rather than appearing to depend on gtk. + + * python/test/test-client.py, python/test/test-server.py: Remove + obsolete and broken test scripts for old bindings. We have up to date + and working tests in test/python/. + +2005-10-29 Robert McQueen + + * python/decorators.py: Add optional arguments to the method and + signal decorators to allow you to specify the signature of arguments + and return values. Preserve the doc strings of signal functions in the + decorated version, for pydoc and friends. + + * python/dbus_bindings.pyx, python/proxies.py: Replace the + parse_signature_block function with an iterable dbus.Signature() + type. Fix a bug in MessageIter.append_strict where you could append + anything by claiming it was a string. + + * python/service.py: Use the out_signature decoration on methods to + marshal return values, meaning you no longer require dbus.Array() + or dbus.Dictionary() to indicate the type when returning empty + arrays or dictionaries. Fix a bug where exceptions which are defined + in __main__ are not turned into error replies. + + * test/python/test-client.py, test/python/test-service.py: Add test + for correct marshalling of return values according to out_signature. + Fix a bug in the async call test where the error_handler is missing a + self argument. + +2005-10-29 Robert McQueen + + * glib/Makefile.am, glib/examples/Makefile.am, + glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by + Daniel Stone to replace explicit calls to libtool with $(LIBTOOL). + + * test/python/.cvsignore: Add run-with-tmp-session-bus.conf. + + * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch + from Ubuntu by Daniel Silverstone to allow specifying match rules on + the command line. + +2005-10-27 Ross Burton + + * dbus/dbus-marshal-header.c: + Remove dead code. + + * glib/dbus-gobject.c: + Stop compiler warning. + +2005-10-25 Ross Burton + + * dbus/dbus-auth.c: + * dbus/dbus-server-unix.c: + * dbus/dbus-transport-unix.c: + * glib/dbus-gmain.c: + * glib/dbus-gobject.c: + Add some const keywords. + +2005-10-25 Ross Burton + + * doc/dbus-specification.xml: + Document the NoReply annotation. + + * glib/dbus-binding-tool-glib.h: + * glib/dbus-binding-tool-glib.c: + Respect the NoReply annotation. + +2005-10-24 Robert McQueen + + * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings + derive from unicode instead of str, and encode/decode UTF-8 when + marshalling/unmarshalling bus messages + + * python/introspect_parser.py: encode introspection data as UTF-8 + before passing the buffer into libxml2 + + * test/python/test-client.py: add unicode test strings + + * test/data/valid-service-files/.cvsignore, test/python/.cvsignore: + ignore generated python test files + +2005-10-17 John (J5) Palmieri + + * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble + and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT) + (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble + + * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing + DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters + when constructing struct signatures + + * python/_dbus.py (Bus): handle private connections using the + private keyword in the constructor. defaults to private=False + (Bus::close): new method to close a connection to the bus + + * python/dbus_bindings.pyx (Connection::close): renamed method + was previously called disconnect + (bus_get): now supports getting a private connection + + * python/proxies.py (ProxyMethod::__call__): check if ignore_reply + keyword is set to True. if it is, execute the method without waiting + for a reply + (ProxyObject::_introspect_execute_queue): new method for executing + all the pending methods that were waiting for the introspect to + finish. this is called when introspect either succeeds or fails + (ProxyObject::_introspect_error_handler): call queued methods + +2005-10-14 John (J5) Palmieri + + * python/dbus_bindings.pyx (MessageIter::append_strict): check for + STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct + + * python/service.py (Object::_message_cb): handle exceptions correctly + by sending them over the wire to the calling app. This makes sure + the client returns immediately instead of waiting the 15 seconds to + timeout. + + * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): + Add a test to benchmark how long it takes to introspect a service and + call a method which returns a large element (pretty fast) + + * test/python/test-service.py (TestObject::GetComplexArray): new test + method which pushes a lot of data + +2005-10-13 John (J5) Palmieri + + * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method): + reclaim memory outside of the loop and use del istead of just setting + the key to None + +2005-10-13 John (J5) Palmieri + + * python/service.py (ObjectType::_reflect_on_signal): Always close + signal tag even when there are no arguments + +2005-10-13 John (J5) Palmieri + + * configure.in: Set mono, mono-docs and Qt3 to default + to no instead of auto when building. These bindings do not + have full time maintainers and will not be supported for the + 1.0 release. + +2005-10-12 John (J5) Palmieri + + patches from Michael Krivoruchko : + + * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link, + _dbus_connection_message_sent, + _dbus_connection_send_preallocated_unlocked_no_update, + _dbus_connection_pop_message_link_unlocked): handle the case when path + is NULL when calling _dbus_verbose + + * configure.in: check for functions getpeerucred and getpeereid + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides + support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, + OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). + Patch was only tested on Solaris 10 x86 so it might be issues + with other platforms (i.e. BSDs and MacOSX) + + +2005-10-05 John (J5) Palmieri + + * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal + instead of marshal basic so we can handle recursive types in a variant + + * test/glib/test-dbus-glib.c: Add test for marshaling recurive types + in variants + + * test/glib/test-service-glib.c, test-service-glib.xml + (my_object_echo_variant [EchoVariant], + my_object_process_variant_of_array_of_ints123 + [ProcessVariantOfArrayOfInts123]): + Add two test methods + + * python/introspect_parser.py: New module for parsing introspect + data. + + * python/dbus_bindings.pyx: + (various places): when throwing errors fix to use errormsg instead + of message local variable because Pyrex can get confused with other + message variables (initial patch by Robert McQueen + ) + (MessageIter::parse_signature_block): new method for getting the next + block in a signiture. + (MessageIter::append_strict): new method for appending values strictly + using the passed in signature instead of guessing at the type + (MessageItter:: append_dict, append_struct, append_array): use + signatures to marshal children if the signature is available + + * python/exceptions.py (IntrospectionParserException): new exception + + * python/proxies.py (ProxyMethod::__call__): Marshal args with + introspected signatures if available, else we fall back to the + old way of doing things. + (ProxyObject::_introspect_reply_handler ): parse introspection data + + * python/service.py (ObjectType::_reflect_on_method): Properly + terminate if there are no args in the reflection data + + * test/python/test-client.py: add tests for talking with the GLib + test server. This gives us better coverage for introspection since + python to python will always generate arguments as variants. It also + allows us to test the robustness of the GLib bindings and interlanguage + communications. + + +2005-10-03 John (J5) Palmieri + + * bus/driver.c (bus_driver_handle_introspect): Add signals + to the introspect data. (patch from Daniel P. Berrange + ) + + * bus/dispatch.c (check_existent_ping): Add testcase for Ping + + * dbus/dbus-connection.c (_dbus_connection_peer_filter, + _dbus_connection_run_builtin_filters): Changed these to + be unlock_no_update functions and call + _dbus_connection_send_unlocked_no_update instead of + dbus_connection_send to avoid locking errors. + + * doc/TODO: Removed the make Ping test TODO + +2005-09-26 John (J5) Palmieri + + * dbus/Python.pyx: Fixed memory leaks when throwing errors. + We now copy the message from a DBusError and then free + the error object befor throwing the error + + * glib/dbus-glib-tool.c: removed extra comma at the end of the + DBusBindingOutputMode enum which was causing a warning. + #include so using time_t is explicitly defined + +2005-09-26 John (J5) Palmieri + + * Integrate patches from Lennart Poettering : + - dbus/dbus-bus.c + (internal_bus_get): new method that take over the heavy lifting + of dbus_bus_get and adds the ability to get a private connection + to the bus + (dbus_bus_get): wrapper to internal_bus_get that provides the same + interface as in previous versions + (dbus_bus_get_private): new method that is a wrapper to + internal_bus_get to get a private connection to the bus + + - dbus/dbus-bus.h + (dbus_bus_get_private): add as a public libdbus interface + + - dbus-1.pc.in: output system_bus_default_address and + sysconfdir variables so apps can use them when compiling + +2005-09-23 Harald Fernengel + * dbus/qt: New Qt bindings + +2005-09-12 Waldo Bastian + + * dbus/dbus-marshal-validate.c, + doc/dbus-specification.xml, test/Makefile.am, + test/test-names.c: allow hyphens in bus names. + +2005-09-11 Mark McLoughlin + + * test/data/auth/fallback.auth-script: we don't + retry the EXTERNAL method when we know its going + to fail anymore. + +2005-09-11 Mark McLoughlin + + * dbus/dbus-connection-internal.h: rename + (add|remove|toggle)_(watch|timeout) to unlocked() + + * dbus/dbus-connection.c: ditto. + + * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c: + Update some callers for the renaming. + +2005-09-10 Mark McLoughlin + + * dbus/dbus-auth.c: (record_mechanisms): don't + retry the first auth mechanism because we know + we're just going to get rejected again. + + * dbus/dbus-keyring.c: (_dbus_keyring_reload): + Fix thinko ... and what a nasty little bugger to + track down you were ... + + * dbus/dbus-connection.c: + (_dbus_connection_add_watch), + (_dbus_connection_remove_watch): add note about + these needing the connection to be locked. + (_dbus_connection_get_dispatch_status_unlocked): + set status to DATA_REMAINS when we queue the + disconnected message. + + * bus/dispatch.c: + (bus_dispatch): fix warning. + (check_existent_service_no_auto_start): + Expect ChildSignaled error too. + (check_existent_hello_from_self): fix another + couple of warnings. + +2005-09-08 Joe Shaw + + Patches from James Willcox + + * mono/Makefile.am: Add Int16.cs and UInt16.cs + + * mono/DBusType/Array.cs: Handle multidimensional arrays, and + support array "out" parameters. + + * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files, + for 16-bit int support. + +2005-09-06 John (J5) Palmieri + + * Released 0.50 + + * Patch from Steve Grubb: + - bus/activation.c (bus_activation_service_reload_test): clean up + some indentation + - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional + - dbus/dbus-message-factory.c (generate_special): fix a couple of + buffer overflows in the test suite. This is non critical because + it can not be exploited and this code is only run when doing a + make check. + + * Patch from Yaakov Selkowitz: Build fixes for Cygwin + - configure.in: Don't check and link against kdecore, only qt headers + - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS + - gcj/org/freedesktop/dbus/Makefile.am: + add libdbus_gcj_1_la_LDFLAGS = -no-undefined + - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS + and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD + - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS + - tools/Makefile.am: Add platform extentions to binaries + (i.e. .exe on windows) + + * configure.in: + - Make it so if no suitable version of python is found we only + disable building python instead of exiting the configure script + - Require version 2.4 of glib for glib bindings + - Up version to 0.50 + + * python/__init__.py: Sync version with libdbus to (0,50,0) + +2005-09-05 Olivier Andrieu + + * dbus/dbus-object-tree.c (find_subtree_recurse): + a couple of optimizations (bug #710): + - do a binary search in the tree + - insert a new child at the right place directly, no need for + qsort anymore + - do the "double alloc" thing when allocating children + +2005-08-31 John (J5) Palmieri + + * python/Makefile.am: Break on pyrexc errors instead of ignoring them + + * python/dbus_bindings.pyx: Memory management foo + (global): remove hacky _user_data_references global list + (GIL_safe_cunregister_function_handler): userdata now stuffed into + tuples. Unref user_data + (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples + (Connection::__del__): Remove and replace with __dealloc__ method + (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF + to keep tuple from being deallocated instead of the global var hack + (Connection::register_object_path): Stuff user_data into a tuple. + Use Py_INCREF to keep tuple from being deallocated instead of the + global var hack + (Connection::register_fallback): Stuff user_data into a tuple. + Use Py_INCREF to keep tuple from being deallocated instead of the + global var hack + (GIL_safe_pending_call_notification): Don't unref the message + because it gets unreffed when going out of scope. Py_XDECREF + the user_data + (PendingCall::__del__): Remove and replace with __dealloc__ method + (PendingCall::set_notify): ref the pending call because we will + need it to stick around for when the notify callback gets called + (Message::__del__): Remove and replace with __dealloc__ method + + * python/dbus_glib_bindings.pyx (init_gthreads): Changed to + gthreads_init to match up with the dbus call + + * python/glib.py (init_threads): Changed to threads_init to match + up with gobject.threads_init(). init_threads is kept for backwards + compat but will most likely be deprecated in the future + + * test/python/test-client.py: + - revamp to use Python's unittest functionality + - add async call tests + - setup threads in glib and dbus so we make sure locks are working + +2005-08-30 John (J5) Palmieri + + * python/dbus_bindings.pyx + (_pending_call_notification, cunregister_function_handler, + cmessage_function_handler): All callback functions have been rearranged + to workaround a bug in Pyrex when working with the GIL which is Python's + global lock when dealing with threads. They have been split into + a wrapper function (which assumes the name of the old function) and + a _GIL_safe_ function which contains the functionality + of the old function. This ensures that Pyrex does not write code + the lock is released. + + +2005-08-30 John (J5) Palmieri + + * python/dbus_bindings.pyx (_pending_call_notification): Obtain the + GIL global lock when calling back into Python + +2005-08-29 John (J5) Palmieri + + * Release 0.36.2 + + * Add Havoc's patch that never got applied to HEAD (Bug #2436): + + * bus/policy.c (bus_policy_allow_user): change default "user is + allowed" to be "user has same uid as the bus itself"; any + allow/deny rules will override. + + * bus/session.conf.in: don't allow all users, since now by default + the user that ran the bus can connect. + +2005-08-26 Colin Walters + + * tools/dbus-print-message.c (print_message): Flush stdout + after printing a message, so that redirecting to a file, then + hitting Ctrl-C works. + +2005-08-25 John (J5) Palmieri + + * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it + (EmptyMessage): new class that subclasses Message. This is a workaround + to a Pyrex bug that fails to call __del__ when the Message object goes out + of scope. For some reason subclassing Message fixes this bug + (Bus::send_with_reply_and_block): use EmptyMessage instead of Message + - s/Message(_create=0)/EmptyMessage everywhere else + + * test/python/test-{server|client}.py: add the python/.libs directory + to the lookup path so dbus_bindings and dbus_glib_bindings don't + get picked up from the system + +2005-08-25 Colin Walters + + * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks + to Ryan Lortie for the suggestion. + +2005-08-24 John (J5) Palmieri + + * test/python: Add python regression test + + * configure.in: Add test/python/Makefile + + * test/Makefile.am: Add the python directory to SUBDIRS + +2005-08-24 John (J5) Palmieri + + * Release 0.36.1 + + * python/_dbus.py: + (Interface::connect_to_signal): propigate keywords for match on args + (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface + + * python/proxies.py (ProxyObject::connect_to_signal): + propigate keywords for match on args + + * Makefile.am: point everything to pyexecdir since python borks + on multilib + +2005-08-23 John (J5) Palmieri + + * Release 0.36 + +2005-08-23 Colin Walters + + * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST. + +2005-08-23 John (J5) Palmieri + + * python/dbus_glib_bindings.pyx: reorder imports and c definitions + to fix some wranings. We now use dbus_bindings.DBusConnection instead + of defining DBusConnection ourselves. + +2005-08-18 John (J5) Palmieri + + * python/dbus.pth: New path file to fix up problems when installing + c libraries to lib64 and python files to lib. + + * python/Makefile.am: install dbus.pth in the correct spot + +2005-08-17 John (J5) Palmieri + * ChangeLog: clean up my last entry a bit + + * doc/introspect.xsl: New stylesheet for converting introspection data + into browser renderable xhtml. Contributed by Lennart Poettering. + + * doc/introspect.dtd: Fixups in the introspect format from Lennart + Poettering. + + * doc/dbus-tutorial.xml: + - Add Colin Walter to the Authors section for authoring the GLib + section + - Add descriptions of the new signature and type functionality + in the Python complex type mapping section + - Add a sidenote on the new args matching functionality in + the Python bindings + - Fixed up some of the examples to use the gobject.MainLoop + instead of gtk.main + + * python/_dbus.py: + (Bus::_create_args_dict): New. Converts a hash of arg matches + to a more useable format + (Bus::add_signal_receiver): add a **keywords parameter for catching + arg match parameters + (Bus::remove_signal_receiver): add a **keywords parameter for catching + arg match parameters + + * python/matchrules.py: + (MatchTree::exec_matches): Check for arg matches + (SignalMatchRule::add_args_match): New method + (SignalMatchRule::execute): Added args_list parameter as an optimization + so we don't have to marshal the args more than once + (SignalMatchRule::match_args_from_list): New method that checks to see + if the rule's arg matches match an argument list. Only arguments + set in the rule are checked. + (SignalMatchRule::match_args_from_rule): New method that checks to see + if the rule's arg matches match another rule's. All args have to match + in order for this method to return true. If either rule has more args + then it is not a match. + (SignalMatchRule::is_match): Add args match + (SignalMatchRule::repr): Add args to the final output if they exist + +2005-08-17 Ross Burton + + * glib/dbus-gproxy.c: + (dbus_g_proxy_call_no_reply): unref the message once sent. + (dbus_g_proxy_call): protect against NULL proxy. + +2005-08-16 John (J5) Palmieri + + * python/__init__.py: Version updated (0, 43, 0) + + * python/dbus_bindings.pyx: + - Fixed type objects to have self passed into __init__ + - Added the Variant type + - Add the ability to specify types or signatures for Array, Variant + and Dictionary + (Connection::send_with_reply_handlers): return a PendingCall object + (_pending_call_notification): handle the case when an error is returned + without an error message in the body + (MessageIter::get_boolean): return True or False instead of an integer + (MessageIter::python_value_to_dbus_sig): add direct checking of types + and add checks for objects with embeded signatures or types (Array, + Variant and Dictionary) + (MessageIter::append_byte): handle case when the value is a dbus.Byte + (MessageIter::append_dict): handle embeded types or signatures + (MessageIter::append_array): handle embeded types or signatures + (MessageIter::append_variant): new method + + * python/proxies.py: + (DeferedMethod): New. Dummy executable object used when queuing calls + blocking on introspection data + (ProxyMethod::__call__): add the timeout keyword for specifying longer + or shorter timeouts for method calls + (ProxyObject): Add first pass at an introspection state machine + (ProxyObject::__init__): Add introspect keyword for turing off an on + introspection. + (ProxyObject::_Introspect): Internal Introspect call that bypasses + the usual mechanisms for sending messages. This is to avoid a deadlock + where the Intospect call would be queued waiting for the Introspect + call to finish ;-) + (ProxyObject::_introspect_reply_handler): New. This method is called + when introspection returns with no error + (ProxyObject::_introspect_error_handler): New. This method is called + when introspection encounters an error + (ProxyObject::__getattr__): Code to handle different introspection + states. Queue async calls or block blocking calls if we are + introspecting. Pass through as normal if we are not or are done with + introspecting. + + * python/service.py: Import signal and method from decorators.py + + * python/types.py: Add Variant type + +2005-08-16 Colin Walters + + * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the + DBusError message is NULL. + +2005-08-09 Havoc Pennington + + * dbus/dbus-errors.c: apply patch from Timo Teras to make a + malloc'd copy of the name parameter + +2005-08-09 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_set_reply_serial): print + warning if the reply serial is set to 0 + +2005-08-04 Colin Walters + + * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init) + (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size) + (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach) + (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values) + (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value) + (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype) + (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take): + * glib/dbus-gvalue.h (dbus_g_value_types_init) + (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant) + (dbus_gvalue_demarshal_message, dbus_gvalue_marshal): + + Prefix name with _ to ensure they're not exported. All callers + updated. + + * glib/dbus-gvalue.c (typecode_to_gtype) + (dbus_typecode_maps_to_basic, basic_typecode_to_gtype) + (signature_iter_to_g_type_dict) + (signature_iter_to_g_type_array) + (dbus_gtype_from_signature_iter, dbus_gtype_from_signature) + (dbus_gtypes_from_arg_signature): + Move to dbus-gsignature.c. + + * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call + dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init. + (dbus_binding_tool_output_glib_client): Ditto. + + * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c + and dbus-gsignature.h + + * test/glib/test-service-glib.c (my_object_rec_arrays): Delete + unused variable. + +2005-08-03 Colin Walters + + * glib/dbus-gobject.c: Add tests on hardcoded object info; this should + catch any incompatible changes accidentally made. + +2005-08-03 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix + typo, from Julien Puydt + + * bus/connection.c (bus_connection_disconnected): we were always + doing a wait_for_memory due to a buggy loop, found by Timo Hoenig + +2005-08-01 Colin Walters + + Patch from Joe Markus Clarke: + + * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix + use-after-free. + +2005-08-01 Colin Walters + + Patch from Joe Markus Clarke: + + * tools/dbus-send.c (main): + + Don't use C99 style initializers (bug #3933). + +2005-08-01 Colin Walters + + Patch from Joe Markus Clarke: + + * glib/dbus-gvalue.c (dbus_g_value_types_init): + * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) + * glib/dbus-gobject.c (write_interface): + + Don't use C99 style initializers (bug #3933). + +2005-07-31 Havoc Pennington + + * tools/dbus-viewer.c (load_child_nodes): fix invocation of + dbus_g_proxy_call, fix from Piotr Zielinski bug #3920 + +2005-07-30 Havoc Pennington + + * fix a bunch of Doxygen warnings and mistakes + +2005-07-30 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef + DBUS_BUILD_TESTS since it's now used in production code + +2005-07-29 Havoc Pennington + + * test/glib/test-profile.c (write_junk): initialize the junk + buffer so valgrind doesn't have a breakdown + +2005-07-29 Havoc Pennington + + * bus/signals.c (bus_signals_test): add match_rule_equal() tests + (match_rule_matches): remove unused arg + (test_matching): add tests for match_rule_matches() + + * bus/signals.c (bus_match_rule_parse_arg_match): add ability to + do arg0='foo' arg5='bar' in the match rules + (match_rule_matches): don't match if the arg0='foo' doesn't match. + + * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this + +2005-07-29 Ross Burton + + * dbus/dbus-connection.c: + Don't create a DBusCondVar which is never used. + +2005-07-27 Ross Burton + + * dbus/dbus-message.c: + Reduce the size of the maximum cached message to 10K. + +2005-07-25 Ross Burton + + * glib/dbus-gproxy.c: + Remove matches when all proxies are unregistered. + +2005-07-24 Colin Walters + + * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require + typedata; recursive arrays won't have it. + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: Add recursive arrays tests. + +2005-07-20 John (J5) Palmieir + + * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py. + proxies.py, service.py: Cleanup of code after running it through the + pyflakes code checker mostly dealing with undefined names. + (Bug #3828, Patch from Anthony Baxter ) + +2005-07-17 John (J5) Palmieri + + * NEWS: Update to 0.35.2 + +2005-07-17 John (J5) Palmieri + + * python/_dbus.py: Remove import of the dbus.services + module as it no longer exists (patch from Dimitur Kirov) + + * python/service.py (Object::__init__): Fixed typo + s/name/bus_name (patch from Dimitur Kirov) + + * python/examples/example-signal-emitter.py: import dbus.glib + to get the main loop and use glib mainloop instead of gtk so + X doesn't have to be running. + + * python/examples/example-signal-recipient.py: import dbus.glib + to get the main loop and use glib mainloop instead of gtk so + X doesn't have to be running. Import the decorators module + directly. + + * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck + didn't pick up on but are needed to build + + * configure.in: upped version to 0.35.2 + + * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h: + added Colin Walters' SELinux API rename patch from head + s/unix sercurity context/selinux security context/ + +2005-07-16 John (J5) Palmieri + + * python/Makefile.am: dbus_binding.pxd.in should be included + in EXTRA_DIST not dbus_binding.pxd + fix up $(srcdir) hopefully for the last time + + * NEWS: Update to 0.35.1 + +2005-07-16 Colin Walters + + * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed + from bus_driver_handle_get_connection_unix_security_context. Update for + error usage. + (message_handlers): Update for renames. + + * bus/selinux.c (bus_selinux_allows_send): Handle OOM on + _dbus_string_init failure correctly. + (bus_selinux_append_context): Convert SID to context. Append it + as a byte array. + (bus_selinux_shutdown): Handle the case where bus_selinux_full_init + hasn't been called. + + * bus/selinux.h: Update prototype. + + * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed + from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN. + +2005-07-15 Colin Walters + + * doc/TODO: Add note about convenience wrappers. + +2005-07-15 John (J5) Palmieri + + * NEWS: Update to 0.35 + +2005-07-15 John (J5) Palmieri + + * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST + so distcheck doesn't fail + + * glib/examples/Makefile.am: Add example-service.xml and + example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail + + * glib/examples/statemachine/Makefile.am: Add statemachine.xml and + statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail + + * python/Makefile.am: Preprend $(srcdir)/ to source files so the + compiler looks in the right places during distcheck + +2005-07-15 John (J5) Palmieri + + * glib/example/Makefile.am: Fix a typo which cause make distcheck + to fail + +2005-07-15 John (J5) Palmieri + + * python/examples/example-service.py, + python/examples/example-signal-emitter.py: Fixed up examples + for API changes + +2005-07-15 John (J5) Palmieri + + * python/__init__.py: Upped to version (0,42,0) because of + the API change + +2005-07-15 John (J5) Palmieri + + * ChangeLog: fix date in last entry + + * configure.in, bus/system.conf.in: add the ability to configure + the system bus user at compiletime with the --with-dbus-user flag + (patch from Kristof Vansant) + +2005-07-15 John (J5) Palmieri + + * bus/dispatch.c, test/test-service.c: Add testcase + for sending messages to oneself (TODO item). + + * python/service.py (class Object): Swap ordering of bus_name + and object_path parameters to better support inheritance. + + * doc/dbus-tutorial.xml: change Python docs to reflect change + in parameter ordering and fix the inheritance section. + + * doc/TODO: remove sending message to oneself TODO item + +2005-07-15 Ross Burton + + * glib/dbus-gproxy.c: + Fix a leak when calling methods via the proxy. + +2005-07-15 Colin Walters + + * bus/selinux.c (bus_selinux_append_context): Wrap in + HAVE_SELINUX. + +2005-07-14 John (J5) Palmieri + + * python/_dbus.py (Bus::remove_signal_receiver): + don't add a callback to the match if none has been passed in + + * python/matchrules.py (SignalMatchTree::remove): if the rule + being matched does not have a callback treat it as a wildcard + fix matching logic + + * doc/dbus-tutorial.xml: Add Python tutorial + +2005-07-14 Colin Walters + + * bus/driver.c + (bus_driver_handle_get_connection_unix_security_context): New function. + (message_handlers): Add. + + * bus/selinux.c (bus_selinux_append_context): New function; appends + security context to message. + + * bus/selinux.h: Prototype. + + * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New. + +2005-07-14 John (J5) Palmieri + + * bus/activation.c: clean up all tabs to be 8 spaces + (bus_activation_activate_service): make sure we clean up + if activation fails + + * bus/dispatch.c: clean up all tabs to be 8 spaces + (check_shell_fail_service_auto_start): New function + tests to make sure we get fail properly when trying to auto start a service + with a faulty command line + (check_shell_service_success_auto_start): New function tests to make sure + auto started services get the arguments on the command line + + * test/test-shell-service.c: Added service for testing auto-starting with + command line arguments + + * test/data/valid-service-files/debug-shell-echo-fail.service.in, + test/data/valid-service-files/debug-shell-echo-success.service.in: + Added service files for testing auto-starting with command line arguments + + * */.cvsignore: added a bunch of generated files to various .cvsignore files + +2005-07-14 Rodrigo Moya + + * dbus/dbus-shell.[ch]: copy/pasted code from GLib. + + * dbus/Makefile.am: added new files to build. + + * bus/activation.c (bus_activation_activate_service): support + activation commands with parameters. + + * test/shell-test.c: added test program for the shell parsing + code. + +2005-07-13 David Zeuthen + + * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and + 64 bit signed and unsigned parameters + +2005-07-13 John (J5) Palmieri + + * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd + + * python/service.py (class Name): renamed BusName to make it clearer + what the object is for (a name on the bus) + + * python/examples/example-service.py, + python/examples/example-signal-emitter.py: change the Name object to + BusName + +2005-07-12 Colin Walters + + Patch from Jim Gettys . + + * tools/dbus-launch.c: Include sys/select.h. + +2005-07-12 John (J5) Palmieri + * python/dbus_bindings.pyx.in: removed + + * python/dbus_bindings.pyx: Added. + - Fixed some memleaks (patch from + Sean Meiners ) + - Broke out the #include "dbus_h_wrapper.h" and put it in its + own pxd file (Pyrex definition) + - Broke out glib dependancies into its own pyx module + + * python/dbus_bindings.pdx: Added. + - Defines C class Connection for exporting to other modules + + * python/dbus_glib_bindings.pyx: Added. + - New module to handle lowlevel dbus-glib mainloop integration + + * python/glib.py: Added. + - Registers the glib mainloop when you import this module + + * python/services.py: Removed (renamed to service.py) + + * python/service.py: Added. + - (class Server): renamed Name + + * python/__init__.py: Bump ro version (0,41,0) + -don't import the decorators or service module + by default. These now reside in the dbus.service namespace + + * python/_dbus.py (Bus::__init__): Add code run the main loop + setup function on creation + + * python/examples/example-service.py, + python/examples/example-signal-emitter.py: update examples + + * python/examples/gconf-proxy-service.py, + python/examples/gconf-proxy-service2.py: TODO fix these up + + * doc/TODO: Addition + - Added a Python Bindings 1.0 section + - added "Add match on args or match on details to match rules" + + +2005-07-12 Colin Walters + + * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) + (statemachine-glue.h): + * glib/examples/Makefile.am (example-service-glue.h) + (example-signal-emitter-glue.h): + * glib/Makefile.am (dbus-glib-error-switch.h): + Add libtool --mode=execute so we use the built library instead + of any installed one. + +2005-07-11 Colin Walters + + * glib/dbus-gvalue.c (struct _DBusGValue): Delete. + (dbus_g_value_types_init): Remove assertion. + (dbus_g_value_get_g_type, dbus_g_value_open) + (dbus_g_value_iterator_get_values, dbus_g_value_get_signature) + (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented + functions related to DBusGValue. Now we marshal/demarshal + structures as GValueArray. + (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for + structures. + (signature_iter_to_g_type_array): Don't call + signature_iter_to_g_type_struct. + (signature_iter_to_g_type_struct): Delete. + (dbus_gvalue_to_signature): Delete. + (dbus_gvalue_to_signature): New function with same name as other + one; we can convert structures to signatures. + (demarshal_valuearray): New function. + (get_type_demarshaller): Use it. + (demarshal_recurse): Delete. + (marshal_proxy): New function. + (marshal_map): Warn if we can't determine signature from type. + (marshal_collection_ptrarray): Ditto. + (marshal_collection_array): Ditto. + (get_type_marshaller): Use marshal_valuearray. + (marshal_recurse): Delete. + (_dbus_gvalue_test): Add some tests. + + * dbus/dbus-glib.h (struct _DBusGValueIterator): + (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE) + (dbus_g_value_open, dbus_g_value_iterator_get_value) + (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) + (dbus_g_value_free): Remove prototypes. + + * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle + G_TYPE_VALUE_ARRAY. + + * glib/examples/example-service.c: + * glib/examples/example-client.c: Implement GetTuple. + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: Add structure tests. + +2005-07-10 Colin Walters + + * doc/TODO: Knock off some GLib items with this patch. + + * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) + (_dbus_gvalue_signals_error): New functions. + + * glib/dbus-gvalue-utils.h: Prototype them. + + * glib/dbus-gobject.c (arg_iterate): Update to handle return vals + and change to not output const/retval flags for input args. All + callers updated. + (invoke_object_method): Refactor to handle return values. Add + some more comments in various places. Remove debug g_print. + + * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New. + + * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name): + Handle G_TYPE_NONE. + (compute_gsignature): New function; refactored from code from + compute_marshaller and compute_marshaller_name. Enhance to + handle return values and async ops more cleanly. Update for + async ops returning NONE instead of BOOLEAN. + (compute_marshaller, compute_marshaller_name): Call compute_gsignature + and output appropriate string. + (generate_glue): Handle return value annotation. Also don't dump + constness flag for input arguments. + + * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains + files shared between installed library and utilities. + (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS. + (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the + binding tool can access gtype utility functions. + + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: + * test/glib/test-dbus-glib.c: Add some tests for return values. + +2005-07-09 Colin Walters + + * glib/dbus-gparser.c (parse_annotation): Add annotations to + argument if available, not method. + + * glib/dbus-gobject.c (arg_iterate): More verbose warnings. + (invoke_object_method): First, remove some redundant + GValues (object_value, error_value) in favor of working on + array directly. Second, rework constness to be less buggy. + Now we iterate directly over the argument metadata instead + of parallel iterating over output signature and metadata. + + * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error. + + * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const + annotation on input args. + +2005-07-09 Colin Walters + + * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST): + Define. + + * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const + annotation. + + * glib/dbus-gobject.c (arg_iterate): Update to parse constval too. + (method_dir_signature_from_object_info): Handle arg_iterate change. + (write_interface): Ditto. + (lookup_object_info): Don't barf if format_version is > 0. + (invoke_object_method): Handle arg constness. + + * glib/dbus-gidl.c (struct ArgInfo): Add annotations. + (arg_info_new): Create. + (arg_info_unref): Destroy. + (arg_info_get_annotations, arg_info_get_annotation) + (arg_info_add_annotation): New functions. + + * glib/dbus-gidl.h: Prototype them. + + * glib/dbus-gparser.c (parse_annotation): Allow annotations in + args, disallow them in properties. + (parse_annotation): Handle arg annotations. + + * test/glib/test-service-glib.xml: + * test/glib/test-service-glib.c: Update to make some methods + const. + +2005-07-08 Colin Walters + + * test/glib/test-service-glib.xml: + * test/glib/test-service-glib.c: + * test/glib/test-dbus-glib.c: Test a{sv}. + + * glib/examples/statemachine/statemachine.c: + * glib/examples/statemachine/statemachine-server.c: + * glib/examples/statemachine/statemachine-client.c: Fix some bugs, + add progress bar, etc. + + * glib/dbus-gvalue.c (register_array, register_dict): Delete; not + needed anymore due to generic array/map marshalling. + (dbus_g_value_types_init): Don't register basic arrays or the + string/string hash. + (dbus_gtype_from_signature_iter): Don't try to recurse into + variants. + (dbus_gtype_to_signature): Check collection/map before type + metadata. + (demarshal_garray_basic): Renamed to demarshal_collection_array. + (demarshal_ghashtable): Renamed to demarshal_map; fix to use new + generic map creation/append functions instead of hash table + specifically. + (get_type_demarshaller): Handle maps. + (demarshal_collection): Dispatch on collection type to either + demarshal_collection_ptrarray or demarshal_collection_array. + (get_type_marshaller): Handle maps. + (marshal_collection): Dispatch collection type to either + marshal_collection_ptrarray or marshal_collection_array. + (_dbus_gvalue_test): New test. + + * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function. + (hash_free_from_gtype): Use it to free GValues. + (hashtable_append): New function. + (ptrarray_append): Fix prototype. + (slist_append): Ditto. + (_dbus_gvalue_utils_test): Extend tests. + + * glib/dbus-gtype-specialized.c + (dbus_g_type_specialized_init_append): Renamed from + dbus_g_type_specialized_collection_init_append. Remove const from + value, since we steal it. + (dbus_g_type_specialized_map_append): New function. + + * glib/dbus-gtype-specialized.h: Update prototypes. + Add DBusGTypeSpecializedMapAppendFunc. + + * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run + _dbus_gvalue_test. + + * glib/dbus-gtest.h: Prototype it. + +2005-07-08 Ross Burton + + * dbus/dbus-glib.h: + Add DBysGAsyncData for the async bindings. + + * glib/dbus-binding-tool-glib.c: + Re-enable the async bindings. + + * test/glib/test-dbus-glib.c: + Add a test for the generated async bindings. + +2005-07-08 Colin Walters + + * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a + connection concept. + +2005-07-08 Colin Walters + + * tools/Makefile.am: Kill of print-introspect in favor of using + dbus-send --print-reply=literal. + + * test/glib/test-service-glib.xml: + * test/glib/test-service-glib.c (my_object_get_objs): New test + for "ao". + + * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data. + (main): Test GetObjs. + + * glib/examples/statemachine/Makefile.am: + * glib/examples/statemachine/sm-marshal.list: + * glib/examples/statemachine/statemachine-client.c: + * glib/examples/statemachine/statemachine-server.c: + * glib/examples/statemachine/statemachine-server.xml: + * glib/examples/statemachine/statemachine.c: + * glib/examples/statemachine/statemachine.h: + * glib/examples/statemachine/statemachine.xml: + + New example. + + * glib/examples/example-service.c (main): Move invocation + of dbus_g_object_type_install_info earlier, to emphasize it + should only be done once. + + * glib/examples/example-signal-emitter.c (main): Ditto. + + * glib/examples/Makefile.am (SUBDIRS): Include statemachine. + + * glib/dbus-gvalue.h (dbus_gtype_to_signature) + (dbus_gvalue_marshal): Update prototypes. + + * glib/dbus-gvalue.c: Update all marshalling functions to take + const GValue instead of GValue. + (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed + types. + (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature + change. + (dbus_gtype_to_signature): Handle generic collecitons and maps. + Return a newly-allocated string. + (demarshal_proxy, demarshal_object_path, demarshal_object) + (demarshal_strv, demarshal_ghashtable): Set error, don't assert if + we get the wrong types from message. + (get_type_demarshaller): New function, extracted from + dbus_gvalue_demarshal. + (demarshal_collection): New function, demarshals generic + collection. + (dbus_gvalue_demarshal): Just invoke result of + get_type_demarshaller. Throw error if we don't have one. + (marshal_garray_basic): Abort on OOM. + (get_type_marshaller): New function, extracted from + dbus_gvalue_marshal. + (collection_marshal_iterator, marshal_collection): New functions; + implements generic marshalling for an iteratable specialized + collection. + (dbus_gvalue_marshal): Just invoke result of get_type_marshaller. + + * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle + G_TYPE_STRING. + (ptrarray_value_from_gvalue): Ditto. + (ptrarray_append, ptrarray_free): New functions. + (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) + (slist_append, slist_end_append, slist_free): New functions. + (dbus_g_type_specialized_builtins_init): Add append fuctions + for GPtrArray and GSList. Register GSList. + (test_specialized_hash, _dbus_gvalue_utils_test): New functions. + + * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext): + New. + (dbus_g_type_specialized_collection_init_append) + (dbus_g_type_specialized_collection_append) + (dbus_g_type_specialized_collection_end_append): Prototype. + (DBusGTypeSpecializedCollectionVtable): Add append_func and + end_append_func. + + * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) + (dbus_g_type_specialized_collection_append) + (dbus_g_type_specialized_collection_end_append): New functions. + (dbus_g_type_map_value_iterate): Take const GValue. + (dbus_g_type_collection_value_iterate): Ditto. + + * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run + _dbus_gvalue_utils_test. + + * glib/dbus-gtest.h: Prototype it. + + * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid + using uninitialized owner_list. + (dbus_g_proxy_begin_call_internal): Move return_if_fail to + public API. + (dbus_g_proxy_end_call_internal): Update to use error set + from dbus_gvalue_demarshal instead of setting it here. + (dbus_g_proxy_begin_call): Move return_if_fail here. + + * glib/dbus-gobject.c (write_interface): Update for + dbus_gtype_to_signature returning new string. + + * configure.in: Add glib/examples/statemachine. + +2005-07-08 Joe Shaw + + * configure.in: Add a configure option, --with-console-auth-dir + + * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the + new setting. Patch from Kay Sievers. + +2005-07-06 Colin Walters + + * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify) + (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type) + (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete. + (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): + Delete in favor of dbus_g_proxy_begin_call and + dbus_g_proxy_cancel_call. + (DBusGProxyCall, DBusGProxyCallNotify): New. + (dbus_g_proxy_begin_call): Change prototype to take callback, user + data, and destroy function. This replaces + dbus_g_pending_call_set_notify. + (dbus_g_proxy_cancel_call): Prototype. + (DBusGAsyncData): Delete, shouldn't be needed anymore. + + * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and + pending_calls map. + (struct _DBusGProxyManager): Add bus_proxy member, which is an + internal proxy for calls to the bus. Remove + pending_nameowner_calls, now the internal proxy keeps track. + (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to + pending_nameowner_calls. + (got_name_owner_cb): Update prototype, and use + dbus_g_proxy_end_call. + (got_name_owner_cb): Remove reference to pending_nameowner_calls. + (dbus_g_proxy_manager_register): Delete directly libdbus code in + favor of using internal proxy. + (dbus_g_proxy_manager_unregister): Update to use + dbus_g_proxy_cancel_call for any pending GetNameOwner call. + (dbus_g_proxy_init): Initialize pending calls map. + (dbus_g_proxy_constructor): New. + (dbus_g_proxy_class_init): Add get/set property functions, + constructor, and add NAME, PATH, and INTERFACE properties. + (cancel_pending_call): New function. + (dbus_g_proxy_dispose): Iterate over any outstanding calls and + cancel them. + (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New. + (GPendingNotifyClosure): New structure. + (d_pending_call_notify, d_pending_call_free): Moved here from + dbus-glib.c. + (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function + ordering. + (manager_begin_bus_call): New internal function for talking to + internal bus proxy. + (dbus_g_proxy_new): Construct object using GObjet properties. + (dbus_g_proxy_begin_call_internal): Update to take user data, etc. + Create closure of same, and insert call into map of pending calls. + (dbus_g_proxy_end_call_internal): Take call id instead of pending + call. Look up pending call in current set. Remove it when we've + completed. + (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete. + (dbus_g_proxy_begin_call): Change API to take callback, user data, + and destroy function directly. + (dbus_g_proxy_end_call): Update to take DBusGProxyCall. + (dbus_g_proxy_call): Invoke with NULL callback. + (dbus_g_proxy_cancel_call): New function, replaces + dbus_g_pending_call_cancel. + + * glib/dbus-gparser.c (validate_signature): Fix call to + dbus_set_g_error. + + * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark): + New quark for attaching metadata to GType. + (info_hash): Delete. + (lookup_object_info): Look up using quark. + (dbus_g_object_type_install_info): Check that a type is classed, + not that it's an object. Also just install type data using quark + instead of using global hash. + + * glib/dbus-glib.c (dbus_g_pending_call_ref) + (dbus_g_pending_call_unref, dbus_pending_call_get_g_type) + (GPendingNotifyClosure): Delete. + (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c. + (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete. + + * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async + client method generation until we can fix it... + + * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call. + (load_from_service_thread_func): Ditto. + + * tools/dbus-names-model.c (struct NamesModel): Hold + DBusGProxyCall. + (have_names_notify): Update prototype, use + dbus_g_proxy_cancel_call. + (names_model_reload): Update for new dbus_g_proxy_begin_call API. + + * tools/dbus-monitor.c (filter_func): Update for print_message + API change. + + * test/glib/test-dbus-glib.c: Add more tests for async + invocations. Update many begin_call/end_call pairs to just use + dbus_g_proxy_call. + + * tools/dbus-send.c (main): Add --print-reply=literal mode. This + allows us to dump print-introspect.c. + + * tools/dbus-print-message.h (print_message): Add literal argument + to print_message which is intended to allow printing arguments without + metadata like "string=". + + * tools/dbus-print-message.c (print_iter): Add literal argument. + (print_message): Allow printing string messages literally. + +2005-07-05 Colin Walters + + * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): + Remove value refcount leak, original patch from Jorn Baayen + . Also remove useless extra value in favor + of prepending to value array directly. + +2005-07-02 Colin Walters + + * glib/dbus-gmain.c (_dbus_gmain_test): Fix test. + +2005-07-01 Colin Walters + + Patch from Jonathan Matthew + + * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type. + (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE, + G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32, + and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE. + +2005-06-30 Colin Walters + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: Update tests for new error + setting bits, also add async tests (patch from Ross Burton). + + * test/glib/Makefile.am (test_service_glib_LDADD): Add + DBUS_GLIB_THREADS_LIBS. + + * glib/dbus-gproxy.c (get_name_owner) + (dbus_g_pending_call_end_valist): Ditto. + + * glib/dbus-gobject.c (error_metadata): New mapping from GError + domain (GQuark) to DBusGErrorInfo. + (gerror_domaincode_to_dbus_error_name): Attempt to look up error + quark in error_metadata. Take message interface as default + error message interface. + (gerror_to_dbus_error_message): Pass message interface. + (dbus_set_g_error): Resurrected. + (dbus_g_error_info_free): New function. + (dbus_g_object_type_install_info): Use g_type_class_ref instead + of _peek to actually create the object class if it hasn't been + created yet. + (dbus_g_error_domain_register): New function. + + * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error. + + * glib/dbus-gparser.c (validate_signature): Ditto. + + * dbus/dbus-glib.h (dbus_g_error_set): Delete. + (dbus_g_error_domain_register): Prototype. + + * glib/dbus-glib.c (dbus_g_error_set): Delete. + Update tests. + +2005-06-29 Colin Walters + + * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add + DBUS_TYPE_G_OBJECT_PATH. + + * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers + for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should + be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH. + (dbus_g_object_path_get_g_type): New function. + (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH + to DBUS_TYPE_G_OBJECT_PATH by default. + (demarshal_proxy): Remove unused name variable. + (demarshal_object_path, marshal_object_path): New functions. + (demarshal_proxy_array, marshal_proxy_array): Delete. + + * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map + DBUS_TYPE_G_OBJECT_PATH to char *. + (dbus_g_type_get_lookup_function): Map builtin + DBUS_TYPE_G_OBJECT_PATH. + + * test/glib/test-dbus-glib.c + * test/glib/test-service-glib.c (my_object_objpath): + Adapt tests to new object path marshalling. + +2005-06-29 John (J5) Palmieri + + * configure.in: force check for Python >= 2.4 + +2005-06-29 Colin Walters + + Patch from Ross Burton + + * glib/dbus-gobject.c (invoke_object_method): Unset object + value in all cases, not only in async case. + +2005-06-29 Colin Walters + + * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member + name_call for keeping track of any outgoing GetNameOwner call. + Also add for_owner and associated. + (struct _DBusGProxyManager): Add owner_names, which is hash table + that maps a base name to a list of names it owns (that we're + interested in). Add pending_nameowner_calls which is a list of + all outstanding GetNameOwner; avoids us having to iterate over + every proxy. Add unassociated_proxies which keeps track of name + proxies with no associated name owner. + (dbus_g_proxy_manager_unref): Destroy owner_names. + (struct DBusGProxyNameOwnerInfo): New struct for keeping track of + name refcounts. + (find_name_in_info, name_owner_foreach) + (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo) + (dbus_g_proxy_manager_monitor_name_owner) + (dbus_g_proxy_manager_unmonitor_name_owner) + (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner): + New functions; they manipulate the owner_names mapping. + (got_name_owner_cb): New function. + (get_name_owner): New function, extracted from + dbus_g_proxy_new_for_name_owner. + (dbus_g_proxy_manager_register): For now we need to keep track of + all NameOwnerChanged. Also if the proxy is for a name, if we + don't already know the name owner, queue a new GetNameOwner + request and add it to our list of unassociated proxies. Otherwise + inc the refcount. + (dbus_g_proxy_manager_unregister): If this proxy is for a name, + cancel any pending GetNameOwner call, etc. + (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use + the owner_names mapping to look up the current names for the + signal source, and dispatch to any proxies for that name. + (dbus_g_proxy_new): Initialize new members. + (dbus_g_proxy_new_for_name): Delete unused proxy variable. + (dbus_g_proxy_new_for_name_owner): Use get_name_owner. + (dbus_g_pending_call_end_valist): New function, extracted from + dbus_g_proxy_end_call_internal. Useful when we don't have a proxy + but want to use the GLib infrastructure. Also note how many + arguments in reply were over. + (dbus_g_pending_call_end): New function, just call + dbus_g_pending_call_end_valist. + (dbus_g_proxy_end_call_internal): Just call + dbus_g_pending_call_end_valist. + + * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup + of builtin marshaller for STRING_STRING_STRING. + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: + Extend tests to cover name proxies, destruction of owner proxies, + etc. + + * glib/examples/example-signal-recipient.c + (dbus_g_proxy_new_for_name_owner): Create a name proxy. + + * tools/dbus-send.c (main): Print D-BUS error name in addition + to message. + +2005-06-28 John (J5) Palmieri + + * python/dbus_bindings.pyx.in (cunregister_function_handler, + cmessage_function_handler): Patch from + Anthony Baxter fixes threading problems + by using the Py_GILState_Ensure/Release to synchronize with the + python runtime. + +2005-06-28 Ray Strode + + * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill + babysitter helper process on last unref, bug #2813. + +2005-06-27 Colin Walters + + * test/glib/test-dbus-glib.c: + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: + Test hash table signal emitting. + + * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert + types to their fundamental basis types, since this is what + marshallers operate on. Also add an entry for VOID__BOXED. + (dbus_g_object_register_marshaller_array): Convert to fundamental. + +2005-06-26 Havoc Pennington + + * doc/dbus-tutorial.xml: fix names of interface/service/path, fix + from Don Park + +2005-06-26 Colin Walters + + * glib/dbus-glib.c (dbus_set_g_error): Delete. + (dbus_g_error_set): New public function from its ashes; used by + both service-side method implementation and GLib bindings + internals. + (dbus_g_error_has_name, dbus_g_error_get_name): New function. + (_dbus_glib_test): Add some tests. + + * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name. + + * test/glib/test-service-glib.c (my_object_throw_error): Use + dbus_g_error_set. + + * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle + errors thrown by dbus_g_error_set. + + * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set. + + * glib/dbus-gparser.c (validate_signature): Ditto. + + * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) + (dbus_g_proxy_end_call_internal): Ditto. + + * glib/Makefile.am: Generate dbus-glib-error-switch.h, which + converts DBUS_ERROR_x to DBUS_GERROR_x. + (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it. + + * doc/TODO: Remove error TODO. + + * doc/dbus-tutorial.xml: Update with documentation about error + handling. + + * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make + sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to + GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION. + +2005-06-22 Colin Walters + + Patch from Ross Burton + + * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig. + +2005-06-20 Colin Walters + + * configure.in: Add glib/examples. + + * glib/Makefile.am: Add examples/ + + * glib/examples/.cvsignore + * glib/examples/Makefile.am + * glib/examples/example-client.c + * glib/examples/example-service.c + * glib/examples/example-service.xml + * glib/examples/example-signal-emitter.c + * glib/examples/example-signal-emitter.xml + * glib/examples/example-signal-recipient.c: + New files; GLib binding examples, ported from + python/examples. + +2005-06-20 Colin Walters + + * dbus/dbus-glib.h: + * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to + dbus_g_proxy_call. + + * glib/dbus-binding-tool-glib.c: + * doc/dbus-tutorial.xml: + * test/glib/test-dbus-glib.c: Update for rename. + +2005-06-20 Colin Walters + + Patch suggested by Ross Burton + + * glib/dbus-gobject.c (export_signals): Free signal name. + (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug + memory leak. Add a bit of documentation. + (dbus_g_method_return_error): Free context, and note we do + so. + +2005-06-18 Murray Cumming + + * dbus/dbus-glib.h: + * glib/dbus-gobject.c: + * glib/dbus-gproxy.c: + * glib/dbus-gvalue.c: Predeclare structs as + typedef struct _Something Something instead of + typedef struct Something Something, so we can + redeclare the prototypes. Other GNOME libraries + do this already. + +2005-06-17 Colin Walters + + * tools/dbus-names-model.c (have_names_notify): Fix call + to dbus_g_proxy_end_call. + +2005-06-17 Colin Walters + + * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't + spew warnings if we get malformed remote signals. + + * glib/dbus-gobject.c (propsig_iterate): New function. + (lookup_object_info): New function, extracted from + lookup_object_and_method. + (introspect_properties, introspect_signals): Delete; these + are merged into write_interface. + (write_interface): Write out signals and properties here; + dump the org.gtk.object stuff and use the interface given + in the introspection data blob. Also fix up property XML. + (lookup_values): New function. + (introspect_interfaces): Gather a mapping from interface to a + list of its methods, signals, and properties, then write out + each interface. + (lookup_object_and_method): Use lookup_object_info. + (struct DBusGSignalClosure): Add interface. + (dbus_g_signal_closure_new): Add interface. Don't dup signame; + we can just use the constant data. + (dbus_g_signal_closure_finalize): Don't free signal name. + (signal_emitter_marshaller): Use interface from signal closure. + (export_signals): Only export signals mentioned in introspection + blob. + (dbus_g_connection_register_g_object): Warn if we have no + introspection data for an object. + (funcsig_equal): Remove unused variable. + (dbus_g_object_register_marshaller): Take varargs instead of + list. + (dbus_g_object_register_marshaller_array): New function, + extracted from old dbus_g_object_register_marshaller. + + * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add + signals and property data. + (write_quoted_string): New function, extracted from generate_glue. + (generate_glue): Write signals and properties to introspection + blob. + + * dbus/dbus-glib.h (struct DBusGObjectInfo): Include + exported_signals and exported_properties. + (dbus_g_object_register_marshaller): Update prototype. + (dbus_g_object_register_marshaller_array): Prototype. + + * test/glib/test-dbus-glib.c: Extend testing to cover new signals. + + * test/glib/test-service-glib.c: Add new test signals and method + to emit them. + + * test/glib/test-service-glib.xml: Add some test signals. + + * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c + and my-object-marshal.h + (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add + my-object-marshal.c. + (my-object-marshal.c, my-object-marshal.h): Implement. + + * test/glib/.cvsignore: Update. + + * doc/TODO: Remove two GLib TODO items fixed by this + patch. + +2005-06-16 Colin Walters + + * doc/TODO: Update for GLib bindings. + +2005-06-16 Colin Walters + + * glib/dbus-binding-tool-glib.c: + * glib/dbus-gobject.c: + * glib/dbus-gproxy.c: Add Nokia copyright; Patch + from Ross Burton, for his GLib bindings work. + +2005-06-16 Colin Walters + + * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params + to iterate instead of walking to G_TYPE_INVALID. + + Patch based on a patch from Ryan Gammon. + +2005-06-16 Colin Walters + + * bus/bus.c (bus_context_new): Set parser to NULL + after we unref it (Patch from Chris Boscolo, #2174). + +2005-06-16 Colin Walters + + * python/dbus_bindings.pyx.in: Import size_t, + __int64_t, __uint64_t, and __signed. + + * dbus/dbus-sysdeps.c (write_credentials_byte): + Define cmsg struct, output it. + (_dbus_read_credentials_unix_socket): + Use cmsg struct. + + Patch from Joe Markus Clarke for FreeBSD support. + +2005-06-16 Colin Walters + + * tools/dbus-send.c (append_array): Use strtok. + (append_dict): New function. + (type_from_name): New function, extracted from main. + (main): Handle sending dicts. + + * tools/dbus-print-message.c (print_iter): Print dict + entries. + +2005-06-16 Colin Walters + + * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string + values as the empty string (#2948). + +2005-06-16 Colin Walters + + * dbus/Makefile.am: + * mono/doc/Makefile.am: + * test/glib/Makefile.am: + + Fix srcdir != builddir issues (Patch from Chris Wilson, #3477) + +2005-06-16 Colin Walters + + * dbus/dbus-marshal-header.c (_dbus_header_load): Set + header byte order from expected byte order (Patch from Chris Wilson, #3475). + + * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): + Increment pointer after swapping fixed array. Add assertion + for array length. + +2005-06-15 Colin Walters + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): + Fix call to dbus_set_error. (Patch from Michael Banck, #3461) + +2005-06-15 John (J5) Palmieri + + * NEWS: Update to 0.34 + +2005-06-15 David Zeuthen + + * configure.in (LT_CURRENT): Revert back to 1 as the library + hasn't changed and we've certainly not committed to protocol + stability yet. All this does is to break ABI. See commit note + from hp@redhat.com 2005-05-05 for details. + +2005-06-15 John (J5) Palmieri + + * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method + (_dbus_connection_run_builtin_filters): New method + (dbus_connection_dispatch): Run the builtin filters which in turn + runs the peer filter which handles Ping messages. + + * doc/TODO: + - Ping isn't handled: This patch fixes it + + - Add a test case for the Ping message: added TODO item + +2005-06-15 John (J5) Palmieri + + * dbus/dbus-message.c: + (dbus_message_has_path): New method + (dbus_message_has_interface): New method + (dbus_message_has_member): New method + + * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user): + New method + + * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that + the keyring directory is private to the user + + * doc/TODO: + - The convenience functions in dbus-bus.h should perhaps have + the signatures that they would have if they were autogenerated + stubs. e.g. the acquire service function. We should also evaluate + which of these functions to include, in light of the fact that + GLib/Qt native stubs will probably also exist.: Punted + + - add dbus_message_has_path(), maybe has_member/interface: + fixed in this patch + + - in dbus-keyring.c, enforce that the keyring dir is not + world readable/writable: Fixed in this patch + +2005-06-15 John (J5) Palmieri + + * dbus/dbus-marshal-validate.h: Added a new validation + error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for + out of memory errors when validating signitures + + * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR + in places where we previously used DBUS_VALID and a FALSE return + value to indicate OOM + + * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason): + Use a stack to track the number of elements inside containers. The + stack values are then used to validate that dict entries have only two + elements within them. + (validate_body_helper): check the reason for failure when validating + varients + + * dbus/dbus-message.c (load_message): use + DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used + DBUS_VALID and a FALSE return value to indicate OOM + + * doc/TODO: remove "- validate dict entry number of fields" as this + patch fixes it + +2005-06-14 David Zeuthen + + * bus/bus.c (process_config_every_time): Drop existing conf-dir + watches (if applicable) and add new watches + + * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY + (main): Setup SIGIO signal handler if using D_NOTIFY + + * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs + + * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list + (merge_included): Also merge conf_dirs list + (bus_config_parser_unref): Clear conf_dirs list + (include_dir): Add directory to conf_dirs list + (bus_config_parser_get_conf_dirs): New function + + * bus/dir-watch.[ch]: New files + + * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch] + + * configure.in: Add checks for D_NOTIFY on Linux + +2005-06-14 Colin Walters + + * glib/dbus-binding-tool-glib.c: + * glib/dbus-gobject.c: + * glib/dbus-gvalue.c: Fix indentation and brace style. + +2005-06-14 Ross Burton . + + * glib/dbus-glib.h: Make DBusGMethodInvocation + a private structure. Rearrange prototypes a bit. + + * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add + documentation for first_arg_type. + + * glib/dbus-gobject.c: Move DBusGMethodInvocation + here, add documentation. Move dbus_g_method_return + and dbus_g_method_return_error into public API + section. + +2005-06-14 Colin Walters + + * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): + Add missing return statements, noticed by Ross Burton. + +2005-06-13 Ross Burton . + + * glib/dbus-gobject.c: Handle errors on message + demarshalling by sending error message back. + * glib/dbus-gvalue.c: Initialize return variables. + +2005-06-13 Colin Walters + + * glib/Makefile.am: Fix thinko in last patch. + +2005-06-13 Colin Walters + + * glib/Makefile.am: Move dbus-gtype-specialized.c + and dbus-gtype-specialized.h into a _HEADERS variable, + install them. + +2005-06-12 Colin Walters + + Async signals and various bugfixes and testing by + Ross Burton . + + * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete. + (dbus_gvalue_genmarshal_name_from_type) + (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c. + (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature. + (dbus_g_value_types_init, dbus_gtype_from_signature) + (dbus_gtype_from_signature_iter, dbus_gtype_to_signature) + (dbus_gtypes_from_arg_signature): New function prototypes. + (dbus_gvalue_demarshal): Take context and error arguments. + (dbus_gvalue_demarshal_variant): New function. + (dbus_gvalue_demarshal_message): New function. + (dbus_gvalue_store): Delete. + + * glib/dbus-gvalue.c: + + File has been almost entirely rewritten; now we special-case + more types such as DBUS_TYPE_SIGNATURE, handle arrays and + hash tables correctly, etc. Full support for recursive values + is not yet complete. + + * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last + argument of signal to G_TYPE_POINTER since we now pass a + structure. + (lookup_g_marshaller): Delete in favor of + _dbus_gobject_lookup_marshaller. + (marshal_dbus_message_to_g_marshaller): Use + _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message + to handle remote signal callbacks. + (dbus_g_proxy_new_from_proxy): New function; creates a new + DBusGProxy by copying an existing one. + (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface) + (dbus_g_proxy_get_path): New functions. + (dbus_g_proxy_marshal_args_to_message): New function; + factored out of existing code. + (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments + from a varargs array. + (dbus_g_proxy_begin_call_internal): New function. + (dbus_g_proxy_end_call_internal): New function. + (dbus_g_proxy_begin_call): Take GTypes instead of DBus types + as arguments; simply invoke dbus_g_proxy_begin_call_internal + after collecting args into value array. + (dbus_g_proxy_end_call): Take GTypes instead of DBus types; + invoke dbus_g_proxy_end_call_internal. + (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and + end_call_internal. + (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus + types. + (array_free_all): New function. + (dbus_g_proxy_add_signal): Take GTypes. + + * glib/dbus-gobject.h: + (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. + (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller): + Prototype. + + * glib/dbus-gobject.c: Add a global marshal_table hash which + stores mappings from type signatures to marshallers. Change lots + of invocations of dbus_gtype_to_dbus_type to + dbus_gtype_to_signature. + (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. + (introspect_signals): Fix test for query.return_type. + (set_object_property): Update invocation of dbus_gvalue_demarshal. + (invoke_object_method): Many changes. Handle asynchronous + invocations. Convert arguments with + dbus_gvalue_demarshal_message. Handle errors. Use + DBusSignatureIter instead of strlen on args. Handle all arguments + generically. Special-case variants. + (dbus_g_method_return, dbus_g_method_return_error): New function. + (DBusGSignalClosure): New structure, closes over signal + information. + (dbus_g_signal_closure_new): New function. + (dbus_g_signal_closure_finalize): New function. + (signal_emitter_marshaller): New function; is special marshaller + which emits signals on bus. + (export_signals): New function; introspects object signals and + connects to them. + (dbus_g_object_type_install_info): Take GType instead of + GObjectClass. + (dbus_g_connection_register_g_object): Invoke export_signals. + (dbus_g_connection_lookup_g_object): New function. + (DBusGFuncSignature) New structure; used for mapping type + signatures to marshallers. + (funcsig_hash): New function; hashes DBusGFuncSignature. + (funcsig_equal): New function; compares DBusGFuncSignature. + (_dbus_gobject_lookup_marshaller): New function. + (dbus_g_object_register_marshaller): New function; used to + register a marshaller at runtime for a particular signature. + + * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests. + + * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC + which notes a server method implementation should be + asynchronous. + + * glib/dbus-binding-tool-glib.c + (dbus_binding_tool_output_glib_server): Call + dbus_g_value_types_init. + (write_formal_parameters): Use dbus_gtype_from_signature. Handle + variants specially. + (dbus_g_type_get_lookup_function): Turn GType into an invocation + of a lookup function. + (write_args_for_direction): Use dbus_g_type_get_lookup_function. + (write_untyped_out_args): New method; write output arguments. + (write_formal_declarations_for_direction): Function for + writing prototypes. + (write_formal_parameters_for_direction): Function for + writing implementations. + (write_typed_args_for_direction): Function for writing + arguments prefixed with GTypes. + (write_async_method_client): Write out async version + of method. + + * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h. + (dbus_g_type_get_marshal_name): Move mapping from GType + to marshal name into here. + (dbus_g_type_get_c_name): Move into here. + (compute_marshaller): Convert signature to type with + dbus_gtype_from_signature, use dbus_g_type_get_marshal_name. + (compute_marshaller_name): Ditto. + (compute_marshaller): Handle async signal annotations. + (gather_marshallers): Return if we don't have a known + prefix. + (generate_glue): Collect introspection blob here, and + write all of the blob at the end. This allows an object + with multiple interfaces to work. + Mark async methods in introspection blob. + + * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add + dbus-gtype-specialized.c, dbus-gtype-specialized.h, + dbus-gvalue-utils.h, dbus-gvalue-utils.c. + + * dbus/dbus-glib.h: Don't include dbus-protocol.h; this + avoids people accidentally using DBUS_TYPE_* which should + not be necessary anymore. + Do include dbus-gtype-specialized.h, which are utilities + for GLib container types. + Add various #defines for types such as + DBUS_TYPE_G_BOOLEAN_ARRAY. + (DBusGValueIterator, DBusGValue): Define, not fully used + yet. + (dbus_g_value_get_g_type): Type for recursive value. + (dbus_g_value_open, dbus_g_value_iterator_get_value) + (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse) + (dbus_g_value_free): Prototypes. + (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype. + (dbus_g_proxy_set_interface): Prototype. + (dbus_g_proxy_begin_call, dbus_g_proxy_end_call) + (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus + types. + (dbus_g_proxy_get_path, dbus_g_proxy_get_interface): + Accessors. + (DBusGAsyncData, DBusGMethodInvocation): Structures for + doing async invocations. + (dbus_g_method_return, dbus_g_method_return_error): + Prototypes. + * doc/dbus-tutorial.xml: Update GLib section. + + * tools/dbus-viewer.c (load_child_nodes): Update + for new invocation type of dbus_g_proxy_end_call. + (load_from_service_thread_func): Ditto. + + * tools/print-introspect.c (main): Ditto. + + * tools/dbus-names-model.c (have_names_notify) + (names_model_reload, names_model_set_connection) + Use GTypes. + + * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION, + needed since Python bindings use GLib bindings. + + * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION. + Add --prefix argument. + + * tools/Makefile.am: Define DBUS_COMPILATION. Remove + unneeded --ignore-unsupported arg. + + * test/glib/test-service-glib.c: + * test/glib/test-service-glib.xml: + * test/glib/test-dbus-glib.c: Add many more tests. + +2005-06-06 David Zeuthen + + * doc/TODO: Add item about need to remove deprecated functions. + + * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect + + * dbus/dbus-connection.c (dbus_connection_disconnect): New function + to repair the ABI which was broken with the last commit. + +2005-06-02 John (J5) Palmieri + + * dbus/dbus-connection.c, dbus/dbus-connection.h + (dbus_connection_disconnect): renamed to dbus_connection_close + for API symmetry with dbus_connection_open + (_dbus_connection_open_internal): + s/dbus_connection_disconnect/dbus_connection_close + + * dbus/dbus-bus.c (dbus_bus_get): + s/dbus_connection_disconnect/dbus_connection_close + + * bus/connection.c (bus_connections_unref, + bus_connections_setup_connection, bus_connections_expire_incomplete): + s/dbus_connection_disconnect/dbus_connection_close + + * bus/dispatch.c (bus_dispatch, kill_client_connection, + kill_client_connection_unchecked, check_hello_connection): + s/dbus_connection_disconnect/dbus_connection_close + + * bus/bus.c (new_connection_callback): + s/dbus_connection_disconnect/dbus_connection_close + + * tools/dbus-send.c (main): + s/dbus_connection_disconnect/dbus_connection_close + + * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func): + s/dbus_connection_disconnect/dbus_connection_close + + * test/test-service.c (path_message_func, filter_func): + s/dbus_connection_disconnect/dbus_connection_close + + * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed + +2005-05-25 Colin Walters + + * dbus/dbus-protocol.h: Move various bus service #defines such + as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to + dbus/dbus-shared.h. + * dbus/dbus-shared.h: Various defines moved here. + * dbus/dbus-marshal-header.c: Include dbus-shared.h. + +2005-05-25 John (J5) Palmieri + + * python/__init__.py: Python bindings deserve a minor version + update. Upped to (0, 40, 2) + +2005-05-24 John (J5) Palmieri + + * python/decorators.py: add explicitly_pass_message decorator + for passing in the dbus message as keyword for edge case signal + handling + + * python/matchrules.py (SignalMatchRule.__repr__): fix output + to conform with what dbus expects for match rules + (SignalMatchRule.execute): add the dbus message as a keyword + if the signal handler has requested it + + * python/examples/example/signal-recipient.py: added some more + examples on how to hook up to signals + +2005-05-23 John (J5) Palmieri + + * python/decorators.py: import dbus_bindings + + * python/matchrules.py (SignalMatchRule, SignalMatchTree, + SignalMatchNode): new classes that implement wildcard signal + callback matching using a tree lookup. Heavily modified from a + patch sent by Celso Pinto (fd.o bug #3241) + + * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func): + use new match classes to handle signals. + +2005-05-19 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH + +2005-05-18 Havoc Pennington + + * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require + gettext. Not really worth requiring yet perhaps, but any + production quality 1.0 would require it so we should go ahead and + get things set up. We do have a couple token calls to + bindtextdomain in the code already. + +2005-05-16 John (J5) Palmieri + + * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock + when using recursive g_main_loops + + * python/_dbus.py (class Bus): add the ProxyObjectClass + alias for ProxyObject to make it easier for the Twisted + networking framework to integrate dbus. + + * python/proxies.py (class ProxyObject): add the ProxyMethodClass + alias for ProxyMethod to make it easier for the Twisted + networking framework to integrate dbus. + +2005-05-11 Ross Burton + + * glib/dbus-glib-tool.c: Add --prefix argument. + * glib/dbus-binding-tool-glib.h: Add prefix argument. + * glib/dbus-binding-tool-glib.c (compute_marshaller_name): + Add prefix argument. + (generate_glue): Pass prefix argument down. + (dbus_binding_tool_output_glib_server): Pass prefix to + glib-genmarshal. + +2005-05-11 Colin Walters + + * tools/dbus-send.c (append_array): New function. + (append_arg): Broken out from main. + (main): Add cheesy hack to send arrays and variants. + (usage): Update. + * tools/dbus-print-message.c (print_iter): Broken out + from main. + +2005-05-11 Colin Walters + + * dbus/dbus-signature.c (dbus_signature_iter_get_signature): + New function, returns signature string for signature iter. + * dbus/dbus-signature.h: Prototype it. + * dbus/dbus-message.c (dbus_message_iter_get_signature): + New function, returns signature string for message iter. + (dbus_message_iter_get_array_len): New function, returns + length of array. + (dbus_message_iter_get_fixed_array): Fix assertion; this + function should be used when the iter is pointing to the + contents of an array + * dbus/dbus-message.h: Prototypes. + * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length): + New function; returns length of an array. + * dbus/dbus-marshal-recursive.h: Prototype it. + +2005-05-11 Colin Walters + + * dbus/dbus-sysdeps-util.c : Fix + compilation error. + +2005-05-08 Havoc Pennington + + * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the + daemon's pid, not the parent's pid, to the file descriptor. + Reported by Taj Morton. + +2005-05-05 Havoc Pennington + + * configure.in (LT_*): add notes on how the libtool versioning + works to save thinking. Increment soname to indicate protocol + breakage (though really the library interface hasn't changed I + guess) + + * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): + verify the GUID received from server matches what we were + expecting, if we had an expectation + + * dbus/dbus-auth.c (send_ok): send GUID along with the OK command + (_dbus_auth_get_guid_from_server): new function + (send_begin): parse the OK args + + * doc/dbus-specification.xml: add GUID to the auth protocol + +2005-05-05 John (J5) Palmieri + + * Fix my name in previous changelog ;) + + * python/proxies.py (ProxyObject.__getattr__): add further patch + from Anthony Baxter to throw an AttributeError when python + __special__ functions are called instead of marshling them over + the bus (Bug#1685 comment 3). + +2005-05-04 John (J5) Palmieri + + * python/Makefile.am: changed to use pyexecdir for the binding + shared libraries (Bug#2494) + + * python/exceptions.py: bring exceptions over from the bindings + so they can be used in applications (Bug#2036) + Make all exceptions derive from DBusException + + * python/_dbus.py, python/proxies.py: implement __repr__ in a couple + of classes so that print obj doesn't throw an exception (Bug #1685) + +2005-05-03 Ross Burton + + * glib/dbus-gobject.c (dbus_g_connection_register_g_object): + Return if we get an error during registration. Set up a + weak reference on object to unregister if object is destroyed. + (unregister_gobject): New function. + +2005-05-01 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: + - added new type classes for hinting to the marashaler what type + to send over the wire + - added int16 and uint16 marshalers + - Fixed a bug in the type constants that caused int32 to go out + as uint16 over the wire + * python/dbus.py: split up into different files and renamed _dbus.py + * python/__init__.py, python/_util.py, python/decorators.py, + python/exceptions.py, python/proxies.py, python/services.py, + python/types.py: new files split off from dbus.py + * python/Makefile.am: Add new files, remove dbus.py and + install all python files to /dbus + * python/examples/*: Added #!/usr/bin/env python to the top of + every example. Patch provided by Tatavarty Kalyan + +2005-04-25 John (J5) Palmieri + + * NEWS: Update to 0.33 + +2005-04-25 John (J5) Palmieri + + * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send + method for doing async calls + (_pending_call_notification): New C function for handling pendning call + callbacks + (set_notify): New method for setting pending call notification + + * python/dbus.py: new version tuple "version" is set at (0, 40, 0) + Async capabilities added to remote method calls + (Sender): class removed + (RemoteService): class removed + (ObjectTree): class removed for now + (RemoteObject): Renamed to ProxyObject + (RemoteMethod): Renamed to ProxyMethod + (method): Decorator added for decorating python methods as dbus methods + (signal): Decorator added for decorating python methods as signal emitters + (ObjectType): Metaclass added for generating introspection data and the + method callback vtable + (Interface): Wrapper class added to wrap objects in a dbus interface + (Object): Uses ObjectType as its metaclass and exports Introspect + of the org.freedesktop.DBus.Introspectable interface + (ValidationException, UnknownMethodException): new exceptions + + * python/examples/*: Modified to fit with the new bindings + +2005-04-23 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_append_args): fix doc comment, + reported by Tony Houghton + + * test/test-service.c (main): test + dbus_connection_get_object_path_data() + + * dbus/dbus-object-tree.c (find_handler): be sure we always init + the exact_match + (_dbus_object_tree_get_user_data_unlocked): new function used by + dbus_connection_get_object_path_data() + (do_register): add assertion test for get_user_data_unlocked + (object_tree_test_iteration): more tests + + * dbus/dbus-connection.c (dbus_connection_get_object_path_data): + new function from Dan Reed to let you get the user data from + dbus_connection_register_object_path() + +2005-04-23 John (J5) Palmieri + + * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow + in numerous places that did not account for the NULL terminator + (signature_from_seed): changed the manual string copy loop to + just use strcpy instead + make check should now pass + +2005-04-19 John (J5) Palmieri + + * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert + so that it allows messages that are not signals to pass in + NULL as the interface. + +2005-04-18 David Zeuthen + + * glib/dbus-gmain.c (io_handler_destroy_source): + (timeout_handler_destroy_source, connection_setup_free): + Also unref the source to avoid memory leaks. + +2005-04-13 David Zeuthen + + * bus/config-parser.c (bus_config_parser_new): Bump this to a + more reasonable, yet still totally arbitrary, value :-). + +2005-04-13 David Zeuthen + + * doc/TODO: Added an "important for 1.0" item about selinux + allow/deny messages + +2005-04-13 David Zeuthen + + * bus/selinux.c: Add c-file-style to top of file + (log_audit_callback): Don't free the data here anymore + (bus_selinux_check): Don't take spid and tpid since appending + that to auxdata may OOM. + (bus_selinux_allows_acquire_service): Handle OOM and signal back + to the caller if we are OOM by taking an error object. + (bus_selinux_allows_send): -do- + + * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service + and bus_selinux_allows_send + + * bus/bus.c (bus_context_check_security_policy): Pass error and + pass on OOM thrown by bus_selinux_allows_send() + + * bus/services.c (bus_registry_acquire_service): Pass error and + pass on OOM thrown by bus_selinux_allows_acquire_service() + +2005-04-13 Havoc Pennington + + * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one + message at a time to avoid monopolizing the main loop, bug + #2953 from Benjamin Otte + +2005-04-09 Havoc Pennington + + * dbus/dbus-string.c (copy): change a memcpy to memmove due to + possible overlap, fix from Daniel Reed + (fixup_alignment): fix signedness warnings + (_dbus_string_append_unichar): ditto + +2005-04-09 Havoc Pennington + + * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning + + * glib/dbus-glib-tool.c (main): fix warning + + * glib/dbus-binding-tool-glib.c (generate_glue): fix warning + + * dbus/dbus-connection.c (dbus_connection_read_write_dispatch): + add a new function that can be used in simple applications that + don't have a main loop and are willing to block + +2005-04-05 David Zeuthen + + Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889 + + * glib/dbus-gmain.c: + (io_handler_destroy_source): Remove from list of IO handlers + of the ConnectionSetup object + (timeout_handler_destroy_source): -do- for timeout handlers + (io_handler_source_finalized): Don't remove from list since + we now do that in io_handler_destroy_source(). Renamed from + io_handler_source_destroyed + (timeout_handler_source_destroyed): -do- for timeout handlers + (connection_setup_free): It is now safe to iterate over all + IO and timeout handlers as the _destroy_source removes them + from the list synchronously + +2005-03-30 Havoc Pennington + + * configure.in: change check to gtk 2.4 + + * tools/dbus-viewer.c (name_combo_changed_callback): remove + gtk_combo_box_get_active_text() usage to decrement GTK requirement + to 2.4 + +2005-03-29 John (J5) Palmieri + + * News: Update 0.32 + + * HACKING: Fixed realease instructions. configure.in should be updated to + the next release by the person who made the last release. + +2005-03-29 John (J5) Palmieri + + * python/lvalue_cast_post_process.py - removed. Patch has been + submitted to Pyrex maintainers that fixes gcc4.0 errors + + * python/Makefile.am: removed refrences to lvalue_cast_post_process.py + +2005-03-24 Daniel Reed + + * tools/Makefile.am: Make print-introspect and + dbus-bus-introspect.xml building conditional on HAVE_GLIB. + +2005-03-22 John (J5) Palmieri + + * tools/Makefile.am: Patch by Colin Walters that fixes distcheck + + * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have + had in Red Hat packages for a while but for some reason never + got merged upstream + (_dbus_is_a_number): New checks if a string + can be converted to a number and does the conversion if it can + (_dbus_user_database_lookup): Add check to see if the given username + is a udi. This allows udi's to be used instead of usernames in the + config file. + (_dbus_user_database_lookup_group): Add check to see if the given groupname + is a gdi. This allows gdi's to be used instead of groupnames in the + config file. + +2005-03-21 John (J5) Palmieri + + * python/lvalue_cast_post_process.py - added post processor to fix Pyrex + code so that it compiles with gcc4.0 + + * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST + run dbus_bindings.c through lvalue_cast_post_process.py and copy the + results back to dbus_binding.c + +2005-03-20 Colin Walters + + Patch suggested by Inguva Rajasekhar . + + * configure.in: Require GTK+ 2.6. + +2005-03-20 Colin Walters + + * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test. + +2005-03-17 Tom Parker + + * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't + print DBUS_UID_UNSET; instead print passed username. Also + be sure to actually use gid looked up in cache. + + * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto + for DBUS_GID_UNSET and groupname. + +2005-03-17 Colin Walters + + * bus/print-introspect.c: Move to tools/. + * bus/run-with-tmp-session-bus.sh: Ditto. + + * glib/Makefile.am (dbus-glib-bindings.h): Move + generation to tools/Makefile.am. + + * test/glib/run-test.sh: Update to handle move + of run-with-tmp-session-bus.sh. + + * test/glib/test-service-glib.c: Update to handle + move of dbus-glib-bindings.h. + + * tools/print-introspect.c: Moved here + from bus/, and ported to GLib bindings. + + * tools/run-with-tmp-session-bus.sh: Moved here + from bus/. + + * tools/Makefile.am: Generate dbus-glib-bindings.h + and dbus-bus-introspect.xml here. + + * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore: + Update. + +2005-03-17 Colin Walters + + * bus/driver.c (write_args_for_direction): Use + _dbus_string_get_const_data to retrieve string; + _dbus_string_get_const_data_len doesn't actually return + a NULL-terminated substring. + + * test/glib/test-service-glib.c: Include dbus-glib-bindings.h. + (main): Change to use org_freedesktop_DBus_request_name + instead of using g_proxy_begin_call/end_call. + +2005-03-15 Joe Shaw + + * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when + generating the finalizer. Fixes from Ben Maurer. + +2005-03-12 Joe Shaw + + * mono/BusDriver.cs: Update method names: ListServices + becomes ListNames; GetOwner becomes GetNameOwner. + + * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0 + onto the eval stack when removing the delegate. + +2005-03-12 Joe Shaw + + * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for + LT_CURRENT. Set it to the autoconf variable. + + * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy + classes that disconnects the signal handler delegate from the + service object. Fixes a big leak of proxy objects on the + client side of things. Patch from Ben Maurer + + +2005-03-12 Colin Walters + + * bus/driver.c (write_args_for_direction): New function, + parses a type signature into arguments and outputs to + XML. + (bus_driver_handle_introspect): Use it instead of + hardcoding XML for certain signatures. + + * bus/Makefile.am (dbus-bus-introspect.xml): Add + dependency on dbus-daemon. + + * glib/dbus-glib-tool.c (main): Parse ignore_unsupported + argument, pass it to dbus_binding_tool_output_glib_client. + + * glib/dbus-binding-tool-glib.c + (generate_client_glue): Protect against multiple inclusion. + (dbus_binding_tool_output_glib_client): Add + G_BEGIN_DECLS/G_END_DECLS. + + * glib/dbus-binding-tool-glib.c (compute_client_method_name): + Change to just take iface prefix directly. + (write_formal_parameters): Clarify error message. + (check_supported_parameters): New function; checks to see type + signatures of method parameters are supported. + (generate_client_glue): Handle ignore_unsupported flag. + (dbus_binding_tool_output_glib_client): Handle ignore_unsupported + parameter. + + * glib/Makefile.am (dbus-glib-bindings.h): Pass + --ignore-unsupported by default until glib bindings + support arrays. + +2005-03-11 Colin Walters + + * glib/Makefile.am: Generate dbus-glib-bindings.h and + install it. + + * bus/print-introspect.c: New file; prints introspection + data for a given name and object path. + + * bus/run-with-tmp-session-bus.sh: New file, refactored + from test/glib/run-test.sh. Creates a temporary session + bus and runs another program. + + * test/glib/run-test.sh: Refactor to invoke + run-with-tmp-session-bus.sh. + + * bus/driver.c (bus_driver_handle_introspect): Fix to print new + introspection format. Also change to use DBUS_TYPE_x_AS_STRING + macros instead of hardcoding. + + * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update. + +2005-03-11 Joe Shaw + + * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove + this unref; it doesn't match up evenly in some codepaths. + (_dbus_connection_block_pending_call): Unref at every exitpoint; + this evenly matches with the ref near the top of this function. + +2005-03-09 Joe Shaw + + * dbus/dbus-object-tree.c + (_dbus_object_tree_unregister_and_unlock): If checks are enabled + and we try to unregister a path that's not registered, still go + through the process of unlocking and don't just return. + +2005-03-09 Colin Walters + + * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls + to this are generated for client-side wrappers. Invokes a + D-BUS method and returns reply values. + + * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New + function; writes signature string for argument direction. + (write_args_for_direction): Change to pass input values directly + instead of via address, and fix indentation. + (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also + make generated wrappers inlineable. + + * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add + note about using dbus_type_is_fixed. + + * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to + dbus/dbus-signature.c as dbus_type_is_fixed. + + All callers updated. + + * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here + from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed. + + * dbus/dbus-signature.h: Prototype. + + * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix + error printf code. + + * test/glib/test-dbus-glib.c (main): Be sure to clear error as + appropriate instead of just freeing it. + (main): Free returned strings using g_free. + + * test/glib/Makefile.am (test-service-glib-glue.h) + (test-service-glib-bindings.h): Add dependency on dbus-binding-tool. + + * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT; + simply maps a simple D-BUS type to GType. + (dbus_dbus_type_to_gtype): Function which maps D-BUS type to + GType. + (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and + initialize the value with it. + (dbus_gvalue_binding_type_from_type): Unused, delete. + (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for + various types instead of unmarshalling to value data directly. + Remove can_convert boolean. + (dbus_gvalue_marshal): Remove duplicate initialization; switch to + returning directly instead of using can_convert boolean. + (dbus_gvalue_store): New function; not related to D-BUS per-se. + Stores a GValue in a pointer to a value of its corresponding C + type. + + * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type, + add dbus_gvalue_store. + +2005-03-08 Joe Shaw + + Fix a bunch of lifecycle and memory management problems + in the mono bindings. + + * mono/Arguments.cs (Arguments): Implement IDisposable + + * mono/Bus.cs (Bus): Don't allow public instantiation. This is + strictly a static class. + + * mono/Connection.cs: Move the DBusObjectPathVTable and associated + delegates into this file. + (Connection): Implement IDisposable. + (Dispose): Disconnect the connection and set the raw connection + pointer to IntPtr.Zero. + (~Connection): Call Dispose(). + (RegisterObjectPath): Added. Manages the registration of object + paths so we can cleanly disconnect them at dispose/finalize time. + (UnregisterObjectPath): Ditto. + (set_RawConnection): Unregister all of the object paths when + changing the underlying DBusConnection. Add them back onto the + new connection, if any. + + * mono/Handler.cs: Don't implement IDisposable; it doesn't use any + more unmanaged resources anymore, so it's not necessary. Move all + the DBusObjectPathVTable stuff out of here. + (Handler): Save references to our delegates so that they don't get + finalized. Call Connection.RegisterObjectPath() instead of + dbus_connection_register_object_path() directly. + (Message_Called): Dispose the message after we're finished with + it. + + * mono/Message.cs (Message): Implement IDisposable. + (Dispose): Dispose the Arguments, and set the RawMessage to + IntPtr.Zero. + (SendWithReplyAndBlock): We own the ref to the reply that comes + back from dbus_connection_send_with_reply_and_block() so add a + comment about that and unref it after we've constructed a managed + MethodReturn class around it. Fixes a big, big leak. + + * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose + method. + (BuildSignalHandler): After we've sent the Signal message, dispose + of it. + (BuildMethod): Dispose of the method call and reply messages after + we've sent the message and extracted the data we want from the + reply. + + * mono/Service.cs (UnregisterObject): Don't call handler.Dispose() + anymore. + (Service_FilterCalled): Dispose of the message after we're + finished with it. + +2005-03-08 Joe Shaw + + * dbus/dbus-connection.c (dbus_connection_send_with_reply): + After we attach our pending call to the connection, unref + it. Fixes a leak. + + * mono/Connection.cs (set_RawConnection): Disconnect our + filter and match callbacks from the old connection and + reconnect them to the new connection, if any. + + * mono/DBusType/Array.cs: "Code" is a static member, so + don't use "this" to refer to it. Fix for stricter checking + in Mono 1.1.4. + + * mono/DBusType/ObjectPath.cs (Append): Don't leak the + object path that we pass into unmanaged code. + + * mono/DBusType/String.cs (Append): Don't leak the string + that we pass into unmanged code. + +2005-03-07 John (J5) Palmieri + * NEWS: Update for 0.31 + + * configure.in: Release 0.31 + add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping + + * qt/Makefile.am: fixed build + + * dbus/Makefile.am: soname bump for libdbus + + * glib/Makefile.am: soname bump for libdbus-glib + +2005-03-05 Havoc Pennington + + * dbus/dbus-sysdeps.c: + (pseudorandom_generate_random_bytes_buffer): fix to have no return + value + (_dbus_generate_random_bytes_buffer): fix return value + + * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure + checks actually work, from Tom Parker + +2005-03-01 Colin Walters + + * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility + functions copied from dbus-glib-tool.c. + (main): Convert lots of error code to use them. + Also add some testing for introspection bits. + +2005-03-01 Colin Walters + + * doc/TODO: Remove introspection signature TODO. + +2005-02-27 Colin Walters + + * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type): + Change return value to const char * instead of int so we can do + full signatures. + (struct PropertyInfo, struct ArgInfo): Store char *. + (property_info_new, arg_info_new): Update parameters, strdup. + (property_info_unref, arg_info_unref): Free. + + * glib/dbus-gidl.h: Update prototypes. + + * glib/dbus-gparser.c (basic_type_from_string): Delete. + (validate_signature): New function, just validates signature and + sets GError. + (parse_property, parse_arg): Invoke validate_signature. Store + signature instead of just type code. + + * glib/dbus-gvalue.c (base_type_from_signature): New utility + function to return a primary type for a signature, dropping + information about types in container types. + (dbus_gvalue_genmarshal_name_from_type) + (dbus_gvalue_binding_type_from_type) + (dbus_gvalue_ctype_from_type): Update to take full signature + instead of type code. + (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c. + + * glib/dbus-gvalue.h: Update prototypes for above. + + * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to + glib/dbus-gvalue.c as dbus_gtype_to_dbus_type. + (introspect_properties, introspect_signals, write_interface): + Update to handle signatures, and remove usage of + _dbus_gutils_type_to_string. + (handle_introspect): Print out type codes instead of e.g. "string" + in hardcoded introspection XML; also use x_AS_STRING constants + instead of hardcoding in string. + + * glib/dbus-glib-tool.c (pretty_print): Handle signature change + to string. Remove usage of _dbus_gutils_type_to_string. + + * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete. + + * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for + deletion. + + * glib/dbus-binding-tool-glib.c (compute_marshaller) + (compute_marshaller_name, generate_glue): Handle signature change + to string. + (write_formal_parameters, write_args_for_direction): Ditto, and + remove FIXME. + + * tools/dbus-tree-view.c (type_to_string): Delete. + (info_set_func_text): Update to print full signatures. + + * test/glib/test-service-glib.xml: Change types to new + introspection format. + +2005-02-26 Havoc Pennington + + * doc/TODO: remove the "guid" item + + * test/glib/test-profile.c (no_bus_thread_func): use open_private + (with_bus_thread_func): use open_private + + * dbus/dbus-connection.c (dbus_connection_open_private): new + function that works like the old dbus_connection_open() + (dbus_connection_open): now returns an existing connection if + possible + + * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass + through the GUID to the transport + + * dbus/dbus-server.c (_dbus_server_init_base): keep around the + GUID in hex-encoded form. + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + pass GUID argument in to the transport + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add + guid argument + + * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument + + * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument + +2005-02-25 Havoc Pennington + + * doc/dbus-specification.xml: document the GUID thing + + * dbus/dbus-server.c (_dbus_server_init_base): initialize a + globally unique ID for the server, and put a "guid=hexencoded" + field in the address + + * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h + + * dbus/dbus-message.c: ditto + + * dbus/dbus-dataslot.c: ditto + + * dbus/dbus-list.c: ditto + + * dbus/dbus-internals.h: wait, just include + dbus-threads-internal.h here + + * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for + use in main library + + * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function + +2005-02-24 Colin Walters + + * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml + +2005-02-24 John (J5) Palmieir + + * glib/Makefile.am: added dbus-gobject.h to sources list + so distcheck doesn't fail + +2005-02-24 Havoc Pennington + + * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so + you must disconnect before unref, since locking and other things + are screwed up otherwise. Fix assorted other locking stuff. + + * dbus/dbus-signature.c (dbus_signature_iter_get_element_type): + fix compilation + + * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers + into a private header and don't export from the library + + * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff + +2005-02-24 Colin Walters + + * dbus/dbus-signature.c: New file; implements various functions + related to type signatures. Includes an interator for parsing, + validation functions. + (dbus_type_is_basic): Moved here from + dbus-marshal-basic.c:_dbus_type_is_basic. + (dbus_type_is_container): Moved here from + dbus-marshal-basic.c:_dbus_type_is_container. + + All callers of _dbus_type_is_container and _dbus_type_is_basic + updated, and include dbus-signature.h. + + * dbus/dbus-signature.h: New file; prototypes for the above. + + * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c, + dbus-signature.h. + + * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility + function factored out of _dbus_first_type_in_signature. + (_dbus_first_type_in_signature_c_str): New function; returns first + type code for a type signature character. + + * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str, + handle function moves. + + * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next. + + * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New + function; skips to next complete type in type signature. + Implemented using previous skip_one_complete_type. Now + skip_one_complete_type just delegates to + _dbus_type_signature_next. + + * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved + to dbus-signature.c + (_dbus_type_is_container): Ditto. + + * doc/dbus-specification.xml: Update introspection sample to + use real type signatures. + + * dbus/dbus-test.h: Prototype signature test. + + * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run + signature tests. + + * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error. + +2005-02-23 John (J5) Palmieri + + * python/dbus_bindings.pyx.in (PendingCall::get_reply): + s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply + +2005-02-21 Colin Walters + + * dbus/dbus-test-main.c (main): Take optional specific test + argument. + + * dbus/dbus-test.c (run_test): New function, runs a test function + with no data directory. + (run_data_test): Like above, but takes data directory. + (dbus_internal_do_not_use_run_tests): Take + specific test argument. Replace lots of cut n' paste code + with run_test and run_data_test. + + * dbus/dbus-test.h: Update prototype for + dbus_internal_do_not_use_run_tests. + +2005-02-20 Havoc Pennington + + Fix bugs reported by Daniel P. Berrange + + * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function + (protected_change_watch): new function + (_dbus_server_toggle_watch, _dbus_server_remove_watch) + (_dbus_server_add_watch): change to work like the + dbus-connection.c equivalents; like those, probably kind of + busted, but should at least mostly work for now + (dbus_server_disconnect): drop the lock if we were already + disconnected, patch from Daniel P. Berrange + + * dbus/dbus-server.c (_dbus_server_toggle_timeout) + (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the + same stuff + + * doc/TODO: todo about unscrewing this mess + +2005-02-19 Colin Walters + + * glib/dbus-binding-tool-glib.c + (dbus_binding_tool_output_glib_server): Fix iochannel refcounting. + + * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well + as errno.h and sys/stat.h. + (lose): New function, prints error with + newline and exits. + (lose_gerror): Similar, but takes GError for message. + (main): Add --output argument to specify output file to write to, + instead of always printing to stdout. In this mode, determine + timestamps on source files to see whether any are newer than the + target file. If not, exit. Also convert a number of error + messages to use lose (since it's shorter), and switch to using + g_io_channel_shutdown. + +2005-02-19 Havoc Pennington + + * glib/dbus-gobject.c + (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs + + * glib/dbus-glib.c: fix doxygen warnings + + * glib/dbus-gparser.c (parse_annotation): error if an annotation + is found on an + +2005-02-17 Colin Walters + + * glib/dbus-gobject.h: Don't export + _dbus_glib_marshal_dbus_message_to_gvalue_array. + + * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename. + (invoke_object_method): Handle it. + + * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller): + Handle rename. + +2005-02-17 Colin Walters + + * bus/.cvsignore, doc/.cvsignore + * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore: + Update. + +2005-02-17 Colin Walters + + * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS): + Rename to DBUS_SERVICE_DBUS. + (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS. + (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL. + Change the value from "org.freedesktop.Local" + to "org.freedesktop.DBus.Local". + (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS. + (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to + DBUS_INTERFACE_INTROSPECTABLE. + Change the value from "org.freedesktop.Introspectable" + to "org.freedesktop.DBus.Introspectable". + (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to + DBUS_INTERFACE_PROPERTIES. + Change the value from "org.freedesktop.Properties" + to "org.freedesktop.DBus.Properties". + (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to + DBUS_INTERFACE_PEER. + Change the value from "org.freedesktop.Peer" + to "org.freedesktop.DBus.Peer". + (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): + DBUS_INTERFACE_LOCAL. + Change the value from "org.freedesktop.Local" + to "org.freedesktop.DBus.Local". + + All other users of those constants have been changed. + + * bus/driver.c (bus_driver_handle_introspect): Use constants. + + * glib/dbus-gobject.c (handle_introspect): Use constants. + + * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename. + +2005-02-17 Colin Walters + + * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean. + (parse_node, parse_interface, parse_method, parse_signal) + (parse_property, parse_annotation): Lose if we're currently in an + annotation. + (parse_annotation): New function. + (parser_start_element, parser_end_element): Handle annotation. + (parse_method, parse_interface): Remove support for c_name attribute, + switch to annotations. + + * glib/dbus-gidl.h (interface_info_get_binding_names) + (method_info_get_binding_names) + (interface_info_get_binding_name, method_info_get_binding_name) + (interface_info_set_binding_name, method_info_set_binding_name): + Remove. + (interface_info_get_annotations, method_info_get_annotations) + (interface_info_get_annotation, method_info_get_annotation) + (interface_info_add_annotation, method_info_add_annotation): + Prototype. + + * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations" + for "bindings". + (struct MethodInfo): Ditto. + Straightfoward conversion of binding methods into annotation methods + as prototyped. + + * glib/dbus-glib-tool.c (pretty_print): Print annotations. + + * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define. + + * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue): + Use new annotation API. + + * doc/introspect.dtd: Fix a number of DTD syntax errors. Add + annotation element. + + * doc/dbus-specification.xml: Discuss introspection annotations, + include list of well-known annotations. + + * test/glib/test-service-glib.xml: Make validate against new DTD. + +2005-02-17 Colin Walters + + This patch is based on initial work from + Paul Kuliniewicz . + + * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move + initialization of GValue from dbus type to here. + (dbus_gvalue_genmarshal_name_from_type): New function; generates a string + for the "glib-genmarshal" program from a DBus type. + (dbus_gvalue_binding_type_from_type): New function; turns a DBus type + into the C name for it we use in the glib bindings. + (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a + glib C type (not GValue). + (dbus_gvalue_demarshal): invoke dbus_gvalue_init. + + * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here + from dbus-gobject.c. + + * glib/dbus-gutils.h: Prototype it. + + * glib/dbus-gproxy.c: Include new dbus-gobject.h. + (marshal_dbus_message_to_g_marshaller): Use new shared function + dbus_glib_marshal_dbus_message_to_gvalue_array. + + * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute. + Will be changed once we have annotations. + + * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to + GStaticRWLock. Callers updated. + (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated. + (string_table_next): New function for iterating over zero-terminated + string value array. + (string_table_lookup): New function; retrieves specific entry in + array. + (get_method_data): New function; look up method data in object data chunk. + (object_error_domain_prefix_from_object_info) + (object_error_code_from_object_info): New functions, but not implemented yet. + (method_interface_from_object_info): New function; retrieve interface name. + (method_name_from_object_info): New function; retrieve method name. + (method_arg_info_from_object_info): New function; retrieve argument data. + (arg_iterate): New function; iterates over serialized argument data. + (method_dir_signature_from_object_info): New function; returns a + GString holding type signature for arguments for just one + direction (input or output). + (method_input_signature_from_object_info) + (method_output_signature_from_object_info): New functions. + (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function; + converts dbus message arguments into a GValue array. Used for both + signal handling and method invocation. + (struct DBusGlibWriteIterfaceData): New utility structure. + (write_interface): New function; generate introspection XML for + an interface. + (introspect_interfaces): New function; gathers all interface->methods, + generates introspection XML for them. + (handle_introspect): Invoke introspect_interfaces. + (get_object_property): Be sure to zero-initalize stack-allocated GValue. + (lookup_object_and_method): New function; examines an incoming message + and attempts to match it up (via interface, method name, and argument + signature) with a known object and method. + (gerror_domaincode_to_dbus_error_name): New function; converts a + GError domain and code into a DBus error name. Needs GError data + added to object introspection to work well. + (gerror_to_dbus_error_message): Creates a DBusMessage error return from + GError. + (invoke_object_method): New function to invoke an object method + looked up via lookup_object_and_method. Parses the incoming + message, turns it into a GValue array, then invokes the marshaller + specified in the DBusGMethodInfo. Creates a new message with + either return values or error message as appropriate. + (gobject_message_function): Invoke lookup_object_and_method and + invoke_object_method. + + * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h. + (enum DBusBindingOutputMode): New enum for binding output modes. + (pretty_print): Print binding names. + (dbus_binding_tool_error_quark): GError bits. + (version): Fix typo. + (main): Create GIOChannel for output. Parse new --mode argument, + possible values are "pretty-print", "glib-server", "glib-client". + Use mode to invoke appropriate function. + + * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array. + + * glib/dbus-glib-tool.h: New header, just includes GError bits + for now. + + * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable; + maps binding style to name. + (struct MethodInfo): Ditto. + (get_hash_keys, get_hash_key): Utility function, returns keys for + a GHashTable. + (interface_info_new, method_info_new): Initialize bindings. + (interface_info_unref, method_info_unref): Destroy bindings. + (method_info_get_binding_names, method_info_get_binding_name) + (interface_info_get_binding_names, interface_info_get_binding_name): + Functions for retrieving binding names. + (method_info_set_binding_name, interface_info_set_binding_name): + Functions for setting binding names. + + * glib/dbus-binding-tool-glib.h: New file, has prototypes + for glib binding generation. + + * glib/dbus-binding-tool-glib.c: New file, implements server-side + and client-side glib glue generation. + + * glib/Makefile.am (dbus_binding_tool_SOURCES): Add + dbus-binding-tool-glib.c, dbus-binding-tool-glib.h, + dbus-glib-tool.h. + + * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor + of using GClosureMarshal directly. + (struct DBusGObjectInfo): Add n_infos member. + + * test/glib/test-service-glib.xml: New file; contains introspection data + for MyTestObject used in test-service-glib.c. + + * test/glib/test-service-glib.c (enum MyObjectError): New GError enum. + (my_object_do_nothing, my_object_increment, my_object_throw_error) + (my_object_uppercase, my_object_many_args): New test methods. + (main): Use dbus_g_object_class_install_info to include generated object + info. + + * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c, + as well as client-side bindings. + + * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h. + (main): Activate TestSuiteGLibService; test invoke a bunch of its methods + using both the dbus_gproxy stuff directly as well as the generated bindings. + +2005-02-15 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_dispatch): always + complete a pending call, don't run filters first. + + * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use + dbus_pending_call_steal_reply + + * dbus/dbus-pending-call.c (dbus_pending_call_block): just call + _dbus_connection_block_pending_call + (dbus_pending_call_get_reply): change to steal_reply and return a + ref + + * dbus/dbus-connection.c + (dbus_connection_send_with_reply_and_block): port to work in terms + of DBusPendingCall + (_dbus_connection_block_pending_call): replace block_for_reply + with this + +2005-02-14 Havoc Pennington + + * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): + properly handle looking up group information by name; fix + from j@bootlab.org + +2005-02-13 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_return_message) + (dbus_connection_borrow_message): hold dispatch lock while message + is outstanding + (_dbus_connection_block_for_reply): hold dispatch lock while we + block for the reply, so nobody steals our reply + (dbus_connection_pop_message): hold the dispatch lock while we + pluck the message + +2005-02-13 Havoc Pennington + + * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch) + (_dbus_connection_release_dispatch) + (_dbus_connection_acquire_io_path) + (_dbus_connection_release_io_path): make the mutex and condvar + control access to the "acquired" flag. Drop the connection lock + while waiting on the condvar. Hopefully these are baby steps in + roughly the right direction. + +2005-02-13 Havoc Pennington + + * dbus/dbus-connection.c: use separate mutexes for the condition + variables; this is some kind of baseline for sanity, but the + condition variables still aren't used correctly afaict + +2005-02-13 Havoc Pennington + + * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): + fix a double-unlock + + * dbus/dbus-connection.c + (_dbus_connection_detach_pending_call_unlocked): add this + + Initial semi-correct pass through to fix thread locking; there are + still some issues with the condition variable paths I'm pretty + sure + + * dbus/dbus-server.c: add a mutex on DBusServer and appropriate + lock/unlock calls + + * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked): + rename to add _unlocked + (struct DBusConnection): move "dispatch_acquired" and + "io_path_acquired" to use only one bit each. + (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS + (dbus_connection_set_watch_functions): hacky fix to reentrancy + (_dbus_connection_add_watch, _dbus_connection_remove_watch) + (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) + (_dbus_connection_remove_timeout) + (_dbus_connection_toggle_timeout): drop lock when calling out to + user functions; done in a hacky/bad way. + (_dbus_connection_send_and_unlock): add a missing unlock + (_dbus_connection_block_for_reply): add a missing unlock + + * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): + drop lock in a hacky probably unsafe way to call out to user + function + +2005-02-12 Havoc Pennington + + * tools/dbus-tree-view.c (info_set_func_text): display more + details on args + + * bus/driver.c (bus_driver_handle_list_services): list the bus + driver + + * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied + + * glib/dbus-gidl.c (signal_info_get_n_args): new function + (method_info_get_n_args): new function + +2005-02-12 Havoc Pennington + + * bus/driver.c (bus_driver_handle_introspect): add introspection + for bus driver + +2005-02-12 Havoc Pennington + + * bus/driver.c: put the signature of each bus driver method in the + table of handlers and check it on incoming calls; this isn't + really useful, but going to add introspect support in a minute. + +2005-02-11 Joe Shaw + + * mono/Connection.cs: The unpredictability of finalizers in mono + prevents us from deterministically disconnecting the filters from + the Service class's finalizer, so move tracking of filters and + matches here. Add API for that. + + * mono/Service.cs: Remove the code, add code which calls the + methods now on the Connection class. + +2005-02-11 John (J5) Palmieri + + * python/dbus.py (class Sender): added to support dbus signals better + (Bus::add_signal_receiver): added expand_args parameter which defaults + to True. When expand args is True the signal handler will pass the + message arguments as parameters to the signal handler. If False + revert to previous behavior where the signal handler must get the + argument list from the message. This is to help port applications + like HAL that have a tendancy to send variable length argument lists. + self._match_rule_to_receivers is now a dict of dicts. + (Bus::remove_signal_receiver): pop handler off the dict intead of + removing it from a list + (Bus::_signal_func): change signal handlers so that interface, + signal_name, service, path and message are packed into a Sender + object and that is passed to the handler. If expand_args is True + extract the args list from the message and append it to the parameter + list + + * python/dbus_bindings.pyx.in (class Signature): added to support + signiature types + (MessageIter::__init__): changed iteration limit to match D-BUS + (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, + STRUCT and VARIENT type support + (MessageIter::python_value_to_dbus_sig): made recursive to support + recursive types + (MessageIter::append*): added Signature, dict, tuple + support + + * python/examples/example-client.py: added examples of getting tuples + and dicts + + * python/examples/example-service.py: added examples of sending tuples + and dicts + + * python/examples/example-signal-recipient.py: Fixed to handle new + signal callback format + +2005-02-10 Havoc Pennington + + * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail + (call dbus_g_proxy_add_signal) + + * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): + escape the hostname + (_dbus_server_new_for_domain_socket): escape the path + + * dbus/dbus-address.c (dbus_address_escape_value): new + (dbus_address_unescape_value): new + (dbus_parse_address): unescape values + + * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function + + * doc/dbus-specification.xml: explain how to escape values in + addresses + +2005-02-10 Havoc Pennington + + * dbus/dbus-message-factory.c (generate_special): modify test to + avoid using a non-basic dict key + + * dbus/dbus-marshal-validate-util.c: add test for the below + + * doc/dbus-specification.xml: require that dict keys are a basic + type + + * dbus/dbus-marshal-validate.c + (_dbus_validate_signature_with_reason): require that dict key is a + basic type + +2005-02-10 Havoc Pennington + + * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock): + change to be _and_unlock instead of _unlocked + + * dbus/dbus-connection.c + (_dbus_connection_send_preallocated_unlocked_no_update): rename to + have no_update so we can find this bug quickly in future + +2005-02-10 Havoc Pennington + + * dbus/dbus-message-util.c (verify_test_message): tests for string + array + + * dbus/dbus-message.c (dbus_message_append_args_valist): add + support for arrays of string/signature/path + +2005-02-10 Joe Shaw + + * dbus/dbus-connection.c + (_dbus_connection_queue_received_message_link, + _dbus_connection_message_sent): Add the path to + the verbose output. + (_dbus_connection_send_preallocated_and_unlock): Added. Calls + _dbus_connection_send_preallocated_unlocked(), updated the + dispatch status, and unlocks. Fixes a bug where certain + situations (like a broken pipe) could cause a Disconnect message + to not be sent, tricking the bus into thinking a service was still + there when the process had quit. + (_dbus_connection_send_preallocated): Call + _dbus_connection_send_preallocated_and_unlock(). + (_dbus_connection_send_and_unlock): Added. Calls + _dbus_connection_send_preallocated_and_unlock(). + (dbus_connection_send): Call _dbus_connection_send_and_unlock(). + (dbus_connection_send_with_reply): Update the dispatch status and + unlock. + + * mono/Service.cs (~Service): Added. Removes the filter so that + we don't get unmanaged code calling back into a GCed delegate. + (RemoveFilter); Added. + +2005-02-09 John (J5) Palmieri + + * dbus/dbus-message.c (dbus_message_iter_open_container): + - Removed check for iterator type being an array because + get_arg_type does not work with writer iterators + - Pass NULL to _dbus_type_writer_recurse if signiture is NULL + +2005-02-07 Havoc Pennington + + * doc/dbus-specification.xml: some more language cleanups; add + stuff about how to deal with invalid protocol and extension + points; add _ to allowed chars in auth commands; add EXTENSION_ + auth command prefix + +2005-02-06 Havoc Pennington + + * s/expected/required/ in a couple places for clarity + +2005-02-07 Colin Walters + + * bus/selinux.c (bus_selinux_allows_send): Handle NULL for + sender or proposed_recipient. + +2005-02-06 Havoc Pennington + + * dbus/dbus-message-factory.c (generate_special): more tests + + * dbus/dbus-marshal-validate.c (validate_body_helper): detect + array length that exceeds the maximum + +2005-02-05 Havoc Pennington + + * dbus/dbus-message-factory.c (generate_special): more test cases, + increasing coverage + + * dbus/dbus-marshal-validate.c (validate_body_helper): return the + reason why a signature was invalid + + * dbus/dbus-marshal-header.c (load_and_validate_field): fix to + skip the length of the string before we look at it in validation + + * dbus/dbus-string-util.c (_dbus_string_test): add tests for + equal_substring + + * dbus/dbus-message.c (_dbus_message_loader_new): default + max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH + +2005-02-05 Havoc Pennington + + * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash + if the signature of a variant was empty + (_dbus_validate_signature_with_reason): catch "(a)" (array inside + struct with no element type) + + * dbus/dbus-message-factory.c (generate_uint32_changed): add more + mangled messages to break things + +2005-02-04 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use + g_quark_try_string() so it actually can return 0 + (dbus_g_proxy_connect_signal): ditto + +2005-02-04 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a + bogus warning + (tristring_from_message): assert cleanly on null path/interface + (should not be possible though I decided later) + (dbus_g_proxy_dispose): move proxy manager unregistration here + (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of + g_return_if_fail() checks + +2005-02-04 Havoc Pennington + + * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile + + * doc/introspect.dtd: add introspect.dtd from David A. Wheeler + (with some minor changes) + + * doc/dbus-specification.xml: add deprecated attribute to + introspection format + +2005-01-31 Havoc Pennington + + * glib/dbus-gproxy.c: rewrite how signals work again, this time I + think it's sort of right + +2005-01-30 Havoc Pennington + + * tools/dbus-viewer.c: kind of half-ass hook up the option menu. + +2005-01-30 Havoc Pennington + + * tools/dbus-names-model.c: dynamically watch NameOwnerChanged + + * autogen.sh: change to autotools 1.9 + + * glib/dbus-gproxy.c: completely change how signals work + (dbus_g_proxy_add_signal): new function to specify signature of a + signal + (dbus_g_proxy_emit_received): marshal the dbus message to GValues, + and g_warning if the incoming message has the wrong signature. + +2005-01-30 Havoc Pennington + + * tools/dbus-names-model.c (have_names_notify): fix this + + * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean + up the string array handling a bit + +2005-01-30 Havoc Pennington + + * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function + (dbus_g_pending_call_cancel): new function + + * dbus/dbus-glib.h: move GType decls for connection/message here; + * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in + here, just kind of rationalizing how we handle all that + + * tools/dbus-names-model.c: new file for a tree model listing the + services on a bus + + * tools/dbus-tree-view.c (model_new): use proper typing on the + model rows + +2005-01-30 Havoc Pennington + + * glib/dbus-gmain.c: add a custom GSource back that just checks + whether the message queue has anything in it; otherwise, there are + cases where we won't see messages in the queue since there was no + IO visible to the glib main loop + + * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE): + increase default message timeout to 25 seconds + +2005-01-30 Havoc Pennington + + * test/glib/test-profile.c (no_bus_stop_server): remove the + warning about the g_warning that I just fixed + + * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the + custom source, seems to be a lot easier to understand and work + better. + +2005-01-30 Havoc Pennington + + I think this main loop thing is conceptually broken, but here are + some band aids. I'll maybe rewrite it in a minute. + + * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the + custom GSource, so don't pass it in; confusing + (gsource_server_finalize, gsource_connection_finalize): add + finalize handlers that remove all the watches. + +2005-01-30 Havoc Pennington + + * glib/dbus-gobject.c (introspect_properties): fix the XML + generated + + * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag + which effectively detects the use of freed messages + + * glib/dbus-gobject.c (handle_introspect): modify and return the + reply message instead of the incoming message + + * dbus/dbus-object-tree.c (handle_default_introspect_unlocked): + gee, maybe it should SEND THE XML instead of just making a string + and freeing it again ;-) + + * tools/dbus-print-message.c (print_message): improve printing of + messages + + * configure.in: add debug-glib.service to the output + +2005-01-30 Havoc Pennington + + dbus-viewer introspected and displayed the bus driver + + * dbus/dbus-object-tree.c + (object_tree_test_iteration): add tests for a handler registered on "/" + + * dbus/dbus-object-tree.c + (_dbus_decompose_path): fix to handle path "/" properly + (run_decompose_tests): add tests for path decomposition + + * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/" + properly + + * glib/dbus-gobject.c (handle_introspect): fix quotes + + * test/glib/run-test.sh: support launching the bus, then running + dbus-viewer + + * test/glib/test-service-glib.c (main): put in a trivial gobject + subclass and register it on the connection + + * bus/driver.c (bus_driver_handle_introspect): implement + introspection of the bus driver service + + * dbus/dbus-protocol.h: add #defines for the XML namespace, + identifiers, doctype decl + + * bus/driver.c (bus_driver_handle_get_service_owner): handle + attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by + returning the service unchanged. + (bus_driver_handle_message): remove old check for reply_serial in + method calls, now the message type deals with that + (bus_driver_handle_message): handle NULL interface + + * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function + + * glib/dbus-gloader-expat.c (description_load_from_string): allow + -1 for len + + * tools/dbus-viewer.c: add support for introspecting a service on + a bus + + * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add + (dbus_g_pending_call_unref): add + +2005-01-29 Havoc Pennington + + * tools/dbus-tree-view.c: add support for displaying properties. + (run dbus-viewer with an introspect xml file as arg, then resize + the window so the tree elements show up, not sure what that is) + + * glib/dbus-gobject.c (handle_introspect): return + org.freedesktop.Properties and org.freedesktop.Introspectable + interfaces when we are introspected. + + * doc/dbus-specification.xml: allow empty interface name when + Get/Set a property + +2005-01-29 Havoc Pennington + + * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool; + though it uses glib, it could be extended for any binding in + principle + + * glib/dbus-gobject.c (gobject_message_function): change to the + new way properties work + + * dbus/dbus-protocol.h: add the new interfaces + + * doc/dbus-specification.xml: document the introspection format, + Introspectable interface, and add an org.freedesktop.Properties + interface. + + * glib/dbus-gparser.c: add support for a element + + * glib/dbus-gidl.c: add PropertyInfo + + * glib/dbus-gobject.c (handle_introspect): put the outermost + outside the signal and property descriptions. + (introspect_properties): export properties as rather + than as method calls + +2005-01-28 Havoc Pennington + + * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks + related to authentication protocol + +2005-01-28 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system + - BUS_ACTIVATION -> BUS_STARTER + - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER + - class MessageIter (__init__): Added recursion checking + so we throw a nice error instead of just disconnecting from the + bus. + (get): Added arg_type parameter for recursion. + Removed the nil type + Added signiture type placeholder (not implemented) + Added struct type placeholder (not implemented) + Added varient type placeholder (not implemented) + Commented out dict type for now + (get_element_type): renamed from get_array_type + (get_*): changed to use the dbus_message_iter_get_basic API + (get_*_array): removed in favor of recursive get_array method + (get_array): new recursive method which calls get to marshal + the elements of the array + (value_to_dbus_sig): New method returns the corrasponding + dbus signiture to a python value + (append): Comment out dict handling for now + Handle lists with the new recursive API + Comment out None handling for now + (append_nil): removed + (append_*): changed to use dbus_message_iter_append_basic API + (append_*_array): removed in favor of recursive append_array + method + (__str__): Make it easier to print out recursive iterators + for debugging + - class Message (__str__): moved type inspection to the + MessageIter class' __str__ method + (get_iter): Added an append parameter wich defaults to False + If True use the new API's to create an append iterator + + * python/dbus.py: Update to use new bindings API + - TYPE_ACTIVATION -> TYPE_STARTER + - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner + - class ActivationBus -> class StarterBus + - class RemoteObject (__call__): get an append iterator + - (_dispatch_dbus_method_call): get an append iterator + - class Object (emit_signal): get an append iterator + + * python/examples/: Fixed up the examples to work with the new API + +2005-01-28 Joe Shaw + + * configure.in: Bump version up to 0.30. + + * HACKING: Add a release item to bump the version number up after + a release. + +2005-01-28 Havoc Pennington + + * doc/dbus-specification.xml: update to describe 16-bit types and + dict entries + + * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken + assertion + + * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a + type + + * dbus/dbus-marshal-recursive.c: implement + +2005-01-27 Havoc Pennington + + * dbus/dbus-arch-deps.h.in: add 16/32-bit types + + * configure.in: find the right type for 16 and 32 bit ints as well + as 64 + + * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add + the 16-bit types so people don't have to stuff them in 32-bit or + byte arrays. + +2005-01-27 Havoc Pennington + + * dbus/dbus-message.c: byteswap the message if you init an + iterator to read/write from it + + * dbus/dbus-marshal-byteswap.c: new file implementing + _dbus_marshal_byteswap() + + * dbus/dbus-marshal-basic.c: add _dbus_swap_array() + +2005-01-26 Havoc Pennington + + * dbus/dbus-marshal-validate-util.c: break this out (and fix + build, apparently - nobody noticed?) + +2005-01-26 Havoc Pennington + + * dbus/dbus-marshal-recursive.h: remove todo comment + +2005-01-25 Joe Shaw + + * Land the mono binding changes to conform to the new APIs. + + * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs, + DBusType/Dict.cs, and DBusType/Nil.cs from the build. + + * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus + type code as a string. + (InitAppending): Rename dbus_message_append_iter_init() to + dbus_message_iter_init_append(). + + * mono/BusDriver.cs: Rename ServiceEventHandler to + NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner. + Rename ServiceOwnerChanged to NameOwnerChanged. + + * mono/Connection.cs: Rename BaseService to UniqueName, and the + underlying C call. + + * mono/Custom.cs: Removed. The CUSTOM type has been removed. + + * mono/Service.cs: Rename Exists to HasOwner, internally rename + dbus_bus_acquire_service() to dbus_bus_request_name(). + + * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead + of Type.UnderlyingSystemType to get the correct element type for + the array. + (ctor): Update code for new APIs: use dbus_message_iter_recurse(), + dbus_message_get_{element|arg}_type() instead of + dbus_message_iter_init_array_iterator(). + (Append): Replace dbus_message_iter_append_array() with + dbus_message_iter_open_container() and + dbus_message_iter_close_container(). + + * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These + types have been removed. + + * mono/DBusType/*.cs: Replace calls of + dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(), + but specify the type in the DllImport extern declaration. Ditto + for dbus_message_iter_append_[type]() -> + dbus_message_iter_append_basic(). + + * mono/example/BusListener.cs: Update for ServiceEventHandler -> + NameOwnerChangedHandler. + +2005-01-25 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: Rename of methods and bindings + - get_base_service -> get_unique_name + - bus_get_base_service -> bus_get_unique_name + - dbus_bus_get_base_service -> dbus_bus_get_unique_name + - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS + - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING + - bus_activate_service -> bus_start_service_by_name + - dbus_bus_activate_service -> dbus_bus_start_service_by_name + - bus_acquire_service -> bus_request_name + - dbus_bus_acquire_service -> dbus_bus_request_name + - bus_service_exists -> bus_name_has_owner + - dbus_bus_service_exists -> dbus_bus_name_has_owner + + * python/dbus.py: Rename of methods + - activate_service -> start_service_by_name + - bus_acquire_service -> bus_request_name + - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS + - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING + + +2005-01-24 Joe Shaw + + * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the + signature for the method that can't be found. + + * dbus/dbus-message.c (dbus_message_iter_init): To check to see if + the message has any arguments, we need to call + _dbus_type_reader_get_current_type(), not + _dbus_type_reader_has_next(). + +2005-01-24 Havoc Pennington + + * dbus/dbus-message-factory.c: more testing of message validation + + * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this + header + +2005-01-23 Havoc Pennington + + * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: + get this all working, not many tests in the framework yet though + +2005-01-22 Havoc Pennington + + * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update + tutorial, based on work from David Wheeler. + +2005-01-21 Havoc Pennington + + * dbus/dbus-bus.c: add more return_if_fail checks + + * dbus/dbus-message.c (load_message): have the "no validation" + mode (have to edit the code to toggle the mode for now though) + + * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that + skips all validation; I want to use this at least for benchmark + baseline, I'm not sure if it should be a publicly-available switch. + +2005-01-21 Havoc Pennington + + * glib/dbus-gmain.c: don't put the GLib bindings in the same + toplevel doxygen group as the low-level API stuff + + * dbus/dbus.h: note that libdbus is the low-level API + +2005-01-20 Havoc Pennington + + * update-dbus-docs.sh: script to update docs on the web site, only + works for me though. neener. + +2005-01-20 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile + code can reveal bugs in it + +2005-01-20 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the + select() version, patches from Tor Lillqvist + +2005-01-20 Havoc Pennington + + * doc/dbus-tutorial.xml: replace > with > + + * bus/services.c (bus_registry_acquire_service): validate the name + and return a better error if it's no good. + + * doc/dbus-specification.xml: note NO_AUTO_START change + + * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change + from AUTO_START, we're toggling the default + + * bus/dispatch.c: adapt the tests to change of auto-start default + +2005-01-18 Havoc Pennington + + * rename dbus-daemon-1 to dbus-daemon throughout + +2005-01-18 Havoc Pennington + + * Throughout, grand renaming to strip out the use of "service", + just say "name" instead (or "bus name" when ambiguous). Did not + change the internal code of the message bus itself, only the + programmer-facing API and messages. + + * doc/dbus-specification.xml: further update the message bus section + + * bus/config-parser.c (all_are_equiv): fix bug using freed string + in error case + +2005-01-17 Havoc Pennington + + * dbus/dbus-types.h: remove 16-bit types since we don't use them + ever + + * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any + "invalid name character" not only non-ASCII + + * doc/dbus-specification.xml: further update spec, message bus + parts are still out-of-date but the marshaling etc. stuff is now + accurate-ish + +2005-01-17 Havoc Pennington + + * doc/dbus-specification.xml: partially update spec + +2005-01-17 Havoc Pennington + + * Throughout, align variant bodies according to the contained + type, rather than always to 8. Should save a fair bit of space in + message headers. + + * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason): + fix handling of case where p == end + + * doc/TODO: remove the dbus_bool_t item and variant alignment items + +2005-01-17 Havoc Pennington + + * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits + + * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead + of an 8-bit type. Now dbus_bool_t is the type to use whenever you + are marshaling/unmarshaling a boolean. + +2005-01-16 Havoc Pennington + + This is about it on what can be disabled/deleted from libdbus + easily, back below 150K anyhow. Deeper cuts are more work than + just turning the code off as I've done here. + + * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the + signed int convenience funcs + + * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in + verbose mode + + * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking + things out of libdbus + + * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same + + * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it + tests-enabled-only, though it should probably be deleted) + + * dbus/dbus-message-util.c: same stuff + + * dbus/dbus-auth-util.c: same stuff + +2005-01-16 Havoc Pennington + + * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c + + * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave + way for stripping down dbus-userdb.c stuff included in libdbus. + Rename _dbus_parse_uid for consistency. + +2005-01-16 Havoc Pennington + + * dbus/dbus-internals.c (_dbus_real_assert): print the function + name the assertion failed in + + * dbus/dbus-internals.h (_dbus_return_if_fail) + (_dbus_return_val_if_fail): assert that the name of the function + containing the check doesn't start with '_', since we only want to + use checks on public functions + + * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change + checks to assertions + + * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic): + change checks to asserts for private function + + * dbus/dbus-message.c (_dbus_message_set_serial): checks + to asserts for private function + + * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove + broken assertion that was breaking make check + (_dbus_type_reader_array_is_empty): remove this rather than fix + it, was only used in assertions + +2005-01-16 Havoc Pennington + + * test/unused-code-gc.py: hacky script to find code that's used + only by the bus (not libdbus) or used only by tests or not used at + all. It has some false alarms, but looks like we can clean up a + lot of size from libdbus. + + * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c, + dbus/Makefile.am: initially move 10K of binary size out of libdbus + +2005-01-16 Havoc Pennington + + * Add and fix docs according to Doxygen warnings throughout + source. + + * dbus/dbus-marshal-recursive.c + (_dbus_type_reader_array_is_empty): change this to just call + array_reader_get_array_len() and make it static + + * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename + from get_array_type + (dbus_message_iter_init_append): rename from append_iter_init + + * dbus/dbus-marshal-recursive.c + (_dbus_type_reader_get_element_type): rename from + _dbus_type_reader_get_array_type + +2005-01-15 Havoc Pennington + + * test/glib/test-profile.c (with_bus_server_filter): fix crash + + * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro + when DBUS_DISABLE_ASSERT + (_dbus_marshal_set_basic): be sure we align for the string length + + * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make + this look faster + + * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an + inline macro version + (_dbus_string_set_byte): provide inline macro version + +2005-01-15 Havoc Pennington + + * Land the new message args API and type system. + + This patch is huge, but the public API change is not + really large. The set of D-BUS types has changed somewhat, + and the arg "getters" are more geared toward language bindings; + they don't make a copy, etc. + + There are also some known issues. See these emails for details + on this huge patch: + http://lists.freedesktop.org/archives/dbus/2004-December/001836.html + http://lists.freedesktop.org/archives/dbus/2005-January/001922.html + + * dbus/dbus-marshal-*: all the new stuff + + * dbus/dbus-message.c: basically rewritten + + * dbus/dbus-memory.c (check_guards): with "guards" enabled, init + freed blocks to be all non-nul bytes so using freed memory is less + likely to work right + + * dbus/dbus-internals.c (_dbus_test_oom_handling): add + DBUS_FAIL_MALLOC=N environment variable, so you can do + DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or + DBUS_FAIL_MALLOC=10 to make it really, really, really slow and + thorough. + + * qt/message.cpp: port to the new message args API + (operator<<): use str.utf8() rather than str.unicode() + (pretty sure this is right from the Qt docs?) + + * glib/dbus-gvalue.c: port to the new message args API + + * bus/dispatch.c, bus/driver.c: port to the new message args API + + * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the + "locked" flag to TRUE and align_offset to 0; I guess we never + looked at these anyhow, but seems cleaner. + + * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING): + move allocation padding macro to this header; use it to implement + (_DBUS_STRING_STATIC): ability to declare a static string. + + * dbus/dbus-message.c (_dbus_message_has_type_interface_member): + change to return TRUE if the interface is not set. + + * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff + to dbus-marshal-validate.[hc] + + * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from + dbus-internals.c + + * dbus/Makefile.am: cut over from dbus-marshal.[hc] + to dbus-marshal-*.[hc] + + * dbus/dbus-object-tree.c (_dbus_decompose_path): move this + function here from dbus-marshal.c + +2005-01-12 Joe Shaw + + * NEWS: Update for 0.23. + + * configure.in: Release 0.23. + +2005-01-12 Joe Shaw + + * mono/Makefile.am, mono/example/Makefile.am: Always build the + dbus DLL with --debug. Clean up after the .mdb files this leaves + behind. + + * mono/doc/Makefile.am: Need to uninstall the docs on "make + uninstall" + + * mono/Arguments.cs (GetDBusTypeConstructor): If the type + is an enum, get the enum's underlying type. Another mono + 1.1.3 fix. + +2005-01-11 Joe Shaw + + Patch from Sjoerd Simons + + * mono/Makefile.am, mono/example/Makefile.am: Don't redefine + DESTDIR. It breaks stuff. + +2005-01-11 Joe Shaw + + Patch from Tambet Ingo + + * mono/DBusType/Array.cs (Get): Get the underlying element type by + calling type.GetElementType(). The code previously depended on + broken Mono behavior, which was fixed in Mono 1.1.3. + + * mono/DBusType/Dict.cs (constructor): Fix the parameters for + Activator.CreateInstance() so that the class's constructor is + called with the right parameters. + +2005-01-11 Joe Shaw + + Patch from Timo Teräs + + * dbus/dbus-connection.c + (_dbus_connection_queue_received_message_link): Call + _dbus_connection_remove_timeout() instead of the _locked() + variant, since it's always called from + _dbus_connection_handle_watch(), which handles the locking. + Removed the _locked() variant since it's no longer used. + +2005-01-03 Havoc Pennington + + * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can + return + +2004-12-26 Havoc Pennington + + * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert + +2005-01-03 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on + floating point + + * dbus/dbus-string.c (_dbus_string_insert_alignment): new function + +2005-01-02 Havoc Pennington + + * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro + +2005-01-01 Havoc Pennington + + * configure.in: add -Wfloat-equal + +2005-01-01 Havoc Pennington + + * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, + for a variety of reasons '==' doesn't do this. + +2004-12-31 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_equal_substrings): new function + I keep wishing I had + +2004-12-30 John (J5) Palmieri + + * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED + +2004-12-30 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED + and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in + dbus-protocol.h. Because they are defines and not enums they are not + autogenerated. + +2004-12-26 John (J5) Palmieri + + * python/dbus_bindings.pyx.in (bus_activate_service): Bind + dbus_bus_activate_service + + * python/dbus.py (Bus.activate_service): activate a service on the + bus. + +2004-12-24 Havoc Pennington + + * test/decode-gcov.c: change to use .gcno and .gcda files, but the + file format has also changed and I haven't adapted to that yet + + * Makefile.am: load .gcno files from latest gcc + +2004-12-23 John (J5) Palmieri + * Patch from Rob Taylor + + * python/dbus_bindings.pyx.in (bus_get_unix_user): New + lowlevel binding + + * python/dbus.py (get_unix_user): Added binding to + call dbus_bindings.bus_get_unix_user + + * python/extract.py: Modified the proto_pat regex to + handle unsigned long + +2004-12-21 Olivier Andrieu + + * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for + better POSIX compliance. + +2004-12-19 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_insert_4_aligned) + (_dbus_string_insert_8_aligned): new functions + + * dbus/dbus-string.c (_dbus_string_alloc_space): new function + +2004-12-18 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII + macro + + * dbus/dbus-message.c: fix a comment, and add a still-unused + not-implemented function + + * dbus/dbus-marshal.h: fix comment + + * dbus/dbus-internals.h (_DBUS_ISASCII): new macro + +2004-12-17 Joe Shaw + + * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs, + mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs, + mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of + Type.UnderlyingSystemType to get the actual system type + underneath. This code previously depended on the broken Mono + behavior, which was fixed in 1.1.3. + +2004-11-27 Havoc Pennington + + * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts + are disabled + (_dbus_string_get_const_data): inline when asserts are disabled + + * dbus/dbus-message.c: record the _dbus_current_generation of + creation so we can complain if dbus_shutdown() is used improperly. + Do this only if checks are enabled. + + * dbus/dbus-connection.c: ditto + +2004-11-26 Havoc Pennington + + * test/glib/test-profile.c: add with_bus mode to profile echoes + that go through the bus. + + * test/glib/run-test.sh: add ability to run test-profile + + * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial + config file reload. + +2004-11-26 Havoc Pennington + + * test/glib/test-profile.c: clean up how the fake_malloc_overhead + thing was implemented + +2004-11-26 Havoc Pennington + + * test/glib/test-profile.c: tweak a bit, add support for some + made-up minimal malloc overhead with plain sockets, since in + real life some sort of buffers are unavoidable thus we could + count them in the theoretical best case + +2004-11-26 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug + where I was trying to cache one too many messages + +2004-11-26 Havoc Pennington + + * dbus/dbus-message.c: reimplement message cache as an array which + makes the cache about twice as fast and saves maybe 1.5% overall + +2004-11-26 Havoc Pennington + + * dbus/dbus-threads.c (init_global_locks): forgot to put the + message cache lock here + +2004-11-26 Havoc Pennington + + * dbus/dbus-message.c (struct DBusMessage): put the locked bit and + the "char byte_order" next to each other to save 4 bytes + (dbus_message_new_empty_header): reduce preallocation, since the + message cache should achieve a similar effect + (dbus_message_cache_or_finalize, dbus_message_get_cached): add a + message cache that keeps a few DBusMessage around in a pool, + another 8% speedup or so. + + * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function + +2004-11-25 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going + to write, without reading or blocking, try it before the poll() + and skip the poll() if nothing remains to write. This is about a + 3% speedup in the echo client/server + +2004-11-25 Havoc Pennington + + The primary change here is to always write() once before adding + the write watch, which gives us about a 10% performance increase. + + * dbus/dbus-transport-unix.c: a number of modifications to cope + with removing messages_pending + (check_write_watch): properly handle + DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of + messages_pending stuff + (check_read_watch): properly handle WAITING_FOR_MEMORY and + AUTHENTICATED cases + (unix_handle_watch): after writing, see if the write watch can be + removed + (unix_do_iteration): assert that write_watch/read_watch are + non-NULL rather than testing that they aren't, since they + aren't allowed to be NULL. check_write_watch() at the end so + we add the watch if we did not finish writing (e.g. got EAGAIN) + + * dbus/dbus-transport-protected.h: remove messages_pending call, + since it resulted in too much inefficient watch adding/removing; + instead we now require that the transport user does an iteration + after queueing outgoing messages, and after trying the first + write() we add a write watch if we got EAGAIN or exceeded our + max bytes to write per iteration setting + + * dbus/dbus-string.c (_dbus_string_validate_signature): add this + function + + * dbus/dbus-server-unix.c (unix_finalize): the socket name was + freed and then accessed, valgrind flagged this bug, fix it + + * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken + as the last valid field plus 1, where really it is equal to the + last valid field. Corrects some message corruption issues. + + * dbus/dbus-mainloop.c: verbosity changes + + * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM + instead of aborting in one of the test codepaths + + * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that + caused not printing the pid ever again if a verbose was missing + the newline at the end + (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE + + * dbus/dbus-connection.c: verbosity changes; + (dbus_connection_has_messages_to_send): new function + (_dbus_connection_message_sent): no longer call transport->messages_pending + (_dbus_connection_send_preallocated_unlocked): do one iteration to + try to write() immediately, so we can avoid the write watch. This + is the core purpose of this patchset + (_dbus_connection_get_dispatch_status_unlocked): if disconnected, + dump the outgoing message queue, so nobody will get confused + trying to send them or thinking stuff is pending to be sent + + * bus/test.c: verbosity changes + + * bus/driver.c: verbosity/assertion changes + + * bus/dispatch.c: a bunch of little tweaks to get it working again + because this patchset changes when/where you need to block. + +2004-11-23 Havoc Pennington + + * test/glib/test-profile.c: modify to accept a plain_sockets + argument in which case it will bench plain sockets instead of + libdbus, for comparison purposes. + +2004-11-22 Havoc Pennington + + * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple + threads for more time, so sysprof can get a grip on it. + + * dbus/dbus-string.c (_dbus_string_validate_utf8): remove + pointless variable + +2004-11-13 Havoc Pennington + + * test/glib/test-profile.c: fix this thing up a bit + + * dbus/dbus-message.c (dbus_message_new_empty_header): increase + preallocation sizes by a fair bit; not sure if this will be an + overall performance win or not, but it does reduce reallocs. + + * dbus/dbus-string.c (set_length, reallocate_for_length): ignore + the test hack that forced constant realloc if asserts are + disabled, so we can profile sanely. Sprinkle in some + _DBUS_UNLIKELY() which are probably pointless, but before I + noticed the real performance problem I put them in. + (_dbus_string_validate_utf8): micro-optimize this thing a little + bit, though callgrind says it didn't help; then special-case + ascii, which did help a lot; then be sure we detect nul bytes as + invalid, which is a bugfix. + (align_length_then_lengthen): add some more _DBUS_UNLIKELY + superstition; use memset to nul the padding instead of a manual + loop. + (_dbus_string_get_length): inline this as a + macro; it showed up in the profile because it's used for loop + tests and so forth + +2004-11-10 Colin Walters + + * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR, + for extra paranoia. + +2004-11-09 Colin Walters + + * dbus/dbus-string.c (_dbus_string_get_length): New + function, writes DBusString to C buffer. + + * dbus/dbus-string.h: Prototype it. + + * dbus/dbus-message.c (dbus_message_type_to_string): New + function, converts message type into C string. + + * dbus/dbus-message.h: Prototype it. + + * bus/selinux.c (bus_selinux_check): Take source pid, + target pid, and audit data. Pass audit data to + avc_has_perm. + (log_audit_callback): New function, appends extra + audit information. + (bus_selinux_allows_acquire_service): Also take + service name, add it to audit data. + (bus_selinux_allows_send): Also take message + type, interface, method member, error name, + and destination, and add them to audit data. + (log_cb): Initialize func_audit. + + * bus/selinux.h (bus_selinux_allows_acquire_service) + (bus_selinux_allows_send): Update prototypes + + * bus/services.c (bus_registry_acquire_service): Pass + service name to bus_selinux_allows_acquire_service. + + * bus/bus.c (bus_context_check_security_policy): Pass + additional audit data. Move assignment of dest + to its own line. + +2004-11-07 Colin Walters + + * dbus/dbus-transport-unix.c (do_authentication): Always + initialize auth_completed. + +2004-11-07 Colin Walters + + * bus/bus.c (load_config): Break into three + separate functions: process_config_first_time_only, + process_config_every_time, and process_config_postinit. + (process_config_every_time): Move call of + bus_registry_set_service_context_table into + process_config_postinit. + (process_config_postinit): New function, does + any processing that needs to happen late + in initialization (and also on reload). + (bus_context_new): Instead of calling load_config, + open config parser here and call process_config_first_time_only + and process_config_every_time directly. Later, after + we have forked but before changing UID, + invoke bus_selinux_full_init, and then call + process_config_postinit. + (bus_context_reload_config): As in bus_context_new, + load parse file inside here, and call process_config_every_time + and process_config_postinit. + + * bus/services.h, bus/services.c + (bus_registry_set_service_context_table): Rename + from bus_registry_set_sid_table. Take string hash from config + parser, and convert them here into SIDs. + + * bus/config-parser.c (struct BusConfigParser): Have + config parser only store a mapping of service->context + string. + (merge_service_context_hash): New function. + (merge_included): Merge context string hashes instead + of using bus_selinux_id_table_union. + (bus_config_parser_new): Don't use bus_selinux_id_table_new; + simply create a new string hash. + (bus_config_parser_unref): Unref it. + (start_selinux_child): Simply insert strings into hash, + don't call bus_selinux_id_table_copy_over. + + * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union) + (bus_selinux_id_table_copy_over): Delete. + +2004-11-03 Colin Walters + + * bus/selinux.c (bus_selinux_pre_init): Kill some unused + variables. + +2004-11-03 Colin Walters + + * bus/test-main.c (test_pre_hook): Fix test logic, + thanks Joerg Barfurth . + +2004-11-02 Colin Walters + + * bus/selinux.c (bus_selinux_init): Split into two functions, + bus_selinux_pre_init and bus_selinux_post_init. + (bus_selinux_pre_init): Just determine whether SELinux is + enabled. + (bus_selinux_post_init): Do everything else. + + * bus/main.c (main): Call bus_selinux_pre_init before parsing + config file, and bus_selinux_post_init after. This ensures that + we don't lose the policyreload notification thread that + bus_selinux_init created before forking previously. + + * bus/test-main.c (test_pre_hook): Update for split. + +2004-10-31 Owen Fraser-Green + + Patch from Johan Fischer + + * mono/doc/Makefile.am (install-data-local): Added directory + install for DESTDIR + +2004-10-29 Colin Walters + + * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take + parameter for fd to write pid to. + + * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it. + + * bus/bus.c (bus_context_new): Pass print_pid_fd + to _dbus_become_daemon (bug #1720) + +2004-10-29 Colin Walters + + Patch from Ed Catmur + + * mono/doc/Makefile.am (install-data-local): Handle + DESTDIR. + +2004-10-29 Colin Walters + + * bus/.cvsignore, qt/.cvsignore: Update. + +2004-10-29 Colin Walters + + Patch from Kristof Vansant + + * configure.in: Detect Slackware. + * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in. + * bus/rc.messagebus.in: New file. + +2004-10-29 Colin Walters + + * tools/dbus-monitor.c (filter_func): Return + DBUS_HANDLER_RESULT_HANDLED in filter function + for now. See: + http://freedesktop.org/pipermail/dbus/2004-August/001433.html + +2004-10-29 Colin Walters + + Patch from Matthew Rickard + + * bus/services.c (bus_registry_acquire_service): + Correctly retrieve service name from DBusString + for printing. + +2004-10-29 Colin Walters + + * dbus/dbus-glib.h: Update documentation to not + refer to internal APIs. + +2004-10-27 Joe Shaw + + * mono/Arguments.cs (GetDBusTypeConstructor): + type.UnderlyingSystemType will return "System.Byte" if you do it + on "byte[]", which is not what we want. So check the type.IsArray + property and use System.Array instead. + +2004-10-25 John (J5) Palmieri + + * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free + the DBusUserInfo structure since this is passed into the function. + This would cause a double free when the function that allocated + the structure would try to free it when an error occured. + + * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in): + use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services + for service activation to avoid 32bit/64bit parallel install issues + +2004-10-21 Colin Walters + + * AUTHORS: Fix my email address, the @gnu.org one + has been bouncing for some time. Also add J5. + +2004-10-21 Colin Walters + + * dbus/dbus-transport-unix.c (do_authentication): Return + authentication status to callers. + (unix_handle_watch): If we completed authentication this round, + don't do another read. Instead wait until the next iteration, + after we've read any pending data in the auth buffer. + (unix_do_iteration): Ditto. + (unix_handle_watch): Updated for new do_authentication prototype. + +2004-10-18 Colin Walters + + * bus/selinux.c (bus_selinux_enabled): Handle + --disable-selinux case. + +2004-10-18 Colin Walters + + * bus/selinux.h: Add bus_selinux_enabled. + + * bus/selinux.c (bus_selinux_enabled): Implement it. + + * bus/config-parser.c (struct include): Add + if_selinux_enabled member. + (start_busconfig_child): Parse if_selinux_enabled + attribute for include. + (bus_config_parser_content): Handle it. + + * bus/session.conf.in, bus/system.conf.in: Add + inclusion of context mapping to default config files; + conditional on SELinux being enabled. + + * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD. + + * test/data/invalid-config-files/badselinux-1.conf, + test/data/invalid-config-files/badselinux-2.conf: + Test files for bad syntax. + +2004-10-17 Colin Walters + + * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards) + (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf + format specifier mismatches. + +2004-10-07 Olivier Andrieu + + * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect + format string. + + * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL + pointer (bug #1540, Leonardo Boiko). + +2004-09-28 Jon Trowbridge + + * mono/BusDriver.cs: Changed BusDriver struct to remove + the ServiceCreated and ServiceDeleted events and replace them + with the new ServiceOwnerChanged event. + + * mono/example/BusListener.cs: Added a new example program, + which listens for and reports any ServiceOwnerChanged events + on the bus driver. + + * mono/example/Makefile.am (DESTDIR): Build changes for the + new BusListener.cs example. + +2004-09-27 Olivier Andrieu + + * bus/signals.c (bus_match_rule_parse): validate the components of + match rules (bug #1439). + + * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test. + +2004-09-24 Olivier Andrieu + + * doc/dbus-specification.xml: document ServiceOwnerChanged + signal. + + * bus/driver.c, bus/driver.h, bus/services.c: Use + ServiceOwnerChanged signal instead of ServiceCreated and + ServiceDeleted. + + * bus/dispatch.c: update testcase for the new signal. + +2004-09-20 Jon Trowbridge + + Patch from Nat Friedman + + * mono/Makefile.am: A number of small build fixes to allow "make + distcheck" to succeed. + + * mono/example/Makefile.am: "make distcheck" fixes. + + * mono/AssemblyInfo.cs.in: When signing the assembly, look for the + key in @srcdir@. + + * test/Makefile.am: "make distcheck" fixes. + +2004-09-17 Olivier Andrieu + + * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM. + + * doc/busconfig.dtd: update the DTD for the at_console attribute. + + * bus/driver.c (bus_driver_handle_hello): correctly handle Hello + messages after the first one (bug #1389). + + * bus/dispatch.c (check_double_hello_message): add a test case for + the double hello message bug. + (check_existent_service_activation): fix check of spawning error. + +2004-09-16 David Zeuthen + + * python/dbus_bindings.pyx.in: Add support for int64 and uint64 + +2004-09-12 David Zeuthen + + Patch from Kay Sievers + + * bus/bus.c (bus_context_new): + * bus/bus.h: + * bus/main.c (usage) + (main): + Add commandline option --nofork to override configuration file + setting. + +2004-09-09 Olivier Andrieu + + * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C + compilers don't like it (bug #974). + +2004-09-04 Harald Fernengel + + * qt/connection.*: Applied patch by Jérôme Lodewyck + to integrate an existing + connection into the Qt eventloop + +2004-08-30 Jon Trowbridge + + * mono/BusDriver.cs: Added. This is a class for interacting with + the org.freedesktop.DBus service. + + * mono/Message.cs: Added a mechanism to expose the message that is + currently being dispatched via the static Message.Current + property. Added Message.Sender and Message.Destination + properties. + + * mono/Handler.cs: Expose the dispatched message via + Message.Current when handling method calls. + + * mono/Service.cs: Expose the dispatched message via + Message.Current when handling signal emissions. + + * mono/Connection.cs: Bind dbus_bus_get_base_service via the + Connection.BaseService property. + +2004-08-28 Havoc Pennington + + * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable + + More fixes from Steve Grubb + + * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak + (_dbus_listen_tcp_socket): fix fd leak + + * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for + EINTR to a bit lower in the code + +2004-08-26 Jon Trowbridge + + * bus/driver.c (bus_driver_handle_service_exists): Respond with + TRUE if we are inquiring about the existence of the built-in + org.freedesktop.DBus service. + +2004-08-25 John Palmieri + * bus/config-parser.c: + (struct PolicyType): Add POLICY_CONSOLE + (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console + (start_busconfig_child): Sets up console element when + is encountered in a policy file + (append_rule_from_element): Convert console elements to console + rules. + + * bus/policy.c: + (bus_policy_create_client_policy): Add console rules to the client + policy based on if the client is at the console + (bus_policy_append_console_rule): New function for adding a + console rule to a policy + (bus_policy_merge): Handle console rule merging + + * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant + where we check for console user files + + * dbus/dbus-sysdeps.c: + (_dbus_file_exists): New function which checks if the given + file exists + (_dbus_user_at_console): New function which does the system + specific process of checking if the user is at the console + + * dbus/dbus-userdb.c: + (_dbus_is_console_user): New function converts a UID to user name + and then calls the system specific _dbus_user_at_console to + see if the user is at the console and therefor a console user + +2004-08-25 Olivier Andrieu + + * bus/config-parser.c (set_limit): + * bus/dbus-daemon-1.1.in: + * test/data/valid-config-files/many-rules.conf: set the + max_match_rules_per_connection limt from the config file. + + * doc/busconfig.dtd: update the DTD. + + * bus/driver.c: remove some unused variables. + +2004-08-24 Mikael Hallendal + + * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since + it's been replaced by dbus_g_bus_get + +2004-08-23 Colin Walters + + Updated SELinux support from Matthew Rickard + + * bus/selinux.h: Prototype bus_selinux_get_policy_root. + + * bus/selinux.c: Create a thread for policy reload notification. + (bus_selinux_get_policy_root): Implement. + + * bus/config-parser.c (start_busconfig_child) + (bus_config_parser_content): Support SELinux-root relative + inclusion. + + * configure.in : Add -lpthread. + + * bus/test-main.c (test_pre_hook, test_post_hook): New. + (test_post_hook): Move memory checking into here. + (test_pre_hook, test_post_hook): Move SELinux checks in + here, but conditional on a DBUS_TEST_SELINUX environment + variable. Unfortunately we can't run the SELinux checks + as a normal user, since they won't have any permissions + for /selinux. So this will have to be tested manually + for now, until we have virtualization for most of + libselinux. + +2004-08-23 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to + drop supplementary groups, suggested by Steve Grubb + +2004-08-20 Colin Walters + + * bus/config-parser.c (start_busconfig_child): Remove some unused + variables. + + * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler + warning. + +2004-08-17 Joe Shaw + + * configure.in: If --enable-mono is passed in, if we can't find + mono error out. + + * mono/Makefile.am: Use /gacutil to install assemblies into the + GAC and not /root. + +2004-08-12 Havoc Pennington + + * NEWS: update for 0.22 + + * configure.in: release 0.22 + +2004-08-11 Colin Walters + + * tools/dbus-send.c (main, usage): Add --reply-timeout + argument. + +2004-08-10 Olivier Andrieu + + * bus/bus.c (process_config_first_time_only): get rid of an unused + DBusError that was causing a memoy leak (bug #989). + + * dbus/dbus-keyring.c, dbus/dbus-message.c: + fix compilation on Solaris/Forte C (bug #974) + + * bus/main.c (main): plug two minuscule memleaks. + +2004-08-10 Havoc Pennington + + * doc/dbus-tutorial.xml: add some more info on GLib bindings + +2004-08-09 Havoc Pennington + + * COPYING: switch to Academic Free License version 2.1 instead of + 2.0, to resolve complaints about patent termination clause. + +2004-07-31 John (J5) Palmieri + + * README: added documentation for the --enable-python + configure switch. + +2004-07-31 Olivier Andrieu + + * bus/config-parser.c (bus_config_parser_new): fix an invalid + _unref in the SELinux support. + + * doc/busconfig.dtd: update DTD for SELinux support. + + * bus/config-loader-libxml.c: fix error handler and parser + initialisation/cleanup. OOM test now works with libxml2 HEAD. + + * configure.in: remove the warning about libxml2. + + * dbus/dbus-bus.c: silence doxygen warning. + +2004-07-31 Colin Walters + + * configure.in: Move #error in SELinux check to its own line. + +2004-07-31 Olivier Andrieu + + * dbus/dbus-internals.h (_DBUS_SET_OOM): + * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of + dbus_error_set. + + * bus/dispatch.c (check_send_exit_to_service): fix the test case, + broken by the change in the _SET_OOM macros. + +2004-07-31 Colin Walters + + * bus/selinux.c : Include utils.h to get + BUS_SET_OOM. + +2004-07-31 Colin Walters + + * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER + to correctly detect DBUS__ACQUIRE_SVC. Also add an + AC_MSG_CHECKING. + +2004-07-24 Havoc Pennington + + SELinux support from Matthew Rickard + + * bus/selinux.c, bus/selinux.h: new file encapsulating selinux + functionality + + * configure.in: add --enable-selinux + + * bus/policy.c (bus_policy_merge): add FIXME to a comment + + * bus/main.c (main): initialize and shut down selinux + + * bus/connection.c: store SELinux ID on each connection, to avoid + repeated getting of the string context and converting it into + an ID + + * bus/bus.c (bus_context_get_policy): new accessor, though it + isn't used + (bus_context_check_security_policy): check whether the security + context of sender connection can send to the security context of + recipient connection + + * bus/config-parser.c: add parsing for and + + * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to + implement dbus_connection_get_unix_fd() + + * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new + function, used by the selinux stuff + +2004-07-29 Olivier Andrieu + + * bus/config-loader-libxml.c: complete the implementation of + libxml backend for config file loader. Doesn't work with full OOM + test yet. + + * configure.in: change error when selecting libxml into a warning. + + * test/data/invalid-config-files: add two non-well-formed XML + files. + + * glib/Makefile.am: libdbus_gtool always uses expat, not libxml. + + * dbus/dbus-transport-unix.c (unix_handle_watch): do not + disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may + be necessary to read all the buffer. (bug #894) + + * bus/activation.c (bus_activation_activate_service): fix a + potential assertion failure (bug #896). Small optimization in the + case of auto-activation messages. + + * dbus/dbus-message.c (verify_test_message, _dbus_message_test): + add test case for byte-through-vararg bug (#901). patch by Kimmo + Hämäläinen. + +2004-07-28 Anders Carlsson + + * python/dbus.py: + * python/dbus_bindings.pyx.in: + Add dbus.init_gthreads (), allow emit_signal to pass + arguments to the signal. + +2004-07-24 Havoc Pennington + + * AUTHORS: add some people, not really comprehensively, let me + know if I missed you + +2004-07-24 Havoc Pennington + + * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by + Owen + + * test/Makefile.am (DIST_SUBDIRS): here also + +2004-07-22 Olivier Andrieu + + * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name, + breaking build on Solaris, reported by Farhad Saberi on the ML. + + * dbus/dbus-message.c (dbus_message_append_args_valist): fix the + va_arg invocation to account for integer promotion in the case of + DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901) + + * bus/services.c (bus_service_remove_owner): fix bug #902, use + _dbus_list_get_first_link, not _dbus_list_get_first. + + * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak. + + * dbus/dbus-object-tree.c (free_subtree_recurse): always null + handler functions so that the asserts in _dbus_object_subtree_unref + do not fail. + + * dbus/dbus-transport-unix.c (do_reading): + _dbus_transport_queue_messages return value is of type + dbus_bool_t, not DBusDispatchStatus. + +2004-07-19 David Zeuthen + + * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN + + * bus/dispatch.c: + (check_get_connection_unix_user): Debug says GetProperty; but the + method is called GetConnectionUnixUser + (check_get_connection_unix_process_id): New function + (bus_dispatch_test): Actually call check_get_connection_unix_user(); + also call check_get_connection_unix_process_id() + + * bus/driver.c: + (bus_driver_handle_get_connection_unix_process_id): New function, + handles GetConnectionUnixProcessID on the org.freedesktop.DBus + interface + + * dbus/dbus-auth.c: + (handle_server_data_external_mech): Set pid from the credentials + obtained from the socket + + * dbus/dbus-connection.c: + (dbus_connection_get_unix_process_id): New function + + * dbus/dbus-connection.h: + Add prototype for dbus_connection_get_unix_process_id + + * dbus/dbus-transport.c: + (_dbus_transport_get_unix_process_id): New function + + * dbus/dbus-transport.h: + Add prototype for _dbus_transport_get_unix_process_id + +2004-07-19 Olivier Andrieu + + * dbus/dbus-message.c: Message counter fix, patch by Christian + Hammond + +2004-07-18 Seth Nickell + + * python/dbus.py: + * python/dbus_bindings.pyx.in: + * python/tests/test-client.py: + + Add dbus.ByteArray and dbus_bindings.ByteArray + types so that byte streams can be passed back. + + Give jdahlin the heaps of credit that are so + rightfully his. + +2004-07-12 Seth Nickell + + * python/dbus.py: + + Add message argument to the default object_method_handler + function. + + * python/dbus_bindings.pyx.in: + + Automatically return NIL when passed an empty list + (we can't pass back a list since lists are typed + and we don't have any idea what type the the client + intended the list to be... :-( ) + +2004-07-10 Seth Nickell + + * python/examples/Makefile.am: + + Fix distcheck breakage caused by new examples. + +2004-07-10 Seth Nickell + + * python/dbus.py: + + Add "message" argument to service-side dbus.Object + methods. This will break existing services written + using the python bindings, but will allow extraction + of all the message information (e.g. who its from). + + Add improved "object oriented" signal handling/emission. + + * python/examples/example-service.py: + + Nix this example. + + * python/examples/example-signal-emitter.py: + * python/examples/example-signal-recipient.py: + + Two new examples that show how to emit and receive + signals using the new APIs. + + * python/examples/example-signals.py: + * python/examples/gconf-proxy-service.py: + * python/examples/gconf-proxy-service2.py: + + Add "message" argument to service methods. + +2004-06-28 Kay Sievers + + * bus/driver.c (bus_driver_handle_get_connection_unix_user) + * dbus/bus.c (dbus_bus_get_unix_user) + * doc/dbus-specification.xml: implement GetConnectionUnixUser + method of org.freedesktop.DBus interface. + + * bus/dispatch.c: test case + +2004-06-23 John (J5) Palmieri + + * python/Makefile.am: switched include directory from glib/ to dbus/ + since dbus-glib.h moved + +2004-06-22 Olivier Andrieu + + * configure.in: prevent building the gcj stuff and libxml loader + since they are broken. + +2004-06-20 Havoc Pennington + + * dbus/dbus-glib-error-enum.h: autogenerate the GError enum + codes from the dbus error names + + * glib/dbus-glib.h: move to subdir dbus/ since it's included + as dbus/dbus-glib.h and that breakage is now visible due to + including dbus/dbus-glib.h in dbus-glib-lowlevel.h + + * glib/dbus-glib.h: s/gproxy/g_proxy/ + + * dbus/dbus-shared.h: new header to hold stuff shared with + binding APIs + + * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather + than dbus-errors.h + + * glib/dbus-glib.h (dbus_set_g_error): move to + dbus-glib-lowlevel.h + + * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch + of stuff to enable this + + * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here + + * a bunch of other changes with the same basic "separate glib + bindings from dbus.h" theme + +2004-06-10 Owen Fraser-Green + + * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs. + + * python/examples/Makefile.am: Fixed typo in EXTRA_DIST. + +2004-06-09 Olivier Andrieu + + * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for + the reply value of the ServiceExists message. + +2004-06-07 John (J5) Palmieri + + * python/dbus_bindings.pyx.in: No longer need to parse path + elements and pass them as arrays of strings. The C API now + accepts plain path strings. + (_build_parsed_path): removed + +2004-06-07 Havoc Pennington + + * doc/TODO: remove auto-activation item since it's done; sort + items by importance/milestone + +2004-06-07 Havoc Pennington + + * dbus/dbus-message-builder.c (_dbus_message_data_load): append + random signature when using REQUIRED_FIELDS (this hack won't work + in the long term) + + * dbus/dbus-message.c: change the signature to be a header field, + instead of message->signature special-case string. Incremental + step forward. Then we can fix up code to send the signature in the + message, then fix up code to validate said signature, then fix up + code to not put the typecodes inline, etc. + (load_one_message): don't make up the signature after the fact + (decode_header_data): require signature field for the known + message types + + * dbus/dbus-marshal.c (_dbus_marshal_string_len): new + + * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE + +2004-06-07 Owen Fraser-Green + + * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path + + * mono/Handler.cs: Updated to follow new path argument for + (un-)registering objects. + + * mono/example/Makefile.am: + * mono/Makefile.am: + * configure.in: Bumped required version for mono and use new -pkg + syntax for deps + +2004-06-05 Olivier Andrieu + + * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path + registration functions take the path argument as char* instead of + char**. + + * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path): + split off the path decompostion part of + _dbus_demarshal_object_path. Some misc. fixes to silence compiler + warnings. + + * glib/dbus-gobject.c, test/test-service.c: update accordingly. + +2004-06-02 Kristian Høgsberg + + * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state + machine approach. A state is implemented as a function that + handles incoming events as specified for that state. + + * doc/dbus-specification.xml: Update auth protocol state machine + specification to match implementation. Remove some leftover + base64 examples. + +2004-06-02 Kristian Høgsberg + + * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c, + dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to + quiet doxygen. + + * Doxyfile.in: remove deprecated options. + + * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h, + glib/test-thread.h, glib/test-thread-client.c, + glib/test-thread-server.c, glib/test-profile.c, + glib/test-dbus-glib.c: remove these unused files. + +2004-06-01 Olivier Andrieu + + * dbus/dbus-object-tree.c + (_dbus_object_tree_dispatch_and_unlock): fix dispatch for + non-fallback handlers (bug #684). + (_dbus_object_subtree_new): initialize invoke_as_fallback field. + (find_subtree_recurse): report wether the returned subtree is an + exact match or a "fallback" match higher up in the tree. + (object_tree_test_iteration): update test case. + +2004-06-01 Seth Nickell + + * python/dbus_bindings.pyx.in: + * python/tests/test-client.py: + + Round off basic type support. Add dicts (yay!), and + remaining array types. + + Make MessageIter more general so it works for dicts too. + + Mark all loop variables as C integers. + +2004-05-31 Havoc Pennington + + * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with + "in" before "out" + + * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c + + * glib/dbus-glib-tool.c (main): set up to have a --self-test + option that runs the tests, and start filling in some code + including for starters just dumping the interfaces to stdout + + * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR + + * test/data/valid-introspection-files/lots-of-types.xml: test of + an example introspection file + + * glib/dbus-gparser.c (parser_check_doctype): doctype should be + "node" (I think...) + +2004-05-31 Seth Nickell + + * python/dbus_bindings.pyx.in: + * python/tests/test-client.py: + + Test Suite: 1 + Python Bindings: 0 + + Fix string array memory trashing bug... oops... + +2004-05-30 Seth Nickell + + * python/dbus.py: + + Add a nicer-but-less-flexible alternate API for handling + calls to virtual objects in dbus.ObjectTree. + + Screw up the argument order to the dbus.Object constructor + for consistency with dbus.ObjectTree (and to make dbus_methods + optional for future extension) + + * python/examples/Makefile.am: + * python/examples/gconf-proxy-service.py: + * python/examples/gconf-proxy-service2.py: + + Alternate implementation of gconf-proxy-service using the + nicer dbus.ObjectTree API. + + * python/examples/example-service.py: + * python/tests/test-server.py + + Reverse the argument order to deal with dbus.Object constructor + changes. + +2004-05-30 Seth Nickell + + * python/examples/example-client.py: + * python/examples/example-service.py: + + Take it back. Lists seem to work but they're broken + in the test suite. Make the base examples use + lists (works fine). + +2004-05-30 Seth Nickell + + * python/dbus_bindings.pyx.in: + * python/tests/test-client.py: + + Add some more tests and fix errors that crop up. + Unfortunately, currently it seems like marshalling + and unmarshalling of lists is completely broken :-( + +2004-05-30 Seth Nickell + + * python/dbus_bindings.pyx.in: + + Add support for ObjectPath type. + + * python/dbus.py: + + Refactor message handling code to a common function. + + * python/tests/test-client.py: + * python/tests/test-server.py: + + Add tests that check to make sure values of all types + can be echoed from a service w/o mangling. + +2004-05-29 Seth Nickell + + * python/dbus.py: + + Add ObjectTree class which allows implementation + of trees of "virtual" objects. Basically the python + wrapper for "register_fallback". + + * python/examples/Makefile.am + * python/examples/gconf-proxy-client.py: + * python/examples/gconf-proxy-service.py: + + Implement a simple GConf proxy service that supports + get/set on string and int GConf keys using the ObjectTree. + +2004-05-29 Seth Nickell + + * python/dbus.py: + * python/examples/example-client.py: + * python/examples/example-service.py: + * python/examples/list-system-services.py: + + Add SessionBus, SystemBus and ActivationBus classes + so you don't need to know the special little BUS_TYPE + flag. + +2004-05-29 Havoc Pennington + + * bus/config-parser.c (process_test_valid_subdir): temporarily + stop testing config parser OOM handling, since expat has issues + http://freedesktop.org/pipermail/dbus/2004-May/001153.html + + * bus/dbus-daemon-1.1.in: change requested_reply to + send_requested_reply/receive_requested_reply so we can send the + replies, not just receive them. + + * bus/config-parser.c: parse the new + send_requested_reply/receive_requested_reply + + * bus/policy.c (bus_client_policy_check_can_send): add + requested_reply argument and use it + + * bus/bus.c (bus_context_check_security_policy): pass through + requested_reply status to message send check + + * bus/system.conf.in: adapt to requested_reply change + +2004-05-28 Havoc Pennington + + * test/glib/test-service-glib.c (main): remove unused variable + + * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning + + * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES + from the enum, no longer in use. + + * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually + works right. + + * dbus/dbus-message.c: add various _dbus_return_val_if_fail for + whether error_name passed in is a valid error name. + +2004-05-28 John (J5) Palmieri + + * dbus/dbus-message.c (dbus_message_get_args): Added support for + OBJECT_PATH and OBJECT_PATH_ARRAY + +2004-05-28 Seth Nickell + + * python/examples/Makefile.am: + + Forget to add Makefile.am. Do not pass go. + +2004-05-28 Michael Meeks + + * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): + fix no int64 case. + + * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl. + + * dbus/dbus-message.c (_dbus_message_iter_get_basic_type), + (_dbus_message_iter_get_basic_type_array): impl. + drastically simplify ~all relevant _get methods to use these. + (_dbus_message_iter_append_basic_array), + (dbus_message_iter_append_basic): impl + drastically simplify ~all relevant _append methods to use these. + + * dbus/dbus-message-builder.c (parse_basic_type) + (parse_basic_array, lookup_basic_type): impl. + (_dbus_message_data_load): prune scads of duplicate / + cut & paste coding. + + * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) + (_dbus_demarshal_basic_type): implement, + (demarshal_and_validate_len/arg): beef up debug. + (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl. + +2004-05-27 Seth Nickell + + * configure.in: + * python/Makefile.am: + + Include the example python apps in the tarball. + + * python/examples/list-system-services.py + + Add a python new example that fetches the list of services + from the system bus. + +2004-05-27 Seth Nickell + + * python/dbus.py: + * python/dbus_bindings.pyx.in: + + Fix failure to notify that a signal was not handled, + resulted in hung functions. + +2004-05-25 Colin Walters + + * tools/dbus-monitor.c (main): Monitor all types of messages. + +2004-05-23 Owen Fraser-Green + + * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method + which unregisters the object path and disposes the handler. + +2004-05-23 Kristian Høgsberg + + Patch from Timo Teräs (#614): + + * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap + operands to && so we call dbus_message_iter_next () for the last + argument also. + +2004-05-21 Olivier Andrieu + + * dbus/dbus-object-tree.c + (_dbus_object_tree_list_registered_unlock, lookup_subtree): return + children even if the requested path isn't registered. + (object_tree_test_iteration): test object_tree_list_registered. + + * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining + it to 0. + +2004-05-20 Kristian Høgsberg + + * doc/TODO: Remove resolved items. + + * bus/expirelist.h (struct BusExpireList): remove unused n_items + field. + + * bus/connection.c (bus_connections_expect_reply): Enforce the + per-connection limit on pending replies. + + Patch from Jon Trowbridge : + + * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets + up a watch that triggers a config reload when one end of the pipe + becomes readable. + (signal_handler): Instead of doing the config reload in our SIGHUP + handler, just write to the reload pipe and let the associated + watch handle the reload when control returns to the main loop. + + * bus/driver.c (bus_driver_handle_reload_config): Added. + Implements a ReloadConfig method for requesting a configuration + file reload via the bus driver. + +2004-05-19 Owen Fraser-Green + + * HACKING: Updated release instructions concerning the wiki page. + +2004-05-18 Kristian Høgsberg + + * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to + filter against auth->allowed_mechs; we only add allowed mechs in + record_mechanisms(). + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an + ALLOWED_MECHS to auth-script format so we can set the list of + allowed mechanisms. + + * data/auth/client-out-of-mechanisms.auth-script: New test to + check client disconnects when it is out of mechanisms to try. + + * dbus/dbus-auth.c (process_command): Remove check for lines + longer that 1 MB; we only buffer up maximum 16 kB. + + * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, + dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h: + Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always + assume there might be unused bytes. + + * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for + client-out-of-mechs, it is handled in process_reject(). Move check + for max failures to send_rejected(), as it's a server-only thing. + + * dbus/dbus-auth.c: Factor out protocol reply code into functions + send_auth(), send_data(), send_rejected(), send_error(), + send_ok(), send_begin() and send_cancel(). + +2004-05-17 Kristian Høgsberg + + Remove base64 encoding, replace with hex encoding. Original patch + from trow@ximian.com, added error handling. + + * dbus/dbus-string.c (_dbus_string_base64_encode) + (_dbus_string_base64_decode): Remove. + (_dbus_string_hex_decode): Add end_return argument so we can + distinguish between OOM and invalid hex encoding. + (_dbus_string_test): Remove base64 tests and add test case for + invalid hex. + + * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c: + Replace base64 with hex. + + * test/data/auth/invalid-hex-encoding.auth-script: New test case + for invalid hex encoded data in auth protocol. + +2004-05-17 Olivier Andrieu + + * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory + leak. + +2004-05-15 Owen Fraser-Green + + * mono/dbus-sharp.dll.config.in: Added for GAC + * mono/dbus-sharp.snk: Added for GAC + * mono/Assembly.cs.in: Added for GAC + * mono/Makefile.am: Changes for GAC installation + * configure.in: Added refs for dbus-sharp.dll.config.in and + Assembly.cs.in. More fixes for mono testing + * mono/example/Makefile.am: Changed var to CSC + * Makefile.am: Changed flag name to DBUS_USE_CSC + +2004-05-15 Owen Fraser-Green + + * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order + * mono/doc/*: Added documentation framework + * configure.in: Added monodoc check + * README: Added description of mono configure flags + +2004-05-11 John (J5) Palmieri : + + * doc/dbus-specification.xml: Added a "Required" column to the + header fields table and changed the "zero or more" verbage in + the above paragraph to read "The header must contain the required + named header fields and zero or more of the optional named header + fields". + * test/data/invalid-messages/*.message: Added the required PATH + named header field to the tests so that they don't fail on + 'Missing path field' + +2004-05-07 John (J5) Palmieri + + * python/dbus-bindings.pyx.in: Stopped the bindings from trashing + the stack by implicitly defining variable and parameter types and + removing the hack of defining C pointers as python objects and later + casting them. + +2004-05-02 Owen Fraser-Green + + * mono/Makefile.am: Removed test-dbus-sharp.exe from all target + +2004-05-01 Owen Fraser-Green + + * mono/DBusType/Dict.cs: Handle empty dicts + * mono/DBusType/Array.cs: Handle empty arrays + * mono/Arguments.cs: Handle empty arguments + +2004-04-30 Owen Fraser-Green + + * dbus-sharp.pc.in: Modified to include include Libs and Requires + field + +2004-04-25 Kristian Høgsberg + + * test/data/valid-messages/standard-*.message: Update message + test scripts to new header field names. + +2004-04-22 John (J5) Palmieri + + * test/break-loader.c (randomly_do_n_things): tracked down buffer + overflow to times_we_did_each_thing array which would chop off the + first character of the failure_dir string. Increased the size of + the array to 7 to reflect the number of random mutation functions + we have. + +2004-04-21 Kristian Høgsberg + + * dbus/dbus-server-unix.c (unix_finalize): Don't unref + unix_server->watch here, it is unreffed in disconnect. + (_dbus_server_new_for_tcp_socket): convert NULL host to + "localhost" here so we don't append NULL to address. + + * dbus/dbus-server.c (_dbus_server_test): Add test case for + various addresses, including tcp with no explicit host. + +2004-04-21 Olivier Andrieu + + * dbus/dbus-message.c (decode_header_data, decode_string_field): + fix incorrect setting of .name_offset in the HeaderField (it was + off by two bytes, positioned right after the name and typecode) + + * bus/bus.c (bus_context_new, bus_context_unref): test before + calling dbus_server_free_data_slot and _dbus_user_database_unref + in case of an error. + + * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed + by libdbus-gtool. + +2004-04-19 Kristian Høgsberg + + * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use + _dbus_poll() instead of select(). + +2004-04-15 Jon Trowbridge + + * bus/main.c (signal_handler): Reload the configuration files + on SIGHUP. + (main): Set up our SIGHUP handler. + + * bus/bus.c (struct BusContext): Store the config file, user and + fork flag in the BusContext. + (process_config_first_time_only): Added. Contains the code + (previously in bus_context_new) for setting up the BusContext from + the BusConfigParser that should only be run the first time the + config files are read. + (process_config_every_time): Added. Contains the code (previously + in bus_context_new) for setting up the BusContext from the + BusConfigParser that should be run every time the config files are + read. + (load_config): Added. Builds a BusConfigParser from the config + files and passes the resulting structure off to + process_config_first_time_only (assuming this is the first time) + and process_config_every_time. + (bus_context_new): All of the config-related code has been moved + to process_config_first_time_only and process_config_every_time. + Now this function just does the non-config-related initializations + and calls load_config. + (bus_context_reload_config): Added. + +2004-04-15 Olivier Andrieu + + * bus/driver.c (bus_driver_handle_get_service_owner): + implement a GetServiceOwner method. + * doc/dbus-specification.xml: document it. + * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error. + + * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner): + implement, using the bus GetServiceOwner method. + + * test/glib/test-dbus-glib.c: + use dbus_gproxy_new_for_service_owner so that we can receive the + signal. + +2004-04-15 John (J5) Palmieri + + * dbus/dbus-internals.c, dbus/dbus-message-builder.c, + dbus/dbus-message.c, dbus/dbus-protocol.h + (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION + + * dbus/dbus-internals.c, dbus/dbus-message-builder.c, + dbus/dbus-message.c, dbus/dbus-protocol.h + (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER + + * dbus/dbus-internals.c (_dbus_header_field_to_string): + DBUS_HEADER_FIELD_DESTINATION resolves to "destination" + DBUS_HEADER_FIELD_SENDER resolves to "sender" + + * doc/dbus-specification.xml (Header Fields Table): + s/SERVICE/DESTINATION + s/SENDER_SERVICE/SENDER + + +2004-04-14 Olivier Andrieu + + * test/glib/test-dbus-glib.c (timed_exit): fail the test after + a few seconds. + +2004-04-13 Michael Meeks + + * glib/dbus-gobject.c (handle_introspect): split out + (introspect_properties): this. + (handle_introspect): implement this. + + * test/glib/Makefile.am: use the absolute path so the bus + daemon's chdir ("/") doesn't kill us dead. + + * configure.in: subst ABSOLUTE_TOP_BUILDDIR + +2004-04-12 Jon Trowbridge + + * bus/config-parser.c (struct BusConfigParser): Added + included_files field. + (seen_include): Added. Checks whether or not a file has already + been included by any parent BusConfigParser. + (bus_config_parser_new): Copy the parent's included_files. + (include_file): Track which files have been included, and fail on + circular inclusions. + (process_test_valid_subdir): Changed printf to report if we are + testing valid or invalid conf files. + (all_are_equiv): Changed printf to be a bit clearer about + what we are actually doing. + (bus_config_parser_test): Test invalid configuration files. + +2004-04-09 Jon Trowbridge + + * bus/config-parser.c (bus_config_parser_new): Added a 'parent' + argument. If non-null, the newly-constructed BusConfigParser will + be initialized with the parent's BusLimits instead of the default + values. + (include_file): When including a config file, pass in + the current parser as the parent and then copy the BusLimits + from the included BusConfigParser pack to the current parser. + (process_test_valid_subdir): Renamed from process_test_subdir. + (process_test_equiv_subdir): Added. Walks through a directory, + descending into each subdirectory and loading the config files + it finds there. If any subdirectory contains two config files + that don't produce identical BusConfigParser structs, fail. + For now, the BusConfigParser's BusPolicies are not compared. + (bus_config_parser_test): Call both process_test_valid_subdir and + process_test_equiv_subdir. + + * bus/config-loader-libxml.c (bus_config_load): Take a parent + argument and pass it along to the call to bus_config_parser_new. + Also made a few small changes to allow this code to compile. + + * bus/config-loader-expat.c (bus_config_load): Take a parent + argument and pass it along to the call to bus_config_parser_new. + + * bus/bus.c (bus_context_new): Load the config file + with a NULL parent argument. + +2004-03-29 Michael Meeks + + * glib/dbus-gobject.c (introspect_properties): split + out, fix mangled 'while' flow control. + (introspect_signals): implement. + (handle_introspect): update. + +2004-03-29 Michael Meeks + + * glib/dbus-gobject.c (set_object_property): split out / + re-work, use the property type, and not the message type(!) + (get_object_property): ditto. + + * glib/dbus-gvalue.c (dbus_gvalue_demarshal), + (dbus_gvalue_marshal): make this code re-usable, needed + for signals too, also on both proxy and server side. + Re-write for more efficiency / readability. + +2004-03-29 Michael Meeks + + * dbus/dbus-message.c + (dbus_message_new_error_printf): impl. + + * dbus/dbus-connection.c + (dbus_connection_unregister_object_path): fix warning. + + * configure.in: fix no-mono-installed situation. + +2004-03-27 Havoc Pennington + + Patch from Timo Teräs: + + * tools/dbus-send.c (main): if --print-reply, assume type is + method call; support boolean type args + + * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a + bunch of memleak and logic bugs + +2004-03-23 Owen Fraser-Green + + * mono/Arguments.cs: + * mono/Introspector.cs: + * mono/Handler.cs: + * mono/InterfaceProxy.cs: + * mono/Message.cs + * mono/ProxyBuilder.cs: + * mono/Service.cs: + Added InterfaceProxy class to avoid building proxies for every + object. + + * dbus-message.h: + * dbus-message.c (dbus_message_append_args_valist) + (dbus_message_iter_get_object_path) + (dbus_message_iter_get_object_path_array) + (dbus_message_iter_append_object_path) + (dbus_message_iter_append_object_path_array): + Added object_path iter functions to handle OBJECT_PATH arguments + +2004-03-23 Owen Fraser-Green + + First checkin of mono bindings. + * configure.in: + * Makefile.am: + Build stuff for the bindings + * dbus-sharp.pc.in: Added for pkgconfig + +2004-03-21 Havoc Pennington + + * test/test-service.c (main): remove debug spew + +2004-03-21 Olivier Andrieu + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty + arrays + + * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init) + (dbus_message_iter_init_array_iterator) + (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to + indicate whether the iterator is empty + + * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler + warnings + +2004-03-19 Havoc Pennington + + * NEWS: 0.21 updates + + * configure.in: 0.21 + + * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED + + * python/Makefile.am: change to avoid dist of dbus_bindings.c so + you don't need pyrex to make dist + + * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to + sources; run moc + +2004-03-18 Richard Hult + + * dbus/dbus-message.c (dbus_message_get_auto_activation) + (dbus_message_set_auto_activation): Add doxygen docs. + +2004-03-16 Richard Hult + + * bus/activation.c: (bus_activation_service_created), + (bus_activation_send_pending_auto_activation_messages), + (bus_activation_activate_service): + * bus/activation.h: + * bus/dispatch.c: (bus_dispatch), + (check_nonexistent_service_auto_activation), + (check_service_auto_activated), + (check_segfault_service_auto_activation), + (check_existent_service_auto_activation), (bus_dispatch_test): + * bus/driver.c: (bus_driver_handle_activate_service): + * bus/services.c: (bus_registry_acquire_service): + * dbus/dbus-message.c: (dbus_message_set_auto_activation), + (dbus_message_get_auto_activation): + * dbus/dbus-message.h: + * dbus/dbus-protocol.h: Implement auto-activation. + + * doc/dbus-specification.xml: Add auto-activation to the spec. + +2004-03-12 Olivier Andrieu + + * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): + fix a bug with CUSTOM types. + + * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add + a unit test for this bug (used to fail). + +2004-03-12 Mikael Hallendal + + * bus/activation.c: + (babysitter_watch_callback): notify all pending activations waiting for + the same exec that the activation failed. + (bus_activation_activate_service): shortcut the activation if we + already waiting for the same executable to start up. + +2004-03-12 Mikael Hallendal + + * bus/activation.c: + - Added service file reloading. + Each service files directory is kept in an hash table in + BusActivation and each BusActivationEntry knows what .service-file it + was read from. So when you try to activate a service the bus will + check if it's been updated, removed or if new .service-files has + been installed. + - Test code at the bottom for the service file reloading. + * bus/test-main.c: (main): + * bus/test.h: + - added service reloading test. + * dbus/dbus-sysdeps.c: + * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added. + +2004-03-08 Michael Meeks + + * dbus/dbus-connection.c (_dbus_connection_block_for_reply): + bail immediately if disconnected, to avoid busy loop. + + * dbus/dbus-message.c (dbus_message_iter_get_args_valist): + cleanup cut/paste/inefficiency. + +2004-03-01 David Zeuthen + + * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a + bug where args were used twice. This bug resulted in a segfault + on a Debian/PPC system when starting the messagebus daemon. Include + dbus-sysdeps.h for DBUS_VA_COPY + + * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib + + * configure.in: Check for va_copy; define DBUS_VA_COPY to the + appropriate va_copy implementation. From GLib + +2004-02-24 Joe Shaw + + * bus/services.c (bus_registry_acquire_service): We need to pass + in the service name to dbus_set_error() to prevent a crash. + +2003-12-26 Anders Carlsson + + * AUTHORS: Reveal my True identity. + +2003-12-17 Mikael Hallendal + + * dbus/dbus-message.c: (dbus_message_append_args_valist): + - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg. + +2003-12-13 Mikael Hallendal + + * doc/TODO: Added not about better error check of configuration files. + +2003-12-02 Richard Hult + + * Update AFL version to 2.0 throughout the source files to reflect + the update that was done a while ago. + +2003-12-02 Richard Hult + + * dbus/dbus-message.c (dbus_message_iter_append_dict): Set + wrote_dict_key to FALSE on the iter that the dict is appended to, + just like when appending other types. Fixes a bug where a dict + couldn't be put inside a dict. + (dbus_message_iter_append_dict_key): Fix typo in warning message. + (message_iter_test, _dbus_message_test): Add test case for dict + inside dict. + +2003-12-01 David Zeuthen + + * python/dbus.py: Add the actual message when calling the reciever + of a signal such that parameters can be inspected. Add the method + remove_signal_receiver + +2003-11-26 Mikael Hallendal + + * bus/*.[ch]: + * dbus/*.[ch]: + * glib/*.[ch]: Made ref functions return the pointer + +2003-11-25 Zack Rusin + + * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer, + + * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer + wrappers, + + * qt/connection.h, qt/connection.cpp: Adjusting to changes in + the Integrator and to better fit with the server, + +2003-11-24 Zack Rusin + + * qt/connection.h, qt/connection.cpp: removing initDbus method since + the integrator handles it now + + * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts, + since QTimer wasn't really meant to be used the way DBusTimeout is + +2003-11-24 Zack Rusin + + * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding + Integrator class which integrates D-BUS with the Qt event loop, + + * qt/connection.h, qt/connection.cpp: Move all the code which + was dealing with D-BUS integration to the Integrator class, + and start using Integrator, + +2003-11-23 Zack Rusin + + * qt/connection.h, qt/connection.cpp: Adding the DBusConnection + wrapper + + * qt/message.h, qt/message.cpp: updating to the current D-BUS api, + switching namespaces to DBusQt, reworking the class, + + * Makefile.cvs: switching dependencies so that it matches KDE + schematics, + + * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to + the library + +2003-11-19 Havoc Pennington + + * NEWS: update + + * configure.in: bump version to 0.20 + + * configure.in (have_qt): add yet another place to look for qt + (someone hand trolltech a .pc file...) + +2003-11-01 Havoc Pennington + + * doc/dbus-specification.xml: add state machine docs on the auth + protocol; just a first draft, I'm sure it's wrong. + +2003-10-28 David Zeuthen + + * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries + return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h + +2003-10-28 Havoc Pennington + + * dbus/dbus-message.c (get_next_field): delete unused function + +2003-10-28 Havoc Pennington + + * bus/expirelist.c (do_expiration_with_current_time): detect + failure of the expire_func due to OOM + + * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM + + * bus/dispatch.c (check_send_exit_to_service): fix to handle the + NoReply error that's now created by the bus when the service exits + +2003-10-28 Havoc Pennington + + * dbus/dbus-message.c (_dbus_message_test): enable and fix the + tests for set_path, set_interface, set_member, etc. + + * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes + + * dbus/dbus-message.c (set_string_field): always just delete and + re-append the field; accept NULL for deletion + (re_align_fields_recurse): reimplement + +2003-10-26 Havoc Pennington + + * dbus/dbus-connection.c: fix docs to properly describe the + disconnected message + (_dbus_connection_notify_disconnected): remove this function; + we can't synchronously add the disconnected message, we have to + do it after we've queued any remaining real messages + (_dbus_connection_get_dispatch_status_unlocked): queue the + disconnect message only if the transport has finished queueing all + its real messages and is disconnected. + (dbus_connection_disconnect): update the dispatch status here + +2003-10-22 Havoc Pennington + + * bus/bus.c (bus_context_check_security_policy): fix up assertion + + * bus/connection.c (bus_transaction_send_from_driver): set the + destination to the connection's base service + +2003-10-20 Havoc Pennington + + hmm, make check is currently not passing. + + * doc/dbus-specification.xml: add requirement that custom type + names follow the same rules as interface names. + + * dbus/dbus-protocol.h: change some of the byte codes, to avoid + duplication and allow 'c' to be 'custom'; dict is now 'm' for + 'map' + + * doc/dbus-specification.xml: update type codes to match + dbus-protocol.h, using the ASCII byte values. Rename type NAMED to + CUSTOM. Add type OBJECT_PATH to the spec. + +2003-10-17 Havoc Pennington + + * bus/driver.c (create_unique_client_name): use "." as separator + in base service names instead of '-' + + * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul + byte at the end of the string + + * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add + optimization macros since string validation seems to be a slow + point. + + * doc/dbus-specification.xml: restrict valid + service/interface/member/error names. Add test suite code for the + name validation. + + * dbus/dbus-string.c: limit service/interface/member/error names + to [0-9][A-Z][a-z]_ + + * dbus/dbus-connection.c (dbus_connection_dispatch): add missing + format arg to verbose spew + + * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of + memory, return instead of g_error + + * test/test-service.c (path_message_func): support emitting a + signal on request + + * dbus/dbus-bus.c (init_connections_unlocked): only fill in + activation bus type if DBUS_BUS_ACTIVATION was set; default to + assuming the activation bus was the session bus so that services + started manually will still register. + (init_connections_unlocked): fix so that in OOM situation we get + the same semantics when retrying the function + + * test/test-service.c (main): change to use path registration, to + test those codepaths; register with DBUS_BUS_ACTIVATION rather + than DBUS_BUS_SESSION + +2003-10-16 Havoc Pennington + + * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS + + * Makefile.am (GCOV_DIRS): remove "test", we don't care about test + coverage of the tests + (coverage-report.txt): don't move the .da and .bbg files around + +2003-10-16 Havoc Pennington + + * bus/bus.c (struct BusContext): remove struct field I didn't mean + to put there + +2003-10-16 Havoc Pennington + + * bus/connection.c (bus_pending_reply_expired): either cancel or + execute, not both + (bus_connections_check_reply): use unlink, not remove_link, as we + don't want to free the link; fixes double free mess + + * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case + where no reply was received + + * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock): + fix a refcount leak + + * bus/signals.c (match_rule_matches): add special cases for the + bus driver, so you can match on sender/destination for it. + + * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if + DBUS_PRINT_BACKTRACE is set + + * dbus/dbus-internals.c: add pid to assertion failure messages + + * dbus/dbus-connection.c: add message type code to the debug spew + + * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want + sender=foo not service=foo + + * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the + session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use + DBUS_ACTIVATION_ADDRESS instead + + * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS, + DBUS_SYSTEM_BUS_ADDRESS if appropriate + + * bus/bus.c (bus_context_new): handle OOM copying bus type into + context struct + + * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function + (dbus_message_iter_get_object_path_array): new function (half + finished, disabled for the moment) + + * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle + DBUS_MESSAGE_TYPE_ERROR + + * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to + avoid redirecting stderr to /dev/null + (babysit): close stdin if not doing the "exit_with_session" thing + + * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover + debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not + stdout/stdin, so things don't get confused + + * bus/system.conf.in: fix to allow replies, I modified .conf + instead of .conf.in again. + +2003-10-14 David Zeuthen + + * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in + argtype to arg_type when raising unknown arg type exception. + Changed type list to reflect the changes in dbus-protocol.h so + the bindings actually work. + +2003-10-14 Havoc Pennington + + * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems + to have a bug keeping it from outputting the .da files sometimes + (string_get_string): don't append garbage nul bytes to the string. + +2003-10-15 Seth Nickell + + * python/Makefile.am: + + Include dbus_h_wrapper.h in the dist tarball. + +2003-10-14 Havoc Pennington + + * bus/bus.c (bus_context_check_security_policy): revamp this to + work more sanely with new policy-based requested reply setup + + * bus/connection.c (bus_transaction_send_from_driver): set bus + driver messages as no reply + + * bus/policy.c (bus_client_policy_check_can_receive): handle a + requested_reply attribute on allow/deny rules + + * bus/system.conf: add + + * bus/driver.c (bus_driver_handle_message): fix check for replies + sent to the bus driver, which was backward. How did this ever work + at all though? I think I'm missing something. + + * dbus/dbus-message.c (decode_header_data): require error and + method return messages to have a reply serial field to be valid + (_dbus_message_loader_queue_messages): break up this function; + validate that reply serial and plain serial are nonzero; + clean up the OOM/error handling. + (get_uint_field): don't return -1 from this + (dbus_message_create_header): fix signed/unsigned bug + + * bus/connection.c (bus_connections_expect_reply): save serial of + the incoming message, not reply serial + +2003-10-14 Havoc Pennington + + * bus/connection.c: implement pending reply tracking using + BusExpireList + + * bus/bus.c (bus_context_check_security_policy): verify that a + reply is pending in order to allow a reply to be sent. Deny + messages of unknown type. + + * bus/dbus-daemon-1.1.in: update to mention new resource limits + + * bus/bus.c (bus_context_get_max_replies_per_connection): new + (bus_context_get_reply_timeout): new + +2003-10-13 Seth Nickell + + * python/Makefile.am: + + Pass "make distcheck": remove a couple files from DIST_FILES + that weren't included in the final version. + +2003-10-12 Havoc Pennington + + Added test code that 1) starts an actual bus daemon and 2) uses + DBusGProxy; fixed bugs that were revealed by the test. Lots + more testing possible, but this is the basic framework. + + * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove + empty proxy lists from the proxy list hash + + * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a + couple of return_if_fail checks + + * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0 + to allocate, so everything is cleared to NULL as it should be. + + * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass + source as data to dbus_connection_set_timeout_functions() as the + timeout functions expected + + * test/glib/run-test.sh: add a little script to start up a message + bus and run tests using it + + * tools/dbus-launch.1: updates + + * tools/dbus-launch.c (main): add --config-file option + + * tools/dbus-launch.c (main): remove confusing else if (runprog) + that could never be reached. + + * dbus/dbus-message.c (dbus_message_new_method_return) + (dbus_message_new_error, dbus_message_new_signal): set the + no-reply-expected flag on all these. Redundant, but may + as well be consistent. + +2003-10-11 Havoc Pennington + + * test/decode-gcov.c (function_solve_graph): make broken block + graph a nonfatal error since it seems to be broken. Need to debug + this. + + * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we + can't just check type > INVALID < LAST anymore + + * dbus/dbus-message.c (dbus_message_get_signature): new function + (dbus_message_has_signature): new function + (struct DBusMessage): add signature field (right now it isn't sent + over the wire, just generated on the fly) + (dbus_message_copy): copy the signature, and init strings to + proper length to avoid some reallocs + (dbus_message_iter_init_array_iterator): return void, since it + can't fail + (dbus_message_iter_init_dict_iterator): return void since it can't fail + (_dbus_message_loader_queue_messages): add silly temporary hack to + fill in message->signature on load + + * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII + characters, so they are relatively human-readable. + +2003-10-11 Havoc Pennington + + * dbus/dbus-message.c (_dbus_message_test): add more test + coverage, but #if 0 for now since they uncover a bug + not fixed yet; I think in re_align_field_recurse() + (re_align_field_recurse): add FIXME about broken assertion + + * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage + + * bus/connection.c: share a couple code bits with expirelist.c + + * bus/expirelist.h, bus/expirelist.c: implement a generic + expire-items-after-N-seconds facility, was going to share between + expiring connections and replies, decided not to use for expiring + connections for now. + + * COPYING: include AFL 2.0 (still need to change all the file headers) + +2003-10-09 Havoc Pennington + + * configure.in: define DBUS_HAVE_GCC33_GCOV if we have + gcc 3.3. Not that we do anything about it yet. + + * bus/signals.c (bus_match_rule_parse): impose max length on the + match rule text + + * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH + +2003-10-09 Havoc Pennington + + Make matching rules theoretically work (add parser). + + * bus/bus.c (bus_context_check_security_policy): fix up to handle + the case where destination is explicitly specified as bus driver + and someone else is eavesdropping. + + * bus/policy.c (bus_client_policy_check_can_receive): fix up + definition of eavesdropping and assertion + + * tools/dbus-send.c (main): use dbus_message_type_from_string + + * bus/signals.c (bus_match_rule_parse): implement + + * dbus/dbus-message.c (dbus_message_type_from_string): new + + * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add + +2003-10-02 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from + dbus_gproxy_oneway_call + + * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) + (dbus_server_setup_with_g_main): fix to allow calling them more + than once on the same args + (dbus_bus_get_with_g_main): new function + +2003-10-02 Havoc Pennington + + * doc/dbus-tutorial.xml: write some stuff + +2003-09-29 Havoc Pennington + + * configure.in: split checks for Doxygen from XML docs, check for + xmlto + + * doc/Makefile.am: XML-ify all the docs, and add a blank + dbus-tutorial.xml + +2003-09-29 Havoc Pennington + + * Merge dbus-object-names branch. To see the entire patch + do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names, + it's huuuuge though. + To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE. + +2003-09-28 Havoc Pennington + + * HACKING: update to reflect new server + +2003-09-26 Seth Nickell + + * python/dbus.py: + * python/examples/example-signals.py: + + Start implementing some notions of signals. The API + is really terrible, but they sort of work (with the + exception of being able to filter by service, and to + transmit signals *as* a particular service). Need to + figure out how to make messages come from the service + we registered :-( + + * python/dbus_bindings.pyx.in: + + Removed duplicate message_handler callbacks. + +2003-09-25 Havoc Pennington + + * bus/session.conf.in: fix my mess + +2003-09-25 Havoc Pennington + + * bus/session.conf.in: fix security policy, reported by Seth Nickell + +2003-09-25 Seth Nickell + + * python/examples/example-service.py: + + Johan notices complete wrong code in example-service, but + completely wrong in a way that works exactly the same (!). + Johan is confused, how could this possibly work? Example + code fails to serve purpose of making things clear. + Seth fixes. + +2003-09-25 Mark McLoughlin + + * doc/dbus-specification.sgml: don't require header fields + to be 4-byte aligned and specify that fields should be + distinguished from padding by the fact that zero is not + a valid field name. + + * doc/TODO: remove re-alignment item and add item to doc + the OBJECT_PATH type. + + * dbus/dbus-message.c: + (HeaderField): rename the original member to value_offset + and introduce a name_offset member to keep track of where + the field actually begins. + (adjust_field_offsets): remove. + (append_int_field), (append_uint_field), + (append_string_field): don't align the start of the header + field to a 4-byte boundary. + (get_next_field): impl finding the next marhsalled field + after a given field. + (re_align_field_recurse): impl re-aligning a number of + already marshalled fields. + (delete_field): impl deleting a field of any type and + re-aligning any following fields. + (delete_int_or_uint_field), (delete_string_field): remove. + (set_int_field), (set_uint_field): no need to re-check + that we have the correct type for the field. + (set_string_field): ditto and impl re-aligning any + following fields. + (decode_header_data): update to take into account that + the fields aren't 4-byte aligned any more and the new + way to distinguish padding from header fields. Also, + don't exit when there is too much header padding. + (process_test_subdir): print the directory. + (_dbus_message_test): add test to make sure a following + field is re-aligned correctly after field deletion. + + * dbus/dbus-string.[ch]: + (_dbus_string_insert_bytes): rename from insert_byte and + allow the insert of multiple bytes. + (_dbus_string_test): test inserting multiple bytes. + + * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add + warning note to docs about having to re-align any + marshalled values following the string. + + * dbus/dbus-message-builder.c: + (append_string_field), (_dbus_message_data_load): + don't align the header field. + + * dbus/dbus-auth.c: (process_test_subdir): print the + directory. + + * test/break-loader.c: (randomly_add_one_byte): upd. for + insert_byte change. + + * test/data/invalid-messages/bad-header-field-alignment.message: + new test case. + + * test/data/valid-messages/unknown-header-field.message: shove + a dict in the unknown field. + +2003-09-25 Seth Nickell + + * python/dbus.py: + * python/dbus_bindings.pyx.in: + + Handle return values. + + * python/examples/example-client.py: + * python/examples/example-service.py: + + Pass back return values from the service to the client. + +2003-09-24 Seth Nickell + + * python/dbus.py: + + Connect Object methods (when you are sharing an object) up... pass + in a list of methods to be shared. Sharing all the methods just + worked out too weird. You can now create nice Services over the + DBus in Python. :-) + + * python/dbus_bindings.pyx.in: + + Keep references to user_data tuples passed into C functions so + Python doesn't garbage collect on us. + + Implement MethodReturn and Error subclasses of Message for creating + DBusMessage's of those types. + + * python/examples/example-client.py: + * python/examples/example-service.py: + + Simple example code showing both how create DBus services and objects, + and how to use them. + +2003-09-23 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement + +2003-09-23 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement + (dbus_gproxy_disconnect_signal): implement + (dbus_gproxy_manager_remove_signal_match): implement + (dbus_gproxy_manager_add_signal_match): implement + (dbus_gproxy_oneway_call): implement + +2003-09-23 Havoc Pennington + + * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject + subclass. This means dropping the transparent thread safety of the + proxy; you now need a separate proxy per-thread, or your own + locking on the proxy. Probably right anyway. + (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref + +2003-09-22 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement + +2003-09-21 Seth Nickell + + First checkin of the Python bindings. + + * python/.cvsignore: + * python/Makefile.am: + * python/dbus_bindings.pyx.in: + * python/dbus_h_wrapper.h: + + Pieces for Pyrex to operate on, building a dbus_bindings.so + python module for low-level access to the DBus APIs. + + * python/dbus.py: + + High-level Python module for accessing DBus objects. + + * configure.in: + * Makefile.am: + + Build stuff for the python bindings. + + * acinclude.m4: + + Extra macro needed for finding the Python C header files. + +2003-09-21 Havoc Pennington + + * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start + implementing the proxy manager, didn't get very far. + + * dbus/dbus-bus.c (dbus_bus_add_match): new + (dbus_bus_remove_match): new + + * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a + path_name argument; adjust the other not-yet-implemented + gproxy constructors to be what I think they should be. + +2003-09-21 Havoc Pennington + + * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE + by default for message bus connections. + + * dbus/dbus-connection.c (dbus_connection_dispatch): exit if + exit_on_disconnect flag is set and we process the disconnected + signal. + (dbus_connection_set_exit_on_disconnect): new function + +2003-09-21 Havoc Pennington + + Get matching rules mostly working in the bus; only actually + parsing the rule text remains. However, the client side of + "signal connections" hasn't been started, this patch is only the + bus side. + + * dbus/dispatch.c: fix for the matching rules changes + + * bus/driver.c (bus_driver_handle_remove_match) + (bus_driver_handle_add_match): send an ack reply from these + method calls + + * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of + arguments, reported by Seth Nickell + + * bus/config-parser.c (append_rule_from_element): support + eavesdrop=true|false attribute on policies so match rules + can be prevented from snooping on the system bus. + + * bus/dbus-daemon-1.1.in: consistently use terminology "sender" + and "destination" in attribute names; fix some docs bugs; + add eavesdrop=true|false attribute + + * bus/driver.c (bus_driver_handle_add_match) + (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch + messages + + * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get + rid of broadcast service concept, signals are just always broadcast + + * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c: + mostly implement matching rules stuff (currently only exposed as signal + connections) + +2003-09-21 Mark McLoughlin + + * doc/dbus-specification.sgml: Change the header field name + to be an enum and update the rest of the spec to reference + the fields using the conventinal name. + + * dbus/dbus-protocol.h: update to reflect the spec. + + * doc/TODO: add item to remove the 4 byte alignment requirement. + + * dbus/dbus-message.c: Remove the code to generalise the + header/body length and serial number header fields as named + header fields so we can reference field names using the + protocol values. + (append_int_field), (append_uint_field), (append_string_field): + Append the field name as a byte rather than four chars. + (delete_int_or_uint_field), (delete_string_field): reflect the + fact that the field name and typecode now occupy 4 bytes instead + of 8. + (decode_string_field), (decode_header_data): update to reflect + protocol changes and move the field specific encoding from + decode_string_field() back into decode_header_data(). + + * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string): + Add utility to aid debugging. + + * dbus/dbus-message-builder.c: + (append_string_field), (_dbus_message_data_load): Update to + reflect protocol changes; Change the FIELD_NAME directive + to HEADER_FIELD and allow it to take the field's conventional + name rather than the actual value. + + * test/data/*/*.message: Update to use HEADER_FIELD instead + of FIELD_NAME; Always align the header on an 8 byte boundary + *before* updating the header length. + +2003-09-15 Havoc Pennington + + * dbus/dbus-pending-call.c: add the get/set object data + boilerplate as for DBusConnection, etc. Use generic object data + for the notify callback. + + * glib/dbus-gparser.c (parse_node): parse child nodes + + * tools/dbus-viewer.c: more hacking on the dbus-viewer + + * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to + contain functions shared between the convenience lib and the + installed lib + + * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add + -export-symbols-regex to the GLib library + + * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock): + fix the locking in here, and add a default handler for + Introspect() that just returns sub-nodes. + +2003-09-14 Havoc Pennington + + * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo + rather than gfoo consistent + + * glib/dbus-gproxy.h: delete for now, move contents to + dbus-glib.h, because the include files don't work right since we + aren't in the dbus/ subdir. + + * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing + (dbus_gproxy_end_call): finish + (dbus_gproxy_begin_call): finish + + * glib/dbus-gmain.c (dbus_set_g_error): new + + * glib/dbus-gobject.c (handle_introspect): include information + about child nodes in the introspection + + * dbus/dbus-connection.c (dbus_connection_list_registered): new + function to help in implementation of introspection + + * dbus/dbus-object-tree.c + (_dbus_object_tree_list_registered_and_unlock): new function + +2003-09-12 Havoc Pennington + + * glib/dbus-gidl.h: add common base class for all the foo_info + types + + * tools/dbus-viewer.c: add GTK-based introspection UI thingy + similar to kdcop + + * test/Makefile.am: try test srcdir -ef . in addition to test + srcdir = ., one of them should work (yeah lame) + + * glib/Makefile.am: build the "idl" parser stuff as a convenience + library + + * glib/dbus-gparser.h: make description_load routines return + NodeInfo* not Parser* + + * Makefile.am (SUBDIRS): build test dir after all library dirs + + * configure.in: add GTK+ detection + +2003-09-07 Havoc Pennington + + * Make Doxygen contented. + +2003-09-07 Havoc Pennington + + * doc/dbus-specification.sgml: more updates + +2003-09-06 Havoc Pennington + + * doc/dbus-specification.sgml: partial updates + + * bus/dbus-daemon-1.1.in: fix the config file docs for the + zillionth time; hopefully I edited the right file this time. + + * bus/config-parser.c (append_rule_from_element): support + send_type, send_path, receive_type, receive_path + + * bus/policy.c: add message type and path to the list of things + that can be "firewalled" + +2003-09-06 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_register_fallback): add this + (dbus_connection_register_object_path): make this not handle + messages to paths below the given path + +2003-09-03 Havoc Pennington + + * test/glib/Makefile.am: add this with random glib-linked test + programs + + * glib/Makefile.am: remove the random test programs from here, + leave only the unit tests + + * glib/dbus-gobject.c (_dbus_gobject_test): add test for + uscore/javacaps conversion, and fix + (get_object_property, set_object_property): change to .NET + convention for mapping props to methods, set_FooBar/get_FooBar, + since one language has such a convention we may as well copy it. + Plus real methods in either getFooBar or get_foo_bar style won't + collide with this convention. + +2003-09-01 Havoc Pennington + + * glib/dbus-gparser.c: implement + + * glib/dbus-gobject.c: start implementing skeletons support + + * configure.in: when disabling checks/assert, also define + G_DISABLE_ASSERT and G_DISABLE_CHECKS + +2003-09-01 Havoc Pennington + + * glib/Makefile.am: rearrange a bunch of files and get "make + check" framework set up + +2003-08-31 Havoc Pennington + + * fix build with --disable-tests + +2003-08-30 Havoc Pennington + + * dbus/dbus-connection.c: purge DBusMessageHandler + + * dbus/dbus-message-handler.c: remove DBusMessageHandler, just + use callbacks everywhere + +2003-08-30 Havoc Pennington + + * test/data/valid-config-files/system.d/test.conf: change to + root for the user so warnings don't get printed + + * dbus/dbus-message.c: add dbus_message_get_path, + dbus_message_set_path + + * dbus/dbus-object-tree.c (do_test_dispatch): add test of + dispatching to a path + + * dbus/dbus-string.c (_dbus_string_validate_path): add + + * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement + (_dbus_marshal_object_path): implement + + * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field + to contain the path to the target object + (DBUS_HEADER_FIELD_SENDER_SERVICE): rename + DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service + +2003-08-30 Havoc Pennington + + * dbus/dbus-object-tree.c: write tests and fix the discovered bugs + +2003-08-29 Havoc Pennington + + * dbus/dbus-object-tree.c: modify to allow overlapping paths to be + registered + (struct DBusObjectSubtree): shrink this + a lot, since we may have a lot of them + (_dbus_object_tree_free_all_unlocked): implement + (_dbus_object_tree_dispatch_and_unlock): implement + +2003-08-29 Havoc Pennington + + * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS + +2003-08-28 Havoc Pennington + + purge DBusObjectID + + * dbus/dbus-connection.c: port to no ObjectID, create a + DBusObjectTree, rename ObjectTree to ObjectPath in public API + + * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete + everything except UnregisterFunction and MessageFunction + + * dbus/dbus-marshal.c: port away from DBusObjectID, + add DBUS_TYPE_OBJECT_PATH + + * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], + dbus/dbus-objectid.[hc]: remove these, we are moving to + path-based object IDs + +2003-08-25 Havoc Pennington + + Just noticed that dbus_message_test is hosed, I wonder when I + broke that. I thought make check was passing earlier... + + * dbus/dbus-object-tree.c: add new "object tree" to match DCOP + container tree, will replace most of dbus-object-registry + + * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99 + screwup + +2003-08-19 Havoc Pennington + + * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER + (dbus_message_is_error): fix this function + + * bus/dbus-daemon-1.1: clarify logic on when / rules + match + + * bus/policy.c (bus_client_policy_check_can_receive): fix code to + reflect clarified man page + (bus_client_policy_check_can_send): ditto + + * bus/session.conf.in: fixup + + * bus/system.conf.in: fixup + +2003-08-18 Havoc Pennington + + * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix + + * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix + dumb bug created earlier (wrong order of args to + decode_header_data()) + + * tools/dbus-send.c: port + + * tools/dbus-print-message.c (print_message): port + + * test/data/*messages: port all messages over + + * dbus/dbus-message-builder.c: support including + message type + + * bus/driver.c: port over + + * bus/dispatch.c: port over to new stuff + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): + rename disconnect signal to "Disconnected" + +2003-08-17 Havoc Pennington + + This doesn't compile yet, but syncing up so I can hack on it from + work. What are branches for if not broken code? ;-) + + * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add + DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER, + DBUS_HEADER_FIELD_ERROR_NAME + + * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use + for the interface+member pairs + (string_hash): change to use g_str_hash algorithm + (find_direct_function, find_string_function): refactor these to + share most code. + + * dbus/dbus-message.c: port all of this over to support + interface/member fields instead of name field + + * dbus/dbus-object-registry.c: port over + + * dbus/dbus-string.c (_dbus_string_validate_interface): rename + from _dbus_string_validate_name + + * bus/dbus-daemon-1.1: change file format for the + / stuff to match new message naming scheme + + * bus/policy.c: port over + + * bus/config-parser.c: parse new format + +2003-08-16 Havoc Pennington + + * dbus/dbus-object-registry.c (add_and_remove_objects): remove + broken assertion + + * glib/dbus-gproxy.c: some hacking + +2003-08-15 Havoc Pennington + + * dbus/dbus-pending-call.c (dbus_pending_call_block): implement + + * dbus/dbus-connection.c + (dbus_connection_send_with_reply_and_block): factor out internals; + change to convert any error replies to DBusError instead of + returning them as a message + +2003-08-15 Havoc Pennington + + * dbus/dbus-connection.c, + dbus/dbus-pending-call.c: Finish the pending call stuff + +2003-08-14 Havoc Pennington + + * dbus/dbus-pending-call.c: start on new object that will replace + DBusMessageHandler and ReplyHandlerData for tracking outstanding + replies + + * dbus/dbus-gproxy.c: start on proxy object used to communicate + with remote interfaces + + * dbus/dbus-gidl.c: do the boring boilerplate in here + +2003-08-12 Havoc Pennington + + * bus/dispatch.c (bus_dispatch): make this return proper + DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD + + * dbus/dbus-errors.c (dbus_set_error): use + _dbus_string_append_printf_valist + + * dbus/dbus-string.c (_dbus_string_append_printf_valist) + (_dbus_string_append_printf): new + + * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to + UNKNOWN_METHOD + + * dbus/dbus-connection.c (dbus_connection_dispatch): handle + DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a + message is unhandled. + +2003-08-11 Havoc Pennington + + * bus/test.c (client_disconnect_handler): change to return + HANDLED (would have been REMOVE_MESSAGE) + + * dbus/dbus-object.h (enum DBusHandlerResult): rename to + HANDLED/NOT_YET_HANDLED instead of + REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it + should be used. + +2003-08-10 Havoc Pennington + + * tools/dbus-send.c (main): add --type argument, for now + supporting only method_call and signal types. + + * tools/dbus-print-message.c: print message type + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): + init connection->objects + + * doc/dbus-specification.sgml: fix sgml + + * bus/*.c: port over to object-instance API changes + + * test/test-service.c: ditto + + * dbus/dbus-message.c (dbus_message_create_header): allow #NULL + name, we will have to fix up the rest of the code to also handle + this + (dbus_message_new): generic message-creation call + (set_string_field): allow appending name field + +2003-08-06 Havoc Pennington + + * dbus/dbus-object-registry.c: implement signal connection + and dispatch + + * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new + + * dbus/dbus-internals.c (_dbus_memdup): new function + +2003-08-02 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_get_no_reply) + (dbus_message_set_no_reply): add these and remove + set_is_error/get_is_error + + * dbus/dbus-protocol.h, doc/dbus-specification.sgml: + remove the ERROR flag, since there's now an ERROR type + +2003-08-01 Havoc Pennington + + * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock): + implement + + * dbus/dbus-message.c (dbus_message_get_type): new function + + * doc/dbus-specification.sgml: add "type" byte to messages + +2003-08-01 Havoc Pennington + + * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce + a message type enum to distinguish kinds of message + (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message + that need not be replied to + +2003-08-01 Havoc Pennington + + * dbus/dbus-marshal.c: adapt to DBusObjectID changes + (unpack_8_octets): fix no-64-bit-int bug + + * dbus/dbus-object-registry.c (validate_id): validate the + connection ID bits, not just the instance ID. + + * dbus/dbus-connection.c (_dbus_connection_init_id): initialize + the connection-global 33 bits of the object ID + + * dbus/dbus-object-registry.c (info_from_entry): fill in + object ID in the new way + + * dbus/dbus-objectid.h: rather than high/low bits, specifically + define server/client/instance bits. + +2003-07-30 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_register_object): fix + build + +2003-07-13 Havoc Pennington + + * dbus/dbus-object.h (struct DBusObjectVTable): add padding + fields to DBusObjectVTable and DBusObjectInfo + +2003-07-12 Havoc Pennington + + * dbus/dbus-object-registry.c: implement unit test, + fix bugs discovered in process + + * dbus/dbus-connection.c: remove handler_table and + register_handler(), add DBusObjectRegistry usage + + * dbus/dbus-objectid.c (dbus_object_id_is_null) + (dbus_object_id_set_null): new functions + +2003-07-08 Havoc Pennington + + * dbus/dbus-object.c: implement some of this + + * dbus/dbus-object-registry.c + (_dbus_object_registry_add_and_unlock): fill in the object_id out + param + (_dbus_object_registry_new): handle OOM + +2003-07-08 Havoc Pennington + + * dbus/dbus-object.h: sketch out an API for registering objects + with a connection, that allows us to use as little as 24 bytes + per object and lets application code represent an object in + any conceivable way. + + * dbus/dbus-object-registry.c: implement the hard bits of the + DBusConnection aspect of object API. Not yet wired up. + +2003-07-06 Havoc Pennington + + * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function + (_dbus_marshal_object_id): new + (_dbus_demarshal_object_id): new + (_dbus_marshal_get_arg_end_pos): support object ID type, and + consolidate identical switch cases. Don't conditionalize handling + of DBUS_TYPE_UINT64, need to handle the type always. + (_dbus_marshal_validate_arg): consolidate identical cases, and + handle DBUS_TYPE_OBJECT_ID + + * dbus/dbus-objectid.c: new file with DBusObjectID data type. + + * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID + +2003-09-28 Havoc Pennington + + * real 0.13 release + +2003-09-28 Havoc Pennington + + * doc/Makefile.am (dbus-specification.html): testing a funky hack + to work with Debian db2html + +2003-09-28 Havoc Pennington + + * configure.in: 0.13 + + * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of + stylesheet-images for benefit of Debian + + Change back to using filesystem-linked sockets for the system + bus, so only root can create the default system bus address. + + * bus/system.conf.in: change to use + DBUS_SYSTEM_BUS_DEFAULT_ADDRESS + + * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define + from here. + + * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS + here, and AC_DEFINE DBUS_SYSTEM_PATH + +2003-08-09 Anders Carlsson + + * doc/TODO: + * doc/busconfig.dtd: + Add busconfig DTD. + +2003-08-09 Anders Carlsson + + * doc/dbus-specification.sgml: + Add activation reply values. + +2003-08-05 Havoc Pennington + + * configure.in: 0.12 + +2003-08-05 Anders Carlsson + + * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref), + (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch), + (add_watch), (remove_watch), (create_source): + Refcount fds, fixes some reentrancy issues. + +2003-07-30 Havoc Pennington + + * dbus/dbus-bus.c (init_connections_unlocked): fix default system + bus address to be abstract if we have abstract sockets + + * NEWS: update + +2003-07-28 Havoc Pennington + + * bus/messagebus.in: fix to avoid processname/servicename + confusion, from Michael Kearey + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965 + +2003-07-23 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_iter_get_named): + fix from Andy Hanton to remove broken "+1" + +2003-07-16 Havoc Pennington + + * tools/dbus-launch.c (babysit): close stdout/stderr in the + babysitter process, as suggested by Thomas Leonard, so + an "eval `dbus-launch --exit-with-session`" will actually + return + +2003-07-16 Havoc Pennington + + * configure.in: print out EXPANDED_* variables in the summary at + the end; clean up the code that computes EXPANDED_ variables and + get the ones using exec_prefix right. Should make things work + when you build without --prefix + +2003-06-29 Havoc Pennington + + * mono/Test.cs (class Test): fire up a main loop and run it + + * mono/DBus.cs (DBus): don't g_thread_init since it can only be + done once, the app has to do it + +2003-06-26 Havoc Pennington + + * mono/Connection.cs: set up connection with the glib main loop + +2003-07-01 Havoc Pennington + + * doc/dbus-specification.sgml: clarify the format of a type code, + change suggested by Jim Blandy + +2003-06-29 Miloslav Trmac + + * doc/Makefile.am: + * tools/Makefile.am: Don't assume srcdir == builddir. + + * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking + the allocated block. + (_dbus_memory_test): New function. + * dbus/dbus-test.h: Add _dbus_memory_test (). + * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it. + + * dbus/dbus-message.c (decode_header_data): Use %.4s instead + of %c%c%c%c. + (dbus_message_new): Remove obsolete @todo. + + * dbus/dbus-marshal.c (_dbus_marshal_set_int64) + (_dbus_marshal_set_uint64): Fix comment. + + * dbus/dbus-message.c (append_int_field, append_uint_field): Don't + hardcode FIELD_REPLY_SERIAL. + + * dbus/dbus-mainloop.c (_dbus_loop_remove_watch) + (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p + + * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS + and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used + +2003-06-24 Havoc Pennington + + * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0) + +2003-06-23 Anders Carlsson + + * configure.in: + * gcj/.cvsignore: + * gcj/Hello.java: + * gcj/Makefile.am: + * gcj/TestMessage.java: (TestMessage), (TestMessage.main): + * gcj/org/.cvsignore: + * gcj/org/Makefile.am: + * gcj/org/freedesktop/.cvsignore: + * gcj/org/freedesktop/Makefile.am: + * gcj/org/freedesktop/dbus/.cvsignore: + * gcj/org/freedesktop/dbus/Makefile.am: + * gcj/org/freedesktop/dbus/Message.java: (Message), + (Message.Message): + * gcj/org/freedesktop/dbus/natMessage.cc: + Fix the build system. + +2003-06-22 Havoc Pennington + + * mono/Connection.cs: add more bindings + + * dbus/dbus-threads.c (dbus_threads_init): allow calling this + more than once. + +2003-06-22 Havoc Pennington + + * mono/Connection.cs, mono/DBus.cs, mono/Error.cs: + Start wrapping more stuff. + +2003-06-22 Havoc Pennington + + * mono/Message.cs: implement Message.Wrap() that ensures we only + have a single C# wrapper per DBusMessage, assuming it works which + it probably doesn't. + + * dbus/dbus-message.c (dbus_message_allocate_data_slot): new + (dbus_message_free_data_slot): new + (dbus_message_set_data): new + (dbus_message_get_data): new + +2003-06-22 Havoc Pennington + + * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref) + (_dbus_data_slot_allocator_alloc): rework these to keep a + reference count on each slot and automatically manage a global + slot ID variable passed in by address + + * bus/bus.c: convert to new dataslot API + + * dbus/dbus-bus.c: convert to new dataslot API + + * dbus/dbus-connection.c: convert to new dataslot API + + * dbus/dbus-server.c: convert to new dataslot API + + * glib/dbus-gmain.c: ditto + + * bus/test.c: ditto + + * bus/connection.c: ditto + +2003-06-22 Anders Carlsson + + * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL + after the gcj checks so that the correct configuration tags + will be added to libtool. + + * dbus-glib-1.pc.in: No need to specify any includes since + dbus-1.pc.in has those. + +2003-06-22 Havoc Pennington + + * mono/*, gcj/*, configure.in, Makefile.am: + Check in makefiles and subdirs for mono and gcj bindings. + Neither binding actually exists, just trying to get through + all the build and other boring bits. + +2003-06-21 Philip Blundell + + * tools/dbus-monitor.1: Updated. + + * tools/dbus-send.1: Likewise. + +2003-06-20 Anders Carlsson + + * dbus/dbus-transport-unix.c (unix_handle_watch): Check + for hangup and error after checking read so we won't discard + pending data if both hangup and read are set. + +2003-06-19 Philip Blundell + + * tools/dbus-print-message.c (print_message): Handle BOOLEAN. + + * tools/dbus-send.c: Accept both --system and --session. + + * tools/dbus-monitor.c: Same here. + +2003-06-19 Anders Carlsson + + * glib/dbus-glib.h: Fix so that dbus-glib.h can be used + from C++ (Patch by Miloslav Trmac). + +2003-06-15 Joe Shaw + + * configure.in: Check for socklen_t. + + * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined. + + * test/test-segfault.c: Add #include + + * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since + dbus-launch needs it. + +2003-06-09 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use + SUN_LEN, it breaks abstract socket usage + + * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at + starts of lines. + +2003-06-04 Havoc Pennington + + * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets + using unix:abstract=/foo, and when listening in a tmpdir + i.e. unix:tmpdir=/tmp, always use abstract sockets if we can. + + * dbus/dbus-transport.c (_dbus_transport_open): support + unix:abstract=/foo + + * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): + support abstract sockets + + * dbus/dbus-transport-unix.c + (_dbus_transport_new_for_domain_socket): support abstract sockets + + * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract" + toggle as an argument, implement abstract namespace support + (_dbus_listen_unix_socket): ditto + + * configure.in: add --enable-abstract-sockets and implement + a configure check for autodetection of the right value. + +2003-06-01 Havoc Pennington + + * tools/dbus-cleanup-sockets.c: add utility to clean up sockets + in /tmp (though on Linux this will end up being useless, + when we add abstract namespace support) + + * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to + subst'ing it + +2003-05-28 Colin Walters + + * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/). + +2003-05-18 Anders Carlsson + + * dbus/dbus-message.c (dbus_message_new): Remove @todo. + +2003-05-17 Colin Walters + + * tools/dbus-send.c: Don't exit with an error code if --help was + passed. Default to using the session bus instead of the system + one. + + * tools/dbus-launch.c: Ditto. + + * tools/dbus-monitor.c: Ditto. + + * tools/dbus-send.1: Update with new arguments. + + * tools/dbus-launch.c: Emit code to export variables. New + arguments -s and -c to specify shell syntax, and a bit of code to + autodetect syntax. Also, allow specifying a program to run. + + * tools/dbus-launch.1: Update with new arguments. + + * tools/dbus-send.1: Ditto. + + * tools/dbus-monitor.1: Ditto. + +2003-05-17 Havoc Pennington + + * bus/config-parser.c (merge_included): merge in policies from + child configuration file. + + * bus/policy.c (bus_policy_merge): function to merge two policies + together + +2003-05-16 Havoc Pennington + + * dbus/dbus-connection.c: disable verbose lock spew + + * tools/dbus-send.c: add --print-reply command line option + + * tools/dbus-print-message.h (print_message): new util function + shared by dbus-send and dbus-monitor + + * tools/dbus-monitor.c (handler_func): exit on disconnect + + * dbus/dbus-transport-unix.c (do_reading): if the transport is + disconnected, don't try to use the read_watch + + * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL + so we can find this bug more easily + +2003-05-16 Havoc Pennington + + * bus/policy.c (free_rule_list_func): avoid a crash when passed + NULL as DBusHashTable is annoyingly likely to do. + +2003-05-16 Colin Walters + + * tools/dbus-monitor.c: Add --session argument and usage() + function. + + * tools/dbus-monitor.1: Update with new --session arg. + + * bus/Makefile.am (install-data-hook): Create + $(libdir)/dbus-1.0/services so that the session bus is happy. + +2003-05-15 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work + on non-x86. ifdef's are evil. + +2003-05-15 Havoc Pennington + + * configure.in: 0.11 + + * NEWS: update + + * bus/Makefile.am (initddir): apparently we are supposed to put + init scripts in /etc/rc.d/init.d not /etc/init.d + + * bus/Makefile.am: remove the "you must --enable-tests to make + check" as it broke distcheck + + * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d + +2003-05-13 James Willcox + + * configure.in: + * bus/activation.c: (bus_activation_service_created), + (bus_activation_activate_service): + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_send_service_lost), + (bus_driver_send_service_acquired), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services): + * bus/session.conf.in: + * dbus/dbus-bus.c: (dbus_bus_acquire_service), + (dbus_bus_service_exists), (dbus_bus_activate_service): + * dbus/dbus-bus.h: + + Add some convenience API which lets you activate a service, and did a + bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args() + and dbus_message_get_args() + +2003-05-11 Havoc Pennington + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid + calling _dbus_marshal_validate_arg() for every byte in a byte + array, etc. + + * dbus/dbus-message-handler.c: use atomic reference counting to + reduce number of locks slightly; the global lock in here sucks + + * dbus/dbus-connection.c + (_dbus_connection_update_dispatch_status_and_unlock): variant of + update_dispatch_status that can be called with lock held; then use + in a couple places to reduce locking/unlocking + (dbus_connection_send): hold the lock over the whole function + instead of acquiring it twice. + + * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM + + * bus/connection.c (bus_connections_setup_connection): fix access + to already-freed memory. + + * dbus/dbus-connection.c: keep a little cache of linked list + nodes, to avoid using the global linked list alloc lock in the + normal send-message case. Instead we just use the connection lock + that we already have to take. + + * dbus/dbus-list.c (_dbus_list_find_last): new function + + * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): + change to use a struct for the atomic type; fix docs, + they return value before increment, not after increment. + + * dbus/dbus-string.c (_dbus_string_append_4_aligned) + (_dbus_string_append_8_aligned): new functions to try to + microoptimize this operation. + (reallocate_for_length): break this out of set_length(), to + improve profile info, and also so we can consider inlining the + set_length() part. + + * dbus/dbus-message.c (dbus_message_new_empty_header): init data + strings with some preallocation, cuts down on our calls to realloc + a fair bit. Though if we can get the "move entire string to empty + string" optimization below to kick in here, it would be better. + + * dbus/dbus-string.c (_dbus_string_move): just call + _dbus_string_move_len + (_dbus_string_move_len): add a special case for moving + an entire string into an empty string; we can just + swap the string data instead of doing any reallocs. + (_dbus_string_init_preallocated): new function + +2003-05-11 Havoc Pennington + + Write a "test-profile" that does echo client-server with threads; + profile reveals lock contention, memcpy/realloc of buffers, and + UTF-8 validation as hot spots. 20% of lock contention eliminated + with dbus_atomic_inc/dec implementation on x86. Much remaining + contention is global mempool locks for GList and DBusList. + + * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add + x86 implementation + + * dbus/dbus-connection.c (struct DBusConnection): use + dbus_atomic_t for the reference count + + * dbus/dbus-message.c (struct DBusMessage): declare + dbus_atomic_t values as volatile + + * configure.in: code to detect ability to use atomic integer + operations in assembly, from GLib patch + + * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every + time, tired of it being wrong in threads and forked processes + + * glib/test-profile.c: a little program to bounce messages back + and forth between threads and eat CPU + + * dbus/dbus-connection.c: add debug spew macros for debugging + thread locks; include config.h at top; fix deadlock in + dbus_connection_flush() + +2003-05-08 Havoc Pennington + + * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov + data from getting written, and there wasn't a good reason to + use _exit really. + + * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count + dbus_verbose lines in test coverage + (main): add list of functions sorted by # of untested blocks + to the coverage report + + * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS + + * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage + + * dbus/dbus-message-handler.c (_dbus_message_handler_test): + extend test coverage + + * test/data/auth/cancel.auth-script: test canceling an + authentication + + * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they + aren't used. in CVS history if we end up needing them. + +2003-05-04 Havoc Pennington + + * dbus/dbus-message-handler.c (_dbus_message_handler_test): add + unit test + + * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this + function, which assumed length was in # of strings, not bytes + + * dbus/dbus-message.c (_dbus_message_test): add tests for some + missing coverage + + * dbus/dbus-connection.c + (_dbus_connection_queue_received_message): disable function for + now, we are only using it in test mode + + * dbus/dbus-message.c (_dbus_message_loader_queue_messages): + remove a mistaken FIXME + +2003-05-04 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_preallocate_send): + unlock mutex on successful return, patch from Anders Gustafsson + +2003-05-04 Havoc Pennington + + * dbus-glib-1.pc.in (Requires): fix dependencies, from + Anders Gustafsson + +2003-05-04 Havoc Pennington + + * tools/dbus-launch.c: implement + + * bus/main.c (main), bus/bus.c (bus_context_new): + implement --print-pid and --fork + +2003-05-03 Havoc Pennington + + * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in + the address had no value, and add to test suite. Fix and + regression test from Miloslav Trmac + +2003-05-03 Havoc Pennington + + * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a + watch is invalid when handled + + * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add + dbus-launch utility to launch the bus from a shell script. Didn't + actually implement dbus-launch yet, it's just a placeholder still. + +2003-05-03 Havoc Pennington + + * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the + daemon; also documents daemon config file, so replaces + doc/config-file.txt. Corrected some stuff from config-file.txt in + the process of moving it. + +2003-05-03 Havoc Pennington + + * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1: + add some man pages + +2003-05-03 Colin Walters + + * dbus/dbus-sysdeps.c (fill_user_info): Test against + DBUS_UID_UNSET to determine whether to do a uid lookup or not. + + * Makefile.am: Update to use new .pc versioning scheme. + +2003-05-02 Havoc Pennington + + * bus/system.conf.in: allow send/receive to/from message bus + service + +2003-04-30 Havoc Pennington + + * configure.in: print a note when building with unit tests and + without assertions + +2003-04-30 Havoc Pennington + + * Makefile.am: add a check-local that complains if you didn't + configure with --enable-tests + +2003-04-29 Havoc Pennington + + * glib/dbus-gmain.c: docs cleanups + + * dbus/dbus-types.h: add docs on int64 types + + * dbus/dbus-memory.c: fix docs to avoid putting private API in + public API docs section + +2003-04-29 Havoc Pennington + + * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from + dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the + parallel install API version, not with the D-BUS package version. + + * HACKING: move some of README over here + + * README: updates, and document API/ABI policy + + * configure.in: reindentation + +2003-04-29 Havoc Pennington + + * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE + to use this library" to be sure people have the right + expectations. + +2003-04-28 Havoc Pennington + + * configure.in: add --enable-docs which by default is auto yes if + doxygen and db2html found, no otherwise; but can be forced on/off + + * doc/Makefile.am: conditionalize whether to build docs on + --enable-docs + +2003-04-28 Havoc Pennington + + * configure.in: 0.10 + + * NEWS: update + + * bus/system.conf.in: add system.d + + * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when + username was provided but not uid + + * bus/config-parser.c (struct BusConfigParser): keep track of + whether the parser is toplevel or was included; change some + of the error handling if it's included. + +2003-04-27 Havoc Pennington + + Unbreak my code... + + * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): + report correct status if we finish processing authentication + inside this function. + + * bus/activation.c (try_send_activation_failure): use + bus_transaction_send_error_reply + + * bus/connection.c (bus_connection_get_groups): return an error + explaining the problem + + * bus/bus.c (bus_context_check_security_policy): implement + restriction here that inactive connections can only send the + hello message. Also, allow bus driver to send anything to + any recipient. + + * bus/connection.c (bus_connection_complete): create the + BusClientPolicy here instead of on-demand. + (bus_connection_get_policy): don't return an error + + * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL + sender field in message being replied to + + * bus/bus.c (bus_context_check_security_policy): fix silly typo + causing it to return FALSE always + + * bus/policy.c (bus_client_policy_check_can_send): fix bug where + we checked sender rather than destination + +2003-04-25 Havoc Pennington + + test suite is slightly hosed at the moment, will fix soon + + * bus/connection.c (bus_connections_expire_incomplete): fix to + properly disable the timeout when required + (bus_connection_set_name): check whether we can remove incomplete + connections timeout after we complete each connection. + + * dbus/dbus-mainloop.c (check_timeout): fix this up a bit, + probably still broken. + + * bus/services.c (bus_registry_acquire_service): implement max + number of services owned, and honor allow/deny rules on which + services a connection can own. + + * bus/connection.c (bus_connection_get_policy): report errors here + + * bus/activation.c: implement limit on number of pending + activations + +2003-04-25 Havoc Pennington + + * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug + where we used >= 0 instead of != DBUS_UID_UNSET. + +2003-04-25 Havoc Pennington + + * glib/dbus-gmain.c (remove_watch): fix for a crash when watches + were toggled without add/remove, fix from Anders Gustafsson + +2003-04-24 Havoc Pennington + + * test/data/valid-config-files/basic.conf: add tags to + this test + + * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement + tag in configuration file. + +2003-04-24 Havoc Pennington + + * bus/dispatch.c: somehow missed some name_is + + * dbus/dbus-timeout.c (_dbus_timeout_set_enabled) + (_dbus_timeout_set_interval): new + + * bus/connection.c (bus_connections_setup_connection): record time + when each connection is first set up, and expire them after the + auth timeout passes. + +2003-04-24 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_name_is): rename + (dbus_message_service_is): rename + (dbus_message_sender_is): rename + (dbus_message_get_service): rename + +2003-04-24 Havoc Pennington + + * configure.in: add --enable-checks + + * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments + + * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix + to use thread locks. + (_dbus_connection_handler_destroyed_locked): move some private + functions into proper docs group + + * dbus/dbus-internals.h: add _dbus_return_if_fail, + _dbus_return_val_if_fail + + Throughout: use dbus_return_if_fail + +2003-04-23 James Willcox + + * glib/dbus-glib.h: + * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source), + (dbus_connection_setup_with_g_main), + (dbus_server_setup_with_g_main): + * glib/test-dbus-glib.c: (main): + * glib/test-thread-client.c: (main): + * glib/test-thread-server.c: (new_connection_callback), (main): + * tools/dbus-monitor.c: (main): + + Added a GMainContext argument to dbus_connection_setup_with_g_main() + and dbus_server_setup_with_g_main(). + +2003-04-20 Havoc Pennington + + * doc/dbus-specification.sgml: document the restrictions on + message and service names + +2003-04-22 Havoc Pennington + + * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer + support, and do some code cleanups to share more code and + speed up array marshal/demarshal. + + * dbus-1.0.pc.in (Cflags): put libdir include file in cflags + + * configure.in: generate dbus-arch-deps.h + + * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add + 64-bit typecodes + +2003-04-22 Havoc Pennington + + * test/data/valid-messages/opposite-endian.message: fix test + to use proper type for rply field + + * test/data/invalid-messages: add tests for below validation + + * dbus/dbus-message.c (decode_header_data): validate field types, + and validate that named fields are valid names + (decode_name_field): consider messages in the + org.freedesktop.Local. namespace to be invalid. + + * dbus/dbus-string.c (_dbus_string_validate_name): new + +2003-04-19 Havoc Pennington + + * bus/driver.c (bus_driver_handle_hello): check limits and + return an error if they are exceeded. + + * bus/connection.c: maintain separate lists of active and inactive + connections, and a count of each. Maintain count of completed + connections per user. Implement code to check connection limits. + + * dbus/dbus-list.c (_dbus_list_unlink): export + + * bus/bus.c (bus_context_check_security_policy): enforce a maximum + number of bytes in the message queue for a connection + +2003-04-18 Havoc Pennington + + * dbus/dbus-auth.c (record_mechanisms): memleak fixes + + * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some + memleaks + + * dbus/dbus-keyring.c (add_new_key): fix a memleak, and + on realloc be sure to update the pointer in the keyring + + * dbus/dbus-string.c (_dbus_string_zero): compensate for align + offset to avoid writing to unallocated memory + + * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to + try the next mechanism, so we properly handle OOM + + * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free + on OOM. + (_dbus_keyring_new): fix OOM bug + (_dbus_keyring_new_homedir): always set error; impose a maximum + number of keys we'll load from the file, mostly to speed up the + test suite and make its OOM checks more useful, but also for + general sanity. + + * dbus/dbus-auth.c (process_error_server): reject authentication + if we get an error from the client + (process_cancel): on cancel, send REJECTED, per the spec + (process_error_client): send CANCEL if we get an error from the + server. + +2003-04-18 Havoc Pennington + + * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose + debug spew + + * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM + handling problem + + * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine + about DBUS_TEST_HOMEDIR once + + * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in + the environment + + * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1 + config file so we test the right thing + + Throughout: assorted docs improvements + +2003-04-18 Havoc Pennington + + * glib/dbus-gmain.c: adapt to watch changes + + * bus/bus.c, bus/activation.c, etc.: adjust to watch changes + + * dbus/dbus-server.h: remove dbus_server_handle_watch + + * dbus/dbus-connection.h: remove dbus_connection_handle_watch + + * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work + like DBusTimeout, so we don't need dbus_connection_handle_watch + etc. + +2003-04-17 Havoc Pennington + + * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd + database usage so it all goes via the DBusUserDatabase cache. + +2003-04-17 Havoc Pennington + + * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if + there was an OOM watch we skipped, we always return TRUE so we + iterate again to have a look at it again. Fixes test suite hang. + Code rearrangement also lets us lose some memset and only iterate + over callbacks once. + + * bus/driver.c (bus_driver_handle_message): sense of test for + reply was backward + +2003-04-16 Havoc Pennington + + * doc/dbus-specification.sgml: make spec say serials are unsigned + + * dbus/dbus-message.h: change message serials to unsigned + + * dbus/dbus-connection.c: adapt to message serials being unsigned + +2003-04-15 Havoc Pennington + + * bus/bus.c: create and keep around a shared DBusUserDatabase + object. + + * bus/connection.c (bus_connection_get_groups): don't cache + groups for user in the connection object, since user database + object now does that. + +2003-04-16 Havoc Pennington + + * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a + list of size counters + (_dbus_message_loader_putback_message_link): put back a popped link + + * dbus/dbus-connection.c + (dbus_connection_set_max_live_messages_size): rename + max_received_size + (dbus_connection_get_outgoing_size): get size of outgoing + queue + (_dbus_connection_set_connection_counter): remove this cruft + +2003-04-14 Havoc Pennington + + * dbus/dbus-userdb.c: user database abstraction, mostly to get + caching, but at some point we might want to be able to use a + different database. + + * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses + SHA1 conf file to test the sha1 auth mechanism, since the regular + test always uses EXTERNAL when available. + + * configure.in, + test/data/valid-config-files/debug-allow-all-sha1.conf.in: + add conf file that requires use of sha1 auth + +2003-04-13 Havoc Pennington + + * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs + from Philip Blundell to send messages and monitor them. + +2003-04-13 Havoc Pennington + + * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting + callbacks + + * test/data/valid-config-files/debug-allow-all.conf.in: allow all + users + + * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status): + fix to only recover unused bytes if we're already authenticated + (_dbus_transport_get_is_authenticated): fix to still mark us + authenticated if there are unused bytes. + + * bus/dispatch.c: implement security policy checking + + * bus/connection.c (bus_transaction_send_from_driver): new + + * bus/bus.c (bus_context_check_security_policy): new + + * bus/dispatch.c (send_service_nonexistent_error): delete this, + now we just set the DBusError and it gets converted to an error + reply. + + * bus/connection.c (allow_user_function): enable code using actual + data from the config file + + * bus/policy.c (list_allows_user): handle wildcard rules for + user/group connection perms + +2003-04-13 Havoc Pennington + + * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules + + * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function + + * bus/policy.c (bus_policy_append_mandatory_rule) + (bus_policy_append_default_rule, bus_policy_append_user_rule) + (bus_policy_append_group_rule): new functions + +2003-04-12 Havoc Pennington + + * bus/config-parser.c (bus_config_parser_new): fix a memleak + + * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for + the pid/gid/uid, just for paranoia. + + * test/break-loader.c (randomly_do_n_things): find a byte + containing a type code, and randomly change it to a different + type code. + +2003-04-12 Havoc Pennington + + * bus/policy.h: change BusPolicy to be the thing from the config + file, and rename old BusPolicy to BusClientPolicy + + * bus/bus.c, bus/connection.c, bus/config-parser.c: change to + match change in how policy works + + * dbus/dbus-internals.h: mark assert_not_reached as + __attribute((noreturn))__ + +2003-04-11 Havoc Pennington + + * doc/dbus-specification.sgml: fix a spot with the wrong name for + the broadcast service. Use boolean return for ServiceExists. + +2003-04-11 Havoc Pennington + + * configure.in: add another directory to look for qt in. + +2003-04-11 Havoc Pennington + + * AUTHORS: add Colin Walters + +2003-04-11 Havoc Pennington + + * NEWS: update + + * configure.in: 0.9 + +2003-04-11 Havoc Pennington + + * bus/messagebus.in: remove pid file when stopping the + message bus, since the bus won't have privileges to remove it + itself. + +2003-04-11 Havoc Pennington + + * bus/bus.c (bus_context_new): move credentials change after + creating pidfile + +2003-04-11 Havoc Pennington + + * test/decode-gcov.c: add "below average functions" to the + coverage report, and change how some of the code works. + + * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's + not in the coverage stats. + + * test/test-service.c (main): use _dbus_verbose not fprintf in a + couple places so running the test suite doesn't result in megaspam. + +2003-04-11 Havoc Pennington + + * bus/dispatch.c (check_existent_service_activation): accept a no + memory error in a place we didn't before + + * bus/test.c (bus_test_run_everything): remove hacky "do it twice + in case the first one failed," since the test suite is less + broken now. + +2003-04-10 Havoc Pennington + + * bus/dispatch.c (check_segfault_service_activation): add test + for launching an executable that just crashes. + + * test/test-segfault.c (main): try setting coredumpsize to 0 so we + don't leave a million cores. We'll see how portable this is. + +2003-04-10 Havoc Pennington + + * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all + the possible parent failures before we fork, so that we don't + fail to create a babysitter after creating the child. + + * bus/activation.c (bus_activation_activate_service): kill child + if we don't successfully complete the activation. + +2003-04-10 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_flush): don't spin on + the connection if it's disconnected + + * bus/activation.c (bus_activation_service_created): use new + transaction features to roll back removal of pending activation if + we don't successfully create the service after all. Don't remove + pending activation if the function fails. + + * dbus/dbus-list.c (_dbus_list_insert_before_link) + (_dbus_list_insert_after_link): new code to facilitate + services.c fixes + + * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated): + new functionality, so we can preallocate the ability to insert + into a hash table. + + * bus/connection.c (bus_transaction_add_cancel_hook): new function + allowing us to put custom hooks in a transaction to be used for + cancelling said transaction + + * doc/dbus-specification.sgml: add some discussion of secondary + service owners, and disallow zero-length service names + + * bus/services.c (bus_registry_acquire_service): new function, + splits out part of bus_driver_handle_acquire_service() and fixes + a bug where we didn't remove the service doing the acquiring + from the secondary queue if we failed to remove the current owner + from the front of the queue. + +2003-04-10 Alexander Larsson + + * doc/dbus-specification.sgml: + s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/ + +2003-04-10 Alexander Larsson + + * bus/.cvsignore: + * glib/.cvsignore: + * test/.cvsignore: + Added files to cvsignore + + * dbus/dbus-message.h: + * dbus/dbus-message.c: (dbus_message_iter_get_named): + Make get_named() take two out argument and return a boolean. + (dbus_message_iter_get_args_valist): + Update usage of get_named(). + (dbus_message_iter_append_byte): + Fix typo + (dbus_message_iter_append_named) + Fix typo + (message_iter_test), (check_message_handling_type), (_dbus_message_test): + More tests. + +2003-04-10 Alexander Larsson + + * dbus/dbus-marshal.[ch]: + Add array_type_pos argument to _dbus_marshal_validate_arg. + Let you pass a NULL end_pos to _dbus_marshal_validate_type. + + * dbus/dbus-message.[ch]: + Multi-dimensional arrays have full type specification in the + outermost array. Iter code re-arranged to handle this. + Added some more iter tests. + + * doc/dbus-specification.sgml: + Add me to authors. + Remove old FIXME. + Update new array encoding description. + Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description. + + * test/data/invalid-messages/array-with-mixed-types.message: + * test/data/valid-messages/array-of-array-of-uint32.message: + Change to the new array format. + + * test/data/invalid-messages/too-short-dict.message: + Fix bug in test. + + * test/data/valid-messages/recursive-types.message: + Fix up and extend test. + +2003-04-10 Havoc Pennington + + * bus/dispatch.c: lots of fixes + + * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export + (_dbus_loop_iterate): remove old "quit if no callbacks" code, + that was crack, broke the test service. + + * dbus/dbus-transport.c (_dbus_transport_open): fix error + handling to avoid piling up errors if we get a failure on the + first address. + + * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include + pid in assertion failures. + + * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up + to some fixed size of file descriptor array. Don't return TRUE + anytime a timeout exists, that led to lots of busy loop silliness + in the tests. + +2003-04-09 Havoc Pennington + + * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought + I'd checked this in earlier but hadn't. + +2003-04-09 Havoc Pennington + + * bus/dispatch.c (bus_dispatch_test): get a bit further through + the activation test (man this is getting old!) + +2003-04-09 Havoc Pennington + + * test/test-utils.c: use dispatch status function to fix this up + + * bus/connection.c (connection_watch_callback): don't dispatch + from here + (connection_timeout_callback): don't dispatch from here + (bus_connections_setup_connection): set the dispatch status function + (bus_connection_disconnected): unset it + + * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function + used to add a connection to be dispatched + (_dbus_loop_iterate): do the dispatching at the end of each + iteration + + * dbus/dbus-connection.c + (dbus_connection_set_dispatch_status_function): new function + allowing us to fix up main loop usage + (_dbus_connection_last_unref): free all the various function + user data + (dbus_connection_dispatch): call the DispatchStatusFunction + whenever this function returns + (dbus_connection_handle_watch): call DispatchStatusFunction + (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction + (reply_handler_timeout): call DispatchStatusFunction + (dbus_connection_flush): call DispatchStatusFunction + +2003-04-09 Havoc Pennington + + * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and + a memory leak + + * bus/dispatch.c (check_service_activated): fix bug in test + + * dbus/dbus-mainloop.c (check_timeout): fix this up + + * dbus/dbus-internals.c (_dbus_verbose_real): include PID in + verbose output so we can sort out output from different processes, + e.g. in the activation case. + +2003-04-08 Colin Walters + + * bus/bus.c (struct BusContext) [pidfile]: New member, to store + the pid file. + (bus_context_new): Set it. + (bus_context_unref): Use it to delete the pid file. + +2003-04-08 Havoc Pennington + + * test/data/invalid-messages/array-with-mixed-types.message: + regression test that fails for the moment + + * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder + tests for convenience + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow + array of nil, it broke things. + + * test/data/invalid-messages/array-of-nil.message: regression test + + * test/data/valid-messages/array-of-array-of-uint32.message: + happened to write this so added it to suite + +2003-04-08 Havoc Pennington + + * bus/driver.c (bus_driver_handle_acquire_service): init + retval/reply before checking name + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a + recursion depth argument + + * dbus/dbus-message.h (struct DBusMessageIter): put some padding + in the public struct for future extension + + * dbus/dbus-message-builder.c (_dbus_message_data_load): fix + typo + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose + message + + * doc/dbus-specification.sgml: fix typo + +2003-04-08 Alexander Larsson + + Implemented recursive types, named types and new-style iters + + * bus/driver.c: + * glib/test-thread-client.c: (thread_func): + * glib/test-thread-server.c: (handle_test_message): + * test/test-service.c: (handle_echo): + Update to new api + + * dbus/Makefile.am: + * dbus/dbus-dict.c: + * dbus/dbus-dict.h: + * dbus/dbus.h + Remove DBusDict + + * dbus/dbus-internals.c: (_dbus_type_to_string): + Update for new types. + + * dbus/dbus-marshal.[ch]: + Implement recursive types and the new marshalling format. + Remove hardcoded dict marshalling. + Marshal named types. + + * dbus/dbus-message-builder.c: + Add BYTE_ARRAY. + Remove references to old types + + * dbus/dbus-message.[ch]: + New non-refcounted iter API that supports recursive iters. + Use iters for appending, including support for recursive + iters. + Add byte and named type support. + Update everything to new marshalling formats. + Add tests for new API. + + * dbus/dbus-protocol.h: + Remove old array types. + Add types: BYTE, ARRAY, DICT, NAMED + + * dbus/dbus-string.c: + * dbus/dbus-sysdeps.c: + Make parse_double locale safe. + + * dbus/dbus-test-main.c: + Call setlocale. + + * dbus/dbus-test.c: + Kill dict test + + * doc/dbus-specification.sgml: + Update spec + + * test/data/incomplete-messages/missing-body.message: + * test/data/invalid-messages/bad-boolean.message: + * test/data/invalid-messages/bad-boolean-array.message: + * test/data/invalid-messages/boolean-array-length-too-long.message-raw: + * test/data/invalid-messages/boolean-has-no-value.message-raw: + * test/data/invalid-messages/too-short-dict.message: + * test/data/valid-messages/dict-simple.message: + * test/data/valid-messages/dict.message: + * test/data/valid-messages/emptiness.message: + * test/data/valid-messages/lots-of-arguments.message: + * test/data/valid-messages/no-padding.message: + * test/data/valid-messages/recursive-types.message: + Add missing NAME fields + Fix up dicts & arrays + + * test/data/invalid-messages/dict-with-nil-value.message: + Removed, this is not invalid anymore. + + * test/data/valid-messages/recursive-types.message: + Add new test for deeply recursive types. + +2003-04-07 Havoc Pennington + + * bus/driver.c (bus_driver_handle_acquire_service): return an + error if you try to acquire a service that starts with ':' + +2003-04-07 Havoc Pennington + + * doc/dbus-specification.sgml: require that base service names + start with ':' and that the base service is created/deleted + as first and last things a connection does on the bus + + * bus/dispatch.c (check_existent_service_activation): lots more + work on the activation test; it doesn't fully pass yet... + + * test/test-service.c (main): fix so we don't memleak the + connection to the message bus + (filter_func): accept a message asking us to exit + +2003-04-06 Havoc Pennington + + * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h, + from Colin Walters + + * configure.in: fixes to Qt detection from Colin Walters + + * doc/Makefile.am: Only remove generated docbook dirs if they + exist, from Colin Walters + + * dbus/dbus-bus.c: change how we set well-known connections to + NULL, so that it works if a single connection is stored in + two well-known array slots. + + * test/Makefile.am: remove a lot of stuff that isn't immediately + useful, it's in CVS history if we want it. + + * test/test-service.c: use dbus-mainloop instead of that + watch.[hc] crack + +2003-04-06 Havoc Pennington + + * dbus/Makefile.am: split lists of sources into stuff that goes in + the library, util functions that go in the lib and are also used + elsewhere, and util functions that are used in tests/daemon but + don't go in the lib. + + * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc] + here so it can be used in test binaries also + +2003-04-06 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile + here in the parent process, so we can return an error if it + fails. Also, move some of the code into the child so the parent + is less hosed if we fail midway through. + + * bus/bus.c (bus_context_new): move pidfile detection further up + in the function, before we start overwriting sockets and such. + + * bus/messagebus.in: adjust this a bit, not sure if it will work. + + * configure.in: add --with-system-pid-file and --with-system-socket + +2003-04-06 Colin Walters + + * configure.in (DBUS_SYSTEM_PID_FILE): New variable. + + * bus/system.conf.in: Declare a pidfile. + + * bus/bus.c (bus_context_new): Test for an existing pid file, and + create one (if appropriate). + + * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New. + (struct BusConfigParser) [pidfile]: New. + (element_type_to_name, merge_included, start_busconfig_child) + (bus_config_parser_end_element, bus_config_parser_content): Handle it. + (bus_config_parser_unref): Free it. + (bus_config_parser_get_pidfile): New function. + + * bus/config-parser.h (_dbus_write_pid_file): Prototype. + + * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error. + + * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function. + + * dbus/dbus-sysdeps.h: Prototype it. + +2003-04-06 Havoc Pennington + + * bus/bus.c (bus_context_new): print the address in here, rather + than in main(), because we need to do it before forking the daemon + + * bus/dispatch.c (send_service_nonexistent_error): set the sender + on the service nonexistent error + + * bus/driver.c (bus_driver_handle_acquire_service): set the + sender on the AcquireService reply + + * test/data/valid-config-files/debug-allow-all.conf.in: Make test + server also listen on a UNIX socket so services can connect to it. + +2003-04-06 Havoc Pennington + + * dbus/dbus-threads.c: Redo how the fake debug mutexes are done + so it detects deadlocks and also we actually init threads when + debugging. + +2003-04-06 Havoc Pennington + + * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket): + save the domain socket name, and unlink it when we disconnect the + server. Means that at least when we exit normally, we won't leave + a bunch of junk in /tmp + + * dbus/dbus-transport-unix.c + (_dbus_transport_new_for_domain_socket): code cleanup (nicer + memory management). (I was making a real change here but then + didn't) + +2003-04-06 Havoc Pennington + + * bus/bus.c (bus_context_new): fix wrong handling of + server_data_slot_unref() in the error case. + + * dbus/dbus-internals.h (_dbus_assert): change so it passes + "(condition) != 0" to _dbus_real_assert so that + "_dbus_assert (pointer)" doesn't cause a warning + + * bus/main.c (main): accept --print-address option to print out + the message bus address + + * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this + + * dbus/dbus-transport.c (_dbus_transport_open): special error for + "tmpdir" option to unix: address on client side + + * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option + to unix: address + + * configure.in (TEST_SOCKET_DIR): locate a temporary directory + we can use to create sockets in the test suite. + + * bus/main.c (signal_handler): on SIGTERM, exit the daemon + cleanly. To be used for testing. + + * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler() + + * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + handle trying to call this when there's no servers active + +2003-04-05 Havoc Pennington + + * NEWS: update + + * configure.in: 0.8 + +2003-04-05 Havoc Pennington + + * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't + crash on startup. Need to get "try starting the daemon" + in the test suite I guess. ;-) + + * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that + tracked the number of open connections; it's better done in + application-specific code as you want it to span all servers etc. + +2003-04-05 Havoc Pennington + + * bus/Makefile.am (install-data-hook): add missing DESTDIR, + patch from Colin Walters + +2003-04-05 Havoc Pennington + + * doc/config-file.txt (Elements): fix docs of to reflect + reality; in fact multiple mechanisms are allowed. + + * dbus/dbus-internals.c (_dbus_real_assert) + (_dbus_real_assert_not_reached): move guts of _dbus_assert() and + _dbus_assert_not_reached() into functions, so that they don't show + up in basic block counts for test coverage, and don't use up as + much disk space. Does mean slower execution speed though, so + assumes --disable-asserts is the normal production case. + +2003-04-05 Havoc Pennington + + * test/Makefile.am (dist-hook): also dist *.in files + + * NEWS: update + + * configure.in: 0.7 + +2003-04-05 Havoc Pennington + + * dbus/dbus-string.c: docs warning + + * dbus/dbus-spawn.c: missing docs + + * dbus/dbus-memory.c (struct ShutdownClosure): missing docs + +2003-04-05 Havoc Pennington + + * bus/loop.c (bus_loop_iterate): fix the timeout code, using + magic from GLib + + * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid + to -1 once we've reaped the babysitter + (_dbus_babysitter_handle_watch): do as much work as we can, not + just one go of it + + * bus/activation.c: add code using DBusBabysitter so that we + handle it when a service fails to start up properly. + (bus_activation_service_created): don't remove the activation + entries as we go, just let them get removed when we free the pending + activation. Unref reply messages after sending them. + +2003-04-05 Havoc Pennington + + * test/decode-gcov.c (main): print per-directory stats in the report + + * Makefile.am (coverage-report.txt): don't include test/* in gcov stats + +2003-04-05 Havoc Pennington + + * Makefile.am (coverage-report.txt): add target "coverage-report.txt" + + * test/decode-gcov.c: hack up a little program to suck data + out of gcov files. Yes this is sort of silly. + + * configure.in: define something in config.h and do an + AM_CONDITIONAL when gcov is enabled + +2003-04-04 Havoc Pennington + + * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to + return a "babysitter" object that is used to monitor the status of + the spawned process and reap it when required. + + * test/test-segfault.c, test/test-exit.c, + test/test-sleep-forever.c: binaries that do various lame things, + used in the test suite. + + * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string() + +2003-04-03 Havoc Pennington + + * dbus/dbus-spawn.c: Move dbus-spawn into a separate file + in preparation for modifying it, dbus-sysdeps is getting + a bit unmanageable. + +2003-04-03 Havoc Pennington + + * bus/loop.h, bus/loop.c: make the mainloop an object so we can + have multiple ones + + * bus/*.[hc]: adapt to mainloop change + +2003-04-03 Havoc Pennington + + * bus/activation.c (load_directory): fix up memleaks + (bus_activation_entry_free): free the entry + + * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if + we get one from the message bus; fix memleaks. + + * dbus/dbus-message.c (dbus_set_error_from_message): new function + +2003-04-03 Havoc Pennington + + * bus/config-parser.c (bus_config_parser_unref): free + list of mechanisms, bug discovered by test suite enhancements + (putting system.conf and session.conf into suite) + + * test/Makefile.am, test/test-service.c: add placeholder for a + test service that we'll activate as part of test suite. Doesn't + do anything yet. + + * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by + setting NULL value, and use system malloc not dbus_malloc() + when we have unavoidable memleakage. + + * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0 + didn't work, and support DBUS_BUS_ACTIVATION. + + * bus/activation.c (child_setup): pass our well-known bus type to + the child + + * bus/config-parser.c: support to specify well-known type + + * doc/dbus-specification.sgml: document the env variables to + locate well-known buses and find service activator + +2003-04-02 Havoc Pennington + + * test/Makefile.am (all-local): add a rule to copy tests to + builddir, so we can have generated tests. Use this to remove the + silly hack for testing system.conf and session.conf. Will use this + shortly to generate .service files pointing to test binaries. + +2003-04-02 Havoc Pennington + + * dbus/dbus-string.c (set_length): fix a bug - we allocated max of + current alloc and needed new length, not max of the doubled + allocation and needed new length. Also, when building tests, + don't do the double-allocation stuff, just realloc every time. + +2003-04-02 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames + in error messages + (_dbus_string_get_dirname): new + (_dbus_sysdeps_test): new + (_dbus_directory_open): include dirnames in error messages + + * bus/config-parser.c: interpret and and + relative to config file location if the given + filename is not absolute. + + * dbus/dbus-string.c (_dbus_string_find_byte_backward): new + +2003-04-02 Havoc Pennington + + * bus/connection.c (bus_transaction_send_error_reply): set sender + service for the error, and unref the reply on success + + * bus/activation.c: convert to use BusTransaction so OOM can be + handled correctly + (bus_activation_service_created): set sender of the message + +2003-04-01 Havoc Pennington + + * bus/config-parser.c, bus/bus.c: implement and + (at least mostly) + + * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID + first, then the user ID + +2003-04-01 Havoc Pennington + + * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new + function + + * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new + + * dbus/dbus-internals.c (_dbus_dup_string_array): new function + + * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the + socket 0777, and unlink any existing socket. + + * bus/bus.c (bus_context_new): change our UID/GID and fork if + the configuration file so specifies; set up auth mechanism + restrictions + + * bus/config-parser.c (bus_config_parser_content): add support + for option and fill in code for + + * bus/system.conf.in: add to default configuration, + and limit auth mechanisms to EXTERNAL + + * doc/config-file.txt (Elements): add + + * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function + (_dbus_change_identity): new function + +2003-03-31 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket) + (_dbus_listen_unix_socket): fix off-by-one error in null + termination spotted by Nalin + +2003-03-31 Havoc Pennington + + * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting + DBUS_TEST_HOMEDIR when tests are enabled, so we can test without + having a real home directory available. + +2003-03-31 Havoc Pennington + + * bus/Makefile.am (install-data-hook): create /var/run/dbus + + * bus/messagebus.in: add init script for Red Hat /etc/init.d + + * configure.in: add support for specifying a style of init script + to install + +2003-03-31 Havoc Pennington + + Fix some annoying DBusString API and fix all affected code. + + * dbus/dbus-string.c (_dbus_string_init): get rid of annoying + max_length argument + (_dbus_string_get_data): change to return string instead of using + an out param + (_dbus_string_get_const_data): ditto + (_dbus_string_get_data_len): ditto + (_dbus_string_get_const_data_len): ditto + +2003-03-31 Havoc Pennington + + * bus/main.c (main): fix up the command line arguments to be nicer + +2003-03-31 Havoc Pennington + + * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to + define DBUS_SYSTEM_BUS_PATH as we want to compile in the same + final location that lands in the config file + + * bus/config-loader-expat.c (bus_config_load): fix type of + XML_Parser variable + + * doc/TODO: remove TODO item for dbus_bus_get() + + * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock + +2003-03-31 Havoc Pennington + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket) + (_dbus_transport_new_for_tcp_socket): these didn't need the "server" + argument since they are always client side + + * dbus/dbus-server.c (dbus_server_get_address): new function + + * bus/main.c (main): take the configuration file as an argument. + + * test/data/valid-config-files/debug-allow-all.conf: new file to + use with dispatch.c tests for example + + * bus/test-main.c (main): require test data dir + + * bus/bus.c (bus_context_new): change this to take a + configuration file name as argument + + * doc/config-file.txt (Elements): add + + * bus/system.conf, bus/session.conf: new files + + * dbus/dbus-bus.c (dbus_bus_get): look for system bus on + well-known socket if none set + + * configure.in: create system.conf and session.conf + +2003-03-30 Havoc Pennington + + * bus/config-parser.c: hacking + + * dbus/dbus-memory.c: don't use DBusList for the list of stuff + to shut down, since it could cause weirdness with the DBusList + lock + + * dbus/dbus-list.c (_dbus_list_test): add tests for the + link-oriented stack routines + (alloc_link): free the mempool if the first alloc from it fails + + * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue + + * dbus/dbus-string.c (UNICODE_VALID): sync new version of this + from GLib + (_dbus_string_skip_white): new + + * doc/config-file.txt (Elements): add + +2003-03-28 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_copy_data_len) + (_dbus_string_copy_data): new functions + +2003-03-28 Anders Carlsson + + * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get): + * dbus/dbus-bus.h: + Add dbus_bus_get. + + * dbus/dbus-memory.c: + Fix a doc comment. + +2003-03-28 Havoc Pennington + + * bus/test.c (bus_test_flush_bus): remove the sleep from here, + I think it may have just been superstition. Not sure. + + * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM + failures that were not being handled. + + * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling + + * dbus/dbus-memory.c: add ability to set number of mallocs in a + row that will fail on out-of-memory. + + * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience + function for testing out-of-memory handling. + + * bus/config-loader-expat.c (memsuite): don't wrap the dbus + allocation functions, they do map exactly to the expat ones. + +2003-03-27 Havoc Pennington + + * bus/config-loader-libxml.c (bus_config_load): add another error + check + +2003-03-26 Anders Carlsson + + * doc/TODO: + Add note about automatic service activation. + + * doc/dbus-specification.sgml: + Rename the specification and clarify a few things. + +2003-03-26 Anders Carlsson + + * Doxyfile.in: + * dbus/dbus-address.c: + * dbus/dbus-dict.c: + * dbus/dbus-marshal.c: + * dbus/dbus-server-debug-pipe.c: + * dbus/dbus-transport-unix.c: + Fix documentation warnings. + +2003-03-26 Havoc Pennington + + * bus/test-main.c, dbus/dbus-test.c (main): check memleaks + after every test so it's quick and easy to see which leaked, and + so we test multiple dbus_shutdown() calls + + * configure.in: change configure.in XML stuff to also support + expat + + * config-loader-libxml.c: some hacking + + * config-loader-expat.c: some hacking + + * config-parser.c: some hacking, plus tests + +2003-03-25 Havoc Pennington + + * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR + + * configure.in: add --with-xml option to specify XML library, + right now only libxml is supported. + + * bus/config-loader-libxml.c, config-parser.c: sync some minor + nonworking code between home and work, still just stubs + +2003-03-24 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this + file + + * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow + NULL argument for "message" if the error is a well-known one, + fill in a generic message in this case. + + * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in + favor of DBusError + + * bus/test.c (bus_test_flush_bus): add + + * bus/policy.c (bus_policy_test): test code stub + +2003-03-24 Havoc Pennington + + * bus/connection.c (bus_connections_setup_connection): set up + the "can this user connect" function, but it always returns + TRUE until we have a config file parser so we can have a config + file that allows connections. + +2003-03-23 Havoc Pennington + + * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with + DBUS_BUILD_TESTS, actually alloc/free a block of memory for + the mutex, so we can check for proper memory management + and OOM handling. + + * dbus/dbus-dataslot.c: remove the mutex from + DBusDataSlotAllocator and lock it manually when using it, + to simplify fitting it into the global slots framework. + + * dbus/dbus-threads.c (init_static_locks): rework how we're + handling global locks so they are easily shut down. + + * bus/policy.c (bus_policy_append_rule): fix + + * bus/test-main.c (main): check for memleaks + + * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make + test suite check for memleaks + + * dbus/dbus-memory.c: add support in test mode for tracking + number of outstanding blocks + +2003-03-23 Havoc Pennington + + * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny + policies code + + * dbus/dbus-hash.h: add ULONG hash keys + + * dbus/dbus-sysdeps.c (_dbus_get_groups): new + (_dbus_get_group_id): new function + +2003-03-20 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_set_unix_user_function): + new function + (dbus_connection_get_unix_user): new function + +2003-03-20 Havoc Pennington + + * bus/connection.c (bus_connection_send_oom_error): assert that + message has a sender + (connection_execute_transaction): ditto + (bus_connection_preallocate_oom_error): fix to set the sender, and + set recipient to the destination service, not the bus driver + + * bus/policy.c: hacking + + * dbus/dbus-message.c (dbus_message_service_is): new function + (dbus_message_sender_is): new + +2003-03-19 Havoc Pennington + + * bus/policy.c: start sketching code for policy restrictions on + what connections can do. + +2003-03-18 Havoc Pennington + + * doc/TODO: some notes on high-level todo items. Little nitpick + stuff is all in @todo, so no need to add it here. + + * doc/config-file.txt: some notes on how config file might look + +2003-03-18 Anders Carlsson + + * configure.in: 0.6 + + * NEWS: Update. + +2003-03-17 Havoc Pennington + + * dbus/dbus-internals.h: add gcc attributes so that + our printf-style functions warn on bad arguments to + format + + * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf + format bug + + * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix + printf format bug + +2003-03-17 Havoc Pennington + + * bus/test-main.c (main): make it print something as it runs + so make check doesn't look stuck + + * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove + from CVS, now obsolete + +2003-03-17 Anders Carlsson + + * bus/dispatch.c: (bus_dispatch): + Refetch the service name since it may have been reallocated + when dbus_message_set_sender was called. + + * dbus/dbus-sysdeps.c: (_dbus_accept): + Add address and address length variables and use them to stop + valgrind from complaining. + +2003-03-17 Havoc Pennington + + All tests pass, no memleaks, no valgrind complaints. + + * bus/test.c: refcount handler_slot + + * bus/connection.c (bus_connections_new): refcount + connection_data_slot + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused + bytes so that auth scripts pass. + + * bus/dispatch.c: init message_handler_slot so it gets allocated + properly + + * bus/dispatch.c (message_handler_slot_ref): fix memleak + + * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new): + dealloc server_pipe_hash when no longer used for benefit of + leak checking + + * dbus/dbus-auth.c (process_command): memleak fix + + * bus/dispatch.c (check_hello_message): memleak fix + +2003-03-16 Havoc Pennington + + * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot + +2003-03-17 Anders Carlsson + + * bus/activation.c (bus_activation_activate_service): Append + the pending activation entry to the list of pending activations. + +2003-03-16 Havoc Pennington + + * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of + connections + + * dbus/dbus-address.c (create_entry): fix OOM handling when + failing to alloc entry->method + +2003-03-16 Havoc Pennington + + * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc + the watch + + * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): + add some missing dbus_set_result + + * bus/dispatch.c (bus_dispatch_add_connection): handle failure to + alloc the DBusMessageHandler + + * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref + the transport here, since we call this from the finalizer; it + resulted in a double-finalize. + + * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug + where we tried to use transport->connection that was NULL, + happened when transport was disconnected early on due to OOM + + * bus/*.c: adapt to handle OOM for watches/timeouts + + * dbus/dbus-transport-unix.c: port to handle OOM during + watch handling + + * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a + reference to unused bytes instead of a copy + + * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for + out of memory + + * dbus/dbus-connection.c (dbus_connection_handle_watch): return + FALSE on OOM + + * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out + of memory + +2003-03-16 Anders Carlsson + + * doc/dbus-specification.sgml: + Document reply message for ActivateService. + +2003-03-16 Anders Carlsson + + * bus/activation.c: (bus_pending_activation_entry_free), + (bus_pending_activation_free), (bus_activation_new), + (bus_activation_unref), (bus_activation_service_created), + (bus_activation_activate_service): + * bus/activation.h: + * bus/bus.c: (bus_context_new): + * bus/desktop-file.c: (new_section): + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_handle_activate_service): + * bus/services.c: (bus_registry_new), (bus_registry_ensure): + * bus/services.h: + * dbus/dbus-connection.c: + (dbus_connection_send_with_reply_and_block): + * dbus/dbus-message.c: (dbus_message_append_args_valist): + * dbus/dbus-protocol.h: + Make activation work better. Now pending activations will be queued + and the daemon won't try to activate services that are already registered. + +2003-03-16 Havoc Pennington + + * dbus/dbus-bus.c (ensure_bus_data): handle failure to set + connection data + + * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support + DBUS_MALLOC_BACKTRACES to print trace when failing an alloc + +2003-03-16 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak + this. always run the test suite before commit... + + * bus/*: adapt to DBusConnection API changes + + * glib/dbus-gmain.c: adapt to DBusConnection API changes, + requires renaming stuff to avoid dbus_connection_dispatch name + conflict. + + * dbus/dbus-transport.c (_dbus_transport_queue_messages): new + function + + * dbus/dbus-message.c (_dbus_message_loader_queue_messages): + separate from _dbus_message_loader_return_buffer() + + * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove + this, because it's now always broken to use; the number of + messages in queue vs. the number still buffered by the message + loader is undefined/meaningless. Should use + dbus_connection_get_dispatch_state(). + (dbus_connection_dispatch): rename from + dbus_connection_dispatch_message + +2003-03-16 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real + implementation + +2003-03-16 Anders Carlsson + + * dbus/dbus-connection.c: + (dbus_connection_send_with_reply_and_block): + Decrease connection->n_incoming when removing an entry + from the list. + * dbus/dbus-dict.c: (dbus_dict_entry_free), + (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), + (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), + (dbus_dict_set_byte_array), (dbus_dict_set_string_array), + (dbus_dict_get_boolean_array), (dbus_dict_get_double_array), + (dbus_dict_get_byte_array): + Handle NULL arrays and strings. Also add support for byte arrays. + + * dbus/dbus-marshal.c: (_dbus_marshal_byte_array), + (_dbus_marshal_dict), (_dbus_demarshal_byte_array), + (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), + (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), + (_dbus_demarshal_dict), (demarshal_and_validate_len), + (_dbus_marshal_validate_arg), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + Add support for marshalling and demarshalling empty arrays and strings. + + * dbus/dbus-message.c: (dbus_message_append_args_valist), + (dbus_message_append_string_array), + (dbus_message_iter_get_boolean), + (dbus_message_iter_get_boolean_array), + (dbus_message_iter_get_int32_array), + (dbus_message_iter_get_uint32_array), + (dbus_message_iter_get_double_array), + (dbus_message_iter_get_byte_array), + (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict), + (check_message_handling): + Add support for getting empty arrays and dicts. + + * dbus/dbus-string.c: (_dbus_string_validate_utf8): + Don't do any validation at all for now, that's better than just checking + for ASCII. + + * test/data/valid-messages/emptiness.message: + New test message with lots of empty arrays. + +2003-03-16 Havoc Pennington + + * dbus/dbus-connection.c + (_dbus_connection_queue_received_message_link): new function that + can't fail due to OOM + + * dbus/dbus-message.c (_dbus_message_loader_pop_message_link): + new function pops a message together with a list link + containing it. + + * dbus/dbus-transport-unix.c (queue_messages): use new link-based + message queuing functions to avoid needing to alloc memory + +2003-03-16 Havoc Pennington + + Oops - test code was only testing failure of around 30 of the + mallocs in the test path, but it turns out there are 500+ + mallocs. I believe this was due to misguided linking setup such + that there was one copy of dbus_malloc etc. in the daemon and one + in the shared lib, and only daemon mallocs were tested. In any + case, the test case now tests all 500+ mallocs, and doesn't pass + yet, though there are lots of fixes in this patch. + + * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix + this so that it doesn't need to allocate memory, since it + has no way of indicating failure due to OOM (and would be + annoying if it did). + + * dbus/dbus-list.c (_dbus_list_pop_first_link): new function + + * bus/Makefile.am: rearrange to create two self-contained + libraries, to avoid having libraries with overlapping symbols. + that was resulting in weirdness, e.g. I'm pretty sure there + were two copies of global static variables. + + * dbus/dbus-internals.c: move the malloc debug stuff to + dbus-memory.c + + * dbus/dbus-list.c (free_link): free list mempool if it becomes + empty. + + * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function + + * dbus/dbus-address.c (dbus_parse_address): free list nodes + on failure. + + * bus/dispatch.c (bus_dispatch_add_connection): free + message_handler_slot when no longer using it, so + memory leak checkers are happy for the test suite. + + * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name + + * bus/bus.c (new_connection_callback): disconnect in here if + bus_connections_setup_connection fails. + + * bus/connection.c (bus_connections_unref): fix to free the + connections + (bus_connections_setup_connection): if this fails, don't + disconnect the connection, just be sure there are no side + effects. + + * dbus/dbus-string.c (undo_alignment): unbreak this + + * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were + leaking + (_dbus_auth_new): fix the order in which we free strings + on OOM failure + + * bus/connection.c (bus_connection_disconnected): fix to + not send ServiceDeleted multiple times in case of memory + allocation failure + + * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to + get the base service name + (dbus_bus_register_client): don't return base service name, + instead store it on the DBusConnection and have an accessor + function for it. + (dbus_bus_register_client): rename dbus_bus_register() + + * bus/dispatch.c (check_hello_message): verify that other + connections on the bus also got the correct results, not + just the one sending hello + +2003-03-15 Havoc Pennington + + Make it pass the Hello handling test including all OOM codepaths. + Now to do other messages... + + * bus/services.c (bus_service_remove_owner): fix crash when + removing owner from an empty list of owners + (bus_registry_ensure): don't leave service in the list of + a connection's owned services if we fail to put the service + in the hash table. + + * bus/connection.c (bus_connection_preallocate_oom_error): set + error flag on the OOM error. + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): + handle _dbus_transport_set_connection failure + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify + to create watches up front and simply enable/disable them as + needed. + (unix_connection_set): this can now fail on OOM + + * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept + of enabling/disabling a watch or timeout. + + * bus/loop.c (bus_loop_iterate): don't touch disabled + watches/timeouts + + * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts + +2003-03-15 Havoc Pennington + + * bus/dispatch.c (bus_dispatch_test): OK, now finally actually + write useful test code, after all that futzing around ;-) + + Test does not yet pass because we can't handle OOM in + _dbus_transport_messages_pending (basically, + dbus_connection_preallocate_send() does not prealloc the write + watch). To fix this, I think we need to add new stuff to + set_watch_functions, namely a SetEnabled function so we can alloc + the watch earlier, then enable it later. + + * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move + dbus-memory.c to the convenience lib + + * bus/test.c: rename some static functions to keep them clearly + distinct from stuff in connection.c. Handle client disconnection. + +2003-03-14 Havoc Pennington + + * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe + transport, tests more of the real codepath. Set up clients + with bus_setup_debug_client. + + * bus/test.c (bus_setup_debug_client): function to set up debug + "clients" on the main loop + + * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe + support + + * dbus/dbus-server.c (dbus_server_listen): add debug-pipe + server type + + * dbus/dbus-server-debug.c: support a debug server based on pipes + + * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function + (_dbus_close): new function + + * configure.in: check for socketpair + +2003-03-14 Havoc Pennington + + * dbus/dbus-memory.c: add a "detect buffer overwrites on free" + cheesy hack + + * dbus/dbus-transport-debug.c: rework this a good bit to be + less complicated. hopefully still works. + + * dbus/dbus-server-debug.c (handle_new_client): remove timeout + manually + + * glib/dbus-gmain.c (timeout_handler): don't remove timeout + after running it + + * dbus/dbus-message.c (dbus_message_copy): rename from + dbus_message_new_from_message, fix it up to copy + all the message fields, add test case + + * bus/dispatch.c (bus_dispatch_test): add some more test code, + not quite passing yet + +2003-03-14 Havoc Pennington + + * bus/loop.c (bus_loop_iterate): add this so we can "run loop + until no work remains" in test code. (the large diff here + is just code movement, no actual changes) + + * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to + 1, no point waiting around for test code. + (_dbus_server_debug_accept_transport): unref the timeout + after adding it (right?) + + * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto + +2003-03-13 Havoc Pennington + + * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle + out of memory + + * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out + of memory + + * dbus/dbus-connection.h: Make AddWatchFunction and + AddTimeoutFunction return a bool so they can fail on out-of-memory + + * bus/bus.c (bus_context_new): set up timeout handlers + + * bus/connection.c (bus_connections_setup_connection): set up + timeout handlers + + * glib/dbus-gmain.c: adapt to the fact that set_functions stuff + can fail + + * bus/bus.c (bus_context_new): adapt to changes + + * bus/connection.c: adapt to changes + + * test/watch.c: adapt to DBusWatch changes + + * bus/dispatch.c (bus_dispatch_test): started adding this but + didn't finish + +2003-03-14 Anders Carlsson + + * bus/dispatch.c (send_service_nonexistent_error): Fix typo. + +2003-03-13 Havoc Pennington + + * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c: + set up a test framework as for the library + +2003-03-12 Havoc Pennington + + Throughout: purge global variables, introduce BusActivation, + BusConnections, BusRegistry, etc. objects instead. + + * bus/bus.h, bus/bus.c: introduce BusContext as a global + message bus object + + * test/Makefile.am (TEST_BINARIES): disable bus-test for now, + going to redo this a bit differently I think + +2003-03-12 Havoc Pennington + + Mega-patch that gets the message bus daemon initially handling + out-of-memory. Work still needed. Also lots of random + moving stuff to DBusError instead of ResultCode. + + * dbus/dbus-list.c (_dbus_list_length_is_one): new function + + * dbus/dbus-connection.c + (dbus_connection_send_with_reply_and_block): use DBusError + + * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not + DBusResultCode + + * dbus/dbus-connection.c (dbus_connection_send): drop the result + code here, as the only failure possible is OOM. + + * bus/connection.c (bus_connection_disconnect): + rename bus_connection_disconnected as it's a notification only + + * bus/driver.c (bus_driver_handle_acquire_service): don't free + "name" on get_args failure, should be done by get_args; + don't disconnect client for bad args, just return an error. + (bus_driver_handle_service_exists): ditto + + * bus/services.c (bus_services_list): NULL-terminate returned array + + * bus/driver.c (bus_driver_send_service_lost) + (bus_driver_send_service_acquired): send messages from driver to a + specific client to the client's unique name, not to the broadcast + service. + + * dbus/dbus-message.c (decode_header_data): reject messages that + contain no name field + (_dbus_message_get_client_serial): rename to + dbus_message_get_serial and make public + (_dbus_message_set_serial): rename from set_client_serial + (_dbus_message_set_reply_serial): make public + (_dbus_message_get_reply_serial): make public + + * bus/connection.c (bus_connection_foreach): allow stopping + iteration by returning FALSE from foreach function. + + * dbus/dbus-connection.c (dbus_connection_send_preallocated) + (dbus_connection_free_preallocated_send) + (dbus_connection_preallocate_send): new API for sending a message + without possibility of malloc failure. + (dbus_connection_send_message): rename to just + dbus_connection_send (and same for whole function family) + + * dbus/dbus-errors.c (dbus_error_free): make this reinit the error + + * dbus/dbus-sysdeps.c (_dbus_exit): new function + + * bus/activation.c: handle/return errors + + * dbus/dbus-errors.h: add more DBUS_ERROR #define + + * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents) + (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode + (_dbus_result_from_errno): move to this file + +2003-03-10 Anders Carlsson + + * dbus/dbus-marshal.c: + (_dbus_marshal_set_string): + Take a length argument so we can marshal the correct string + length. + + (_dbus_marshal_dict), (_dbus_demarshal_dict), + (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg), + (_dbus_marshal_test): + * dbus/dbus-marshal.h: + Add support for marshalling and demarshalling dicts. + + * dbus/dbus-message-builder.c: (_dbus_message_data_load): + Add support for TYPE DICT. + + * dbus/dbus-message.c: (set_string_field): + Adjust header padding. + + (dbus_message_append_args_valist), (dbus_message_append_dict), + (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type), + (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer), + (check_message_handling), (check_have_valid_message): + * dbus/dbus-message.h: + Add functions for setting and getting dicts. + + * dbus/dbus-protocol.h: + Add DBUS_TYPE_DICT. + + * dbus/dbus.h: + Add dbus-dict.h + + * doc/dbus-specification.sgml: + Add information about how dicts are marshalled. + + * test/data/invalid-messages/dict-with-nil-value.message: + * test/data/invalid-messages/too-short-dict.message: + * test/data/valid-messages/dict-simple.message: + * test/data/valid-messages/dict.message: + Add sample messages containing dicts. + +2003-03-08 Anders Carlsson + + * dbus/dbus-dict.h: Add DBUS_END_DECLS. + +2003-03-07 Anders Carlsson + + * dbus/Makefile.am: + * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), + (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean), + (dbus_dict_set_int32), (dbus_dict_set_uint32), + (dbus_dict_set_double), (dbus_dict_set_string), + (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array), + (dbus_dict_set_uint32_array), (dbus_dict_set_double_array), + (dbus_dict_set_string_array), (_dbus_dict_test): + * dbus/dbus-dict.h: + Fix according to comments from Havoc. + +2003-03-06 Michael Meeks + + * configure.in: if we don't have kde-config, disable have_qt. + +2003-03-07 Anders Carlsson + + * dbus/Makefile.am: + Add dbus-dict.[ch] + + * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new), + (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains), + (dbus_dict_remove), (dbus_dict_get_value_type), + (dbus_dict_get_keys), (dbus_dict_put_boolean), + (dbus_dict_put_int32), (dbus_dict_put_uint32), + (dbus_dict_put_double), (dbus_dict_put_string), + (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array), + (dbus_dict_put_uint32_array), (dbus_dict_put_double_array), + (dbus_dict_put_string_array), (dbus_dict_get_boolean), + (dbus_dict_get_int32), (dbus_dict_get_uint32), + (dbus_dict_get_double), (dbus_dict_get_string), + (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array), + (dbus_dict_get_uint32_array), (dbus_dict_get_double_array), + (dbus_dict_get_string_array), (_dbus_dict_test): + * dbus/dbus-dict.h: + Add DBusDict implementation + + * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests): + * dbus/dbus-test.h: + Add _dbus_dict_test + +2003-03-04 Havoc Pennington + + * test/data/auth/*: adapt to changes + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): add + USERID_BASE64 and change USERNAME_BASE64 to put in username not + userid + + * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent + more stuff from being in a context name, to make the protocol + simpler to deal with + + * dbus/dbus-errors.c (dbus_error_has_name): new function + (dbus_error_is_set): new function + + * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth + with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1 + + * dbus/dbus-connection.c (dbus_connection_flush): also read + messages during a flush operation + + * dbus/Makefile.am: remove dbus-md5 since it isn't currently used. + +2003-03-05 Anders Carlsson + + * configure.in: Check for gethostbyname on Solaris. + + * dbus/dbus-transport.c: (_dbus_transport_open): + Remove duplicate "tcp" entry. + + * doc/dbus-specification.sgml: + Clarify some things. + +2003-03-05 Anders Carlsson + + * dbus/dbus-auth.c: (send_rejected), (process_test_subdir): + * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir), + (_dbus_keyring_test): + * dbus/dbus-md5.c: (_dbus_md5_compute): + * dbus/dbus-sha.c: (_dbus_sha_compute): + Plug memory leaks. + +2003-03-05 Anders Carlsson + + * README: Add some things. + +2003-03-04 Anders Carlsson + + * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break; + after case DBUS_TYPE_BOOELAN. + +2003-03-02 Havoc Pennington + + * test/break-loader.c (randomly_set_extreme_ints): add test that + sets really huge and small integers + + * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check + that length of boolean array fits in the string, and that + string has room for boolean value in single-bool case. + + * dbus/dbus-message-builder.c (_dbus_message_data_load): add + optional value to "ALIGN" command which is what to fill the + alignment with. + + * test/data/valid-messages/no-padding.message: add regression + test for the message padding problem + +2003-03-02 Havoc Pennington + + * dbus/dbus-message.c (decode_header_data): fix to always init + message_padding, from Benjamin Dauvergne + +2003-03-02 Havoc Pennington + + * configure.in: 0.5 + + * NEWS: Update. + +2003-03-01 Joe Shaw + + * configure.in: Check for "struct cmsgcred" and try to access its + members for BSD-like unices. + + * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into + _dbus_read_credentials_unix_socket(). + (_dbus_read_credentials_unix_socket): Use recvmsg() instead of + read() for reading the credential byte off the unix socket. Use + struct cmsgcred on systems that support it. + +2003-02-27 Alexander Larsson + + * glib/Makefile.am: + * configure.in: + Make gthreads-2.0 dependency optional. Don't build thread test if + its not found. + +2003-02-27 Havoc Pennington + + * dbus/dbus-connection.c + (dbus_connection_send_message_with_reply_and_block): fix doh! + doh! doh! bug that resulted in never removing a reply from the + queue, no wonder we called get_reply_serial so much ;-) + + * dbus/dbus-message.c (struct DBusMessage): cache reply serial + and client serial instead of demarshaling them every time + +2003-02-27 Havoc Pennington + + * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much + more inlined, using dbus-string-private.h, speeds things up + substantially + + * dbus/dbus-string.c (_dbus_string_free): apply align offset + when freeing the string + (_dbus_string_steal_data): fix for align offset + (undo_alignment): new function + +2003-02-26 Havoc Pennington + + All kinds of audit fixes from Owen, plus initial attempt to + handle unaligned memory returned from malloc. + + * dbus/dbus-string.c (_dbus_string_init): clamp max length to + leave room for align_offset and nul byte + (fixup_alignment): function to track an align_offset and + ensure real->str is aligned + (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated, + to allow a nul byte plus align offset + (_dbus_string_lock): fix overflow issue + (_dbus_string_init_const_len): add assertions on sanity of len, + assign allocated to be ALLOCATION_PADDING larger than len + (set_length): fixup the overflow handling + (_dbus_string_get_data_len): fix overflow in assertion + (open_gap): detect overflow in size of gap to be opened + (_dbus_string_lengthen): add overflow check + (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE + (_dbus_string_append): add overflow check + (_dbus_string_append_unichar): overflow + (_dbus_string_delete): fix overflow in assertion + (_dbus_string_copy_len): overflow in assertion + (_dbus_string_replace_len): overflows in assertions + (_dbus_string_find): change to implement in terms of + _dbus_string_find_to + (_dbus_string_find_to): assorted fixage + (_dbus_string_equal_c_str): assert c_str != NULL, + fix logic so the function works + (_dbus_string_ends_with_c_str): fix overflow thingy + (_dbus_string_base64_encode): overflow fix + (_dbus_string_validate_ascii): overflow + (_dbus_string_validate_nul): overflow + +2003-02-26 Havoc Pennington + + * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS + +2003-02-26 Alexander Larsson + + * configure.in: + Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0 + + * dbus/dbus-connection.c: + * dbus/dbus-connection.h: + Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch. + Add dbus_connection_set_wakeup_main_function and use it when queueing + incoming and outgoing messages. + + + * dbus/dbus-dataslot.c: + Threadsafe usage of DBusDataSlotAllocator + + * dbus/dbus-message.c: (dbus_message_get_args_iter): + dbus_new can fail. + + * dbus/dbus-server-unix.c: + Add todo comment + + * glib/dbus-gmain.c: + Implement the new wakeup functions for glib. + + * glib/Makefile.am: + * glib/test-thread-client.c: + * glib/test-thread-server.c: + * glib/test-thread.h: + Initial cut at some thread test code. Not really done yet. + +2003-02-26 Havoc Pennington + + * dbus/dbus-connection.c + (dbus_connection_send_message_with_reply_and_block): fix crash + where we ref'd the outgoing message instead of the returned reply + + * dbus/dbus-transport-unix.c (do_authentication): check read watch + at the end of this function, so if we didn't need to read for + authentication, we reinstall it for receiving messages + + * dbus/dbus-message.c (dbus_message_new_reply): allow replies to + a NULL sender for peer-to-peer case + + * dbus/dbus-transport-unix.c (check_read_watch): handle + !authenticated case correctly + + * glib/dbus-gmain.c: add support for DBusServer + + * dbus/dbus-server.c: add data slot support + + * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check + return values and handle errors + + * dbus/dbus-dataslot.c: factor out the data slot stuff from + DBusConnection + + * Doxyfile.in (INPUT): add glib subdir + + * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename + setup_with_g_main instead of hookup_with_g_main; write docs + +2003-02-24 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg): + * dbus/dbus-message-builder.c: (_dbus_message_data_load): + * dbus/dbus-message.c: (dbus_message_append_boolean), + (dbus_message_append_boolean_array), + (dbus_message_get_args_valist), (_dbus_message_test): + * dbus/dbus-message.h: + * doc/dbus-specification.sgml: + Various fixes as pointed out by Havoc. + + * test/data/invalid-messages/bad-boolean-array.message: + * test/data/invalid-messages/bad-boolean.message: + Add invalid boolean value test cases. + +2003-02-24 Anders Carlsson + + * dbus/dbus-internals.c: (_dbus_type_to_string): + * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), + (_dbus_marshal_validate_arg): + * dbus/dbus-message-builder.c: (_dbus_message_data_load): + * dbus/dbus-message.c: (dbus_message_append_args_valist), + (dbus_message_append_boolean), (dbus_message_append_boolean_array), + (dbus_message_get_args_valist), (dbus_message_iter_get_boolean), + (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32), + (dbus_message_iter_get_double), + (dbus_message_iter_get_boolean_array), (message_iter_test): + * dbus/dbus-message.h: + * dbus/dbus-protocol.h: + * doc/dbus-specification.sgml: + * test/data/valid-messages/lots-of-arguments.message: + Add support for boolean and boolean array types. + +2003-02-23 Havoc Pennington + + * dbus/dbus-keyring.c: finish most of this implementation and + simple unit test + + * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make + these barf if the error isn't cleared to NULL + + * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure + (_dbus_create_directory): new function + + * dbus/dbus-errors.c (dbus_set_error): fix warning + + * dbus/dbus-string.c (_dbus_string_hex_encode): new function + (_dbus_string_hex_decode): new function + (test_hex_roundtrip): test code + + * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode + + * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode + + * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use + the save-to-temp/rename trick to atomically write the new file + (_dbus_string_parse_uint): new function + +2003-02-22 Havoc Pennington + + * test/Makefile.am (dist-hook): fix dist for test/data/sha-1 + +2003-02-22 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_iter_get_string_array): + (dbus_message_iter_get_byte_array): Fix up doxygen warnings + + * dbus/dbus-sha.c: add implementation of SHA-1 algorithm + + * dbus/test/data/sha-1: add US government test suite for SHA-1 + +2003-02-21 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): + Make string arrays NULL-terminated. + + * dbus/dbus-memory.c: (dbus_free_string_array): + * dbus/dbus-memory.h: + New function for freeing NULL-terminated string arrays. + + * dbus/dbus-message-builder.c: (append_quoted_string), + (_dbus_message_data_load): + Add support for array types. + + * dbus/dbus-message.c: (check_message_handling): + Add more types as test cases. + + * dbus/dbus-sysdeps.c: (_dbus_string_parse_int), + (_dbus_string_parse_double): + Add the start offset to the end offset. + + * test/data/valid-messages/lots-of-arguments.message: + New test message with lots of arguments. + +2003-02-21 Anders Carlsson + + * dbus/dbus-message.c: (dbus_message_append_nil), + (dbus_message_append_int32), (dbus_message_append_uint32), + (dbus_message_append_double), (dbus_message_append_string), + (dbus_message_append_int32_array), + (dbus_message_append_uint32_array), + (dbus_message_append_double_array), + (dbus_message_append_byte_array), + (dbus_message_append_string_array): + Fix all out-of-memory handling in these functions. + +2003-02-21 Anders Carlsson + + * dbus/dbus-message.c: (dbus_message_append_nil): + Fix a silly. + +2003-02-21 Anders Carlsson + + * dbus/dbus-message.c: (dbus_message_append_args_valist), + (dbus_message_append_nil), (dbus_message_append_int32_array), + (dbus_message_append_uint32_array), + (dbus_message_append_double_array), + (dbus_message_append_byte_array), + (dbus_message_append_string_array), (dbus_message_get_args_valist), + (dbus_message_iter_get_int32_array), + (dbus_message_iter_get_uint32_array), + (dbus_message_iter_get_double_array), + (dbus_message_iter_get_byte_array), + (dbus_message_iter_get_string_array): + + * dbus/dbus-message.h: + Add functions for appending and getting arrays. + +2003-02-21 Anders Carlsson + + * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the + element size at least 8 bytes, fixes mempool tests on + 64-bit machines. + +2003-02-20 Alexander Larsson + + * dbus/dbus-transport-unix.c (unix_do_iteration): + Unlock the connection mutex during a blocking select call. + Add todo about how we need a way to wake up the select. + + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: + Add _dbus_connection_lock and _dbus_connection_unlock. + +2003-02-19 Havoc Pennington + + * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in + Doxyfile.in, not Doxyfile + + * dbus/dbus-keyring.c: do some hacking on this + + * dbus/dbus-sysdeps.c (_dbus_delete_file): new + + * dbus/dbus-errors.c (dbus_set_error_const): do not call + dbus_error_init + (dbus_set_error): remove dbus_error_init, check for message == + NULL *before* we sprintf into it, and add @todo about including + system headers in this file + + * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new + + * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add + + * dbus/dbus-sysdeps.c (get_user_info): break this function out to + get various bits of user information based on either username + or user ID + (_dbus_homedir_from_username): new function + +2003-02-19 Anders Carlsson + + * configure.in: + Add check for nonposix getpwnam_r + + * dbus/dbus-mempool.c: (_dbus_mem_pool_new): + Align the pool element size to a sizeof (void *) boundary. + + * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket), + (_dbus_listen_unix_socket), (_dbus_credentials_from_username): + General Solaris fixes. + + * test/data/valid-messages/simplest-manual.message: + Explicitly state that we want little-endian packing. + +2003-02-19 Mikael Hallendal + + * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket): + Added to create a transport connecting using a tcp/ip socket. + + * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect + to a tcp socket at given host and port. + (_dbus_listen_tcp_socket): added to listen on tcp socket for given + hostname and port. + + * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses. + + * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): + Added to create a server listening on a TCP/IP socket. + +2003-02-19 Havoc Pennington + + Throughout: mop up all the Doxygen warnings and undocumented + stuff. + + * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want + to search any paths. + + * dbus/dbus-threads.c: move global mutex initializers to + dbus-internals.h, multiple prototypes was confusing doxygen + besides being kind of ugly + + * Doxyfile (PREDEFINED): have Doxygen define + DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from + docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS + (do not abuse the feature! it's for stuff like the autogenerated + macros in dbus-md5.c, not just for things you don't feel like + documenting...) + +2003-02-18 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_zero): new function + + * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch, + wrap it in some dbus-friendly API + + * dbus/dbus-types.h: add 16-bit types + +2003-02-18 Joe Shaw + + * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get + credentials from our currently running process. + (get_word): Fix a buglet where we were copying the entire length + instead of relative to our position. + + * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the + keys on the stack... it's 640k of data. + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always + read the credentials byte off the socket, even if we don't have + SO_PEERCRED. + (_dbus_poll): Implement poll() using select() for systems which + don't have it. + + * glib/test-dbus-glib.c (main): Print out an error if no + parameters are given. + + * test/data/auth/fallback.auth-script: Added. Tests that a client + can fallback to a secondary auth mechanism if the first fails. + +2003-02-18 Havoc Pennington + + * AUTHORS: add Alex + +2003-02-17 Havoc Pennington + + * doc/dbus-specification.sgml: lots of cosmetic + cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS + env variable to DBUS_BUS_ADDRESS, s/client/application/, + s/server/bus/ (except in authentication section). Add a section + "Message Bus Message Routing" + +2003-02-17 Anders Carlsson + + Release 0.4 + + * NEWS: Update + +2003-02-17 Anders Carlsson + + * doc/dbus-specification.sgml: + Specification updates. + +2003-02-17 Anders Carlsson + + * bus/activation.c: (bus_activation_init), (child_setup), + (bus_activation_activate_service): + * bus/activation.h: + * bus/main.c: (main): + Set DBUS_ADDRESS environment variable. + + * dbus/dbus-errors.c: (dbus_set_error): + Don't use va_copy since that's a C99 feature. + + * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec), + (_dbus_spawn_async): + * dbus/dbus-sysdeps.h: + Add child_setup_func to _dbus_spawn_async. + + * doc/dbus-specification.sgml: + Update specification. + + * test/spawn-test.c: (setup_func), (main): + Fix test. + +2003-02-17 Alexander Larsson + + * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked): + Added todo. + +2003-02-17 Anders Carlsson + + * doc/.cvsignore: + * doc/Makefile.am: + * doc/dbus-test-plan.sgml: + Add test plan document. + + * test/Makefile.am: + Fix distcheck. + +2003-02-17 Anders Carlsson + + * dbus/dbus-message.c: (decode_header_data), + (_dbus_message_loader_return_buffer): + Set the header padding amount when loading a message. + +2003-02-16 Anders Carlsson + + * bus/dispatch.c: (send_one_message): + Only send broadcast messages to registered connections. + + * dbus/dbus-message.c: (dbus_message_name_is): + * dbus/dbus-message.h: + New convenience function. + + * dbus/dbus-transport-debug.c: (do_reading): + Only dispatch one message per run. + + * test/Makefile.am: + * test/bus-test.c: (new_connection_callback), (die), + (test_hello_client1_handler), (test_hello_client2_handler), + (test_hello_replies), (main): + + * test/bus-test-loop.[ch]: + Add these. + +2003-02-16 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix + backward conditional + +2003-02-16 Alexander Larsson + + * dbus/dbus-connection.c: + Implement sent_message_with_reply. (with_reply_and block is still + busted). + Made dispatch_message not lose message if OOM. + + * dbus/dbus-errors.h: + Add NoReply error (for reply timeouts). + +2003-02-16 Alexander Larsson + + * dbus/dbus-hash.c (_dbus_hash_table_unref): + Actually free keys and values when destroying hashtable. + +2003-02-16 Anders Carlsson + + * dbus/dbus-auth.c: (client_try_next_mechanism): + Plug a leak. + + * dbus/dbus-threads.c: (dbus_condvar_wait_timeout): + Return TRUE if there's no thread implementation around. + + * glib/dbus-gmain.c: (free_source), + (dbus_connection_hookup_with_g_main): + Make sure to remove the GSource when the connection is finalized. + +2003-02-16 Anders Carlsson + + * bus/dispatch.c: (bus_dispatch_message_handler): + * dbus/dbus-errors.h: + Return an error if someone tries to send a message to a service + that doesn't exist. + +2003-02-16 Anders Carlsson + + * bus/activation.c: (load_directory), (bus_activation_init), + (bus_activation_activate_service): + * bus/activation.h: + * bus/driver.c: + (bus_driver_handle_activate_service), (bus_driver_handle_message): + More work on the activation handling. + + * dbus/dbus-errors.h: + Add some error messages + + * dbus/dbus-message.c: (dbus_message_new_error_reply): + * dbus/dbus-message.h: + New function that creates an error message. + + * dbus/dbus-protocol.h: + Add ACTIVATE_SERVER message. + + * dbus/dbus-server-unix.c: (unix_handle_watch), + (_dbus_server_new_for_domain_socket): + Call _dbus_fd_set_close_on_exec. + + * dbus/dbus-sysdeps.c: (make_pipe), (do_exec), + (_dbus_spawn_async), (_dbus_disable_sigpipe), + (_dbus_fd_set_close_on_exec): + * dbus/dbus-sysdeps.h: + Add _dbus_fd_set_close_on exec function. Also add function that checks + that all open fds are set to close-on-exec and warns otherwise. + + * dbus/dbus-transport-unix.c: + (_dbus_transport_new_for_domain_socket): + Call _dbus_fd_set_close_on_exec. + +2003-02-16 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe): + allow people to avoid setting SIGPIPE to SIG_IGN + (_dbus_connection_new_for_transport): disable SIGPIPE unless + we've been asked not to + +2003-02-15 Anders Carlsson + + * dbus/dbus-list.c: (_dbus_list_append_link), + (_dbus_list_prepend_link): + * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0), + (dbus_realloc): + Warning fixes. + +2003-02-15 Anders Carlsson + + * bus/Makefile.am: + * bus/activation.c: (bus_activation_entry_free), + (add_desktop_file_entry), (load_directory), (bus_activation_init): + * bus/activation.h: + * bus/main.c: (main): + Add simple activation support, doesn't work yet though. + +2003-02-15 Zack Rusin + + * qt/dbus-qthread.cpp: small casting fix + +2003-02-15 Anders Carlsson + + * dbus/dbus-errors.c: (dbus_set_error): + * dbus/dbus-errors.h: + Add a few errors and make dbus_set_error void. + + * dbus/dbus-sysdeps.c: + (_dbus_errno_to_string), (close_and_invalidate), (make_pipe), + (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async): + * dbus/dbus-sysdeps.h: + Add _dbus_spawn_async. + + * test/spawn-test.c: (main): + Test for _dbus_spawn_async. + +2003-02-15 Anders Carlsson + + * dbus/dbus-internals.h: + Fix build without tests. + + * dbus/dbus-list.c: (alloc_link): + Fix a segfault when a malloc fails. + + * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc), + (dbus_malloc0), (dbus_realloc): + Add support for malloc debugging. + +2003-02-15 Alexander Larsson + + * dbus/dbus-threads.c: + * dbus/dbus-threads.h: + Add condvars. Remove static mutext from API. + Implement static mutexes by initializing them from threads_init. + + * glib/dbus-gthread.c: + * qt/dbus-qthread.cpp: + Update with the thread api changes. + + + * dbus/dbus-list.c: + * dbus/dbus-list.h: + Turn StaticMutex into normal mutex + init function. + Export new functions _dbus_list_alloc_link, _dbus_list_free_link, + _dbus_list_append_link, _dbus_list_prepend_link + + + * dbus/dbus-sysdeps.c: + * dbus/dbus-sysdeps.h: + New type dbus_atomic_t, and new functions _dbus_atomic_inc, + _dbus_atomic_dec. Only slow fallback implementation at the moment. + + * dbus/dbus-protocol.h: + Add DBUS_MESSAGE_LOCAL_DISCONNECT define + + * dbus/dbus-message.c: + Make ref/unref atomic. + Fix some docs. + + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: + * dbus/dbus-connection.h: + Make threadsafe. + Change _peek to _borrow,_return & _steal_borrowed. + Change disconnect callback to event. + Make dbus_connection_dispatch_messages reentrant. + + * dbus/dbus-transport.c: + Don't ref the connection on calls to the transport + implementation. + + * dbus/dbus-message-handler.c: + Make threadsafe. + + * glib/dbus-gmain.c: + Don't use peek_message anymore + + * test/Makefile.am: + * test/debug-thread.c: + * test/debug-thread.h: + Simple thread implementation that asserts() on deadlocks in + single-threaded code. + + * test/bus-test.c: + (main) Call debug_threads_init. + + * test/watch.c: + Use disconnect message instead of disconnect callback. + + * bus/connection.c: + * bus/connection.h: + Don't call dbus_connection_set_disconnect_function. Instead export + bus_connection_disconnect. + + * bus/dispatch.c: + Call bus_connection_disconnect when we get a disconnected message. + +2003-02-15 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_new): fool around with the + docs + +2003-02-14 Havoc Pennington + + * dbus/dbus-mempool.c: fail if the debug functions so indicate + + * dbus/dbus-memory.c: fail if the debug functions indicate we + should + + * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter) + (_dbus_decrement_fail_alloc_counter): debug functions to + simulate memory allocation failures + +2003-02-14 Havoc Pennington + + * dbus/dbus-errors.h (struct DBusError): add a word of padding + to DBusError + +2003-02-13 Anders Carlsson + + * bus/driver.c: (bus_driver_handle_hello): + * bus/driver.h: + * bus/services.c: (bus_service_lookup): + Reorder message sending so we get a more sane order. + + * test/bus-test.c: (message_handler): + Fix tyop. + +2003-02-13 Anders Carlsson + + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_send_service_lost), + (bus_driver_send_service_acquired), (bus_driver_handle_hello), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), + (bus_driver_handle_acquire_service), + (bus_driver_handle_service_exists): + * dbus/dbus-bus.c: (dbus_bus_register_client), + (dbus_bus_acquire_service), (dbus_bus_service_exists): + * dbus/dbus-errors.c: (dbus_result_to_string): + * dbus/dbus-errors.h: + * dbus/dbus-message.c: (dbus_message_append_args), + (dbus_message_append_args_valist), (dbus_message_get_args), + (dbus_message_get_args_valist), (dbus_message_get_args_iter), + (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string), + (dbus_message_iter_get_byte_array), + (dbus_message_iter_get_string_array), (message_iter_test), + (check_message_handling), (_dbus_message_test): + * dbus/dbus-message.h: + * test/bus-test.c: (main): + Change fields to arguments in messages, so that they won't be + confused with header fields. + + * glib/test-dbus-glib.c: (main): + Remove append_fields from hello message. + +2003-02-13 Anders Carlsson + + * dbus/dbus-errors.c: + * dbus/dbus-message.c: + * dbus/dbus-string.c: + Documentation fixes. + +2003-02-13 Anders Carlsson + + * glib/dbus-gmain.c: (timeout_handler), (add_timeout), + (remove_timeout): + Implement support for timeouts in dbus-glib. + +2003-02-13 Anders Carlsson + + * dbus/dbus-message-builder.c: (_dbus_message_data_load): + * dbus/dbus-message.c: (process_test_subdir): + * test/break-loader.c: (find_breaks_based_on): + Plug some memory leaks. + +2003-02-13 Richard Hult + + * bus/main.c: Fix build. + + * dbus/dbus-errors.h: + * dbus/dbus-errors.c: Fix copyright for Anders. + +2003-02-13 Anders Carlsson + + * bus/Makefile.am: + Add utils.[ch] + + * bus/connection.c: (bus_connection_foreach): + Fix a warning. + + * bus/desktop-file.c: (grow_lines_in_section), (grow_sections), + (unescape_string), (new_section), (parse_section_start), + (parse_key_value), (report_error), (bus_desktop_file_load), + (bus_desktop_file_get_string): + * bus/desktop-file.h: + Use DBusError for error reporting. + + * bus/dispatch.c: (send_one_message), + (bus_dispatch_message_handler): + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_send_service_lost), + (bus_driver_send_service_acquired), (bus_driver_handle_hello), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), + (bus_driver_handle_acquire_service), + (bus_driver_handle_service_exists): + * bus/loop.c: (bus_loop_run): + * bus/main.c: + Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM. + + * bus/utils.c: (bus_wait_for_memory): + * bus/utils.h: + New files with general utility functions. + + * dbus/dbus-internals.h: + Remove _DBUS_HANDLE_OOM. + +2003-02-13 Anders Carlsson + + * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init), + (dbus_error_free), (dbus_set_error_const), (dbus_set_error): + * dbus/dbus-errors.h: + Add DBusError structure. + +2003-02-13 Anders Carlsson + + * test/data/valid-messages/standard-acquire-service.message: + * test/data/valid-messages/standard-hello.message: + * test/data/valid-messages/standard-list-services.message: + * test/data/valid-messages/standard-service-exists.message: + Add some standard messages. + +2003-02-13 Anders Carlsson + + * bus/driver.c: (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), + (bus_driver_handle_acquire_service), + (bus_driver_handle_service_exists), (bus_driver_handle_message): + Update for API changes in libdbus. + + * dbus/dbus-message.c: (dbus_message_new_reply): + * dbus/dbus-message.h: + Remove the name argument. The spec states that replies shouldn't + have a name. + +2003-02-13 Anders Carlsson + + * bus/desktop-file.c: (parse_section_start), (parse_key_value), + (report_error), (bus_desktop_file_load), (lookup_section), + (lookup_line), (bus_desktop_file_get_raw), + (bus_desktop_file_get_string): + * bus/desktop-file.h: + Some fixes, and new functions for getting a key value from a section. + +2003-02-13 Havoc Pennington + + * test/data/auth/fail-after-n-attempts.auth-script: new test + + * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we + reject the client. + +2003-02-13 Havoc Pennington + + * dbus/dbus-auth.c (handle_server_data_external_mech): args to + dbus_credentials_match were backward + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): support + NO_CREDENTIALS and ROOT_CREDENTIALS + + * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine + into here. Never process more commands after we've reached an + end state; store further data as unused bytes. + + * test/data/auth/*: add more auth tests + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT + command to match exact string and EXPECT_UNUSED to match unused + bytes + + * test/Makefile.am (dist-hook): fix to dist all the test stuff + +2003-02-12 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip + \r off of popped lines + + * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth + scripts + + * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a + SEND, append \r\n + +2003-02-12 Havoc Pennington + + * dbus/Makefile.am: remove break-loader from the build, since it + moved. + + * configure.in: add --enable-gcov to turn on coverage profiling + flags and disable optimization + +2003-02-10 Havoc Pennington + + * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync + initial cut at test framework for DBusAuth from laptop. + Doesn't quite work yet but it compiles and I need to get + it off the 266mhz laptop. ;-) + + * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport): + fix a memleak in error case + +2003-02-12 Anders Carlsson + + * bus/Makefile.am: + * bus/desktop-file.c: + * bus/desktop-file.h: + Add a desktop file parser. + +2003-02-11 Zack Rusin + + * qt/message.[h|cpp]: sample implementation + of the KDE wrapper for DBusMessage + +2003-02-09 Zack Rusin + + * test/bus-test.c: make_it_compile + * doc/dbus-specification.sgml: minimal semantic fix + +2003-02-06 Anders Carlsson + + Release 0.3 + + * NEWS: Update + +2003-02-06 Anders Carlsson + + * dbus/Makefile.am: + * dbus/dbus-break-loader.c: + * test/Makefile.am: + * test/break-loader.c: + Move dbus-break-loader to test/ and rename it to break-loader. + +2003-02-02 Havoc Pennington + + * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files + for code to manage cookies in your home directory + + * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function + + * dbus/dbus-auth.c (get_state): impose a maximum number of tries + to authenticate, then disconnect the client. + +2003-02-03 Alexander Larsson + + * dbus/dbus-message.c (dbus_message_append_fields): + Correct docs. + +2003-02-02 Anders Carlsson + + * doc/dbus-specification.sgml: + Update address format section. + +2003-02-02 Anders Carlsson + + * test/Makefile.am: + * test/bus-test.c: (get_time), (add_timeout), (remove_timeout), + (message_handler), (new_connection_callback), (loop_quit), + (loop_run), (main): + Add bus test. + +2003-02-02 Anders Carlsson + + * bus/driver.c: (bus_driver_handle_service_exists): + Simplify the code a bit. + + * dbus/dbus-bus.c: (dbus_bus_service_exists): + Fix a silly. + +2003-02-02 Anders Carlsson + + * bus/Makefile.am: + Add libdbus-daemon.la and link to it. + +2003-02-01 James Willcox + + * bus/driver.c: (bus_driver_handle_own_service): + Actually include the service reply code in the message. + +2003-02-02 Anders Carlsson + + * bus/driver.c: (bus_driver_handle_service_exists): + Don't unref the incoming message. + +2003-02-02 Anders Carlsson + + * dbus/dbus.h: Add dbus-address.h and dbus-bus.h + +2003-02-02 Anders Carlsson + + * dbus/dbus-server.c: (dbus_server_listen): + * dbus/dbus-transport.c: (_dbus_transport_open): + ifdef out the calls to the debug transport and server. + +2003-02-02 Alexander Larsson + + * dbus/dbus-watch.c (dbus_watch_get_flags): + Add note in the docs that ERROR or HANGUP won't be returned + and are assumed always on. + + * glib/dbus-gmain.c (add_watch): + Always add IO_ERR | IO_HUP + + * dbus/dbus-message.h: + Add semicolon after dbus_message_iter_get_string_array(). + Makes qt code build again + +2003-02-01 Anders Carlsson + + * bus/driver.c: (create_unique_client_name), + (bus_driver_handle_hello): + Don't take a name, just use a numeric id to identify + each client. + + * dbus/Makefile.am: + * dbus/dbus-bus.c: (dbus_bus_register_client), + (dbus_bus_acquire_service), (dbus_bus_service_exists): + * dbus/dbus-bus.h: + Add new convenience functions for communicating with the bus. + + * dbus/dbus-message.h: + + * dbus/dbus-protocol.h: + Fix a typo. + +2003-02-01 Alexander Larsson + + * dbus/dbus-message.c (dbus_message_append_fields): + Add some more doc comments. + +2003-02-01 Havoc Pennington + + * dbus/dbus-break-loader.c (randomly_modify_length): change + a 4-byte value in the message as if it were a length + + * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set + execute bit on saved files + +2003-02-01 Havoc Pennington + + * dbus/dbus-break-loader.c (main): new program to find messages + that break the loader. + + * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function + * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function + + * dbus/dbus-string.c (_dbus_string_set_byte): new + +2003-01-31 Havoc Pennington + + * dbus/dbus-message.c: refactor the test code to be more general, + in preparation for writing a "randomly permute test cases to + try to break the loader" program. + +2003-01-31 Havoc Pennington + + * doc/dbus-specification.sgml: work on the specification + + * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check + the protocol version of the message. + + * dbus/dbus-protocol.h: drop special _REPLY names, the spec + no longer specifies that. + (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not + 1/2/3/4) + + * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing + "break" for DBUS_TYPE_NIL, remove @todo + +2003-01-31 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename + just set_is_error/get_is_error as this is a commonly-used + function, and write docs. + +2003-01-31 Anders Carlsson + + * dbus/dbus-address.c: (dbus_address_entry_free): + Free key and value lists. + + * dbus/dbus-internals.c: (_dbus_type_to_string): + Add the types we didn't have. + + * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos), + (_dbus_marshal_validate_arg): + Add NIL types. + + * dbus/dbus-message.c: (dbus_message_set_sender): + Remove todo about being able to set sender to NULL. + + (dbus_message_set_is_error_reply), + (dbus_message_get_is_error_reply): + * dbus/dbus-message.h: + New functions. + + * dbus/dbus-protocol.h: + Add error reply flag. + + * test/data/valid-messages/opposite-endian.message: + Add NIL type to test. + +2003-01-31 Havoc Pennington + + * doc/dbus-specification.sgml: fully specify the header. Add + flags and major protocol version, and change header/body len to + unsigned. + + * dbus/dbus-message-builder.c (append_saved_length): append length + as uint32 + + * dbus/dbus-message.c (dbus_message_create_header): change header + length and body length to unsigned. Add the new fields from the + spec + (_dbus_message_loader_return_buffer): unsigned header/body len + +2003-01-30 Havoc Pennington + + * dbus/dbus-auth.c: rework to use only REJECTED, no + MECHANISMS + + * doc/dbus-sasl-profile.txt: drop MECHANISMS and just + use REJECTED, suggested by Mark McLoughlin + +2003-01-30 Havoc Pennington + + * dbus/dbus-server.c (dbus_server_listen): @todo about how we need + a better way to report errors here. e.g. "unix address lacks + path" or something. also "no such file" when the path doesn't + exist, etc. + + * dbus/dbus-address.c (dbus_address_entries_free): add @todo about + leaking list nodes + (dbus_parse_address): add @todo about documenting address format, + and allowing , and ; to be escaped + +2003-01-30 Anders Carlsson + + * dbus/Makefile.am: + Add dbus-address.[ch] + + * dbus/dbus-address.c: (dbus_address_entry_free), + (dbus_address_entries_free), (create_entry), + (dbus_address_entry_get_method), (dbus_address_entry_get_value), + (dbus_parse_address), (_dbus_address_test): + * dbus/dbus-address.h: + New files for dealing with address parsing. + + * dbus/dbus-connection.c: + Document timeout functions. + + * dbus/dbus-message.c: + Document dbus_message_new_from_message. + + * dbus/dbus-server-debug.c: + Document. + + * dbus/dbus-server.c: (dbus_server_listen): + Parse address and use correct server implementation. + + * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test): + * dbus/dbus-string.h: + New function with test. + + * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests): + * dbus/dbus-test.h: + Add address tests. + + * dbus/dbus-transport-debug.c: + Document. + + * dbus/dbus-transport.c: (_dbus_transport_open): + Parse address and use correct transport implementation. + +2003-01-30 Havoc Pennington + + * dbus/dbus-message.c: use message->byte_order instead of + DBUS_COMPILER_BYTE_ORDER throughout. + (dbus_message_create_header): pad header to align the + start of the body of the message to 8-byte boundary + + * dbus/dbus-marshal.h: make all the demarshalers take const + DBusString arguments. + + * dbus/dbus-message.c (_dbus_message_loader_return_buffer): + validate message args here, so we don't have to do slow validation + later, and so we catch bad messages as they are incoming. Also add + better checks on header_len and body_len. Also fill in + message->byte_order + + * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not + implemented properly) + (_dbus_string_validate_nul): new function to check all-nul + + * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename + get_arg_end_pos and remove all validation + (_dbus_marshal_validate_arg): actually do validation here. + +2003-01-29 Havoc Pennington + + * dbus/dbus-message.c (check_message_handling): fix assertion + failure on set_client_serial + +2003-01-28 Havoc Pennington + + * dbus/dbus-server-debug.c: Add doc section comments + + * dbus/dbus-transport-debug.c: add doc section comments + +2003-01-28 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in + the reverse order from how I had it + (_dbus_string_base64_encode): reverse encoding order. I was + basically byteswapping everything during encoding. + +2003-01-28 Anders Carlsson + + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: (_dbus_connection_add_timeout), + (_dbus_connection_remove_timeout): + Add functions for adding and removing timeouts. + + * dbus/dbus-message.c: (dbus_message_new_from_message): + Add new function that takes a message and creates an exact + copy of it, but with the refcount set to 1. + (check_message_handling): + Fix build error. + + * dbus/dbus-server-protected.h: + * dbus/dbus-server.c: (_dbus_server_init_base), + (_dbus_server_finalize_base), (_dbus_server_add_timeout), + (dbus_server_set_timeout_functions): + (_dbus_server_remove_timeout): + New functions so that a server can add and remove timeouts. + + (dbus_server_listen): + Add commented out call to dbus_server_debug_new. + + * dbus/dbus-timeout.c: (_dbus_timeout_new): + Actually set the handler, doh. + + * dbus/dbus-transport.c: (_dbus_transport_open): + Add commented out call to dbus_transport_debug_client_new. + + * dbus/Makefile.am: + Add dbus-transport-debug.[ch] and dbus-server-debug.[ch] + +2003-01-28 Havoc Pennington + + * dbus/dbus-message.c (check_message_handling): function to check + on the loaded message, iterates over it etc. + +2003-01-28 Havoc Pennington + + * test/Makefile.am (dist-hook): fix make distdir + + * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check + +2003-01-27 Havoc Pennington + + * dbus/dbus-mempool.c (time_for_size): replace printf with + _dbus_verbose + + * dbus/dbus-message-builder.c (_dbus_message_data_load): allow + empty lines; fix the SAVE_LENGTH stuff to be + START_LENGTH/END_LENGTH so it actually works; couple other + bugfixes + + * test/Makefile.am (dist-hook): add dist-hook for .message files + + * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy + can be constant or locked. + (_dbus_string_free): allow freeing a const string as + documented/intended + + * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility + + * dbus/dbus-test-main.c (main): take an argument which is the + directory containing test data + + * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir + argument to this and load all the messages in test/data/ + checking that they can be loaded or not loaded as appropriate. + +2003-01-27 Anders Carlsson + + * bus/dispatch.c: (bus_dispatch_message_handler): + Dispatch messages sent to services. + + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_send_service_lost), + (bus_driver_send_service_acquired): + Add helper functions for sending service related messages. + + (bus_driver_send_welcome_message): + Send HELLO_REPLY instead of WELCOME. + + (bus_driver_handle_list_services): + Send LIST_SERVICES_REPLY instead of SERVICES. + + (bus_driver_handle_own_service), + (bus_driver_handle_service_exists): + New message handlers. + + (bus_driver_handle_message): + Invoke new message handlers. + + (bus_driver_remove_connection): + Don't remove any services here since that's done automatically + by bus_service_remove_owner now. + + * bus/driver.h: + New function signatures. + + * bus/services.c: (bus_service_add_owner): + Send ServiceAcquired message if we're the only primary owner. + + (bus_service_remove_owner): + Send ServiceAcquired/ServiceLost messages. + + (bus_service_set_prohibit_replacement), + (bus_service_get_prohibit_replacement): + Functions for setting prohibit replacement. + + (bus_service_has_owner): + New function that checks if a connection is in the owner queue of + a certain service. + + * bus/services.h: + Add new function signatures. + + * dbus/dbus-list.c: (_dbus_list_test): + Add tests for _dbus_list_remove_last and traversing the list backwards. + + * dbus/dbus-list.h: + Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't + go any further, so return NULL then. + + * dbus/dbus-protocol.h: + Add new messages, service flags and service replies. + +2003-01-26 Havoc Pennington + + * dbus/dbus-message-builder.c: implement, completely untested. + + * test/data/*: add data to be used in testing. + ".message" files are our simple loadable text format. + ".message-raw" will be binary dumps of messages. + + * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new + +2003-01-26 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function + + * dbus/dbus-errors.c (dbus_result_to_string): add + file errors + + * dbus/dbus-message-builder.c: new file, will contain code to load + up messages from files. Not implemented yet. + +2003-01-26 Havoc Pennington + + * dbus/dbus-message.c (dbus_message_set_sender): support deleting + the sender by setting to NULL + +2003-01-26 Havoc Pennington + + The unit tests pass, but otherwise untested. If it breaks, the + tests should have been better. ;-) + + * bus/driver.c (bus_driver_handle_hello): return if we disconnect + the connection. + + * dbus/dbus-message.c: redo everything so we maintain + message->header as the only copy of the various fields. + This avoids the possibility of out-of-memory in some cases, + for example dbus_message_lock() can't run out of memory anymore, + and avoids extra copying. Figured I may as well go ahead and do + this since it was busted for dbus_message_lock to not return + failure on OOM, and dbus_message_write_header was totally + unchecked for OOM. Also fixed some random other bugs. + + * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify + that strings are nul-terminated. Also, end_pos can be equal + to string length just not greater than, I think. + (_dbus_marshal_set_int32): new function + (_dbus_marshal_set_uint32): new function + (_dbus_marshal_set_string): new function + + * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix + a warning, init timeout_list to NULL + (dbus_connection_send_message): don't use uninitialized variable + "serial" + + * dbus/dbus-string.c (_dbus_string_replace_len): new function + +2003-01-26 Anders Carlsson + + * bus/driver.c: (bus_driver_handle_hello), + (bus_driver_send_welcome_message): + Plug leaks + +2003-01-26 Anders Carlsson + + * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref): + * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), + (dbus_connection_unref): + * dbus/dbus-marshal.c: (_dbus_marshal_test): + * dbus/dbus-message.c: (dbus_message_unref), + Plug memory leaks. + + (dbus_message_get_fields): + Remove debugging printout. + + (_dbus_message_loader_return_buffer): + Don't store the header string. + + (_dbus_message_test): + Plug leaks. + +2003-01-26 Richard Hult + + * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of + the file descriptor list, since it can change under us. + +2003-01-25 Anders Carlsson + + * glib/dbus-gmain.c: (dbus_connection_prepare), + (dbus_connection_check), (dbus_connection_dispatch), (add_watch), + (remove_watch), (dbus_connection_hookup_with_g_main): + Rewrite the glib handling to use its own GSource instead of a + GIOChannel so we can catch messages put in the queue while waiting + for a reply. + +2003-01-25 Anders Carlsson + + * bus/Makefile.am: + * bus/connection.c: (connection_disconnect_handler), + (connection_watch_callback), (bus_connection_setup): + * bus/dispatch.c: (send_one_message), + (bus_dispatch_broadcast_message), (bus_dispatch_message_handler), + (bus_dispatch_add_connection), (bus_dispatch_remove_connection): + * bus/dispatch.h: + * bus/driver.c: (bus_driver_send_service_deleted), + (bus_driver_send_service_created), (bus_driver_handle_hello), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), (bus_driver_remove_connection), + (bus_driver_handle_message): + * bus/driver.h: + Refactor code, put the message dispatching in its own file. Use + _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client + is disconnected. + +2003-01-25 Anders Carlsson + + * dbus/dbus-internals.h: + Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently. + + * dbus/dbus-message.c: (dbus_message_get_sender): + * dbus/dbus-message.h: + Implement dbus_message_get_sender. + + * dbus/dbus-protocol.h: + Add message and service defines. + +2003-01-25 Anders Carlsson + + * dbus/dbus-connection.c: (dbus_connection_send_message): + * dbus/dbus-message-internal.h: + * dbus/dbus-message.c: (_dbus_message_get_client_serial), + (dbus_message_write_header): + Remove _dbus_messag_unlock and don't set the client serial on a + message if one already exists. + +2003-01-24 Havoc Pennington + + * dbus/dbus-list.c (alloc_link): put a thread lock on the global + list_pool + + * bus/driver.c (bus_driver_handle_list_services): fix a leak + on OOM + +2003-01-25 Anders Carlsson + + * dbus/dbus-list.c: (alloc_link), (free_link): + Use a memory pool for the links. + +2003-01-25 Anders Carlsson + + * bus/connection.c: (bus_connection_foreach): + * bus/connection.h: + Add new bus_connection_foreach function. + + * bus/driver.c: (send_one_message), (bus_driver_broadcast_message): + Add function that broadcasts a message to all clients. + + (bus_driver_send_service_created), (bus_driver_handle_hello), + (bus_driver_send_welcome_message), + (bus_driver_handle_list_services), (bus_driver_message_handler): + Implement functions that take care of listing services, and notifying + clients when new services are created. + + * bus/services.c: (bus_services_list): + * bus/services.h: + Add new function that returns an array of strings with the currently + registered services. + + * glib/dbus-glib.h: + * glib/dbus-gmain.c: + Update copyright year. + +2003-01-25 Anders Carlsson + + * dbus/dbus-connection.c: (dbus_connection_send_message): + Unlock the message in case it was sent earlier. + + (dbus_connection_send_message_with_reply_and_block): + Remove the reply message from the list. + + * dbus/dbus-marshal.c: (_dbus_demarshal_string_array): + Set array_len and new_pos correctly. + + (_dbus_marshal_test): + Remove debug output. + + * dbus/dbus-message-internal.h: + * dbus/dbus-message.c: (_dbus_message_get_reply_serial): + New function that returns the reply serial. + + (_dbus_message_unlock): + New function that unlocks a message and resets its header. + + (dbus_message_append_string_array), + (dbus_message_get_fields_valist), + (dbus_message_iter_get_field_type), + (dbus_message_iter_get_string_array), + (dbus_message_get_fields), + (dbus_message_append_fields_valist): + Handle string arrays. + + (dbus_message_set_sender): + Make this function public since the bus daemon needs it. + + (decode_header_data): + Set the reply serial to -1 initially. + + * dbus/dbus-message.h: + Add dbus_message_set_sender. + +2003-01-24 Havoc Pennington + + * doc/dbus-specification.sgml: add some stuff + +2003-01-22 Havoc Pennington + + * doc/dbus-specification.sgml: Start to document the protocol. + +2003-01-22 Havoc Pennington + + * dbus/dbus-connection.c + (dbus_connection_send_message_with_reply_and_block): add some @todo + + * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak + +2003-01-21 Havoc Pennington + + (patch untested because can't compile) + + * bus/driver.c (create_unique_client_name): make this function + never recycle client names. Also, caller should initialize + the DBusString. + + * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function + +2003-01-21 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_double), + (_dbus_marshal_int32), (_dbus_marshal_uint32), + (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array), + (_dbus_marshal_double_array), (_dbus_marshal_string_array), + (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array), + (_dbus_demarshal_double_array), (_dbus_demarshal_string_array), + (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + * dbus/dbus-protocol.h: + Add support for marshalling and demarshalling integer, double + and string arrays. + +2003-01-21 Anders Carlsson + + * bus/Makefile.am: + Add driver.[ch] + + * bus/connection.c: (connection_disconnect_handler): + Remove the connection from the bus driver's list. + + (connection_watch_callback): Dispatch messages. + + (free_connection_data): Free connection name. + + (bus_connection_setup): Add connection to the bus driver's list. + (bus_connection_remove_owned_service): + (bus_connection_set_name), (bus_connection_get_name): + Add functions for setting and getting the connection's name. + + * bus/connection.h: + Add function headers. + + * bus/driver.c: (create_unique_client_name), + (bus_driver_handle_hello_message), + (bus_driver_send_welcome_message), (bus_driver_message_handler), + (bus_driver_add_connection), (bus_driver_remove_connection): + * bus/driver.h: + * bus/main.c: + * bus/services.c: (bus_service_free): + * bus/services.h: + New file that handles communication and registreation with the bus + itself. + +2003-01-21 Anders Carlsson + + * dbus/dbus-connection.c: (dbus_connection_send_message): + Add a new client_serial parameter. + + (dbus_connection_send_message_with_reply): + Remove a @todo since we've implemented the blocking function. + + (dbus_connection_send_message_with_reply_and_block): + New function that sends a message and waits for a reply and + then returns the reply. + + * dbus/dbus-connection.h: + Add new functions. + + * dbus/dbus-errors.c: (dbus_result_to_string): + * dbus/dbus-errors.h: + Add new DBUS_RESULT. + + * dbus/dbus-message-internal.h: + * dbus/dbus-message.c: (_dbus_message_get_reply_serial), + (_dbus_message_set_sender), (dbus_message_write_header), + (dbus_message_new_reply), (decode_header_data), + (_dbus_message_loader_return_buffer), (_dbus_message_test): + * dbus/dbus-message.h: + Add new functions that set the reply serial and sender. + Also marshal and demarshal them correctly and add test. + + * dbus/dbus-protocol.h: + Add new DBUS_MESSAGE_TYPE_SENDER. + + * glib/dbus-glib.h: + * glib/dbus-gmain.c: (watch_callback), (free_callback_data), + (add_watch), (remove_watch), (add_timeout), (remove_timeout), + (dbus_connection_hookup_with_g_main): + * glib/test-dbus-glib.c: (main): + Rewrite to use GIOChannel and remove the GSource crack. + + * test/echo-client.c: (main): + * test/watch.c: (check_messages): + Update for changed APIs + +2003-01-19 Anders Carlsson + + * dbus/Makefile.am: Add dbus-timeout.[cħ] + + * dbus/dbus-connection.c: (_dbus_connection_new_for_transport): + Create a DBusTimeoutList. + (dbus_connection_set_timeout_functions): Add new function to + set timeout callbacks + + * dbus/dbus-connection.h: Add public DBusTimeout API. + + * dbus/dbus-message.c: (dbus_message_get_service): + * dbus/dbus-message.h: New function. + + * dbus/dbus-server.c: Fix small doc typo. + + * dbus/dbus-timeout.[ch]: New files for mainloop timeouts. + +2003-01-19 Anders Carlsson + + * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all + of the string, just as long as specified. + +2003-01-19 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_get_is_authenticated): + new function + + * dbus/dbus-server.c (dbus_server_set_max_connections) + (dbus_server_get_max_connections, dbus_server_get_n_connections): + keep track of current number of connections, and add API for + setting a max (but haven't implemented enforcing the max yet) + +2003-01-18 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_do_iteration): only do the + reading/writing if read_watch != NULL or write_watch != NULL. + + * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix + the message loader code to actually load message->header and + message->body into the newly-created message. + + * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak + in OOM case + + * dbus/dbus-connection.c (dbus_connection_set_max_message_size) + (dbus_connection_get_max_message_size) + (dbus_connection_set_max_live_messages_size) + (dbus_connection_get_max_live_messages_size): implement some + resource limitation functions + + * dbus/dbus-resources.c: new file implementing some of the + resource limits stuff + + * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add + missing docs, add @todo to handle OOM etc. + + * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing + docs + +2003-01-18 Havoc Pennington + + * dbus/dbus-connection.c (dbus_connection_unref): disconnect the + connection if it hasn't been already. + + * dbus/dbus-connection.h: kill off the idea of an ErrorFunction, + replace with DisconnectFunction. + +2003-01-18 Havoc Pennington + + Building --disable-verbose-mode --disable-asserts --disable-tests + cuts the library from 112K to 45K or so + + * configure.in: check for varargs macro support, + add --enable-verbose-mode, --enable-asserts. + + * dbus/dbus-internals.h (_dbus_assert): support + DBUS_DISABLE_ASSERT + (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE + +2003-01-18 Havoc Pennington + + * dbus/dbus-test.c: include config.h so that tests actually run + + * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned, + so the failure mode when that assumption fails will be plenty + obvious. + +2003-01-18 Havoc Pennington + + * configure.in: default --enable-tests to $USE_MAINTAINER_MODE + + * dbus/Makefile.am: fix it up so dubs-test-main.c is included in + the distribution + + * test/Makefile.am: don't use special variable "TESTS" for echo-* + since we don't want to use those in make check + +2003-01-15 Havoc Pennington + + Release 0.2 + + * NEWS: update + +2003-01-15 Havoc Pennington + + * test/Makefile.am: fix so that test source code ends up in the + distribution on make distcheck + +2003-01-15 Havoc Pennington + + Release 0.1. + + * NEWS: update + +2003-01-15 Havoc Pennington + + * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests): + fix build when --disable-tests + + * Makefile.am (EXTRA_DIST): put HACKING in here + + * HACKING: document procedure for making a tarball release. + +2003-01-14 Anders Carlsson + + * bus/connection.c: (connection_error_handler), + (bus_connection_setup): + * bus/main.c: (main): + Make sure that the DBusConnectionData struct is NULLed + out to prevent a segfault. + + * dbus/dbus-errors.c: (dbus_result_to_string): + * dbus/dbus-errors.h: + * dbus/dbus-message.c: (dbus_message_get_fields), + (dbus_message_get_fields_valist), (_dbus_message_test): + * dbus/dbus-message.h: + Make dbus_message_get_fields return a result code so we can + track invalid fields as well as oom. + +2003-01-11 Havoc Pennington + + * configure.in: change --enable-test/--enable-ansi action-if-given + to enable_foo=$enableval instead of enable_foo=yes + +2003-01-08 Havoc Pennington + + * dbus/dbus-string.c (_dbus_string_align_length): new function + + * dbus/dbus-test-main.c: move main() for test app here + * dbus/dbus-test.c + (dbus_internal_symbol_do_not_use_run_tests): we have to export a + symbol to run tests, because dbus-test isn't in the main + library + + Code review nitpicks. + + * dbus/dbus-message.c (dbus_message_write_header): add newlines + for people with narrow emacs ;-). Assert client_serial was filled + in. Assert message->name != NULL. + (dbus_message_append_fields): have "first_field_type" arg separate + from va list, needed for C++ binding that also uses varargs IIRC + and helps with type safety + (dbus_message_new): add @todo about using DBusString to store + service/name internally + (dbus_message_new): don't leak ->service and ->name on OOM later + in the function + (dbus_message_unref): free the service name + (dbus_message_get_fields): same change to varargs + i.e. first_field_type + (_dbus_message_loader_return_buffer): assert that the message data + is aligned (if not it's a bug in our code). Put in verbose griping + about why we set corrupted = TRUE. + (decode_header_data): add FIXME that char* is evil. Was going to + add FIXME about evil locale-specific string.h strncmp, but just + switched to wacky string-as-uint32 optimization. Move check for + "no room for field name" above get_const_data_len() to avoid + assertion failure in get_const_data_len if we have trailing 2 + bytes or the like. Check for service and name fields being + provided twice. Don't leak service/name on error. Require field + names to be aligned to 4 bytes. + + * dbus/dbus-marshal.c: move byte swap stuff to header + (_dbus_pack_int32): uscore-prefix + (_dbus_unpack_int32): uscore-prefix + (_dbus_unpack_uint32): export + (_dbus_demarshal_string): add @todo complaining about use of + memcpy() + (_dbus_marshal_get_field_end_pos): add @todo about bad error + handling allowing corrupt data to go unchecked + +2003-01-08 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write + to the select() as needed for authentication. (should be using + _dbus_poll() not select, but for another day) + + * dbus/dbus.h: include dbus/dbus-protocol.h + +2003-01-08 Anders Carlsson + + * dbus/Makefile.am (dbusinclude_HEADERS): Install + dbus-connection.h + +2003-01-08 Anders Carlsson + + * dbus/dbus-internals.c: (_dbus_type_to_string): + New function that returns a string describing a type. + + * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array): + * dbus/dbus-marshal.h: + * dbus/dbus-message.c: (dbus_message_get_fields_valist), + (dbus_message_iter_get_field_type), (dbus_message_iter_get_double), + (dbus_message_iter_get_byte_array): + * dbus/dbus-message.h: + Add new convenience functions for appending and getting message fields. + Also add demarshalling routines for byte arrays. + +2003-01-07 Anders Carlsson + + * dbus/dbus-connection-internal.h: + * dbus/dbus-connection.c: (_dbus_connection_new_for_transport), + (_dbus_connection_get_next_client_serial), + (dbus_connection_send_message): + * dbus/dbus-internals.h: + * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32), + (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32), + (_dbus_marshal_uint32), (_dbus_demarshal_double), + (_dbus_demarshal_int32), (_dbus_demarshal_uint32), + (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos), + (_dbus_verbose_bytes), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + * dbus/dbus-message-internal.h: + * dbus/dbus-message.c: (_dbus_message_set_client_serial), + (dbus_message_write_header), (_dbus_message_lock), + (dbus_message_new), (dbus_message_ref), (dbus_message_unref), + (dbus_message_get_name), (dbus_message_append_int32), + (dbus_message_append_uint32), (dbus_message_append_double), + (dbus_message_append_string), (dbus_message_append_byte_array), + (dbus_message_get_fields_iter), (dbus_message_iter_ref), + (dbus_message_iter_unref), (dbus_message_iter_has_next), + (dbus_message_iter_next), (dbus_message_iter_get_field_type), + (dbus_message_iter_get_string), (dbus_message_iter_get_int32), + (dbus_message_iter_get_uint32), (dbus_message_iter_get_double), + (decode_header_data), (_dbus_message_loader_return_buffer), + (message_iter_test), (_dbus_message_test): + * dbus/dbus-message.h: + * dbus/dbus-protocol.h: + * dbus/dbus-test.c: (main): + * dbus/dbus-test.h: + * glib/test-dbus-glib.c: (message_handler), (main): + * test/echo-client.c: (main): + * test/watch.c: (check_messages): + Make messages sendable and receivable for real. + +2003-01-07 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_double), + (_dbus_marshal_string), (_dbus_marshal_byte_array): + * dbus/dbus-message.c: (dbus_message_append_int32), + (dbus_message_append_uint32), (dbus_message_append_double), + (dbus_message_append_string), (dbus_message_append_byte_array): + Handle OOM restoration. + +2003-01-07 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_string), + (_dbus_demarshal_string), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + * dbus/dbus-message.c: (dbus_message_get_name), + Document these functions. + + (dbus_message_append_int32), (dbus_message_append_uint32), + (dbus_message_append_double), (dbus_message_append_string), + (dbus_message_append_byte_array): + * dbus/dbus-message.h: + Add functions for adding message fields of different types. + + * dbus/dbus-protocol.h: + Add the different types. + +2003-01-05 Havoc Pennington + + * bus/connection.c: implement routines for handling connections, + first thing is keeping a list of owned services on each connection + and setting up watches etc. + + * bus/services.c: implement a mapping from service names to lists + of connections + + * dbus/dbus-hash.c: add DBUS_HASH_POINTER + + * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions + to use static mutexes for global data + + * dbus/dbus-connection.c (dbus_connection_set_data): add new + collection of functions to set/get application-specific data + on the DBusConnection. + +2003-01-04 Havoc Pennington + + * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function + (_dbus_poll): new function + + * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro + copied from GLib + + * bus/loop.c: initial code for the daemon main loop + +2003-01-04 Havoc Pennington + + * test/watch.c (error_handler): make it safe if the error handler + is called multiple times (if we s/error handler/disconnect + handler/ we should just guarantee it's called only once) + + * dbus/dbus-transport.c (_dbus_transport_disconnect): call the + error handler on disconnect (it's quite possible we should + just change the error handler to a "disconnect handler," I'm + not sure we have any other meaningful errors) + + * configure.in: check for getpwnam_r + + * dbus/dbus-transport.c, dbus/dbus-transport-unix.c, + dbus/dbus-auth.c: add credentials support, add EXTERNAL auth + mechanism as in SASL spec, using socket credentials + + * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function + (_dbus_send_credentials_unix_socket): new function + + * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just + dbus_accept() + (_dbus_write): only check errno if <0 returned + (_dbus_write_two): ditto + +2003-01-02 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string), + (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string), + (_dbus_marshal_test): + * dbus/dbus-marshal.h: + Add _dbus_marshal_byte_array and rename _dbus_marshal_string + to _dbus_marshal_utf8_string. Also fix some tests. + +2002-12-28 Harri Porten + + * configure.in: added check for C++ compiler and a very cheesy + check for the Qt integration + + * Makefile.am (SUBDIRS): compile qt subdir if support is enabled + + * qt/Makefile.am: added + + * qt/.cvsignore: added + + * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to + latter, added #ifdef QT_THREAD_SUPPORT guard. + + * dbus/Makefile.am: added missing headers for make dist + +2002-12-28 Kristian Rietveld + + * dbus/Makefile.am: fixup export-symbols-regex. + +2002-12-27 Anders Carlsson + + * acinclude.m4: Add this file and put the + PKG_CHECK_MODULE macro in it. + +2002-12-27 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_string), + (_dbus_demarshal_double), (_dbus_demarshal_int32), + (_dbus_demarshal_uint32), (_dbus_demarshal_string), + (_dbus_marshal_test): + Make the demarshalling routines align the pos argument. + Add string marshalling tests and fix the obvious bugs + discovered. + +2002-12-26 Havoc Pennington + + * dbus/dbus-auth.c: fixes fixes fixes + + * dbus/dbus-transport-unix.c: wire up support for + encoding/decoding data on the wire + + * dbus/dbus-auth.c (_dbus_auth_encode_data) + (_dbus_auth_decode_data): append to target string + instead of nuking it. + +2002-12-26 Havoc Pennington + + * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef + WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN, + doh + + * dbus/dbus-marshal.c: Add macros to do int swapping in-place and + avoid swap_bytes() overhead (ignoring possible assembly stuff for + now). Main point is because I wanted unpack_uint32 to implement + _dbus_verbose_bytes + (_dbus_verbose_bytes): new function + + * dbus/dbus-string.c (_dbus_string_validate_ascii): new function + + * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add + mechanism to handle a corrupt message stream + (_dbus_message_loader_new): fix preallocation to only prealloc, + not prelengthen + + * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function + (_dbus_string_test): enhance tests for copy/move and fix the + functions + + * dbus/dbus-transport-unix.c: Hold references in more places to + avoid reentrancy problems + + * dbus/dbus-transport.c: ditto + + * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't + leak reference count in no-message case + + * test/watch.c (do_mainloop): handle adding/removing watches + during iteration over the watches. Also, ref the connection/server + stored on a watch, so we don't try to mangle a destroyed one. + + * dbus/dbus-transport-unix.c (do_authentication): perform + authentication + + * dbus/dbus-auth.c (get_state): add a state + AUTHENTICATED_WITH_UNUSED_BYTES and return it if required + (_dbus_auth_get_unused_bytes): append the unused bytes + to the passed in string, rather than prepend + + * dbus/dbus-transport.c (_dbus_transport_init_base): create + the auth conversation DBusAuth + + * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd) + (_dbus_transport_new_for_domain_socket): when creating a + transport, pass in whether it's a client-side or server-side + transport so we know which DBusAuth to create + +2002-12-03 Havoc Pennington + + * dbus/dbus-transport-unix.c (unix_finalize): finalize base + _after_ finalizing the derived members + (unix_connection_set): unref watch if we fail to add it + + * dbus/dbus-connection.c (dbus_connection_unref): delete the + transport first, so that the connection owned by the + transport will be valid as the transport finalizes. + + * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch + if necessary, and remove watches from the connection. + + * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment + +2002-12-26 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_string), + (_dbus_demarshal_double), (_dbus_demarshal_int32), + (_dbus_demarshal_uint32), (_dbus_demarshal_string), + (_dbus_marshal_test): + * dbus/dbus-marshal.h: + Add string marshal functions and have the demarshal functions + return the new position. + +2002-12-25 Havoc Pennington + + * doc/dbus-sasl-profile.txt: docs on the authentication protocol, + it is a simple protocol that just maps directly to SASL. + + * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol + initial implementation, not actually used yet. + + * dbus/dbus-string.c (_dbus_string_find): new function + (_dbus_string_equal): new function + (_dbus_string_base64_encode): new function + (_dbus_string_base64_decode): new function + +2002-12-25 Anders Carlsson + + * dbus/Makefile.am: + * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double), + (_dbus_marshal_int32), (_dbus_marshal_uint32), + (_dbus_demarshal_double), (_dbus_demarshal_int32), + (_dbus_demarshal_uint32), (_dbus_marshal_test): + * dbus/dbus-marshal.h: + * dbus/dbus-protocol.h: + * dbus/dbus-test.c: (main): + * dbus/dbus-test.h: + Add un-optimized marshalling/demarshalling routines. + +2002-12-25 Harri Porten + + * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions + +2002-12-24 Zack Rusin + + * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus + * qt/dbus-qt.h: skeleton with two sample implemenatation of the + main loop stuff + +2002-12-24 Havoc Pennington + + * glib/dbus-gthread.c: fix include + + * glib/dbus-glib.h: rename DBusMessageHandler for now. + I think glib API needs to change, though, as you don't + want to use DBusMessageFunction, you want to use the + DBusMessageHandler object. Probably + dbus_connection_open_with_g_main_loop() + and dbus_connection_setup_g_main_loop() or something like that + (but think of better names...) that just create a connection + that has watch/timeout functions etc. already set up. + + * dbus/dbus-connection.c + (dbus_connection_send_message_with_reply): new function just to + show how the message handler helps us deal with replies. + + * dbus/dbus-list.c (_dbus_list_remove_last): new function + + * dbus/dbus-string.c (_dbus_string_test): free a string that + wasn't + + * dbus/dbus-hash.c: use memory pools for the hash entries + (rebuild_table): be more paranoid about overflow, and + shrink table when we can + (_dbus_hash_test): reduce number of sprintfs and write + valid C89. Add tests for case where we grow and then + shrink the hash table. + + * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools + + * dbus/dbus-connection.c (dbus_connection_register_handler) + (dbus_connection_unregister_handler): new functions + + * dbus/dbus-message.c (dbus_message_get_name): new + + * dbus/dbus-list.c: fix docs typo + + * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c: + an object representing a handler for messages. + +2002-12-16 Anders Carlsson + + * glib/dbus-glib.h: + * glib/dbus-gthread.c: (dbus_gthread_init): + Don't use the gdbus prefix for public functions. + +2002-12-16 Anders Carlsson + + * Makefile.am: + * configure.in: + Add GLib checks and fixup .pc files + + * glib/Makefile.am: + * glib/dbus-glib.h: + * glib/dbus-gmain.c: (gdbus_connection_prepare), + (gdbus_connection_check), (gdbus_connection_dispatch), + (gdbus_add_connection_watch), (gdbus_remove_connection_watch), + (dbus_connection_gsource_new): + * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free), + (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init): + * glib/test-dbus-glib.c: (message_handler), (main): + Add GLib support. + +2002-12-15 Harri Porten + + * autogen.sh: check for libtoolize before attempting to use it + + * dbus/dbus-transport-unix.c: include for timeval + struct. + + * .cvsignore: ignore more stamp files + + * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error + + * test/Makefile.am: added -I$(top_srcdir) to be able to compile + without make install. + +2002-12-15 Havoc Pennington + + * dbus/dbus-threads.c: add thread stubs that a higher library + layer can fill in. e.g. the GLib wrapper might fill them in with + GThread stuff. We still need to use this thread API to + thread-safe-ize the library. + +2002-12-12 Havoc Pennington + + * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the + below new interfaces and include fewer system headers. + + * dbus/dbus-sysdeps.c (_dbus_read): new function + (_dbus_write): new function + (_dbus_write_two): new function + (_dbus_connect_unix_socket): new function + (_dbus_listen_unix_socket): new function + + * dbus/dbus-message-internal.h: change interfaces to use + DBusString + +2002-12-11 Havoc Pennington + + * dbus/dbus-types.h: add dbus_unichar + + * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv + + * dbus/dbus-connection.c (dbus_connection_send_message): return + TRUE on success + + * dbus/dbus-transport.c: include dbus-watch.h + + * dbus/dbus-connection.c: include dbus-message-internal.h + + * HACKING: add file with coding guidelines stuff. + + * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string + handling here, for security purposes (as in vsftpd). Not actually + using this class yet. + + * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all + system/libc usage here, as in vsftpd, for ease of auditing (and + should also simplify portability). Haven't actually moved all the + system/libc usage into here yet. + +2002-11-25 Havoc Pennington + + * dbus/dbus-internals.c (_dbus_verbose): fix to not + always print the first verbose message. + +2002-11-24 Havoc Pennington + + * test/echo-client.c, test/echo-server.c: cheesy test + clients. + + * configure.in (AC_CHECK_FUNCS): check for writev + + * dbus/dbus-message.c (_dbus_message_get_network_data): new + function + + * dbus/dbus-list.c (_dbus_list_foreach): new function + + * dbus/dbus-internals.c (_dbus_verbose): new function + + * dbus/dbus-server.c, dbus/dbus-server.h: public object + representing a server that listens for connections. + + * dbus/.cvsignore: create + + * dbus/dbus-errors.h, dbus/dbus-errors.c: + public API for reporting errors + + * dbus/dbus-connection.h, dbus/dbus-connection.c: + public object representing a connection that + sends/receives messages. (Same object used for + both client and server.) + + * dbus/dbus-transport.h, dbus/dbus-transport.c: + Basic abstraction for different kinds of stream + that we might read/write messages from. + +2002-11-23 Havoc Pennington + + * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN + _DBUS_INT_MAX + + * dbus/dbus-test.c (main): add list test, and include + dbus-test.h as intended + + * dbus/dbus-hash.c (_dbus_hash_table_remove_string) + (_dbus_hash_table_remove_int): return value indicates + whether the entry existed to remove + + * dbus/dbus-list.c: add linked list utility class, + with docs and tests + + * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket + array sometimes. + +2002-11-23 Havoc Pennington + + * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/ + DBUS_END_DECLS to nothing, that should fix this once and for all + + * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES + + * dbus/dbus-message.c, dbus/dbus-hash.c: + add some missing @brief + +2002-11-23 Havoc Pennington + + * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS + to avoid confusing Doxygen + + * dbus/dbus-hash.c: @} not }@ + + * dbus/dbus-message.c (struct DBusMessage): split out + internals docs + +2002-11-23 Havoc Pennington + + * configure.in: pile on more warning flags if using gcc + + * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have + to document static functions + + * configure.in: add summary to end of configure so it + looks nice and attractive + + * dbus/dbus-hash.c: finish implementation and write unit + tests and docs + + * configure.in: add --enable-tests to enable unit tests + + * dbus/dbus-test.c: test program to run unit tests + for all files in dbus/*, initially runs a test for + dbus-hash.c + + * dbus/dbus-internals.h: file to hold some internal utility stuff + +2002-11-22 Havoc Pennington + + * dbus/dbus-hash.c: copy in Tcl hash table, not yet + "ported" away from Tcl + + * dbus/dbus-types.h: header for types such as dbus_bool_t + +2002-11-22 Havoc Pennington + + * dbus/dbus.h: fixups for doc warnings + + * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up + macros + (QUIET): make it quiet so we can see warnings + + * dbus/dbus-memory.c: teach D-BUS to allocate and free memory + +2002-11-22 Havoc Pennington + + * Makefile.am: include "Doxyfile" target in all-local + + * configure.in: generate the Doxyfile + + * Doxyfile.in: move Doxyfile here, so we can use + configure to generate a Doxyfile with the right + version number etc. + +2002-11-22 Havoc Pennington + + * dbus/dbus-message.c: move inline docs into .c file + + * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api + so all docs are under doc/ + (MAN_EXTENSION): generate man pages. Use extension + ".3dbus" which matches ".3qt" on my system, + I guess this is OK, I don't know really. + (FILE_PATTERNS): look for .c files not .h, makes sense + for plain C I think + +2002-11-22 Havoc Pennington + + * Makefile.am (SUBDIRS): rename subdir "server" to "bus" + because any app can be a server, and any app can be a client, + the bus is a special kind of server. + +Thu Nov 21 23:35:31 2002 Zack Rusin + + * Doxyfile : adding. Still needs Makefile rules to be generated + automatically (just run "doxygen" in the toplevel dir for now to + generate docs) + + * dbus/dbus-message.h : Adding sample docs (javadoc since + resembles gtk-doc a little more) + + * dbus/dbus.h : Adding sample docs + +2002-11-21 Havoc Pennington + + * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION + so we can allow ourselves to include files directly, + instead of having to use dbus.h + + * dbus/dbus.h: fill in + + * dbus/dbus-message.h: sketch out a sample header file. + Include griping if you include it directly instead of + via dbus.h + + * dbus/dbus-macros.h: new file with macros for extern "C", + TRUE/FALSE, NULL, etc. + + * doc/file-boilerplate.c: put include guards in here + +2002-11-21 Havoc Pennington + + * doc/file-boilerplate.c: include both AFL and GPL boilerplate. + + * COPYING: include the GPL as well, and license code + under both AFL and GPL. + +2002-11-21 Havoc Pennington + + * acconfig.h: get rid of this + + * autogen.sh (run_configure): add --no-configure option + + * configure.in: remove AC_ARG_PROGRAM to make + autoconf complain less. add AC_PREREQ. + add AC_DEFINE third arg. + +2002-11-21 Anders Carlsson + + * doc/Makefile.am: + Fix references so we can distcheck. + +2002-11-21 Havoc Pennington + + * Initial module creation + diff --git a/NEWS.pre-1-0 b/NEWS.pre-1-0 new file mode 100644 index 00000000..7105bc51 --- /dev/null +++ b/NEWS.pre-1-0 @@ -0,0 +1,614 @@ +D-Bus 1.0.0 (08 November 2006) +== +- Documents updated with API/ABI garuntees +- Added missing patch FreeBSD need to run out of the box +- dbus-monitor now has a profile mode +- AUTHORS file updated with names from the ChangeLog + Thanks to everyone who helped get us here + +D-Bus 1.0 RC 3 (0.95) (02 November 2006) +== +- DBUS_API_SUBJECT_TO_CHANGE no longer needs to be defined when building apps +- ./configure checks now work when cross compiling +- dbus-uuidgen --ensure is now run in the init script so there is no need to + run it in a post script +- dbus-uuidgen now writes out to /var/lib/dbus to work with systems that do not + have a writable /etc. Packages should install and own the /var/lib/dbus + directory +- recursive locks are now used when dbus_threads_init_default is called +- standard_session_servicedirs tag added to the session.conf + under a normal build this specifies these service directories: + /usr/local/share/dbus-1/services + /usr/share/dbus-1/services + $HOME/.local/share/dbus-1/services +- fixed crash when a service directory is specified more than once +- fixed a crash in *BSD when watching config directories for changes +- fixed Irix build by using dirp->__dd_fd to get the file descriptor +- cleaned up the LOCAL_CREDS vs CMGCRED credential code so *BSD's don't + crash here anymore +- dbus_message_iter_get_array_len deprecated +- cleanup-man-pages.sh added so packagers can clean up Doxygen man page output + from 7 to 2 megs +- large documentation improvements +- numerous bug fixes + +D-Bus 1.0 RC 2 (0.94) (14 October 2006) +== +- dbus-uuidgen binary added for future remote machine identification + packagers should call dbus-uuidgen --ensure in their post +- GetMachineId peer method added to the bus API +- dbus_connection_set_route_peer_messages API added to let the bus send + peer messages directly to an app +- Autolaunch abilities added to dbus-launch with the --autolaunch flag + This feature allows libdbus to start a session bus if none can be found + This is an internal feature and should not be used by scripts + DBUS_SESSION_BUS_ADDRESS is still the correct way to specify a session bus +- dbus-launch now prints out a simple key value pairs instead of shell scripts + if one of the shell flags aren't used +- support DBUS_BLOCK_ON_ABORT env variable to cause blocking waiting for gdb +- weak ref are now held for shared connections so the right things happen + this fixes some pretty major bugs with the way connections were handled +- Some refactoring for Windows (doesn't effect Unix) +- Solaris build fixes +- MacOSX build fixes +- Cross compile build fixes. We now assume getpwnam_r is posix and va_lists + can be copied by value since we can't check this in a cross compile. If + this is not true for a particular target is up to the developer to patch. +- Bug fixing all around + +D-Bus 1.0 RC 1 (0.93) (14 September 2006) +== +- dbus_threads_init_default added for initalizing threads without the need for + bindings +- Filters are now properly removed +- dbus_connection_open now holds a hard ref to shared connections +- We now print out a warning and do nothing when someone tries to close a + shared connection +- The --introspect switch has been added to the bus for printing out + introspection data without actually running the bus +- LOCAL_CREDS socket credentials are now supported for systems which + support it such as NetBSD +- Generalize kqueue support so it works with NetBSD as well as FreeBSD +- Numerous bug fixes and memory leaks patched + +D-Bus 0.92 (18 August 2006) +== +- Proper thread locking added to pending calls +- Threading semantics changed from init early to init before the second thread + is started +- Correctly error out when an application tries to acquire or release the + org.freedesktop.DBus name instead of sending false result codes +- kqueue directory watching code can now be used to monitor config file changes + on FreeBSD +- --with-dbus-daemondir configure switch added so the daemon can be installed + separate from the user binaries +- Makefiles fixed for cygwin +- Various fixes for the ongoing Windows port +- Fixed docs and comments to use the D-Bus spelling instead of D-BUS +- Many memleaks and bugs fixed + +D-Bus 0.91 (24 July 2006) +== +- Remove some lingering bits left over from the bindings split +- Fix assertion causing D-Bus applications to crash when checks are enabled +- Fix a timeout bug which would block applications from being auto started + +D-Bus 0.90 (17 July 2006) +== +- API/ABI freeze for 1.0 +- Bindings are now split out into seperate packages +- ListActivatableNames added as a method on the bus +- Removed deprecated dbus_connection_disconnect (use dbus_connection_close) +- Shared connections are now unreffed on disconnect +- Fixed pending calls for threaded enviornments +- Pending calls get timed out on connection disconnect +- dbus_connection_send_with_reply returns TRUE and a NULL pending call + if you call it on a connection object which has been disconnected already + (it returns FALSE on Out of Memory errors only) +- dbus-monitor now correctly catches methods, not just signals +- dbus-monitor now prints object paths + +D-BUS 0.62 (12 June 2006) +== +- Doc fixes +- Added support for all data-types for the dbus tools +- Fixed eavesdropping on method calls (dbus-monitor) +- Fixed silent dropping of method calls with interface=NULL +- Fixed console ownership problems in Solaris +- Fixed installation of dbus-signature.h and #include it in dbus/dbus.h +- Flush the user database cache on config reload +- GLib bindings: + - Fix memory leaks + - Fix properties in DBusGProxy so that they can be given in any + order + - Added lots of assertions to ensure correct use + - Remove duplicated code + - Fix static string pointer uses in GPtrArray-based collections +- Python bindings: + - Remove reference to sys/cdefs.h +- Qt4 bindings: + - Code reorganized + - Added the dbusidl2cpp, dbuscpp2xml and dbus tools + - Added example programs (ping-pong, complex ping-pong, listnames, chat) + - Updated selftests + - Fixed compilation and .moc- and .ui-file processing and cleaning + - Made central classes derive from QObject + - Enhance error reporting + - Many bugfixes +- Mono bindings: + - Minor bugfixes + +D-BUS 0.61 (24 Febuary 2006) +== +- Documentation all around +- dbus-launch now produces correct sh and csh syntax +- Nested arrays now work correctly +- GLib bindings: + - Inheriting from DBusGProxy is now possible + - GPtrArrays can now be marshalled + - org.freedesktop.DBus.GLib.ClientCSymbol annotation added + - Openning connections to arbitrary addresses now supported +- Python bindings: + - sender_keyword and path_keyword keywords added to signal listener API + - Byte types now demarshal to unsigned char + - calling methods now do the correct thing +- Qt bindings: + - both Qt3 and Qt4 bindings can be built at the same time + - Use the standard org.freedesktop.DBus.Method.NoReply annotation + for the "async" calls instead of creating one for us. +- Mono bindings: + - 64bit arch fixes +- Massive bug fixing all around + +D-BUS 0.60 (30 November 2005) +== + +- major ABI/API changes - sonames changed +- RequestName queuing behavior has changed (refer to dbus-specification) + - DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT has been removed and + DBUS_NAME_FLAG_ALLOW_REPLACEMENT has been added to the flags +- signals emitted by the bus now show up in the introspect data +- auth EXTERNAL now supported on BSD varients +- ReleaseName method added to the bus to allow a service + to remove itself as owner of a bus name +- dbus_connection_read_write added for getting messages off the bus + in the absence of a mainloop +- Qt4 bindings added and the Qt3 bindings have been depricated +- python bindings: + - marshal using introspect data if available + - better exception handling and propigation + - private connections are now supported + - UTF-8 cleanups + - out_signature added to method decorators for specifying + how the return values should be marshaled + - sender_keyword added to method decorators for specifying + and argument to provide the unique name of the method caller + - async_callbacks added to method decorators + - multiple inheritance of classes now supported +- GLib bindings: + - respect NoReply annotations + - dbus_g_method_return_get_reply and dbus_g_method_return_send_reply + added to the lowlevel code for use when the dbus-glib marshalling + code is not adiquate +- numerous bug fixes all around + +D-BUS 0.50 (06 September 2005) +=== +This is a minor release from 0.36.2. The series number has changed +not because of any technical reasons but as an indication that we +are moving closer to 1.0. It is hoped that this will be the last +series to see major changes, most of which will be isolated to the +GLib and Python bindings, as we transition to concentrate more on +bug busting and code auditing. + +- D-Bus builds on the Cygwin platform +- Makefile cleanups +- Various bug fixes +- Optimization of the dbus object tree +- Memleaks and GIL crasher bugs have been fixed in the Python bindings + +D-BUS 0.36.2 (29 August 2005) +=== +- Security: Restrict other users from connecting to another users + session bus + +D-BUS 0.36.1 (24 August 2005) +=== +- Python Bindings: + - fixed to work with hal-device-manager + - For 64bit builds everything is installed to lib64/python2.4/ + since Python can't handle multilib + +D-BUS 0.36 (23 August 2005) +=== +- Maximum sized of cached messages have been reduced to 10K +- Match rules now allow matching on arguments inside the message +- introspect.xsl XSLT style sheet added for formatting introspection + data into XHTML for analysis +- Python bindings: + - now have working type objects for explicit + typecasting + - Variant type has been added + - Dictionaries, Variants and Arrays can all be passed the signiture or + type(s) of their children + - the optional timeout= keyword has been added when making method calls + - match on args has been implemented + - a .pth file has been added for dealing with libraries and python files + being in different directories such as in 64bit installs + - various bug fixes +- GLib bindings: + - deeply recursive types now supported + - many symbols are no longer exported as part of the public API + - various memleak and other bug fixes + +D-BUS 0.35.2 (17 July 2005) +=== +- Rename Unix Security Context to SELinux Security Context in API +- Fixed more dist errors that distcheck didn't pick up on +- Fixed various bugs in the python bindings that prevented them from working + +D-BUS 0.35.1 (16 July 2005) +=== +- Fixed dist error where python/dbus_bindings.pxd was being shipped + instead of dbus_bindings.pxd.in +- Use this instead of the 0.35 tarball + +D-BUS 0.35 (15 July 2005) +=== +- --with-dbus-user added to the configure scripts for configuring the + user the system bus runs on +- --with-console-auth-dir added to configure scripts for configuring the + directory to look in for console user locks +- service files for auto-starting D-Bus services now has the ability to pass + in command line arguments to the executable +- Huge auto-start bug squashed which caused some services not to start when + requested in rapid succession +- SE-Linux security contexts can now be appended to messages for inspection + by services that enforce their own security policies +- Colin says the GLib binding are ready for general consumption +- New GLib tutorial +- New GLib example code +- Python bindings are now version (0,42,0) +- Python bindings API has changed on the service side +- dbus.service has been split out as a seperate module +- dbus.service.Service is renamed to dbus.service.BusName +- dbus.service.Object has swapped the bus_name and object_path constructor + parameters to make it easier to do inheritance over the bus +- dbus.glib has been seperated out in order to lessen the dependency on glib + and to allow other mainloops to be integrated with the bindings including + a planned generic mainloop for non-gui apps. +- Python bindings now aquire the GIL when calling back into the python + interpreter. Fixes crashes when using threading and other random segfaults. +- New Python tutorial +- Numerous D-Bus bug fixes all around + +D-BUS 0.34 (15 June 2005) +=== +- dbus_connection_disconnect is deprecated in favor of dbus_connection_close +- The bus can now use D_NOTIFY (if available) to check when configuration files + have changed and reload them +- New dbus_message_has_path/member/interface API added +- The Ping message from the org.freedesktop.DBus.Peer interface is now handled +- Complete glib bindings overhaul (and are still under construction) +- Tutorial now has an updated GLib section +- GLib bindings can now send/receive hash tables, arrays and other complex types +- Python bindings overhaul (most public facing API's done) +- Python bindings have been split up into separate files +- Python added new type classes for hinting to the marshaler what type + to send over the wire +- Python bindings now have decorators for specifying exported methods and signals +- Numerous bug fixes + +D-BUS 0.33 (25 Apr 2005) +=== + +- downgrade requirement from GTK+-2.6 to 2.4 for building gtk components +- python binding API's have been overhalled to be more "pythonic" and cleaner +- python bindings now export dbus.version which is set to (0,40,0) +- python bindings now implement the org.freedesktop.DBus.Introspectable interface +- python binding match rules are now more flexable +- make check has been fixed +- many, many major bug fixes + +D-BUS 0.32 (29 Mar 2005) +=== + +- mono bindings now compiles correctly +- mono binding cleanups +- glib bindings generates wrappers for bus methods in dbus-glib-bindings.h +- glib binding cleanus +- users and groups can now be specified by UID and GID in config files +- numerous memory leak fixes +- various other fixes + +D-BUS 0.31 (07 Mar 2005) +=== + +- land the new message args API and recursive type system +- add docs and fixed Doxygen warnings throught source +- split out some functions not needed in libdbus to *-util.c source files +- take out type convienience functions +- libdbus now back below 150K +- booleans are now 32-bit instead of 8-bit +- specification updated +- grand renaming to strip out the use of "service" + just say "name" instead (or "bus name" when ambiguous) +- rename dbus-daemon-1 to dbus-daemon throughout +- rename activation to auto-start +- auto-start on by default now +- note that libdbus is the low-level API +- python bindings updated to the new API +- mono bindings updated to the new API +- add 16 bit types +- dictionaries are now ARRAYS of DICT_ENTRY +- dbus-glib-tool renamed to dbus-binding-tool +- massive rewrite of the glib bindings +- saner names for the dbus interface, object path and service defines +- new functions for handling type signitures +- bump sonames for libdbus and libdbus-glib +- various small fixes + +D-BUS 0.23 (11 Jan 2005) +=== + +- add setgroups() to drop supplementary groups +- updated SELinux support +- add an "at console" security policy +- fix a bug where org.freedesktop.DBus wasn't recognized as an existing + service. +- error out if --enable-mono is explicitly set and mono libs can't be found +- set the max_match_rules_per_connection limit from the config file. +- removed dbus_bug_get_with_g_main since it's been replaced by + dbus_g_bus_get +- fix fd leaks in socket code +- lots and lots of mono binding updates, including fixes to make it + compatible with Mono 1.1.3 +- added --nofork option to override config file setting at runtime +- added support for int64 and uint64 to the python bindings +- lots of python binding updates +- config file DTD updates +- use SerivceOwnerChanges signal instead of ServiceCreated and + ServiceDeleted +- fixes to the authentication code +- new init script for Slackware +- print out the pid even when --fork is passed +- increase preallocation sizes in DBusMessage to heavily reduce + reallocs +- lots of performance enhancements +- lots more small bug fixes + +D-BUS 0.22 +=== + +- add --reply-timeout to dbus-send +- fix a memleak +- fix Solaris/Forte build +- switch to AFL 2.1 rather than 2.0 to address patent termination clause + concerns +- add SELinux support +- mostly repair libxml backend for config parser, still doesn't + pass out of memory tests +- fix distcheck to include language bindings +- add GetConnectionUnixUser method on bus driver +- also for UnixProcessID +- lots of Python, Mono, other binding fixes +- change GLib bindings to not include dbus/dbus.h (fully encapsulate libdbus) +- pass paths as strings, not arrays of string +- add message signature header field +- cleanups to marshaling code +- clean up authentication code +- reload conf files on SIGHUP +- rename SERVICE/SENDER_SERVICE to DESTINATION/SENDER +- fix circular conf file inclusion +- allow empty arrays +- tons of other small bugfixes + +D-BUS 0.21 +=== + +- implement "auto activation" flag on messages, so the destination + service can be launched automatically +- fix a bug in custom type marshaling +- optimize case where multiple apps activate the same service + (avoid "thundering herd") +- add dynamic service file discovery/reloading +- fix a busy loop when blocking for a reply +- fix a 64-bit crash involving varargs +- fix a bus crash when processing an AcquireService +- allow appending TYPE_BYTE via append_args_valist +- fix dicts-inside-dicts +- enhancements to Python and Qt bindings + +D-BUS 0.20 +=== + +This release lands some very large API changes and numerous bugfixes. +The list of changes is too large to fully document here; please refer +to the documentation, and message-bus-list archives. + +D-BUS 0.13 +=== + +This is probably the last release before landing the large API changes +on the "dbus-object-names" branch. + +- fix system bus to always use filesystem socket; anyone + can create any abstract socket, which isn't secure + since if you can crash the system bus you'd be able + to replace it. +- add DTD for configuration file +- improve specification a bit + +D-BUS 0.12 +=== + +- fix "service messagebus status" on Red Hat +- fix demarshaling of DBUS_TYPE_NAMED +- fix "eval `dbus-launch --exit-with-session`" to exit properly +- fix build without --prefix +- useless fooling with Mono bindings +- useless fooling with gcj bindings +- fix srcdir != builddir +- fix various compiler warnings and other issues +- add get/set data to DBusMessage +- fix headers for C++ +- OS X build fixes +- abstract domain sockets support (Linux only) +- add dbus-cleanup-sockets utility for people + not using linux +- be consistent about defaulting to --session/--system + with command line tools +- merge in policies from included config files +- fix build on non-x86 +- docs updates +- lots of other bugfixes + +D-BUS 0.11 +=== + +- add --enable-docs to turn off/on the docbook stuff + (doesn't cover doxygen stuff yet) +- make people define DBUS_API_SUBJECT_TO_CHANGE + and read warning in README so they don't + expect the API to be frozen already +- rename .pc files to "dbus-1.pc" instead of + "dbus-1.0.pc" etc. - this will require changing + pkg-config invocations +- some docs cleanups +- add man pages for all executables +- allow send to/from bus driver in the default system.conf +- fix user lookup bug +- implement dbus-launch to launch the session message bus +- fix some thread deadlocks +- some performance profiling/optimization +- add dbus_bus_activate_service() function +- fix some minor bugs here and there +- install Red Hat initscript in the right place + +D-BUS 0.10 +=== + +- reversed order of args to dbus_message_new() +- renamed dbus_message_name_is() and some other + functions +- change DBusWatch to have dbus_watch_handle() + similar to dbus_timeout_handle(), drop + connection/server-specific handle routines +- change message serials to be unsigned +- implemented // features for + config file; system bus now has a deny-all policy + by default. +- system.conf has system.d + so packages can install additions to the default + policy to the messages they need. e.g. + CUPS might install a cups.conf - see + test/data/valid-config-files/system.d/test.conf + for an example. +- add timeouts for authentication, activation +- add glib-style "checks" on public API, enable + those by default, disable assertions by default +- add GMainContext argument to GLib setup functions, + can be NULL for default context. Needed for threads. +- add 64-bit integer type +- validate type of standard message header fields +- consider messages in the org.freedesktop.Local + namespace to be invalid (to avoid fake disconnect + messages for example) +- fix assorted memory leaks and other bugs in + the SHA-1 auth mechanism +- cache user database information (groups user is + in, etc.) helps a lot with NIS +- always store uid_t, pid_t, gid_t in "ulong" + rather than "int" +- implement config file settings for which + users can connect +- SHA-1 unit test +- dbus-send, dbus-monitor command line utilities +- fixed lots of misc crashes and other bugs + +D-BUS 0.9 +=== + +- implemented a test case for service activation, + and fixed many bugs exposed by that +- implemented recursive argument marshaling/demarshaling + for messages, allowing multidimensional arrays +- fixed up integration of message dispatch with + main loop by adding a callback on change of + dispatch status +- add a pidfile feature to daemon +- some build fixes +- clean up unix domain sockets on exit +- add --print-address and the ability + to create a random server address + in a temporary directory + +D-BUS 0.8 +=== + +- fix dumb bug in 0.7 + +D-BUS 0.7 +=== + +- implement configuration file used to control bus characteristics +- implement daemon mode, changing user ID, and other system + bus features +- add init scripts for systemwide bus +- add "make check-coverage" target to check test coverage +- more test suite additions +- many, many bugfixes +- many API changes/fixes + +D-BUS 0.6 +=== +- Vastly improved bus daemon test suite +- Lots of misc. bugfixes and memory leak fixes +- Support for marshalling key/value data +- Activation improvements. + +D-BUS 0.5 +=== + +- Specification updates +- port to OS X and other BSD variants +- port to Solaris +- Partial work on cookie-based authentication +- Thread safety fixes +- Lots of misc. bugfixes +- Support for more array types +- Add data slots to DBusServer +- DBusString security audit fixes +- Fix for systems (or valgrind) with unaligned malloc blocks + +D-BUS 0.4 +=== + +- Preliminary activation support. +- Better authentication test suite +- Bus test program +- Specification updates +- Thread safety +- Bug fixes + +D-BUS 0.3 +=== + + - Preliminary limitations + - Message sending works + - Bus client + - Array marshalling/demarshalling + - Services + - Better OOM handling in the bus + - In-proc debug transport + - Transport/server address support + +D-BUS 0.2 +=== + + - Include test code in the tarball. + +D-BUS 0.1 +=== + + - Initial release. -- cgit