summaryrefslogtreecommitdiff
path: root/source3/smbd/password.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2009-05-26 12:48:58 +0200
committerStefan Metzmacher <metze@samba.org>2009-06-03 17:54:37 +0200
commite16e7146b378e8e89bf25adc66d806bac7feaeb6 (patch)
tree3749acfaa0e0121050f6ff8cfebb3e60e37533ac /source3/smbd/password.c
parentf20ded603b488b4eaca8b4bf1009e61ead851f85 (diff)
downloadsamba-e16e7146b378e8e89bf25adc66d806bac7feaeb6.tar.gz
samba-e16e7146b378e8e89bf25adc66d806bac7feaeb6.tar.bz2
samba-e16e7146b378e8e89bf25adc66d806bac7feaeb6.zip
s3:smbd: move negprot related globals to struct smbd_server_connection
metze
Diffstat (limited to 'source3/smbd/password.c')
-rw-r--r--source3/smbd/password.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/source3/smbd/password.c b/source3/smbd/password.c
index 076965e783..460cba35a0 100644
--- a/source3/smbd/password.c
+++ b/source3/smbd/password.c
@@ -581,11 +581,14 @@ static char *validate_group(char *group, DATA_BLOB password,int snum)
#ifdef HAVE_NETGROUP
{
char *host, *user, *domain;
+ struct smbd_server_connection *sconn = smbd_server_conn;
+ struct auth_context *actx = sconn->smb1.negprot.auth_context;
+ bool enc = sconn->smb1.negprot.encrypted_passwords;
setnetgrent(group);
while (getnetgrent(&host, &user, &domain)) {
if (user) {
if (user_ok(user, snum) &&
- password_ok(user,password)) {
+ password_ok(actx, enc, user,password)) {
endnetgrent();
return(user);
}
@@ -598,6 +601,10 @@ static char *validate_group(char *group, DATA_BLOB password,int snum)
#ifdef HAVE_GETGRENT
{
struct group *gptr;
+ struct smbd_server_connection *sconn = smbd_server_conn;
+ struct auth_context *actx = sconn->smb1.negprot.auth_context;
+ bool enc = sconn->smb1.negprot.encrypted_passwords;
+
setgrent();
while ((gptr = (struct group *)getgrent())) {
if (strequal(gptr->gr_name,group))
@@ -646,7 +653,7 @@ static char *validate_group(char *group, DATA_BLOB password,int snum)
member = member_list;
while (*member) {
if (user_ok(member,snum) &&
- password_ok(member,password)) {
+ password_ok(actx, enc, member,password)) {
char *name = talloc_strdup(talloc_tos(),
member);
SAFE_FREE(member_list);
@@ -678,6 +685,9 @@ bool authorise_login(int snum, fstring user, DATA_BLOB password,
bool *guest)
{
bool ok = False;
+ struct smbd_server_connection *sconn = smbd_server_conn;
+ struct auth_context *actx = sconn->smb1.negprot.auth_context;
+ bool enc = sconn->smb1.negprot.encrypted_passwords;
#ifdef DEBUG_PASSWORD
DEBUG(100,("authorise_login: checking authorisation on "
@@ -722,7 +732,7 @@ bool authorise_login(int snum, fstring user, DATA_BLOB password,
if (!user_ok(user2,snum))
continue;
- if (password_ok(user2,password)) {
+ if (password_ok(actx, enc, user2,password)) {
ok = True;
fstrcpy(user,user2);
DEBUG(3,("authorise_login: ACCEPTED: session "
@@ -770,7 +780,7 @@ bool authorise_login(int snum, fstring user, DATA_BLOB password,
fstring user2;
fstrcpy(user2,auser);
if (user_ok(user2,snum) &&
- password_ok(user2,password)) {
+ password_ok(actx, enc, user2,password)) {
ok = True;
fstrcpy(user,user2);
DEBUG(3,("authorise_login: ACCEPTED: "