summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h2
-rw-r--r--source3/smbd/password.c13
-rw-r--r--source3/smbd/reply.c11
3 files changed, 12 insertions, 14 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 7100ee6526..1f2e238d58 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -4161,7 +4161,7 @@ struct cli_state *server_cryptkey(void);
BOOL server_validate(char *user, char *domain,
char *pass, int passlen,
char *ntpass, int ntpasslen);
-BOOL domain_client_validate( char *user, char *domain, char *server_list,
+BOOL domain_client_validate( char *user, char *domain,
char *acct_name, uint16 acct_type,
char *smb_apasswd, int smb_apasslen,
char *smb_ntpasswd, int smb_ntpasslen,
diff --git a/source3/smbd/password.c b/source3/smbd/password.c
index 3e4a856bfb..c14b50d3a6 100644
--- a/source3/smbd/password.c
+++ b/source3/smbd/password.c
@@ -1112,7 +1112,7 @@ use this machine as the password server.\n"));
key from the workstation trust account password.
************************************************************************/
-BOOL domain_client_validate( char *user, char *domain, char *server_list,
+BOOL domain_client_validate( char *user, char *domain,
char *acct_name, uint16 acct_type,
char *smb_apasswd, int smb_apasslen,
char *smb_ntpasswd, int smb_ntpasslen,
@@ -1143,6 +1143,13 @@ BOOL domain_client_validate( char *user, char *domain, char *server_list,
return False;
}
+ if (!get_any_dc_name(domain, srv_name))
+ {
+ DEBUG(3,("domain_client_validate: could not find domain %s\n",
+ domain));
+ return False;
+ }
+
/*
* Next, check that the passwords given were encrypted.
*/
@@ -1198,8 +1205,8 @@ BOOL domain_client_validate( char *user, char *domain, char *server_list,
* Now start the NT Domain stuff :-).
*/
- if(cli_nt_setup_creds(server_list, global_myname, trust_acct,
- trust_passwd, acct_type, srv_name) != 0x0)
+ if(cli_nt_setup_creds(srv_name, global_myname, trust_acct,
+ trust_passwd, acct_type) != 0x0)
{
DEBUG(0,("domain_client_validate: unable to setup the PDC credentials to machine \
%s.\n", srv_name));
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 5cf2ac2a7a..a0ad2ca20d 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -506,8 +506,6 @@ static BOOL check_domain_security(char *orig_user, char *domain,
fstring acct_name;
uint16 acct_type = 0;
- char *server_list = NULL;
-
if (lp_security() == SEC_SHARE || lp_security() == SEC_SERVER)
{
return False;
@@ -524,14 +522,7 @@ static BOOL check_domain_security(char *orig_user, char *domain,
acct_type = SEC_CHAN_DOMAIN;
}
- server_list = get_trusted_serverlist(domain);
-
- if (server_list == NULL)
- {
- return False;
- }
-
- return domain_client_validate(orig_user, domain, server_list,
+ return domain_client_validate(orig_user, domain,
acct_name, acct_type,
smb_apasswd, smb_apasslen,
smb_ntpasswd, smb_ntpasslen,