summaryrefslogtreecommitdiff
path: root/source4/auth/auth.h
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2004-06-05 01:39:08 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:56:28 -0500
commit0d466258be1fc7156de469daec07b79701557168 (patch)
treeec4af23d2117cafbf39a062f44eebc8b68182324 /source4/auth/auth.h
parentb553acce4b426e1a2e4fda3a9acbfbf41003154a (diff)
downloadsamba-0d466258be1fc7156de469daec07b79701557168.tar.gz
samba-0d466258be1fc7156de469daec07b79701557168.tar.bz2
samba-0d466258be1fc7156de469daec07b79701557168.zip
r1019: Push the auth subsystem away from using typedef, and over to the 'all
goodness and light' struct ;-) Break apart the auth subsystem's return strucutres, into the parts that a netlogon call cares about, and the parts that are for a local session. This is the 'struct session_info' and it will almost completly replace the current information stored on a vuid, but be generic to all login methods (RPC over TCP, for example). Andrew Bartlett (This used to be commit d199697014d9562f9439a30b950fda798c5ef419)
Diffstat (limited to 'source4/auth/auth.h')
-rw-r--r--source4/auth/auth.h34
1 files changed, 24 insertions, 10 deletions
diff --git a/source4/auth/auth.h b/source4/auth/auth.h
index c6a025dba8..c8347cad20 100644
--- a/source4/auth/auth.h
+++ b/source4/auth/auth.h
@@ -37,7 +37,7 @@ typedef struct auth_str
char *str;
} AUTH_STR;
-typedef struct auth_usersupplied_info
+struct auth_usersupplied_info
{
DATA_BLOB lm_resp;
@@ -54,7 +54,7 @@ typedef struct auth_usersupplied_info
AUTH_STR smb_name; /* username before mapping */
AUTH_STR wksta_name; /* workstation name (netbios calling name) unicode string */
-} auth_usersupplied_info;
+};
#define SAM_FILL_NAME 0x01
#define SAM_FILL_INFO3 0x02
@@ -62,20 +62,34 @@ typedef struct auth_usersupplied_info
#define SAM_FILL_UNIX 0x08
#define SAM_FILL_ALL (SAM_FILL_NAME | SAM_FILL_INFO3 | SAM_FILL_SAM | SAM_FILL_UNIX)
-typedef struct auth_serversupplied_info
+struct auth_serversupplied_info
{
TALLOC_CTX *mem_ctx;
BOOL guest;
- /* NT group information taken from the info3 structure */
-
- NT_USER_TOKEN *ptok;
+ struct dom_sid *user_sid;
+ struct dom_sid *primary_group_sid;
+
+ size_t n_domain_groups;
+ struct dom_sid **domain_groups;
DATA_BLOB user_session_key;
DATA_BLOB lm_session_key;
-} auth_serversupplied_info;
+};
+
+struct auth_session_info
+{
+ TALLOC_CTX *mem_ctx;
+ /* NT group information taken from the info3 structure */
+
+ NT_USER_TOKEN *nt_user_token;
+
+ struct auth_serversupplied_info *server_info;
+
+ DATA_BLOB session_key;
+};
struct auth_context {
DATA_BLOB challenge;
@@ -98,7 +112,7 @@ struct auth_context {
void (*free)(struct auth_context **auth_context);
};
-typedef struct auth_methods
+struct auth_methods
{
struct auth_methods *prev, *next;
const char *name; /* What name got this module */
@@ -107,7 +121,7 @@ typedef struct auth_methods
void *my_private_data,
TALLOC_CTX *mem_ctx,
const struct auth_usersupplied_info *user_info,
- auth_serversupplied_info **server_info);
+ struct auth_serversupplied_info **server_info);
DATA_BLOB (*get_chal)(const struct auth_context *auth_context,
void **my_private_data,
@@ -122,7 +136,7 @@ typedef struct auth_methods
/* Function to send a keepalive message on the above structure */
void (*send_keepalive)(void **private_data);
-} auth_methods;
+};
typedef NTSTATUS (*auth_init_function)(struct auth_context *, const char *, struct auth_methods **);