From e80ceb1d7355c8c46a2ed90d5721cf367640f4e8 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 12 Mar 2010 13:56:51 -0800 Subject: 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. --- source3/smbd/close.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'source3/smbd/close.c') diff --git a/source3/smbd/close.c b/source3/smbd/close.c index ca1ac47fa02..1530b96797d 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, ¤t_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, ¤t_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, ¤t_user.ut); + set_delete_on_close_lck(lck, True, get_current_utok(fsp->conn)); fsp->delete_on_close = true; if (became_user) { unbecome_user(); -- cgit