psss / rpms / libsemanage

Forked from rpms/libsemanage 5 years ago
Clone
cefaa03
#include <stdio.h>
cefaa03
#include <stdlib.h>
cefaa03
#include <string.h>
cefaa03
#include <errno.h>
cefaa03
#include <semanage/semanage.h>
cefaa03
cefaa03
#include "functions.c"
cefaa03
cefaa03
int counter = 0;
cefaa03
cefaa03
int handler(const semanage_seuser_t *record, void *varg) {
cefaa03
    char **args = (char **) varg;
cefaa03
    
cefaa03
    const char *name = semanage_seuser_get_name(record);
cefaa03
cefaa03
    if (strcmp(name, args[2 + counter++]) != 0)
cefaa03
        return -1;
cefaa03
cefaa03
    return 0;
cefaa03
}
cefaa03
cefaa03
int main (int argc, char **argv) {
cefaa03
    semanage_handle_t *sh;
cefaa03
    int result;
cefaa03
    
cefaa03
    if (argc < 2)
cefaa03
        exit(2);
cefaa03
    
cefaa03
    sh = get_handle(argv[1]);
cefaa03
cefaa03
    char **param = NULL;
cefaa03
cefaa03
    if (argc >= 3) {
cefaa03
        param = argv;
cefaa03
    }
cefaa03
cefaa03
    result = semanage_seuser_iterate(sh, &handler, (void *) param);
cefaa03
    printf("semanage_seuser_iterate(%p, %p, %p): %d\n",
cefaa03
           (void *) sh, (void *) &handler, (void *) param, result);
cefaa03
    
cefaa03
    if (result < 0) {
cefaa03
        perror("semanage_seuser_iterate");
cefaa03
        exit(1);
cefaa03
    }
cefaa03
cefaa03
    destroy_handle(sh, argv[1]);
cefaa03
cefaa03
    exit(0);
cefaa03
}