• Colin Walters's avatar
    2004-11-07 Colin Walters <walters@verbum.org> · cdac3e05
    Colin Walters authored
    	* 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): 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
    	(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
    	(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.
services.c 22.8 KB