113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* Copyright (C) 2005 Red Hat, Inc. */ 213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestruct semanage_seuser; 413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestruct semanage_seuser_key; 513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindletypedef struct semanage_seuser_key record_key_t; 613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindletypedef struct semanage_seuser record_t; 713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define DBASE_RECORD_DEFINED 813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <sepol/policydb.h> 1013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <sepol/context.h> 1113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "user_internal.h" 1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "seuser_internal.h" 1313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "handle.h" 1413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "database.h" 1513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "debug.h" 1613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 1713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleint semanage_seuser_query(semanage_handle_t * handle, 1813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle const semanage_seuser_key_t * key, 1913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle semanage_seuser_t ** response) 2013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 2113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 2213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t *dconfig = semanage_seuser_dbase_policy(handle); 2313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return dbase_query(handle, dconfig, key, response); 2413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 2513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 2613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleint semanage_seuser_exists(semanage_handle_t * handle, 2713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle const semanage_seuser_key_t * key, int *response) 2813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 2913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 3013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t *dconfig = semanage_seuser_dbase_policy(handle); 3113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return dbase_exists(handle, dconfig, key, response); 3213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 3313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 3413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleint semanage_seuser_count(semanage_handle_t * handle, unsigned int *response) 3513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 3613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 3713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t *dconfig = semanage_seuser_dbase_policy(handle); 3813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return dbase_count(handle, dconfig, response); 3913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 4013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 4113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleint semanage_seuser_iterate(semanage_handle_t * handle, 4213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle int (*handler) (const semanage_seuser_t * record, 4313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle void *varg), void *handler_arg) 4413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 4513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 4613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t *dconfig = semanage_seuser_dbase_policy(handle); 4713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return dbase_iterate(handle, dconfig, handler, handler_arg); 4813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 4913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 5013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlehidden_def(semanage_seuser_iterate) 5113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 5213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleint semanage_seuser_list(semanage_handle_t * handle, 5313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle semanage_seuser_t *** records, unsigned int *count) 5413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle{ 5513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 5613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle dbase_config_t *dconfig = semanage_seuser_dbase_policy(handle); 5713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle return dbase_list(handle, dconfig, records, count); 5813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 59