summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1998-11-25 14:54:23 +0000
committerLuke Leighton <lkcl@samba.org>1998-11-25 14:54:23 +0000
commitc9b2f20efcb9cd2e93f29928442e9a61360fa5a0 (patch)
treedc9631f1e7aab81c7a71e822a8fcdb132721d107
parent9257ab7dbfc49c7619ea8052293aa07d6a094c2e (diff)
downloadsamba-c9b2f20efcb9cd2e93f29928442e9a61360fa5a0.tar.gz
samba-c9b2f20efcb9cd2e93f29928442e9a61360fa5a0.tar.bz2
samba-c9b2f20efcb9cd2e93f29928442e9a61360fa5a0.zip
fixing domain join and domain login problems
(This used to be commit 90a24664318da97a6e8cfe4622a8573c0e3cbe5e)
-rw-r--r--source3/passdb/smbpassgroupunix.c1
-rw-r--r--source3/rpc_server/srv_netlog.c6
-rw-r--r--source3/rpc_server/srv_sid.c19
-rw-r--r--source3/smbd/server.c2
-rw-r--r--source3/utils/rpctorture.c6
5 files changed, 23 insertions, 11 deletions
diff --git a/source3/passdb/smbpassgroupunix.c b/source3/passdb/smbpassgroupunix.c
index 0e621cb3cc..d83196415c 100644
--- a/source3/passdb/smbpassgroupunix.c
+++ b/source3/passdb/smbpassgroupunix.c
@@ -126,7 +126,6 @@ static struct smb_passwd *getsmbunixgrpent(void *vp,
{
DOM_SID sid;
char *unix_grpname;
- uint32 status;
uint32 rid;
/*
diff --git a/source3/rpc_server/srv_netlog.c b/source3/rpc_server/srv_netlog.c
index 77b17dca2f..9fa3ed79cc 100644
--- a/source3/rpc_server/srv_netlog.c
+++ b/source3/rpc_server/srv_netlog.c
@@ -748,7 +748,7 @@ static void api_net_sam_logon( uint16 vuid,
strupper(my_name);
status = lookup_user_rids(samlogon_user, &r_uid, &r_gid);
- status = status == 0 ? getusergroupsnam(samlogon_user, &grp_mem, &num_gids) : 0xC0000000 | NT_STATUS_INVALID_PRIMARY_GROUP;
+ status = getusergroupsnam(samlogon_user, &grp_mem, &num_gids) ? 0 : 0xC0000000 | NT_STATUS_INVALID_PRIMARY_GROUP;
if (status == 0x0)
{
@@ -787,10 +787,6 @@ static void api_net_sam_logon( uint16 vuid,
&global_sam_sid, /* DOM_SID *dom_sid */
NULL); /* char *other_sids */
}
- else
- {
- status = 0xC0000000 | NT_STATUS_NO_SUCH_USER;
- }
/* Free any allocated groups array. */
if (gids)
diff --git a/source3/rpc_server/srv_sid.c b/source3/rpc_server/srv_sid.c
index a8a94204c1..216fab657f 100644
--- a/source3/rpc_server/srv_sid.c
+++ b/source3/rpc_server/srv_sid.c
@@ -162,6 +162,25 @@ BOOL get_member_domain_sid(void)
fstring dom3;
fstring dom5;
+ switch (lp_server_role())
+ {
+ case ROLE_DOMAIN_NONE:
+ {
+ ZERO_STRUCT(global_member_sid);
+ return True;
+ }
+ case ROLE_DOMAIN_PDC:
+ {
+ sid_copy(&global_member_sid, &global_sam_sid);
+ return True;
+ }
+ default:
+ {
+ /* member or BDC, we're going for connection to PDC */
+ break;
+ }
+ }
+
if (!cli_connect_serverlist(&cli, lp_passwordserver()))
{
DEBUG(0,("get_member_domain_sid: unable to initialise client connection.\n"));
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index e064b52dfa..acde9eebf3 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -663,7 +663,7 @@ static void usage(char *pname)
exit(1);
}
- if (lp_security() == SEC_DOMAIN && !get_member_domain_sid())
+ if (!get_member_domain_sid())
{
DEBUG(0,("ERROR: Samba cannot obtain PDC SID from PDC(s) %s.\n",
lp_passwordserver()));
diff --git a/source3/utils/rpctorture.c b/source3/utils/rpctorture.c
index dac64a22e3..3b2a497ad4 100644
--- a/source3/utils/rpctorture.c
+++ b/source3/utils/rpctorture.c
@@ -558,9 +558,7 @@ static void run_handles(int numops, struct client_info *cli_info)
static void run_pipegobbler(int numops, struct client_info *cli_info)
{
-/*
run_pipegobble(numops, cli_info, PIPE_SAMR);
-*/
run_pipegobble(numops, cli_info, PIPE_LSARPC);
}
@@ -954,9 +952,9 @@ enum client_action
}
*/
- create_procs(nprocs, numops, &cli_info, run_tcpconnect);
-/*
create_procs(nprocs, numops, &cli_info, run_pipegobbler);
+/*
+ create_procs(nprocs, numops, &cli_info, run_tcpconnect);
create_procs(nprocs, numops, &cli_info, run_handles);
create_procs(nprocs, numops, &cli_info, run_randomrpc);
*/