113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <unistd.h>
213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <stdio.h>
313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <stdlib.h>
413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <selinux/selinux.h>
513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
685cfd2fe2e7fc351e631cf622a3ddbdf2bbea17eEric Parisint main(int argc __attribute__ ((unused)),
785cfd2fe2e7fc351e631cf622a3ddbdf2bbea17eEric Paris	 char **argv __attribute__ ((unused)))
813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{
913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	int rc;
1013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
1113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	rc = is_selinux_enabled();
1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	if (rc < 0) {
1313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle		fputs("getenforce:  is_selinux_enabled() failed", stderr);
1413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle		return 2;
1513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	}
1613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	if (rc == 1) {
1713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle		rc = security_getenforce();
1813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle		if (rc < 0) {
1913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle			fputs("getenforce:  getenforce() failed", stderr);
2013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle			return 2;
2113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle		}
2213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
2313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle		if (rc)
2413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle			puts("Enforcing");
2513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle		else
2613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle			puts("Permissive");
2713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	} else {
2813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle		puts("Disabled");
2913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	}
3013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
3113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	return 0;
3213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle}
33