| /* |
| * Policy capability support functions |
| */ |
| |
| #include <string.h> |
| #include <sepol/policydb/polcaps.h> |
| |
| static const char *polcap_names[] = { |
| "network_peer_controls", /* POLICYDB_CAPABILITY_NETPEER */ |
| "open_perms", /* POLICYDB_CAPABILITY_OPENPERM */ |
| "extended_socket_class", /* POLICYDB_CAPABILITY_EXTSOCKCLASS */ |
| "always_check_network", /* POLICYDB_CAPABILITY_ALWAYSNETWORK */ |
| "cgroup_seclabel", /* POLICYDB_CAPABILITY_SECLABEL */ |
| "nnp_nosuid_transition", /* POLICYDB_CAPABILITY_NNP_NOSUID_TRANSITION */ |
| NULL |
| }; |
| |
| int sepol_polcap_getnum(const char *name) |
| { |
| int capnum; |
| |
| for (capnum = 0; capnum <= POLICYDB_CAPABILITY_MAX; capnum++) { |
| if (polcap_names[capnum] == NULL) |
| continue; |
| if (strcasecmp(polcap_names[capnum], name) == 0) |
| return capnum; |
| } |
| return -1; |
| } |
| |
| const char *sepol_polcap_getname(unsigned int capnum) |
| { |
| if (capnum > POLICYDB_CAPABILITY_MAX) |
| return NULL; |
| |
| return polcap_names[capnum]; |
| } |