2005-01-28 Joe Shaw <joeshaw@novell.com>
[platform/upstream/dbus.git] / ChangeLog
index 9f05ea4..1601539 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,958 @@
+2005-01-28  Joe Shaw  <joeshaw@novell.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+        * 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  <hp@redhat.com>
+       
+       * dbus/dbus-marshal-validate-util.c: break this out (and fix
+       build, apparently - nobody noticed?)
+       
+2005-01-26  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-marshal-recursive.h: remove todo comment
+
+2005-01-25  Joe Shaw  <joeshaw@novell.com>
+
+       * 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  <johnp@redhat.com>
+
+       * 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  <joeshaw@novell.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
+       tutorial, based on work from David Wheeler.
+
+2005-01-21  Havoc Pennington  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * update-dbus-docs.sh: script to update docs on the web site, only
+       works for me though. neener.
+
+2005-01-20  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
+       code can reveal bugs in it
+
+2005-01-20  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
+       select() version, patches from Tor Lillqvist
+
+2005-01-20  Havoc Pennington  <hp@redhat.com>
+
+       * doc/dbus-tutorial.xml: replace > with &gt;
+
+       * 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  <hp@redhat.com>
+
+       * rename dbus-daemon-1 to dbus-daemon throughout
+
+2005-01-18  Havoc Pennington  <hp@redhat.com>
+
+        * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * doc/dbus-specification.xml: partially update spec
+
+2005-01-17  Havoc Pennington  <hp@redhat.com>
+
+        * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+        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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+        * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <joeshaw@novell.com>
+
+       * NEWS: Update for 0.23.
+
+       * configure.in: Release 0.23.
+
+2005-01-12  Joe Shaw  <joeshaw@novell.com>
+
+       * 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  <joeshaw@novell.com>
+
+       Patch from Sjoerd Simons <sjoerd@luon.net>
+
+       * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
+       DESTDIR.  It breaks stuff.
+
+2005-01-11  Joe Shaw  <joeshaw@novell.com>
+
+       Patch from Tambet Ingo <tambet@ximian.com>
+
+       * 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  <joeshaw@novell.com>
+
+       Patch from Timo Teräs <ext-timo.teras@nokia.com>
+
+       * 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  <hp@redhat.com>
+
+       * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
+       return
+       
+2004-12-26  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
+
+2005-01-03  Havoc Pennington  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
+
+2005-01-01  Havoc Pennington  <hp@redhat.com>
+
+       * configure.in: add -Wfloat-equal
+
+2005-01-01  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
+       for a variety of reasons '==' doesn't do this.
+
+2004-12-31  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
+       I keep wishing I had
+
+2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
+
+       * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
+
+2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
+
+       * 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  <johnp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <johnp@redhat.com>
+       * Patch from Rob Taylor <robtaylor@fastmail.fm>
+
+       * 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  <oliv__a@users.sourceforge.net>
+
+       * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
+       better POSIX compliance.
+
+2004-12-19  Havoc Pennington  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <joeshaw@novell.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * test/glib/test-profile.c: clean up how the fake_malloc_overhead
+       thing was implemented
+
+2004-11-26  Havoc Pennington  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * dbus/dbus-threads.c (init_global_locks): forgot to put the
+       message cache lock here
+
+2004-11-26  Havoc Pennington  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+        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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <hp@redhat.com>
+
+       * 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  <walters@verbum.org>
+
+       * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
+       for extra paranoia.
+
+2004-11-09  Colin Walters  <walters@verbum.org>
+
+       * 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  <walters@verbum.org>
+
+       * dbus/dbus-transport-unix.c (do_authentication): Always
+       initialize auth_completed.
+       
+2004-11-07  Colin Walters  <walters@verbum.org>
+
+       * 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  <walters@verbum.org>
+
+       * bus/selinux.c (bus_selinux_pre_init): Kill some unused
+       variables.
+       
+2004-11-03  Colin Walters  <walters@verbum.org>
+
+       * bus/test-main.c (test_pre_hook): Fix test logic,
+       thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
+
+2004-11-02  Colin Walters  <walters@redhat.com>
+
+       * 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  <owen@discobabe.net>
+
+       Patch from Johan Fischer <linux@fischaz.com>
+       
+       * mono/doc/Makefile.am (install-data-local): Added directory
+       install for DESTDIR
+
+2004-10-29  Colin Walters  <walters@redhat.com>
+
+       * 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  <walters@redhat.com>
+
+       Patch from Ed Catmur <ed@catmur.co.uk>
+
+       * mono/doc/Makefile.am (install-data-local): Handle
+       DESTDIR.
+
+2004-10-29  Colin Walters  <walters@redhat.com>
+
+       * bus/.cvsignore, qt/.cvsignore: Update.
+
+2004-10-29  Colin Walters  <walters@redhat.com>
+
+       Patch from Kristof Vansant <de_lupus@pandora.be>
+
+       * 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  <walters@redhat.com>
+
+       * 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  <walters@redhat.com>
+
+       Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
+
+       * bus/services.c (bus_registry_acquire_service): 
+       Correctly retrieve service name from DBusString
+       for printing.
+
+2004-10-29  Colin Walters  <walters@redhat.com>
+
+       * dbus/dbus-glib.h: Update documentation to not
+       refer to internal APIs.
+
+2004-10-27  Joe Shaw  <joeshaw@novell.com>
+
+       * 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  <johnp@redhat.com>
+
+       * 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  <walters@verbum.org>
+
+       * AUTHORS: Fix my email address, the @gnu.org one
+       has been bouncing for some time.  Also add J5.
+       
+2004-10-21  Colin Walters  <walters@verbum.org>
+
+       * 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  <walters@verbum.org>
+
+       * bus/selinux.c (bus_selinux_enabled): Handle
+       --disable-selinux case.
+       
+2004-10-18  Colin Walters  <walters@verbum.org>
+
+       * 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  <walters@verbum.org>
+
+       * 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  <oliv__a@users.sourceforge.net>
 
        * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect