| /* Copyright (C) 2005 Red Hat, Inc. */ |
| |
| struct semanage_user; |
| struct semanage_user_key; |
| typedef struct semanage_user record_t; |
| typedef struct semanage_user_key record_key_t; |
| #define DBASE_RECORD_DEFINED |
| |
| struct semanage_user_base; |
| struct semanage_user_extra; |
| typedef struct semanage_user_base record1_t; |
| typedef struct semanage_user_extra record2_t; |
| #define DBASE_RECORD_JOIN_DEFINED |
| |
| struct dbase_join; |
| typedef struct dbase_join dbase_t; |
| #define DBASE_DEFINED |
| |
| #include <semanage/handle.h> |
| #include "user_internal.h" |
| #include "database_join.h" |
| #include "debug.h" |
| |
| /* USER record: JOIN extension: method table */ |
| record_join_table_t SEMANAGE_USER_JOIN_RTABLE = { |
| .join = semanage_user_join, |
| .split = semanage_user_split, |
| }; |
| |
| int user_join_dbase_init(semanage_handle_t * handle, |
| dbase_config_t * join1, |
| dbase_config_t * join2, dbase_config_t * dconfig) |
| { |
| |
| if (dbase_join_init(handle, |
| &SEMANAGE_USER_RTABLE, |
| &SEMANAGE_USER_JOIN_RTABLE, |
| join1, join2, &dconfig->dbase) < 0) |
| return STATUS_ERR; |
| |
| dconfig->dtable = &SEMANAGE_JOIN_DTABLE; |
| return STATUS_SUCCESS; |
| } |
| |
| void user_join_dbase_release(dbase_config_t * dconfig) |
| { |
| |
| dbase_join_release(dconfig->dbase); |
| } |