summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1998-11-26 00:48:31 +0000
committerLuke Leighton <lkcl@samba.org>1998-11-26 00:48:31 +0000
commitb20fc0046426bc6c6dfdeeef0cedcd975282576d (patch)
tree2d8ce9b6b7fd71ba6a5324c544ff9c04371cfdda
parent5ebcdbae9b0eb05570613bd939af9fc827920a29 (diff)
downloadsamba-b20fc0046426bc6c6dfdeeef0cedcd975282576d.tar.gz
samba-b20fc0046426bc6c6dfdeeef0cedcd975282576d.tar.bz2
samba-b20fc0046426bc6c6dfdeeef0cedcd975282576d.zip
we have a problem: resolution of "Primary Group RID" which we assumed
would only be a domain group rid. it can also be a local group rid, which causes us problems in attempting to turn a unix gid into the correct rid (domain group or local group). sooo.... the fix is _in_ there, we just can't use it because it causes link / knock-on problems in nmbd. (This used to be commit e4ee6538709c33000774eb1676608f2dd67d5a30)
-rw-r--r--source3/Makefile.in2
-rw-r--r--source3/groupdb/aliasdb.c1
-rw-r--r--source3/passdb/smbpass.c15
3 files changed, 16 insertions, 2 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 6aa97ee7e8..b310cbf715 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -190,7 +190,7 @@ NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \
nmbd/nmbd_workgroupdb.o nmbd/nmbd_synclists.o
NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \
- $(PASSDB_OBJ) $(LIB_OBJ)
+ $(PASSDB_OBJ) $(LIB_OBJ)
SWAT_OBJ = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \
web/swat.o $(LIBSMB_OBJ) $(LOCKING_OBJ) \
diff --git a/source3/groupdb/aliasdb.c b/source3/groupdb/aliasdb.c
index e37f491287..648700dd86 100644
--- a/source3/groupdb/aliasdb.c
+++ b/source3/groupdb/aliasdb.c
@@ -92,6 +92,7 @@ LOCAL_GRP *iterate_getaliasrid(uint32 rid, LOCAL_GRP_MEMBER **mem, int *num_mem)
while ((als = getaliasent(fp, mem, num_mem)) != NULL && als->rid != rid)
{
+ DEBUG(10,("iterate: %s 0x%x", als->name, als->rid));
}
if (als != NULL)
diff --git a/source3/passdb/smbpass.c b/source3/passdb/smbpass.c
index e15a9b1dd7..262ffa3e2e 100644
--- a/source3/passdb/smbpass.c
+++ b/source3/passdb/smbpass.c
@@ -264,7 +264,9 @@ static struct sam_passwd *getsmbfile21pwent(void *vp)
struct smb_passwd *pw_buf = getsmbfilepwent(vp);
static struct sam_passwd user;
struct passwd *pwfile;
-
+#if ARGH
+ uint32 status = 0x0;
+#endif
static pstring full_name;
static pstring home_dir;
static pstring home_drive;
@@ -298,8 +300,12 @@ static struct sam_passwd *getsmbfile21pwent(void *vp)
user.smb_userid = pw_buf->smb_userid;
user.smb_grpid = pwfile->pw_gid;
+#if ARGH
+ status = lookup_user_rids(pw_buf->smb_name, &user.user_rid, &user.group_rid);
+#else
user.user_rid = pwdb_uid_to_user_rid (user.smb_userid);
user.group_rid = pwdb_gid_to_group_rid(user.smb_grpid );
+#endif
pstrcpy(full_name , pwfile->pw_gecos );
pstrcpy(logon_script , lp_logon_script ());
@@ -328,6 +334,13 @@ static struct sam_passwd *getsmbfile21pwent(void *vp)
pstrcpy(workstations , "");
}
+#if ARGH
+ if (status != 0x0)
+ {
+ return NULL;
+ }
+#endif
+
user.smb_name = pw_buf->smb_name;
user.full_name = full_name;
user.home_dir = home_dir;