diff options
author | Andrew Bartlett <abartlet@samba.org> | 2010-05-04 16:44:08 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2010-08-14 11:58:13 +1000 |
commit | 272e49e85c47d88ef0a84bce88e6f8d984f2eae4 (patch) | |
tree | 2a4bc4aef47de12de144edc35a4d5c5c75304649 /source4 | |
parent | 61930f50cbace4741500d8b53fc11a4ef3e0d4f8 (diff) | |
download | samba-272e49e85c47d88ef0a84bce88e6f8d984f2eae4.tar.gz samba-272e49e85c47d88ef0a84bce88e6f8d984f2eae4.tar.bz2 samba-272e49e85c47d88ef0a84bce88e6f8d984f2eae4.zip |
s4:auth Move struct auth_usersupplied_info to a common location
This also changes the calling convention slightly - we should always
allocate this with talloc_zero() to allow some elements to be
optional. Some elements may only make sense in Samba3, which I hope
will use this common structure.
Andrew Bartlett
Diffstat (limited to 'source4')
-rw-r--r-- | source4/auth/auth.h | 43 | ||||
-rw-r--r-- | source4/auth/ntlm/auth_simple.c | 2 | ||||
-rw-r--r-- | source4/auth/ntlm/auth_util.c | 6 | ||||
-rw-r--r-- | source4/auth/ntlmssp/ntlmssp_server.c | 2 | ||||
-rw-r--r-- | source4/rpc_server/netlogon/dcerpc_netlogon.c | 6 | ||||
-rw-r--r-- | source4/smb_server/smb/sesssetup.c | 4 |
6 files changed, 9 insertions, 54 deletions
diff --git a/source4/auth/auth.h b/source4/auth/auth.h index 9ce338c8ae..ce583c871c 100644 --- a/source4/auth/auth.h +++ b/source4/auth/auth.h @@ -22,6 +22,7 @@ #define _SAMBA_AUTH_H #include "librpc/gen_ndr/ndr_krb5pac.h" +#include "../auth/common_auth.h" extern const char *krbtgt_attrs[]; extern const char *server_attrs[]; @@ -43,52 +44,10 @@ struct loadparm_context; /* version 0 - till samba4 is stable - metze */ #define AUTH_INTERFACE_VERSION 0 -#define USER_INFO_CASE_INSENSITIVE_USERNAME 0x01 /* username may be in any case */ -#define USER_INFO_CASE_INSENSITIVE_PASSWORD 0x02 /* password may be in any case */ -#define USER_INFO_DONT_CHECK_UNIX_ACCOUNT 0x04 /* don't check unix account status */ -#define USER_INFO_INTERACTIVE_LOGON 0x08 /* don't check unix account status */ - #define AUTH_SESSION_INFO_DEFAULT_GROUPS 0x01 /* Add the user to the default world and network groups */ #define AUTH_SESSION_INFO_AUTHENTICATED 0x02 /* Add the user to the 'authenticated users' group */ #define AUTH_SESSION_INFO_ENTERPRISE_DC 0x04 /* Add the user to the 'enterprise DC' group */ -enum auth_password_state { - AUTH_PASSWORD_RESPONSE, - AUTH_PASSWORD_HASH, - AUTH_PASSWORD_PLAIN -}; - -struct auth_usersupplied_info -{ - const char *workstation_name; - const struct tsocket_address *remote_host; - - uint32_t logon_parameters; - - bool mapped_state; - /* the values the client gives us */ - struct { - const char *account_name; - const char *domain_name; - } client, mapped; - - enum auth_password_state password_state; - - union { - struct { - DATA_BLOB lanman; - DATA_BLOB nt; - } response; - struct { - struct samr_Password *lanman; - struct samr_Password *nt; - } hash; - - char *plaintext; - } password; - uint32_t flags; -}; - struct auth_serversupplied_info { struct dom_sid *account_sid; diff --git a/source4/auth/ntlm/auth_simple.c b/source4/auth/ntlm/auth_simple.c index 9c8f7f64ac..65a08cd92b 100644 --- a/source4/auth/ntlm/auth_simple.c +++ b/source4/auth/ntlm/auth_simple.c @@ -56,7 +56,7 @@ _PUBLIC_ NTSTATUS authenticate_username_pw(TALLOC_CTX *mem_ctx, return nt_status; } - user_info = talloc(tmp_ctx, struct auth_usersupplied_info); + user_info = talloc_zero(tmp_ctx, struct auth_usersupplied_info); if (!user_info) { talloc_free(tmp_ctx); return NT_STATUS_NO_MEMORY; diff --git a/source4/auth/ntlm/auth_util.c b/source4/auth/ntlm/auth_util.c index 7da68a248b..605cd980c6 100644 --- a/source4/auth/ntlm/auth_util.c +++ b/source4/auth/ntlm/auth_util.c @@ -74,7 +74,7 @@ NTSTATUS map_user_info(TALLOC_CTX *mem_ctx, domain = default_domain; } - *user_info_mapped = talloc(mem_ctx, struct auth_usersupplied_info); + *user_info_mapped = talloc_zero(mem_ctx, struct auth_usersupplied_info); if (!*user_info_mapped) { return NT_STATUS_NO_MEMORY; } @@ -124,7 +124,7 @@ NTSTATUS encrypt_user_info(TALLOC_CTX *mem_ctx, struct auth_context *auth_contex { uint8_t chal[8]; DATA_BLOB chall_blob; - user_info_temp = talloc(mem_ctx, struct auth_usersupplied_info); + user_info_temp = talloc_zero(mem_ctx, struct auth_usersupplied_info); if (!user_info_temp) { return NT_STATUS_NO_MEMORY; } @@ -190,7 +190,7 @@ NTSTATUS encrypt_user_info(TALLOC_CTX *mem_ctx, struct auth_context *auth_contex struct samr_Password lanman; struct samr_Password nt; - user_info_temp = talloc(mem_ctx, struct auth_usersupplied_info); + user_info_temp = talloc_zero(mem_ctx, struct auth_usersupplied_info); if (!user_info_temp) { return NT_STATUS_NO_MEMORY; } diff --git a/source4/auth/ntlmssp/ntlmssp_server.c b/source4/auth/ntlmssp/ntlmssp_server.c index 352f8754d6..6e3cf8a8ff 100644 --- a/source4/auth/ntlmssp/ntlmssp_server.c +++ b/source4/auth/ntlmssp/ntlmssp_server.c @@ -158,7 +158,7 @@ static NTSTATUS auth_ntlmssp_check_password(struct ntlmssp_state *ntlmssp_state, NTSTATUS nt_status; struct auth_usersupplied_info *user_info; - user_info = talloc(ntlmssp_state, struct auth_usersupplied_info); + user_info = talloc_zero(ntlmssp_state, struct auth_usersupplied_info); if (!user_info) { return NT_STATUS_NO_MEMORY; } diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c index 226a0640bb..9d8195aaad 100644 --- a/source4/rpc_server/netlogon/dcerpc_netlogon.c +++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c @@ -491,13 +491,9 @@ static NTSTATUS dcesrv_netr_LogonSamLogon_base(struct dcesrv_call_state *dce_cal struct netr_SamInfo3 *sam3; struct netr_SamInfo6 *sam6; - user_info = talloc(mem_ctx, struct auth_usersupplied_info); + user_info = talloc_zero(mem_ctx, struct auth_usersupplied_info); NT_STATUS_HAVE_NO_MEMORY(user_info); - user_info->flags = 0; - user_info->mapped_state = false; - user_info->remote_host = NULL; - switch (r->in.logon_level) { case NetlogonInteractiveInformation: case NetlogonServiceInformation: diff --git a/source4/smb_server/smb/sesssetup.c b/source4/smb_server/smb/sesssetup.c index 7372347e9a..419a8cbf79 100644 --- a/source4/smb_server/smb/sesssetup.c +++ b/source4/smb_server/smb/sesssetup.c @@ -144,7 +144,7 @@ static void sesssetup_old(struct smbsrv_request *req, union smb_sesssetup *sess) if (!remote_machine) goto nomem; } - user_info = talloc(req, struct auth_usersupplied_info); + user_info = talloc_zero(req, struct auth_usersupplied_info); if (!user_info) goto nomem; user_info->mapped_state = false; @@ -319,7 +319,7 @@ static void sesssetup_nt1(struct smbsrv_request *req, union smb_sesssetup *sess) if (!remote_machine) goto nomem; } - user_info = talloc(req, struct auth_usersupplied_info); + user_info = talloc_zero(req, struct auth_usersupplied_info); if (!user_info) goto nomem; user_info->mapped_state = false; |