1
0
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:
Simo Sorce 0001-01-01 00:00:00 +00:00
parent 1915ab7b95
commit db571a9fd7

View File

@ -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();
}