1ec3d1a
## <summary>Policy for TCP daemon.</summary>
1ec3d1a
1ec3d1a
########################################
1ec3d1a
## <summary>
1ec3d1a
##	Execute tcpd in the tcpd domain.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	Domain allowed to transition.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`tcpd_domtrans',`
1ec3d1a
	gen_require(`
1ec3d1a
		type tcpd_t, tcpd_exec_t;
1ec3d1a
	')
1ec3d1a
1ec3d1a
	domtrans_pattern($1, tcpd_exec_t, tcpd_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
########################################
1ec3d1a
## <summary>
1ec3d1a
##	Create a domain for services that
1ec3d1a
##	utilize tcp wrappers.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	Type to be used as a domain.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
## <param name="entry_point">
1ec3d1a
##	<summary>
1ec3d1a
##	Type of the program to be used as an entry point to this domain.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`tcpd_wrapped_domain',`
1ec3d1a
	gen_require(`
1ec3d1a
		type tcpd_t;
1ec3d1a
		role system_r;
1ec3d1a
	')
1ec3d1a
1ec3d1a
	domtrans_pattern(tcpd_t, $2, $1)
1ec3d1a
	role system_r types $1;
1ec3d1a
')