Commit graph

18 commits

Author SHA1 Message Date
David Zeuthen
1d19fc62e9 2005-06-14 David Zeuthen <davidz@redhat.com>
* bus/bus.c (process_config_every_time): Drop existing conf-dir
        watches (if applicable) and add new watches

        * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
        (main): Setup SIGIO signal handler if using D_NOTIFY

        * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs

        * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
        (merge_included): Also merge conf_dirs list
        (bus_config_parser_unref): Clear conf_dirs list
        (include_dir): Add directory to conf_dirs list
        (bus_config_parser_get_conf_dirs): New function

        * bus/dir-watch.[ch]: New files

        * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]

        * configure.in: Add checks for D_NOTIFY on Linux
2005-06-15 02:31:38 +00:00
Colin Walters
cdac3e058b 2004-11-07 Colin Walters <walters@verbum.org>
* bus/bus.c (load_config): Break into three
	separate functions: process_config_first_time_only,
	process_config_every_time, and process_config_postinit.
	(process_config_every_time): Move call of
	bus_registry_set_service_context_table into
	process_config_postinit.
	(process_config_postinit): New function, does
	any processing that needs to happen late
	in initialization (and also on reload).
	(bus_context_new): Instead of calling load_config,
	open config parser here and call process_config_first_time_only
	and process_config_every_time directly.  Later, after
	we have forked but before changing UID,
	invoke bus_selinux_full_init, and then call
	process_config_postinit.
	(bus_context_reload_config): As in bus_context_new,
	load parse file inside here, and call process_config_every_time
	and process_config_postinit.

	* bus/services.h, bus/services.c
	(bus_registry_set_service_context_table): Rename
	from bus_registry_set_sid_table.  Take string hash from config
	parser, and convert them here into SIDs.

	* bus/config-parser.c (struct BusConfigParser): Have
	config parser only store a mapping of service->context
	string.
	(merge_service_context_hash): New function.
	(merge_included): Merge context string hashes instead
	of using bus_selinux_id_table_union.
	(bus_config_parser_new): Don't use bus_selinux_id_table_new;
	simply create a new string hash.
	(bus_config_parser_unref): Unref it.
	(start_selinux_child): Simply insert strings into hash,
	don't call bus_selinux_id_table_copy_over.

	* bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
	(bus_selinux_id_table_copy_over): Delete.
2004-11-07 17:05:19 +00:00
Havoc Pennington
43605a6f4e 2004-08-09 Havoc Pennington <hp@redhat.com>
* COPYING: switch to Academic Free License version 2.1 instead of
	2.0, to resolve complaints about patent termination clause.
2004-08-10 03:07:01 +00:00
Havoc Pennington
1e9b185b0c 2004-07-24 Havoc Pennington <hp@redhat.com>
SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>

	* bus/selinux.c, bus/selinux.h: new file encapsulating selinux
	functionality

	* configure.in: add --enable-selinux

	* bus/policy.c (bus_policy_merge): add FIXME to a comment

	* bus/main.c (main): initialize and shut down selinux

	* bus/connection.c: store SELinux ID on each connection, to avoid
	repeated getting of the string context and converting it into
	an ID

	* bus/bus.c (bus_context_get_policy): new accessor, though it
	isn't used
	(bus_context_check_security_policy): check whether the security
	context of sender connection can send to the security context of
	recipient connection

	* bus/config-parser.c: add parsing for <selinux> and <associate>

	* dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
	implement dbus_connection_get_unix_fd()

	* dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
	function, used by the selinux stuff
2004-07-30 05:59:34 +00:00
Jon Trowbridge
e039be5838 2004-04-09 Jon Trowbridge <trow@ximian.com>
* bus/config-parser.c (bus_config_parser_new): Added a 'parent'
	    argument.  If non-null, the newly-constructed BusConfigParser will
	    be initialized with the parent's BusLimits instead of the default
	    values.
	    (include_file): When including a config file, pass in
	    the current parser as the parent and then copy the BusLimits
	    from the included BusConfigParser pack to the current parser.
	    (process_test_valid_subdir): Renamed from process_test_subdir.
	    (process_test_equiv_subdir): Added.  Walks through a directory,
	    descending into each subdirectory and loading the config files
	    it finds there.  If any subdirectory contains two config files
	    that don't produce identical BusConfigParser structs, fail.
	    For now, the BusConfigParser's BusPolicies are not compared.
	    (bus_config_parser_test): Call both process_test_valid_subdir and
	    process_test_equiv_subdir.

	    * bus/config-loader-libxml.c (bus_config_load): Take a parent
	    argument and pass it along to the call to bus_config_parser_new.
	    Also made a few small changes to allow this code to compile.

	    * bus/config-loader-expat.c (bus_config_load): Take a parent
	    argument and pass it along to the call to bus_config_parser_new.

	    * bus/bus.c (bus_context_new): Load the config file
	    with a NULL parent argument.
2004-04-09 19:50:29 +00:00
Richard Hult
a1df3040f2 2003-12-02 Richard Hult <richard@imendio.com>
* Update AFL version to 2.0 throughout the source files to reflect
	the update that was done a while ago.
2003-12-02 10:44:22 +00:00
Mikael Hallendal
9f1a60dbba 2003-11-26 Mikael Hallendal <micke@imendio.com>
* bus/*.[ch]:
	* dbus/*.[ch]:
	* glib/*.[ch]: Made ref functions return the pointer
2003-11-27 01:25:50 +00:00
Havoc Pennington
893d859ed4 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-28 19:29:42 +00:00
Havoc Pennington
3185d7edde 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 22:30:38 +00:00
Havoc Pennington
bc983ecf15 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-12 18:32:11 +00:00
Havoc Pennington
856361ff5b 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 23:15:41 +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
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
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
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
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
17e82f5728 add start on config parser files 2003-03-25 04:45:25 +00:00