Home | History | Annotate | Download | only in src
      1 /*
      2  * Policy capability support functions
      3  */
      4 
      5 #include <string.h>
      6 #include <sepol/policydb/polcaps.h>
      7 
      8 static const char *polcap_names[] = {
      9 	"network_peer_controls",	/* POLICYDB_CAPABILITY_NETPEER */
     10 	"open_perms",			/* POLICYDB_CAPABILITY_OPENPERM */
     11 	"extended_socket_class",	/* POLICYDB_CAPABILITY_EXTSOCKCLASS */
     12 	"always_check_network",		/* POLICYDB_CAPABILITY_ALWAYSNETWORK */
     13 	NULL
     14 };
     15 
     16 int sepol_polcap_getnum(const char *name)
     17 {
     18 	int capnum;
     19 
     20 	for (capnum = 0; capnum <= POLICYDB_CAPABILITY_MAX; capnum++) {
     21 		if (polcap_names[capnum] == NULL)
     22 			continue;
     23 		if (strcasecmp(polcap_names[capnum], name) == 0)
     24 			return capnum;
     25 	}
     26 	return -1;
     27 }
     28 
     29 const char *sepol_polcap_getname(unsigned int capnum)
     30 {
     31 	if (capnum > POLICYDB_CAPABILITY_MAX)
     32 		return NULL;
     33 
     34 	return polcap_names[capnum];
     35 }
     36