92 |
= "file::transit", |
= "file::transit", |
93 |
[CCS_MAC_ENVIRON] |
[CCS_MAC_ENVIRON] |
94 |
= "misc::env", |
= "misc::env", |
95 |
[CCS_MAC_NETWORK_TCP_BIND] |
[CCS_MAC_NETWORK_INET_TCP_BIND] |
96 |
= "network::inet_tcp_bind", |
= "network::inet_tcp_bind", |
97 |
[CCS_MAC_NETWORK_TCP_LISTEN] |
[CCS_MAC_NETWORK_INET_TCP_LISTEN] |
98 |
= "network::inet_tcp_listen", |
= "network::inet_tcp_listen", |
99 |
[CCS_MAC_NETWORK_TCP_CONNECT] |
[CCS_MAC_NETWORK_INET_TCP_CONNECT] |
100 |
= "network::inet_tcp_connect", |
= "network::inet_tcp_connect", |
101 |
[CCS_MAC_NETWORK_TCP_ACCEPT] |
[CCS_MAC_NETWORK_INET_TCP_ACCEPT] |
102 |
= "network::inet_tcp_accept", |
= "network::inet_tcp_accept", |
103 |
[CCS_MAC_NETWORK_UDP_BIND] |
[CCS_MAC_NETWORK_INET_UDP_BIND] |
104 |
= "network::inet_udp_bind", |
= "network::inet_udp_bind", |
105 |
[CCS_MAC_NETWORK_UDP_SEND] |
[CCS_MAC_NETWORK_INET_UDP_CONNECT] |
106 |
|
= "network::inet_udp_connect", |
107 |
|
[CCS_MAC_NETWORK_INET_UDP_SEND] |
108 |
= "network::inet_udp_send", |
= "network::inet_udp_send", |
109 |
[CCS_MAC_NETWORK_UDP_RECV] |
[CCS_MAC_NETWORK_INET_UDP_RECV] |
110 |
= "network::inet_udp_recv", |
= "network::inet_udp_recv", |
111 |
[CCS_MAC_NETWORK_RAW_BIND] |
[CCS_MAC_NETWORK_INET_RAW_BIND] |
112 |
= "network::inet_raw_bind", |
= "network::inet_raw_bind", |
113 |
[CCS_MAC_NETWORK_RAW_SEND] |
[CCS_MAC_NETWORK_INET_RAW_CONNECT] |
114 |
|
= "network::inet_raw_connect", |
115 |
|
[CCS_MAC_NETWORK_INET_RAW_SEND] |
116 |
= "network::inet_raw_send", |
= "network::inet_raw_send", |
117 |
[CCS_MAC_NETWORK_RAW_RECV] |
[CCS_MAC_NETWORK_INET_RAW_RECV] |
118 |
= "network::inet_raw_recv", |
= "network::inet_raw_recv", |
119 |
|
[CCS_MAC_NETWORK_UNIX_STREAM_BIND] |
120 |
|
= "network::unix_stream_bind", |
121 |
|
[CCS_MAC_NETWORK_UNIX_STREAM_LISTEN] |
122 |
|
= "network::unix_stream_listen", |
123 |
|
[CCS_MAC_NETWORK_UNIX_STREAM_CONNECT] |
124 |
|
= "network::unix_stream_connect", |
125 |
|
[CCS_MAC_NETWORK_UNIX_DGRAM_BIND] |
126 |
|
= "network::unix_dgram_bind", |
127 |
|
[CCS_MAC_NETWORK_UNIX_DGRAM_CONNECT] |
128 |
|
= "network::unix_dgram_connect", |
129 |
|
[CCS_MAC_NETWORK_UNIX_DGRAM_SEND] |
130 |
|
= "network::unix_dgram_send", |
131 |
|
[CCS_MAC_NETWORK_UNIX_SEQPACKET_BIND] |
132 |
|
= "network::unix_seqpacket_bind", |
133 |
|
[CCS_MAC_NETWORK_UNIX_SEQPACKET_LISTEN] |
134 |
|
= "network::unix_seqpacket_listen", |
135 |
|
[CCS_MAC_NETWORK_UNIX_SEQPACKET_CONNECT] |
136 |
|
= "network::unix_seqpacket_connect", |
137 |
[CCS_MAC_SIGNAL] |
[CCS_MAC_SIGNAL] |
138 |
= "ipc::signal", |
= "ipc::signal", |
139 |
[CCS_MAX_MAC_INDEX + CCS_USE_ROUTE_SOCKET] |
[CCS_MAX_MAC_INDEX + CCS_USE_ROUTE_SOCKET] |
876 |
const char *keyword; |
const char *keyword; |
877 |
int (*write) (char *, struct ccs_domain_info *, |
int (*write) (char *, struct ccs_domain_info *, |
878 |
struct ccs_condition *, const bool); |
struct ccs_condition *, const bool); |
879 |
} ccs_callback[4] = { |
} ccs_callback[5] = { |
880 |
{ "network ", ccs_write_network }, |
{ "network inet ", ccs_write_inet_network }, |
881 |
|
{ "network unix ", ccs_write_unix_network }, |
882 |
{ "misc ", ccs_write_misc }, |
{ "misc ", ccs_write_misc }, |
883 |
{ "capability ", ccs_write_capability }, |
{ "capability ", ccs_write_capability }, |
884 |
{ "ipc ", ccs_write_ipc }, |
{ "ipc ", ccs_write_ipc }, |
894 |
if (!cond) |
if (!cond) |
895 |
return -EINVAL; |
return -EINVAL; |
896 |
} |
} |
897 |
for (i = 0; i < 4; i++) { |
for (i = 0; i < 5; i++) { |
898 |
if (!ccs_str_starts(&data, ccs_callback[i].keyword)) |
if (!ccs_str_starts(&data, ccs_callback[i].keyword)) |
899 |
continue; |
continue; |
900 |
write = ccs_callback[i].write; |
write = ccs_callback[i].write; |
1307 |
ccs_set_group(head); |
ccs_set_group(head); |
1308 |
ccs_set_string(head, "capability "); |
ccs_set_string(head, "capability "); |
1309 |
ccs_set_string(head, ccs_cap2keyword(ptr->operation)); |
ccs_set_string(head, ccs_cap2keyword(ptr->operation)); |
1310 |
} else if (acl_type == CCS_TYPE_IP_NETWORK_ACL) { |
} else if (acl_type == CCS_TYPE_INET_ACL) { |
1311 |
struct ccs_ip_network_acl *ptr = |
struct ccs_inet_acl *ptr = |
1312 |
container_of(acl, typeof(*ptr), head); |
container_of(acl, typeof(*ptr), head); |
1313 |
bit = ccs_fns(ptr->perm, bit); |
bit = ccs_fns(ptr->perm, bit); |
1314 |
if (bit >= CCS_MAX_NETWORK_OPERATION) |
if (bit >= CCS_MAX_NETWORK_OPERATION) |
1315 |
goto done; |
goto done; |
1316 |
ccs_set_group(head); |
ccs_set_group(head); |
1317 |
ccs_set_string(head, "network "); |
ccs_set_string(head, "network inet "); |
1318 |
ccs_set_string(head, ccs_net_protocol_keyword[ptr->protocol]); |
ccs_set_string(head, ccs_inet_keyword[ptr->protocol]); |
1319 |
ccs_set_space(head); |
ccs_set_space(head); |
1320 |
ccs_set_string(head, ccs_net_keyword[bit]); |
ccs_set_string(head, ccs_net_keyword[bit]); |
1321 |
ccs_set_space(head); |
ccs_set_space(head); |
1338 |
break; |
break; |
1339 |
} |
} |
1340 |
ccs_print_number_union(head, &ptr->port); |
ccs_print_number_union(head, &ptr->port); |
1341 |
|
} else if (acl_type == CCS_TYPE_UNIX_ACL) { |
1342 |
|
struct ccs_unix_acl *ptr = |
1343 |
|
container_of(acl, typeof(*ptr), head); |
1344 |
|
bit = ccs_fns(ptr->perm, bit); |
1345 |
|
if (bit >= CCS_MAX_NETWORK_OPERATION) |
1346 |
|
goto done; |
1347 |
|
ccs_set_group(head); |
1348 |
|
ccs_set_string(head, "network unix "); |
1349 |
|
ccs_set_string(head, ccs_unix_keyword[ptr->protocol]); |
1350 |
|
ccs_set_space(head); |
1351 |
|
ccs_set_string(head, ccs_net_keyword[bit]); |
1352 |
|
ccs_print_name_union(head, &ptr->name); |
1353 |
} else if (acl_type == CCS_TYPE_SIGNAL_ACL) { |
} else if (acl_type == CCS_TYPE_SIGNAL_ACL) { |
1354 |
struct ccs_signal_acl *ptr = |
struct ccs_signal_acl *ptr = |
1355 |
container_of(acl, typeof(*ptr), head); |
container_of(acl, typeof(*ptr), head); |
1385 |
case CCS_TYPE_MKDEV_ACL: |
case CCS_TYPE_MKDEV_ACL: |
1386 |
case CCS_TYPE_PATH2_ACL: |
case CCS_TYPE_PATH2_ACL: |
1387 |
case CCS_TYPE_PATH_NUMBER_ACL: |
case CCS_TYPE_PATH_NUMBER_ACL: |
1388 |
case CCS_TYPE_IP_NETWORK_ACL: |
case CCS_TYPE_INET_ACL: |
1389 |
|
case CCS_TYPE_UNIX_ACL: |
1390 |
goto next; |
goto next; |
1391 |
} |
} |
1392 |
done: |
done: |