Commit graph

1525 commits

Author SHA1 Message Date
Havoc Pennington
07e3f76f8e 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 23:50:47 +00:00
Havoc Pennington
5ecb2a781f 2003-04-05 Havoc Pennington <hp@pobox.com>
* bus/Makefile.am (install-data-hook): add missing DESTDIR,
	patch from Colin Walters
2003-04-05 23:07:47 +00:00
Havoc Pennington
2f3fbd451d 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 20:38:01 +00:00
Havoc Pennington
6164a2e5f4 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 20:03:58 +00:00
Havoc Pennington
35ab7c6fab 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 19:09:49 +00:00
Havoc Pennington
2250539aee 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 19:03:40 +00:00
Havoc Pennington
0cc7669fb8 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 17:04:23 +00:00
Havoc Pennington
3a96e4ffd9 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-05 10:04:04 +00:00
Havoc Pennington
03b9ca6d4e 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-05 00:37:17 +00:00
Havoc Pennington
45d1479fad 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-04 01:55:28 +00:00
Havoc Pennington
1b08036103 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-04 00:39:22 +00:00
Havoc Pennington
f216e81432 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 21:56:22 +00:00
Havoc Pennington
eeb88949d8 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-03 05:22:49 +00:00
Havoc Pennington
5364beac6c 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-03 00:01:15 +00:00
Havoc Pennington
21cef58bc1 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 21:52:38 +00:00
Havoc Pennington
94790fef4a 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 21:43:29 +00:00
Havoc Pennington
e55fd2c670 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-02 20:14:52 +00:00
Havoc Pennington
cfa261b49d 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-02 00:29:33 +00:00
Havoc Pennington
44ed933284 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-04-01 05:33:01 +00:00
Havoc Pennington
8dfe82beb5 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-04-01 00:43:06 +00:00
Havoc Pennington
2e9393ffda 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-04-01 00:21:24 +00:00
Havoc Pennington
18c470cd2c 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 23:19:19 +00:00
Havoc Pennington
fa05de9230 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 20:56:29 +00:00
Havoc Pennington
7af5933433 2003-03-31 Havoc Pennington <hp@redhat.com>
* bus/main.c (main): fix up the command line arguments to be nicer
2003-03-31 18:58:14 +00:00
Havoc Pennington
e6809d1a69 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 08:28:23 +00:00
Havoc Pennington
29c71168cd 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-31 08:19:50 +00:00
Havoc Pennington
bc86794f23 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-31 04:01:00 +00:00
Anders Carlsson
d361874ef6 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 14:23:10 +00:00
Havoc Pennington
bf99381351 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-28 05:42:19 +00:00
Havoc Pennington
574c258bc9 2003-03-27 Havoc Pennington <hp@redhat.com>
* bus/config-loader-libxml.c (bus_config_load): add another error
	check
2003-03-28 00:01:53 +00:00
Anders Carlsson
24ae27fa76 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 21:06:17 +00:00
Anders Carlsson
4b13bb6d7f 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 19:21:42 +00:00
Havoc Pennington
269d74f214 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-26 07:16:03 +00:00
Havoc Pennington
90ed1d8458 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-26 03:58:11 +00:00
Havoc Pennington
ce4fd314c6 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-25 04:37:08 +00:00
Havoc Pennington
44fff65688 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-24 17:30:47 +00:00
Havoc Pennington
c3af5ccdbc 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-24 03:16:58 +00:00
Havoc Pennington
a26607ab68 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-23 07:41:54 +00:00
Havoc Pennington
b6ffea177f 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-21 02:38:40 +00:00
Havoc Pennington
056d76d809 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-20 07:57:39 +00:00
Havoc Pennington
a284a148e4 2003-03-19 Havoc Pennington <hp@redhat.com>
* bus/policy.c: start sketching code for policy restrictions on
	what connections can do.
2003-03-19 23:48:17 +00:00
Havoc Pennington
b052524195 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 23:22:12 +00:00
Anders Carlsson
d04cc0dc29 2003-03-18 Anders Carlsson <andersca@codefactory.se>
* configure.in: 0.6

	* NEWS: Update.
2003-03-18 09:41:54 +00:00
Havoc Pennington
615fa679e1 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 23:46:21 +00:00
Havoc Pennington
1fbf6fa49c 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 23:29:03 +00:00
Anders Carlsson
73d7ba1d13 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 06:49:33 +00:00
Havoc Pennington
f7c24715b5 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-17 05:39:10 +00:00
Havoc Pennington
15f02e1071 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 03:09:31 +00:00
Anders Carlsson
0e298fbeb5 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-17 02:26:41 +00:00
Havoc Pennington
23e4978e2f 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-17 02:20:18 +00:00