#ifndef _WINBINDD_PROTO_H_ #define _WINBINDD_PROTO_H_ /* This file is automatically generated with "make proto". DO NOT EDIT */ /*The following definitions come from lib/access.c */ BOOL allow_access(char *deny_list,char *allow_list, char *cname,char *caddr); BOOL check_access(int sock, char *allow_list, char *deny_list); /*The following definitions come from lib/bitmap.c */ struct bitmap *bitmap_allocate(int n); BOOL bitmap_set(struct bitmap *bm, unsigned i); BOOL bitmap_clear(struct bitmap *bm, unsigned i); BOOL bitmap_query(struct bitmap *bm, unsigned i); int bitmap_find(struct bitmap *bm, unsigned ofs); /*The following definitions come from lib/charcnv.c */ char *unix2dos_format(char *str,BOOL overwrite); char *dos2unix_format(char *str, BOOL overwrite); void interpret_character_set(char *str); /*The following definitions come from lib/charset.c */ void charset_initialise(void); void codepage_initialise(int client_codepage); void add_char_string(char *s); /*The following definitions come from lib/crc32.c */ uint32 crc32_calc_buffer( uint32 count, char *buffer); /*The following definitions come from lib/debug.c */ BOOL dbg_interactive(void); void sig_usr2( int sig ); void sig_usr1( int sig ); void setup_logging( char *pname, BOOL interactive ); void reopen_logs( void ); void force_check_log_size( void ); void dbgflush( void ); BOOL dbghdr( int level, char *file, char *func, int line ); dbg_Token dbg_char2token( dbg_Token *state, int c ); /*The following definitions come from lib/doscalls.c */ int dos_unlink(char *fname); int dos_open(char *fname,int flags,mode_t mode); DIR *dos_opendir(char *dname); char *dos_readdirname(DIR *p); int dos_stat(char *fname,SMB_STRUCT_STAT *sbuf); int dos_lstat(char *fname,SMB_STRUCT_STAT *sbuf); int dos_mkdir(char *dname,mode_t mode); int dos_rmdir(char *dname); int dos_chdir(char *dname); int dos_utime(char *fname,struct utimbuf *times); int copy_reg(char *source, const char *dest); int dos_rename(char *from, char *to); int dos_chmod(char *fname,mode_t mode); char *dos_getwd(char *unix_path); BOOL dos_file_exist(char *fname,SMB_STRUCT_STAT *sbuf); BOOL dos_directory_exist(char *dname,SMB_STRUCT_STAT *st); time_t dos_file_modtime(char *fname); SMB_OFF_T dos_file_size(char *file_name); int dos_ChDir(char *path); char *dos_GetWd(char *path); /*The following definitions come from lib/fault.c */ void fault_setup(void (*fn)(void *)); /*The following definitions come from lib/genrand.c */ void generate_random_buffer( unsigned char *out, int len, BOOL re_seed); /*The following definitions come from lib/getsmbpass.c */ char *getsmbpass(char *prompt) ; /*The following definitions come from lib/hmacmd5.c */ void hmac_md5_init_rfc2104(uchar* key, int key_len, HMACMD5Context *ctx); void hmac_md5_init_limK_to_64(const uchar* key, int key_len, HMACMD5Context *ctx); void hmac_md5_update(const uchar* text, int text_len, HMACMD5Context *ctx); void hmac_md5_final(uchar *digest, HMACMD5Context *ctx); void hmac_md5( uchar key[16], uchar* data, int data_len, uchar* digest); /*The following definitions come from lib/interface.c */ void load_interfaces(void); void iface_set_default(char *ip,char *bcast,char *nmask); BOOL ismyip(struct in_addr ip); BOOL is_local_net(struct in_addr from); int iface_count(void); BOOL we_are_multihomed(void); struct interface *get_interface(int n); struct in_addr *iface_n_ip(int n); unsigned iface_hash(void); struct in_addr *iface_bcast(struct in_addr ip); struct in_addr *iface_ip(struct in_addr ip); /*The following definitions come from lib/kanji.c */ void interpret_coding_system(char *str); BOOL is_multibyte_codepage(void); void initialize_multibyte_vectors( int client_codepage); /*The following definitions come from lib/md4.c */ void mdfour(unsigned char *out, const unsigned char *in, int n); /*The following definitions come from lib/md5.c */ void MD5Init(struct MD5Context *ctx); void MD5Update(struct MD5Context *ctx, uchar const *buf, unsigned len); void MD5Final(uchar digest[16], struct MD5Context *ctx); void MD5Transform(uint32 buf[4], const uchar inext[64]); /*The following definitions come from lib/msrpc-client.c */ BOOL receive_msrpc(int fd, prs_struct * data, unsigned int timeout); BOOL msrpc_send(int fd, prs_struct * ps); BOOL msrpc_receive(int fd, prs_struct * ps); BOOL ncalrpc_l_connect(struct msrpc_local *msrpc, const char *pipe_name); void ncalrpc_l_close_socket(struct msrpc_local *msrpc); void ncalrpc_l_sockopt(struct msrpc_local *msrpc, char *options); BOOL ncalrpc_l_connect_auth(struct msrpc_local *msrpc, const vuser_key * key, const char *pipename); struct msrpc_local *ncalrpc_l_initialise(struct msrpc_local *msrpc, const vuser_key * key); void ncalrpc_l_shutdown(struct msrpc_local *msrpc); BOOL ncalrpc_l_establish_connection(struct msrpc_local *msrpc, const char *pipe_name); /*The following definitions come from lib/msrpc_use.c */ /*The following definitions come from lib/netmask.c */ int get_netmask(struct in_addr *ipaddr, struct in_addr *nmask); /*The following definitions come from lib/pidfile.c */ pid_t pidfile_pid(char *name); void pidfile_create(char *name); /*The following definitions come from lib/replace.c */ char *rep_inet_ntoa(struct in_addr ip); /*The following definitions come from lib/set_vuid.c */ void init_vuid(void); BOOL become_vuser(const vuser_key *k); BOOL unbecome_vuser(void); /*The following definitions come from lib/sids.c */ struct sid_map* add_sidmap_to_array(uint32 *len, struct sid_map ***array, const struct sid_map *name); void get_sam_domain_name(void); BOOL get_member_domain_sid(void); void generate_wellknown_sids(void); BOOL create_sidmap_table(void); BOOL generate_sam_sid(char *domain_name, DOM_SID *sid); BOOL pwdb_initialise(BOOL is_server); BOOL map_domain_name_to_sid(DOM_SID *sid, char **nt_domain); BOOL map_domain_sid_to_name(DOM_SID *sid, char *nt_domain); BOOL map_domain_sid_to_any_dc(DOM_SID *sid, char *dc_name); BOOL split_domain_name(const char *fullname, char *domain, char *name); BOOL enumtrustdoms(char ***doms, uint32 *num_entries); BOOL enumdomains(char ***doms, uint32 *num_entries); /*The following definitions come from lib/signal.c */ void BlockSignals(BOOL block,int signum); void CatchSignal(int signum,void (*handler)(int )); void CatchChild(void); void CatchChildLeaveStatus(void); /*The following definitions come from lib/slprintf.c */ int vslprintf(char *str, int n, char *format, va_list ap); /*The following definitions come from libsmb/clientgen.c */ int cli_set_port(struct cli_state *cli, int port); char *cli_errstr(struct cli_state *cli); void cli_safe_smb_errstr(struct cli_state *cli, char *msg, size_t len); BOOL get_safe_rap_errstr(int rap_error, char *err_msg, size_t msglen); void cli_safe_errstr(struct cli_state *cli, char *err_msg, size_t msglen); BOOL cli_send_trans(struct cli_state *cli, int trans, char *name, int pipe_name_len, int fid, int flags, uint16 *setup, int lsetup, int msetup, char *param, int lparam, int mparam, char *data, int ldata, int mdata); BOOL cli_api_pipe(struct cli_state *cli, char *pipe_name, int pipe_name_len, uint16 *setup, uint32 setup_count, uint32 max_setup_count, char *params, uint32 param_count, uint32 max_param_count, char *data, uint32 data_count, uint32 max_data_count, char **rparam, uint32 *rparam_count, char **rdata, uint32 *rdata_count); BOOL cli_api(struct cli_state *cli, char *param, int prcnt, int mprcnt, char *data, int drcnt, int mdrcnt, char **rparam, int *rprcnt, char **rdata, int *rdrcnt); BOOL cli_NetWkstaUserLogon(struct cli_state *cli,char *user, char *workstation); BOOL cli_RNetShareEnum(struct cli_state *cli, void (*fn)(const char *, uint32, const char *)); BOOL cli_NetServerEnum(struct cli_state *cli, char *workgroup, uint32 stype, void (*fn)(const char *, uint32, const char *)); BOOL cli_session_setup_x(struct cli_state *cli, char *user, char *pass, int passlen, char *ntpass, int ntpasslen, char *user_domain); BOOL cli_session_setup(struct cli_state *cli, char *myhostname, char *user, char *pass, int passlen, char *ntpass, int ntpasslen, char *user_domain); BOOL cli_ulogoff(struct cli_state *cli); BOOL cli_send_tconX(struct cli_state *cli, char *share, char *dev, char *pass, int passlen); BOOL cli_tdis(struct cli_state *cli); BOOL cli_rename(struct cli_state *cli, char *fname_src, char *fname_dst); BOOL cli_unlink(struct cli_state *cli, char *fname); BOOL cli_mkdir(struct cli_state *cli, char *dname); BOOL cli_rmdir(struct cli_state *cli, char *dname); int cli_nt_create(struct cli_state *cli, const char *fname); int cli_open(struct cli_state *cli, const char *fname, int flags, int share_mode); BOOL cli_close(struct cli_state *cli, int fnum); BOOL cli_lock(struct cli_state *cli, int fnum, uint32 offset, uint32 len, int timeout); BOOL cli_unlock(struct cli_state *cli, int fnum, uint32 offset, uint32 len, int timeout); size_t cli_read_one(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t size); size_t cli_read(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t size, BOOL overlap); ssize_t cli_write(struct cli_state *cli, int fnum, uint16 write_mode, char *buf, off_t offset, size_t size, size_t bytes_left); BOOL cli_getattrE(struct cli_state *cli, int fd, uint16 *attr, size_t *size, time_t *c_time, time_t *a_time, time_t *m_time); BOOL cli_getatr(struct cli_state *cli, char *fname, uint16 *attr, size_t *size, time_t *t); BOOL cli_setatr(struct cli_state *cli, char *fname, uint16 attr, time_t t); BOOL cli_qpathinfo(struct cli_state *cli, const char *fname, time_t *c_time, time_t *a_time, time_t *m_time, size_t *size, uint16 *mode); BOOL cli_qpathinfo2(struct cli_state *cli, const char *fname, time_t *c_time, time_t *a_time, time_t *m_time, time_t *w_time, size_t *size, uint16 *mode, SMB_INO_T *ino); BOOL cli_qfileinfo(struct cli_state *cli, int fnum, uint16 *mode, size_t *size, time_t *c_time, time_t *a_time, time_t *m_time, time_t *w_time, SMB_INO_T *ino); int cli_list(struct cli_state *cli,const char *Mask,uint16 attribute, void (*fn)(file_info *, const char *)); BOOL cli_oem_change_password(struct cli_state *cli, const char *user, const char *new_password, const char *old_password); BOOL cli_negprot(struct cli_state *cli); BOOL cli_session_request(struct cli_state *cli, struct nmb_name *calling, struct nmb_name *called); BOOL cli_connect(struct cli_state *cli, const char *host, struct in_addr *ip); void cli_init_creds(struct cli_state *cli, const struct ntuser_creds *usr); struct cli_state *cli_initialise(struct cli_state *cli); void cli_close_socket(struct cli_state *cli); void cli_shutdown(struct cli_state *cli); int cli_error(struct cli_state *cli, uint8 *eclass, uint32 *num); void cli_sockopt(struct cli_state *cli, char *options); uint16 cli_setpid(struct cli_state *cli, uint16 pid); BOOL cli_reestablish_connection(struct cli_state *cli); BOOL cli_establish_connection(struct cli_state *cli, const char *dest_host, struct in_addr *dest_ip, struct nmb_name *calling, struct nmb_name *called, char *service, char *service_type, BOOL do_shutdown, BOOL do_tcon); BOOL cli_connect_auth(struct cli_state *cli, const char* desthost, struct in_addr *dest_ip, const struct ntuser_creds *usr); BOOL cli_connect_servers_auth(struct cli_state *cli, char *p, const struct ntuser_creds *usr); BOOL cli_connect_serverlist(struct cli_state *cli, char *p); int cli_printjob_del(struct cli_state *cli, int job); int cli_print_queue(struct cli_state *cli, void (*fn)(struct print_job_info *)); BOOL cli_chkpath(struct cli_state *cli, char *path); BOOL cli_message_start(struct cli_state *cli, char *host, char *username, int *grp); BOOL cli_message_text(struct cli_state *cli, char *msg, int len, int grp); BOOL cli_message_end(struct cli_state *cli, int grp); BOOL cli_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail); BOOL get_any_dc_name(const char *domain, char *srv_name); /*The following definitions come from libsmb/credentials.c */ char *credstr(const uchar *cred); void cred_session_key(DOM_CHAL *clnt_chal, DOM_CHAL *srv_chal, const char *pass, uchar session_key[8]); void cred_create(uchar session_key[8], DOM_CHAL *stor_cred, UTIME timestamp, DOM_CHAL *cred); int cred_assert(const DOM_CHAL *cred, uchar session_key[8], DOM_CHAL *stored_cred, UTIME timestamp); BOOL clnt_deal_with_creds(uchar sess_key[8], DOM_CRED *sto_clnt_cred, DOM_CRED *rcv_srv_cred); BOOL deal_with_creds(uchar sess_key[8], DOM_CRED *sto_clnt_cred, const DOM_CRED *rcv_clnt_cred, DOM_CRED *rtn_srv_cred); /*The following definitions come from libsmb/namequery.c */ BOOL name_status(int fd,char *name,int name_type,BOOL recurse, struct in_addr to_ip,char *master,char *rname, void (*fn)(struct packet_struct *)); struct in_addr *name_query(int fd,const char *name,int name_type, BOOL bcast,BOOL recurse, struct in_addr to_ip, int *count, void (*fn)(struct packet_struct *)); FILE *startlmhosts(char *fname); BOOL getlmhostsent( FILE *fp, pstring name, int *name_type, struct in_addr *ipaddr); void endlmhosts(FILE *fp); BOOL is_ip_address(const char *name); BOOL resolve_name(const char *name, struct in_addr *return_ip, int name_type); BOOL resolve_srv_name(const char* srv_name, fstring dest_host, struct in_addr *ip); BOOL find_master_ip(char *group, struct in_addr *master_ip); /*The following definitions come from libsmb/nmblib.c */ void debug_nmb_packet(struct packet_struct *p); char *nmb_namestr(struct nmb_name *n); void nmb_safe_namestr(struct nmb_name *n, char *str, size_t len); struct packet_struct *copy_packet(struct packet_struct *packet); void free_packet(struct packet_struct *packet); struct packet_struct *read_packet(int fd,enum packet_type packet_type); void make_nmb_name( struct nmb_name *n, const char *name, int type, const char *this_scope ); BOOL nmb_name_equal(struct nmb_name *n1, struct nmb_name *n2); BOOL send_packet(struct packet_struct *p); struct packet_struct *receive_packet(int fd,enum packet_type type,int t); void sort_query_replies(char *data, int n, struct in_addr ip); BOOL read_nmb_sock(int c, struct nmb_state *con); int get_nmb_sock(void); char *dns_to_netbios_name(char *dns_name); int name_mangle( char *In, char *Out, char name_type ); int name_extract(char *buf,int ofs,char *name); int name_len(char *s1); /*The following definitions come from libsmb/nterr.c */ BOOL get_safe_nt_error_msg(uint32 nt_code, char *msg, size_t len); const char *get_nt_error_msg(uint32 nt_code); /*The following definitions come from libsmb/pwd_cache.c */ void pwd_init(struct pwd_info *pwd); BOOL pwd_is_nullpwd(const struct pwd_info *pwd); void pwd_obfuscate_key(struct pwd_info *pwd, uint32 int_key, char *str_key); BOOL pwd_compare(const struct pwd_info *_pwd1, const struct pwd_info *_pwd2); void pwd_read(struct pwd_info *pwd, char *passwd_report, BOOL do_encrypt); void pwd_set_nullpwd(struct pwd_info *pwd); void pwd_set_cleartext(struct pwd_info *pwd, char *clr); void pwd_get_cleartext(struct pwd_info *pwd, char *clr); void pwd_set_lm_nt_16(struct pwd_info *pwd, const uchar lm_pwd[16], const uchar nt_pwd[16]); void pwd_get_lm_nt_16(const struct pwd_info *pwd, uchar lm_pwd[16], uchar nt_pwd[16]); void pwd_make_lm_nt_16(struct pwd_info *pwd, char *clr); void pwd_make_lm_nt_owf2(struct pwd_info *pwd, const uchar srv_key[8], const char *user, const char *server, const char *domain, uchar sess_key[16]); void pwd_make_lm_nt_owf(struct pwd_info *pwd, uchar cryptkey[8], uchar sess_key[16]); void pwd_get_lm_nt_owf(struct pwd_info *pwd, uchar lm_owf[24], uchar *nt_owf, size_t *nt_owf_len); /*The following definitions come from lib/smbrun.c */ int smbrun(char *cmd,char *outfile,BOOL shared); /*The following definitions come from libsmb/smbdes.c */ void smbhash(uchar *out, const uchar *in, const uchar *key, int forw); void E_P16(uchar *p14,uchar *p16); void E_P24(const uchar *p21, const uchar *c8, uchar *p24); void D_P16(const uchar *p14, const uchar *in, uchar *out); void E_old_pw_hash( const uchar *p14, const uchar *in, uchar *out); void cred_hash1(uchar *out, const uchar *in, const uchar *key); void cred_hash2(uchar *out,uchar *in,uchar *key); void cred_hash3(uchar *out, const uchar *in,uchar *key, int forw); void SamOEMhash( uchar *data, const uchar *key, int val); void sam_pwd_hash(uint32 rid, const uchar *in, uchar *out, int forw); /*The following definitions come from libsmb/smbencrypt.c */ void SMBencrypt(uchar * pwrd, uchar * c8, uchar * p24); void SMBNTencrypt(uchar * pwrd, uchar * c8, uchar * p24); void E_md4hash(uchar * pwrd, uchar * p16); void lm_owf_genW(const UNISTR2 * pwd, uchar p16[16]); void lm_owf_gen(const char *pwd, uchar p16[16]); void nt_owf_genW(const UNISTR2 * pwd, uchar nt_p16[16]); void nt_owf_gen(const char *pwd, uchar nt_p16[16]); void nt_lm_owf_genW(const UNISTR2 * pwd, uchar nt_p16[16], uchar lm_p16[16]); void nt_lm_owf_gen(const char *pwd, uchar nt_p16[16], uchar lm_p16[16]); void SMBOWFencrypt(const uchar pwrd[16], const uchar * c8, uchar p24[24]); void SMBOWFencrypt_ntv2(const uchar kr[16], const uchar * srv_chal, int srv_chal_len, const uchar * cli_chal, int cli_chal_len, char resp_buf[16]); void SMBsesskeygen_ntv2(const uchar kr[16], const uchar * nt_resp, char sess_key[16]); void SMBsesskeygen_ntv1(const uchar kr[16], const uchar * nt_resp, char sess_key[16]); void SMBgenclientchals(char *lm_cli_chal, char *nt_cli_chal, int *nt_cli_chal_len, const char *srv, const char *dom); void ntv2_owf_gen(const uchar owf[16], const char *user_n, const char *domain_n, uchar kr_buf[16]); void NTLMSSPOWFencrypt(const uchar pwrd[8], const uchar * ntlmchalresp, uchar p24[24]); BOOL make_oem_passwd_hash(uchar data[516], const char *pwrd, int new_pw_len, const uchar old_pw_hash[16], BOOL unicode); BOOL nt_encrypt_string2(STRING2 * out, const STRING2 * in, const uchar * key); BOOL nt_decrypt_string2(STRING2 * out, const STRING2 * in, const uchar * key); void create_ntlmssp_resp(struct pwd_info *pwd, char *domain, char *user_name, char *my_name, uint32 ntlmssp_cli_flgs, prs_struct * auth_resp); BOOL decode_pw_buffer(const char buffer[516], char *new_pwrd, int new_pwrd_size, uint32 * new_pw_len); BOOL encode_pw_buffer(char buffer[516], const char *new_pass, int new_pw_len, BOOL nt_pass_set); /*The following definitions come from libsmb/smberr.c */ char *smb_err_msg(uint8 class, uint32 num); BOOL smb_safe_err_msg(uint8 class, uint32 num, char *ret, size_t len); BOOL smb_safe_errstr(char *inbuf, char *msg, size_t len); char *smb_errstr(char *inbuf); /*The following definitions come from lib/snprintf.c */ /*The following definitions come from lib/stub_uid.c */ void become_root(BOOL save_dir); void unbecome_root(BOOL restore_dir); const vuser_key *get_sec_ctx(void); /*The following definitions come from lib/sursalgdomonly.c */ BOOL surs_algdomonly_sam_sid_to_unixid(DOM_SID *sid, uint32 type, uint32 *id, BOOL create); BOOL surs_algdomonly_unixid_to_sam_sid(uint32 id, uint32 type, DOM_SID *sid, BOOL create); /*The following definitions come from lib/sursalgnt5ldap.c */ BOOL surs_nt5ldap_sam_sid_to_unixid(LDAPDB *hds, DOM_SID * sid, uint32 type, uint32 * id, BOOL create); BOOL surs_nt5ldap_unixid_to_sam_sid(LDAPDB *hds, uint32 id, uint32 type, DOM_SID * sid, BOOL create); /*The following definitions come from lib/surs.c */ BOOL surs_sam_sid_to_unixid(DOM_SID *sid, uint32 type, uint32 *id, BOOL create); BOOL surs_unixid_to_sam_sid(uint32 id, uint32 type, DOM_SID *sid, BOOL create); /*The following definitions come from lib/surstdb.c */ BOOL surs_tdb_sam_sid_to_unixid(DOM_SID * sid, uint32 type, uint32 * id, BOOL create); BOOL surs_tdb_unixid_to_sam_sid(uint32 id, uint32 type, DOM_SID * sid, BOOL create); /*The following definitions come from lib/system.c */ int sys_select(int maxfd, fd_set *fds, fd_set *w_fds, struct timeval *tval); int sys_select(int maxfd, fd_set *r_fds, fd_set *w_fds, struct timeval *tval); int sys_stat(const char *fname,SMB_STRUCT_STAT *sbuf); int sys_fstat(int fd,SMB_STRUCT_STAT *sbuf); int sys_lstat(const char *fname,SMB_STRUCT_STAT *sbuf); int sys_ftruncate(int fd, SMB_OFF_T offset); SMB_OFF_T sys_lseek(int fd, SMB_OFF_T offset, int whence); int sys_fseek(FILE *fp, SMB_OFF_T offset, int whence); SMB_OFF_T sys_ftell(FILE *fp); int sys_creat(const char *path, mode_t mode); int sys_open(const char *path, int oflag, mode_t mode); FILE *sys_fopen(const char *path, const char *type); void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, SMB_OFF_T offset); int sys_waitpid(pid_t pid,int *status,int options); char *sys_getwd(char *s); int sys_chown(const char *fname,uid_t uid,gid_t gid); int sys_chroot(const char *dname); struct hostent *sys_gethostbyname(const char *name); BOOL set_process_capability( uint32 cap_flag, BOOL enable ); BOOL set_inherited_process_capability( uint32 cap_flag, BOOL enable ); long sys_random(void); void sys_srandom(unsigned int seed); int sys_getgroups(int setlen, gid_t *gidset); struct passwd *copy_passwd_struct(struct passwd *pass); struct passwd *sys_getpwnam(const char *name); struct passwd *sys_getpwuid(uid_t uid); /*The following definitions come from lib/time.c */ void GetTimeOfDay(struct timeval *tval); void TimeInit(void); int TimeDiff(time_t t); struct tm *LocalTime(time_t *t); time_t nt_time_to_unix(const NTTIME *nt); time_t interpret_long_date(char *p); void unix_to_nt_time(NTTIME *nt, time_t t); void init_nt_time(NTTIME *nt); void put_long_date(char *p,time_t t); BOOL null_mtime(time_t mtime); void put_dos_date(char *buf,int offset,time_t unixdate); void put_dos_date2(char *buf,int offset,time_t unixdate); void put_dos_date3(char *buf,int offset,time_t unixdate); time_t make_unix_date(void *date_ptr); time_t make_unix_date2(void *date_ptr); time_t make_unix_date3(void *date_ptr); char *http_timestring(time_t t); char *timestring(void ); time_t get_create_time(SMB_STRUCT_STAT *st,BOOL fake_dirs); /*The following definitions come from lib/ufc.c */ char *ufc_crypt(char *key,char *salt); /*The following definitions come from lib/username.c */ struct passwd *hashed_getpwnam(const char *name); char *uidtoname(uid_t uid); char *get_unixhome_dir(char *user); BOOL map_username(char *user); const struct passwd *Get_Pwnam(char *user,BOOL allow_change); BOOL user_ok(char *user,int snum); BOOL user_in_list(char *user,char *list); /*The following definitions come from lib/util_array.c */ void free_void_array(uint32 num_entries, void **entries, void(free_item)(void*)); void* add_copy_to_array(uint32 *len, void ***array, const void *item, void*(item_dup)(const void*), BOOL alloc_anyway); void* add_item_to_array(uint32 *len, void ***array, void *item); void free_use_info_array(uint32 num_entries, struct use_info **entries); struct use_info* add_use_info_to_array(uint32 *len, struct use_info ***array, const struct use_info *name); void free_char_array(uint32 num_entries, char **entries); char* add_chars_to_array(uint32 *len, char ***array, const char *name); void free_uint32_array(uint32 num_entries, uint32 **entries); uint32* add_uint32s_to_array(uint32 *len, uint32 ***array, const uint32 *name); void free_unistr_array(uint32 num_entries, UNISTR2 **entries); UNISTR2* add_unistr_to_array(uint32 *len, UNISTR2 ***array, UNISTR2 *name); void free_sid_array(uint32 num_entries, DOM_SID **entries); DOM_SID* add_sid_to_array(uint32 *len, DOM_SID ***array, const DOM_SID *sid); /*The following definitions come from lib/util.c */ BOOL init_myworkgroup(void); char *tmpdir(void); BOOL in_group(gid_t group, gid_t current_gid, int ngroups, gid_t * groups); uint32 get_number(const char *tmp); char *Atoic(char *p, int *n, char *c); uint32 *add_num_to_list(uint32 ** num, int *count, int val); char *get_numlist(char *p, uint32 ** num, int *count); void putip(void *dest, void *src); BOOL file_exist(char *fname, SMB_STRUCT_STAT * sbuf); int file_rename(char *from, char *to); time_t file_modtime(char *fname); BOOL directory_exist(char *dname, SMB_STRUCT_STAT * st); SMB_OFF_T file_size(char *file_name); char *attrib_string(uint16 mode); void unix_format(char *fname); void dos_format(char *fname); void show_msg(char *buf); int smb_len(char *buf); void _smb_setlen(char *buf, int len); void smb_setlen(char *buf, int len); int set_message(char *buf, int num_words, int num_bytes, BOOL zero); int smb_buflen(char *buf); char *smb_buf(char *buf); int smb_offset(char *p, char *buf); void dos_clean_name(char *s); void make_dir_struct(char *buf, char *mask, char *fname, SMB_OFF_T size, int mode, time_t date); void close_low_fds(void); int set_blocking(int fd, BOOL set); int TvalDiff(struct timeval *tvalold, struct timeval *tvalnew); SMB_OFF_T transfer_file(int infd, int outfd, SMB_OFF_T n, char *header, int headlen, int align); void msleep(int t); BOOL get_file_match(const char *dirname, const char *regexp, uint32 * total, char ***list); BOOL do_match(char *str, const char *regexp, int case_sig); BOOL mask_match(char *str, char *regexp, int case_sig, BOOL trans2); void become_daemon(void); BOOL yesno(char *p); int set_filelen(int fd, SMB_OFF_T len); void *Realloc(void *p, size_t size); void safe_free(void *p); BOOL get_myname(char *my_name, struct in_addr *ip); BOOL ip_equal(struct in_addr ip1, struct in_addr ip2); int interpret_protocol(char *str, int def); uint32 interpret_addr(char *str); struct in_addr *interpret_addr2(char *str); BOOL zero_ip(struct in_addr ip); BOOL matchname(char *remotehost, struct in_addr addr); void standard_sub_basic(char *str); void standard_sub_vuser(const user_struct * vuser, char *str); void standard_sub(connection_struct * conn, user_struct * vuser, char *str); BOOL same_net(struct in_addr ip1, struct in_addr ip2, struct in_addr mask); struct hostent *Get_Hostbyname(const char *name); BOOL process_exists(int pid); int get_unixgroups(const char *user, uid_t uid, gid_t gid, int *p_ngroups, gid_t ** p_groups); BOOL get_unix_grps(int *p_ngroups, struct group **p_groups); void free_unix_grps(int ngroups, struct group *p_groups); char *gidtoname(gid_t gid); BOOL nametogid(const char *name, gid_t * gid); BOOL nametouid(const char *name, uid_t * uid); void smb_panic(char *why); char *readdirname(DIR * p); BOOL is_in_path(char *name, name_compare_entry * namelist); void set_namearray(name_compare_entry ** ppname_array, char *namelist); void free_namearray(name_compare_entry * name_array); BOOL is_myname(char *s); void set_remote_arch(enum remote_arch_types type); enum remote_arch_types get_remote_arch(void); char *align4(char *q, char *base); char *align2(char *q, char *base); void out_ascii(FILE * f, const uchar * buf, int len); void out_struct(FILE * f, const char *buf1, int len, int per_line); void out_data(FILE * f, const char *buf1, int len, int per_line); void print_asc(int level, uchar const *buf, int len); void dump_data(int level, const char *buf1, int len); void dump_data_pw(const char *msg, const uchar * data, size_t len); char *tab_depth(int depth); int str_checksum(const char *s); void zero_free(void *p, size_t size); int set_maxfiles(int requested_max); void reg_get_subkey(char *full_keyname, char *key_name, char *subkey_name); BOOL reg_split_key(const char *full_keyname, uint32 * reg_type, char *key_name); char *get_trusted_serverlist(const char *domain); uint16 pwdb_acct_ctrl_from_ad(NTDS_USER_FLAG_ENUM adac); char *pwdb_encode_acct_ctrl(uint16 acct_ctrl, size_t length); uint16 pwdb_decode_acct_ctrl(const char *p); time_t pwdb_get_time_last_changed(const char *p); time_t pwdb_get_last_set_time(const char *p); void pwdb_set_logon_time(char *p, int max_len, time_t t); void pwdb_set_logoff_time(char *p, int max_len, time_t t); void pwdb_set_kickoff_time(char *p, int max_len, time_t t); void pwdb_set_can_change_time(char *p, int max_len, time_t t); void pwdb_set_time_last_changed(char *p, int max_len, time_t t); void pwdb_set_must_change_time(char *p, int max_len, time_t t); void pwdb_set_last_set_time(char *p, int max_len, time_t t); void pwdb_sethexpwd(char *p, const uchar * pwd, uint16 acct_ctrl); BOOL pwdb_gethexpwd(const char *p, char *pwd, uint32 * acct_ctrl); void *memdup(const void *p, size_t size); char *passdb_path(char *name); char *lock_path(char *name); const char *get_sid_name_use_str(uint32 sid_name_use); /*The following definitions come from lib/util_file.c */ BOOL do_file_lock(int fd, int waitsecs, int type); BOOL file_lock(int fd, int type, int secs, int *plock_depth); BOOL file_unlock(int fd, int *plock_depth); BOOL fcntl_lock(int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type); void *startfileent(char *pfile, char *s_readbuf, int bufsize, int *file_lock_depth, BOOL update); void endfileent(void *vp, int *file_lock_depth); SMB_BIG_UINT getfilepwpos(void *vp); BOOL setfilepwpos(void *vp, SMB_BIG_UINT tok); int getfileline(void *vp, char *linebuf, int linebuf_size); char *fgets_slash(char *s2,int maxlen,FILE *f); BOOL file_modified(const char *filename, time_t *lastmodified); void *open_file_if_modified(const char *filename, char *mode, time_t *lastmodified); /*The following definitions come from lib/util_hnd.c */ struct policy_cache *get_global_hnd_cache(void); struct policy_cache *init_policy_cache(int num_pol_hnds); void free_policy_cache(struct policy_cache *cache); BOOL policy_hnd_set_name(struct policy_cache *cache, POLICY_HND *hnd, const char *name); const char *policy_hnd_get_name(struct policy_cache *cache, const POLICY_HND *hnd); BOOL dup_policy_hnd(struct policy_cache *cache, POLICY_HND *hnd, const POLICY_HND *from); BOOL register_policy_hnd(struct policy_cache *cache, const vuser_key *key, POLICY_HND *hnd, uint32 access_mask); BOOL open_policy_hnd(struct policy_cache *cache, const vuser_key *key, POLICY_HND *hnd, uint32 access_mask); BOOL open_policy_hnd_link(struct policy_cache *cache, const POLICY_HND *parent_hnd, POLICY_HND *hnd, uint32 access_mask); int find_policy_by_hnd(struct policy_cache *cache, const POLICY_HND *hnd); BOOL set_policy_state(struct policy_cache *cache, POLICY_HND *hnd, void(*fn)(void*), void *dev); void *get_policy_state_info(struct policy_cache *cache, const POLICY_HND *hnd); BOOL policy_hnd_set_state_type(struct policy_cache *cache, POLICY_HND *hnd, int type); int policy_hnd_get_state_type(struct policy_cache *cache, const POLICY_HND *hnd); BOOL policy_hnd_check_state_type(struct policy_cache *cache, const POLICY_HND *hnd, int type); BOOL close_policy_hnd(struct policy_cache *cache, POLICY_HND *hnd); BOOL policy_link_key(struct policy_cache *cache, const POLICY_HND *hnd, POLICY_HND *to); const vuser_key *get_policy_vuser_key(struct policy_cache *cache, const POLICY_HND *hnd); BOOL pol_get_usr_sesskey(struct policy_cache *cache, const POLICY_HND *hnd, uchar usr_sess_key[16]); /*The following definitions come from lib/util_seaccess.c */ BOOL se_access_check(const SEC_DESC * sd, const NET_USER_INFO_3 * user, uint32 acc_req, uint32 prev_grant_acc, uint32 * acc_grant, uint32 * status); /*The following definitions come from lib/util_sec.c */ void gain_root_privilege(void); void gain_root_group_privilege(void); void set_effective_uid(uid_t uid); void set_effective_gid(gid_t gid); void save_re_uid(void); void restore_re_uid(void); int set_re_uid(void); void become_user_permanently(uid_t uid, gid_t gid); /*The following definitions come from lib/util_sid.c */ char *sid_to_string(pstring sidstr_out, const DOM_SID *sid); BOOL string_to_sid(DOM_SID *sidout, const char *sidstr); BOOL sid_append_rid(DOM_SID *sid, uint32 rid); BOOL sid_split_rid(DOM_SID *sid, uint32 *rid); void sid_copy(DOM_SID *sid1, const DOM_SID *sid2); BOOL sid_front_equal(const DOM_SID *sid1, const DOM_SID *sid2); BOOL sid_equal(const DOM_SID *sid1, const DOM_SID *sid2); int sid_size(const DOM_SID *sid); DOM_SID *sid_dup(const DOM_SID *src); BOOL read_sid(char *domain_name, DOM_SID *sid); BOOL write_sid(char *domain_name, DOM_SID *sid); BOOL create_new_sid(DOM_SID *sid); /*The following definitions come from lib/util_sock.c */ BOOL is_a_socket(int fd); void set_socket_options(int fd, char *options); void close_sockets(void ); ssize_t write_socket(int fd,char *buf,size_t len); ssize_t read_udp_socket(int fd,char *buf,size_t len); ssize_t read_with_timeout(int fd,char *buf,size_t mincnt,size_t maxcnt,unsigned int time_out); BOOL send_keepalive(int client); ssize_t read_data(int fd,char *buffer,size_t N); ssize_t write_data(int fd,char *buffer,size_t N); ssize_t read_smb_length(int fd,char *inbuf,unsigned int timeout); BOOL receive_smb(int fd,char *buffer, unsigned int timeout); BOOL client_receive_smb(int fd,char *buffer, unsigned int timeout); BOOL send_smb(int fd,char *buffer); BOOL send_one_packet(char *buf,int len,struct in_addr ip,int port,int type); int open_socket_in(int type, int port, int dlevel,uint32 socket_addr, BOOL rebind); int open_socket_out(int type, struct in_addr *addr, int port ,int timeout); void set_client_connection_name(const char* name, int fd); void set_client_connection_addr(const char* addr, int fd); char *client_connection_name(void); char *client_connection_addr(void); void reset_globals_after_fork(void); char *client_name(int fd); char *client_addr(int fd); int open_pipe_sock(char *path); int create_pipe_socket(char *dir, int dir_perms, char *path, int path_perms); /*The following definitions come from lib/util_str.c */ void set_first_token(char *ptr); BOOL next_token(char **ptr,char *buff,char *sep, size_t bufsize); char **toktocliplist(int *ctok, char *sep); int StrCaseCmp(const char *s, const char *t); int StrnCaseCmp(const char *s, const char *t, size_t n); BOOL strequal(const char *s1, const char *s2); BOOL strnequal(const char *s1,const char *s2,size_t n); BOOL strcsequal(const char *s1,const char *s2); void strlower(char *s); void strupper(char *s); void strnorm(char *s); BOOL strisnormal(char *s); void string_replace(char *s,char oldc,char newc); char *skip_string(char *buf,size_t n); size_t str_charnum(const char *s); BOOL trim_string(char *s,const char *front,const char *back); BOOL strhasupper(const char *s); BOOL strhaslower(const char *s); size_t count_chars(const char *s,char c); char *safe_strcpy(char *dest,const char *src, size_t maxlength); char *safe_strcat(char *dest, const char *src, size_t maxlength); char *StrCpy(char *dest,const char *src); char *StrnCpy(char *dest,const char *src,size_t n); char *strncpyn(char *dest, char *src,size_t n, char c); size_t strhex_to_str(char *p, size_t len, const char *strhex); BOOL in_list(char *s,char *list,BOOL casesensitive); BOOL string_init(char **dest,const char *src); void string_free(char **s); BOOL string_set(char **dest,const char *src); void string_sub(char *s,const char *pattern,const char *insert); void all_string_sub(char *s,const char *pattern,const char *insert, size_t len); void split_at_first_component(char *path, char *front, char sep, char *back); void split_at_last_component(char *path, char *front, char sep, char *back); char *bit_field_to_str(uint32 type, struct field_info *bs); char *enum_field_to_str(uint32 type, struct field_info *bs, BOOL first_default); /*The following definitions come from lib/util_unistr.c */ char *ascii_to_unibuf(char *dest, const char *src, int maxlen); const char* unibuf_to_ascii(char *dest, const char *src, int maxlen); void ascii_to_unistr(uint16 *dest, const char *src, int maxlen); void unistr_to_ascii(char *dest, const uint16 *src, int len); char *unistr2_to_ascii(char *dest, const UNISTR2 *str, size_t maxlen); char *skip_unibuf(char *srcbuf, int len); char *uni_strncpy(char *destbuf, const char *srcbuf, int len); uint32 buffer2_to_uint32(const BUFFER2 *str); void buffer2_to_multistr(char *dest, const BUFFER2 *str, size_t maxlen); void buffer4_to_str(char *dest, const BUFFER4 *str, size_t maxlen); UNISTR2 *unistr2_new(const char *init); UNISTR2 *unistr2_assign(UNISTR2 *str, const uint16 *src, size_t len); UNISTR2 *unistr2_assign_ascii(UNISTR2 *str, const char *buf, int len); UNISTR2 *unistr2_assign_ascii_str(UNISTR2 *str, const char *buf); UNISTR2 *unistr2_grow(UNISTR2 *str, size_t new_size); BOOL unistr2upper(UNISTR2 *str, const UNISTR2 *from); BOOL copy_unistr2(UNISTR2 *str, const UNISTR2 *from); UNISTR2 *unistr2_dup(const UNISTR2 *name); void unistr2_free(UNISTR2 *name); int StrCaseCmpW(const UNISTR2 *ws, const UNISTR2 *wt); BOOL unistr2equal(const UNISTR2 *s1, const UNISTR2 *s2); /*The following definitions come from lib/vagent.c */ void init_sock_redir(struct vagent_ops*va); void free_sock_redir(struct vagent_ops*va); void start_agent(struct vagent_ops *va); /*The following definitions come from lib/vuser.c */ BOOL is_valid_user_struct(const vuser_key * key); user_struct *get_valid_user_struct(const vuser_key * key); void invalidate_vuid(vuser_key * key); BOOL validated_username(vuser_key * key, char *name, size_t len); uint16 create_vuid(pid_t pid, uid_t uid, gid_t gid, int n_groups, gid_t * groups, const char *unix_name, const char *requested_name, const char *real_name, BOOL guest, const NET_USER_INFO_3 * info3); uint16 register_vuid(pid_t pid, uid_t uid, gid_t gid, const char *unix_name, const char *requested_name, BOOL guest, const NET_USER_INFO_3 * info3); BOOL check_vuser_ok(struct uid_cache *cache, user_struct * vuser, int snum); /*The following definitions come from lib/vuser_db.c */ BOOL tdb_delete_vuid( const vuser_key *uk); BOOL tdb_lookup_vuid( const vuser_key *uk, user_struct **usr); BOOL tdb_store_vuid( const vuser_key *uk, user_struct *usr); BOOL vuid_init_db(void); /*The following definitions come from nsswitch/winbindd.c */ void exit_server(char *reason); int winbind_get_domain_sid(char *system_name, fstring domain_name, DOM_SID *domain_sid); int winbind_lookup_by_name(char *system_name, DOM_SID *level5_sid, fstring name, DOM_SID *sid, enum SID_NAME_USE *type); int winbind_lookup_by_sid(char *system_name, DOM_SID *level5_sid, DOM_SID *sid, char *name, enum SID_NAME_USE *type); int winbind_lookup_userinfo(char *system_name, DOM_SID *level5_sid, uint32 user_rid, SAM_USERINFO_CTR *info); int winbind_lookup_groupinfo(char *system_name, DOM_SID *level5_sid, uint32 group_rid, GROUP_INFO_CTR *info); int create_winbind_socket(void); int main(int argc, char **argv); /*The following definitions come from nsswitch/winbindd_group.c */ void winbindd_getgrnam_from_group(DOM_SID *domain_sid, struct winbindd_request *request, struct winbindd_response *response); void winbindd_getgrnam_from_gid(DOM_SID *domain_sid, struct winbindd_request *request, struct winbindd_response *response); /*The following definitions come from nsswitch/winbindd_surs.c */ BOOL winbindd_surs_sam_sid_to_unixid(DOM_SID *sid, uint32 type, uint32 *id); BOOL winbindd_surs_unixid_to_sam_sid(uint32 id, uint32 type, DOM_SID *sid, BOOL create); /*The following definitions come from nsswitch/winbindd_user.c */ void winbindd_getpwnam_from_user(DOM_SID *domain_sid, struct winbindd_request *request, struct winbindd_response *response); void winbindd_getpwnam_from_uid(DOM_SID *domain_sid, struct winbindd_request *request, struct winbindd_response *response); /*The following definitions come from param/loadparm.c */ struct vfs_options *lp_vfsoptions(int i) ; char *lp_logfile(void); char *lp_smbrun(void); char *lp_configfile(void); char *lp_smb_passwd_file(void); char *lp_sam_directory(void); char *lp_smb_passgrp_file(void); char *lp_smb_group_file(void); char *lp_smb_alias_file(void); char *lp_serverstring(void); char *lp_printcapname(void); char *lp_lockdir(void); char *lp_rootdir(void); char *lp_defaultservice(void); char *lp_msg_command(void); char *lp_hosts_equiv(void); char *lp_auto_services(void); char *lp_passwd_program(void); char *lp_passwd_chat(void); char *lp_passwordserver(void); char *lp_name_resolve_order(void); char *lp_workgroup(void); char *lp_trusted_domains(void); char *lp_trusting_domains(void); char *lp_username_map(void); char *lp_aliasname_map(void); char *lp_groupname_map(void); char *lp_builtinname_map(void); char *lp_builtinrid_file(void); char *lp_ntusrname_map(void); char *lp_remote_announce(void); char *lp_remote_browse_sync(void); char *lp_wins_server(void); char *lp_interfaces(void); char *lp_socket_address(void); char *lp_nis_home_map_name(void); char *lp_netbios_aliases(void); char *lp_driverfile(void); char *lp_panic_action(void); char *lp_nt_forms(void); char *lp_nt_drivers_file(void); char *lp_dfs_map(void); char *lp_ldap_server(void); char *lp_ldap_suffix(void); char *lp_ldap_bind_as(void); char *lp_ldap_passwd_file(void); char *lp_ldap_url(void); char *lp_ldap_realm(void); char *lp_ldap_computers_subcontext(void); char *lp_ldap_users_subcontext(void); char *lp_ldap_builtin_subcontext(void); int lp_ssl_version(void); char *lp_ssl_hosts(void); char *lp_ssl_hosts_resign(void); char *lp_ssl_cacertdir(void); char *lp_ssl_cacertfile(void); char *lp_ssl_cert(void); char *lp_ssl_privkey(void); char *lp_ssl_client_cert(void); char *lp_ssl_client_privkey(void); char *lp_ssl_ciphers(void); BOOL lp_ssl_enabled(void); BOOL lp_ssl_reqClientCert(void); BOOL lp_ssl_reqServerCert(void); BOOL lp_ssl_compatibility(void); BOOL lp_dns_proxy(void); BOOL lp_wins_support(void); BOOL lp_we_are_a_wins_server(void); BOOL lp_wins_proxy(void); BOOL lp_local_master(void); BOOL lp_domain_logons(void); BOOL lp_load_printers(void); BOOL lp_use_rhosts(void); BOOL lp_readprediction(void); BOOL lp_readbmpx(void); BOOL lp_readraw(void); BOOL lp_writeraw(void); BOOL lp_null_passwords(void); BOOL lp_strip_dot(void); BOOL lp_encrypted_passwords(void); BOOL lp_update_encrypted(void); BOOL lp_client_ntlmv2(void); BOOL lp_server_ntlmv2(void); BOOL lp_client_schannel(void); BOOL lp_server_schannel(void); BOOL lp_syslog_only(void); BOOL lp_timestamp_logs(void); BOOL lp_browse_list(void); BOOL lp_unix_realname(void); BOOL lp_nis_home_map(void); BOOL lp_bind_interfaces_only(void); BOOL lp_unix_password_sync(void); BOOL lp_passwd_chat_debug(void); BOOL lp_ole_locking_compat(void); BOOL lp_nt_smb_support(void); BOOL lp_nt_pipe_support(void); BOOL lp_stat_cache(void); int lp_os_level(void); int lp_max_ttl(void); int lp_max_wins_ttl(void); int lp_min_wins_ttl(void); int lp_max_log_size(void); int lp_max_open_files(void); int lp_maxxmit(void); int lp_maxmux(void); int lp_passwordlevel(void); int lp_usernamelevel(void); int lp_readsize(void); int lp_shmem_size(void); int lp_deadtime(void); int lp_maxprotocol(void); int lp_security(void); int lp_maxdisksize(void); int lp_lpqcachetime(void); int lp_syslog(void); int lp_client_code_page(void); int lp_lm_announce(void); int lp_lm_interval(void); int lp_machine_password_timeout(void); int lp_change_notify_timeout(void); int lp_stat_cache_size(void); int lp_map_to_guest(void); int lp_ldap_port(void); int lp_ldap_protocol_version(void); char *lp_logon_script(const user_struct* ); char *lp_logon_path(const user_struct* ); char *lp_logon_drive(const user_struct* ); char *lp_logon_home(const user_struct* ); char *lp_preexec(int ); char *lp_postexec(int ); char *lp_rootpreexec(int ); char *lp_rootpostexec(int ); char *lp_servicename(int ); char *lp_pathname(int ); char *lp_dontdescend(int ); char *lp_username(int ); char *lp_guestaccount(int ); char *lp_invalid_users(int ); char *lp_valid_users(int ); char *lp_admin_users(int ); char *lp_printcommand(int ); char *lp_lpqcommand(int ); char *lp_lprmcommand(int ); char *lp_lppausecommand(int ); char *lp_lpresumecommand(int ); char *lp_queuepausecommand(int ); char *lp_queueresumecommand(int ); char *lp_printername(int ); char *lp_printerdriver(int ); char *lp_hostsallow(int ); char *lp_hostsdeny(int ); char *lp_magicscript(int ); char *lp_magicoutput(int ); char *lp_comment(int ); char *lp_force_user(int ); char *lp_force_group(int ); char *lp_readlist(int ); char *lp_writelist(int ); char *lp_fstype(int ); char *lp_vfsobj(int ); char *lp_mangled_map(int ); char *lp_veto_files(int ); char *lp_hide_files(int ); char *lp_veto_oplocks(int ); char *lp_driverlocation(int ); BOOL lp_revalidate(int ); BOOL lp_casesensitive(int ); BOOL lp_preservecase(int ); BOOL lp_shortpreservecase(int ); BOOL lp_casemangle(int ); BOOL lp_status(int ); BOOL lp_hide_dot_files(int ); BOOL lp_browseable(int ); BOOL lp_readonly(int ); BOOL lp_no_set_dir(int ); BOOL lp_guest_ok(int ); BOOL lp_guest_only(int ); BOOL lp_print_ok(int ); BOOL lp_postscript(int ); BOOL lp_map_hidden(int ); BOOL lp_map_archive(int ); BOOL lp_locking(int ); BOOL lp_strict_locking(int ); BOOL lp_share_modes(int ); BOOL lp_oplocks(int ); BOOL lp_onlyuser(int ); BOOL lp_manglednames(int ); BOOL lp_widelinks(int ); BOOL lp_symlinks(int ); BOOL lp_syncalways(int ); BOOL lp_strict_sync(int ); BOOL lp_map_system(int ); BOOL lp_delete_readonly(int ); BOOL lp_fake_oplocks(int ); BOOL lp_recursive_veto_delete(int ); BOOL lp_dos_filetimes(int ); BOOL lp_dos_filetime_resolution(int ); BOOL lp_fake_dir_create_times(int ); BOOL lp_blocking_locks(int ); int lp_create_mode(int ); int lp_force_create_mode(int ); int lp_dir_mode(int ); int lp_force_dir_mode(int ); int lp_max_connections(int ); int lp_defaultcase(int ); int lp_minprintspace(int ); int lp_printing(int ); char lp_magicchar(int ); char *lp_mysql_host(void); char *lp_mysql_user(void); char *lp_mysql_passfile(void); char *lp_mysql_db(void); char *lp_mysql_table(void); BOOL lp_add_home(char *pszHomename, int iDefaultService, char *pszHomedir); int lp_add_service(char *pszService, int iDefaultService); BOOL lp_add_printer(char *pszPrintername, int iDefaultService); BOOL lp_file_list_changed(void); void *lp_local_ptr(int snum, void *ptr); BOOL lp_do_parameter(int snum, char *pszParmName, char *pszParmValue); BOOL lp_is_default(int snum, struct parm_struct *parm); struct parm_struct *lp_next_parameter(int snum, int *i, int allparameters); BOOL lp_snum_ok(int iService); void lp_add_one_printer(char *name,char *comment); BOOL lp_loaded(void); void lp_killunused(BOOL (*snumused)(int )); BOOL lp_load(char *pszFname,BOOL global_only, BOOL save_defaults, BOOL add_ipc); int lp_numservices(void); void lp_dump(FILE *f, BOOL show_defaults); int lp_servicenumber(char *pszServiceName); char *volume_label(int snum); void lp_remove_service(int snum); void lp_copy_service(int snum, char *new_name); int lp_default_server_announce(void); int lp_major_announce_version(void); int lp_minor_announce_version(void); void lp_set_name_resolve_order(char *new_order); void lp_set_kernel_oplocks(BOOL val); BOOL lp_kernel_oplocks(void); int lp_server_role(void); BOOL lp_domain_master(void); BOOL lp_preferred_master(void); /*The following definitions come from param/params.c */ BOOL pm_process( char *FileName, BOOL (*sfunc)(char *), BOOL (*pfunc)(char *, char *) ); /*The following definitions come from rpc_client/cli_connect.c */ void init_connections(void); void free_connections(void); void cli_connection_free(struct cli_connection *con); void cli_connection_unlink(struct cli_connection *con); BOOL cli_connection_init(const char *srv_name, const char *pipe_name, struct cli_connection **con); BOOL cli_connection_init_auth(const char *srv_name, const char *pipe_name, struct cli_connection **con, cli_auth_fns * auth, void *auth_creds); BOOL cli_connection_getsrv(const char *srv_name, const char *pipe_name, struct cli_connection **con); BOOL cli_connection_get(const POLICY_HND * pol, struct cli_connection **con); BOOL cli_pol_link(POLICY_HND * to, const POLICY_HND * from); BOOL cli_get_usr_sesskey(const POLICY_HND * pol, uchar usr_sess_key[16]); BOOL cli_set_con_usr_sesskey(struct cli_connection *con, const uchar usr_sess_key[16]); const vuser_key *cli_con_sec_ctx(struct cli_connection *con); struct cli_auth_fns *cli_conn_get_authfns(struct cli_connection *con); void *cli_conn_get_auth_creds(struct cli_connection *con); void *cli_conn_get_auth_info(struct cli_connection *con); BOOL cli_conn_set_auth_info(struct cli_connection *con, void *auth_info); struct ntdom_info *cli_conn_get_ntinfo(struct cli_connection *con); BOOL cli_get_con_sesskey(struct cli_connection *con, uchar sess_key[16]); BOOL cli_con_get_srvname(struct cli_connection *con, char *srv_name); BOOL cli_get_sesskey(const POLICY_HND * pol, uchar sess_key[16]); BOOL cli_get_sesskey_srv(const char *srv_name, uchar sess_key[16]); void cli_con_gen_next_creds(struct cli_connection *con, DOM_CRED * new_clnt_cred); void cli_con_get_cli_cred(struct cli_connection *con, DOM_CRED * clnt_cred); BOOL cli_con_deal_with_creds(struct cli_connection *con, DOM_CRED * rcv_srv_cred); BOOL cli_con_set_creds(const char *srv_name, const uchar sess_key[16], DOM_CRED * cred); BOOL rpc_hnd_pipe_req(const POLICY_HND * hnd, uint8 op_num, prs_struct * data, prs_struct * rdata); BOOL rpc_con_pipe_req(struct cli_connection *con, uint8 op_num, prs_struct * data, prs_struct * rdata); BOOL rpc_api_write(struct cli_connection *con, prs_struct * data); BOOL rpc_api_rcv_pdu(struct cli_connection *con, prs_struct * rdata); BOOL rpc_api_send_rcv_pdu(struct cli_connection *con, prs_struct * data, prs_struct * rdata); BOOL set_policy_con(struct policy_cache *cache, POLICY_HND * hnd, struct cli_connection *con, void (*free_fn) (struct cli_connection *)); BOOL get_policy_con(struct policy_cache *cache, const POLICY_HND * hnd, struct cli_connection **con); /*The following definitions come from rpc_client/cli_lsarpc.c */ BOOL get_domain_sids(const char *domain, DOM_SID * sid3, DOM_SID * sid5); BOOL get_trust_sid_and_domain(const char *myname, char *server, DOM_SID * sid, char *domain, size_t len); BOOL lsa_open_policy(const char *system_name, POLICY_HND *hnd, BOOL sec_qos, uint32 des_access); BOOL lsa_open_policy2(const char *system_name, POLICY_HND *hnd, BOOL sec_qos, uint32 des_access); BOOL lsa_create_secret(const POLICY_HND *hnd, const char *secret_name, uint32 des_access, POLICY_HND *hnd_secret); BOOL lsa_open_secret(const POLICY_HND *hnd, const char *secret_name, uint32 des_access, POLICY_HND *hnd_secret); uint32 lsa_set_secret(POLICY_HND *hnd, const STRING2 * secret); BOOL lsa_query_secret(POLICY_HND *hnd, STRING2 * secret, NTTIME * last_update); BOOL lsa_lookup_names(POLICY_HND *hnd, int num_names, char **names, DOM_SID ** sids, uint32 ** types, int *num_sids); BOOL lsa_lookup_sids(POLICY_HND *hnd, int num_sids, DOM_SID ** sids, char ***names, uint32 ** types, int *num_names); BOOL lsa_query_sec_obj(const POLICY_HND *hnd, uint32 sec_info, SEC_DESC_BUF *sec_buf); BOOL lsa_query_info_pol(POLICY_HND *hnd, uint16 info_class, fstring domain_name, DOM_SID * domain_sid); BOOL lsa_enum_trust_dom(POLICY_HND *hnd, uint32 * enum_ctx, uint32 * num_doms, char ***names, DOM_SID *** sids); BOOL lsa_close(POLICY_HND *hnd); /*The following definitions come from rpc_client/cli_netlogon.c */ void gen_next_creds( struct ntdom_info *nt, DOM_CRED *new_clnt_cred); BOOL cli_net_logon_ctrl2(const char* srv_name, uint32 status_level); uint32 cli_net_auth2(const char *srv_name, const char *trust_acct, const char *acct_name, uint16 sec_chan, uint32 *neg_flags, DOM_CHAL *srv_chal); uint32 cli_net_req_chal( const char *srv_name, const char* myhostname, DOM_CHAL *clnt_chal, DOM_CHAL *srv_chal); BOOL cli_net_srv_pwset(const char* srv_name, const char* myhostname, const char* trust_acct, const uint8 hashed_trust_pwd[16], uint16 sec_chan_type); uint32 cli_net_sam_logon(const char* srv_name, const char* myhostname, NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3); BOOL cli_net_sam_logoff(const char* srv_name, const char* myhostname, NET_ID_INFO_CTR *ctr); BOOL cli_net_sam_sync( const char* srv_name, const char* myhostname, uint32 database_id, uint32 *num_deltas, SAM_DELTA_HDR *hdr_deltas, SAM_DELTA_CTR *deltas); /*The following definitions come from rpc_client/cli_pipe.c */ BOOL create_rpc_request(prs_struct * rhdr, uint16 vuid, uint8 op_num, uint8 flags, int data_len, int auth_len); BOOL rpc_api_pipe_req(struct cli_connection *con, uint8 opnum, prs_struct * data, prs_struct * rdata); BOOL cli_send_and_rcv_pdu_trans(struct cli_connection *con, struct cli_state *cli, uint16 fnum, prs_struct * data, prs_struct * rdata, int max_send_pdu); BOOL cli_send_and_rcv_pdu_rw(struct cli_connection *con, struct cli_state *cli, uint16 fnum, prs_struct * data, prs_struct * rdata, int max_send_pdu); BOOL cli_send_and_rcv_pdu(struct cli_connection *con, struct cli_state *cli, uint16 fnum, prs_struct * data, prs_struct * rdata, int max_send_pdu); BOOL cli_rcv_pdu(struct cli_connection *con, struct cli_state *cli, uint16 fnum, prs_struct *rdata); BOOL rpc_pipe_bind(struct cli_connection *con, const char *pipe_name, RPC_IFACE * abstract, RPC_IFACE * transfer); void cli_nt_set_ntlmssp_flgs(struct cli_state *cli, uint32 ntlmssp_flgs); BOOL cli_nt_session_open(struct cli_state *cli, const char *pipe_name, uint16 * fnum); void cli_nt_session_close(struct cli_state *cli, uint16 fnum); /*The following definitions come from rpc_client/cli_pipe_noauth.c */ /*The following definitions come from rpc_client/cli_pipe_ntlmssp.c */ /*The following definitions come from rpc_client/cli_samr.c */ BOOL samr_chgpasswd_user( struct cli_connection *con, const char *srv_name, const char *user_name, const char nt_newpass[516], const uchar nt_oldhash[16], const char lm_newpass[516], const uchar lm_oldhash[16]); BOOL samr_get_dom_pwinfo(struct cli_connection *con, const char *srv_name); BOOL samr_query_dom_info( POLICY_HND *domain_pol, uint16 switch_value, SAM_UNK_CTR *ctr); uint32 samr_enum_domains( POLICY_HND *pol, uint32 *start_idx, uint32 size, struct acct_info **sam, uint32 *num_sam_domains); uint32 samr_enum_dom_groups( POLICY_HND *pol, uint32 *start_idx, uint32 size, struct acct_info **sam, uint32 *num_sam_groups); uint32 samr_enum_dom_aliases( POLICY_HND *pol, uint32 *start_idx, uint32 size, struct acct_info **sam, uint32 *num_sam_aliases); uint32 samr_enum_dom_users( POLICY_HND *pol, uint32 *start_idx, uint16 acb_mask, uint16 unk_1, uint32 size, struct acct_info **sam, uint32 *num_sam_users); BOOL samr_connect( const char *srv_name, uint32 access_mask, POLICY_HND *connect_pol); BOOL samr_query_sec_obj( const POLICY_HND *pol, uint32 type, SEC_DESC_BUF *buf); BOOL samr_open_user( const POLICY_HND *pol, uint32 unk_0, uint32 rid, POLICY_HND *user_pol); BOOL samr_open_alias( const POLICY_HND *domain_pol, uint32 flags, uint32 rid, POLICY_HND *alias_pol); BOOL samr_del_aliasmem( POLICY_HND *alias_pol, DOM_SID *sid); BOOL samr_add_aliasmem( POLICY_HND *alias_pol, DOM_SID *sid); BOOL samr_delete_dom_alias( POLICY_HND *alias_pol); uint32 samr_create_dom_user( POLICY_HND *domain_pol, const char *acct_name, uint32 unk_0, uint32 unk_1, POLICY_HND *user_pol, uint32 *rid); BOOL samr_create_dom_alias( POLICY_HND *domain_pol, const char *acct_name, POLICY_HND *alias_pol, uint32 *rid); BOOL samr_query_aliasinfo( POLICY_HND *alias_pol, uint16 switch_value, ALIAS_INFO_CTR *ctr); BOOL samr_set_aliasinfo( POLICY_HND *alias_pol, ALIAS_INFO_CTR *ctr); BOOL samr_open_group( const POLICY_HND *domain_pol, uint32 flags, uint32 rid, POLICY_HND *group_pol); BOOL samr_del_groupmem( POLICY_HND *group_pol, uint32 rid); BOOL samr_add_groupmem( POLICY_HND *group_pol, uint32 rid); BOOL samr_delete_dom_user( POLICY_HND *user_pol); BOOL samr_delete_dom_group( POLICY_HND *group_pol); BOOL samr_create_dom_group( POLICY_HND *domain_pol, const char *acct_name, POLICY_HND *group_pol, uint32 *rid); BOOL samr_set_groupinfo( POLICY_HND *group_pol, GROUP_INFO_CTR *ctr); BOOL samr_unknown_2d( const POLICY_HND *domain_pol, const DOM_SID *sid); BOOL samr_open_domain( const POLICY_HND *connect_pol, uint32 ace_perms, const DOM_SID *sid, POLICY_HND *domain_pol); BOOL samr_query_lookup_domain( POLICY_HND *pol, const char *dom_name, DOM_SID *dom_sid); BOOL samr_query_lookup_names(const POLICY_HND *pol, uint32 flags, uint32 num_names, char **names, uint32 *num_rids, uint32 **rids, uint32 **types); BOOL samr_query_lookup_rids( const POLICY_HND *pol, uint32 flags, uint32 num_rids, const uint32 *rids, uint32 *num_names, char ***names, uint32 **type); BOOL samr_query_aliasmem( const POLICY_HND *alias_pol, uint32 *num_mem, DOM_SID2 *sid); BOOL samr_query_useraliases( const POLICY_HND *pol, uint32 *ptr_sid, DOM_SID2 *sid, uint32 *num_aliases, uint32 **rid); BOOL samr_query_groupmem( POLICY_HND *group_pol, uint32 *num_mem, uint32 **rid, uint32 **attr); BOOL samr_query_usergroups( POLICY_HND *pol, uint32 *num_groups, DOM_GID **gid); BOOL samr_query_groupinfo( POLICY_HND *pol, uint16 switch_value, GROUP_INFO_CTR* ctr); BOOL samr_set_userinfo2( POLICY_HND *pol, uint16 switch_value, void* usr); BOOL samr_set_userinfo( POLICY_HND *pol, uint16 switch_value, void* usr); BOOL samr_query_userinfo( POLICY_HND *pol, uint16 switch_value, SAM_USERINFO_CTR *ctr); BOOL samr_close( POLICY_HND *hnd); BOOL samr_query_dispinfo( POLICY_HND *pol_domain, uint16 level, uint32 *num_entries, SAM_DISPINFO_CTR *ctr); /*The following definitions come from rpc_client/cli_use.c */ void init_cli_use(void); void free_cli_use(void); struct cli_state *cli_net_use_add(const char *srv_name, const struct ntuser_creds *usr_creds, BOOL redir, BOOL reuse, BOOL *is_new); BOOL cli_net_use_del(const char *srv_name, const struct ntuser_creds *usr_creds, BOOL force_close, BOOL *connection_closed); void cli_net_use_enum(uint32 * num_cons, struct use_info ***use); void cli_use_wait_keyboard(void); /*The following definitions come from rpc_client/msrpc_samr.c */ uint32 lookup_sam_domainname(const char *srv_name, const char *domain, DOM_SID *sid); uint32 lookup_sam_names(const char *domain, const DOM_SID *sid, uint32 num_names, char **names, uint32 *num_rids, uint32 **rids, uint32 **types); uint32 lookup_sam_name(const char *domain, DOM_SID *sid, char *name, uint32 *rid, uint32 *type); uint32 lookup_sam_rid(const char *domain, DOM_SID *sid, uint32 rid, char *name, uint32 *type); BOOL req_user_info( const POLICY_HND *pol_dom, const char *domain, const DOM_SID *sid, uint32 user_rid, uint16 info_level, USER_INFO_FN(usr_inf)); uint32 sam_query_usergroups( const POLICY_HND *pol_dom, const char *domain, const DOM_SID *sid, uint32 user_rid, const char *user_name, uint32 *num_groups, DOM_GID **gid, char ***name, uint32 **type, USER_MEM_FN(usr_mem)); void msrpc_sam_user( const POLICY_HND *pol_dom, const POLICY_HND *pol_blt, const char* domain, const DOM_SID *sid1, const DOM_SID *blt_sid1, uint32 user_rid, uint16 info_level, char *user_name, USER_FN(usr_fn), USER_INFO_FN(usr_inf_fn), USER_MEM_FN(usr_grp_fn), USER_MEM_FN(usr_als_fn)); BOOL msrpc_sam_query_user( const char* srv_name, const char* domain, const DOM_SID *sid, char *user_name, USER_FN(usr_fn), USER_INFO_FN(usr_inf_fn), USER_MEM_FN(usr_grp_fn), USER_MEM_FN(usr_als_fn)); int msrpc_sam_enum_users( const char* srv_name, const char* domain, const DOM_SID *sid1, struct acct_info **sam, uint32 *num_sam_entries, USER_FN(usr_fn), USER_INFO_FN(usr_inf_fn), USER_MEM_FN(usr_grp_fn), USER_MEM_FN(usr_als_fn)); BOOL sam_query_dominfo(const char* srv_name, const DOM_SID *sid1, uint32 switch_value, SAM_UNK_CTR *ctr); BOOL query_aliasinfo( const POLICY_HND *pol_dom, const char *domain, const DOM_SID *sid, uint32 alias_rid, ALIAS_INFO_FN(grp_inf)); BOOL sam_query_aliasmem(const char *srv_name, const POLICY_HND *pol_dom, uint32 alias_rid, uint32 *num_names, DOM_SID ***sids, char ***name, uint32 **type); BOOL req_aliasmem_info(const char* srv_name, const POLICY_HND *pol_dom, const char *domain, const DOM_SID *sid, uint32 alias_rid, const char *alias_name, ALIAS_MEM_FN(als_mem)); BOOL sam_query_groupmem( const POLICY_HND *pol_dom, uint32 group_rid, uint32 *num_names, uint32 **rid_mem, char ***name, uint32 **type); BOOL query_groupinfo( const POLICY_HND *pol_dom, const char *domain, const DOM_SID *sid, uint32 group_rid, GROUP_INFO_FN(grp_inf)); BOOL req_groupmem_info( const POLICY_HND *pol_dom, const char *domain, const DOM_SID *sid, uint32 group_rid, const char *group_name, GROUP_MEM_FN(grp_mem)); uint32 msrpc_sam_get_first_domain( const char* srv_name, char *dom_name, DOM_SID *dom_sid); uint32 msrpc_sam_enum_domains( const char* srv_name, struct acct_info **sam, uint32 *num_sam_entries, DOMAIN_FN(dom_fn), DOMAIN_INFO_FN(dom_inf_fn)); uint32 msrpc_sam_enum_groups( const char* srv_name, const char* domain, const DOM_SID *sid1, struct acct_info **sam, uint32 *num_sam_entries, GROUP_FN(grp_fn), GROUP_INFO_FN(grp_inf_fn), GROUP_MEM_FN(grp_mem_fn)); uint32 msrpc_sam_enum_aliases( const char* srv_name, const char* domain, const DOM_SID *sid1, struct acct_info **sam, uint32 *num_sam_entries, ALIAS_FN(als_fn), ALIAS_INFO_FN(als_inf_fn), ALIAS_MEM_FN(als_mem_fn)); BOOL create_samr_domain_user( POLICY_HND *pol_dom, char *acct_name, uint16 acb_info, const char* password, int plen, uint32 *rid); BOOL create_samr_domain_alias( POLICY_HND *pol_open_domain, const char *acct_name, const char *acct_desc, uint32 *rid); BOOL create_samr_domain_group( POLICY_HND *pol_open_domain, const char *acct_name, const char *acct_desc, uint32 *rid); BOOL get_samr_query_usergroups( const POLICY_HND *pol_open_domain, uint32 user_rid, uint32 *num_groups, DOM_GID **gid); BOOL delete_samr_dom_group( POLICY_HND *pol_open_domain, uint32 group_rid); BOOL get_samr_query_groupmem( const POLICY_HND *pol_open_domain, uint32 group_rid, uint32 *num_mem, uint32 **rid, uint32 **attr); BOOL delete_samr_dom_alias( POLICY_HND *pol_open_domain, uint32 alias_rid); BOOL get_samr_query_aliasmem( const POLICY_HND *pol_open_domain, uint32 alias_rid, uint32 *num_mem, DOM_SID2 *sid); BOOL set_samr_set_userinfo2( POLICY_HND *pol_open_domain, uint32 info_level, uint32 user_rid, void *usr); BOOL set_samr_set_userinfo( const POLICY_HND *pol_open_domain, uint32 info_level, uint32 user_rid, void *usr); BOOL get_samr_query_userinfo( const POLICY_HND *pol_open_domain, uint32 info_level, uint32 user_rid, SAM_USERINFO_CTR *ctr); BOOL get_samr_query_groupinfo( const POLICY_HND *pol_open_domain, uint32 info_level, uint32 group_rid, GROUP_INFO_CTR *ctr); BOOL get_samr_query_aliasinfo( const POLICY_HND *pol_open_domain, uint32 info_level, uint32 alias_rid, ALIAS_INFO_CTR *ctr); BOOL msrpc_sam_create_dom_user(const char* srv_name, DOM_SID *sid1, char *acct_name, uint16 acb_info, const char *password, int plen, uint32 *rid); BOOL msrpc_sam_query_dispinfo(const char* srv_name, const char* domain, DOM_SID *sid1, uint16 switch_value, uint32 *num_entries, SAM_DISPINFO_CTR *ctr, DISP_FN(disp_fn)); BOOL msrpc_sam_ntchange_pwd(const char* srv_name, const char* domain, const char *ntuser, const uchar lm_oldhash[16], const uchar nt_oldhash[16], const char* new_passwd); BOOL msrpc_sam_ntpasswd_set(const char* srv_name, const char *user, struct ntuser_creds *samr_creds, const uchar lm_newpass[516], const uchar lm_hshhash[16], const uchar nt_newpass[516], const uchar nt_hshhash[16]); BOOL msrpc_sam_query_userinfo(const char* srv_name, const DOM_SID *sid, const char *user_name, uint16 info_level, SAM_USERINFO_CTR *ctr); /*The following definitions come from rpc_client/ncacn_np_use.c */ BOOL ncacn_np_establish_connection(struct ncacn_np *cli, const char *srv_name, const struct ntuser_creds *ntc, const char *pipe_name, BOOL redir, BOOL reuse); void init_ncacn_np_use(void); void free_ncacn_np_use(void); struct ncacn_np *ncacn_np_initialise(struct ncacn_np *msrpc, const vuser_key * key); struct ncacn_np *ncacn_np_use_add(const char *pipe_name, const vuser_key * key, const char *srv_name, const struct ntuser_creds *ntc, BOOL redir, BOOL reuse, BOOL *is_new_connection); BOOL ncacn_np_use_del(const char *pipe_name, const vuser_key * key, BOOL force_close, BOOL *connection_closed); void ncacn_np_use_enum(uint32 * num_cons, struct use_info ***use); /*The following definitions come from rpc_client/ncalrpc_l_use.c */ void init_ncalrpc_use(void); void free_ncalrpc_use(void); struct msrpc_local *ncalrpc_l_use_add(const char *pipe_name, const vuser_key * key, BOOL redir, BOOL reuse, BOOL *is_new); BOOL ncalrpc_l_use_del(const char *pipe_name, const vuser_key * key, BOOL force_close, BOOL *connection_closed); void ncalrpc_l_use_enum(uint32 * num_cons, struct use_info ***use); void ncalrpc_use_wait_keyboard(void); /*The following definitions come from rpc_parse/parse_creds.c */ BOOL make_creds_unix(CREDS_UNIX *r_u, const char* user_name, const char* requested_name, const char* real_name, BOOL guest); BOOL creds_io_unix(char *desc, CREDS_UNIX *r_u, prs_struct *ps, int depth); void creds_free_unix(CREDS_UNIX *r_u); BOOL make_creds_unix_sec(CREDS_UNIX_SEC *r_u, uint32 uid, uint32 gid, uint32 num_grps, gid_t *grps); BOOL creds_io_unix_sec(char *desc, CREDS_UNIX_SEC *r_u, prs_struct *ps, int depth); void creds_free_unix_sec(CREDS_UNIX_SEC *r_u); BOOL creds_io_pwd_info(char *desc, struct pwd_info *pwd, prs_struct *ps, int depth); BOOL creds_io_nt(char *desc, CREDS_NT *r_u, prs_struct *ps, int depth); void creds_free_nt(CREDS_NT *r_u); BOOL creds_io_hybrid(char *desc, CREDS_HYBRID *r_u, prs_struct *ps, int depth); void copy_unix_creds(CREDS_UNIX *to, const CREDS_UNIX *from); void copy_unix_sec_creds(CREDS_UNIX_SEC *to, const CREDS_UNIX_SEC *from); void copy_nt_creds(struct ntuser_creds *to, const struct ntuser_creds *from); void copy_user_creds(struct user_creds *to, const struct user_creds *from); void free_user_creds(struct user_creds *creds); BOOL creds_io_cmd(char *desc, CREDS_CMD *r_u, prs_struct *ps, int depth); BOOL create_ntuser_creds( prs_struct *ps, const char* name, uint16 version, uint16 command, const vuser_key *key, const struct ntuser_creds *ntu, BOOL reuse); BOOL create_user_creds( prs_struct *ps, const char* name, uint16 version, uint16 command, const vuser_key *key, const struct user_creds *usr); /*The following definitions come from rpc_parse/parse_lsa.c */ BOOL make_lsa_trans_name(LSA_TRANS_NAME * trn, UNISTR2 * uni_name, uint32 sid_name_use, char *name, uint32 idx); int make_dom_ref_uni(DOM_R_REF * ref, const UNISTR2 * uni_domname, const DOM_SID * dom_sid); int make_dom_ref(DOM_R_REF * ref, const char *domname, const DOM_SID * dom_sid); BOOL make_lsa_sec_qos(LSA_SEC_QOS * qos, uint16 imp_lev, uint8 ctxt, uint8 eff, uint32 unknown); BOOL make_lsa_obj_attr(LSA_OBJ_ATTR * attr, uint32 attributes, LSA_SEC_QOS * qos); BOOL make_q_open_pol(LSA_Q_OPEN_POL * r_q, uint16 system_name, uint32 attributes, uint32 desired_access, LSA_SEC_QOS * qos); BOOL lsa_io_q_open_pol(char *desc, LSA_Q_OPEN_POL * r_q, prs_struct * ps, int depth); BOOL lsa_io_r_open_pol(char *desc, LSA_R_OPEN_POL * r_p, prs_struct * ps, int depth); BOOL make_q_open_pol2(LSA_Q_OPEN_POL2 * r_q, const char *server_name, uint32 attributes, uint32 desired_access, LSA_SEC_QOS * qos); BOOL lsa_io_q_open_pol2(char *desc, LSA_Q_OPEN_POL2 * r_q, prs_struct * ps, int depth); BOOL lsa_io_r_open_pol2(char *desc, LSA_R_OPEN_POL2 * r_p, prs_struct * ps, int depth); BOOL make_q_query_sec_obj(LSA_Q_QUERY_SEC_OBJ * q_q, const POLICY_HND *hnd, uint32 sec_info); BOOL lsa_io_q_query_sec_obj(char *desc, LSA_Q_QUERY_SEC_OBJ * q_q, prs_struct * ps, int depth); BOOL lsa_io_r_query_sec_obj(char *desc, LSA_R_QUERY_SEC_OBJ *r_u, prs_struct *ps, int depth); BOOL make_q_query(LSA_Q_QUERY_INFO * q_q, POLICY_HND *hnd, uint16 info_class); BOOL lsa_io_q_query(char *desc, LSA_Q_QUERY_INFO * q_q, prs_struct * ps, int depth); BOOL make_q_create_secret(LSA_Q_CREATE_SECRET * q_o, const POLICY_HND *pol_hnd, const char *secret_name, uint32 desired_access); BOOL lsa_io_q_create_secret(char *desc, LSA_Q_CREATE_SECRET * q_o, prs_struct * ps, int depth); BOOL lsa_io_r_create_secret(char *desc, LSA_R_CREATE_SECRET * r_o, prs_struct * ps, int depth); BOOL make_q_open_secret(LSA_Q_OPEN_SECRET * q_o, const POLICY_HND *pol_hnd, const char *secret_name, uint32 desired_access); BOOL lsa_io_q_open_secret(char *desc, LSA_Q_OPEN_SECRET * q_o, prs_struct * ps, int depth); BOOL lsa_io_r_open_secret(char *desc, LSA_R_OPEN_SECRET * r_o, prs_struct * ps, int depth); BOOL lsa_io_secret_value(char *desc, LSA_SECRET_VALUE * value, prs_struct * ps, int depth); BOOL lsa_io_secret_info(char *desc, LSA_SECRET_INFO * info, prs_struct * ps, int depth); BOOL lsa_io_secret(char *desc, LSA_SECRET * q_q, prs_struct * ps, int depth); BOOL make_q_query_secret(LSA_Q_QUERY_SECRET * q_q, POLICY_HND *pol, const STRING2 *secret, const NTTIME * update); BOOL lsa_io_q_query_secret(char *desc, LSA_Q_QUERY_SECRET * q_q, prs_struct * ps, int depth); BOOL lsa_io_r_query_secret(char *desc, LSA_R_QUERY_SECRET * r_q, prs_struct * ps, int depth); BOOL lsa_io_q_set_secret(char *desc, LSA_Q_SET_SECRET * q_q, prs_struct * ps, int depth); BOOL lsa_io_r_set_secret(char *desc, LSA_R_SET_SECRET * r_q, prs_struct * ps, int depth); BOOL make_q_enum_trust_dom(LSA_Q_ENUM_TRUST_DOM * q_e, POLICY_HND *pol, uint32 enum_context, uint32 preferred_len); BOOL lsa_io_q_enum_trust_dom(char *desc, LSA_Q_ENUM_TRUST_DOM * q_e, prs_struct * ps, int depth); BOOL make_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM * r_e, int32 enum_context, uint32 num_domains, UNISTR2 * domain_names, DOM_SID ** domain_sids, uint32 status); BOOL lsa_io_r_enum_trust_dom(char *desc, LSA_R_ENUM_TRUST_DOM * r_e, prs_struct * ps, int depth); void lsa_free_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM * r_e); BOOL lsa_io_r_query(char *desc, LSA_R_QUERY_INFO * r_q, prs_struct * ps, int depth); BOOL make_lsa_sid_enum(LSA_SID_ENUM * sen, uint32 num_entries, DOM_SID ** sids); BOOL make_q_lookup_sids(LSA_Q_LOOKUP_SIDS * q_l, POLICY_HND *hnd, int num_sids, DOM_SID ** sids, uint16 level); BOOL lsa_io_q_lookup_sids(char *desc, LSA_Q_LOOKUP_SIDS * q_s, prs_struct * ps, int depth); BOOL lsa_io_r_lookup_sids(char *desc, LSA_R_LOOKUP_SIDS * r_s, prs_struct * ps, int depth); BOOL make_q_lookup_names(LSA_Q_LOOKUP_NAMES * q_l, POLICY_HND *hnd, uint32 num_names, char **names); BOOL lsa_io_q_lookup_names(char *desc, LSA_Q_LOOKUP_NAMES * q_r, prs_struct * ps, int depth); BOOL lsa_io_r_lookup_names(char *desc, LSA_R_LOOKUP_NAMES * r_r, prs_struct * ps, int depth); BOOL make_lsa_q_close(LSA_Q_CLOSE * q_c, POLICY_HND *hnd); BOOL lsa_io_q_close(char *desc, LSA_Q_CLOSE * q_c, prs_struct * ps, int depth); BOOL lsa_io_r_close(char *desc, LSA_R_CLOSE * r_c, prs_struct * ps, int depth); /*The following definitions come from rpc_parse/parse_net.c */ BOOL make_q_logon_ctrl2(NET_Q_LOGON_CTRL2 *q_l, const char* srv_name, uint32 function_code, uint32 query_level, uint32 switch_value); BOOL net_io_q_logon_ctrl2(char *desc, NET_Q_LOGON_CTRL2 *q_l, prs_struct *ps, int depth); BOOL make_r_logon_ctrl2(NET_R_LOGON_CTRL2 *r_l, uint32 switch_value, NETLOGON_INFO *logon_info, uint32 status); BOOL net_io_r_logon_ctrl2(char *desc, NET_R_LOGON_CTRL2 *r_l, prs_struct *ps, int depth); BOOL net_io_r_trust_dom(char *desc, NET_R_TRUST_DOM_LIST *r_t, prs_struct *ps, int depth); BOOL net_io_q_trust_dom(char *desc, NET_Q_TRUST_DOM_LIST *q_l, prs_struct *ps, int depth); BOOL make_q_req_chal(NET_Q_REQ_CHAL *q_c, const char *logon_srv, const char *logon_clnt, DOM_CHAL *clnt_chal); BOOL net_io_q_req_chal(char *desc, NET_Q_REQ_CHAL *q_c, prs_struct *ps, int depth); BOOL net_io_r_req_chal(char *desc, NET_R_REQ_CHAL *r_c, prs_struct *ps, int depth); BOOL make_q_auth(NET_Q_AUTH *q_a, const char *logon_srv, const char *acct_name, uint16 sec_chan, const char *comp_name, DOM_CHAL *clnt_chal); BOOL net_io_q_auth(char *desc, NET_Q_AUTH *q_a, prs_struct *ps, int depth); BOOL net_io_r_auth(char *desc, NET_R_AUTH *r_a, prs_struct *ps, int depth); BOOL make_q_auth_2(NET_Q_AUTH_2 *q_a, const char *logon_srv, const char *acct_name, uint16 sec_chan, const char *comp_name, DOM_CHAL *clnt_chal, uint32 clnt_flgs); BOOL net_io_q_auth_2(char *desc, NET_Q_AUTH_2 *q_a, prs_struct *ps, int depth); BOOL net_io_r_auth_2(char *desc, NET_R_AUTH_2 *r_a, prs_struct *ps, int depth); BOOL make_q_srv_pwset(NET_Q_SRV_PWSET *q_s, const char *logon_srv, const char *acct_name, uint16 sec_chan, const char *comp_name, DOM_CRED *cred, char nt_cypher[16]); BOOL net_io_q_srv_pwset(char *desc, NET_Q_SRV_PWSET *q_s, prs_struct *ps, int depth); BOOL net_io_r_srv_pwset(char *desc, NET_R_SRV_PWSET *r_s, prs_struct *ps, int depth); BOOL make_id_info1(NET_ID_INFO_1 *id, const char *domain_name, uint32 param_ctrl, uint32 log_id_low, uint32 log_id_high, const char *user_name, const char *wksta_name, const char sess_key[16], const uchar lm_cypher[16], const uchar nt_cypher[16]); BOOL make_id_info4(NET_ID_INFO_4 *id, const char *domain_name, uint32 param_ctrl, uint32 log_id_low, uint32 log_id_high, const char *user_name, const char *wksta_name, const char *general); BOOL make_id_info2(NET_ID_INFO_2 *id, const char *domain_name, uint32 param_ctrl, uint32 log_id_low, uint32 log_id_high, const char *user_name, const char *wksta_name, const uchar lm_challenge[8], const uchar *lm_chal_resp, int lm_chal_len, const uchar *nt_chal_resp, int nt_chal_len); BOOL make_sam_info(DOM_SAM_INFO *sam, const char *logon_srv, const char *comp_name, DOM_CRED *clnt_cred, DOM_CRED *rtn_cred, uint16 logon_level, NET_ID_INFO_CTR *ctr); BOOL make_net_user_info3W(NET_USER_INFO_3 *usr, const NTTIME *logon_time, const NTTIME *logoff_time, const NTTIME *kickoff_time, const NTTIME *pass_last_set_time, const NTTIME *pass_can_change_time, const NTTIME *pass_must_change_time, const UNISTR2 *user_name, const UNISTR2 *full_name, const UNISTR2 *log_scr, const UNISTR2 *prof_path, const UNISTR2 *home_dir, const UNISTR2 *dir_drive, uint16 logon_count, uint16 bad_pw_count, uint32 user_id, uint32 group_id, uint32 num_groups, const DOM_GID *gids, uint32 user_flgs, const char sess_key[16], const UNISTR2 *logon_srv, const UNISTR2 *logon_dom, const char *padding, const DOM_SID *dom_sid, const char *other_sids); BOOL make_net_user_info3(NET_USER_INFO_3 *usr, NTTIME *logon_time, NTTIME *logoff_time, NTTIME *kickoff_time, NTTIME *pass_last_set_time, NTTIME *pass_can_change_time, NTTIME *pass_must_change_time, char *user_name, char *full_name, char *logon_script, char *profile_path, char *home_dir, char *dir_drive, uint16 logon_count, uint16 bad_pw_count, uint32 user_id, uint32 group_id, uint32 num_groups, DOM_GID *gids, uint32 user_flgs, char sess_key[16], char *logon_srv, char *logon_dom, char *padding, DOM_SID *dom_sid, char *other_sids); BOOL net_io_user_info3(char *desc, NET_USER_INFO_3 *usr, prs_struct *ps, int depth); BOOL net_io_q_sam_logon(char *desc, NET_Q_SAM_LOGON *q_l, prs_struct *ps, int depth); BOOL make_r_sam_logon(NET_R_SAM_LOGON *r_s, const DOM_CRED *srv_creds, uint16 switch_value, NET_USER_INFO_3 *user_info, uint32 status); BOOL net_io_r_sam_logon(char *desc, NET_R_SAM_LOGON *r_l, prs_struct *ps, int depth); BOOL net_io_q_sam_logoff(char *desc, NET_Q_SAM_LOGOFF *q_l, prs_struct *ps, int depth); BOOL make_r_sam_logoff(NET_R_SAM_LOGOFF *r_s, const DOM_CRED *srv_cred, uint32 status); BOOL net_io_r_sam_logoff(char *desc, NET_R_SAM_LOGOFF *r_l, prs_struct *ps, int depth); BOOL make_q_sam_sync(NET_Q_SAM_SYNC *q_s, const char *srv_name, const char *cli_name, DOM_CRED *cli_creds, uint32 database_id); BOOL net_io_q_sam_sync(char *desc, NET_Q_SAM_SYNC *q_s, prs_struct *ps, int depth); BOOL make_sam_delta_hdr(SAM_DELTA_HDR *delta, uint16 type, uint32 rid); BOOL make_sam_account_info(SAM_ACCOUNT_INFO *info, const UNISTR2 *user_name, const UNISTR2 *full_name, uint32 user_rid, uint32 group_rid, const UNISTR2 *home_dir, const UNISTR2 *dir_drive, const UNISTR2 *log_scr, const UNISTR2 *desc, uint32 acb_info, const UNISTR2 *prof_path, const UNISTR2 *wkstas, const UNISTR2 *unk_str, const UNISTR2 *mung_dial); BOOL make_r_sam_sync(NET_R_SAM_SYNC *r_s, const DOM_CRED *srv_cred, uint32 sync_context, uint32 num_deltas, uint32 num_deltas2, SAM_DELTA_HDR *hdr_deltas, SAM_DELTA_CTR *deltas, uint32 status); BOOL net_io_r_sam_sync(char *desc, uint8 sess_key[16], NET_R_SAM_SYNC *r_s, prs_struct *ps, int depth); /*The following definitions come from rpc_parse/parse_ntlmssp.c */ BOOL rpc_hdr_ntlmssp_auth_chk(RPC_HDR_AUTH *rai); BOOL make_rpc_auth_ntlmssp_neg(RPC_AUTH_NTLMSSP_NEG *neg, uint32 neg_flgs, fstring myname, fstring domain); BOOL smb_io_rpc_auth_ntlmssp_neg(char *desc, RPC_AUTH_NTLMSSP_NEG *neg, prs_struct *ps, int depth); BOOL make_rpc_auth_ntlmssp_chal(RPC_AUTH_NTLMSSP_CHAL *chl, uint32 neg_flags, uint8 challenge[8]); BOOL smb_io_rpc_auth_ntlmssp_chal(char *desc, RPC_AUTH_NTLMSSP_CHAL *chl, prs_struct *ps, int depth); BOOL make_rpc_auth_ntlmssp_resp(RPC_AUTH_NTLMSSP_RESP *rsp, uchar lm_resp[24], uchar *nt_resp, size_t nt_len, char *domain, char *user, char *wks, uint32 neg_flags); BOOL smb_io_rpc_auth_ntlmssp_resp(char *desc, RPC_AUTH_NTLMSSP_RESP *rsp, prs_struct *ps, int depth); BOOL rpc_auth_ntlmssp_chk(RPC_AUTH_NTLMSSP_CHK *chk, uint32 crc32, uint32 seq_num); BOOL make_rpc_auth_ntlmssp_chk(RPC_AUTH_NTLMSSP_CHK *chk, uint32 ver, uint32 crc32, uint32 seq_num); BOOL smb_io_rpc_auth_ntlmssp_chk(char *desc, RPC_AUTH_NTLMSSP_CHK *chk, prs_struct *ps, int depth); /*The following definitions come from rpc_parse/parse_prs.c */ void prs_debug(prs_struct * ps, int depth, const char *desc, const char *fn_name); void prs_debug_out(const prs_struct * ps, char *msg, int level); void prs_init(prs_struct * ps, uint32 size, uint8 align, BOOL io); void prs_set_packtype(prs_struct * ps, const uint8 * pack_type); void prs_create(prs_struct * ps, char *data, uint32 size, uint8 align, BOOL io); BOOL prs_copy(prs_struct * ps, const prs_struct * from); BOOL prs_alloc_data(prs_struct * buf, int size); BOOL prs_buf_copy(char *copy_into, const prs_struct * buf, uint32 offset, uint32 len); void prs_struct_free(prs_struct ** buf); void prs_free_data(prs_struct * buf); BOOL prs_realloc_data(prs_struct * buf, size_t new_size); BOOL prs_grow_data(prs_struct * buf, BOOL io, int new_size, BOOL force_grow); uint32 prs_buf_len(const prs_struct * buf); char *prs_data(const prs_struct * buf, uint32 offset); void prs_link(prs_struct * prev, prs_struct * ps, prs_struct * next); void prs_align(prs_struct * ps); BOOL prs_grow(prs_struct * ps, uint32 new_size); BOOL prs_append_data(prs_struct * ps, const char *data, int len); BOOL prs_add_data(prs_struct * ps, const char *data, int len); BOOL _prs_uint8(char *name, prs_struct * ps, int depth, uint8 * data8); BOOL _prs_uint16(char *name, prs_struct * ps, int depth, uint16 * data16); BOOL _prs_hash1(prs_struct * ps, uint32 offset, uint8 sess_key[16]); BOOL _prs_uint32(char *name, prs_struct * ps, int depth, uint32 * data32); BOOL _prs_uint8s(BOOL charmode, char *name, prs_struct * ps, int depth, uint8 * data8s, int len); BOOL _prs_uint16s(BOOL charmode, char *name, prs_struct * ps, int depth, uint16 * data16s, int len); BOOL _prs_uint32s(BOOL charmode, char *name, prs_struct * ps, int depth, uint32 * data32s, int len); BOOL _prs_buffer2(BOOL charmode, char *name, prs_struct * ps, int depth, BUFFER2 * str); BOOL _prs_string2(BOOL charmode, char *name, prs_struct * ps, int depth, STRING2 * str); BOOL _prs_unistr2(BOOL charmode, char *name, prs_struct * ps, int depth, UNISTR2 * str); BOOL _prs_unistr3(BOOL charmode, char *name, UNISTR3 * str, prs_struct * ps, int depth); BOOL _prs_unistr(char *name, prs_struct * ps, int depth, UNISTR * str); BOOL _prs_string(char *name, prs_struct * ps, int depth, char *str, uint16 len, uint16 max_buf_size); BOOL _prs_uint16_pre(char *name, prs_struct * ps, int depth, uint16 * data16, uint32 * offset); BOOL _prs_uint16_post(char *name, prs_struct * ps, int depth, uint16 * data16, uint32 ptr_uint16, uint32 start_offset); BOOL _prs_uint32_pre(char *name, prs_struct * ps, int depth, uint32 * data32, uint32 * offset); BOOL _prs_uint32_post(char *name, prs_struct * ps, int depth, uint32 * data32, uint32 ptr_uint32, uint32 data_size); int prs_tdb_delete(TDB_CONTEXT * tdb, prs_struct * pk); int prs_tdb_store(TDB_CONTEXT * tdb, int flgs, prs_struct * pk, prs_struct * pd); void prs_tdb_fetch(TDB_CONTEXT * tdb, prs_struct * pk, prs_struct * pd); /*The following definitions come from rpc_parse/parse_rpc.c */ BOOL make_rpc_hdr(RPC_HDR * hdr, enum RPC_PKT_TYPE pkt_type, uint8 flags, uint32 call_id, int frag_len, int auth_len); BOOL smb_io_rpc_hdr(char *desc, RPC_HDR * rpc, prs_struct * ps, int depth); BOOL is_complete_pdu(prs_struct * ps); BOOL smb_io_rpc_hdr_nack(char *desc, RPC_HDR_NACK * rpc, prs_struct * ps, int depth); BOOL smb_io_rpc_hdr_fault(char *desc, RPC_HDR_FAULT * rpc, prs_struct * ps, int depth); BOOL smb_io_rpc_uuid(char *desc, RPC_UUID * uuid, prs_struct * ps, int depth); BOOL make_rpc_hdr_rb(RPC_HDR_RB * rpc, uint16 max_tsize, uint16 max_rsize, uint32 assoc_gid, uint8 num_elements, uint16 context_id, uint8 num_syntaxes, RPC_IFACE * abstract, RPC_IFACE * transfer); BOOL smb_io_rpc_hdr_rb(char *desc, RPC_HDR_RB * rpc, prs_struct * ps, int depth); BOOL make_rpc_hdr_ba(RPC_HDR_BA * rpc, uint16 max_tsize, uint16 max_rsize, uint32 assoc_gid, const char *pipe_addr, uint8 num_results, uint16 result, uint16 reason, RPC_IFACE * transfer); BOOL smb_io_rpc_hdr_ba(char *desc, RPC_HDR_BA * rpc, prs_struct * ps, int depth); BOOL make_rpc_hdr_req(RPC_HDR_REQ * hdr, uint32 alloc_hint, uint16 vuid, uint16 opnum); BOOL smb_io_rpc_hdr_req(char *desc, RPC_HDR_REQ * rpc, prs_struct * ps, int depth); BOOL smb_io_rpc_hdr_resp(char *desc, RPC_HDR_RESP * rpc, prs_struct * ps, int depth); BOOL make_rpc_hdr_autha(RPC_HDR_AUTHA * rai, uint16 max_tsize, uint16 max_rsize, uint8 auth_type, uint8 auth_level, uint8 stub_type_len); BOOL smb_io_rpc_hdr_autha(char *desc, RPC_HDR_AUTHA * rai, prs_struct * ps, int depth); BOOL make_rpc_hdr_auth(RPC_HDR_AUTH * rai, uint8 auth_type, uint8 auth_level, uint8 stub_type_len, uint32 ptr); BOOL smb_io_rpc_hdr_auth(char *desc, RPC_HDR_AUTH * rai, prs_struct * ps, int depth); BOOL make_rpc_auth_verifier(RPC_AUTH_VERIFIER * rav, char *signature, uint32 msg_type); BOOL smb_io_rpc_auth_verifier(char *desc, RPC_AUTH_VERIFIER * rav, prs_struct * ps, int depth); BOOL rpc_auth_verifier_chk(RPC_AUTH_VERIFIER * rav, char *signature, uint32 msg_type); /*The following definitions come from rpc_parse/parse_samr.c */ BOOL make_samr_q_close_hnd(SAMR_Q_CLOSE_HND *q_c, POLICY_HND *hnd); BOOL samr_io_q_close_hnd(char *desc, SAMR_Q_CLOSE_HND *q_u, prs_struct *ps, int depth); BOOL samr_io_r_close_hnd(char *desc, SAMR_R_CLOSE_HND *r_u, prs_struct *ps, int depth); BOOL make_samr_q_lookup_domain(SAMR_Q_LOOKUP_DOMAIN *q_u, POLICY_HND *pol, const char *dom_name); BOOL samr_io_q_lookup_domain(char *desc, SAMR_Q_LOOKUP_DOMAIN *q_u, prs_struct *ps, int depth); BOOL make_samr_r_lookup_domain(SAMR_R_LOOKUP_DOMAIN *r_u, DOM_SID *dom_sid, uint32 status); BOOL samr_io_r_lookup_domain(char *desc, SAMR_R_LOOKUP_DOMAIN *r_u, prs_struct *ps, int depth); BOOL make_samr_q_unknown_2d(SAMR_Q_UNKNOWN_2D *q_u, const POLICY_HND *dom_pol, const DOM_SID *sid); BOOL samr_io_q_unknown_2d(char *desc, SAMR_Q_UNKNOWN_2D *q_u, prs_struct *ps, int depth); BOOL samr_io_r_unknown_2d(char *desc, SAMR_R_UNKNOWN_2D *r_u, prs_struct *ps, int depth); BOOL make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN *q_u, const POLICY_HND *connect_pol, uint32 flags, const DOM_SID *sid); BOOL samr_io_q_open_domain(char *desc, SAMR_Q_OPEN_DOMAIN *q_u, prs_struct *ps, int depth); BOOL samr_io_r_open_domain(char *desc, SAMR_R_OPEN_DOMAIN *r_u, prs_struct *ps, int depth); BOOL make_samr_q_get_usrdom_pwinfo(SAMR_Q_GET_USRDOM_PWINFO *q_u, POLICY_HND *user_pol); BOOL samr_io_q_get_usrdom_pwinfo(char *desc, SAMR_Q_GET_USRDOM_PWINFO *q_u, prs_struct *ps, int depth); BOOL samr_io_r_get_usrdom_pwinfo(char *desc, SAMR_R_GET_USRDOM_PWINFO *r_u, prs_struct *ps, int depth); BOOL make_samr_q_query_sec_obj(SAMR_Q_QUERY_SEC_OBJ *q_u, const POLICY_HND *user_pol, uint32 sec_info); BOOL samr_io_q_query_sec_obj(char *desc, SAMR_Q_QUERY_SEC_OBJ *q_u, prs_struct *ps, int depth); BOOL make_samr_q_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO *q_u, POLICY_HND *domain_pol, uint16 switch_value); BOOL samr_io_q_query_dom_info(char *desc, SAMR_Q_QUERY_DOMAIN_INFO *q_u, prs_struct *ps, int depth); BOOL make_unk_info3(SAM_UNK_INFO_3 *u_3); BOOL make_unk_info6(SAM_UNK_INFO_6 *u_6); BOOL make_unk_info7(SAM_UNK_INFO_7 *u_7); BOOL make_unk_info2(SAM_UNK_INFO_2 *u_2, char *domain, char *server); BOOL make_unk_info1(SAM_UNK_INFO_1 *u_1); BOOL make_samr_r_query_dom_info(SAMR_R_QUERY_DOMAIN_INFO *r_u, uint16 switch_value, SAM_UNK_CTR *ctr, uint32 status); BOOL samr_io_r_query_dom_info(char *desc, SAMR_R_QUERY_DOMAIN_INFO *r_u, prs_struct *ps, int depth); BOOL samr_io_r_query_sec_obj(char *desc, SAMR_R_QUERY_SEC_OBJ *r_u, prs_struct *ps, int depth); BOOL make_sam_entry(SAM_ENTRY *sam, uint32 len_sam_name, uint32 rid); BOOL make_samr_q_enum_dom_users(SAMR_Q_ENUM_DOM_USERS *q_e, POLICY_HND *pol, uint32 start_idx, uint16 acb_mask, uint16 unk_1, uint32 size); BOOL samr_io_q_enum_dom_users(char *desc, SAMR_Q_ENUM_DOM_USERS *q_e, prs_struct *ps, int depth); BOOL make_samr_r_enum_dom_users(SAMR_R_ENUM_DOM_USERS *r_u, uint32 next_idx, uint32 num_sam_entries); BOOL samr_io_r_enum_dom_users(char *desc, SAMR_R_ENUM_DOM_USERS *r_u, prs_struct *ps, int depth); BOOL make_samr_q_query_dispinfo(SAMR_Q_QUERY_DISPINFO *q_e, POLICY_HND *pol, uint16 switch_level, uint32 start_idx, uint32 max_entries); BOOL samr_io_q_query_dispinfo(char *desc, SAMR_Q_QUERY_DISPINFO *q_e, prs_struct *ps, int depth); BOOL make_sam_dispinfo_1(SAM_DISPINFO_1 *sam, uint32 *num_entries, uint32 *data_size, uint32 start_idx, SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]); BOOL make_sam_dispinfo_2(SAM_DISPINFO_2 *sam, uint32 *num_entries, uint32 *data_size, uint32 start_idx, SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]); BOOL make_sam_dispinfo_3(SAM_DISPINFO_3 *sam, uint32 *num_entries, uint32 *data_size, uint32 start_idx, DOMAIN_GRP *grp); BOOL make_sam_dispinfo_4(SAM_DISPINFO_4 *sam, uint32 *num_entries, uint32 *data_size, uint32 start_idx, SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES]); BOOL make_sam_dispinfo_5(SAM_DISPINFO_5 *sam, uint32 *num_entries, uint32 *data_size, uint32 start_idx, DOMAIN_GRP *grp); BOOL make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO *r_u, uint32 num_entries, uint32 data_size, uint16 switch_level, SAM_DISPINFO_CTR *ctr, uint32 status); BOOL samr_io_r_query_dispinfo(char *desc, SAMR_R_QUERY_DISPINFO *r_u, prs_struct *ps, int depth); BOOL make_samr_q_open_group(SAMR_Q_OPEN_GROUP *q_c, const POLICY_HND *hnd, uint32 access_mask, uint32 rid); BOOL samr_io_q_open_group(char *desc, SAMR_Q_OPEN_GROUP *q_u, prs_struct *ps, int depth); BOOL samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP *r_u, prs_struct *ps, int depth); BOOL make_samr_group_info1(GROUP_INFO1 *gr1, char *acct_name, char *acct_desc, uint32 num_members); BOOL samr_io_group_info1(char *desc, GROUP_INFO1 *gr1, prs_struct *ps, int depth); BOOL make_samr_group_info4(GROUP_INFO4 *gr4, const char *acct_desc); BOOL samr_io_group_info4(char *desc, GROUP_INFO4 *gr4, prs_struct *ps, int depth); BOOL samr_group_info_ctr(char *desc, GROUP_INFO_CTR *ctr, prs_struct *ps, int depth); BOOL make_samr_q_create_dom_group(SAMR_Q_CREATE_DOM_GROUP *q_e, POLICY_HND *pol, const char *acct_desc); BOOL samr_io_q_create_dom_group(char *desc, SAMR_Q_CREATE_DOM_GROUP *q_e, prs_struct *ps, int depth); BOOL samr_io_r_create_dom_group(char *desc, SAMR_R_CREATE_DOM_GROUP *r_u, prs_struct *ps, int depth); BOOL make_samr_q_delete_dom_group(SAMR_Q_DELETE_DOM_GROUP *q_c, POLICY_HND *hnd); BOOL samr_io_q_delete_dom_group(char *desc, SAMR_Q_DELETE_DOM_GROUP *q_u, prs_struct *ps, int depth); BOOL samr_io_r_delete_dom_group(char *desc, SAMR_R_DELETE_DOM_GROUP *r_u, prs_struct *ps, int depth); BOOL make_samr_q_del_groupmem(SAMR_Q_DEL_GROUPMEM *q_e, POLICY_HND *pol, uint32 rid); BOOL samr_io_q_del_groupmem(char *desc, SAMR_Q_DEL_GROUPMEM *q_e, prs_struct *ps, int depth); BOOL make_samr_r_del_groupmem(SAMR_R_DEL_GROUPMEM *r_u, POLICY_HND *pol, uint32 status); BOOL samr_io_r_del_groupmem(char *desc, SAMR_R_DEL_GROUPMEM *r_u, prs_struct *ps, int depth); BOOL make_samr_q_add_groupmem(SAMR_Q_ADD_GROUPMEM *q_e, POLICY_HND *pol, uint32 rid); BOOL samr_io_q_add_groupmem(char *desc, SAMR_Q_ADD_GROUPMEM *q_e, prs_struct *ps, int depth); BOOL make_samr_r_add_groupmem(SAMR_R_ADD_GROUPMEM *r_u, POLICY_HND *pol, uint32 status); BOOL samr_io_r_add_groupmem(char *desc, SAMR_R_ADD_GROUPMEM *r_u, prs_struct *ps, int depth); BOOL make_samr_q_set_groupinfo(SAMR_Q_SET_GROUPINFO *q_e, POLICY_HND *pol, GROUP_INFO_CTR *ctr); BOOL samr_io_q_set_groupinfo(char *desc, SAMR_Q_SET_GROUPINFO *q_e, prs_struct *ps, int depth); BOOL make_samr_r_set_groupinfo(SAMR_R_SET_GROUPINFO *r_u, uint32 status); BOOL samr_io_r_set_groupinfo(char *desc, SAMR_R_SET_GROUPINFO *r_u, prs_struct *ps, int depth); BOOL make_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO *q_e, POLICY_HND *pol, uint16 switch_level); BOOL samr_io_q_query_groupinfo(char *desc, SAMR_Q_QUERY_GROUPINFO *q_e, prs_struct *ps, int depth); BOOL make_samr_r_query_groupinfo(SAMR_R_QUERY_GROUPINFO *r_u, GROUP_INFO_CTR *ctr, uint32 status); BOOL samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO *r_u, prs_struct *ps, int depth); BOOL make_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM *q_c, POLICY_HND *hnd); BOOL samr_io_q_query_groupmem(char *desc, SAMR_Q_QUERY_GROUPMEM *q_u, prs_struct *ps, int depth); BOOL make_samr_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u, uint32 num_entries, uint32 *rid, uint32 *attr, uint32 status); BOOL samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM *r_u, prs_struct *ps, int depth); void samr_free_r_query_groupmem(SAMR_R_QUERY_GROUPMEM *r_u); BOOL make_samr_q_query_usergroups(SAMR_Q_QUERY_USERGROUPS *q_u, POLICY_HND *hnd); BOOL samr_io_q_query_usergroups(char *desc, SAMR_Q_QUERY_USERGROUPS *q_u, prs_struct *ps, int depth); BOOL make_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS *r_u, uint32 num_gids, DOM_GID *gid, uint32 status); BOOL samr_io_gids(char *desc, uint32 *num_gids, DOM_GID **gid, prs_struct *ps, int depth); BOOL samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS *r_u, prs_struct *ps, int depth); BOOL make_samr_q_enum_domains(SAMR_Q_ENUM_DOMAINS *q_e, const POLICY_HND *pol, uint32 start_idx, uint32 size); BOOL samr_io_q_enum_domains(char *desc, SAMR_Q_ENUM_DOMAINS *q_e, prs_struct *ps, int depth); BOOL make_samr_r_enum_domains(SAMR_R_ENUM_DOMAINS *r_u, uint32 next_idx, uint32 num_sam_entries); BOOL samr_io_r_enum_domains(char *desc, SAMR_R_ENUM_DOMAINS *r_u, prs_struct *ps, int depth); BOOL make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_e, const POLICY_HND *pol, uint32 start_idx, uint32 size); BOOL samr_io_q_enum_dom_groups(char *desc, SAMR_Q_ENUM_DOM_GROUPS *q_e, prs_struct *ps, int depth); BOOL make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS *r_u, uint32 next_idx, uint32 num_sam_entries); BOOL samr_io_r_enum_dom_groups(char *desc, SAMR_R_ENUM_DOM_GROUPS *r_u, prs_struct *ps, int depth); BOOL make_samr_q_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES *q_e, POLICY_HND *pol, uint32 start_idx, uint32 size); BOOL samr_io_q_enum_dom_aliases(char *desc, SAMR_Q_ENUM_DOM_ALIASES *q_e, prs_struct *ps, int depth); BOOL make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES *r_u, uint32 next_idx, uint32 num_sam_entries); BOOL samr_io_r_enum_dom_aliases(char *desc, SAMR_R_ENUM_DOM_ALIASES *r_u, prs_struct *ps, int depth); BOOL make_samr_alias_info3(ALIAS_INFO3 *al3, const char *acct_desc); BOOL samr_io_alias_info3(char *desc, ALIAS_INFO3 *al3, prs_struct *ps, int depth); BOOL samr_alias_info_ctr(char *desc, ALIAS_INFO_CTR *ctr, prs_struct *ps, int depth); BOOL make_samr_q_query_aliasinfo(SAMR_Q_QUERY_ALIASINFO *q_e, const POLICY_HND *pol, uint16 switch_level); BOOL samr_io_q_query_aliasinfo(char *desc, SAMR_Q_QUERY_ALIASINFO *q_e, prs_struct *ps, int depth); BOOL make_samr_r_query_aliasinfo(SAMR_R_QUERY_ALIASINFO *r_u, ALIAS_INFO_CTR *ctr, uint32 status); BOOL samr_io_r_query_aliasinfo(char *desc, SAMR_R_QUERY_ALIASINFO *r_u, prs_struct *ps, int depth); BOOL make_samr_q_set_aliasinfo(SAMR_Q_SET_ALIASINFO *q_u, const POLICY_HND *hnd, ALIAS_INFO_CTR *ctr); BOOL samr_io_q_set_aliasinfo(char *desc, SAMR_Q_SET_ALIASINFO *q_u, prs_struct *ps, int depth); BOOL samr_io_r_set_aliasinfo(char *desc, SAMR_R_SET_ALIASINFO *r_u, prs_struct *ps, int depth); BOOL make_samr_q_query_useraliases(SAMR_Q_QUERY_USERALIASES *q_u, const POLICY_HND *hnd, uint32 num_sids, uint32 *ptr_sid, DOM_SID2 *sid); BOOL samr_io_q_query_useraliases(char *desc, SAMR_Q_QUERY_USERALIASES *q_u, prs_struct *ps, int depth); void samr_free_q_query_useraliases(SAMR_Q_QUERY_USERALIASES *q_u); BOOL make_samr_r_query_useraliases(SAMR_R_QUERY_USERALIASES *r_u, uint32 num_rids, uint32 *rid, uint32 status); BOOL samr_io_rids(char *desc, uint32 *num_rids, uint32 **rid, prs_struct *ps, int depth); BOOL samr_io_r_query_useraliases(char *desc, SAMR_R_QUERY_USERALIASES *r_u, prs_struct *ps, int depth); BOOL make_samr_q_open_alias(SAMR_Q_OPEN_ALIAS *q_u, const POLICY_HND *pol, uint32 unknown_0, uint32 rid); BOOL samr_io_q_open_alias(char *desc, SAMR_Q_OPEN_ALIAS *q_u, prs_struct *ps, int depth); BOOL samr_io_r_open_alias(char *desc, SAMR_R_OPEN_ALIAS *r_u, prs_struct *ps, int depth); BOOL make_samr_q_lookup_rids(SAMR_Q_LOOKUP_RIDS *q_u, const POLICY_HND *pol, uint32 flags, uint32 num_rids, const uint32 *rid); BOOL samr_io_q_lookup_rids(char *desc, SAMR_Q_LOOKUP_RIDS *q_u, prs_struct *ps, int depth); void samr_free_q_lookup_rids(SAMR_Q_LOOKUP_RIDS *q_u); BOOL make_samr_r_lookup_rids(SAMR_R_LOOKUP_RIDS *r_u, uint32 num_names, UNIHDR *hdr_name, UNISTR2 *uni_name, uint32 *type); BOOL samr_io_r_lookup_rids(char *desc, SAMR_R_LOOKUP_RIDS *r_u, prs_struct *ps, int depth); void samr_free_r_lookup_rids(SAMR_R_LOOKUP_RIDS *r_u); BOOL make_samr_q_delete_alias(SAMR_Q_DELETE_DOM_ALIAS *q_u, POLICY_HND *hnd); BOOL samr_io_q_delete_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS *q_u, prs_struct *ps, int depth); BOOL samr_io_r_delete_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS *r_u, prs_struct *ps, int depth); BOOL make_samr_q_create_dom_alias(SAMR_Q_CREATE_DOM_ALIAS *q_u, POLICY_HND *hnd, const char *acct_desc); BOOL samr_io_q_create_dom_alias(char *desc, SAMR_Q_CREATE_DOM_ALIAS *q_u, prs_struct *ps, int depth); BOOL samr_io_r_create_dom_alias(char *desc, SAMR_R_CREATE_DOM_ALIAS *r_u, prs_struct *ps, int depth); BOOL make_samr_q_add_aliasmem(SAMR_Q_ADD_ALIASMEM *q_u, POLICY_HND *hnd, DOM_SID *sid); BOOL samr_io_q_add_aliasmem(char *desc, SAMR_Q_ADD_ALIASMEM *q_u, prs_struct *ps, int depth); BOOL samr_io_r_add_aliasmem(char *desc, SAMR_R_ADD_ALIASMEM *r_u, prs_struct *ps, int depth); BOOL make_samr_q_del_aliasmem(SAMR_Q_DEL_ALIASMEM *q_u, POLICY_HND *hnd, DOM_SID *sid); BOOL samr_io_q_del_aliasmem(char *desc, SAMR_Q_DEL_ALIASMEM *q_u, prs_struct *ps, int depth); BOOL samr_io_r_del_aliasmem(char *desc, SAMR_R_DEL_ALIASMEM *r_u, prs_struct *ps, int depth); BOOL make_samr_q_delete_dom_alias(SAMR_Q_DELETE_DOM_ALIAS *q_c, POLICY_HND *hnd); BOOL samr_io_q_delete_dom_alias(char *desc, SAMR_Q_DELETE_DOM_ALIAS *q_u, prs_struct *ps, int depth); BOOL make_samr_r_delete_dom_alias(SAMR_R_DELETE_DOM_ALIAS *r_u, uint32 status); BOOL samr_io_r_delete_dom_alias(char *desc, SAMR_R_DELETE_DOM_ALIAS *r_u, prs_struct *ps, int depth); BOOL make_samr_q_query_aliasmem(SAMR_Q_QUERY_ALIASMEM *q_c, const POLICY_HND *hnd); BOOL samr_io_q_query_aliasmem(char *desc, SAMR_Q_QUERY_ALIASMEM *q_u, prs_struct *ps, int depth); BOOL make_samr_r_query_aliasmem(SAMR_R_QUERY_ALIASMEM *r_u, uint32 num_sids, DOM_SID2 *sid, uint32 status); BOOL samr_io_r_query_aliasmem(char *desc, SAMR_R_QUERY_ALIASMEM *r_u, prs_struct *ps, int depth); BOOL make_samr_q_lookup_names(SAMR_Q_LOOKUP_NAMES *q_u, const POLICY_HND *pol, uint32 flags, uint32 num_names, char **name); BOOL samr_io_q_lookup_names(char *desc, SAMR_Q_LOOKUP_NAMES *q_u, prs_struct *ps, int depth); void samr_free_q_lookup_names(SAMR_Q_LOOKUP_NAMES *q_l); BOOL make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_u, uint32 num_rids, const uint32 *rid, const uint32 *type, uint32 status); BOOL samr_io_r_lookup_names(char *desc, SAMR_R_LOOKUP_NAMES *r_u, prs_struct *ps, int depth); void samr_free_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_l); BOOL make_samr_q_delete_dom_user(SAMR_Q_DELETE_DOM_USER *q_c, POLICY_HND *hnd); BOOL samr_io_q_delete_dom_user(char *desc, SAMR_Q_DELETE_DOM_USER *q_u, prs_struct *ps, int depth); BOOL samr_io_r_delete_dom_user(char *desc, SAMR_R_DELETE_DOM_USER *r_u, prs_struct *ps, int depth); BOOL make_samr_q_open_user(SAMR_Q_OPEN_USER *q_u, const POLICY_HND *pol, uint32 access_mask, uint32 rid); BOOL samr_io_q_open_user(char *desc, SAMR_Q_OPEN_USER *q_u, prs_struct *ps, int depth); BOOL samr_io_r_open_user(char *desc, SAMR_R_OPEN_USER *r_u, prs_struct *ps, int depth); BOOL make_samr_q_create_user(SAMR_Q_CREATE_USER *q_u, POLICY_HND *pol, const char *name, uint16 acb_info, uint32 access_mask); BOOL samr_io_q_create_user(char *desc, SAMR_Q_CREATE_USER *q_u, prs_struct *ps, int depth); BOOL samr_io_r_create_user(char *desc, SAMR_R_CREATE_USER *r_u, prs_struct *ps, int depth); BOOL make_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO *q_u, POLICY_HND *hnd, uint16 switch_value); BOOL samr_io_q_query_userinfo(char *desc, SAMR_Q_QUERY_USERINFO *q_u, prs_struct *ps, int depth); BOOL make_sam_user_info12(SAM_USER_INFO_12 *usr, uint16 acb_info, const uint8 lm_pwd[16], const uint8 nt_pwd[16]); BOOL sam_io_user_info12(char *desc, SAM_USER_INFO_12 *u, prs_struct *ps, int depth); BOOL make_sam_user_info10(SAM_USER_INFO_10 *usr, uint32 acb_info); BOOL sam_io_user_info10(char *desc, SAM_USER_INFO_10 *usr, prs_struct *ps, int depth); BOOL make_sam_user_info11(SAM_USER_INFO_11 *usr, NTTIME *expiry, char *mach_acct, uint32 rid_user, uint32 rid_group, uint16 acct_ctrl); BOOL sam_io_user_info11(char *desc, SAM_USER_INFO_11 *usr, prs_struct *ps, int depth); BOOL make_sam_user_info24(SAM_USER_INFO_24 *usr, const char newpass[516], uint16 passlen); BOOL make_sam_user_info23W(SAM_USER_INFO_23 *usr, const NTTIME *logon_time, /* all zeros */ const NTTIME *logoff_time, /* all zeros */ const NTTIME *kickoff_time, /* all zeros */ const NTTIME *pass_last_set_time, /* all zeros */ const NTTIME *pass_can_change_time, /* all zeros */ const NTTIME *pass_must_change_time, /* all zeros */ const UNISTR2 *user_name, const UNISTR2 *full_name, const UNISTR2 *home_dir, const UNISTR2 *dir_drive, const UNISTR2 *log_scr, const UNISTR2 *prof_path, const UNISTR2 *desc, const UNISTR2 *wkstas, const UNISTR2 *unk_str, const UNISTR2 *mung_dial, uint32 user_rid, /* 0x0000 0000 */ uint32 group_rid, uint16 acb_info, uint32 unknown_3, uint16 logon_divs, LOGON_HRS *hrs, uint32 unknown_5, char newpass[516], uint32 unknown_6); BOOL make_sam_user_info23A(SAM_USER_INFO_23 *usr, NTTIME *logon_time, /* all zeros */ NTTIME *logoff_time, /* all zeros */ NTTIME *kickoff_time, /* all zeros */ NTTIME *pass_last_set_time, /* all zeros */ NTTIME *pass_can_change_time, /* all zeros */ NTTIME *pass_must_change_time, /* all zeros */ char *user_name, /* NULL */ char *full_name, char *home_dir, char *dir_drive, char *log_scr, char *prof_path, char *desc, char *wkstas, char *unk_str, char *mung_dial, uint32 user_rid, /* 0x0000 0000 */ uint32 group_rid, uint16 acb_info, uint32 unknown_3, uint16 logon_divs, LOGON_HRS *hrs, uint32 unknown_5, char newpass[516], uint32 unknown_6); BOOL make_sam_user_info21W(SAM_USER_INFO_21 *usr, const NTTIME *logon_time, const NTTIME *logoff_time, const NTTIME *kickoff_time, const NTTIME *pass_last_set_time, const NTTIME *pass_can_change_time, const NTTIME *pass_must_change_time, const UNISTR2 *user_name, const UNISTR2 *full_name, const UNISTR2 *home_dir, const UNISTR2 *dir_drive, const UNISTR2 *log_scr, const UNISTR2 *prof_path, const UNISTR2 *desc, const UNISTR2 *wkstas, const UNISTR2 *unk_str, const UNISTR2 *mung_dial, const uchar lm_pwd[16], const uchar nt_pwd[16], uint32 user_rid, uint32 group_rid, uint16 acb_info, uint32 unknown_3, uint16 logon_divs, const LOGON_HRS *hrs, uint32 unknown_5, uint32 unknown_6); BOOL make_sam_user_info21A(SAM_USER_INFO_21 *usr, NTTIME *logon_time, NTTIME *logoff_time, NTTIME *kickoff_time, NTTIME *pass_last_set_time, NTTIME *pass_can_change_time, NTTIME *pass_must_change_time, char *user_name, char *full_name, char *home_dir, char *dir_drive, char *log_scr, char *prof_path, char *desc, char *wkstas, char *unk_str, char *mung_dial, uint32 user_rid, uint32 group_rid, uint16 acb_info, uint32 unknown_3, uint16 logon_divs, LOGON_HRS *hrs, uint32 unknown_5, uint32 unknown_6); BOOL sam_io_user_info21(char *desc, SAM_USER_INFO_21 *usr, prs_struct *ps, int depth); uint32 make_samr_userinfo_ctr_usr21(SAM_USERINFO_CTR *ctr, uint16 switch_value, const SAM_USER_INFO_21 *usr); BOOL make_samr_userinfo_ctr(SAM_USERINFO_CTR *ctr, const uchar *sess_key, uint16 switch_value, void *info); BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR *ctr, prs_struct *ps, int depth); void free_samr_userinfo_ctr(SAM_USERINFO_CTR *ctr); BOOL make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO *r_u, SAM_USERINFO_CTR *ctr, uint32 status); BOOL samr_io_r_query_userinfo(char *desc, SAMR_R_QUERY_USERINFO *r_u, prs_struct *ps, int depth); BOOL make_samr_q_set_userinfo(SAMR_Q_SET_USERINFO *q_u, POLICY_HND *hnd, uint16 switch_value, void *info); BOOL samr_io_q_set_userinfo(char *desc, SAMR_Q_SET_USERINFO *q_u, prs_struct *ps, int depth); void free_samr_q_set_userinfo(SAMR_Q_SET_USERINFO *q_u); BOOL make_samr_r_set_userinfo(SAMR_R_SET_USERINFO *r_u, uint32 status); BOOL samr_io_r_set_userinfo(char *desc, SAMR_R_SET_USERINFO *r_u, prs_struct *ps, int depth); BOOL make_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u, POLICY_HND *hnd, uint16 switch_value, SAM_USERINFO_CTR *ctr); BOOL samr_io_q_set_userinfo2(char *desc, SAMR_Q_SET_USERINFO2 *q_u, prs_struct *ps, int depth); void free_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u); BOOL make_samr_r_set_userinfo2(SAMR_R_SET_USERINFO2 *r_u, uint32 status); BOOL samr_io_r_set_userinfo2(char *desc, SAMR_R_SET_USERINFO2 *r_u, prs_struct *ps, int depth); BOOL make_samr_q_connect(SAMR_Q_CONNECT *q_u, const char *srv_name, uint32 access_mask); BOOL samr_io_q_connect(char *desc, SAMR_Q_CONNECT *q_u, prs_struct *ps, int depth); BOOL samr_io_r_connect(char *desc, SAMR_R_CONNECT *r_u, prs_struct *ps, int depth); BOOL make_samr_q_connect_anon(SAMR_Q_CONNECT_ANON *q_u); BOOL samr_io_q_connect_anon(char *desc, SAMR_Q_CONNECT_ANON *q_u, prs_struct *ps, int depth); BOOL samr_io_r_connect_anon(char *desc, SAMR_R_CONNECT_ANON *r_u, prs_struct *ps, int depth); BOOL make_samr_q_get_dom_pwinfo(SAMR_Q_GET_DOM_PWINFO *q_u, const char *srv_name); BOOL samr_io_q_get_dom_pwinfo(char *desc, SAMR_Q_GET_DOM_PWINFO *q_u, prs_struct *ps, int depth); BOOL samr_io_r_get_dom_pwinfo(char *desc, SAMR_R_GET_DOM_PWINFO *r_u, prs_struct *ps, int depth); BOOL make_enc_passwd(SAMR_ENC_PASSWD *pwd, const char pass[512]); BOOL samr_io_enc_passwd(char *desc, SAMR_ENC_PASSWD *pwd, prs_struct *ps, int depth); BOOL make_enc_hash(SAMR_ENC_HASH *hsh, const uchar hash[16]); BOOL samr_io_enc_hash(char *desc, SAMR_ENC_HASH *hsh, prs_struct *ps, int depth); BOOL make_samr_q_chgpasswd_user(SAMR_Q_CHGPASSWD_USER *q_u, const char *dest_host, const char *user_name, const char nt_newpass[516], const uchar nt_oldhash[16], const char lm_newpass[516], const uchar lm_oldhash[16]); BOOL samr_io_q_chgpasswd_user(char *desc, SAMR_Q_CHGPASSWD_USER *q_u, prs_struct *ps, int depth); BOOL make_samr_r_chgpasswd_user(SAMR_R_CHGPASSWD_USER *r_u, uint32 status); BOOL samr_io_r_chgpasswd_user(char *desc, SAMR_R_CHGPASSWD_USER *r_u, prs_struct *ps, int depth); /*The following definitions come from rpc_parse/parse_sec.c */ BOOL make_sec_access(SEC_ACCESS *t, uint32 mask); BOOL sec_io_access(char *desc, SEC_ACCESS *t, prs_struct *ps, int depth); BOOL make_sec_ace(SEC_ACE *t, DOM_SID *sid, uint8 type, SEC_ACCESS mask, uint8 flag); BOOL sec_io_ace(char *desc, SEC_ACE *t, prs_struct *ps, int depth); BOOL make_sec_acl(SEC_ACL *t, uint16 revision, int num_aces, SEC_ACE *ace); void free_sec_acl(SEC_ACL *t); BOOL sec_io_acl(char *desc, SEC_ACL *t, prs_struct *ps, int depth); int make_sec_desc(SEC_DESC *t, uint16 revision, uint16 type, DOM_SID *owner_sid, DOM_SID *grp_sid, SEC_ACL *sacl, SEC_ACL *dacl); void free_sec_desc(SEC_DESC *t); BOOL sec_io_desc(char *desc, SEC_DESC *t, prs_struct *ps, int depth); BOOL make_sec_desc_buf(SEC_DESC_BUF *buf, int len, SEC_DESC *data); void free_sec_desc_buf(SEC_DESC_BUF *buf); BOOL sec_io_desc_buf(char *desc, SEC_DESC_BUF *sec, prs_struct *ps, int depth); /*The following definitions come from rpc_parse/parse_vuid.c */ BOOL vuid_io_key(char *desc, vuser_key * r_u, prs_struct * ps, int depth); BOOL make_vuid_user_struct(user_struct * r_u, uid_t uid, gid_t gid, const char *name, const char *requested_name, const char *real_name, BOOL guest, uint32 n_groups, const gid_t * groups, const NET_USER_INFO_3 * usr); BOOL vuid_io_user_struct(char *desc, user_struct * r_u, prs_struct * ps, int depth); void vuid_free_user_struct(user_struct * r_u); /*The following definitions come from tdb/tdb.c */ char *tdb_error(TDB_CONTEXT *tdb); int tdb_update(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf); TDB_DATA tdb_fetch(TDB_CONTEXT *tdb, TDB_DATA key); int tdb_exists(TDB_CONTEXT *tdb, TDB_DATA key); int tdb_traverse(TDB_CONTEXT *tdb, int (*fn)(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void* state), void* state); TDB_DATA tdb_firstkey(TDB_CONTEXT *tdb); TDB_DATA tdb_nextkey(TDB_CONTEXT *tdb, TDB_DATA key); int tdb_delete(TDB_CONTEXT *tdb, TDB_DATA key); int tdb_store(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, int flag); TDB_CONTEXT *tdb_open(char *name, int hash_size, int tdb_flags, int open_flags, mode_t mode); int tdb_close(TDB_CONTEXT *tdb); int tdb_writelock(TDB_CONTEXT *tdb); int tdb_writeunlock(TDB_CONTEXT *tdb); int tdb_lockchain(TDB_CONTEXT *tdb, TDB_DATA key); int tdb_unlockchain(TDB_CONTEXT *tdb, TDB_DATA key); #endif /* _WINBINDD_PROTO_H_ */