+2003-03-12 Havoc Pennington <hp@pobox.com>
+
+ 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 <hp@redhat.com>
+
+ 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 <andersca@codefactory.se>
+
+ * 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 <andersca@codefactory.se>
+
+ * dbus/dbus-dict.h: Add DBUS_END_DECLS.
+
+2003-03-07 Anders Carlsson <andersca@codefactory.se>
+
+ * 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 <michael@server.home>
+
+ * configure.in: if we don't have kde-config, disable have_qt.
+
+2003-03-07 Anders Carlsson <andersca@codefactory.se>
+
+ * 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 <hp@pobox.com>
+
+ * 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 <andersca@codefactory.se>
+
+ * 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 <andersca@codefactory.se>
+
+ * 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 <andersca@codefactory.se>
+
+ * README: Add some things.
+
+2003-03-04 Anders Carlsson <andersca@codefactory.se>
+
+ * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
+ after case DBUS_TYPE_BOOELAN.
+
+2003-03-02 Havoc Pennington <hp@pobox.com>
+
+ * 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 <hp@pobox.com>
+
+ * dbus/dbus-message.c (decode_header_data): fix to always init
+ message_padding, from Benjamin Dauvergne
+
+2003-03-02 Havoc Pennington <hp@pobox.com>
+
+ * configure.in: 0.5
+
+ * NEWS: Update.
+
+2003-03-01 Joe Shaw <joe@assbarn.com>
+
+ * 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 <alexl@redhat.com>
+
+ * 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 <hp@pobox.com>
+
+ * 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 <hp@pobox.com>
+
+ * 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 <hp@redhat.com>
+
+ 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 <hp@redhat.com>
+
+ * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
+
+2003-02-26 Alexander Larsson <alexl@redhat.com>
+
+ * 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 <hp@pobox.com>
+
+ * 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 <andersca@codefactory.se>
+
+ * 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 <andersca@codefactory.se>
+
+ * 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 <hp@pobox.com>
+
+ * 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 <hp@pobox.com>
+
+ * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
+
+2003-02-22 Havoc Pennington <hp@pobox.com>
+
+ * 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 <andersca@codefactory.se>
+
+ * 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 <andersca@codefactory.se>
+
+ * 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 <andersca@codefactory.se>
+
+ * dbus/dbus-message.c: (dbus_message_append_nil):
+ Fix a silly.
+
+2003-02-21 Anders Carlsson <andersca@codefactory.se>
+
+ * 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 <andersca@codefactory.se>
+
+ * 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 <alexl@redhat.com>
+
+ * 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 <hp@pobox.com>
* Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in