diff options
Diffstat (limited to 'source4/smb_server')
-rw-r--r-- | source4/smb_server/smb/sesssetup.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source4/smb_server/smb/sesssetup.c b/source4/smb_server/smb/sesssetup.c index afc33dd3c6..b61fce0887 100644 --- a/source4/smb_server/smb/sesssetup.c +++ b/source4/smb_server/smb/sesssetup.c @@ -71,15 +71,20 @@ static void sesssetup_old_send(struct tevent_req *subreq) struct auth_session_info *session_info; struct smbsrv_session *smb_sess; NTSTATUS status; + uint32_t flags; status = auth_check_password_recv(subreq, req, &server_info); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) goto failed; + flags = AUTH_SESSION_INFO_DEFAULT_GROUPS; + if (server_info->authenticated) { + flags |= AUTH_SESSION_INFO_AUTHENTICATED; + } /* This references server_info into session_info */ status = req->smb_conn->negotiate.auth_context->generate_session_info(req, req->smb_conn->negotiate.auth_context, - server_info, &session_info); + server_info, flags, &session_info); if (!NT_STATUS_IS_OK(status)) goto failed; /* allocate a new session */ @@ -196,16 +201,23 @@ static void sesssetup_nt1_send(struct tevent_req *subreq) struct auth_session_info *session_info; struct smbsrv_session *smb_sess; + uint32_t flags; NTSTATUS status; status = auth_check_password_recv(subreq, req, &server_info); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) goto failed; + flags = AUTH_SESSION_INFO_DEFAULT_GROUPS; + if (server_info->authenticated) { + flags |= AUTH_SESSION_INFO_AUTHENTICATED; + } + /* This references server_info into session_info */ status = state->auth_context->generate_session_info(req, state->auth_context, server_info, + flags, &session_info); if (!NT_STATUS_IS_OK(status)) goto failed; |