summaryrefslogtreecommitdiff
path: root/source3/smbd/close.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-03-12 13:56:51 -0800
committerJeremy Allison <jra@samba.org>2010-03-12 13:56:51 -0800
commite80ceb1d7355c8c46a2ed90d5721cf367640f4e8 (patch)
treea1172af1868d93449ac25d68576193a872e0bb50 /source3/smbd/close.c
parent31b0417f7def5af5392088eec8fe6e77074d3da9 (diff)
downloadsamba-e80ceb1d7355c8c46a2ed90d5721cf367640f4e8.tar.gz
samba-e80ceb1d7355c8c46a2ed90d5721cf367640f4e8.tar.bz2
samba-e80ceb1d7355c8c46a2ed90d5721cf367640f4e8.zip
Remove more uses of "extern struct current_user current_user;".
Use accessor functions to get to this value. Tidies up much of the user context code. Volker, please look at the changes in smbd/uid.c to familiarize yourself with these changes as I think they make the logic in there cleaner. Cause smbd/posix_acls.c code to look at current user context, not stored context on the conn struct - allows correct use of these function calls under a become_root()/unbecome_root() pair. Jeremy.
Diffstat (limited to 'source3/smbd/close.c')
-rw-r--r--source3/smbd/close.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/source3/smbd/close.c b/source3/smbd/close.c
index ca1ac47fa0..1530b96797 100644
--- a/source3/smbd/close.c
+++ b/source3/smbd/close.c
@@ -21,8 +21,6 @@
#include "includes.h"
-extern struct current_user current_user;
-
/****************************************************************************
Run a file if it is a magic script.
****************************************************************************/
@@ -332,12 +330,12 @@ static NTSTATUS close_remove_share_mode(files_struct *fsp,
/* Initial delete on close was set and no one else
* wrote a real delete on close. */
- if (current_user.vuid != fsp->vuid) {
+ if (get_current_vuid(conn) != fsp->vuid) {
become_user(conn, fsp->vuid);
became_user = True;
}
fsp->delete_on_close = true;
- set_delete_on_close_lck(lck, True, &current_user.ut);
+ set_delete_on_close_lck(lck, True, get_current_utok(fsp->conn));
if (became_user) {
unbecome_user();
}
@@ -389,7 +387,7 @@ static NTSTATUS close_remove_share_mode(files_struct *fsp,
*/
fsp->update_write_time_on_close = false;
- if (!unix_token_equal(lck->delete_token, &current_user.ut)) {
+ if (!unix_token_equal(lck->delete_token, get_current_utok(conn))) {
/* Become the user who requested the delete. */
DEBUG(5,("close_remove_share_mode: file %s. "
@@ -955,12 +953,12 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp,
* directories we don't care if anyone else
* wrote a real delete on close. */
- if (current_user.vuid != fsp->vuid) {
+ if (get_current_vuid(fsp->conn) != fsp->vuid) {
become_user(fsp->conn, fsp->vuid);
became_user = True;
}
send_stat_cache_delete_message(fsp->fsp_name->base_name);
- set_delete_on_close_lck(lck, True, &current_user.ut);
+ set_delete_on_close_lck(lck, True, get_current_utok(fsp->conn));
fsp->delete_on_close = true;
if (became_user) {
unbecome_user();