Dominick Grift dc92193
## <summary>Courier IMAP and POP3 email servers.</summary>
Chris PeBenito 9401ae1
Dominick Grift dc92193
#######################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift dc92193
##	The template to define a courier domain.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift dc92193
## <param name="domain_prefix">
Chris PeBenito 9401ae1
##	<summary>
Dominick Grift dc92193
##	Domain prefix to be used.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
template(`courier_domain_template',`
Dominick Grift dc92193
	gen_require(`
Dominick Grift dc92193
		attribute courier_domain;
Dominick Grift dc92193
	')
Chris PeBenito 9401ae1
Dominick Grift dc92193
	########################################
Chris PeBenito 9401ae1
	#
Chris PeBenito 9401ae1
	# Declarations
Chris PeBenito 9401ae1
	#
Chris PeBenito 9401ae1
Dominick Grift dc92193
	type courier_$1_t, courier_domain;
Chris PeBenito 9401ae1
	type courier_$1_exec_t;
Chris PeBenito 9401ae1
	init_daemon_domain(courier_$1_t, courier_$1_exec_t)
Chris PeBenito 9401ae1
Dominick Grift dc92193
	########################################
Chris PeBenito 9401ae1
	#
Dominick Grift dc92193
	# Policy
Chris PeBenito 9401ae1
	#
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	can_exec(courier_$1_t, courier_$1_exec_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift dc92193
##	Execute the courier authentication
Dominick Grift dc92193
##	daemon with a domain transition.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift dc92193
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`courier_domtrans_authdaemon',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type courier_authdaemon_t, courier_authdaemon_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift dc92193
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, courier_authdaemon_exec_t, courier_authdaemon_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Dominick Grift 8299017
#######################################
Dominick Grift 8299017
## <summary>
Dominick Grift 8299017
##	Connect to courier-authdaemon over
Dominick Grift 8299017
##	a unix stream socket.
Dominick Grift 8299017
## </summary>
Dominick Grift 8299017
## <param name="domain">
Dominick Grift 8299017
##	<summary>
Dominick Grift 8299017
##	Domain allowed access.
Dominick Grift 8299017
##	</summary>
Dominick Grift 8299017
## </param>
Dominick Grift 8299017
#
Dominick Grift 8299017
interface(`courier_stream_connect_authdaemon',`
Dominick Grift 8299017
	gen_require(`
Dominick Grift 8299017
		type courier_authdaemon_t, courier_spool_t;
Dominick Grift 8299017
	')
Dominick Grift 8299017
Dominick Grift 8299017
	files_search_spool($1)
Dominick Grift 8299017
	stream_connect_pattern($1, courier_spool_t, courier_spool_t, courier_authdaemon_t)
Dominick Grift 8299017
')
Dominick Grift 8299017
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift dc92193
##	Execute the courier POP3 and IMAP
Dominick Grift dc92193
##	server with a domain transition.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift dc92193
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`courier_domtrans_pop',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type courier_pop_t, courier_pop_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift dc92193
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, courier_pop_exec_t, courier_pop_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift dc92193
##	Read courier config files.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift dc92193
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`courier_read_config',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type courier_etc_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift dc92193
	files_search_etc($1)
Chris PeBenito 9401ae1
	read_files_pattern($1, courier_etc_t, courier_etc_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Create, read, write, and delete courier
Chris PeBenito 9401ae1
##	spool directories.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift dc92193
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`courier_manage_spool_dirs',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type courier_spool_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift dc92193
	files_search_var($1)
Chris PeBenito 9401ae1
	manage_dirs_pattern($1, courier_spool_t, courier_spool_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Create, read, write, and delete courier
Chris PeBenito 9401ae1
##	spool files.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift dc92193
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`courier_manage_spool_files',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type courier_spool_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift dc92193
	files_search_var($1)
Chris PeBenito 9401ae1
	manage_files_pattern($1, courier_spool_t, courier_spool_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Read courier spool files.
Chris PeBenito 9401ae1
## </summary>
Dominick Grift dc92193
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`courier_read_spool',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type courier_spool_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift dc92193
	files_search_var($1)
Chris PeBenito 9401ae1
	read_files_pattern($1, courier_spool_t, courier_spool_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift dc92193
##	Read and write courier spool pipes.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`courier_rw_spool_pipes',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type courier_spool_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift dc92193
	files_search_var($1)
Chris PeBenito 9401ae1
	allow $1 courier_spool_t:fifo_file rw_fifo_file_perms;
Chris PeBenito 9401ae1
')