1 #ifndef _WINBINDD_PROTO_H_
2 #define _WINBINDD_PROTO_H_
3 /* This file is automatically generated with "make proto". DO NOT EDIT */
6 /*The following definitions come from lib/access.c */
8 BOOL
allow_access(char *deny_list
,char *allow_list
,
9 char *cname
,char *caddr
);
10 BOOL
check_access(int sock
, char *allow_list
, char *deny_list
);
12 /*The following definitions come from lib/bitmap.c */
14 struct bitmap
*bitmap_allocate(int n
);
15 BOOL
bitmap_set(struct bitmap
*bm
, unsigned i
);
16 BOOL
bitmap_clear(struct bitmap
*bm
, unsigned i
);
17 BOOL
bitmap_query(struct bitmap
*bm
, unsigned i
);
18 int bitmap_find(struct bitmap
*bm
, unsigned ofs
);
20 /*The following definitions come from lib/charcnv.c */
22 char *unix2dos_format(char *str
,BOOL overwrite
);
23 char *dos2unix_format(char *str
, BOOL overwrite
);
24 void interpret_character_set(char *str
);
26 /*The following definitions come from lib/charset.c */
28 void charset_initialise(void);
29 void codepage_initialise(int client_codepage
);
30 void add_char_string(char *s
);
32 /*The following definitions come from lib/crc32.c */
34 uint32
crc32_calc_buffer( uint32 count
, char *buffer
);
36 /*The following definitions come from lib/debug.c */
38 BOOL
dbg_interactive(void);
39 void sig_usr2( int sig
);
40 void sig_usr1( int sig
);
41 void setup_logging( char *pname
, BOOL interactive
);
42 void reopen_logs( void );
43 void force_check_log_size( void );
44 void dbgflush( void );
45 BOOL
dbghdr( int level
, char *file
, char *func
, int line
);
46 dbg_Token
dbg_char2token( dbg_Token
*state
, int c
);
48 /*The following definitions come from lib/doscalls.c */
50 int dos_unlink(char *fname
);
51 int dos_open(char *fname
,int flags
,mode_t mode
);
52 DIR *dos_opendir(char *dname
);
53 char *dos_readdirname(DIR *p
);
54 int dos_stat(char *fname
,SMB_STRUCT_STAT
*sbuf
);
55 int dos_lstat(char *fname
,SMB_STRUCT_STAT
*sbuf
);
56 int dos_mkdir(char *dname
,mode_t mode
);
57 int dos_rmdir(char *dname
);
58 int dos_chdir(char *dname
);
59 int dos_utime(char *fname
,struct utimbuf
*times
);
60 int copy_reg(char *source
, const char *dest
);
61 int dos_rename(char *from
, char *to
);
62 int dos_chmod(char *fname
,mode_t mode
);
63 char *dos_getwd(char *unix_path
);
64 BOOL
dos_file_exist(char *fname
,SMB_STRUCT_STAT
*sbuf
);
65 BOOL
dos_directory_exist(char *dname
,SMB_STRUCT_STAT
*st
);
66 time_t dos_file_modtime(char *fname
);
67 SMB_OFF_T
dos_file_size(char *file_name
);
68 int dos_ChDir(char *path
);
69 char *dos_GetWd(char *path
);
71 /*The following definitions come from lib/fault.c */
73 void fault_setup(void (*fn
)(void *));
75 /*The following definitions come from lib/genrand.c */
77 void generate_random_buffer( unsigned char *out
, int len
, BOOL re_seed
);
79 /*The following definitions come from lib/getsmbpass.c */
81 char *getsmbpass(char *prompt
) ;
83 /*The following definitions come from lib/hmacmd5.c */
85 void hmac_md5_init_rfc2104(uchar
* key
, int key_len
, HMACMD5Context
*ctx
);
86 void hmac_md5_init_limK_to_64(const uchar
* key
, int key_len
,
88 void hmac_md5_update(const uchar
* text
, int text_len
, HMACMD5Context
*ctx
);
89 void hmac_md5_final(uchar
*digest
, HMACMD5Context
*ctx
);
90 void hmac_md5( uchar key
[16], uchar
* data
, int data_len
, uchar
* digest
);
92 /*The following definitions come from lib/interface.c */
94 void load_interfaces(void);
95 void iface_set_default(char *ip
,char *bcast
,char *nmask
);
96 BOOL
ismyip(struct in_addr ip
);
97 BOOL
is_local_net(struct in_addr from
);
98 int iface_count(void);
99 BOOL
we_are_multihomed(void);
100 struct interface
*get_interface(int n
);
101 struct in_addr
*iface_n_ip(int n
);
102 unsigned iface_hash(void);
103 struct in_addr
*iface_bcast(struct in_addr ip
);
104 struct in_addr
*iface_ip(struct in_addr ip
);
106 /*The following definitions come from lib/kanji.c */
108 void interpret_coding_system(char *str
);
109 BOOL
is_multibyte_codepage(void);
110 void initialize_multibyte_vectors( int client_codepage
);
112 /*The following definitions come from lib/md4.c */
114 void mdfour(unsigned char *out
, const unsigned char *in
, int n
);
116 /*The following definitions come from lib/md5.c */
118 void MD5Init(struct MD5Context
*ctx
);
119 void MD5Update(struct MD5Context
*ctx
, uchar
const *buf
, unsigned len
);
120 void MD5Final(uchar digest
[16], struct MD5Context
*ctx
);
121 void MD5Transform(uint32 buf
[4], const uchar inext
[64]);
123 /*The following definitions come from lib/msrpc-client.c */
125 BOOL
receive_msrpc(int fd
, prs_struct
* data
, unsigned int timeout
);
126 BOOL
msrpc_send(int fd
, prs_struct
* ps
);
127 BOOL
msrpc_receive(int fd
, prs_struct
* ps
);
128 BOOL
ncalrpc_l_connect(struct msrpc_local
*msrpc
, const char *pipe_name
);
129 void ncalrpc_l_close_socket(struct msrpc_local
*msrpc
);
130 void ncalrpc_l_sockopt(struct msrpc_local
*msrpc
, char *options
);
131 BOOL
ncalrpc_l_connect_auth(struct msrpc_local
*msrpc
,
132 const vuser_key
* key
, const char *pipename
);
133 struct msrpc_local
*ncalrpc_l_initialise(struct msrpc_local
*msrpc
,
134 const vuser_key
* key
);
135 void ncalrpc_l_shutdown(struct msrpc_local
*msrpc
);
136 BOOL
ncalrpc_l_establish_connection(struct msrpc_local
*msrpc
,
137 const char *pipe_name
);
139 /*The following definitions come from lib/msrpc_use.c */
142 /*The following definitions come from lib/netmask.c */
144 int get_netmask(struct in_addr
*ipaddr
, struct in_addr
*nmask
);
146 /*The following definitions come from lib/pidfile.c */
148 pid_t
pidfile_pid(char *name
);
149 void pidfile_create(char *name
);
151 /*The following definitions come from lib/replace.c */
153 char *rep_inet_ntoa(struct in_addr ip
);
155 /*The following definitions come from lib/set_vuid.c */
157 void init_vuid(void);
158 BOOL
become_vuser(const vuser_key
*k
);
159 BOOL
unbecome_vuser(void);
161 /*The following definitions come from lib/sids.c */
163 struct sid_map
* add_sidmap_to_array(uint32
*len
, struct sid_map
***array
,
164 const struct sid_map
*name
);
165 void get_sam_domain_name(void);
166 BOOL
get_member_domain_sid(void);
167 void generate_wellknown_sids(void);
168 BOOL
create_sidmap_table(void);
169 BOOL
generate_sam_sid(char *domain_name
, DOM_SID
*sid
);
170 BOOL
pwdb_initialise(BOOL is_server
);
171 BOOL
map_domain_name_to_sid(DOM_SID
*sid
, char **nt_domain
);
172 BOOL
map_domain_sid_to_name(DOM_SID
*sid
, char *nt_domain
);
173 BOOL
map_domain_sid_to_any_dc(DOM_SID
*sid
, char *dc_name
);
174 BOOL
split_domain_name(const char *fullname
, char *domain
, char *name
);
175 BOOL
enumtrustdoms(char ***doms
, uint32
*num_entries
);
177 /*The following definitions come from lib/signal.c */
179 void BlockSignals(BOOL block
,int signum
);
180 void CatchSignal(int signum
,void (*handler
)(int ));
181 void CatchChild(void);
182 void CatchChildLeaveStatus(void);
184 /*The following definitions come from lib/slprintf.c */
186 int vslprintf(char *str
, int n
, char *format
, va_list ap
);
188 /*The following definitions come from libsmb/clientgen.c */
190 int cli_set_port(struct cli_state
*cli
, int port
);
191 char *cli_errstr(struct cli_state
*cli
);
192 void cli_safe_smb_errstr(struct cli_state
*cli
, char *msg
, size_t len
);
193 BOOL
get_safe_rap_errstr(int rap_error
, char *err_msg
, size_t msglen
);
194 void cli_safe_errstr(struct cli_state
*cli
, char *err_msg
, size_t msglen
);
195 BOOL
cli_send_trans(struct cli_state
*cli
, int trans
,
196 char *name
, int pipe_name_len
,
198 uint16
*setup
, int lsetup
, int msetup
,
199 char *param
, int lparam
, int mparam
,
200 char *data
, int ldata
, int mdata
);
201 BOOL
cli_api_pipe(struct cli_state
*cli
, char *pipe_name
, int pipe_name_len
,
202 uint16
*setup
, uint32 setup_count
, uint32 max_setup_count
,
203 char *params
, uint32 param_count
, uint32 max_param_count
,
204 char *data
, uint32 data_count
, uint32 max_data_count
,
205 char **rparam
, uint32
*rparam_count
,
206 char **rdata
, uint32
*rdata_count
);
207 BOOL
cli_api(struct cli_state
*cli
,
208 char *param
, int prcnt
, int mprcnt
,
209 char *data
, int drcnt
, int mdrcnt
,
210 char **rparam
, int *rprcnt
,
211 char **rdata
, int *rdrcnt
);
212 BOOL
cli_NetWkstaUserLogon(struct cli_state
*cli
,char *user
, char *workstation
);
213 BOOL
cli_RNetShareEnum(struct cli_state
*cli
, void (*fn
)(const char *, uint32
, const char *));
214 BOOL
cli_NetServerEnum(struct cli_state
*cli
, char *workgroup
, uint32 stype
,
215 void (*fn
)(const char *, uint32
, const char *));
216 BOOL
cli_session_setup_x(struct cli_state
*cli
,
218 char *pass
, int passlen
,
219 char *ntpass
, int ntpasslen
,
221 BOOL
cli_session_setup(struct cli_state
*cli
,
222 char *myhostname
, char *user
,
223 char *pass
, int passlen
,
224 char *ntpass
, int ntpasslen
,
226 BOOL
cli_ulogoff(struct cli_state
*cli
);
227 BOOL
cli_send_tconX(struct cli_state
*cli
,
228 char *share
, char *dev
, char *pass
, int passlen
);
229 BOOL
cli_tdis(struct cli_state
*cli
);
230 BOOL
cli_rename(struct cli_state
*cli
, char *fname_src
, char *fname_dst
);
231 BOOL
cli_unlink(struct cli_state
*cli
, char *fname
);
232 BOOL
cli_mkdir(struct cli_state
*cli
, char *dname
);
233 BOOL
cli_rmdir(struct cli_state
*cli
, char *dname
);
234 int cli_nt_create(struct cli_state
*cli
, const char *fname
);
235 int cli_open(struct cli_state
*cli
, const char *fname
,
236 int flags
, int share_mode
);
237 BOOL
cli_close(struct cli_state
*cli
, int fnum
);
238 BOOL
cli_lock(struct cli_state
*cli
, int fnum
, uint32 offset
, uint32 len
, int timeout
);
239 BOOL
cli_unlock(struct cli_state
*cli
, int fnum
, uint32 offset
, uint32 len
, int timeout
);
240 size_t cli_read_one(struct cli_state
*cli
, int fnum
, char *buf
, off_t offset
, size_t size
);
241 size_t cli_read(struct cli_state
*cli
, int fnum
, char *buf
, off_t offset
, size_t size
, BOOL overlap
);
242 ssize_t
cli_write(struct cli_state
*cli
,
243 int fnum
, uint16 write_mode
,
244 char *buf
, off_t offset
, size_t size
, size_t bytes_left
);
245 BOOL
cli_getattrE(struct cli_state
*cli
, int fd
,
246 uint16
*attr
, size_t *size
,
247 time_t *c_time
, time_t *a_time
, time_t *m_time
);
248 BOOL
cli_getatr(struct cli_state
*cli
, char *fname
,
249 uint16
*attr
, size_t *size
, time_t *t
);
250 BOOL
cli_setatr(struct cli_state
*cli
, char *fname
, uint16 attr
, time_t t
);
251 BOOL
cli_qpathinfo(struct cli_state
*cli
, const char *fname
,
252 time_t *c_time
, time_t *a_time
, time_t *m_time
,
253 size_t *size
, uint16
*mode
);
254 BOOL
cli_qpathinfo2(struct cli_state
*cli
, const char *fname
,
255 time_t *c_time
, time_t *a_time
, time_t *m_time
,
256 time_t *w_time
, size_t *size
, uint16
*mode
,
258 BOOL
cli_qfileinfo(struct cli_state
*cli
, int fnum
,
259 uint16
*mode
, size_t *size
,
260 time_t *c_time
, time_t *a_time
, time_t *m_time
,
261 time_t *w_time
, SMB_INO_T
*ino
);
262 int cli_list(struct cli_state
*cli
,const char *Mask
,uint16 attribute
,
263 void (*fn
)(file_info
*, const char *));
264 BOOL
cli_oem_change_password(struct cli_state
*cli
, const char *user
, const char *new_password
,
265 const char *old_password
);
266 BOOL
cli_negprot(struct cli_state
*cli
);
267 BOOL
cli_session_request(struct cli_state
*cli
,
268 struct nmb_name
*calling
, struct nmb_name
*called
);
269 BOOL
cli_connect(struct cli_state
*cli
, const char *host
, struct in_addr
*ip
);
270 void cli_init_creds(struct cli_state
*cli
, const struct ntuser_creds
*usr
);
271 struct cli_state
*cli_initialise(struct cli_state
*cli
);
272 void cli_close_socket(struct cli_state
*cli
);
273 void cli_shutdown(struct cli_state
*cli
);
274 int cli_error(struct cli_state
*cli
, uint8
*eclass
, uint32
*num
);
275 void cli_sockopt(struct cli_state
*cli
, char *options
);
276 uint16
cli_setpid(struct cli_state
*cli
, uint16 pid
);
277 BOOL
cli_reestablish_connection(struct cli_state
*cli
);
278 BOOL
cli_establish_connection(struct cli_state
*cli
,
279 const char *dest_host
, struct in_addr
*dest_ip
,
280 struct nmb_name
*calling
, struct nmb_name
*called
,
281 char *service
, char *service_type
,
282 BOOL do_shutdown
, BOOL do_tcon
);
283 BOOL
cli_connect_auth(struct cli_state
*cli
,
284 const char* desthost
,
285 struct in_addr
*dest_ip
,
286 const struct ntuser_creds
*usr
);
287 BOOL
cli_connect_servers_auth(struct cli_state
*cli
,
289 const struct ntuser_creds
*usr
);
290 BOOL
cli_connect_serverlist(struct cli_state
*cli
, char *p
);
291 int cli_printjob_del(struct cli_state
*cli
, int job
);
292 int cli_print_queue(struct cli_state
*cli
,
293 void (*fn
)(struct print_job_info
*));
294 BOOL
cli_chkpath(struct cli_state
*cli
, char *path
);
295 BOOL
cli_message_start(struct cli_state
*cli
, char *host
, char *username
,
297 BOOL
cli_message_text(struct cli_state
*cli
, char *msg
, int len
, int grp
);
298 BOOL
cli_message_end(struct cli_state
*cli
, int grp
);
299 BOOL
cli_dskattr(struct cli_state
*cli
, int *bsize
, int *total
, int *avail
);
300 BOOL
get_any_dc_name(const char *domain
, char *srv_name
);
302 /*The following definitions come from libsmb/credentials.c */
304 char *credstr(const uchar
*cred
);
305 void cred_session_key(DOM_CHAL
*clnt_chal
, DOM_CHAL
*srv_chal
, const char *pass
,
306 uchar session_key
[8]);
307 void cred_create(uchar session_key
[8], DOM_CHAL
*stor_cred
, UTIME timestamp
,
309 int cred_assert(const DOM_CHAL
*cred
, uchar session_key
[8],
310 DOM_CHAL
*stored_cred
, UTIME timestamp
);
311 BOOL
clnt_deal_with_creds(uchar sess_key
[8],
312 DOM_CRED
*sto_clnt_cred
, DOM_CRED
*rcv_srv_cred
);
313 BOOL
deal_with_creds(uchar sess_key
[8],
314 DOM_CRED
*sto_clnt_cred
,
315 const DOM_CRED
*rcv_clnt_cred
, DOM_CRED
*rtn_srv_cred
);
317 /*The following definitions come from libsmb/namequery.c */
319 BOOL
name_status(int fd
,char *name
,int name_type
,BOOL recurse
,
320 struct in_addr to_ip
,char *master
,char *rname
,
321 void (*fn
)(struct packet_struct
*));
322 struct in_addr
*name_query(int fd
,const char *name
,int name_type
, BOOL bcast
,BOOL recurse
,
323 struct in_addr to_ip
, int *count
, void (*fn
)(struct packet_struct
*));
324 FILE *startlmhosts(char *fname
);
325 BOOL
getlmhostsent( FILE *fp
, pstring name
, int *name_type
, struct in_addr
*ipaddr
);
326 void endlmhosts(FILE *fp
);
327 BOOL
is_ip_address(const char *name
);
328 BOOL
resolve_name(const char *name
, struct in_addr
*return_ip
, int name_type
);
329 BOOL
resolve_srv_name(const char* srv_name
, fstring dest_host
,
331 BOOL
find_master_ip(char *group
, struct in_addr
*master_ip
);
333 /*The following definitions come from libsmb/nmblib.c */
335 void debug_nmb_packet(struct packet_struct
*p
);
336 char *nmb_namestr(struct nmb_name
*n
);
337 void nmb_safe_namestr(struct nmb_name
*n
, char *str
, size_t len
);
338 struct packet_struct
*copy_packet(struct packet_struct
*packet
);
339 void free_packet(struct packet_struct
*packet
);
340 struct packet_struct
*read_packet(int fd
,enum packet_type packet_type
);
341 void make_nmb_name( struct nmb_name
*n
, const char *name
, int type
, const char *this_scope
);
342 BOOL
nmb_name_equal(struct nmb_name
*n1
, struct nmb_name
*n2
);
343 BOOL
send_packet(struct packet_struct
*p
);
344 struct packet_struct
*receive_packet(int fd
,enum packet_type type
,int t
);
345 void sort_query_replies(char *data
, int n
, struct in_addr ip
);
346 BOOL
read_nmb_sock(int c
, struct nmb_state
*con
);
347 int get_nmb_sock(void);
348 char *dns_to_netbios_name(char *dns_name
);
349 int name_mangle( char *In
, char *Out
, char name_type
);
350 int name_extract(char *buf
,int ofs
,char *name
);
351 int name_len(char *s1
);
353 /*The following definitions come from libsmb/nterr.c */
355 BOOL
get_safe_nt_error_msg(uint32 nt_code
, char *msg
, size_t len
);
356 const char *get_nt_error_msg(uint32 nt_code
);
358 /*The following definitions come from libsmb/pwd_cache.c */
360 void pwd_init(struct pwd_info
*pwd
);
361 BOOL
pwd_is_nullpwd(const struct pwd_info
*pwd
);
362 void pwd_obfuscate_key(struct pwd_info
*pwd
, uint32 int_key
, char *str_key
);
363 BOOL
pwd_compare(const struct pwd_info
*_pwd1
, const struct pwd_info
*_pwd2
);
364 void pwd_read(struct pwd_info
*pwd
, char *passwd_report
, BOOL do_encrypt
);
365 void pwd_set_nullpwd(struct pwd_info
*pwd
);
366 void pwd_set_cleartext(struct pwd_info
*pwd
, char *clr
);
367 void pwd_get_cleartext(struct pwd_info
*pwd
, char *clr
);
368 void pwd_set_lm_nt_16(struct pwd_info
*pwd
,
369 const uchar lm_pwd
[16],
370 const uchar nt_pwd
[16]);
371 void pwd_get_lm_nt_16(const struct pwd_info
*pwd
, uchar lm_pwd
[16], uchar nt_pwd
[16]);
372 void pwd_make_lm_nt_16(struct pwd_info
*pwd
, char *clr
);
373 void pwd_make_lm_nt_owf2(struct pwd_info
*pwd
, const uchar srv_key
[8],
374 const char *user
, const char *server
, const char *domain
,
376 void pwd_make_lm_nt_owf(struct pwd_info
*pwd
, uchar cryptkey
[8],
378 void pwd_get_lm_nt_owf(struct pwd_info
*pwd
, uchar lm_owf
[24],
379 uchar
*nt_owf
, size_t *nt_owf_len
);
381 /*The following definitions come from lib/smbrun.c */
383 int smbrun(char *cmd
,char *outfile
,BOOL shared
);
385 /*The following definitions come from libsmb/smbdes.c */
387 void smbhash(uchar
*out
, const uchar
*in
, const uchar
*key
, int forw
);
388 void E_P16(uchar
*p14
,uchar
*p16
);
389 void E_P24(const uchar
*p21
, const uchar
*c8
, uchar
*p24
);
390 void D_P16(const uchar
*p14
, const uchar
*in
, uchar
*out
);
391 void E_old_pw_hash( const uchar
*p14
, const uchar
*in
, uchar
*out
);
392 void cred_hash1(uchar
*out
, const uchar
*in
, const uchar
*key
);
393 void cred_hash2(uchar
*out
,uchar
*in
,uchar
*key
);
394 void cred_hash3(uchar
*out
, const uchar
*in
,uchar
*key
, int forw
);
395 void SamOEMhash( uchar
*data
, const uchar
*key
, int val
);
396 void sam_pwd_hash(uint32 rid
, const uchar
*in
, uchar
*out
, int forw
);
398 /*The following definitions come from libsmb/smbencrypt.c */
400 void SMBencrypt(uchar
* pwrd
, uchar
* c8
, uchar
* p24
);
401 void SMBNTencrypt(uchar
* pwrd
, uchar
* c8
, uchar
* p24
);
402 void E_md4hash(uchar
* pwrd
, uchar
* p16
);
403 void lm_owf_genW(const UNISTR2
* pwd
, uchar p16
[16]);
404 void lm_owf_gen(const char *pwd
, uchar p16
[16]);
405 void nt_owf_genW(const UNISTR2
* pwd
, uchar nt_p16
[16]);
406 void nt_owf_gen(const char *pwd
, uchar nt_p16
[16]);
407 void nt_lm_owf_genW(const UNISTR2
* pwd
, uchar nt_p16
[16], uchar lm_p16
[16]);
408 void nt_lm_owf_gen(const char *pwd
, uchar nt_p16
[16], uchar lm_p16
[16]);
409 void SMBOWFencrypt(const uchar pwrd
[16], const uchar
* c8
, uchar p24
[24]);
410 void SMBOWFencrypt_ntv2(const uchar kr
[16],
411 const uchar
* srv_chal
, int srv_chal_len
,
412 const uchar
* cli_chal
, int cli_chal_len
,
414 void SMBsesskeygen_ntv2(const uchar kr
[16],
415 const uchar
* nt_resp
, char sess_key
[16]);
416 void SMBsesskeygen_ntv1(const uchar kr
[16],
417 const uchar
* nt_resp
, char sess_key
[16]);
418 void SMBgenclientchals(char *lm_cli_chal
,
419 char *nt_cli_chal
, int *nt_cli_chal_len
,
420 const char *srv
, const char *dom
);
421 void ntv2_owf_gen(const uchar owf
[16],
422 const char *user_n
, const char *domain_n
, uchar kr_buf
[16]);
423 void NTLMSSPOWFencrypt(const uchar pwrd
[8], const uchar
* ntlmchalresp
,
425 BOOL
make_oem_passwd_hash(uchar data
[516],
426 const char *pwrd
, int new_pw_len
,
427 const uchar old_pw_hash
[16], BOOL unicode
);
428 BOOL
nt_encrypt_string2(STRING2
* out
, const STRING2
* in
, const uchar
* key
);
429 BOOL
nt_decrypt_string2(STRING2
* out
, const STRING2
* in
, const uchar
* key
);
430 void create_ntlmssp_resp(struct pwd_info
*pwd
,
431 char *domain
, char *user_name
, char *my_name
,
432 uint32 ntlmssp_cli_flgs
, prs_struct
* auth_resp
);
433 BOOL
decode_pw_buffer(const char buffer
[516], char *new_pwrd
,
434 int new_pwrd_size
, uint32
* new_pw_len
);
435 BOOL
encode_pw_buffer(char buffer
[516], const char *new_pass
,
436 int new_pw_len
, BOOL nt_pass_set
);
438 /*The following definitions come from libsmb/smberr.c */
440 char *smb_err_msg(uint8
class, uint32 num
);
441 BOOL
smb_safe_err_msg(uint8
class, uint32 num
, char *ret
, size_t len
);
442 BOOL
smb_safe_errstr(char *inbuf
, char *msg
, size_t len
);
443 char *smb_errstr(char *inbuf
);
445 /*The following definitions come from lib/snprintf.c */
448 /*The following definitions come from lib/stub_uid.c */
450 void become_root(BOOL save_dir
);
451 void unbecome_root(BOOL restore_dir
);
452 const vuser_key
*get_sec_ctx(void);
454 /*The following definitions come from lib/sursalgdomonly.c */
456 BOOL
surs_algdomonly_sam_sid_to_unixid(DOM_SID
*sid
, uint32 type
, uint32
*id
,
458 BOOL
surs_algdomonly_unixid_to_sam_sid(uint32 id
, uint32 type
, DOM_SID
*sid
,
461 /*The following definitions come from lib/sursalgnt5ldap.c */
463 BOOL
surs_nt5ldap_sam_sid_to_unixid(LDAPDB
*hds
, DOM_SID
* sid
, uint32 type
,
464 uint32
* id
, BOOL create
);
465 BOOL
surs_nt5ldap_unixid_to_sam_sid(LDAPDB
*hds
, uint32 id
, uint32 type
,
466 DOM_SID
* sid
, BOOL create
);
468 /*The following definitions come from lib/surs.c */
470 BOOL
surs_sam_sid_to_unixid(DOM_SID
*sid
, uint32 type
, uint32
*id
, BOOL create
);
471 BOOL
surs_unixid_to_sam_sid(uint32 id
, uint32 type
, DOM_SID
*sid
, BOOL create
);
473 /*The following definitions come from lib/surstdb.c */
475 BOOL
surs_tdb_sam_sid_to_unixid(DOM_SID
* sid
, uint32 type
, uint32
* id
,
477 BOOL
surs_tdb_unixid_to_sam_sid(uint32 id
, uint32 type
, DOM_SID
* sid
,
480 /*The following definitions come from lib/system.c */
482 int sys_select(int maxfd
, fd_set
*fds
, fd_set
*w_fds
, struct timeval
*tval
);
483 int sys_select(int maxfd
, fd_set
*r_fds
, fd_set
*w_fds
, struct timeval
*tval
);
484 int sys_stat(const char *fname
,SMB_STRUCT_STAT
*sbuf
);
485 int sys_fstat(int fd
,SMB_STRUCT_STAT
*sbuf
);
486 int sys_lstat(const char *fname
,SMB_STRUCT_STAT
*sbuf
);
487 int sys_ftruncate(int fd
, SMB_OFF_T offset
);
488 SMB_OFF_T
sys_lseek(int fd
, SMB_OFF_T offset
, int whence
);
489 int sys_fseek(FILE *fp
, SMB_OFF_T offset
, int whence
);
490 SMB_OFF_T
sys_ftell(FILE *fp
);
491 int sys_creat(const char *path
, mode_t mode
);
492 int sys_open(const char *path
, int oflag
, mode_t mode
);
493 FILE *sys_fopen(const char *path
, const char *type
);
494 void *sys_mmap(void *addr
, size_t len
, int prot
, int flags
, int fd
, SMB_OFF_T offset
);
495 int sys_waitpid(pid_t pid
,int *status
,int options
);
496 char *sys_getwd(char *s
);
497 int sys_chown(const char *fname
,uid_t uid
,gid_t gid
);
498 int sys_chroot(const char *dname
);
499 struct hostent
*sys_gethostbyname(const char *name
);
500 BOOL
set_process_capability( uint32 cap_flag
, BOOL enable
);
501 BOOL
set_inherited_process_capability( uint32 cap_flag
, BOOL enable
);
502 long sys_random(void);
503 void sys_srandom(unsigned int seed
);
504 int sys_getgroups(int setlen
, gid_t
*gidset
);
505 struct passwd
*copy_passwd_struct(struct passwd
*pass
);
506 struct passwd
*sys_getpwnam(const char *name
);
507 struct passwd
*sys_getpwuid(uid_t uid
);
509 /*The following definitions come from lib/time.c */
511 void GetTimeOfDay(struct timeval
*tval
);
513 int TimeDiff(time_t t
);
514 struct tm
*LocalTime(time_t *t
);
515 time_t nt_time_to_unix(const NTTIME
*nt
);
516 time_t interpret_long_date(char *p
);
517 void unix_to_nt_time(NTTIME
*nt
, time_t t
);
518 void init_nt_time(NTTIME
*nt
);
519 void put_long_date(char *p
,time_t t
);
520 BOOL
null_mtime(time_t mtime
);
521 void put_dos_date(char *buf
,int offset
,time_t unixdate
);
522 void put_dos_date2(char *buf
,int offset
,time_t unixdate
);
523 void put_dos_date3(char *buf
,int offset
,time_t unixdate
);
524 time_t make_unix_date(void *date_ptr
);
525 time_t make_unix_date2(void *date_ptr
);
526 time_t make_unix_date3(void *date_ptr
);
527 char *http_timestring(time_t t
);
528 char *timestring(void );
529 time_t get_create_time(SMB_STRUCT_STAT
*st
,BOOL fake_dirs
);
531 /*The following definitions come from lib/ufc.c */
533 char *ufc_crypt(char *key
,char *salt
);
535 /*The following definitions come from lib/username.c */
537 struct passwd
*hashed_getpwnam(const char *name
);
538 char *uidtoname(uid_t uid
);
539 char *get_unixhome_dir(char *user
);
540 BOOL
map_username(char *user
);
541 const struct passwd
*Get_Pwnam(char *user
,BOOL allow_change
);
542 BOOL
user_ok(char *user
,int snum
);
543 BOOL
user_in_list(char *user
,char *list
);
545 /*The following definitions come from lib/util_array.c */
547 void free_void_array(uint32 num_entries
, void **entries
,
548 void(free_item
)(void*));
549 void* add_copy_to_array(uint32
*len
, void ***array
, const void *item
,
550 void*(item_dup
)(const void*), BOOL alloc_anyway
);
551 void* add_item_to_array(uint32
*len
, void ***array
, void *item
);
552 void free_use_info_array(uint32 num_entries
, struct use_info
**entries
);
553 struct use_info
* add_use_info_to_array(uint32
*len
, struct use_info
***array
,
554 const struct use_info
*name
);
555 void free_char_array(uint32 num_entries
, char **entries
);
556 char* add_chars_to_array(uint32
*len
, char ***array
, const char *name
);
557 void free_uint32_array(uint32 num_entries
, uint32
**entries
);
558 uint32
* add_uint32s_to_array(uint32
*len
, uint32
***array
, const uint32
*name
);
559 void free_unistr_array(uint32 num_entries
, UNISTR2
**entries
);
560 UNISTR2
* add_unistr_to_array(uint32
*len
, UNISTR2
***array
, UNISTR2
*name
);
561 void free_sid_array(uint32 num_entries
, DOM_SID
**entries
);
562 DOM_SID
* add_sid_to_array(uint32
*len
, DOM_SID
***array
, const DOM_SID
*sid
);
564 /*The following definitions come from lib/util.c */
566 BOOL
init_myworkgroup(void);
568 BOOL
in_group(gid_t group
, gid_t current_gid
, int ngroups
, gid_t
* groups
);
569 uint32
get_number(const char *tmp
);
570 char *Atoic(char *p
, int *n
, char *c
);
571 uint32
*add_num_to_list(uint32
** num
, int *count
, int val
);
572 char *get_numlist(char *p
, uint32
** num
, int *count
);
573 void putip(void *dest
, void *src
);
574 BOOL
file_exist(char *fname
, SMB_STRUCT_STAT
* sbuf
);
575 int file_rename(char *from
, char *to
);
576 time_t file_modtime(char *fname
);
577 BOOL
directory_exist(char *dname
, SMB_STRUCT_STAT
* st
);
578 SMB_OFF_T
file_size(char *file_name
);
579 char *attrib_string(uint16 mode
);
580 void unix_format(char *fname
);
581 void dos_format(char *fname
);
582 void show_msg(char *buf
);
583 int smb_len(char *buf
);
584 void _smb_setlen(char *buf
, int len
);
585 void smb_setlen(char *buf
, int len
);
586 int set_message(char *buf
, int num_words
, int num_bytes
, BOOL zero
);
587 int smb_buflen(char *buf
);
588 char *smb_buf(char *buf
);
589 int smb_offset(char *p
, char *buf
);
590 void dos_clean_name(char *s
);
591 void make_dir_struct(char *buf
, char *mask
, char *fname
, SMB_OFF_T size
,
592 int mode
, time_t date
);
593 void close_low_fds(void);
594 int set_blocking(int fd
, BOOL set
);
595 int TvalDiff(struct timeval
*tvalold
, struct timeval
*tvalnew
);
596 SMB_OFF_T
transfer_file(int infd
, int outfd
, SMB_OFF_T n
, char *header
,
597 int headlen
, int align
);
599 BOOL
get_file_match(const char *dirname
, const char *regexp
,
600 uint32
* total
, char ***list
);
601 BOOL
do_match(char *str
, const char *regexp
, int case_sig
);
602 BOOL
mask_match(char *str
, char *regexp
, int case_sig
, BOOL trans2
);
603 void become_daemon(void);
605 int set_filelen(int fd
, SMB_OFF_T len
);
606 void *Realloc(void *p
, size_t size
);
607 void safe_free(void *p
);
608 BOOL
get_myname(char *my_name
, struct in_addr
*ip
);
609 BOOL
ip_equal(struct in_addr ip1
, struct in_addr ip2
);
610 int interpret_protocol(char *str
, int def
);
611 uint32
interpret_addr(char *str
);
612 struct in_addr
*interpret_addr2(char *str
);
613 BOOL
zero_ip(struct in_addr ip
);
614 BOOL
matchname(char *remotehost
, struct in_addr addr
);
615 void standard_sub_basic(char *str
);
616 void standard_sub_vuser(const user_struct
* vuser
, char *str
);
617 void standard_sub(connection_struct
* conn
, user_struct
* vuser
, char *str
);
618 BOOL
same_net(struct in_addr ip1
, struct in_addr ip2
, struct in_addr mask
);
619 struct hostent
*Get_Hostbyname(const char *name
);
620 BOOL
process_exists(int pid
);
621 int get_unixgroups(const char *user
, uid_t uid
, gid_t gid
, int *p_ngroups
,
623 BOOL
get_unix_grps(int *p_ngroups
, struct group
**p_groups
);
624 void free_unix_grps(int ngroups
, struct group
*p_groups
);
625 char *gidtoname(gid_t gid
);
626 BOOL
nametogid(const char *name
, gid_t
* gid
);
627 BOOL
nametouid(const char *name
, uid_t
* uid
);
628 void smb_panic(char *why
);
629 char *readdirname(DIR * p
);
630 BOOL
is_in_path(char *name
, name_compare_entry
* namelist
);
631 void set_namearray(name_compare_entry
** ppname_array
, char *namelist
);
632 void free_namearray(name_compare_entry
* name_array
);
633 BOOL
is_myname(char *s
);
634 void set_remote_arch(enum remote_arch_types type
);
635 enum remote_arch_types
get_remote_arch(void);
636 char *align4(char *q
, char *base
);
637 char *align2(char *q
, char *base
);
638 void out_ascii(FILE * f
, const uchar
* buf
, int len
);
639 void out_struct(FILE * f
, const char *buf1
, int len
, int per_line
);
640 void out_data(FILE * f
, const char *buf1
, int len
, int per_line
);
641 void print_asc(int level
, uchar
const *buf
, int len
);
642 void dump_data(int level
, const char *buf1
, int len
);
643 void dump_data_pw(const char *msg
, const uchar
* data
, size_t len
);
644 char *tab_depth(int depth
);
645 int str_checksum(const char *s
);
646 void zero_free(void *p
, size_t size
);
647 int set_maxfiles(int requested_max
);
648 void reg_get_subkey(char *full_keyname
, char *key_name
, char *subkey_name
);
649 BOOL
reg_split_key(const char *full_keyname
, uint32
* reg_type
,
651 char *get_trusted_serverlist(const char *domain
);
652 uint16
pwdb_acct_ctrl_from_ad(NTDS_USER_FLAG_ENUM adac
);
653 char *pwdb_encode_acct_ctrl(uint16 acct_ctrl
, size_t length
);
654 uint16
pwdb_decode_acct_ctrl(const char *p
);
655 time_t pwdb_get_time_last_changed(const char *p
);
656 time_t pwdb_get_last_set_time(const char *p
);
657 void pwdb_set_logon_time(char *p
, int max_len
, time_t t
);
658 void pwdb_set_logoff_time(char *p
, int max_len
, time_t t
);
659 void pwdb_set_kickoff_time(char *p
, int max_len
, time_t t
);
660 void pwdb_set_can_change_time(char *p
, int max_len
, time_t t
);
661 void pwdb_set_time_last_changed(char *p
, int max_len
, time_t t
);
662 void pwdb_set_must_change_time(char *p
, int max_len
, time_t t
);
663 void pwdb_set_last_set_time(char *p
, int max_len
, time_t t
);
664 void pwdb_sethexpwd(char *p
, const uchar
* pwd
, uint16 acct_ctrl
);
665 BOOL
pwdb_gethexpwd(const char *p
, char *pwd
, uint32
* acct_ctrl
);
666 void *memdup(const void *p
, size_t size
);
667 char *passdb_path(char *name
);
668 char *lock_path(char *name
);
669 const char *get_sid_name_use_str(uint32 sid_name_use
);
671 /*The following definitions come from lib/util_file.c */
673 BOOL
do_file_lock(int fd
, int waitsecs
, int type
);
674 BOOL
file_lock(int fd
, int type
, int secs
, int *plock_depth
);
675 BOOL
file_unlock(int fd
, int *plock_depth
);
676 BOOL
fcntl_lock(int fd
, int op
, SMB_OFF_T offset
, SMB_OFF_T count
, int type
);
677 void *startfileent(char *pfile
, char *s_readbuf
, int bufsize
,
678 int *file_lock_depth
, BOOL update
);
679 void endfileent(void *vp
, int *file_lock_depth
);
680 SMB_BIG_UINT
getfilepwpos(void *vp
);
681 BOOL
setfilepwpos(void *vp
, SMB_BIG_UINT tok
);
682 int getfileline(void *vp
, char *linebuf
, int linebuf_size
);
683 char *fgets_slash(char *s2
,int maxlen
,FILE *f
);
684 BOOL
file_modified(const char *filename
, time_t *lastmodified
);
685 void *open_file_if_modified(const char *filename
, char *mode
, time_t *lastmodified
);
687 /*The following definitions come from lib/util_hnd.c */
689 struct policy_cache
*get_global_hnd_cache(void);
690 struct policy_cache
*init_policy_cache(int num_pol_hnds
);
691 void free_policy_cache(struct policy_cache
*cache
);
692 BOOL
policy_hnd_set_name(struct policy_cache
*cache
,
693 POLICY_HND
*hnd
, const char *name
);
694 const char *policy_hnd_get_name(struct policy_cache
*cache
,
695 const POLICY_HND
*hnd
);
696 BOOL
dup_policy_hnd(struct policy_cache
*cache
,
698 const POLICY_HND
*from
);
699 BOOL
register_policy_hnd(struct policy_cache
*cache
,
700 const vuser_key
*key
,
703 BOOL
open_policy_hnd(struct policy_cache
*cache
,
704 const vuser_key
*key
,
707 BOOL
open_policy_hnd_link(struct policy_cache
*cache
,
708 const POLICY_HND
*parent_hnd
,
711 int find_policy_by_hnd(struct policy_cache
*cache
, const POLICY_HND
*hnd
);
712 BOOL
set_policy_state(struct policy_cache
*cache
, POLICY_HND
*hnd
,
713 void(*fn
)(void*), void *dev
);
714 void *get_policy_state_info(struct policy_cache
*cache
, const POLICY_HND
*hnd
);
715 BOOL
policy_hnd_set_state_type(struct policy_cache
*cache
,
716 POLICY_HND
*hnd
, int type
);
717 int policy_hnd_get_state_type(struct policy_cache
*cache
,
718 const POLICY_HND
*hnd
);
719 BOOL
policy_hnd_check_state_type(struct policy_cache
*cache
,
720 const POLICY_HND
*hnd
, int type
);
721 BOOL
close_policy_hnd(struct policy_cache
*cache
, POLICY_HND
*hnd
);
722 BOOL
policy_link_key(struct policy_cache
*cache
, const POLICY_HND
*hnd
,
724 const vuser_key
*get_policy_vuser_key(struct policy_cache
*cache
,
725 const POLICY_HND
*hnd
);
726 BOOL
pol_get_usr_sesskey(struct policy_cache
*cache
, const POLICY_HND
*hnd
,
727 uchar usr_sess_key
[16]);
729 /*The following definitions come from lib/util_seaccess.c */
731 BOOL
se_access_check(const SEC_DESC
* sd
, const NET_USER_INFO_3
* user
,
732 uint32 acc_req
, uint32 prev_grant_acc
,
736 /*The following definitions come from lib/util_sec.c */
738 void gain_root_privilege(void);
739 void gain_root_group_privilege(void);
740 void set_effective_uid(uid_t uid
);
741 void set_effective_gid(gid_t gid
);
742 void save_re_uid(void);
743 void restore_re_uid(void);
744 int set_re_uid(void);
745 void become_user_permanently(uid_t uid
, gid_t gid
);
747 /*The following definitions come from lib/util_sid.c */
749 char *sid_to_string(pstring sidstr_out
, const DOM_SID
*sid
);
750 BOOL
string_to_sid(DOM_SID
*sidout
, const char *sidstr
);
751 BOOL
sid_append_rid(DOM_SID
*sid
, uint32 rid
);
752 BOOL
sid_split_rid(DOM_SID
*sid
, uint32
*rid
);
753 void sid_copy(DOM_SID
*sid1
, const DOM_SID
*sid2
);
754 BOOL
sid_front_equal(const DOM_SID
*sid1
, const DOM_SID
*sid2
);
755 BOOL
sid_equal(const DOM_SID
*sid1
, const DOM_SID
*sid2
);
756 int sid_size(const DOM_SID
*sid
);
757 DOM_SID
*sid_dup(const DOM_SID
*src
);
758 BOOL
read_sid(char *domain_name
, DOM_SID
*sid
);
759 BOOL
write_sid(char *domain_name
, DOM_SID
*sid
);
760 BOOL
create_new_sid(DOM_SID
*sid
);
762 /*The following definitions come from lib/util_sock.c */
764 BOOL
is_a_socket(int fd
);
765 void set_socket_options(int fd
, char *options
);
766 void close_sockets(void );
767 ssize_t
write_socket(int fd
,char *buf
,size_t len
);
768 ssize_t
read_udp_socket(int fd
,char *buf
,size_t len
);
769 ssize_t
read_with_timeout(int fd
,char *buf
,size_t mincnt
,size_t maxcnt
,unsigned int time_out
);
770 BOOL
send_keepalive(int client
);
771 ssize_t
read_data(int fd
,char *buffer
,size_t N
);
772 ssize_t
write_data(int fd
,char *buffer
,size_t N
);
773 ssize_t
read_smb_length(int fd
,char *inbuf
,unsigned int timeout
);
774 BOOL
receive_smb(int fd
,char *buffer
, unsigned int timeout
);
775 BOOL
client_receive_smb(int fd
,char *buffer
, unsigned int timeout
);
776 BOOL
send_smb(int fd
,char *buffer
);
777 BOOL
send_one_packet(char *buf
,int len
,struct in_addr ip
,int port
,int type
);
778 int open_socket_in(int type
, int port
, int dlevel
,uint32 socket_addr
,
780 int open_socket_out(int type
, struct in_addr
*addr
, int port
,int timeout
);
781 void set_client_connection_name(const char* name
, int fd
);
782 void set_client_connection_addr(const char* addr
, int fd
);
783 char *client_connection_name(void);
784 char *client_connection_addr(void);
785 void reset_globals_after_fork(void);
786 char *client_name(int fd
);
787 char *client_addr(int fd
);
788 int open_pipe_sock(char *path
);
789 int create_pipe_socket(char *dir
, int dir_perms
,
790 char *path
, int path_perms
);
792 /*The following definitions come from lib/util_str.c */
794 void set_first_token(char *ptr
);
795 BOOL
next_token(char **ptr
,char *buff
,char *sep
, size_t bufsize
);
796 char **toktocliplist(int *ctok
, char *sep
);
797 int StrCaseCmp(const char *s
, const char *t
);
798 int StrnCaseCmp(const char *s
, const char *t
, size_t n
);
799 BOOL
strequal(const char *s1
, const char *s2
);
800 BOOL
strnequal(const char *s1
,const char *s2
,size_t n
);
801 BOOL
strcsequal(const char *s1
,const char *s2
);
802 void strlower(char *s
);
803 void strupper(char *s
);
804 void strnorm(char *s
);
805 BOOL
strisnormal(char *s
);
806 void string_replace(char *s
,char oldc
,char newc
);
807 char *skip_string(char *buf
,size_t n
);
808 size_t str_charnum(const char *s
);
809 BOOL
trim_string(char *s
,const char *front
,const char *back
);
810 BOOL
strhasupper(const char *s
);
811 BOOL
strhaslower(const char *s
);
812 size_t count_chars(const char *s
,char c
);
813 char *safe_strcpy(char *dest
,const char *src
, size_t maxlength
);
814 char *safe_strcat(char *dest
, const char *src
, size_t maxlength
);
815 char *StrCpy(char *dest
,const char *src
);
816 char *StrnCpy(char *dest
,const char *src
,size_t n
);
817 char *strncpyn(char *dest
, char *src
,size_t n
, char c
);
818 size_t strhex_to_str(char *p
, size_t len
, const char *strhex
);
819 BOOL
in_list(char *s
,char *list
,BOOL casesensitive
);
820 BOOL
string_init(char **dest
,const char *src
);
821 void string_free(char **s
);
822 BOOL
string_set(char **dest
,const char *src
);
823 void string_sub(char *s
,const char *pattern
,const char *insert
);
824 void all_string_sub(char *s
,const char *pattern
,const char *insert
, size_t len
);
825 void split_at_first_component(char *path
, char *front
, char sep
, char *back
);
826 void split_at_last_component(char *path
, char *front
, char sep
, char *back
);
827 char *bit_field_to_str(uint32 type
, struct field_info
*bs
);
828 char *enum_field_to_str(uint32 type
, struct field_info
*bs
, BOOL first_default
);
830 /*The following definitions come from lib/util_unistr.c */
832 char *ascii_to_unibuf(char *dest
, const char *src
, int maxlen
);
833 const char* unibuf_to_ascii(char *dest
, const char *src
, int maxlen
);
834 void ascii_to_unistr(uint16
*dest
, const char *src
, int maxlen
);
835 void unistr_to_ascii(char *dest
, const uint16
*src
, int len
);
836 char *unistr2_to_ascii(char *dest
, const UNISTR2
*str
, size_t maxlen
);
837 char *skip_unibuf(char *srcbuf
, int len
);
838 char *uni_strncpy(char *destbuf
, const char *srcbuf
, int len
);
839 uint32
buffer2_to_uint32(const BUFFER2
*str
);
840 void buffer2_to_multistr(char *dest
, const BUFFER2
*str
, size_t maxlen
);
841 void buffer4_to_str(char *dest
, const BUFFER4
*str
, size_t maxlen
);
842 UNISTR2
*unistr2_new(const char *init
);
843 UNISTR2
*unistr2_assign(UNISTR2
*str
, const uint16
*src
, size_t len
);
844 UNISTR2
*unistr2_assign_ascii(UNISTR2
*str
, const char *buf
, int len
);
845 UNISTR2
*unistr2_assign_ascii_str(UNISTR2
*str
, const char *buf
);
846 UNISTR2
*unistr2_grow(UNISTR2
*str
, size_t new_size
);
847 BOOL
unistr2upper(UNISTR2
*str
, const UNISTR2
*from
);
848 BOOL
copy_unistr2(UNISTR2
*str
, const UNISTR2
*from
);
849 UNISTR2
*unistr2_dup(const UNISTR2
*name
);
850 void unistr2_free(UNISTR2
*name
);
851 int StrCaseCmpW(const UNISTR2
*ws
, const UNISTR2
*wt
);
852 BOOL
unistr2equal(const UNISTR2
*s1
, const UNISTR2
*s2
);
854 /*The following definitions come from lib/vagent.c */
856 void init_sock_redir(struct vagent_ops
*va
);
857 void free_sock_redir(struct vagent_ops
*va
);
858 void start_agent(struct vagent_ops
*va
);
860 /*The following definitions come from lib/vuser.c */
862 BOOL
is_valid_user_struct(const vuser_key
* key
);
863 user_struct
*get_valid_user_struct(const vuser_key
* key
);
864 void invalidate_vuid(vuser_key
* key
);
865 BOOL
validated_username(vuser_key
* key
, char *name
, size_t len
);
866 uint16
create_vuid(pid_t pid
,
867 uid_t uid
, gid_t gid
,
868 int n_groups
, gid_t
* groups
,
869 const char *unix_name
,
870 const char *requested_name
,
871 const char *real_name
,
872 BOOL guest
, const NET_USER_INFO_3
* info3
);
873 uint16
register_vuid(pid_t pid
, uid_t uid
, gid_t gid
,
874 const char *unix_name
,
875 const char *requested_name
,
876 BOOL guest
, const NET_USER_INFO_3
* info3
);
877 BOOL
check_vuser_ok(struct uid_cache
*cache
, user_struct
* vuser
, int snum
);
879 /*The following definitions come from lib/vuser_db.c */
881 BOOL
tdb_delete_vuid( const vuser_key
*uk
);
882 BOOL
tdb_lookup_vuid( const vuser_key
*uk
, user_struct
**usr
);
883 BOOL
tdb_store_vuid( const vuser_key
*uk
, user_struct
*usr
);
884 BOOL
vuid_init_db(void);
886 /*The following definitions come from nsswitch/winbindd.c */
888 void exit_server(char *reason
);
889 int winbind_get_domain_sid(char *system_name
, fstring domain_name
,
890 DOM_SID
*domain_sid
);
891 int winbind_lookup_by_name(char *system_name
, DOM_SID
*level5_sid
,
892 fstring name
, DOM_SID
*sid
,
893 enum SID_NAME_USE
*type
);
894 int winbind_lookup_by_sid(char *system_name
, DOM_SID
*level5_sid
,
895 DOM_SID
*sid
, char *name
,
896 enum SID_NAME_USE
*type
);
897 int winbind_lookup_userinfo(char *system_name
, DOM_SID
*level5_sid
,
898 uint32 user_rid
, SAM_USERINFO_CTR
*info
);
899 int winbind_lookup_groupinfo(char *system_name
, DOM_SID
*level5_sid
,
900 uint32 group_rid
, GROUP_INFO_CTR
*info
);
901 int create_winbind_socket(void);
902 int main(int argc
, char **argv
);
904 /*The following definitions come from nsswitch/winbindd_group.c */
906 void winbindd_getgrnam_from_group(DOM_SID
*domain_sid
,
907 struct winbindd_request
*request
,
908 struct winbindd_response
*response
);
909 void winbindd_getgrnam_from_gid(DOM_SID
*domain_sid
,
910 struct winbindd_request
*request
,
911 struct winbindd_response
*response
);
913 /*The following definitions come from nsswitch/winbindd_surs.c */
915 BOOL
winbindd_surs_sam_sid_to_unixid(DOM_SID
*sid
, uint32 type
, uint32
*id
);
916 BOOL
winbindd_surs_unixid_to_sam_sid(uint32 id
, uint32 type
, DOM_SID
*sid
,
919 /*The following definitions come from nsswitch/winbindd_user.c */
921 void winbindd_getpwnam_from_user(DOM_SID
*domain_sid
,
922 struct winbindd_request
*request
,
923 struct winbindd_response
*response
);
924 void winbindd_getpwnam_from_uid(DOM_SID
*domain_sid
,
925 struct winbindd_request
*request
,
926 struct winbindd_response
*response
);
928 /*The following definitions come from param/loadparm.c */
930 struct vfs_options
*lp_vfsoptions(int i
) ;
931 char *lp_logfile(void);
932 char *lp_smbrun(void);
933 char *lp_configfile(void);
934 char *lp_smb_passwd_file(void);
935 char *lp_sam_directory(void);
936 char *lp_smb_passgrp_file(void);
937 char *lp_smb_group_file(void);
938 char *lp_smb_alias_file(void);
939 char *lp_serverstring(void);
940 char *lp_printcapname(void);
941 char *lp_lockdir(void);
942 char *lp_rootdir(void);
943 char *lp_defaultservice(void);
944 char *lp_msg_command(void);
945 char *lp_hosts_equiv(void);
946 char *lp_auto_services(void);
947 char *lp_passwd_program(void);
948 char *lp_passwd_chat(void);
949 char *lp_passwordserver(void);
950 char *lp_name_resolve_order(void);
951 char *lp_workgroup(void);
952 char *lp_trusted_domains(void);
953 char *lp_trusting_domains(void);
954 char *lp_username_map(void);
955 char *lp_aliasname_map(void);
956 char *lp_groupname_map(void);
957 char *lp_builtinname_map(void);
958 char *lp_builtinrid_file(void);
959 char *lp_ntusrname_map(void);
960 char *lp_remote_announce(void);
961 char *lp_remote_browse_sync(void);
962 char *lp_wins_server(void);
963 char *lp_interfaces(void);
964 char *lp_socket_address(void);
965 char *lp_nis_home_map_name(void);
966 char *lp_netbios_aliases(void);
967 char *lp_driverfile(void);
968 char *lp_panic_action(void);
969 char *lp_nt_forms(void);
970 char *lp_nt_drivers_file(void);
971 char *lp_dfs_map(void);
972 char *lp_ldap_server(void);
973 char *lp_ldap_suffix(void);
974 char *lp_ldap_bind_as(void);
975 char *lp_ldap_passwd_file(void);
976 char *lp_ldap_url(void);
977 char *lp_ldap_realm(void);
978 char *lp_ldap_computers_subcontext(void);
979 char *lp_ldap_users_subcontext(void);
980 char *lp_ldap_builtin_subcontext(void);
981 int lp_ssl_version(void);
982 char *lp_ssl_hosts(void);
983 char *lp_ssl_hosts_resign(void);
984 char *lp_ssl_cacertdir(void);
985 char *lp_ssl_cacertfile(void);
986 char *lp_ssl_cert(void);
987 char *lp_ssl_privkey(void);
988 char *lp_ssl_client_cert(void);
989 char *lp_ssl_client_privkey(void);
990 char *lp_ssl_ciphers(void);
991 BOOL
lp_ssl_enabled(void);
992 BOOL
lp_ssl_reqClientCert(void);
993 BOOL
lp_ssl_reqServerCert(void);
994 BOOL
lp_ssl_compatibility(void);
995 BOOL
lp_dns_proxy(void);
996 BOOL
lp_wins_support(void);
997 BOOL
lp_we_are_a_wins_server(void);
998 BOOL
lp_wins_proxy(void);
999 BOOL
lp_local_master(void);
1000 BOOL
lp_domain_logons(void);
1001 BOOL
lp_load_printers(void);
1002 BOOL
lp_use_rhosts(void);
1003 BOOL
lp_readprediction(void);
1004 BOOL
lp_readbmpx(void);
1005 BOOL
lp_readraw(void);
1006 BOOL
lp_writeraw(void);
1007 BOOL
lp_null_passwords(void);
1008 BOOL
lp_strip_dot(void);
1009 BOOL
lp_encrypted_passwords(void);
1010 BOOL
lp_update_encrypted(void);
1011 BOOL
lp_client_ntlmv2(void);
1012 BOOL
lp_server_ntlmv2(void);
1013 BOOL
lp_client_schannel(void);
1014 BOOL
lp_server_schannel(void);
1015 BOOL
lp_syslog_only(void);
1016 BOOL
lp_timestamp_logs(void);
1017 BOOL
lp_browse_list(void);
1018 BOOL
lp_unix_realname(void);
1019 BOOL
lp_nis_home_map(void);
1020 BOOL
lp_bind_interfaces_only(void);
1021 BOOL
lp_unix_password_sync(void);
1022 BOOL
lp_passwd_chat_debug(void);
1023 BOOL
lp_ole_locking_compat(void);
1024 BOOL
lp_nt_smb_support(void);
1025 BOOL
lp_nt_pipe_support(void);
1026 BOOL
lp_stat_cache(void);
1027 int lp_os_level(void);
1028 int lp_max_ttl(void);
1029 int lp_max_wins_ttl(void);
1030 int lp_min_wins_ttl(void);
1031 int lp_max_log_size(void);
1032 int lp_max_open_files(void);
1033 int lp_maxxmit(void);
1034 int lp_maxmux(void);
1035 int lp_passwordlevel(void);
1036 int lp_usernamelevel(void);
1037 int lp_readsize(void);
1038 int lp_shmem_size(void);
1039 int lp_deadtime(void);
1040 int lp_maxprotocol(void);
1041 int lp_security(void);
1042 int lp_maxdisksize(void);
1043 int lp_lpqcachetime(void);
1044 int lp_syslog(void);
1045 int lp_client_code_page(void);
1046 int lp_lm_announce(void);
1047 int lp_lm_interval(void);
1048 int lp_machine_password_timeout(void);
1049 int lp_change_notify_timeout(void);
1050 int lp_stat_cache_size(void);
1051 int lp_map_to_guest(void);
1052 int lp_ldap_port(void);
1053 int lp_ldap_protocol_version(void);
1054 char *lp_logon_script(const user_struct
* );
1055 char *lp_logon_path(const user_struct
* );
1056 char *lp_logon_drive(const user_struct
* );
1057 char *lp_logon_home(const user_struct
* );
1058 char *lp_preexec(int );
1059 char *lp_postexec(int );
1060 char *lp_rootpreexec(int );
1061 char *lp_rootpostexec(int );
1062 char *lp_servicename(int );
1063 char *lp_pathname(int );
1064 char *lp_dontdescend(int );
1065 char *lp_username(int );
1066 char *lp_guestaccount(int );
1067 char *lp_invalid_users(int );
1068 char *lp_valid_users(int );
1069 char *lp_admin_users(int );
1070 char *lp_printcommand(int );
1071 char *lp_lpqcommand(int );
1072 char *lp_lprmcommand(int );
1073 char *lp_lppausecommand(int );
1074 char *lp_lpresumecommand(int );
1075 char *lp_queuepausecommand(int );
1076 char *lp_queueresumecommand(int );
1077 char *lp_printername(int );
1078 char *lp_printerdriver(int );
1079 char *lp_hostsallow(int );
1080 char *lp_hostsdeny(int );
1081 char *lp_magicscript(int );
1082 char *lp_magicoutput(int );
1083 char *lp_comment(int );
1084 char *lp_force_user(int );
1085 char *lp_force_group(int );
1086 char *lp_readlist(int );
1087 char *lp_writelist(int );
1088 char *lp_fstype(int );
1089 char *lp_vfsobj(int );
1090 char *lp_mangled_map(int );
1091 char *lp_veto_files(int );
1092 char *lp_hide_files(int );
1093 char *lp_veto_oplocks(int );
1094 char *lp_driverlocation(int );
1095 BOOL
lp_revalidate(int );
1096 BOOL
lp_casesensitive(int );
1097 BOOL
lp_preservecase(int );
1098 BOOL
lp_shortpreservecase(int );
1099 BOOL
lp_casemangle(int );
1100 BOOL
lp_status(int );
1101 BOOL
lp_hide_dot_files(int );
1102 BOOL
lp_browseable(int );
1103 BOOL
lp_readonly(int );
1104 BOOL
lp_no_set_dir(int );
1105 BOOL
lp_guest_ok(int );
1106 BOOL
lp_guest_only(int );
1107 BOOL
lp_print_ok(int );
1108 BOOL
lp_postscript(int );
1109 BOOL
lp_map_hidden(int );
1110 BOOL
lp_map_archive(int );
1111 BOOL
lp_locking(int );
1112 BOOL
lp_strict_locking(int );
1113 BOOL
lp_share_modes(int );
1114 BOOL
lp_oplocks(int );
1115 BOOL
lp_onlyuser(int );
1116 BOOL
lp_manglednames(int );
1117 BOOL
lp_widelinks(int );
1118 BOOL
lp_symlinks(int );
1119 BOOL
lp_syncalways(int );
1120 BOOL
lp_strict_sync(int );
1121 BOOL
lp_map_system(int );
1122 BOOL
lp_delete_readonly(int );
1123 BOOL
lp_fake_oplocks(int );
1124 BOOL
lp_recursive_veto_delete(int );
1125 BOOL
lp_dos_filetimes(int );
1126 BOOL
lp_dos_filetime_resolution(int );
1127 BOOL
lp_fake_dir_create_times(int );
1128 BOOL
lp_blocking_locks(int );
1129 int lp_create_mode(int );
1130 int lp_force_create_mode(int );
1131 int lp_dir_mode(int );
1132 int lp_force_dir_mode(int );
1133 int lp_max_connections(int );
1134 int lp_defaultcase(int );
1135 int lp_minprintspace(int );
1136 int lp_printing(int );
1137 char lp_magicchar(int );
1138 char *lp_mysql_host(void);
1139 char *lp_mysql_user(void);
1140 char *lp_mysql_passfile(void);
1141 char *lp_mysql_db(void);
1142 char *lp_mysql_table(void);
1143 BOOL
lp_add_home(char *pszHomename
, int iDefaultService
, char *pszHomedir
);
1144 int lp_add_service(char *pszService
, int iDefaultService
);
1145 BOOL
lp_add_printer(char *pszPrintername
, int iDefaultService
);
1146 BOOL
lp_file_list_changed(void);
1147 void *lp_local_ptr(int snum
, void *ptr
);
1148 BOOL
lp_do_parameter(int snum
, char *pszParmName
, char *pszParmValue
);
1149 BOOL
lp_is_default(int snum
, struct parm_struct
*parm
);
1150 struct parm_struct
*lp_next_parameter(int snum
, int *i
, int allparameters
);
1151 BOOL
lp_snum_ok(int iService
);
1152 void lp_add_one_printer(char *name
,char *comment
);
1153 BOOL
lp_loaded(void);
1154 void lp_killunused(BOOL (*snumused
)(int ));
1155 BOOL
lp_load(char *pszFname
,BOOL global_only
, BOOL save_defaults
, BOOL add_ipc
);
1156 int lp_numservices(void);
1157 void lp_dump(FILE *f
, BOOL show_defaults
);
1158 int lp_servicenumber(char *pszServiceName
);
1159 char *volume_label(int snum
);
1160 void lp_remove_service(int snum
);
1161 void lp_copy_service(int snum
, char *new_name
);
1162 int lp_default_server_announce(void);
1163 int lp_major_announce_version(void);
1164 int lp_minor_announce_version(void);
1165 void lp_set_name_resolve_order(char *new_order
);
1166 void lp_set_kernel_oplocks(BOOL val
);
1167 BOOL
lp_kernel_oplocks(void);
1168 int lp_server_role(void);
1169 BOOL
lp_domain_master(void);
1170 BOOL
lp_preferred_master(void);
1172 /*The following definitions come from param/params.c */
1174 BOOL
pm_process( char *FileName
,
1175 BOOL (*sfunc
)(char *),
1176 BOOL (*pfunc
)(char *, char *) );
1178 /*The following definitions come from rpc_client/cli_connect.c */
1180 void init_connections(void);
1181 void free_connections(void);
1182 void cli_connection_free(struct cli_connection
*con
);
1183 void cli_connection_unlink(struct cli_connection
*con
);
1184 BOOL
cli_connection_init(const char *srv_name
, const char *pipe_name
,
1185 struct cli_connection
**con
);
1186 BOOL
cli_connection_init_auth(const char *srv_name
, const char *pipe_name
,
1187 struct cli_connection
**con
,
1188 cli_auth_fns
* auth
, void *auth_creds
);
1189 BOOL
cli_connection_getsrv(const char *srv_name
, const char *pipe_name
,
1190 struct cli_connection
**con
);
1191 BOOL
cli_connection_get(const POLICY_HND
* pol
, struct cli_connection
**con
);
1192 BOOL
cli_pol_link(POLICY_HND
* to
, const POLICY_HND
* from
);
1193 BOOL
cli_get_usr_sesskey(const POLICY_HND
* pol
, uchar usr_sess_key
[16]);
1194 BOOL
cli_set_con_usr_sesskey(struct cli_connection
*con
,
1195 const uchar usr_sess_key
[16]);
1196 const vuser_key
*cli_con_sec_ctx(struct cli_connection
*con
);
1197 struct cli_auth_fns
*cli_conn_get_authfns(struct cli_connection
*con
);
1198 void *cli_conn_get_auth_creds(struct cli_connection
*con
);
1199 void *cli_conn_get_auth_info(struct cli_connection
*con
);
1200 BOOL
cli_conn_set_auth_info(struct cli_connection
*con
, void *auth_info
);
1201 struct ntdom_info
*cli_conn_get_ntinfo(struct cli_connection
*con
);
1202 BOOL
cli_get_con_sesskey(struct cli_connection
*con
, uchar sess_key
[16]);
1203 BOOL
cli_con_get_srvname(struct cli_connection
*con
, char *srv_name
);
1204 BOOL
cli_get_sesskey(const POLICY_HND
* pol
, uchar sess_key
[16]);
1205 BOOL
cli_get_sesskey_srv(const char *srv_name
, uchar sess_key
[16]);
1206 void cli_con_gen_next_creds(struct cli_connection
*con
,
1207 DOM_CRED
* new_clnt_cred
);
1208 void cli_con_get_cli_cred(struct cli_connection
*con
, DOM_CRED
* clnt_cred
);
1209 BOOL
cli_con_deal_with_creds(struct cli_connection
*con
,
1210 DOM_CRED
* rcv_srv_cred
);
1211 BOOL
cli_con_set_creds(const char *srv_name
, const uchar sess_key
[16],
1213 BOOL
rpc_hnd_pipe_req(const POLICY_HND
* hnd
, uint8 op_num
,
1214 prs_struct
* data
, prs_struct
* rdata
);
1215 BOOL
rpc_con_pipe_req(struct cli_connection
*con
, uint8 op_num
,
1216 prs_struct
* data
, prs_struct
* rdata
);
1217 BOOL
rpc_api_write(struct cli_connection
*con
, prs_struct
* data
);
1218 BOOL
rpc_api_rcv_pdu(struct cli_connection
*con
, prs_struct
* rdata
);
1219 BOOL
rpc_api_send_rcv_pdu(struct cli_connection
*con
, prs_struct
* data
,
1220 prs_struct
* rdata
);
1221 BOOL
set_policy_con(struct policy_cache
*cache
, POLICY_HND
* hnd
,
1222 struct cli_connection
*con
,
1223 void (*free_fn
) (struct cli_connection
*));
1224 BOOL
get_policy_con(struct policy_cache
*cache
, const POLICY_HND
* hnd
,
1225 struct cli_connection
**con
);
1227 /*The following definitions come from rpc_client/cli_lsarpc.c */
1229 BOOL
get_domain_sids(const char *domain
, DOM_SID
* sid3
, DOM_SID
* sid5
);
1230 BOOL
get_trust_sid_and_domain(const char *myname
, char *server
,
1231 DOM_SID
* sid
, char *domain
, size_t len
);
1232 BOOL
lsa_open_policy(const char *system_name
, POLICY_HND
*hnd
,
1233 BOOL sec_qos
, uint32 des_access
);
1234 BOOL
lsa_open_policy2(const char *system_name
, POLICY_HND
*hnd
,
1235 BOOL sec_qos
, uint32 des_access
);
1236 BOOL
lsa_create_secret(const POLICY_HND
*hnd
,
1237 const char *secret_name
,
1238 uint32 des_access
, POLICY_HND
*hnd_secret
);
1239 BOOL
lsa_open_secret(const POLICY_HND
*hnd
,
1240 const char *secret_name
,
1241 uint32 des_access
, POLICY_HND
*hnd_secret
);
1242 uint32
lsa_set_secret(POLICY_HND
*hnd
, const STRING2
* secret
);
1243 BOOL
lsa_query_secret(POLICY_HND
*hnd
, STRING2
* secret
, NTTIME
* last_update
);
1244 BOOL
lsa_lookup_names(POLICY_HND
*hnd
,
1247 DOM_SID
** sids
, uint32
** types
, int *num_sids
);
1248 BOOL
lsa_lookup_sids(POLICY_HND
*hnd
,
1251 char ***names
, uint32
** types
, int *num_names
);
1252 BOOL
lsa_query_sec_obj(const POLICY_HND
*hnd
, uint32 sec_info
,
1253 SEC_DESC_BUF
*sec_buf
);
1254 BOOL
lsa_query_info_pol(POLICY_HND
*hnd
, uint16 info_class
,
1255 fstring domain_name
, DOM_SID
* domain_sid
);
1256 BOOL
lsa_enum_trust_dom(POLICY_HND
*hnd
, uint32
* enum_ctx
,
1257 uint32
* num_doms
, char ***names
, DOM_SID
*** sids
);
1258 BOOL
lsa_close(POLICY_HND
*hnd
);
1260 /*The following definitions come from rpc_client/cli_netlogon.c */
1262 void gen_next_creds( struct ntdom_info
*nt
, DOM_CRED
*new_clnt_cred
);
1263 BOOL
cli_net_logon_ctrl2(const char* srv_name
, uint32 status_level
);
1264 uint32
cli_net_auth2(const char *srv_name
,
1265 const char *trust_acct
,
1266 const char *acct_name
,
1268 uint32
*neg_flags
, DOM_CHAL
*srv_chal
);
1269 uint32
cli_net_req_chal( const char *srv_name
, const char* myhostname
,
1270 DOM_CHAL
*clnt_chal
, DOM_CHAL
*srv_chal
);
1271 BOOL
cli_net_srv_pwset(const char* srv_name
,
1272 const char* myhostname
,
1273 const char* trust_acct
,
1274 const uint8 hashed_trust_pwd
[16],
1275 uint16 sec_chan_type
);
1276 uint32
cli_net_sam_logon(const char* srv_name
, const char* myhostname
,
1277 NET_ID_INFO_CTR
*ctr
,
1278 NET_USER_INFO_3
*user_info3
);
1279 BOOL
cli_net_sam_logoff(const char* srv_name
, const char* myhostname
,
1280 NET_ID_INFO_CTR
*ctr
);
1281 BOOL
cli_net_sam_sync( const char* srv_name
, const char* myhostname
,
1284 SAM_DELTA_HDR
*hdr_deltas
,
1285 SAM_DELTA_CTR
*deltas
);
1287 /*The following definitions come from rpc_client/cli_pipe.c */
1289 BOOL
create_rpc_request(prs_struct
* rhdr
, uint16 vuid
,
1290 uint8 op_num
, uint8 flags
, int data_len
, int auth_len
);
1291 BOOL
rpc_api_pipe_req(struct cli_connection
*con
, uint8 opnum
,
1292 prs_struct
* data
, prs_struct
* rdata
);
1293 BOOL
cli_send_and_rcv_pdu_trans(struct cli_connection
*con
,
1294 struct cli_state
*cli
, uint16 fnum
,
1295 prs_struct
* data
, prs_struct
* rdata
,
1297 BOOL
cli_send_and_rcv_pdu_rw(struct cli_connection
*con
,
1298 struct cli_state
*cli
, uint16 fnum
,
1299 prs_struct
* data
, prs_struct
* rdata
,
1301 BOOL
cli_send_and_rcv_pdu(struct cli_connection
*con
,
1302 struct cli_state
*cli
, uint16 fnum
,
1303 prs_struct
* data
, prs_struct
* rdata
,
1305 BOOL
cli_rcv_pdu(struct cli_connection
*con
,
1306 struct cli_state
*cli
, uint16 fnum
, prs_struct
*rdata
);
1307 BOOL
rpc_pipe_bind(struct cli_connection
*con
,
1308 const char *pipe_name
,
1309 RPC_IFACE
* abstract
, RPC_IFACE
* transfer
);
1310 void cli_nt_set_ntlmssp_flgs(struct cli_state
*cli
, uint32 ntlmssp_flgs
);
1311 BOOL
cli_nt_session_open(struct cli_state
*cli
, const char *pipe_name
,
1313 void cli_nt_session_close(struct cli_state
*cli
, uint16 fnum
);
1315 /*The following definitions come from rpc_client/cli_pipe_noauth.c */
1318 /*The following definitions come from rpc_client/cli_pipe_ntlmssp.c */
1321 /*The following definitions come from rpc_client/cli_samr.c */
1323 BOOL
samr_chgpasswd_user( struct cli_connection
*con
,
1324 const char *srv_name
, const char *user_name
,
1325 const char nt_newpass
[516], const uchar nt_oldhash
[16],
1326 const char lm_newpass
[516], const uchar lm_oldhash
[16]);
1327 BOOL
samr_get_dom_pwinfo(struct cli_connection
*con
, const char *srv_name
);
1328 BOOL
samr_query_dom_info( POLICY_HND
*domain_pol
, uint16 switch_value
,
1330 uint32
samr_enum_domains( POLICY_HND
*pol
,
1331 uint32
*start_idx
, uint32 size
,
1332 struct acct_info
**sam
,
1333 uint32
*num_sam_domains
);
1334 uint32
samr_enum_dom_groups( POLICY_HND
*pol
,
1335 uint32
*start_idx
, uint32 size
,
1336 struct acct_info
**sam
,
1337 uint32
*num_sam_groups
);
1338 uint32
samr_enum_dom_aliases( POLICY_HND
*pol
,
1339 uint32
*start_idx
, uint32 size
,
1340 struct acct_info
**sam
,
1341 uint32
*num_sam_aliases
);
1342 uint32
samr_enum_dom_users( POLICY_HND
*pol
, uint32
*start_idx
,
1343 uint16 acb_mask
, uint16 unk_1
, uint32 size
,
1344 struct acct_info
**sam
,
1345 uint32
*num_sam_users
);
1346 BOOL
samr_connect( const char *srv_name
, uint32 access_mask
,
1347 POLICY_HND
*connect_pol
);
1348 BOOL
samr_query_sec_obj( const POLICY_HND
*pol
,
1351 BOOL
samr_open_user( const POLICY_HND
*pol
,
1352 uint32 unk_0
, uint32 rid
,
1353 POLICY_HND
*user_pol
);
1354 BOOL
samr_open_alias( const POLICY_HND
*domain_pol
,
1355 uint32 flags
, uint32 rid
,
1356 POLICY_HND
*alias_pol
);
1357 BOOL
samr_del_aliasmem( POLICY_HND
*alias_pol
, DOM_SID
*sid
);
1358 BOOL
samr_add_aliasmem( POLICY_HND
*alias_pol
, DOM_SID
*sid
);
1359 BOOL
samr_delete_dom_alias( POLICY_HND
*alias_pol
);
1360 uint32
samr_create_dom_user( POLICY_HND
*domain_pol
, const char *acct_name
,
1361 uint32 unk_0
, uint32 unk_1
,
1362 POLICY_HND
*user_pol
, uint32
*rid
);
1363 BOOL
samr_create_dom_alias( POLICY_HND
*domain_pol
, const char *acct_name
,
1364 POLICY_HND
*alias_pol
, uint32
*rid
);
1365 BOOL
samr_query_aliasinfo( POLICY_HND
*alias_pol
, uint16 switch_value
,
1366 ALIAS_INFO_CTR
*ctr
);
1367 BOOL
samr_set_aliasinfo( POLICY_HND
*alias_pol
, ALIAS_INFO_CTR
*ctr
);
1368 BOOL
samr_open_group( const POLICY_HND
*domain_pol
,
1369 uint32 flags
, uint32 rid
,
1370 POLICY_HND
*group_pol
);
1371 BOOL
samr_del_groupmem( POLICY_HND
*group_pol
, uint32 rid
);
1372 BOOL
samr_add_groupmem( POLICY_HND
*group_pol
, uint32 rid
);
1373 BOOL
samr_delete_dom_user( POLICY_HND
*user_pol
);
1374 BOOL
samr_delete_dom_group( POLICY_HND
*group_pol
);
1375 BOOL
samr_create_dom_group( POLICY_HND
*domain_pol
, const char *acct_name
,
1376 POLICY_HND
*group_pol
, uint32
*rid
);
1377 BOOL
samr_set_groupinfo( POLICY_HND
*group_pol
, GROUP_INFO_CTR
*ctr
);
1378 BOOL
samr_unknown_2d( const POLICY_HND
*domain_pol
,
1379 const DOM_SID
*sid
);
1380 BOOL
samr_open_domain( const POLICY_HND
*connect_pol
,
1383 POLICY_HND
*domain_pol
);
1384 BOOL
samr_query_lookup_domain( POLICY_HND
*pol
, const char *dom_name
,
1386 BOOL
samr_query_lookup_names(const POLICY_HND
*pol
, uint32 flags
,
1387 uint32 num_names
, char **names
,
1388 uint32
*num_rids
, uint32
**rids
, uint32
**types
);
1389 BOOL
samr_query_lookup_rids( const POLICY_HND
*pol
, uint32 flags
,
1390 uint32 num_rids
, const uint32
*rids
,
1394 BOOL
samr_query_aliasmem( const POLICY_HND
*alias_pol
,
1395 uint32
*num_mem
, DOM_SID2
*sid
);
1396 BOOL
samr_query_useraliases( const POLICY_HND
*pol
,
1397 uint32
*ptr_sid
, DOM_SID2
*sid
,
1398 uint32
*num_aliases
, uint32
**rid
);
1399 BOOL
samr_query_groupmem( POLICY_HND
*group_pol
,
1400 uint32
*num_mem
, uint32
**rid
, uint32
**attr
);
1401 BOOL
samr_query_usergroups( POLICY_HND
*pol
, uint32
*num_groups
,
1403 BOOL
samr_query_groupinfo( POLICY_HND
*pol
,
1404 uint16 switch_value
, GROUP_INFO_CTR
* ctr
);
1405 BOOL
samr_set_userinfo2( POLICY_HND
*pol
, uint16 switch_value
,
1407 BOOL
samr_set_userinfo( POLICY_HND
*pol
, uint16 switch_value
, void* usr
);
1408 BOOL
samr_query_userinfo( POLICY_HND
*pol
, uint16 switch_value
,
1409 SAM_USERINFO_CTR
*ctr
);
1410 BOOL
samr_close( POLICY_HND
*hnd
);
1411 BOOL
samr_query_dispinfo( POLICY_HND
*pol_domain
, uint16 level
,
1412 uint32
*num_entries
,
1413 SAM_DISPINFO_CTR
*ctr
);
1415 /*The following definitions come from rpc_client/cli_use.c */
1417 void init_cli_use(void);
1418 void free_cli_use(void);
1419 struct cli_state
*cli_net_use_add(const char *srv_name
,
1420 const struct ntuser_creds
*usr_creds
,
1421 BOOL redir
, BOOL reuse
, BOOL
*is_new
);
1422 BOOL
cli_net_use_del(const char *srv_name
,
1423 const struct ntuser_creds
*usr_creds
,
1424 BOOL force_close
, BOOL
*connection_closed
);
1425 void cli_net_use_enum(uint32
* num_cons
, struct use_info
***use
);
1426 void cli_use_wait_keyboard(void);
1428 /*The following definitions come from rpc_client/msrpc_samr.c */
1430 uint32
lookup_sam_domainname(const char *srv_name
,
1431 const char *domain
, DOM_SID
*sid
);
1432 uint32
lookup_sam_names(const char *domain
, const DOM_SID
*sid
,
1433 uint32 num_names
, char **names
,
1434 uint32
*num_rids
, uint32
**rids
, uint32
**types
);
1435 uint32
lookup_sam_name(const char *domain
, DOM_SID
*sid
,
1436 char *name
, uint32
*rid
, uint32
*type
);
1437 uint32
lookup_sam_rid(const char *domain
, DOM_SID
*sid
,
1438 uint32 rid
, char *name
, uint32
*type
);
1439 BOOL
req_user_info( const POLICY_HND
*pol_dom
,
1442 uint32 user_rid
, uint16 info_level
,
1443 USER_INFO_FN(usr_inf
));
1444 uint32
sam_query_usergroups( const POLICY_HND
*pol_dom
,
1448 const char *user_name
,
1453 USER_MEM_FN(usr_mem
));
1454 void msrpc_sam_user( const POLICY_HND
*pol_dom
, const POLICY_HND
*pol_blt
,
1456 const DOM_SID
*sid1
,
1457 const DOM_SID
*blt_sid1
,
1458 uint32 user_rid
, uint16 info_level
,
1461 USER_INFO_FN(usr_inf_fn
),
1462 USER_MEM_FN(usr_grp_fn
),
1463 USER_MEM_FN(usr_als_fn
));
1464 BOOL
msrpc_sam_query_user( const char* srv_name
,
1469 USER_INFO_FN(usr_inf_fn
),
1470 USER_MEM_FN(usr_grp_fn
),
1471 USER_MEM_FN(usr_als_fn
));
1472 int msrpc_sam_enum_users( const char* srv_name
,
1474 const DOM_SID
*sid1
,
1475 struct acct_info
**sam
,
1476 uint32
*num_sam_entries
,
1478 USER_INFO_FN(usr_inf_fn
),
1479 USER_MEM_FN(usr_grp_fn
),
1480 USER_MEM_FN(usr_als_fn
));
1481 BOOL
sam_query_dominfo(const char* srv_name
,
1482 const DOM_SID
*sid1
,
1483 uint32 switch_value
, SAM_UNK_CTR
*ctr
);
1484 BOOL
query_aliasinfo( const POLICY_HND
*pol_dom
,
1488 ALIAS_INFO_FN(grp_inf
));
1489 BOOL
sam_query_aliasmem(const char *srv_name
,
1490 const POLICY_HND
*pol_dom
,
1496 BOOL
req_aliasmem_info(const char* srv_name
,
1497 const POLICY_HND
*pol_dom
,
1501 const char *alias_name
,
1502 ALIAS_MEM_FN(als_mem
));
1503 BOOL
sam_query_groupmem( const POLICY_HND
*pol_dom
,
1509 BOOL
query_groupinfo( const POLICY_HND
*pol_dom
,
1513 GROUP_INFO_FN(grp_inf
));
1514 BOOL
req_groupmem_info( const POLICY_HND
*pol_dom
,
1518 const char *group_name
,
1519 GROUP_MEM_FN(grp_mem
));
1520 uint32
msrpc_sam_get_first_domain( const char* srv_name
,
1523 uint32
msrpc_sam_enum_domains( const char* srv_name
,
1524 struct acct_info
**sam
,
1525 uint32
*num_sam_entries
,
1527 DOMAIN_INFO_FN(dom_inf_fn
));
1528 uint32
msrpc_sam_enum_groups( const char* srv_name
,
1530 const DOM_SID
*sid1
,
1531 struct acct_info
**sam
,
1532 uint32
*num_sam_entries
,
1534 GROUP_INFO_FN(grp_inf_fn
),
1535 GROUP_MEM_FN(grp_mem_fn
));
1536 uint32
msrpc_sam_enum_aliases( const char* srv_name
,
1538 const DOM_SID
*sid1
,
1539 struct acct_info
**sam
,
1540 uint32
*num_sam_entries
,
1542 ALIAS_INFO_FN(als_inf_fn
),
1543 ALIAS_MEM_FN(als_mem_fn
));
1544 BOOL
create_samr_domain_user( POLICY_HND
*pol_dom
,
1545 char *acct_name
, uint16 acb_info
,
1546 const char* password
, int plen
,
1548 BOOL
create_samr_domain_alias( POLICY_HND
*pol_open_domain
,
1549 const char *acct_name
, const char *acct_desc
,
1551 BOOL
create_samr_domain_group( POLICY_HND
*pol_open_domain
,
1552 const char *acct_name
, const char *acct_desc
,
1554 BOOL
get_samr_query_usergroups( const POLICY_HND
*pol_open_domain
,
1556 uint32
*num_groups
, DOM_GID
**gid
);
1557 BOOL
delete_samr_dom_group( POLICY_HND
*pol_open_domain
,
1559 BOOL
get_samr_query_groupmem(
1560 const POLICY_HND
*pol_open_domain
,
1561 uint32 group_rid
, uint32
*num_mem
,
1562 uint32
**rid
, uint32
**attr
);
1563 BOOL
delete_samr_dom_alias(
1564 POLICY_HND
*pol_open_domain
,
1566 BOOL
get_samr_query_aliasmem(
1567 const POLICY_HND
*pol_open_domain
,
1568 uint32 alias_rid
, uint32
*num_mem
, DOM_SID2
*sid
);
1569 BOOL
set_samr_set_userinfo2(
1570 POLICY_HND
*pol_open_domain
,
1572 uint32 user_rid
, void *usr
);
1573 BOOL
set_samr_set_userinfo( const POLICY_HND
*pol_open_domain
,
1575 uint32 user_rid
, void *usr
);
1576 BOOL
get_samr_query_userinfo( const POLICY_HND
*pol_open_domain
,
1578 uint32 user_rid
, SAM_USERINFO_CTR
*ctr
);
1579 BOOL
get_samr_query_groupinfo(
1580 const POLICY_HND
*pol_open_domain
,
1582 uint32 group_rid
, GROUP_INFO_CTR
*ctr
);
1583 BOOL
get_samr_query_aliasinfo(
1584 const POLICY_HND
*pol_open_domain
,
1586 uint32 alias_rid
, ALIAS_INFO_CTR
*ctr
);
1587 BOOL
msrpc_sam_create_dom_user(const char* srv_name
, DOM_SID
*sid1
,
1588 char *acct_name
, uint16 acb_info
,
1589 const char *password
, int plen
,
1591 BOOL
msrpc_sam_query_dispinfo(const char* srv_name
, const char* domain
,
1593 uint16 switch_value
,
1594 uint32
*num_entries
, SAM_DISPINFO_CTR
*ctr
,
1596 BOOL
msrpc_sam_ntchange_pwd(const char* srv_name
,
1599 const uchar lm_oldhash
[16],
1600 const uchar nt_oldhash
[16],
1601 const char* new_passwd
);
1602 BOOL
msrpc_sam_ntpasswd_set(const char* srv_name
, const char *user
,
1603 struct ntuser_creds
*samr_creds
,
1604 const uchar lm_newpass
[516],
1605 const uchar lm_hshhash
[16],
1606 const uchar nt_newpass
[516],
1607 const uchar nt_hshhash
[16]);
1608 BOOL
msrpc_sam_query_userinfo(const char* srv_name
, const DOM_SID
*sid
,
1609 const char *user_name
, uint16 info_level
,
1610 SAM_USERINFO_CTR
*ctr
);
1612 /*The following definitions come from rpc_client/ncacn_np_use.c */
1614 BOOL
ncacn_np_establish_connection(struct ncacn_np
*cli
,
1615 const char *srv_name
,
1616 const struct ntuser_creds
*ntc
,
1617 const char *pipe_name
, BOOL redir
,
1619 void init_ncacn_np_use(void);
1620 void free_ncacn_np_use(void);
1621 struct ncacn_np
*ncacn_np_initialise(struct ncacn_np
*msrpc
,
1622 const vuser_key
* key
);
1623 struct ncacn_np
*ncacn_np_use_add(const char *pipe_name
,
1624 const vuser_key
* key
,
1625 const char *srv_name
,
1626 const struct ntuser_creds
*ntc
,
1628 BOOL reuse
, BOOL
*is_new_connection
);
1629 BOOL
ncacn_np_use_del(const char *pipe_name
,
1630 const vuser_key
* key
,
1631 BOOL force_close
, BOOL
*connection_closed
);
1632 void ncacn_np_use_enum(uint32
* num_cons
, struct use_info
***use
);
1634 /*The following definitions come from rpc_client/ncalrpc_l_use.c */
1636 void init_ncalrpc_use(void);
1637 void free_ncalrpc_use(void);
1638 struct msrpc_local
*ncalrpc_l_use_add(const char *pipe_name
,
1639 const vuser_key
* key
,
1640 BOOL redir
, BOOL reuse
, BOOL
*is_new
);
1641 BOOL
ncalrpc_l_use_del(const char *pipe_name
,
1642 const vuser_key
* key
,
1643 BOOL force_close
, BOOL
*connection_closed
);
1644 void ncalrpc_l_use_enum(uint32
* num_cons
, struct use_info
***use
);
1645 void ncalrpc_use_wait_keyboard(void);
1647 /*The following definitions come from rpc_parse/parse_creds.c */
1649 BOOL
make_creds_unix(CREDS_UNIX
*r_u
, const char* user_name
,
1650 const char* requested_name
,
1651 const char* real_name
,
1653 BOOL
creds_io_unix(char *desc
, CREDS_UNIX
*r_u
, prs_struct
*ps
, int depth
);
1654 void creds_free_unix(CREDS_UNIX
*r_u
);
1655 BOOL
make_creds_unix_sec(CREDS_UNIX_SEC
*r_u
,
1656 uint32 uid
, uint32 gid
, uint32 num_grps
, gid_t
*grps
);
1657 BOOL
creds_io_unix_sec(char *desc
, CREDS_UNIX_SEC
*r_u
, prs_struct
*ps
, int depth
);
1658 void creds_free_unix_sec(CREDS_UNIX_SEC
*r_u
);
1659 BOOL
creds_io_pwd_info(char *desc
, struct pwd_info
*pwd
, prs_struct
*ps
, int depth
);
1660 BOOL
creds_io_nt(char *desc
, CREDS_NT
*r_u
, prs_struct
*ps
, int depth
);
1661 void creds_free_nt(CREDS_NT
*r_u
);
1662 BOOL
creds_io_hybrid(char *desc
, CREDS_HYBRID
*r_u
, prs_struct
*ps
, int depth
);
1663 void copy_unix_creds(CREDS_UNIX
*to
, const CREDS_UNIX
*from
);
1664 void copy_unix_sec_creds(CREDS_UNIX_SEC
*to
, const CREDS_UNIX_SEC
*from
);
1665 void copy_nt_creds(struct ntuser_creds
*to
,
1666 const struct ntuser_creds
*from
);
1667 void copy_user_creds(struct user_creds
*to
,
1668 const struct user_creds
*from
);
1669 void free_user_creds(struct user_creds
*creds
);
1670 BOOL
creds_io_cmd(char *desc
, CREDS_CMD
*r_u
, prs_struct
*ps
, int depth
);
1671 BOOL
create_ntuser_creds( prs_struct
*ps
,
1673 uint16 version
, uint16 command
,
1674 const vuser_key
*key
,
1675 const struct ntuser_creds
*ntu
,
1677 BOOL
create_user_creds( prs_struct
*ps
,
1679 uint16 version
, uint16 command
,
1680 const vuser_key
*key
,
1681 const struct user_creds
*usr
);
1683 /*The following definitions come from rpc_parse/parse_lsa.c */
1685 BOOL
make_lsa_trans_name(LSA_TRANS_NAME
* trn
, UNISTR2
* uni_name
,
1686 uint32 sid_name_use
, char *name
, uint32 idx
);
1687 int make_dom_ref_uni(DOM_R_REF
* ref
, const UNISTR2
* uni_domname
,
1688 const DOM_SID
* dom_sid
);
1689 int make_dom_ref(DOM_R_REF
* ref
, const char *domname
,
1690 const DOM_SID
* dom_sid
);
1691 BOOL
make_lsa_sec_qos(LSA_SEC_QOS
* qos
, uint16 imp_lev
, uint8 ctxt
,
1692 uint8 eff
, uint32 unknown
);
1693 BOOL
make_lsa_obj_attr(LSA_OBJ_ATTR
* attr
, uint32 attributes
,
1695 BOOL
make_q_open_pol(LSA_Q_OPEN_POL
* r_q
, uint16 system_name
,
1697 uint32 desired_access
, LSA_SEC_QOS
* qos
);
1698 BOOL
lsa_io_q_open_pol(char *desc
, LSA_Q_OPEN_POL
* r_q
, prs_struct
* ps
,
1700 BOOL
lsa_io_r_open_pol(char *desc
, LSA_R_OPEN_POL
* r_p
, prs_struct
* ps
,
1702 BOOL
make_q_open_pol2(LSA_Q_OPEN_POL2
* r_q
, const char *server_name
,
1704 uint32 desired_access
, LSA_SEC_QOS
* qos
);
1705 BOOL
lsa_io_q_open_pol2(char *desc
, LSA_Q_OPEN_POL2
* r_q
, prs_struct
* ps
,
1707 BOOL
lsa_io_r_open_pol2(char *desc
, LSA_R_OPEN_POL2
* r_p
, prs_struct
* ps
,
1709 BOOL
make_q_query_sec_obj(LSA_Q_QUERY_SEC_OBJ
* q_q
, const POLICY_HND
*hnd
,
1711 BOOL
lsa_io_q_query_sec_obj(char *desc
, LSA_Q_QUERY_SEC_OBJ
* q_q
, prs_struct
* ps
,
1713 BOOL
lsa_io_r_query_sec_obj(char *desc
, LSA_R_QUERY_SEC_OBJ
*r_u
, prs_struct
*ps
, int depth
);
1714 BOOL
make_q_query(LSA_Q_QUERY_INFO
* q_q
, POLICY_HND
*hnd
, uint16 info_class
);
1715 BOOL
lsa_io_q_query(char *desc
, LSA_Q_QUERY_INFO
* q_q
, prs_struct
* ps
,
1717 BOOL
make_q_create_secret(LSA_Q_CREATE_SECRET
* q_o
,
1718 const POLICY_HND
*pol_hnd
, const char *secret_name
,
1719 uint32 desired_access
);
1720 BOOL
lsa_io_q_create_secret(char *desc
, LSA_Q_CREATE_SECRET
* q_o
,
1721 prs_struct
* ps
, int depth
);
1722 BOOL
lsa_io_r_create_secret(char *desc
, LSA_R_CREATE_SECRET
* r_o
,
1723 prs_struct
* ps
, int depth
);
1724 BOOL
make_q_open_secret(LSA_Q_OPEN_SECRET
* q_o
, const POLICY_HND
*pol_hnd
,
1725 const char *secret_name
, uint32 desired_access
);
1726 BOOL
lsa_io_q_open_secret(char *desc
, LSA_Q_OPEN_SECRET
* q_o
,
1727 prs_struct
* ps
, int depth
);
1728 BOOL
lsa_io_r_open_secret(char *desc
, LSA_R_OPEN_SECRET
* r_o
,
1729 prs_struct
* ps
, int depth
);
1730 BOOL
lsa_io_secret_value(char *desc
, LSA_SECRET_VALUE
* value
,
1731 prs_struct
* ps
, int depth
);
1732 BOOL
lsa_io_secret_info(char *desc
, LSA_SECRET_INFO
* info
, prs_struct
* ps
,
1734 BOOL
lsa_io_secret(char *desc
, LSA_SECRET
* q_q
, prs_struct
* ps
, int depth
);
1735 BOOL
make_q_query_secret(LSA_Q_QUERY_SECRET
* q_q
, POLICY_HND
*pol
,
1736 const STRING2
*secret
, const NTTIME
* update
);
1737 BOOL
lsa_io_q_query_secret(char *desc
, LSA_Q_QUERY_SECRET
* q_q
,
1738 prs_struct
* ps
, int depth
);
1739 BOOL
lsa_io_r_query_secret(char *desc
, LSA_R_QUERY_SECRET
* r_q
,
1740 prs_struct
* ps
, int depth
);
1741 BOOL
lsa_io_q_set_secret(char *desc
, LSA_Q_SET_SECRET
* q_q
, prs_struct
* ps
,
1743 BOOL
lsa_io_r_set_secret(char *desc
, LSA_R_SET_SECRET
* r_q
, prs_struct
* ps
,
1745 BOOL
make_q_enum_trust_dom(LSA_Q_ENUM_TRUST_DOM
* q_e
,
1747 uint32 enum_context
, uint32 preferred_len
);
1748 BOOL
lsa_io_q_enum_trust_dom(char *desc
, LSA_Q_ENUM_TRUST_DOM
* q_e
,
1749 prs_struct
* ps
, int depth
);
1750 BOOL
make_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM
* r_e
, int32 enum_context
,
1752 UNISTR2
* domain_names
, DOM_SID
** domain_sids
,
1754 BOOL
lsa_io_r_enum_trust_dom(char *desc
, LSA_R_ENUM_TRUST_DOM
* r_e
,
1755 prs_struct
* ps
, int depth
);
1756 void lsa_free_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM
* r_e
);
1757 BOOL
lsa_io_r_query(char *desc
, LSA_R_QUERY_INFO
* r_q
, prs_struct
* ps
,
1759 BOOL
make_lsa_sid_enum(LSA_SID_ENUM
* sen
, uint32 num_entries
,
1761 BOOL
make_q_lookup_sids(LSA_Q_LOOKUP_SIDS
* q_l
, POLICY_HND
*hnd
,
1762 int num_sids
, DOM_SID
** sids
, uint16 level
);
1763 BOOL
lsa_io_q_lookup_sids(char *desc
, LSA_Q_LOOKUP_SIDS
* q_s
,
1764 prs_struct
* ps
, int depth
);
1765 BOOL
lsa_io_r_lookup_sids(char *desc
, LSA_R_LOOKUP_SIDS
* r_s
,
1766 prs_struct
* ps
, int depth
);
1767 BOOL
make_q_lookup_names(LSA_Q_LOOKUP_NAMES
* q_l
, POLICY_HND
*hnd
,
1768 uint32 num_names
, char **names
);
1769 BOOL
lsa_io_q_lookup_names(char *desc
, LSA_Q_LOOKUP_NAMES
* q_r
,
1770 prs_struct
* ps
, int depth
);
1771 BOOL
lsa_io_r_lookup_names(char *desc
, LSA_R_LOOKUP_NAMES
* r_r
,
1772 prs_struct
* ps
, int depth
);
1773 BOOL
make_lsa_q_close(LSA_Q_CLOSE
* q_c
, POLICY_HND
*hnd
);
1774 BOOL
lsa_io_q_close(char *desc
, LSA_Q_CLOSE
* q_c
, prs_struct
* ps
, int depth
);
1775 BOOL
lsa_io_r_close(char *desc
, LSA_R_CLOSE
* r_c
, prs_struct
* ps
, int depth
);
1777 /*The following definitions come from rpc_parse/parse_net.c */
1779 BOOL
make_q_logon_ctrl2(NET_Q_LOGON_CTRL2
*q_l
,
1780 const char* srv_name
,
1781 uint32 function_code
,
1783 uint32 switch_value
);
1784 BOOL
net_io_q_logon_ctrl2(char *desc
, NET_Q_LOGON_CTRL2
*q_l
, prs_struct
*ps
, int depth
);
1785 BOOL
make_r_logon_ctrl2(NET_R_LOGON_CTRL2
*r_l
,
1786 uint32 switch_value
,
1787 NETLOGON_INFO
*logon_info
,
1789 BOOL
net_io_r_logon_ctrl2(char *desc
, NET_R_LOGON_CTRL2
*r_l
, prs_struct
*ps
, int depth
);
1790 BOOL
net_io_r_trust_dom(char *desc
, NET_R_TRUST_DOM_LIST
*r_t
, prs_struct
*ps
, int depth
);
1791 BOOL
net_io_q_trust_dom(char *desc
, NET_Q_TRUST_DOM_LIST
*q_l
, prs_struct
*ps
, int depth
);
1792 BOOL
make_q_req_chal(NET_Q_REQ_CHAL
*q_c
,
1793 const char *logon_srv
, const char *logon_clnt
,
1794 DOM_CHAL
*clnt_chal
);
1795 BOOL
net_io_q_req_chal(char *desc
, NET_Q_REQ_CHAL
*q_c
, prs_struct
*ps
, int depth
);
1796 BOOL
net_io_r_req_chal(char *desc
, NET_R_REQ_CHAL
*r_c
, prs_struct
*ps
, int depth
);
1797 BOOL
make_q_auth(NET_Q_AUTH
*q_a
,
1798 const char *logon_srv
, const char *acct_name
,
1799 uint16 sec_chan
, const char *comp_name
,
1800 DOM_CHAL
*clnt_chal
);
1801 BOOL
net_io_q_auth(char *desc
, NET_Q_AUTH
*q_a
, prs_struct
*ps
, int depth
);
1802 BOOL
net_io_r_auth(char *desc
, NET_R_AUTH
*r_a
, prs_struct
*ps
, int depth
);
1803 BOOL
make_q_auth_2(NET_Q_AUTH_2
*q_a
,
1804 const char *logon_srv
, const char *acct_name
,
1805 uint16 sec_chan
, const char *comp_name
,
1806 DOM_CHAL
*clnt_chal
, uint32 clnt_flgs
);
1807 BOOL
net_io_q_auth_2(char *desc
, NET_Q_AUTH_2
*q_a
, prs_struct
*ps
, int depth
);
1808 BOOL
net_io_r_auth_2(char *desc
, NET_R_AUTH_2
*r_a
, prs_struct
*ps
, int depth
);
1809 BOOL
make_q_srv_pwset(NET_Q_SRV_PWSET
*q_s
,
1810 const char *logon_srv
, const char *acct_name
,
1811 uint16 sec_chan
, const char *comp_name
,
1812 DOM_CRED
*cred
, char nt_cypher
[16]);
1813 BOOL
net_io_q_srv_pwset(char *desc
, NET_Q_SRV_PWSET
*q_s
, prs_struct
*ps
, int depth
);
1814 BOOL
net_io_r_srv_pwset(char *desc
, NET_R_SRV_PWSET
*r_s
, prs_struct
*ps
, int depth
);
1815 BOOL
make_id_info1(NET_ID_INFO_1
*id
, const char *domain_name
,
1819 const char *user_name
,
1820 const char *wksta_name
,
1821 const char sess_key
[16],
1822 const uchar lm_cypher
[16],
1823 const uchar nt_cypher
[16]);
1824 BOOL
make_id_info4(NET_ID_INFO_4
*id
, const char *domain_name
,
1826 uint32 log_id_low
, uint32 log_id_high
,
1827 const char *user_name
, const char *wksta_name
,
1828 const char *general
);
1829 BOOL
make_id_info2(NET_ID_INFO_2
*id
, const char *domain_name
,
1831 uint32 log_id_low
, uint32 log_id_high
,
1832 const char *user_name
, const char *wksta_name
,
1833 const uchar lm_challenge
[8],
1834 const uchar
*lm_chal_resp
,
1836 const uchar
*nt_chal_resp
,
1838 BOOL
make_sam_info(DOM_SAM_INFO
*sam
,
1839 const char *logon_srv
, const char *comp_name
,
1840 DOM_CRED
*clnt_cred
,
1841 DOM_CRED
*rtn_cred
, uint16 logon_level
,
1842 NET_ID_INFO_CTR
*ctr
);
1843 BOOL
make_net_user_info3W(NET_USER_INFO_3
*usr
,
1845 const NTTIME
*logon_time
,
1846 const NTTIME
*logoff_time
,
1847 const NTTIME
*kickoff_time
,
1848 const NTTIME
*pass_last_set_time
,
1849 const NTTIME
*pass_can_change_time
,
1850 const NTTIME
*pass_must_change_time
,
1852 const UNISTR2
*user_name
,
1853 const UNISTR2
*full_name
,
1854 const UNISTR2
*log_scr
,
1855 const UNISTR2
*prof_path
,
1856 const UNISTR2
*home_dir
,
1857 const UNISTR2
*dir_drive
,
1860 uint16 bad_pw_count
,
1865 const DOM_GID
*gids
,
1868 const char sess_key
[16],
1870 const UNISTR2
*logon_srv
,
1871 const UNISTR2
*logon_dom
,
1873 const char *padding
,
1875 const DOM_SID
*dom_sid
,
1876 const char *other_sids
);
1877 BOOL
make_net_user_info3(NET_USER_INFO_3
*usr
,
1880 NTTIME
*logoff_time
,
1881 NTTIME
*kickoff_time
,
1882 NTTIME
*pass_last_set_time
,
1883 NTTIME
*pass_can_change_time
,
1884 NTTIME
*pass_must_change_time
,
1894 uint16 bad_pw_count
,
1911 BOOL
net_io_user_info3(char *desc
, NET_USER_INFO_3
*usr
, prs_struct
*ps
, int depth
);
1912 BOOL
net_io_q_sam_logon(char *desc
, NET_Q_SAM_LOGON
*q_l
, prs_struct
*ps
, int depth
);
1913 BOOL
make_r_sam_logon(NET_R_SAM_LOGON
*r_s
,
1914 const DOM_CRED
*srv_creds
,
1915 uint16 switch_value
,
1916 NET_USER_INFO_3
*user_info
,
1918 BOOL
net_io_r_sam_logon(char *desc
, NET_R_SAM_LOGON
*r_l
, prs_struct
*ps
, int depth
);
1919 BOOL
net_io_q_sam_logoff(char *desc
, NET_Q_SAM_LOGOFF
*q_l
, prs_struct
*ps
, int depth
);
1920 BOOL
make_r_sam_logoff(NET_R_SAM_LOGOFF
*r_s
,
1921 const DOM_CRED
*srv_cred
,
1923 BOOL
net_io_r_sam_logoff(char *desc
, NET_R_SAM_LOGOFF
*r_l
, prs_struct
*ps
, int depth
);
1924 BOOL
make_q_sam_sync(NET_Q_SAM_SYNC
*q_s
,
1925 const char *srv_name
,
1926 const char *cli_name
,
1927 DOM_CRED
*cli_creds
, uint32 database_id
);
1928 BOOL
net_io_q_sam_sync(char *desc
, NET_Q_SAM_SYNC
*q_s
, prs_struct
*ps
, int depth
);
1929 BOOL
make_sam_delta_hdr(SAM_DELTA_HDR
*delta
, uint16 type
, uint32 rid
);
1930 BOOL
make_sam_account_info(SAM_ACCOUNT_INFO
*info
,
1931 const UNISTR2
*user_name
,
1932 const UNISTR2
*full_name
,
1933 uint32 user_rid
, uint32 group_rid
,
1934 const UNISTR2
*home_dir
,
1935 const UNISTR2
*dir_drive
,
1936 const UNISTR2
*log_scr
,
1937 const UNISTR2
*desc
,
1939 const UNISTR2
*prof_path
,
1940 const UNISTR2
*wkstas
,
1941 const UNISTR2
*unk_str
,
1942 const UNISTR2
*mung_dial
);
1943 BOOL
make_r_sam_sync(NET_R_SAM_SYNC
*r_s
,
1944 const DOM_CRED
*srv_cred
,
1945 uint32 sync_context
,
1948 SAM_DELTA_HDR
*hdr_deltas
,
1949 SAM_DELTA_CTR
*deltas
,
1951 BOOL
net_io_r_sam_sync(char *desc
, uint8 sess_key
[16],
1952 NET_R_SAM_SYNC
*r_s
, prs_struct
*ps
, int depth
);
1954 /*The following definitions come from rpc_parse/parse_ntlmssp.c */
1956 BOOL
rpc_hdr_ntlmssp_auth_chk(RPC_HDR_AUTH
*rai
);
1957 BOOL
make_rpc_auth_ntlmssp_neg(RPC_AUTH_NTLMSSP_NEG
*neg
,
1959 fstring myname
, fstring domain
);
1960 BOOL
smb_io_rpc_auth_ntlmssp_neg(char *desc
, RPC_AUTH_NTLMSSP_NEG
*neg
, prs_struct
*ps
, int depth
);
1961 BOOL
make_rpc_auth_ntlmssp_chal(RPC_AUTH_NTLMSSP_CHAL
*chl
,
1963 uint8 challenge
[8]);
1964 BOOL
smb_io_rpc_auth_ntlmssp_chal(char *desc
, RPC_AUTH_NTLMSSP_CHAL
*chl
, prs_struct
*ps
, int depth
);
1965 BOOL
make_rpc_auth_ntlmssp_resp(RPC_AUTH_NTLMSSP_RESP
*rsp
,
1967 uchar
*nt_resp
, size_t nt_len
,
1968 char *domain
, char *user
, char *wks
,
1970 BOOL
smb_io_rpc_auth_ntlmssp_resp(char *desc
, RPC_AUTH_NTLMSSP_RESP
*rsp
, prs_struct
*ps
, int depth
);
1971 BOOL
rpc_auth_ntlmssp_chk(RPC_AUTH_NTLMSSP_CHK
*chk
, uint32 crc32
, uint32 seq_num
);
1972 BOOL
make_rpc_auth_ntlmssp_chk(RPC_AUTH_NTLMSSP_CHK
*chk
,
1973 uint32 ver
, uint32 crc32
, uint32 seq_num
);
1974 BOOL
smb_io_rpc_auth_ntlmssp_chk(char *desc
, RPC_AUTH_NTLMSSP_CHK
*chk
, prs_struct
*ps
, int depth
);
1976 /*The following definitions come from rpc_parse/parse_prs.c */
1978 void prs_debug(prs_struct
* ps
, int depth
, const char *desc
,
1979 const char *fn_name
);
1980 void prs_debug_out(const prs_struct
* ps
, char *msg
, int level
);
1981 BOOL
prs_init(prs_struct
* ps
, uint32 size
, uint8 align
, BOOL io
);
1982 void prs_set_packtype(prs_struct
* ps
, const uint8
* pack_type
);
1983 void prs_create(prs_struct
* ps
, char *data
, uint32 size
, uint8 align
,
1985 BOOL
prs_copy(prs_struct
* ps
, const prs_struct
* from
);
1986 BOOL
prs_alloc_data(prs_struct
* buf
, int size
);
1987 BOOL
prs_buf_copy(char *copy_into
, const prs_struct
* buf
,
1988 uint32 offset
, uint32 len
);
1989 void prs_struct_free(prs_struct
** buf
);
1990 void prs_free_data(prs_struct
* buf
);
1991 BOOL
prs_realloc_data(prs_struct
* buf
, size_t new_size
);
1992 BOOL
prs_grow_data(prs_struct
* buf
, BOOL io
, int new_size
, BOOL force_grow
);
1993 uint32
prs_buf_len(const prs_struct
* buf
);
1994 char *prs_data(const prs_struct
* buf
, uint32 offset
);
1995 void prs_link(prs_struct
* prev
, prs_struct
* ps
, prs_struct
* next
);
1996 BOOL
prs_align(prs_struct
* ps
);
1997 BOOL
prs_grow(prs_struct
* ps
, uint32 new_size
);
1998 BOOL
prs_append_data(prs_struct
* ps
, const char *data
, int len
);
1999 BOOL
prs_add_data(prs_struct
* ps
, const char *data
, int len
);
2000 void prs_switch_type(prs_struct
*ps
, BOOL io
);
2001 void prs_force_dynamic(prs_struct
*ps
);
2002 uint32
prs_offset(prs_struct
*ps
);
2003 BOOL
prs_set_offset(prs_struct
*ps
, uint32 offset
);
2004 void prs_mem_free(prs_struct
*ps
);
2005 BOOL
prs_append_some_prs_data(prs_struct
*dst
, prs_struct
*src
, int32 start
, uint32 len
);
2006 BOOL
_prs_uint8(char *name
, prs_struct
* ps
, int depth
, uint8
* data8
);
2007 BOOL
_prs_uint16(char *name
, prs_struct
* ps
, int depth
, uint16
* data16
);
2008 BOOL
_prs_hash1(prs_struct
* ps
, uint32 offset
, uint8 sess_key
[16]);
2009 BOOL
_prs_uint32(char *name
, prs_struct
* ps
, int depth
, uint32
* data32
);
2010 BOOL
_prs_uint8s(BOOL charmode
, char *name
, prs_struct
* ps
, int depth
,
2011 uint8
* data8s
, int len
);
2012 BOOL
_prs_uint16s(BOOL charmode
, char *name
, prs_struct
* ps
, int depth
,
2013 uint16
* data16s
, int len
);
2014 BOOL
_prs_uint32s(BOOL charmode
, char *name
, prs_struct
* ps
, int depth
,
2015 uint32
* data32s
, int len
);
2016 BOOL
_prs_buffer2(BOOL charmode
, char *name
, prs_struct
* ps
, int depth
,
2018 BOOL
_prs_string2(BOOL charmode
, char *name
, prs_struct
* ps
, int depth
,
2020 BOOL
_prs_unistr2(BOOL charmode
, char *name
, prs_struct
* ps
, int depth
,
2022 BOOL
_prs_unistr3(BOOL charmode
, char *name
, UNISTR3
* str
, prs_struct
* ps
,
2024 BOOL
_prs_unistr(char *name
, prs_struct
* ps
, int depth
, UNISTR
* str
);
2025 BOOL
_prs_string(char *name
, prs_struct
* ps
, int depth
, char *str
,
2026 uint16 len
, uint16 max_buf_size
);
2027 BOOL
_prs_uint16_pre(char *name
, prs_struct
* ps
, int depth
, uint16
* data16
,
2029 BOOL
_prs_uint16_post(char *name
, prs_struct
* ps
, int depth
, uint16
* data16
,
2030 uint32 ptr_uint16
, uint32 start_offset
);
2031 BOOL
_prs_uint32_pre(char *name
, prs_struct
* ps
, int depth
, uint32
* data32
,
2033 BOOL
_prs_uint32_post(char *name
, prs_struct
* ps
, int depth
, uint32
* data32
,
2034 uint32 ptr_uint32
, uint32 data_size
);
2035 int prs_tdb_delete(TDB_CONTEXT
* tdb
, prs_struct
* pk
);
2036 int prs_tdb_store(TDB_CONTEXT
* tdb
, int flgs
, prs_struct
* pk
,
2038 void prs_tdb_fetch(TDB_CONTEXT
* tdb
, prs_struct
* pk
, prs_struct
* pd
);
2040 /*The following definitions come from rpc_parse/parse_rpc.c */
2042 BOOL
make_rpc_hdr(RPC_HDR
* hdr
, enum RPC_PKT_TYPE pkt_type
, uint8 flags
,
2043 uint32 call_id
, int frag_len
, int auth_len
);
2044 BOOL
smb_io_rpc_hdr(char *desc
, RPC_HDR
* rpc
, prs_struct
* ps
, int depth
);
2045 BOOL
is_complete_pdu(prs_struct
* ps
);
2046 BOOL
smb_io_rpc_hdr_nack(char *desc
, RPC_HDR_NACK
* rpc
, prs_struct
* ps
,
2048 BOOL
smb_io_rpc_hdr_fault(char *desc
, RPC_HDR_FAULT
* rpc
, prs_struct
* ps
,
2050 BOOL
smb_io_rpc_uuid(char *desc
, RPC_UUID
* uuid
, prs_struct
* ps
,
2052 BOOL
make_rpc_hdr_rb(RPC_HDR_RB
* rpc
,
2053 uint16 max_tsize
, uint16 max_rsize
, uint32 assoc_gid
,
2054 uint8 num_elements
, uint16 context_id
,
2055 uint8 num_syntaxes
, RPC_IFACE
* abstract
,
2056 RPC_IFACE
* transfer
);
2057 BOOL
smb_io_rpc_hdr_rb(char *desc
, RPC_HDR_RB
* rpc
, prs_struct
* ps
,
2059 BOOL
make_rpc_hdr_ba(RPC_HDR_BA
* rpc
,
2060 uint16 max_tsize
, uint16 max_rsize
, uint32 assoc_gid
,
2061 const char *pipe_addr
,
2062 uint8 num_results
, uint16 result
, uint16 reason
,
2063 RPC_IFACE
* transfer
);
2064 BOOL
smb_io_rpc_hdr_ba(char *desc
, RPC_HDR_BA
* rpc
, prs_struct
* ps
,
2066 BOOL
make_rpc_hdr_req(RPC_HDR_REQ
* hdr
, uint32 alloc_hint
, uint16 vuid
,
2068 BOOL
smb_io_rpc_hdr_req(char *desc
, RPC_HDR_REQ
* rpc
, prs_struct
* ps
,
2070 BOOL
smb_io_rpc_hdr_resp(char *desc
, RPC_HDR_RESP
* rpc
, prs_struct
* ps
,
2072 BOOL
make_rpc_hdr_autha(RPC_HDR_AUTHA
* rai
,
2073 uint16 max_tsize
, uint16 max_rsize
,
2074 uint8 auth_type
, uint8 auth_level
,
2075 uint8 stub_type_len
);
2076 BOOL
smb_io_rpc_hdr_autha(char *desc
, RPC_HDR_AUTHA
* rai
, prs_struct
* ps
,
2078 BOOL
make_rpc_hdr_auth(RPC_HDR_AUTH
* rai
,
2079 uint8 auth_type
, uint8 auth_level
,
2080 uint8 stub_type_len
, uint32 ptr
);
2081 BOOL
smb_io_rpc_hdr_auth(char *desc
, RPC_HDR_AUTH
* rai
, prs_struct
* ps
,
2083 BOOL
make_rpc_auth_verifier(RPC_AUTH_VERIFIER
* rav
,
2084 char *signature
, uint32 msg_type
);
2085 BOOL
smb_io_rpc_auth_verifier(char *desc
, RPC_AUTH_VERIFIER
* rav
,
2086 prs_struct
* ps
, int depth
);
2087 BOOL
rpc_auth_verifier_chk(RPC_AUTH_VERIFIER
* rav
,
2088 char *signature
, uint32 msg_type
);
2090 /*The following definitions come from rpc_parse/parse_samr.c */
2092 BOOL
make_samr_q_close_hnd(SAMR_Q_CLOSE_HND
*q_c
, POLICY_HND
*hnd
);
2093 BOOL
samr_io_q_close_hnd(char *desc
, SAMR_Q_CLOSE_HND
*q_u
, prs_struct
*ps
, int depth
);
2094 BOOL
samr_io_r_close_hnd(char *desc
, SAMR_R_CLOSE_HND
*r_u
, prs_struct
*ps
, int depth
);
2095 BOOL
make_samr_q_lookup_domain(SAMR_Q_LOOKUP_DOMAIN
*q_u
,
2096 POLICY_HND
*pol
, const char *dom_name
);
2097 BOOL
samr_io_q_lookup_domain(char *desc
, SAMR_Q_LOOKUP_DOMAIN
*q_u
, prs_struct
*ps
, int depth
);
2098 BOOL
make_samr_r_lookup_domain(SAMR_R_LOOKUP_DOMAIN
*r_u
,
2099 DOM_SID
*dom_sid
, uint32 status
);
2100 BOOL
samr_io_r_lookup_domain(char *desc
, SAMR_R_LOOKUP_DOMAIN
*r_u
, prs_struct
*ps
, int depth
);
2101 BOOL
make_samr_q_unknown_2d(SAMR_Q_UNKNOWN_2D
*q_u
,
2102 const POLICY_HND
*dom_pol
,
2103 const DOM_SID
*sid
);
2104 BOOL
samr_io_q_unknown_2d(char *desc
, SAMR_Q_UNKNOWN_2D
*q_u
, prs_struct
*ps
, int depth
);
2105 BOOL
samr_io_r_unknown_2d(char *desc
, SAMR_R_UNKNOWN_2D
*r_u
, prs_struct
*ps
, int depth
);
2106 BOOL
make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN
*q_u
,
2107 const POLICY_HND
*connect_pol
, uint32 flags
,
2108 const DOM_SID
*sid
);
2109 BOOL
samr_io_q_open_domain(char *desc
, SAMR_Q_OPEN_DOMAIN
*q_u
, prs_struct
*ps
, int depth
);
2110 BOOL
samr_io_r_open_domain(char *desc
, SAMR_R_OPEN_DOMAIN
*r_u
, prs_struct
*ps
, int depth
);
2111 BOOL
make_samr_q_get_usrdom_pwinfo(SAMR_Q_GET_USRDOM_PWINFO
*q_u
, POLICY_HND
*user_pol
);
2112 BOOL
samr_io_q_get_usrdom_pwinfo(char *desc
, SAMR_Q_GET_USRDOM_PWINFO
*q_u
, prs_struct
*ps
, int depth
);
2113 BOOL
samr_io_r_get_usrdom_pwinfo(char *desc
, SAMR_R_GET_USRDOM_PWINFO
*r_u
, prs_struct
*ps
, int depth
);
2114 BOOL
make_samr_q_query_sec_obj(SAMR_Q_QUERY_SEC_OBJ
*q_u
,
2115 const POLICY_HND
*user_pol
, uint32 sec_info
);
2116 BOOL
samr_io_q_query_sec_obj(char *desc
, SAMR_Q_QUERY_SEC_OBJ
*q_u
, prs_struct
*ps
, int depth
);
2117 BOOL
make_samr_q_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO
*q_u
,
2118 POLICY_HND
*domain_pol
, uint16 switch_value
);
2119 BOOL
samr_io_q_query_dom_info(char *desc
, SAMR_Q_QUERY_DOMAIN_INFO
*q_u
, prs_struct
*ps
, int depth
);
2120 BOOL
make_unk_info3(SAM_UNK_INFO_3
*u_3
);
2121 BOOL
make_unk_info6(SAM_UNK_INFO_6
*u_6
);
2122 BOOL
make_unk_info7(SAM_UNK_INFO_7
*u_7
);
2123 BOOL
make_unk_info2(SAM_UNK_INFO_2
*u_2
, char *domain
, char *server
);
2124 BOOL
make_unk_info1(SAM_UNK_INFO_1
*u_1
);
2125 BOOL
make_samr_r_query_dom_info(SAMR_R_QUERY_DOMAIN_INFO
*r_u
,
2126 uint16 switch_value
, SAM_UNK_CTR
*ctr
,
2128 BOOL
samr_io_r_query_dom_info(char *desc
, SAMR_R_QUERY_DOMAIN_INFO
*r_u
, prs_struct
*ps
, int depth
);
2129 BOOL
samr_io_r_query_sec_obj(char *desc
, SAMR_R_QUERY_SEC_OBJ
*r_u
, prs_struct
*ps
, int depth
);
2130 BOOL
make_sam_entry(SAM_ENTRY
*sam
, uint32 len_sam_name
, uint32 rid
);
2131 BOOL
make_samr_q_enum_dom_users(SAMR_Q_ENUM_DOM_USERS
*q_e
, POLICY_HND
*pol
,
2133 uint16 acb_mask
, uint16 unk_1
, uint32 size
);
2134 BOOL
samr_io_q_enum_dom_users(char *desc
, SAMR_Q_ENUM_DOM_USERS
*q_e
, prs_struct
*ps
, int depth
);
2135 BOOL
make_samr_r_enum_dom_users(SAMR_R_ENUM_DOM_USERS
*r_u
,
2137 uint32 num_sam_entries
);
2138 BOOL
samr_io_r_enum_dom_users(char *desc
, SAMR_R_ENUM_DOM_USERS
*r_u
, prs_struct
*ps
, int depth
);
2139 BOOL
make_samr_q_query_dispinfo(SAMR_Q_QUERY_DISPINFO
*q_e
, POLICY_HND
*pol
,
2140 uint16 switch_level
, uint32 start_idx
,
2141 uint32 max_entries
);
2142 BOOL
samr_io_q_query_dispinfo(char *desc
, SAMR_Q_QUERY_DISPINFO
*q_e
, prs_struct
*ps
, int depth
);
2143 BOOL
make_sam_dispinfo_1(SAM_DISPINFO_1
*sam
, uint32
*num_entries
,
2144 uint32
*data_size
, uint32 start_idx
,
2145 SAM_USER_INFO_21 pass
[MAX_SAM_ENTRIES
]);
2146 BOOL
make_sam_dispinfo_2(SAM_DISPINFO_2
*sam
, uint32
*num_entries
,
2147 uint32
*data_size
, uint32 start_idx
,
2148 SAM_USER_INFO_21 pass
[MAX_SAM_ENTRIES
]);
2149 BOOL
make_sam_dispinfo_3(SAM_DISPINFO_3
*sam
, uint32
*num_entries
,
2150 uint32
*data_size
, uint32 start_idx
,
2152 BOOL
make_sam_dispinfo_4(SAM_DISPINFO_4
*sam
, uint32
*num_entries
,
2153 uint32
*data_size
, uint32 start_idx
,
2154 SAM_USER_INFO_21 pass
[MAX_SAM_ENTRIES
]);
2155 BOOL
make_sam_dispinfo_5(SAM_DISPINFO_5
*sam
, uint32
*num_entries
,
2156 uint32
*data_size
, uint32 start_idx
,
2158 BOOL
make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO
*r_u
,
2159 uint32 num_entries
, uint32 data_size
,
2160 uint16 switch_level
, SAM_DISPINFO_CTR
*ctr
,
2162 BOOL
samr_io_r_query_dispinfo(char *desc
, SAMR_R_QUERY_DISPINFO
*r_u
, prs_struct
*ps
, int depth
);
2163 BOOL
make_samr_q_open_group(SAMR_Q_OPEN_GROUP
*q_c
,
2164 const POLICY_HND
*hnd
,
2165 uint32 access_mask
, uint32 rid
);
2166 BOOL
samr_io_q_open_group(char *desc
, SAMR_Q_OPEN_GROUP
*q_u
, prs_struct
*ps
, int depth
);
2167 BOOL
samr_io_r_open_group(char *desc
, SAMR_R_OPEN_GROUP
*r_u
, prs_struct
*ps
, int depth
);
2168 BOOL
make_samr_group_info1(GROUP_INFO1
*gr1
,
2169 char *acct_name
, char *acct_desc
,
2170 uint32 num_members
);
2171 BOOL
samr_io_group_info1(char *desc
, GROUP_INFO1
*gr1
, prs_struct
*ps
, int depth
);
2172 BOOL
make_samr_group_info4(GROUP_INFO4
*gr4
, const char *acct_desc
);
2173 BOOL
samr_io_group_info4(char *desc
, GROUP_INFO4
*gr4
, prs_struct
*ps
, int depth
);
2174 BOOL
samr_group_info_ctr(char *desc
, GROUP_INFO_CTR
*ctr
, prs_struct
*ps
, int depth
);
2175 BOOL
make_samr_q_create_dom_group(SAMR_Q_CREATE_DOM_GROUP
*q_e
,
2177 const char *acct_desc
);
2178 BOOL
samr_io_q_create_dom_group(char *desc
, SAMR_Q_CREATE_DOM_GROUP
*q_e
, prs_struct
*ps
, int depth
);
2179 BOOL
samr_io_r_create_dom_group(char *desc
, SAMR_R_CREATE_DOM_GROUP
*r_u
, prs_struct
*ps
, int depth
);
2180 BOOL
make_samr_q_delete_dom_group(SAMR_Q_DELETE_DOM_GROUP
*q_c
, POLICY_HND
*hnd
);
2181 BOOL
samr_io_q_delete_dom_group(char *desc
, SAMR_Q_DELETE_DOM_GROUP
*q_u
, prs_struct
*ps
, int depth
);
2182 BOOL
samr_io_r_delete_dom_group(char *desc
, SAMR_R_DELETE_DOM_GROUP
*r_u
, prs_struct
*ps
, int depth
);
2183 BOOL
make_samr_q_del_groupmem(SAMR_Q_DEL_GROUPMEM
*q_e
,
2186 BOOL
samr_io_q_del_groupmem(char *desc
, SAMR_Q_DEL_GROUPMEM
*q_e
, prs_struct
*ps
, int depth
);
2187 BOOL
make_samr_r_del_groupmem(SAMR_R_DEL_GROUPMEM
*r_u
, POLICY_HND
*pol
,
2189 BOOL
samr_io_r_del_groupmem(char *desc
, SAMR_R_DEL_GROUPMEM
*r_u
, prs_struct
*ps
, int depth
);
2190 BOOL
make_samr_q_add_groupmem(SAMR_Q_ADD_GROUPMEM
*q_e
,
2193 BOOL
samr_io_q_add_groupmem(char *desc
, SAMR_Q_ADD_GROUPMEM
*q_e
, prs_struct
*ps
, int depth
);
2194 BOOL
make_samr_r_add_groupmem(SAMR_R_ADD_GROUPMEM
*r_u
, POLICY_HND
*pol
,
2196 BOOL
samr_io_r_add_groupmem(char *desc
, SAMR_R_ADD_GROUPMEM
*r_u
, prs_struct
*ps
, int depth
);
2197 BOOL
make_samr_q_set_groupinfo(SAMR_Q_SET_GROUPINFO
*q_e
,
2198 POLICY_HND
*pol
, GROUP_INFO_CTR
*ctr
);
2199 BOOL
samr_io_q_set_groupinfo(char *desc
, SAMR_Q_SET_GROUPINFO
*q_e
, prs_struct
*ps
, int depth
);
2200 BOOL
make_samr_r_set_groupinfo(SAMR_R_SET_GROUPINFO
*r_u
,
2202 BOOL
samr_io_r_set_groupinfo(char *desc
, SAMR_R_SET_GROUPINFO
*r_u
, prs_struct
*ps
, int depth
);
2203 BOOL
make_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO
*q_e
,
2205 uint16 switch_level
);
2206 BOOL
samr_io_q_query_groupinfo(char *desc
, SAMR_Q_QUERY_GROUPINFO
*q_e
, prs_struct
*ps
, int depth
);
2207 BOOL
make_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO
*r_u
, GROUP_INFO_CTR
*ctr
,
2209 BOOL
samr_io_r_query_groupinfo(char *desc
, SAMR_R_QUERY_GROUPINFO
*r_u
, prs_struct
*ps
, int depth
);
2210 BOOL
make_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM
*q_c
, POLICY_HND
*hnd
);
2211 BOOL
samr_io_q_query_groupmem(char *desc
, SAMR_Q_QUERY_GROUPMEM
*q_u
, prs_struct
*ps
, int depth
);
2212 BOOL
make_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM
*r_u
,
2213 uint32 num_entries
, uint32
*rid
, uint32
*attr
, uint32 status
);
2214 BOOL
samr_io_r_query_groupmem(char *desc
, SAMR_R_QUERY_GROUPMEM
*r_u
, prs_struct
*ps
, int depth
);
2215 void samr_free_r_query_groupmem(SAMR_R_QUERY_GROUPMEM
*r_u
);
2216 BOOL
make_samr_q_query_usergroups(SAMR_Q_QUERY_USERGROUPS
*q_u
,
2218 BOOL
samr_io_q_query_usergroups(char *desc
, SAMR_Q_QUERY_USERGROUPS
*q_u
, prs_struct
*ps
, int depth
);
2219 BOOL
make_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS
*r_u
,
2220 uint32 num_gids
, DOM_GID
*gid
, uint32 status
);
2221 BOOL
samr_io_gids(char *desc
, uint32
*num_gids
, DOM_GID
**gid
, prs_struct
*ps
, int depth
);
2222 BOOL
samr_io_r_query_usergroups(char *desc
, SAMR_R_QUERY_USERGROUPS
*r_u
, prs_struct
*ps
, int depth
);
2223 BOOL
make_samr_q_enum_domains(SAMR_Q_ENUM_DOMAINS
*q_e
,
2224 const POLICY_HND
*pol
,
2225 uint32 start_idx
, uint32 size
);
2226 BOOL
samr_io_q_enum_domains(char *desc
, SAMR_Q_ENUM_DOMAINS
*q_e
, prs_struct
*ps
, int depth
);
2227 BOOL
make_samr_r_enum_domains(SAMR_R_ENUM_DOMAINS
*r_u
,
2228 uint32 next_idx
, uint32 num_sam_entries
);
2229 BOOL
samr_io_r_enum_domains(char *desc
, SAMR_R_ENUM_DOMAINS
*r_u
, prs_struct
*ps
, int depth
);
2230 BOOL
make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS
*q_e
,
2231 const POLICY_HND
*pol
,
2232 uint32 start_idx
, uint32 size
);
2233 BOOL
samr_io_q_enum_dom_groups(char *desc
, SAMR_Q_ENUM_DOM_GROUPS
*q_e
, prs_struct
*ps
, int depth
);
2234 BOOL
make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS
*r_u
,
2235 uint32 next_idx
, uint32 num_sam_entries
);
2236 BOOL
samr_io_r_enum_dom_groups(char *desc
, SAMR_R_ENUM_DOM_GROUPS
*r_u
, prs_struct
*ps
, int depth
);
2237 BOOL
make_samr_q_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES
*q_e
, POLICY_HND
*pol
,
2238 uint32 start_idx
, uint32 size
);
2239 BOOL
samr_io_q_enum_dom_aliases(char *desc
, SAMR_Q_ENUM_DOM_ALIASES
*q_e
, prs_struct
*ps
, int depth
);
2240 BOOL
make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES
*r_u
,
2242 uint32 num_sam_entries
);
2243 BOOL
samr_io_r_enum_dom_aliases(char *desc
, SAMR_R_ENUM_DOM_ALIASES
*r_u
, prs_struct
*ps
, int depth
);
2244 BOOL
make_samr_alias_info3(ALIAS_INFO3
*al3
, const char *acct_desc
);
2245 BOOL
samr_io_alias_info3(char *desc
, ALIAS_INFO3
*al3
, prs_struct
*ps
, int depth
);
2246 BOOL
samr_alias_info_ctr(char *desc
, ALIAS_INFO_CTR
*ctr
, prs_struct
*ps
, int depth
);
2247 BOOL
make_samr_q_query_aliasinfo(SAMR_Q_QUERY_ALIASINFO
*q_e
,
2248 const POLICY_HND
*pol
, uint16 switch_level
);
2249 BOOL
samr_io_q_query_aliasinfo(char *desc
, SAMR_Q_QUERY_ALIASINFO
*q_e
, prs_struct
*ps
, int depth
);
2250 BOOL
make_samr_r_query_aliasinfo(SAMR_R_QUERY_ALIASINFO
*r_u
,
2251 ALIAS_INFO_CTR
*ctr
, uint32 status
);
2252 BOOL
samr_io_r_query_aliasinfo(char *desc
, SAMR_R_QUERY_ALIASINFO
*r_u
, prs_struct
*ps
, int depth
);
2253 BOOL
make_samr_q_set_aliasinfo(SAMR_Q_SET_ALIASINFO
*q_u
,
2254 const POLICY_HND
*hnd
,
2255 ALIAS_INFO_CTR
*ctr
);
2256 BOOL
samr_io_q_set_aliasinfo(char *desc
, SAMR_Q_SET_ALIASINFO
*q_u
, prs_struct
*ps
, int depth
);
2257 BOOL
samr_io_r_set_aliasinfo(char *desc
, SAMR_R_SET_ALIASINFO
*r_u
, prs_struct
*ps
, int depth
);
2258 BOOL
make_samr_q_query_useraliases(SAMR_Q_QUERY_USERALIASES
*q_u
,
2259 const POLICY_HND
*hnd
,
2261 uint32
*ptr_sid
, DOM_SID2
*sid
);
2262 BOOL
samr_io_q_query_useraliases(char *desc
, SAMR_Q_QUERY_USERALIASES
*q_u
, prs_struct
*ps
, int depth
);
2263 void samr_free_q_query_useraliases(SAMR_Q_QUERY_USERALIASES
*q_u
);
2264 BOOL
make_samr_r_query_useraliases(SAMR_R_QUERY_USERALIASES
*r_u
,
2265 uint32 num_rids
, uint32
*rid
, uint32 status
);
2266 BOOL
samr_io_rids(char *desc
, uint32
*num_rids
, uint32
**rid
, prs_struct
*ps
, int depth
);
2267 BOOL
samr_io_r_query_useraliases(char *desc
, SAMR_R_QUERY_USERALIASES
*r_u
, prs_struct
*ps
, int depth
);
2268 BOOL
make_samr_q_open_alias(SAMR_Q_OPEN_ALIAS
*q_u
, const POLICY_HND
*pol
,
2269 uint32 unknown_0
, uint32 rid
);
2270 BOOL
samr_io_q_open_alias(char *desc
, SAMR_Q_OPEN_ALIAS
*q_u
, prs_struct
*ps
, int depth
);
2271 BOOL
samr_io_r_open_alias(char *desc
, SAMR_R_OPEN_ALIAS
*r_u
, prs_struct
*ps
, int depth
);
2272 BOOL
make_samr_q_lookup_rids(SAMR_Q_LOOKUP_RIDS
*q_u
,
2273 const POLICY_HND
*pol
, uint32 flags
,
2274 uint32 num_rids
, const uint32
*rid
);
2275 BOOL
samr_io_q_lookup_rids(char *desc
, SAMR_Q_LOOKUP_RIDS
*q_u
, prs_struct
*ps
, int depth
);
2276 void samr_free_q_lookup_rids(SAMR_Q_LOOKUP_RIDS
*q_u
);
2277 BOOL
make_samr_r_lookup_rids(SAMR_R_LOOKUP_RIDS
*r_u
,
2278 uint32 num_names
, UNIHDR
*hdr_name
, UNISTR2
*uni_name
,
2280 BOOL
samr_io_r_lookup_rids(char *desc
, SAMR_R_LOOKUP_RIDS
*r_u
, prs_struct
*ps
, int depth
);
2281 void samr_free_r_lookup_rids(SAMR_R_LOOKUP_RIDS
*r_u
);
2282 BOOL
make_samr_q_delete_alias(SAMR_Q_DELETE_DOM_ALIAS
*q_u
, POLICY_HND
*hnd
);
2283 BOOL
samr_io_q_delete_alias(char *desc
, SAMR_Q_DELETE_DOM_ALIAS
*q_u
, prs_struct
*ps
, int depth
);
2284 BOOL
samr_io_r_delete_alias(char *desc
, SAMR_R_DELETE_DOM_ALIAS
*r_u
, prs_struct
*ps
, int depth
);
2285 BOOL
make_samr_q_create_dom_alias(SAMR_Q_CREATE_DOM_ALIAS
*q_u
, POLICY_HND
*hnd
,
2286 const char *acct_desc
);
2287 BOOL
samr_io_q_create_dom_alias(char *desc
, SAMR_Q_CREATE_DOM_ALIAS
*q_u
, prs_struct
*ps
, int depth
);
2288 BOOL
samr_io_r_create_dom_alias(char *desc
, SAMR_R_CREATE_DOM_ALIAS
*r_u
, prs_struct
*ps
, int depth
);
2289 BOOL
make_samr_q_add_aliasmem(SAMR_Q_ADD_ALIASMEM
*q_u
, POLICY_HND
*hnd
,
2291 BOOL
samr_io_q_add_aliasmem(char *desc
, SAMR_Q_ADD_ALIASMEM
*q_u
, prs_struct
*ps
, int depth
);
2292 BOOL
samr_io_r_add_aliasmem(char *desc
, SAMR_R_ADD_ALIASMEM
*r_u
, prs_struct
*ps
, int depth
);
2293 BOOL
make_samr_q_del_aliasmem(SAMR_Q_DEL_ALIASMEM
*q_u
, POLICY_HND
*hnd
,
2295 BOOL
samr_io_q_del_aliasmem(char *desc
, SAMR_Q_DEL_ALIASMEM
*q_u
, prs_struct
*ps
, int depth
);
2296 BOOL
samr_io_r_del_aliasmem(char *desc
, SAMR_R_DEL_ALIASMEM
*r_u
, prs_struct
*ps
, int depth
);
2297 BOOL
make_samr_q_delete_dom_alias(SAMR_Q_DELETE_DOM_ALIAS
*q_c
, POLICY_HND
*hnd
);
2298 BOOL
samr_io_q_delete_dom_alias(char *desc
, SAMR_Q_DELETE_DOM_ALIAS
*q_u
, prs_struct
*ps
, int depth
);
2299 BOOL
make_samr_r_delete_dom_alias(SAMR_R_DELETE_DOM_ALIAS
*r_u
,
2301 BOOL
samr_io_r_delete_dom_alias(char *desc
, SAMR_R_DELETE_DOM_ALIAS
*r_u
, prs_struct
*ps
, int depth
);
2302 BOOL
make_samr_q_query_aliasmem(SAMR_Q_QUERY_ALIASMEM
*q_c
,
2303 const POLICY_HND
*hnd
);
2304 BOOL
samr_io_q_query_aliasmem(char *desc
, SAMR_Q_QUERY_ALIASMEM
*q_u
, prs_struct
*ps
, int depth
);
2305 BOOL
make_samr_r_query_aliasmem(SAMR_R_QUERY_ALIASMEM
*r_u
,
2306 uint32 num_sids
, DOM_SID2
*sid
, uint32 status
);
2307 BOOL
samr_io_r_query_aliasmem(char *desc
, SAMR_R_QUERY_ALIASMEM
*r_u
, prs_struct
*ps
, int depth
);
2308 BOOL
make_samr_q_lookup_names(SAMR_Q_LOOKUP_NAMES
*q_u
,
2309 const POLICY_HND
*pol
, uint32 flags
,
2310 uint32 num_names
, char **name
);
2311 BOOL
samr_io_q_lookup_names(char *desc
, SAMR_Q_LOOKUP_NAMES
*q_u
, prs_struct
*ps
, int depth
);
2312 void samr_free_q_lookup_names(SAMR_Q_LOOKUP_NAMES
*q_l
);
2313 BOOL
make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES
*r_u
,
2315 const uint32
*rid
, const uint32
*type
,
2317 BOOL
samr_io_r_lookup_names(char *desc
, SAMR_R_LOOKUP_NAMES
*r_u
, prs_struct
*ps
, int depth
);
2318 void samr_free_r_lookup_names(SAMR_R_LOOKUP_NAMES
*r_l
);
2319 BOOL
make_samr_q_delete_dom_user(SAMR_Q_DELETE_DOM_USER
*q_c
, POLICY_HND
*hnd
);
2320 BOOL
samr_io_q_delete_dom_user(char *desc
, SAMR_Q_DELETE_DOM_USER
*q_u
, prs_struct
*ps
, int depth
);
2321 BOOL
samr_io_r_delete_dom_user(char *desc
, SAMR_R_DELETE_DOM_USER
*r_u
, prs_struct
*ps
, int depth
);
2322 BOOL
make_samr_q_open_user(SAMR_Q_OPEN_USER
*q_u
,
2323 const POLICY_HND
*pol
,
2324 uint32 access_mask
, uint32 rid
);
2325 BOOL
samr_io_q_open_user(char *desc
, SAMR_Q_OPEN_USER
*q_u
, prs_struct
*ps
, int depth
);
2326 BOOL
samr_io_r_open_user(char *desc
, SAMR_R_OPEN_USER
*r_u
, prs_struct
*ps
, int depth
);
2327 BOOL
make_samr_q_create_user(SAMR_Q_CREATE_USER
*q_u
,
2330 uint16 acb_info
, uint32 access_mask
);
2331 BOOL
samr_io_q_create_user(char *desc
, SAMR_Q_CREATE_USER
*q_u
, prs_struct
*ps
, int depth
);
2332 BOOL
samr_io_r_create_user(char *desc
, SAMR_R_CREATE_USER
*r_u
, prs_struct
*ps
, int depth
);
2333 BOOL
make_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO
*q_u
,
2334 POLICY_HND
*hnd
, uint16 switch_value
);
2335 BOOL
samr_io_q_query_userinfo(char *desc
, SAMR_Q_QUERY_USERINFO
*q_u
, prs_struct
*ps
, int depth
);
2336 BOOL
make_sam_user_info12(SAM_USER_INFO_12
*usr
,
2338 const uint8 lm_pwd
[16],
2339 const uint8 nt_pwd
[16]);
2340 BOOL
sam_io_user_info12(char *desc
, SAM_USER_INFO_12
*u
, prs_struct
*ps
, int depth
);
2341 BOOL
make_sam_user_info10(SAM_USER_INFO_10
*usr
,
2343 BOOL
sam_io_user_info10(char *desc
, SAM_USER_INFO_10
*usr
, prs_struct
*ps
, int depth
);
2344 BOOL
make_sam_user_info11(SAM_USER_INFO_11
*usr
,
2350 BOOL
sam_io_user_info11(char *desc
, SAM_USER_INFO_11
*usr
, prs_struct
*ps
, int depth
);
2351 BOOL
make_sam_user_info24(SAM_USER_INFO_24
*usr
,
2352 const char newpass
[516], uint16 passlen
);
2353 BOOL
make_sam_user_info23W(SAM_USER_INFO_23
*usr
,
2355 const NTTIME
*logon_time
, /* all zeros */
2356 const NTTIME
*logoff_time
, /* all zeros */
2357 const NTTIME
*kickoff_time
, /* all zeros */
2358 const NTTIME
*pass_last_set_time
, /* all zeros */
2359 const NTTIME
*pass_can_change_time
, /* all zeros */
2360 const NTTIME
*pass_must_change_time
, /* all zeros */
2362 const UNISTR2
*user_name
,
2363 const UNISTR2
*full_name
,
2364 const UNISTR2
*home_dir
,
2365 const UNISTR2
*dir_drive
,
2366 const UNISTR2
*log_scr
,
2367 const UNISTR2
*prof_path
,
2368 const UNISTR2
*desc
,
2369 const UNISTR2
*wkstas
,
2370 const UNISTR2
*unk_str
,
2371 const UNISTR2
*mung_dial
,
2373 uint32 user_rid
, /* 0x0000 0000 */
2383 BOOL
make_sam_user_info23A(SAM_USER_INFO_23
*usr
,
2385 NTTIME
*logon_time
, /* all zeros */
2386 NTTIME
*logoff_time
, /* all zeros */
2387 NTTIME
*kickoff_time
, /* all zeros */
2388 NTTIME
*pass_last_set_time
, /* all zeros */
2389 NTTIME
*pass_can_change_time
, /* all zeros */
2390 NTTIME
*pass_must_change_time
, /* all zeros */
2392 char *user_name
, /* NULL */
2403 uint32 user_rid
, /* 0x0000 0000 */
2413 BOOL
make_sam_user_info21W(SAM_USER_INFO_21
*usr
,
2415 const NTTIME
*logon_time
,
2416 const NTTIME
*logoff_time
,
2417 const NTTIME
*kickoff_time
,
2418 const NTTIME
*pass_last_set_time
,
2419 const NTTIME
*pass_can_change_time
,
2420 const NTTIME
*pass_must_change_time
,
2422 const UNISTR2
*user_name
,
2423 const UNISTR2
*full_name
,
2424 const UNISTR2
*home_dir
,
2425 const UNISTR2
*dir_drive
,
2426 const UNISTR2
*log_scr
,
2427 const UNISTR2
*prof_path
,
2428 const UNISTR2
*desc
,
2429 const UNISTR2
*wkstas
,
2430 const UNISTR2
*unk_str
,
2431 const UNISTR2
*mung_dial
,
2433 const uchar lm_pwd
[16],
2434 const uchar nt_pwd
[16],
2442 const LOGON_HRS
*hrs
,
2445 BOOL
make_sam_user_info21A(SAM_USER_INFO_21
*usr
,
2448 NTTIME
*logoff_time
,
2449 NTTIME
*kickoff_time
,
2450 NTTIME
*pass_last_set_time
,
2451 NTTIME
*pass_can_change_time
,
2452 NTTIME
*pass_must_change_time
,
2474 BOOL
sam_io_user_info21(char *desc
, SAM_USER_INFO_21
*usr
, prs_struct
*ps
, int depth
);
2475 uint32
make_samr_userinfo_ctr_usr21(SAM_USERINFO_CTR
*ctr
,
2476 uint16 switch_value
,
2477 const SAM_USER_INFO_21
*usr
);
2478 BOOL
make_samr_userinfo_ctr(SAM_USERINFO_CTR
*ctr
, const uchar
*sess_key
,
2479 uint16 switch_value
, void *info
);
2480 BOOL
samr_io_userinfo_ctr(char *desc
, SAM_USERINFO_CTR
*ctr
, prs_struct
*ps
, int depth
);
2481 void free_samr_userinfo_ctr(SAM_USERINFO_CTR
*ctr
);
2482 BOOL
make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO
*r_u
,
2483 SAM_USERINFO_CTR
*ctr
, uint32 status
);
2484 BOOL
samr_io_r_query_userinfo(char *desc
, SAMR_R_QUERY_USERINFO
*r_u
, prs_struct
*ps
, int depth
);
2485 BOOL
make_samr_q_set_userinfo(SAMR_Q_SET_USERINFO
*q_u
,
2487 uint16 switch_value
, void *info
);
2488 BOOL
samr_io_q_set_userinfo(char *desc
, SAMR_Q_SET_USERINFO
*q_u
, prs_struct
*ps
, int depth
);
2489 void free_samr_q_set_userinfo(SAMR_Q_SET_USERINFO
*q_u
);
2490 BOOL
make_samr_r_set_userinfo(SAMR_R_SET_USERINFO
*r_u
, uint32 status
);
2491 BOOL
samr_io_r_set_userinfo(char *desc
, SAMR_R_SET_USERINFO
*r_u
, prs_struct
*ps
, int depth
);
2492 BOOL
make_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2
*q_u
,
2494 uint16 switch_value
,
2495 SAM_USERINFO_CTR
*ctr
);
2496 BOOL
samr_io_q_set_userinfo2(char *desc
, SAMR_Q_SET_USERINFO2
*q_u
, prs_struct
*ps
, int depth
);
2497 void free_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2
*q_u
);
2498 BOOL
make_samr_r_set_userinfo2(SAMR_R_SET_USERINFO2
*r_u
,
2500 BOOL
samr_io_r_set_userinfo2(char *desc
, SAMR_R_SET_USERINFO2
*r_u
, prs_struct
*ps
, int depth
);
2501 BOOL
make_samr_q_connect(SAMR_Q_CONNECT
*q_u
,
2502 const char *srv_name
, uint32 access_mask
);
2503 BOOL
samr_io_q_connect(char *desc
, SAMR_Q_CONNECT
*q_u
, prs_struct
*ps
, int depth
);
2504 BOOL
samr_io_r_connect(char *desc
, SAMR_R_CONNECT
*r_u
, prs_struct
*ps
, int depth
);
2505 BOOL
make_samr_q_connect_anon(SAMR_Q_CONNECT_ANON
*q_u
);
2506 BOOL
samr_io_q_connect_anon(char *desc
, SAMR_Q_CONNECT_ANON
*q_u
, prs_struct
*ps
, int depth
);
2507 BOOL
samr_io_r_connect_anon(char *desc
, SAMR_R_CONNECT_ANON
*r_u
, prs_struct
*ps
, int depth
);
2508 BOOL
make_samr_q_get_dom_pwinfo(SAMR_Q_GET_DOM_PWINFO
*q_u
, const char *srv_name
);
2509 BOOL
samr_io_q_get_dom_pwinfo(char *desc
, SAMR_Q_GET_DOM_PWINFO
*q_u
, prs_struct
*ps
, int depth
);
2510 BOOL
samr_io_r_get_dom_pwinfo(char *desc
, SAMR_R_GET_DOM_PWINFO
*r_u
, prs_struct
*ps
, int depth
);
2511 BOOL
make_enc_passwd(SAMR_ENC_PASSWD
*pwd
, const char pass
[512]);
2512 BOOL
samr_io_enc_passwd(char *desc
, SAMR_ENC_PASSWD
*pwd
, prs_struct
*ps
, int depth
);
2513 BOOL
make_enc_hash(SAMR_ENC_HASH
*hsh
, const uchar hash
[16]);
2514 BOOL
samr_io_enc_hash(char *desc
, SAMR_ENC_HASH
*hsh
, prs_struct
*ps
, int depth
);
2515 BOOL
make_samr_q_chgpasswd_user(SAMR_Q_CHGPASSWD_USER
*q_u
,
2516 const char *dest_host
, const char *user_name
,
2517 const char nt_newpass
[516],
2518 const uchar nt_oldhash
[16],
2519 const char lm_newpass
[516],
2520 const uchar lm_oldhash
[16]);
2521 BOOL
samr_io_q_chgpasswd_user(char *desc
, SAMR_Q_CHGPASSWD_USER
*q_u
, prs_struct
*ps
, int depth
);
2522 BOOL
make_samr_r_chgpasswd_user(SAMR_R_CHGPASSWD_USER
*r_u
, uint32 status
);
2523 BOOL
samr_io_r_chgpasswd_user(char *desc
, SAMR_R_CHGPASSWD_USER
*r_u
, prs_struct
*ps
, int depth
);
2525 /*The following definitions come from rpc_parse/parse_sec.c */
2527 BOOL
make_sec_access(SEC_ACCESS
*t
, uint32 mask
);
2528 BOOL
sec_io_access(char *desc
, SEC_ACCESS
*t
, prs_struct
*ps
, int depth
);
2529 BOOL
make_sec_ace(SEC_ACE
*t
, DOM_SID
*sid
, uint8 type
, SEC_ACCESS mask
, uint8 flag
);
2530 BOOL
sec_io_ace(char *desc
, SEC_ACE
*t
, prs_struct
*ps
, int depth
);
2531 BOOL
make_sec_acl(SEC_ACL
*t
, uint16 revision
, int num_aces
, SEC_ACE
*ace
);
2532 void free_sec_acl(SEC_ACL
*t
);
2533 BOOL
sec_io_acl(char *desc
, SEC_ACL
*t
, prs_struct
*ps
, int depth
);
2534 int make_sec_desc(SEC_DESC
*t
, uint16 revision
, uint16 type
,
2535 DOM_SID
*owner_sid
, DOM_SID
*grp_sid
,
2536 SEC_ACL
*sacl
, SEC_ACL
*dacl
);
2537 void free_sec_desc(SEC_DESC
*t
);
2538 BOOL
sec_io_desc(char *desc
, SEC_DESC
*t
, prs_struct
*ps
, int depth
);
2539 BOOL
make_sec_desc_buf(SEC_DESC_BUF
*buf
, int len
, SEC_DESC
*data
);
2540 void free_sec_desc_buf(SEC_DESC_BUF
*buf
);
2541 BOOL
sec_io_desc_buf(char *desc
, SEC_DESC_BUF
*sec
, prs_struct
*ps
, int depth
);
2543 /*The following definitions come from rpc_parse/parse_vuid.c */
2545 BOOL
vuid_io_key(char *desc
, vuser_key
* r_u
, prs_struct
* ps
, int depth
);
2546 BOOL
make_vuid_user_struct(user_struct
* r_u
,
2547 uid_t uid
, gid_t gid
,
2549 const char *requested_name
,
2550 const char *real_name
,
2552 uint32 n_groups
, const gid_t
* groups
,
2553 const NET_USER_INFO_3
* usr
);
2554 BOOL
vuid_io_user_struct(char *desc
, user_struct
* r_u
, prs_struct
* ps
,
2556 void vuid_free_user_struct(user_struct
* r_u
);
2558 /*The following definitions come from tdb/tdb.c */
2560 char *tdb_error(TDB_CONTEXT
*tdb
);
2561 int tdb_update(TDB_CONTEXT
*tdb
, TDB_DATA key
, TDB_DATA dbuf
);
2562 TDB_DATA
tdb_fetch(TDB_CONTEXT
*tdb
, TDB_DATA key
);
2563 int tdb_exists(TDB_CONTEXT
*tdb
, TDB_DATA key
);
2564 int tdb_traverse(TDB_CONTEXT
*tdb
, int (*fn
)(TDB_CONTEXT
*tdb
, TDB_DATA key
, TDB_DATA dbuf
, void* state
), void* state
);
2565 TDB_DATA
tdb_firstkey(TDB_CONTEXT
*tdb
);
2566 TDB_DATA
tdb_nextkey(TDB_CONTEXT
*tdb
, TDB_DATA key
);
2567 int tdb_delete(TDB_CONTEXT
*tdb
, TDB_DATA key
);
2568 int tdb_store(TDB_CONTEXT
*tdb
, TDB_DATA key
, TDB_DATA dbuf
, int flag
);
2569 TDB_CONTEXT
*tdb_open(char *name
, int hash_size
, int tdb_flags
,
2570 int open_flags
, mode_t mode
);
2571 int tdb_close(TDB_CONTEXT
*tdb
);
2572 int tdb_writelock(TDB_CONTEXT
*tdb
);
2573 int tdb_writeunlock(TDB_CONTEXT
*tdb
);
2574 int tdb_lockchain(TDB_CONTEXT
*tdb
, TDB_DATA key
);
2575 int tdb_unlockchain(TDB_CONTEXT
*tdb
, TDB_DATA key
);
2576 #endif /* _WINBINDD_PROTO_H_ */