summaryrefslogtreecommitdiff
path: root/source3/include/tdbsam2.h
diff options
context:
space:
mode:
Diffstat (limited to 'source3/include/tdbsam2.h')
-rw-r--r--source3/include/tdbsam2.h107
1 files changed, 81 insertions, 26 deletions
diff --git a/source3/include/tdbsam2.h b/source3/include/tdbsam2.h
index 047b4e7c90..b99e16586b 100644
--- a/source3/include/tdbsam2.h
+++ b/source3/include/tdbsam2.h
@@ -20,33 +20,46 @@
/* ALL strings assumes UTF8 as encoding */
-GENSTRUCT struct tdbsam2_domain_data {
- uint32 xcounter; /* counter to be updated at any change */
+#ifndef TDBSAM2_H
+#define TDBSAM2_H
- SEC_DESC *sec_desc; /* Security Descriptor */
- DOM_SID *dom_sid; /* The Domain SID */
- char *name; _NULLTERM /* NT Domain Name */
- char *description; _NULLTERM /* Descritpion (Gecos) */
+/* IMPORTANT: these structures must follow closely the GUMS_OBJECTs
+ * structures as they will be casted over !!
+ * the GUMS_OBJECT union is unrolled here into four tdbsam2
+ * objects cause genstruct is not able to follow arbitrary unions */
+GENSTRUCT struct domain_sub_structure
+{
uint32 next_rid; /* The Next free RID */
};
-GENSTRUCT struct tdbsam2_user_data {
+GENSTRUCT struct tdbsam2_domain_data
+{
+ TALLOC_CTX *mem_ctx;
+
+ uint32 type;
+ uint32 version;
uint32 xcounter; /* counter to be updated at any change */
SEC_DESC *sec_desc; /* Security Descriptor */
- DOM_SID *user_sid; /* The User SID */
- char *name; _NULLTERM /* NT User Name */
+
+ DOM_SID *dom_sid; /* The Domain SID */
+ char *name; _NULLTERM /* NT Domain Name */
char *description; _NULLTERM /* Descritpion (Gecos) */
+ struct domain_sub_structure *dss;
+};
+
+GENSTRUCT struct user_sub_structure
+{
DOM_SID *group_sid; /* The Primary Group SID */
- NTTIME *logon_time;
- NTTIME *logoff_time;
- NTTIME *kickoff_time;
- NTTIME *pass_last_set_time;
- NTTIME *pass_can_change_time;
- NTTIME *pass_must_change_time;
+ NTTIME logon_time;
+ NTTIME logoff_time;
+ NTTIME kickoff_time;
+ NTTIME pass_last_set_time;
+ NTTIME pass_can_change_time;
+ NTTIME pass_must_change_time;
char *full_name; _NULLTERM /* The Full Name */
char *home_dir; _NULLTERM /* Home Directory */
@@ -57,39 +70,81 @@ GENSTRUCT struct tdbsam2_user_data {
char *unknown_str; _NULLTERM /* Guess ... Unknown */
char *munged_dial; _NULLTERM /* Callback Number */
- /* passwords are 16 byte leght, pointer is null if no password */
- uint8 *lm_pw_ptr; _LEN(16) /* Lanman hashed password */
- uint8 *nt_pw_ptr; _LEN(16) /* NT hashed password */
+ DATA_BLOB lm_pw; /* .data is Null if no password */
+ DATA_BLOB nt_pw; /* .data is Null if no password */
+ uint16 acct_ctrl; /* account flags */
uint16 logon_divs; /* 168 - num of hours in a week */
uint32 hours_len; /* normally 21 */
uint8 *hours; _LEN(hours_len) /* normally 21 bytes (depends on hours_len) */
+ uint16 bad_password_count; /* 0 */
+ uint16 logon_count; /* 0 */
uint32 unknown_3; /* 0x00ff ffff */
- uint32 unknown_5; /* 0x0002 0000 */
uint32 unknown_6; /* 0x0000 04ec */
};
-GENSTRUCT struct tdbsam2_group_data {
+GENSTRUCT struct tdbsam2_user_data
+{
+ TALLOC_CTX *mem_ctx;
+
+ uint32 type;
+ uint32 version;
uint32 xcounter; /* counter to be updated at any change */
SEC_DESC *sec_desc; /* Security Descriptor */
+
+ DOM_SID *user_sid; /* The User SID */
+ char *name; _NULLTERM /* NT User Name */
+ char *description; _NULLTERM /* Descritpion (Gecos) */
+
+ struct user_sub_structure *uss;
+};
+
+GENSTRUCT struct group_sub_structure
+{
+ uint32 count; /* number of sids */
+ DOM_SID *members; _LEN(count) /* SID array */
+};
+
+GENSTRUCT struct tdbsam2_group_data
+{
+ TALLOC_CTX *mem_ctx;
+
+ uint32 type;
+ uint32 version;
+ uint32 xcounter; /* counter to be updated at any change */
+
+ SEC_DESC *sec_desc; /* Security Descriptor */
+
DOM_SID *group_sid; /* The Group SID */
char *name; _NULLTERM /* NT Group Name */
char *description; _NULLTERM /* Descritpion (Gecos) */
+ struct group_sub_structure *gss;
+};
+
+GENSTRUCT struct priv_sub_structure
+{
+ LUID_ATTR *privilege; /* Privilege */
+
uint32 count; /* number of sids */
- DOM_SID **members; _LEN(count) /* SID array */
+ DOM_SID *members; _LEN(count) /* SID array */
};
-GENSTRUCT struct tdbsam2_privilege_data {
+GENSTRUCT struct tdbsam2_priv_data
+{
+ TALLOC_CTX *mem_ctx;
+
+ uint32 type;
+ uint32 version;
uint32 xcounter; /* counter to be updated at any change */
- LUID_ATTR *privilege; /* Privilege */
- char *name; _NULLTERM /* NT User Name */
+ DOM_SID *null_sid;
+ char *name; _NULLTERM /* Privilege Name */
char *description; _NULLTERM /* Descritpion (Gecos) */
- uint32 count; /* number of sids */
- DOM_SID **members; _LEN(count) /* SID array */
+ struct priv_sub_structure *pss;
};
+#endif /* TDBSAM2_H */