2 * Unix SMB/CIFS implementation.
3 * tdbsam2 genstruct enabled header file
4 * Copyright (C) Simo Sorce 2002
6 * This program is free software; you can redistribute it and/or modify it under
7 * the terms of the GNU General Public License as published by the Free
8 * Software Foundation; either version 2 of the License, or (at your option)
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16 * You should have received a copy of the GNU General Public License along with
17 * this program; if not, write to the Free Software Foundation, Inc., 675
18 * Mass Ave, Cambridge, MA 02139, USA.
21 /* ALL strings assumes UTF8 as encoding */
26 /* IMPORTANT: these structures must follow closely the GUMS_OBJECTs
27 * structures as they will be casted over !!
28 * the GUMS_OBJECT union is unrolled here into four tdbsam2
29 * objects cause genstruct is not able to follow arbitrary unions */
31 GENSTRUCT
struct domain_sub_structure
33 uint32 next_rid
; /* The Next free RID */
36 GENSTRUCT
struct tdbsam2_domain_data
42 uint32 xcounter
; /* counter to be updated at any change */
44 SEC_DESC
*sec_desc
; /* Security Descriptor */
46 DOM_SID
*dom_sid
; /* The Domain SID */
47 char *name
; _NULLTERM
/* NT Domain Name */
48 char *description
; _NULLTERM
/* Descritpion (Gecos) */
50 struct domain_sub_structure
*dss
;
53 GENSTRUCT
struct user_sub_structure
55 DOM_SID
*group_sid
; /* The Primary Group SID */
60 NTTIME pass_last_set_time
;
61 NTTIME pass_can_change_time
;
62 NTTIME pass_must_change_time
;
64 char *full_name
; _NULLTERM
/* The Full Name */
65 char *home_dir
; _NULLTERM
/* Home Directory */
66 char *dir_drive
; _NULLTERM
/* Drive Letter the home should be mapped to */
67 char *logon_script
; _NULLTERM
/* Logon script path */
68 char *profile_path
; _NULLTERM
/* Profile is stored here */
69 char *workstations
; _NULLTERM
/* List of Workstation names the user is allowed to LogIn */
70 char *unknown_str
; _NULLTERM
/* Guess ... Unknown */
71 char *munged_dial
; _NULLTERM
/* Callback Number */
73 DATA_BLOB lm_pw
; /* .data is Null if no password */
74 DATA_BLOB nt_pw
; /* .data is Null if no password */
76 uint16 acct_ctrl
; /* account flags */
77 uint16 logon_divs
; /* 168 - num of hours in a week */
78 uint32 hours_len
; /* normally 21 */
79 uint8
*hours
; _LEN(hours_len
) /* normally 21 bytes (depends on hours_len) */
81 uint16 bad_password_count
; /* 0 */
82 uint16 logon_count
; /* 0 */
83 uint32 unknown_3
; /* 0x00ff ffff */
84 uint32 unknown_6
; /* 0x0000 04ec */
87 GENSTRUCT
struct tdbsam2_user_data
93 uint32 xcounter
; /* counter to be updated at any change */
95 SEC_DESC
*sec_desc
; /* Security Descriptor */
97 DOM_SID
*user_sid
; /* The User SID */
98 char *name
; _NULLTERM
/* NT User Name */
99 char *description
; _NULLTERM
/* Descritpion (Gecos) */
101 struct user_sub_structure
*uss
;
104 GENSTRUCT
struct group_sub_structure
106 uint32 count
; /* number of sids */
107 DOM_SID
*members
; _LEN(count
) /* SID array */
110 GENSTRUCT
struct tdbsam2_group_data
116 uint32 xcounter
; /* counter to be updated at any change */
118 SEC_DESC
*sec_desc
; /* Security Descriptor */
120 DOM_SID
*group_sid
; /* The Group SID */
121 char *name
; _NULLTERM
/* NT Group Name */
122 char *description
; _NULLTERM
/* Descritpion (Gecos) */
124 struct group_sub_structure
*gss
;
127 GENSTRUCT
struct priv_sub_structure
129 LUID_ATTR
*privilege
; /* Privilege */
131 uint32 count
; /* number of sids */
132 DOM_SID
*members
; _LEN(count
) /* SID array */
135 GENSTRUCT
struct tdbsam2_priv_data
141 uint32 xcounter
; /* counter to be updated at any change */
144 char *name
; _NULLTERM
/* Privilege Name */
145 char *description
; _NULLTERM
/* Descritpion (Gecos) */
147 struct priv_sub_structure
*pss
;
150 #endif /* TDBSAM2_H */