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 3 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, see <http://www.gnu.org/licenses/>.
20 #ifndef _SAMBA3_H /* _SAMBA3_H */
23 #include "librpc/gen_ndr/security.h"
24 #include "librpc/gen_ndr/samr.h"
25 #include "param/param.h"
27 struct samba3_samaccount {
34 pass_must_change_time;
47 uint32_t user_rid, group_rid, hours_len, unknown_6;
48 uint16_t acct_ctrl, logon_divs;
49 uint16_t bad_password_count, logon_count;
50 struct samr_Password lm_pw, nt_pw;
51 uint8_t *nt_pw_hist_ptr;
55 struct samba3_groupmapping {
65 uint32_t member_count;
66 struct dom_sid **members;
69 struct samba3_groupdb {
70 uint32_t groupmap_count;
71 struct samba3_groupmapping *groupmappings;
74 struct samba3_alias *aliases;
77 struct samba3_idmap_mapping
79 enum { IDMAP_GROUP, IDMAP_USER } type;
86 /* High water marks */
90 uint32_t mapping_count;
91 struct samba3_idmap_mapping *mappings;
94 struct samba3_winsdb_entry
101 struct ipv4_addr *ips;
106 uint32_t min_password_length;
107 uint32_t password_history;
108 uint32_t user_must_logon_to_change_password;
109 uint32_t maximum_password_age;
110 uint32_t minimum_password_age;
111 uint32_t lockout_duration;
112 uint32_t reset_count_minutes;
113 uint32_t bad_lockout_minutes;
114 uint32_t disconnect_time;
115 uint32_t refuse_machine_password_change;
118 struct samba3_regval {
124 struct samba3_regkey {
127 uint32_t value_count;
128 struct samba3_regval *values;
130 uint32_t subkey_count;
137 struct samba3_regkey *keys;
140 struct samba3_secrets
142 struct cli_credentials *ipc_cred;
144 uint32_t ldappw_count;
151 uint32_t domain_count;
152 struct samba3_domainsecrets
158 time_t last_change_time;
163 int sec_channel_type;
166 uint32_t trusted_domain_count;
167 struct samba3_trusted_dom_pass {
168 uint32_t uni_name_len;
169 const char *uni_name[32]; /* unicode domain name */
170 const char *pass; /* trust relationship's password */
172 struct dom_sid domain_sid; /* remote domain's sid */
175 uint32_t afs_keyfile_count;
177 struct samba3_afs_keyfile {
187 struct samba3_share_info {
189 struct security_descriptor secdesc;
194 struct param_context *configuration;
196 uint32_t winsdb_count;
197 struct samba3_winsdb_entry *winsdb_entries;
199 uint32_t samaccount_count;
200 struct samba3_samaccount *samaccounts;
202 uint32_t share_count;
203 struct samba3_share_info *shares;
205 struct samba3_secrets secrets;
206 struct samba3_groupdb group;
207 struct samba3_idmapdb idmap;
208 struct samba3_policy policy;
209 struct samba3_regdb registry;
212 #include "lib/samba3/samba3_proto.h"
213 #include "lib/samba3/samba3_smbpasswd_proto.h"
215 #endif /* _SAMBA3_H */