/** ** abac.c ** original abac.c using prolog **/ #include #include #include #include #include "abac_util.h" #include "abac_verifier.h" static int debug=0; /**************************************************************************/ /** * Init the library. */ void libabac_init(void) { DEBUG_PRINTF("libabac_init, calling init\n"); void libabac_deinit(void); static int has_been_init = 0; // called every time a verifier session is created, so only do it once if (!has_been_init) { abac_verifier_init(); atexit(libabac_deinit); has_been_init = 1; } else { DEBUG_PRINTF("libabac_init, can only be called once\n"); } } /** * Deinit the library. */ void libabac_deinit(void) { static int has_been_deinit = 0; DEBUG_PRINTF("libabac_deinit, calling take down (%d)\n", has_been_deinit); if(!has_been_deinit) { abac_verifier_deinit(); has_been_deinit = 1; } else { DEBUG_PRINTF("libabac_deinit, can only be called once\n"); } }