diff options
author | Andrew Bartlett <abartlet@samba.org> | 2011-02-08 16:53:13 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2011-02-09 01:11:06 +0100 |
commit | a2ce53c1f5301ffcf990dbab837c328ea22739b6 (patch) | |
tree | 52dde7c4bb16c0d885b8691a4c5c87f8213b0599 /source4/smb_server | |
parent | f1c0e9532d8e3fb0d8942e4d4e1a122429266b16 (diff) | |
download | samba-a2ce53c1f5301ffcf990dbab837c328ea22739b6.tar.gz samba-a2ce53c1f5301ffcf990dbab837c328ea22739b6.tar.bz2 samba-a2ce53c1f5301ffcf990dbab837c328ea22739b6.zip |
s4-auth Rework auth subsystem to remove struct auth_serversupplied_info
This changes auth_serversupplied_info into the IDL-defined struct
auth_user_info_dc. This then in turn contains a struct
auth_user_info, which is the only part of the structure that is
mainted into the struct session_info.
The idea here is to avoid keeping the incomplete results of the
authentication (such as session keys, lists of SID memberships etc) in
a namespace where it may be confused for the finalised results.
Andrew Barltett
Diffstat (limited to 'source4/smb_server')
-rw-r--r-- | source4/smb_server/management.c | 4 | ||||
-rw-r--r-- | source4/smb_server/smb/sesssetup.c | 21 |
2 files changed, 12 insertions, 13 deletions
diff --git a/source4/smb_server/management.c b/source4/smb_server/management.c index 05373595c0..af993717ef 100644 --- a/source4/smb_server/management.c +++ b/source4/smb_server/management.c @@ -59,8 +59,8 @@ static NTSTATUS smbsrv_session_information(struct irpc_message *msg, info->client_ip = client_addr_string; info->vuid = sess->vuid; - info->account_name = sess->session_info->server_info->account_name; - info->domain_name = sess->session_info->server_info->domain_name; + info->account_name = sess->session_info->info->account_name; + info->domain_name = sess->session_info->info->domain_name; info->connect_time = timeval_to_nttime(&sess->statistics.connect_time); info->auth_time = timeval_to_nttime(&sess->statistics.auth_time); diff --git a/source4/smb_server/smb/sesssetup.c b/source4/smb_server/smb/sesssetup.c index 6b50bcb48e..5e4e3e514f 100644 --- a/source4/smb_server/smb/sesssetup.c +++ b/source4/smb_server/smb/sesssetup.c @@ -68,24 +68,24 @@ static void sesssetup_old_send(struct tevent_req *subreq) struct smbsrv_request *req = state->req; union smb_sesssetup *sess = talloc_get_type(req->io_ptr, union smb_sesssetup); - struct auth_serversupplied_info *server_info = NULL; + struct auth_user_info_dc *user_info_dc = NULL; 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); + status = auth_check_password_recv(subreq, req, &user_info_dc); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) goto failed; flags = AUTH_SESSION_INFO_DEFAULT_GROUPS; - if (server_info->authenticated) { + if (user_info_dc->info->authenticated) { flags |= AUTH_SESSION_INFO_AUTHENTICATED; } - /* This references server_info into session_info */ + /* This references user_info_dc into session_info */ status = req->smb_conn->negotiate.auth_context->generate_session_info(req, req->smb_conn->negotiate.auth_context, - server_info, flags, &session_info); + user_info_dc, flags, &session_info); if (!NT_STATUS_IS_OK(status)) goto failed; /* allocate a new session */ @@ -198,26 +198,25 @@ static void sesssetup_nt1_send(struct tevent_req *subreq) struct sesssetup_context *state = tevent_req_callback_data(subreq, struct sesssetup_context); struct smbsrv_request *req = state->req; union smb_sesssetup *sess = talloc_get_type(req->io_ptr, union smb_sesssetup); - struct auth_serversupplied_info *server_info = NULL; + struct auth_user_info_dc *user_info_dc = NULL; 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); + status = auth_check_password_recv(subreq, req, &user_info_dc); TALLOC_FREE(subreq); if (!NT_STATUS_IS_OK(status)) goto failed; flags = AUTH_SESSION_INFO_DEFAULT_GROUPS; - if (server_info->authenticated) { + if (user_info_dc->info->authenticated) { flags |= AUTH_SESSION_INFO_AUTHENTICATED; } - - /* This references server_info into session_info */ + /* This references user_info_dc into session_info */ status = state->auth_context->generate_session_info(req, state->auth_context, - server_info, + user_info_dc, flags, &session_info); if (!NT_STATUS_IS_OK(status)) goto failed; |