18290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <unistd.h>
28290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <stdio.h>
38290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <stdlib.h>
48290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <errno.h>
58290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <selinux/selinux.h>
68290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley
78290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalleyint getenforce_main(int argc, char **argv)
88290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley{
98290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    int rc;
108290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley
118290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    rc = is_selinux_enabled();
128290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    if (rc <= 0) {
138290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        printf("Disabled\n");
148290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        return 0;
158290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    }
168290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley
178290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    rc = security_getenforce();
188290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    if (rc < 0) {
198290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        fprintf(stderr, "Could not get enforcing status:  %s\n",
208290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley                strerror(errno));
218290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        return 2;
228290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    }
238290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley
248290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    if (rc)
258290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        printf("Enforcing\n");
268290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    else
278290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        printf("Permissive\n");
288290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley
298290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    return 0;
308290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley}
31