1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

s3-smbd_shim: Add become_authenticated_pipe_user().

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
This commit is contained in:
Andreas Schneider 2013-10-23 11:02:39 +02:00 committed by Stefan Metzmacher
parent 9e723f9d69
commit 13d840ad2f
6 changed files with 30 additions and 5 deletions

View File

@ -1253,7 +1253,7 @@ bool ea_list_has_invalid_name(struct ea_list *ea_list);
void become_root(void);
void unbecome_root(void);
/* The following definitions come from lib/dummysmbd.c */
/* The following definitions come from lib/smbd_shim.c */
int find_service(TALLOC_CTX *ctx, const char *service_in, char **p_service_out);
void cancel_pending_lock_requests_by_fid(files_struct *fsp,
@ -1263,6 +1263,9 @@ void send_stat_cache_delete_message(struct messaging_context *msg_ctx,
const char *name);
NTSTATUS can_delete_directory_fsp(files_struct *fsp);
bool change_to_root_user(void);
bool become_authenticated_pipe_user(struct auth_session_info *session_info);
bool unbecome_authenticated_pipe_user(void);
void contend_level2_oplocks_begin(files_struct *fsp,
enum level2_contention_type type);
void contend_level2_oplocks_end(files_struct *fsp,

View File

@ -58,6 +58,24 @@ bool change_to_root_user(void)
return false;
}
bool become_authenticated_pipe_user(struct auth_session_info *session_info)
{
if (shim.become_authenticated_pipe_user) {
return shim.become_authenticated_pipe_user(session_info);
}
return false;
}
bool unbecome_authenticated_pipe_user(void)
{
if (shim.unbecome_authenticated_pipe_user) {
return shim.unbecome_authenticated_pipe_user();
}
return false;
}
/**
* The following two functions need to be called from inside the low-level BRL
* code for oplocks correctness in smbd. Since other utility binaries also

View File

@ -36,6 +36,8 @@ struct smbd_shim
const char *name);
bool (*change_to_root_user)(void);
bool (*become_authenticated_pipe_user)(struct auth_session_info *session_info);
bool (*unbecome_authenticated_pipe_user)(void);
void (*contend_level2_oplocks_begin)(files_struct *fsp,
enum level2_contention_type type);

View File

@ -1103,8 +1103,8 @@ NTSTATUS check_user_share_access(connection_struct *conn,
bool change_to_user(connection_struct *conn, uint64_t vuid);
bool change_to_root_user(void);
bool smbd_change_to_root_user(void);
bool become_authenticated_pipe_user(struct auth_session_info *session_info);
bool unbecome_authenticated_pipe_user(void);
bool smbd_become_authenticated_pipe_user(struct auth_session_info *session_info);
bool smbd_unbecome_authenticated_pipe_user(void);
void become_root(void);
void unbecome_root(void);
void smbd_become_root(void);

View File

@ -1058,6 +1058,8 @@ extern void build_options(bool screen);
.cancel_pending_lock_requests_by_fid = smbd_cancel_pending_lock_requests_by_fid,
.send_stat_cache_delete_message = smbd_send_stat_cache_delete_message,
.change_to_root_user = smbd_change_to_root_user,
.become_authenticated_pipe_user = smbd_become_authenticated_pipe_user,
.unbecome_authenticated_pipe_user = smbd_unbecome_authenticated_pipe_user,
.contend_level2_oplocks_begin = smbd_contend_level2_oplocks_begin,
.contend_level2_oplocks_end = smbd_contend_level2_oplocks_end,

View File

@ -436,7 +436,7 @@ bool smbd_change_to_root_user(void)
user. Doesn't modify current_user.
****************************************************************************/
bool become_authenticated_pipe_user(struct auth_session_info *session_info)
bool smbd_become_authenticated_pipe_user(struct auth_session_info *session_info)
{
if (!push_sec_ctx())
return False;
@ -455,7 +455,7 @@ bool become_authenticated_pipe_user(struct auth_session_info *session_info)
current_user.
****************************************************************************/
bool unbecome_authenticated_pipe_user(void)
bool smbd_unbecome_authenticated_pipe_user(void)
{
return pop_sec_ctx();
}