mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
auto-init for utility functions
This commit is contained in:
parent
1915ab7b95
commit
db571a9fd7
@ -38,6 +38,16 @@ static struct {
|
||||
static struct idmap_methods *local_map;
|
||||
static struct idmap_methods *remote_map;
|
||||
|
||||
static void lazy_initialize_idmap(void)
|
||||
{
|
||||
static BOOL initialized = False;
|
||||
if (initialized) return;
|
||||
idmap_init();
|
||||
initialized = True;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static struct idmap_methods *get_methods(const char *name)
|
||||
{
|
||||
int i = 0;
|
||||
@ -90,6 +100,8 @@ NTSTATUS idmap_set_mapping(const DOM_SID *sid, unid_t id, int id_type)
|
||||
{
|
||||
NTSTATUS ret;
|
||||
|
||||
lazy_initialize_idmap();
|
||||
|
||||
if (!lp_idmap_only()) {
|
||||
if (id_type & ID_USERID) {
|
||||
uid_t low, high;
|
||||
@ -145,6 +157,8 @@ NTSTATUS idmap_get_id_from_sid(unid_t *id, int *id_type, const DOM_SID *sid)
|
||||
NTSTATUS ret;
|
||||
int loc_type;
|
||||
|
||||
lazy_initialize_idmap();
|
||||
|
||||
loc_type = *id_type;
|
||||
if (remote_map) { /* We have a central remote idmap */
|
||||
loc_type |= ID_NOMAP;
|
||||
@ -174,6 +188,8 @@ NTSTATUS idmap_get_sid_from_id(DOM_SID *sid, unid_t id, int id_type)
|
||||
NTSTATUS ret;
|
||||
int loc_type;
|
||||
|
||||
lazy_initialize_idmap();
|
||||
|
||||
loc_type = id_type;
|
||||
if (remote_map) {
|
||||
loc_type = id_type | ID_NOMAP;
|
||||
@ -218,6 +234,8 @@ NTSTATUS idmap_close(void)
|
||||
/* Dump backend status */
|
||||
void idmap_status(void)
|
||||
{
|
||||
lazy_initialize_idmap();
|
||||
|
||||
local_map->status();
|
||||
if (remote_map) remote_map->status();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user