policy_module(postfixpolicyd, 1.3.0)

########################################
#
# Declarations
#

type postfix_policyd_t;
type postfix_policyd_exec_t;
init_daemon_domain(postfix_policyd_t, postfix_policyd_exec_t)

type postfix_policyd_conf_t;
files_config_file(postfix_policyd_conf_t)

type postfix_policyd_initrc_exec_t;
init_script_file(postfix_policyd_initrc_exec_t)

type postfix_policyd_var_run_t;
files_pid_file(postfix_policyd_var_run_t)

########################################
#
# Local policy
#

allow postfix_policyd_t self:capability { sys_resource sys_chroot setgid setuid };
allow postfix_policyd_t self:process setrlimit;
allow postfix_policyd_t self:tcp_socket { accept listen };

allow postfix_policyd_t postfix_policyd_conf_t:dir list_dir_perms;
allow postfix_policyd_t postfix_policyd_conf_t:file read_file_perms;
allow postfix_policyd_t postfix_policyd_conf_t:lnk_file read_lnk_file_perms;

manage_files_pattern(postfix_policyd_t, postfix_policyd_var_run_t, postfix_policyd_var_run_t)
files_pid_filetrans(postfix_policyd_t, postfix_policyd_var_run_t, file)

corenet_tcp_sendrecv_generic_if(postfix_policyd_t)
corenet_tcp_sendrecv_generic_node(postfix_policyd_t)
corenet_tcp_bind_generic_node(postfix_policyd_t)

corenet_sendrecv_postfix_policyd_server_packets(postfix_policyd_t)
corenet_tcp_bind_postfix_policyd_port(postfix_policyd_t)
corenet_tcp_sendrecv_postfix_policyd_port(postfix_policyd_t)

corenet_sendrecv_mysqld_server_packets(postfix_policyd_t)
corenet_tcp_bind_mysqld_port(postfix_policyd_t)
corenet_tcp_sendrecv_mysqld_port(postfix_policyd_t)


logging_send_syslog_msg(postfix_policyd_t)

sysnet_dns_name_resolve(postfix_policyd_t)
