policy_module(smoltclient, 1.2.0)

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

type smoltclient_t;
type smoltclient_exec_t;
application_domain(smoltclient_t, smoltclient_exec_t)

type smoltclient_tmp_t;
files_tmp_file(smoltclient_tmp_t)

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

allow smoltclient_t self:process { setsched getsched };
allow smoltclient_t self:fifo_file rw_fifo_file_perms;

manage_dirs_pattern(smoltclient_t, smoltclient_tmp_t, smoltclient_tmp_t)
manage_files_pattern(smoltclient_t, smoltclient_tmp_t, smoltclient_tmp_t)
files_tmp_filetrans(smoltclient_t, smoltclient_tmp_t, { dir file })

can_exec(smoltclient_t, smoltclient_tmp_t)

kernel_read_system_state(smoltclient_t)
kernel_read_network_state(smoltclient_t)
kernel_read_kernel_sysctls(smoltclient_t)

corecmd_exec_bin(smoltclient_t)
corecmd_exec_shell(smoltclient_t)

corenet_all_recvfrom_unlabeled(smoltclient_t)
corenet_all_recvfrom_netlabel(smoltclient_t)
corenet_tcp_sendrecv_generic_if(smoltclient_t)
corenet_tcp_sendrecv_generic_node(smoltclient_t)

corenet_sendrecv_http_client_packets(smoltclient_t)
corenet_tcp_connect_http_port(smoltclient_t)
corenet_tcp_connect_http_cache_port(smoltclient_t)
corenet_tcp_sendrecv_http_port(smoltclient_t)

dev_read_sysfs(smoltclient_t)
dev_read_urand(smoltclient_t)

fs_getattr_all_fs(smoltclient_t)
fs_getattr_all_dirs(smoltclient_t)
fs_list_auto_mountpoints(smoltclient_t)

files_getattr_generic_locks(smoltclient_t)
files_read_etc_runtime_files(smoltclient_t)

auth_use_nsswitch(smoltclient_t)

logging_send_syslog_msg(smoltclient_t)

miscfiles_read_hwdata(smoltclient_t)

optional_policy(`
	abrt_stream_connect(smoltclient_t)
')

optional_policy(`
	cron_system_entry(smoltclient_t, smoltclient_exec_t)
')

optional_policy(`
	dbus_system_bus_client(smoltclient_t)

	optional_policy(`
		hal_dbus_chat(smoltclient_t)
	')
')

optional_policy(`
    libs_exec_ldconfig(smoltclient_t)
')

optional_policy(`
	rpm_exec(smoltclient_t)
	rpm_read_db(smoltclient_t)
')
