return true;
}
-static bool change_to_user_internal(connection_struct *conn,
- const struct auth_session_info *session_info,
- uint64_t vuid)
-{
- bool ok;
-
- ok = change_to_user_impersonate(conn, session_info, vuid);
- if (!ok) {
- return false;
- }
-
- current_user.need_chdir = conn->tcon_done;
- current_user.done_chdir = false;
-
- if (current_user.need_chdir) {
- ok = chdir_current_service(conn);
- if (!ok) {
- return false;
- }
- current_user.done_chdir = true;
- }
-
- print_impersonation_info(conn);
- return true;
-}
-
/**
* Impersonate user and change directory to service
*
{
struct user_struct *vuser;
int snum = SNUM(conn);
+ bool ok;
if (conn == NULL) {
DBG_WARNING("Connection not open\n");
return false;
}
- return change_to_user_internal(conn, vuser->session_info, vuid);
+ ok = change_to_user_impersonate(conn, vuser->session_info, vuid);
+ if (!ok) {
+ return false;
+ }
+
+ current_user.need_chdir = conn->tcon_done;
+ current_user.done_chdir = false;
+
+ if (current_user.need_chdir) {
+ ok = chdir_current_service(conn);
+ if (!ok) {
+ return false;
+ }
+ current_user.done_chdir = true;
+ }
+
+ print_impersonation_info(conn);
+ return true;
}
/**