X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=source3%2Fwinbindd%2Fidmap.c;h=2414dab224ed1a9ed3436450899ae61fb770e0cd;hb=04e4325642d029e604c31b371811fafdf2b61cf8;hp=7aa2853df10c4e556152ea18689b74a7727d81d4;hpb=a3eb8d765e48bcbe86458791ec61325a517bd7dd;p=samba.git diff --git a/source3/winbindd/idmap.c b/source3/winbindd/idmap.c index 7aa2853df10..2414dab224e 100644 --- a/source3/winbindd/idmap.c +++ b/source3/winbindd/idmap.c @@ -28,6 +28,21 @@ static_decl_idmap; +static void idmap_init(void) +{ + static bool initialized; + + if (initialized) { + return; + } + + DEBUG(10, ("idmap_init(): calling static_init_idmap\n")); + + static_init_idmap; + + initialized = true; +} + /** * Pointer to the backend methods. Modules register themselves here via * smb_register_idmap. @@ -346,9 +361,7 @@ static struct idmap_domain *idmap_init_default_domain(TALLOC_CTX *mem_ctx) char *modulename; char *params; - DEBUG(10, ("idmap_init_default_domain: calling static_init_idmap\n")); - - static_init_idmap; + idmap_init(); if (!parse_idmap_module(talloc_tos(), lp_idmap_backend(), &modulename, ¶ms)) { @@ -546,7 +559,7 @@ static NTSTATUS idmap_alloc_init(struct idmap_alloc_context **ctx) char *modulename, *params; NTSTATUS ret = NT_STATUS_NO_MEMORY;; - static_init_idmap; + idmap_init(); if (idmap_alloc_ctx != NULL) { *ctx = idmap_alloc_ctx;