From b137156acbf7c39c86f306100cccc65b441a3209 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 1 Apr 2011 11:54:49 +0200 Subject: s3-smbd: Added a become_user_by_session() function. This uses the provided session_info instead of searching the user via the vuid. This is useful to work with fake connnection you need to create if someone connects directly to a rpc service. Signed-off-by: Jeremy Allison --- source3/smbd/uid.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'source3/smbd/uid.c') diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c index 96c4574827..b554b36054 100644 --- a/source3/smbd/uid.c +++ b/source3/smbd/uid.c @@ -528,6 +528,23 @@ bool become_user(connection_struct *conn, uint16 vuid) return True; } +bool become_user_by_session(connection_struct *conn, + const struct auth_serversupplied_info *session_info) +{ + if (!push_sec_ctx()) + return false; + + push_conn_ctx(); + + if (!change_to_user_by_session(conn, session_info)) { + pop_sec_ctx(); + pop_conn_ctx(); + return false; + } + + return true; +} + bool unbecome_user(void) { pop_sec_ctx(); -- cgit