2003-09-28  Havoc Pennington  <hp@pobox.com>

	* real 0.13 release

2003-09-28  Havoc Pennington  <hp@pobox.com>

	* doc/Makefile.am (dbus-specification.html): testing a funky hack
	to work with Debian db2html

2003-09-28  Havoc Pennington  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* doc/TODO:
	* doc/busconfig.dtd:
	Add busconfig DTD.
	
2003-08-09  Anders Carlsson  <andersca@codefactory.se>

	* doc/dbus-specification.sgml:
	Add activation reply values.
	
2003-08-05  Havoc Pennington  <hp@redhat.com>

	* configure.in: 0.12

2003-08-05  Anders Carlsson  <andersca@codefactory.se>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* dbus/dbus-message.c (dbus_message_iter_get_named): 
	fix from Andy Hanton to remove broken "+1"

2003-07-16  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* mono/Connection.cs: set up connection with the glib main loop

2003-07-01  Havoc Pennington  <hp@redhat.com>

	* doc/dbus-specification.sgml: clarify the format of a type code, 
	change suggested by Jim Blandy

2003-06-29  Miloslav Trmac  <mitr@volny.cz>

	* 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  <hp@pobox.com>

	* mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)

2003-06-23  Anders Carlsson  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* mono/Connection.cs: add more bindings

	* dbus/dbus-threads.c (dbus_threads_init): allow calling this
	more than once.

2003-06-22  Havoc Pennington  <hp@pobox.com>

	* mono/Connection.cs, mono/DBus.cs, mono/Error.cs: 
	Start wrapping more stuff.

2003-06-22  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <philb@gnu.org>

	* tools/dbus-monitor.1: Updated.

	* tools/dbus-send.1: Likewise.

2003-06-20  Anders Carlsson  <andersca@codefactory.se>

	* 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  <philb@gnu.org>

	* 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  <andersca@codefactory.se>

	* glib/dbus-glib.h: Fix so that dbus-glib.h can be used
	from C++ (Patch by Miloslav Trmac).

2003-06-15  Joe Shaw  <joe@assbarn.com>

	* configure.in: Check for socklen_t.

	* dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.

	* test/test-segfault.c: Add #include <sys/time.h>

	* tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
	dbus-launch needs it.

2003-06-09  Havoc Pennington  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <walters@verbum.org>

	* tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).

2003-05-18  Anders Carlsson  <andersca@codefactory.se>

	* dbus/dbus-message.c (dbus_message_new): Remove @todo.

2003-05-17  Colin Walters  <walters@gnu.org>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <walters@verbum.org>

	* 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  <hp@redhat.com>

	* dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
	on non-x86. ifdef's are evil.

2003-05-15  Havoc Pennington  <hp@redhat.com>

	* 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  <jwillcox@gnome.org>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* dbus/dbus-connection.c (dbus_connection_preallocate_send):
	unlock mutex on successful return, patch from Anders Gustafsson

2003-05-04  Havoc Pennington  <hp@pobox.com>

	* dbus-glib-1.pc.in (Requires): fix dependencies, from 
	Anders Gustafsson

2003-05-04  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1: 
	add some man pages

2003-05-03  Colin Walters  <walters@verbum.org>

	* 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  <hp@redhat.com>

	* bus/system.conf.in: allow send/receive to/from message bus
	service

2003-04-30  Havoc Pennington  <hp@redhat.com>

	* configure.in: print a note when building with unit tests and
	without assertions

2003-04-30  Havoc Pennington  <hp@redhat.com>

	* Makefile.am: add a check-local that complains if you didn't
	configure with --enable-tests

2003-04-29  Havoc Pennington  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* configure.in: 0.10

	* NEWS: update

	* bus/system.conf.in: add <includedir>system.d</includedir>
	
	* 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  <hp@pobox.com>

	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  <hp@redhat.com>

        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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* test/data/valid-config-files/basic.conf: add <limit> tags to
	this test
	
	* bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
	<limit> tag in configuration file.
	
2003-04-24  Havoc Pennington  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <jwillcox@gnome.org>

	* 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  <hp@pobox.com>

	* doc/dbus-specification.sgml: document the restrictions on
	message and service names

2003-04-22  Havoc Pennington  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>
	
	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>
	
        * 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* configure.in: add another directory to look for qt in.

2003-04-11  Havoc Pennington  <hp@redhat.com>

	* AUTHORS: add Colin Walters

2003-04-11  Havoc Pennington  <hp@redhat.com>

	* NEWS: update

	* configure.in: 0.9

2003-04-11  Havoc Pennington  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* bus/bus.c (bus_context_new): move credentials change after
	creating pidfile

2003-04-11  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <alexl@redhat.com>

	* doc/dbus-specification.sgml:
	s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
	
2003-04-10  Alexander Larsson  <alexl@redhat.com>

	* 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  <alexl@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
	I'd checked this in earlier but hadn't.

2003-04-09  Havoc Pennington  <hp@redhat.com>

	* bus/dispatch.c (bus_dispatch_test): get a bit further through
	the activation test (man this is getting old!)

2003-04-09  Havoc Pennington  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <walters@gnu.org>
 
 	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <alexl@redhat.com>

	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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <walters@verbum.org>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* NEWS: update

	* configure.in: 0.8

2003-04-05  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* bus/Makefile.am (install-data-hook): add missing DESTDIR, 
	patch from Colin Walters

2003-04-05  Havoc Pennington  <hp@pobox.com>

	* doc/config-file.txt (Elements): fix docs of <auth> 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  <hp@pobox.com>

	* test/Makefile.am (dist-hook): also dist *.in files

	* NEWS: update

	* configure.in: 0.7
	
2003-04-05  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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 <type> 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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 <include> and <includedir> and
	<servicedir> 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* bus/config-parser.c, bus/bus.c: implement <servicedir> and
	<includedir> (at least mostly)

	* dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
	first, then the user ID

2003-04-01  Havoc Pennington  <hp@pobox.com>

	* 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 <fork> option and fill in code for <auth> 

	* bus/system.conf.in: add <fork/> to default configuration, 
	and limit auth mechanisms to EXTERNAL

	* doc/config-file.txt (Elements): add <fork>

	* dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
	(_dbus_change_identity): new function

2003-03-31  Havoc Pennington  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

        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  <hp@redhat.com>

	* bus/main.c (main): fix up the command line arguments to be nicer

2003-03-31  Havoc Pennington  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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 <servicedir>

	* 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  <hp@pobox.com>

	* 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 <includedir>

2003-03-28  Havoc Pennington  <hp@pobox.com>

	* dbus/dbus-string.c (_dbus_string_copy_data_len)
	(_dbus_string_copy_data): new functions

2003-03-28  Anders Carlsson  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* bus/config-loader-libxml.c (bus_config_load): add another error
	check

2003-03-26  Anders Carlsson  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

        * 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
	new function
	(dbus_connection_get_unix_user): new function

2003-03-20  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* bus/policy.c: start sketching code for policy restrictions on 
	what connections can do.

2003-03-18  Havoc Pennington  <hp@redhat.com>

	* 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  <andersca@codefactory.se>

	* configure.in: 0.6

	* NEWS: Update.
	
2003-03-17  Havoc Pennington  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	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  <hp@pobox.com>

	* dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot

2003-03-17  Anders Carlsson  <andersca@codefactory.se>

	* bus/activation.c (bus_activation_activate_service): Append
	the pending activation entry to the list of pending activations.

2003-03-16  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* doc/dbus-specification.sgml:
	Document reply message for ActivateService.
	
2003-03-16  Anders Carlsson  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
	implementation

2003-03-16  Anders Carlsson  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	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  <hp@pobox.com>

	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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <andersca@codefactory.se>

	* bus/dispatch.c (send_service_nonexistent_error): Fix typo.

2003-03-13  Havoc Pennington  <hp@pobox.com>

	* 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  <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
	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  <andersca@codefactory.se>

	* 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  <micke@codefactory.se>

	* 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  <hp@pobox.com>

	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  <hp@pobox.com>

	* 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  <joe@assbarn.com>

	* 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  <hp@pobox.com>

	* AUTHORS: add Alex

2003-02-17  Havoc Pennington  <hp@pobox.com>

	* 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  <andersca@codefactory.se.>

	Release 0.4
	
	* NEWS: Update

2003-02-17  Anders Carlsson  <andersca@codefactory.se>

	* doc/dbus-specification.sgml:
	Specification updates.
	
2003-02-17  Anders Carlsson  <andersca@codefactory.se>

	* 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  <alexl@redhat.com>

	* dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
	Added todo.

2003-02-17  Anders Carlsson  <andersca@codefactory.se>

	* doc/.cvsignore:
	* doc/Makefile.am:
	* doc/dbus-test-plan.sgml:
	Add test plan document.
	
	* test/Makefile.am:
	Fix distcheck.
	
2003-02-17  Anders Carlsson  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
	backward conditional

2003-02-16  Alexander Larsson  <alexl@redhat.com>

	* 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  <alexl@redhat.com>

	* dbus/dbus-hash.c (_dbus_hash_table_unref):
	Actually free keys and values when destroying hashtable.

2003-02-16  Anders Carlsson  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <zack@kde.org>

	* qt/dbus-qthread.cpp:  small casting fix

2003-02-15  Anders Carlsson  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <alexl@redhat.com>

	* 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  <hp@pobox.com>

	* dbus/dbus-message.c (dbus_message_new): fool around with the
	docs

2003-02-14  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* dbus/dbus-errors.h (struct DBusError): add a word of padding 
	to DBusError

2003-02-13  Anders Carlsson  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* dbus/dbus-errors.c:
	* dbus/dbus-message.c:
	* dbus/dbus-string.c:
	Documentation fixes.

2003-02-13  Anders Carlsson  <andersca@codefactory.se>

	* glib/dbus-gmain.c: (timeout_handler), (add_timeout),
	(remove_timeout):
	Implement support for timeouts in dbus-glib.
	
2003-02-13  Anders Carlsson  <andersca@codefactory.se>

	* 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  <rhult@codefactory.se>

	* bus/main.c: Fix build.

	* dbus/dbus-errors.h: 
	* dbus/dbus-errors.c: Fix copyright for Anders.

2003-02-13  Anders Carlsson  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

        * 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  <andersca@codefactory.se>

	* bus/Makefile.am:
	* bus/desktop-file.c:
	* bus/desktop-file.h:
	Add a desktop file parser.

2003-02-11  Zack Rusin  <zack@kde.org>

	* qt/message.[h|cpp]: sample implementation
	of the KDE wrapper for DBusMessage

2003-02-09  Zack Rusin  <zack@kde.org>

	* test/bus-test.c: make_it_compile
	* doc/dbus-specification.sgml: minimal semantic fix

2003-02-06  Anders Carlsson  <andersca@codefactory.se>

	Release 0.3
	
	* NEWS: Update

2003-02-06  Anders Carlsson  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <alexl@redhat.com>

	* dbus/dbus-message.c (dbus_message_append_fields):
	Correct docs.

2003-02-02  Anders Carlsson  <andersca@codefactory.se>

	* doc/dbus-specification.sgml:
	Update address format section.
	
2003-02-02  Anders Carlsson  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* bus/Makefile.am:
	Add libdbus-daemon.la and link to it.

2003-02-01  James Willcox  <jwillcox@gnome.org>

	* bus/driver.c: (bus_driver_handle_own_service):
	Actually include the service reply code in the message.

2003-02-02  Anders Carlsson  <andersca@codefactory.se>

	* bus/driver.c: (bus_driver_handle_service_exists):
	Don't unref the incoming message.
	
2003-02-02  Anders Carlsson  <andersca@codefactory.se>

	* dbus/dbus.h: Add dbus-address.h and dbus-bus.h

2003-02-02  Anders Carlsson  <andersca@codefactory.se>

	* 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  <alexl@redhat.com>

	* 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  <andersca@codefactory.se>

	* 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  <alexl@redhat.com>

	* dbus/dbus-message.c (dbus_message_append_fields):
	Add some more doc comments.

2003-02-01  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>
	
	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* dbus/dbus-message.c (check_message_handling): fix assertion
	failure on set_client_serial

2003-01-28  Havoc Pennington  <hp@pobox.com>

	* dbus/dbus-server-debug.c: Add doc section comments
	
	* dbus/dbus-transport-debug.c: add doc section comments
	
2003-01-28  Havoc Pennington  <hp@redhat.com>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* dbus/dbus-message.c (check_message_handling): function to check 
	on the loaded message, iterates over it etc.

2003-01-28  Havoc Pennington  <hp@pobox.com>

	* test/Makefile.am (dist-hook): fix make distdir

	* dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check

2003-01-27  Havoc Pennington  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* dbus/dbus-message.c (dbus_message_set_sender): support deleting
	the sender by setting to NULL

2003-01-26  Havoc Pennington  <hp@pobox.com>

        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  <andersca@codefactory.se>

	* bus/driver.c: (bus_driver_handle_hello),
	(bus_driver_send_welcome_message):
	Plug leaks
	
2003-01-26  Anders Carlsson  <andersca@codefactory.se>

	* 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  <rhult@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* dbus/dbus-list.c: (alloc_link), (free_link):
	Use a memory pool for the links.
	
2003-01-25  Anders Carlsson  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* doc/dbus-specification.sgml: add some stuff

2003-01-22  Havoc Pennington  <hp@pobox.com>

	* doc/dbus-specification.sgml: Start to document the protocol.

2003-01-22  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@pobox.com>

        (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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

        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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

        Release 0.2
	
	* NEWS: update

2003-01-15  Havoc Pennington  <hp@redhat.com>

	* test/Makefile.am: fix so that test source code ends up in the
	distribution on make distcheck

2003-01-15  Havoc Pennington  <hp@redhat.com>

        Release 0.1.
	
	* NEWS: update	

2003-01-15  Havoc Pennington  <hp@redhat.com>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* configure.in: change --enable-test/--enable-ansi action-if-given
	to enable_foo=$enableval instead of enable_foo=yes

2003-01-08  Havoc Pennington  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <andersca@codefactory.se>

	* dbus/Makefile.am (dbusinclude_HEADERS): Install
	dbus-connection.h

2003-01-08  Anders Carlsson  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* 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  <porten@kde.org>

	* 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  <kris@gtk.org>

	* dbus/Makefile.am: fixup export-symbols-regex.

2002-12-27  Anders Carlsson  <andersca@codefactory.se>

	* acinclude.m4: Add this file and put the 
	PKG_CHECK_MODULE macro in it.

2002-12-27  Anders Carlsson  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* 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  <porten@kde.org>

	* qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions

2002-12-24  Zack Rusin  <zack@kde.org>

	* 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  <hp@pobox.com>

	* 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  <andersca@codefactory.se>

	* 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  <andersca@codefactory.se>

	* 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  <porten@kde.org>

	* autogen.sh: check for libtoolize before attempting to use it 
	
	* dbus/dbus-transport-unix.c: include <sys/time.h> 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* dbus/dbus-internals.c (_dbus_verbose): fix to not 
	always print the first verbose message.

2002-11-24  Havoc Pennington  <hp@pobox.com>

        * 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@pobox.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@pobox.com>

	* 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  <zack@kde.org>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <hp@redhat.com>

	* 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  <andersca@codefactory.se>

	* doc/Makefile.am:
	Fix references so we can distcheck.

2002-11-21  Havoc Pennington  <hp@redhat.com>

	* Initial module creation

