2 Unix SMB/CIFS implementation.
4 Copyright (C) Jelmer Vernooij 2005.
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 #ifndef _SAMBA3_H /* _SAMBA3_H */
24 #include "librpc/gen_ndr/security.h"
26 struct samba3_samaccount {
33 pass_must_change_time;
46 uint32_t user_rid, group_rid, hours_len, unknown_6;
47 uint16_t acct_ctrl, logon_divs;
48 uint16_t bad_password_count, logon_count;
49 uint8_t *lm_pw_ptr, *nt_pw_ptr;
50 uint8_t *nt_pw_hist_ptr;
54 struct samba3_groupmapping {
64 uint32_t member_count;
65 struct dom_sid **members;
68 struct samba3_groupdb {
69 uint32_t groupmap_count;
70 struct samba3_groupmapping *groupmappings;
73 struct samba3_alias *aliases;
76 struct samba3_idmap_mapping
78 enum { IDMAP_GROUP, IDMAP_USER } type;
85 /* High water marks */
89 uint32_t mapping_count;
90 struct samba3_idmap_mapping *mappings;
93 struct samba3_winsdb_entry
100 struct ipv4_addr *ips;
105 uint32_t min_password_length;
106 uint32_t password_history;
107 uint32_t user_must_logon_to_change_password;
108 uint32_t maximum_password_age;
109 uint32_t minimum_password_age;
110 uint32_t lockout_duration;
111 uint32_t reset_count_minutes;
112 uint32_t bad_lockout_minutes;
113 uint32_t disconnect_time;
114 uint32_t refuse_machine_password_change;
117 struct samba3_regval {
123 struct samba3_regkey {
126 uint32_t value_count;
127 struct samba3_regval *values;
129 uint32_t subkey_count;
136 struct samba3_regkey *keys;
139 struct samba3_secrets
141 struct cli_credentials *ipc_cred;
143 uint32_t ldappw_count;
150 uint32_t domain_count;
151 struct samba3_domainsecrets
157 time_t last_change_time;
162 int sec_channel_type;
165 uint32_t trusted_domain_count;
166 struct samba3_trusted_dom_pass {
167 uint32_t uni_name_len;
168 const char *uni_name[32]; /* unicode domain name */
169 const char *pass; /* trust relationship's password */
171 struct dom_sid domain_sid; /* remote domain's sid */
174 uint32_t afs_keyfile_count;
176 struct samba3_afs_keyfile {
186 struct samba3_parameter {
191 struct samba3_share_info {
193 struct security_descriptor secdesc;
195 uint32_t parameter_count;
196 struct samba3_parameter *parameters;
201 uint32_t winsdb_count;
202 struct samba3_winsdb_entry *winsdb_entries;
204 uint32_t samaccount_count;
205 struct samba3_samaccount *samaccounts;
207 uint32_t share_count;
208 struct samba3_share_info *shares;
210 struct samba3_secrets secrets;
211 struct samba3_groupdb group;
212 struct samba3_idmapdb idmap;
213 struct samba3_policy policy;
214 struct samba3_regdb registry;
217 #endif /* _SAMBA3_H */