From: Volker Lendecke Date: Sat, 14 Jun 2008 14:59:07 +0000 (+0200) Subject: Move connection-specific vuid cache clear to uid.c X-Git-Tag: samba-4.0.0alpha6~801^2~1050 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=101162257c14338eb2df7f331b18bca41813bff7;p=thirdparty%2Fsamba.git Move connection-specific vuid cache clear to uid.c (This used to be commit 1025f687910ce40283c7344ed67ebd5bf31217b7) --- diff --git a/source3/smbd/conn.c b/source3/smbd/conn.c index 5c75ed719e1..1a67ac9b322 100644 --- a/source3/smbd/conn.c +++ b/source3/smbd/conn.c @@ -225,28 +225,15 @@ bool conn_idle_all(time_t t) Clear a vuid out of the validity cache, and as the 'owner' of a connection. ****************************************************************************/ -void conn_clear_vuid_cache(uint16 vuid) +void conn_clear_vuid_caches(uint16_t vuid) { connection_struct *conn; - unsigned int i; for (conn=Connections;conn;conn=conn->next) { if (conn->vuid == vuid) { conn->vuid = UID_FIELD_INVALID; } - - for (i=0; ivuid_cache.array[i]; - - if (ent->vuid == vuid) { - ent->vuid = UID_FIELD_INVALID; - TALLOC_FREE(ent->server_info); - ent->read_only = False; - ent->admin_user = False; - } - } + conn_clear_vuid_cache(conn, vuid); } } diff --git a/source3/smbd/password.c b/source3/smbd/password.c index 673a1a01c13..ebc72350b5a 100644 --- a/source3/smbd/password.c +++ b/source3/smbd/password.c @@ -127,7 +127,7 @@ void invalidate_vuid(uint16 vuid) /* clear the vuid from the 'cache' on each connection, and from the vuid 'owner' of connections */ - conn_clear_vuid_cache(vuid); + conn_clear_vuid_caches(vuid); TALLOC_FREE(vuser); num_validated_vuids--; diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c index bded780c497..2bc5595661c 100644 --- a/source3/smbd/uid.c +++ b/source3/smbd/uid.c @@ -142,6 +142,28 @@ static bool check_user_ok(connection_struct *conn, uint16_t vuid, return(True); } +/**************************************************************************** + Clear a vuid out of the connection's vuid cache +****************************************************************************/ + +void conn_clear_vuid_cache(connection_struct *conn, uint16_t vuid) +{ + int i; + + for (i=0; ivuid_cache.array[i]; + + if (ent->vuid == vuid) { + ent->vuid = UID_FIELD_INVALID; + TALLOC_FREE(ent->server_info); + ent->read_only = False; + ent->admin_user = False; + } + } +} + /**************************************************************************** Become the user of a connection number without changing the security context stack, but modify the current_user entries.