summaryrefslogtreecommitdiff
path: root/source3/lib/util_pwdb.c
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1998-12-01 19:10:44 +0000
committerLuke Leighton <lkcl@samba.org>1998-12-01 19:10:44 +0000
commit04e382fb166a64de193dc3c7b21187d8382eaeea (patch)
treef8935ebbbabfe2b2d2368aca14113931c323cd94 /source3/lib/util_pwdb.c
parente2d51234002609f00bfa92b8031ac15616d6fe26 (diff)
downloadsamba-04e382fb166a64de193dc3c7b21187d8382eaeea.tar.gz
samba-04e382fb166a64de193dc3c7b21187d8382eaeea.tar.bz2
samba-04e382fb166a64de193dc3c7b21187d8382eaeea.zip
rpc_samr.h parse_samr.c srv_samr.c :
samr_query_aliasmembers (cool!) util_pwdb.c sids.c nmbd.c server.c smbpasswd.c swat.c : pwdb_initialise(BOOL is_server) now creates / reads DOMAIN_NAME.SID if is_server is True, and does LsaQueryInfoPolicy(levels 3 and 5) to obtain member and pdc sids. (This used to be commit 3e1eb4f26b67e484b05e1dde94fd4e4dae982631)
Diffstat (limited to 'source3/lib/util_pwdb.c')
-rw-r--r--source3/lib/util_pwdb.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/source3/lib/util_pwdb.c b/source3/lib/util_pwdb.c
index 588070f7b8..8008e9de71 100644
--- a/source3/lib/util_pwdb.c
+++ b/source3/lib/util_pwdb.c
@@ -26,9 +26,11 @@
extern int DEBUGLEVEL;
extern DOM_SID global_sam_sid;
extern fstring global_sam_name;
-extern DOM_SID global_sid_S_1_5_20;
+
+extern DOM_SID global_member_sid;
extern fstring global_myworkgroup;
+extern DOM_SID global_sid_S_1_5_20;
/*
* A list of the rids of well known BUILTIN and Domain users
* and groups.
@@ -416,7 +418,7 @@ BOOL pwdb_gethexpwd(const char *p, char *pwd)
/*************************************************************
initialise password databases, domain names, domain sid.
**************************************************************/
-BOOL pwdb_initialise(void)
+BOOL pwdb_initialise(BOOL is_server)
{
fstrcpy(global_myworkgroup, lp_workgroup());
@@ -430,15 +432,22 @@ BOOL pwdb_initialise(void)
generate_wellknown_sids();
- if (!generate_sam_sid(global_sam_name))
+ if (is_server)
{
- DEBUG(0,("ERROR: Samba cannot create a SAM SID for its domain (%s).\n",
- global_sam_name));
- return False;
+ if (!generate_sam_sid(global_sam_name))
+ {
+ DEBUG(0,("ERROR: Samba cannot create a SAM SID for its domain (%s).\n",
+ global_sam_name));
+ return False;
+ }
+ }
+ else
+ {
+ if (!get_domain_sids(&global_member_sid, &global_sam_sid))
+ {
+ return False;
+ }
}
- if(!initialise_password_db())
- return False;
-
- return True;
+ return initialise_password_db();
}