summaryrefslogtreecommitdiff
path: root/source3/smbd/password.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2012-03-03 05:41:43 +0100
committerStefan Metzmacher <metze@samba.org>2012-03-06 21:26:05 +0100
commit6ce72a01abfcffd19313b50e15976582ae84c61c (patch)
treedcce7f94f5acaef2304f10c6e75d3155d49683cc /source3/smbd/password.c
parentd95dbb86c592590dd5b64d2e307470943260834d (diff)
downloadsamba-6ce72a01abfcffd19313b50e15976582ae84c61c.tar.gz
samba-6ce72a01abfcffd19313b50e15976582ae84c61c.tar.bz2
samba-6ce72a01abfcffd19313b50e15976582ae84c61c.zip
s3:smbd: keep 'num_users' and 'users' directly under smbd_server_connection
The plan is to have users_struct as some kind of low level abstraction for a smb1/smb2 session, that can be used by SMB_VFS modules. metze
Diffstat (limited to 'source3/smbd/password.c')
-rw-r--r--source3/smbd/password.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/source3/smbd/password.c b/source3/smbd/password.c
index 27ba3bd01b..39cde15aaf 100644
--- a/source3/smbd/password.c
+++ b/source3/smbd/password.c
@@ -52,7 +52,7 @@ static user_struct *get_valid_user_struct_internal(
if (vuid == UID_FIELD_INVALID)
return NULL;
- usp=sconn->smb1.sessions.validated_users;
+ usp=sconn->users;
for (;usp;usp=usp->next,count++) {
if (vuid == usp->vuid) {
switch (server_allocated) {
@@ -69,8 +69,7 @@ static user_struct *get_valid_user_struct_internal(
break;
}
if (count > 10) {
- DLIST_PROMOTE(sconn->smb1.sessions.validated_users,
- usp);
+ DLIST_PROMOTE(sconn->users, usp);
}
return usp;
}
@@ -128,14 +127,15 @@ void invalidate_vuid(struct smbd_server_connection *sconn, uint16 vuid)
TALLOC_FREE(vuser->gensec_security);
}
- DLIST_REMOVE(sconn->smb1.sessions.validated_users, vuser);
+ DLIST_REMOVE(sconn->users, vuser);
+ SMB_ASSERT(sconn->num_users > 0);
+ sconn->num_users--;
/* clear the vuid from the 'cache' on each connection, and
from the vuid 'owner' of connections */
conn_clear_vuid_caches(sconn, vuid);
TALLOC_FREE(vuser);
- sconn->smb1.sessions.num_validated_vuids--;
}
/****************************************************************************
@@ -148,9 +148,8 @@ void invalidate_all_vuids(struct smbd_server_connection *sconn)
return;
}
- while (sconn->smb1.sessions.validated_users != NULL) {
- invalidate_vuid(sconn,
- sconn->smb1.sessions.validated_users->vuid);
+ while (sconn->users != NULL) {
+ invalidate_vuid(sconn, sconn->users->vuid);
}
}
@@ -173,7 +172,7 @@ int register_initial_vuid(struct smbd_server_connection *sconn)
user_struct *vuser;
/* Limit allowed vuids to 16bits - VUID_OFFSET. */
- if (sconn->smb1.sessions.num_validated_vuids >= 0xFFFF-VUID_OFFSET) {
+ if (sconn->num_users >= 0xFFFF-VUID_OFFSET) {
return UID_FIELD_INVALID;
}
@@ -201,9 +200,10 @@ int register_initial_vuid(struct smbd_server_connection *sconn)
* to NTLMSSP.
*/
increment_next_vuid(&sconn->smb1.sessions.next_vuid);
- sconn->smb1.sessions.num_validated_vuids++;
- DLIST_ADD(sconn->smb1.sessions.validated_users, vuser);
+ sconn->num_users++;
+ DLIST_ADD(sconn->users, vuser);
+
return vuser->vuid;
}