diff --git a/source/lib/util_pwdb.c b/source/lib/util_pwdb.c index 7e7eb0da8b0..03ccdd475f2 100644 --- a/source/lib/util_pwdb.c +++ b/source/lib/util_pwdb.c @@ -418,10 +418,11 @@ BOOL pwdb_gethexpwd(const char *p, char *pwd) return strhex_to_str(pwd, 32, p) == 16; } + /************************************************************* initialise password databases, domain names, domain sid. **************************************************************/ -BOOL pwdb_initialise(BOOL is_server) +BOOL pwdb_init_myworkgroup(void) { fstrcpy(global_myworkgroup, lp_workgroup()); @@ -430,9 +431,21 @@ BOOL pwdb_initialise(BOOL is_server) DEBUG(0,("ERROR: a workgroup name of * is no longer supported\n")); return False; } + return True; +} +/************************************************************* + initialise password databases, domain names, domain sid. +**************************************************************/ +BOOL pwdb_initialise(BOOL is_server) +{ get_sam_domain_name(); + if (!pwdb_init_myworkgroup()) + { + return False; + } + generate_wellknown_sids(); if (is_server) diff --git a/source/nmbd/nmbd.c b/source/nmbd/nmbd.c index d44fe5507c2..c266043c2cb 100644 --- a/source/nmbd/nmbd.c +++ b/source/nmbd/nmbd.c @@ -677,6 +677,11 @@ static void usage(char *pname) reload_services( True ); + if (!pwdb_init_myworkgroup()) + { + exit(1); + } + set_samba_nb_type(); if (!is_daemon && !is_a_socket(0))