summaryrefslogtreecommitdiff
path: root/source3/passdb
diff options
context:
space:
mode:
Diffstat (limited to 'source3/passdb')
-rw-r--r--source3/passdb/ldap.c17
-rw-r--r--source3/passdb/passdb.c6
-rw-r--r--source3/passdb/smbpass.c12
3 files changed, 10 insertions, 25 deletions
diff --git a/source3/passdb/ldap.c b/source3/passdb/ldap.c
index 9693ab1e73..6d4d2f8dcf 100644
--- a/source3/passdb/ldap.c
+++ b/source3/passdb/ldap.c
@@ -24,8 +24,8 @@
#include "includes.h"
-#include <ldap.h>
#include <lber.h>
+#include <ldap.h>
#define ADD_USER 1
#define MODIFY_USER 2
@@ -223,11 +223,7 @@ static void ldap_get_smb_passwd(LDAP *ldap_struct,LDAPMessage *entry,
static unsigned char smblmpwd[16];
static unsigned char smbntpwd[16];
- user->smb_name = NULL;
- user->smb_passwd = NULL;
- user->smb_nt_passwd = NULL;
- user->smb_userid = 0;
- user->pass_last_set_time = (time_t)-1;
+ pdb_init_smb(user);
bzero(smblmpwd, sizeof(smblmpwd));
bzero(smbntpwd, sizeof(smbntpwd));
@@ -292,16 +288,11 @@ static void ldap_get_sam_passwd(LDAP *ldap_struct, LDAPMessage *entry,
static pstring temp;
static struct smb_passwd pw_buf;
+ pdb_init_sam(user);
+
ldap_get_smb_passwd(ldap_struct, entry, &pw_buf);
- bzero(user, sizeof(*user));
-
- user->logon_time = (time_t)-1;
- user->logoff_time = (time_t)-1;
- user->kickoff_time = (time_t)-1;
user->pass_last_set_time = pw_buf.pass_last_set_time;
- user->pass_can_change_time = (time_t)-1;
- user->pass_must_change_time = (time_t)-1;
get_single_attribute(ldap_struct, entry, "logonTime", temp);
user->pass_last_set_time = (time_t)strtol(temp, NULL, 16);
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c
index 82ee94a151..b43333f389 100644
--- a/source3/passdb/passdb.c
+++ b/source3/passdb/passdb.c
@@ -495,7 +495,7 @@ struct sam_passwd *getsam21pwrid(uint32 rid)
/*************************************************************
initialises a struct smb_passwd.
**************************************************************/
-void pdb_init_sam(struct smb_passwd *user)
+void pdb_init_smb(struct smb_passwd *user)
{
if (user == NULL) return;
@@ -528,7 +528,7 @@ struct smb_passwd *pdb_sam_to_smb(struct sam_passwd *user)
if (user == NULL) return NULL;
- pdb_init_sam(&pw_buf);
+ pdb_init_smb(&pw_buf);
pw_buf.smb_userid = user->smb_userid;
pw_buf.smb_name = user->smb_name;
@@ -549,7 +549,7 @@ struct sam_passwd *pdb_smb_to_sam(struct smb_passwd *user)
if (user == NULL) return NULL;
- pdb_init_smb(&pw_buf);
+ pdb_init_sam(&pw_buf);
pw_buf.smb_userid = user->smb_userid;
pw_buf.smb_name = user->smb_name;
diff --git a/source3/passdb/smbpass.c b/source3/passdb/smbpass.c
index f2f0b27153..c9d0ec8d44 100644
--- a/source3/passdb/smbpass.c
+++ b/source3/passdb/smbpass.c
@@ -111,7 +111,7 @@ struct sam_passwd *getsmb21pwent(void *vp)
pwfile = getpwnam(pw_buf->smb_name);
if (pwfile == NULL) return NULL;
- bzero(&user, sizeof(user));
+ pdb_init_sam(&user);
pstrcpy(samlogon_user, pw_buf->smb_name);
@@ -154,13 +154,6 @@ struct sam_passwd *getsmb21pwent(void *vp)
pstrcpy(workstations , "");
}
- user.logon_time = (time_t)-1;
- user.logoff_time = (time_t)-1;
- user.kickoff_time = (time_t)-1;
- user.pass_last_set_time = pw_buf->pass_last_set_time;
- user.pass_can_change_time = (time_t)-1;
- user.pass_must_change_time = (time_t)-1;
-
user.smb_name = pw_buf->smb_name;
user.full_name = full_name;
user.home_dir = home_dir;
@@ -213,8 +206,9 @@ struct smb_passwd *getsmbpwent(void *vp)
return NULL;
}
+ pdb_init_smb(&pw_buf);
+
pw_buf.acct_ctrl = ACB_NORMAL;
- pw_buf.pass_last_set_time = (time_t)-1;
/*
* Scan the file, a line at a time and check if the name matches.