1998-06-08 23:38:57 +04:00
# ifndef _PROTO_H_
# define _PROTO_H_
1998-05-08 20:49:10 +04:00
/* This file is automatically generated with "make proto". DO NOT EDIT */
1998-08-09 18:58:51 +04:00
/*The following definitions come from client/client.c */
1998-11-09 23:33:37 +03:00
void do_list ( const char * mask , uint16 attribute , void ( * fn ) ( file_info * ) , BOOL rec , BOOL dirs ) ;
1998-11-09 06:45:49 +03:00
struct cli_state * do_connect ( char * server , char * share ) ;
1998-08-09 18:58:51 +04:00
/*The following definitions come from client/clitar.c */
1998-11-09 06:45:49 +03:00
void cmd_block ( void ) ;
void cmd_tarmode ( void ) ;
void cmd_setmode ( void ) ;
void cmd_tar ( void ) ;
int process_tar ( void ) ;
1998-08-09 18:58:51 +04:00
int tar_parseargs ( int argc , char * argv [ ] , char * Optarg , int Optind ) ;
1998-08-14 06:02:40 +04:00
/*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 ) ;
1998-08-16 08:08:47 +04:00
/*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 ) ;
1998-10-04 08:48:17 +04:00
BOOL bitmap_query ( struct bitmap * bm , unsigned i ) ;
1998-08-16 08:08:47 +04:00
int bitmap_find ( struct bitmap * bm , unsigned ofs ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/charcnv.c */
1998-05-08 20:49:10 +04:00
char * unix2dos_format ( char * str , BOOL overwrite ) ;
char * dos2unix_format ( char * str , BOOL overwrite ) ;
void interpret_character_set ( char * str ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/charset.c */
1998-05-08 20:49:10 +04:00
void charset_initialise ( void ) ;
void codepage_initialise ( int client_codepage ) ;
void add_char_string ( char * s ) ;
1998-10-07 02:03:04 +04:00
/*The following definitions come from lib/crc32.c */
1998-10-10 00:31:52 +04:00
uint32 crc32_calc_buffer ( uint32 count , char * buffer ) ;
1998-10-07 02:03:04 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/debug.c */
1998-08-01 00:16:35 +04:00
1998-08-15 05:19:26 +04:00
void sig_usr2 ( int sig ) ;
void sig_usr1 ( int sig ) ;
1998-08-01 00:16:35 +04:00
void setup_logging ( char * pname , BOOL interactive ) ;
void reopen_logs ( void ) ;
void force_check_log_size ( void ) ;
1998-08-14 06:02:40 +04:00
void dbgflush ( void ) ;
1998-08-01 00:16:35 +04:00
BOOL dbghdr ( int level , char * file , char * func , int line ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/fault.c */
1998-05-08 20:49:10 +04:00
void fault_setup ( void ( * fn ) ( void * ) ) ;
1998-08-09 18:20:02 +04:00
/*The following definitions come from lib/genrand.c */
void generate_random_buffer ( unsigned char * out , int len , BOOL re_seed ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/getsmbpass.c */
1998-05-08 20:49:10 +04:00
char * getsmbpass ( char * prompt ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/interface.c */
1998-05-08 20:49:10 +04:00
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 ) ;
1998-08-30 09:43:59 +04:00
unsigned iface_hash ( void ) ;
1998-05-08 20:49:10 +04:00
struct in_addr * iface_bcast ( struct in_addr ip ) ;
struct in_addr * iface_ip ( struct in_addr ip ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/kanji.c */
1998-05-08 20:49:10 +04:00
void interpret_coding_system ( char * str ) ;
1998-10-21 00:08:35 +04:00
BOOL is_multibyte_codepage ( void ) ;
1998-05-08 20:49:10 +04:00
void initialize_multibyte_vectors ( int client_codepage ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/md4.c */
1998-05-11 19:56:01 +04:00
1998-08-09 17:25:34 +04:00
void mdfour ( unsigned char * out , unsigned char * in , int n ) ;
1998-05-11 19:56:01 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/membuffer.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
void mem_init ( struct mem_buf * buf , int margin ) ;
1998-10-20 22:27:49 +04:00
void mem_create ( struct mem_buf * buf , char * data , int offset , int size , int margin , BOOL dynamic ) ;
1998-08-09 17:25:34 +04:00
BOOL mem_alloc_data ( struct mem_buf * buf , int size ) ;
BOOL mem_buf_copy ( char * copy_into , struct mem_buf * buf ,
uint32 offset , uint32 len ) ;
BOOL mem_buf_init ( struct mem_buf * * buf , uint32 margin ) ;
void mem_buf_free ( struct mem_buf * * buf ) ;
void mem_free_data ( struct mem_buf * buf ) ;
BOOL mem_realloc_data ( struct mem_buf * buf , int new_size ) ;
BOOL mem_grow_data ( struct mem_buf * * buf , BOOL io , int new_size , BOOL force_grow ) ;
uint32 mem_buf_len ( struct mem_buf * buf ) ;
char * mem_data ( struct mem_buf * * buf , uint32 offset ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/netmask.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
int get_netmask ( struct in_addr * ipaddr , struct in_addr * nmask ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/pidfile.c */
1998-05-08 20:49:10 +04:00
1998-09-29 01:43:48 +04:00
pid_t pidfile_pid ( char * name ) ;
1998-08-09 17:25:34 +04:00
void pidfile_create ( char * name ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/replace.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
char * rep_inet_ntoa ( struct in_addr ip ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/signal.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
void BlockSignals ( BOOL block , int signum ) ;
void CatchSignal ( int signum , void ( * handler ) ( int ) ) ;
void CatchChild ( void ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/slprintf.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
int vslprintf ( char * str , int n , char * format , va_list ap ) ;
1998-05-08 20:49:10 +04:00
1998-08-14 21:38:29 +04:00
/*The following definitions come from lib/smbrun.c */
int smbrun ( char * cmd , char * outfile , BOOL shared ) ;
1998-10-28 15:04:34 +03:00
/*The following definitions come from lib/snprintf.c */
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/system.c */
1998-05-08 20:49:10 +04:00
1998-08-29 01:46:29 +04:00
int sys_select ( int maxfd , fd_set * fds , struct timeval * tval ) ;
int sys_select ( int maxfd , fd_set * fds , struct timeval * tval ) ;
1998-09-03 22:40:31 +04:00
int sys_stat ( char * fname , SMB_STRUCT_STAT * sbuf ) ;
int sys_fstat ( int fd , SMB_STRUCT_STAT * sbuf ) ;
int sys_lstat ( char * fname , SMB_STRUCT_STAT * sbuf ) ;
int sys_ftruncate ( int fd , SMB_OFF_T offset ) ;
1998-09-12 01:42:18 +04:00
SMB_OFF_T sys_lseek ( int fd , SMB_OFF_T offset , int whence ) ;
1998-09-17 23:16:12 +04:00
int sys_fseek ( FILE * fp , SMB_OFF_T offset , int whence ) ;
SMB_OFF_T sys_ftell ( FILE * fp ) ;
1998-09-02 00:11:54 +04:00
int dos_unlink ( char * fname ) ;
1998-09-17 23:16:12 +04:00
int dos_open ( char * fname , int flags , mode_t mode ) ;
1998-09-02 00:11:54 +04:00
DIR * dos_opendir ( char * dname ) ;
int dos_stat ( char * fname , SMB_STRUCT_STAT * sbuf ) ;
1998-08-09 17:25:34 +04:00
int sys_waitpid ( pid_t pid , int * status , int options ) ;
1998-09-03 07:14:31 +04:00
int dos_lstat ( char * fname , SMB_STRUCT_STAT * sbuf ) ;
1998-09-17 23:16:12 +04:00
int dos_mkdir ( char * dname , mode_t mode ) ;
1998-09-02 00:11:54 +04:00
int dos_rmdir ( char * dname ) ;
int dos_chdir ( char * dname ) ;
int dos_utime ( char * fname , struct utimbuf * times ) ;
int dos_rename ( char * from , char * to ) ;
1998-09-17 23:16:12 +04:00
int dos_chmod ( char * fname , mode_t mode ) ;
1998-10-02 16:34:14 +04:00
char * sys_getwd ( char * s ) ;
1998-09-03 22:40:31 +04:00
char * dos_getwd ( char * s ) ;
1998-09-30 00:24:17 +04:00
int sys_chown ( char * fname , uid_t uid , gid_t gid ) ;
1998-08-09 17:25:34 +04:00
int sys_chroot ( char * dname ) ;
struct hostent * sys_gethostbyname ( char * name ) ;
1998-09-26 03:40:49 +04:00
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 ) ;
1998-09-30 00:24:17 +04:00
int sys_getgroups ( int setlen , gid_t * gidset ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/time.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
void GetTimeOfDay ( struct timeval * tval ) ;
void TimeInit ( void ) ;
int TimeDiff ( time_t t ) ;
struct tm * LocalTime ( time_t * t ) ;
1998-11-10 22:05:00 +03:00
time_t nt_time_to_unix ( NTTIME * nt ) ;
1998-08-09 17:25:34 +04:00
time_t interpret_long_date ( char * p ) ;
1998-11-10 22:05:00 +03:00
void unix_to_nt_time ( NTTIME * nt , time_t t ) ;
1998-08-09 17:25:34 +04:00
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 ) ;
1998-09-02 00:11:54 +04:00
time_t get_create_time ( SMB_STRUCT_STAT * st , BOOL fake_dirs ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/ufc.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
char * ufc_crypt ( char * key , char * salt ) ;
1998-05-08 20:49:10 +04:00
1998-08-10 11:04:53 +04:00
/*The following definitions come from lib/username.c */
char * get_home_dir ( char * user ) ;
BOOL map_username ( char * user ) ;
struct passwd * Get_Pwnam ( char * user , BOOL allow_change ) ;
BOOL user_in_list ( char * user , char * list ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from lib/util.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
char * tmpdir ( void ) ;
1998-09-30 00:24:17 +04:00
BOOL in_group ( gid_t group , gid_t current_gid , int ngroups , gid_t * groups ) ;
1998-11-10 21:14:16 +03:00
char * Atoic ( char * p , int * n , char * c ) ;
char * get_numlist ( char * p , uint32 * * num , int * count ) ;
1998-08-09 17:25:34 +04:00
void putip ( void * dest , void * src ) ;
1998-09-26 01:01:52 +04:00
char * dns_to_netbios_name ( char * dns_name ) ;
1998-08-09 17:25:34 +04:00
int name_mangle ( char * In , char * Out , char name_type ) ;
1998-09-02 00:11:54 +04:00
BOOL file_exist ( char * fname , SMB_STRUCT_STAT * sbuf ) ;
1998-08-09 17:25:34 +04:00
time_t file_modtime ( char * fname ) ;
1998-09-02 00:11:54 +04:00
BOOL directory_exist ( char * dname , SMB_STRUCT_STAT * st ) ;
1998-09-03 22:40:31 +04:00
SMB_OFF_T file_size ( char * file_name ) ;
1998-11-09 23:33:37 +03:00
char * attrib_string ( uint16 mode ) ;
1998-08-09 17:25:34 +04:00
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 unix_clean_name ( char * s ) ;
int ChDir ( char * path ) ;
char * GetWd ( char * str ) ;
BOOL reduce_name ( char * s , char * dir , BOOL widelinks ) ;
void expand_mask ( char * Mask , BOOL doext ) ;
1998-09-03 22:40:31 +04:00
void make_dir_struct ( char * buf , char * mask , char * fname , SMB_OFF_T size , int mode , time_t date ) ;
1998-08-09 17:25:34 +04:00
void close_low_fds ( void ) ;
1998-11-10 21:14:16 +03:00
int set_blocking ( int fd , BOOL set ) ;
1998-08-09 17:25:34 +04:00
int TvalDiff ( struct timeval * tvalold , struct timeval * tvalnew ) ;
1998-09-03 22:40:31 +04:00
SMB_OFF_T transfer_file ( int infd , int outfd , SMB_OFF_T n , char * header , int headlen , int align ) ;
1998-08-09 17:25:34 +04:00
int name_extract ( char * buf , int ofs , char * name ) ;
1998-10-05 16:34:57 +04:00
int name_len ( char * s1 ) ;
1998-10-03 12:28:05 +04:00
void msleep ( int t ) ;
1998-08-09 17:25:34 +04:00
BOOL do_match ( char * str , 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 ) ;
1998-09-03 22:40:31 +04:00
int set_filelen ( int fd , SMB_OFF_T len ) ;
1998-09-11 05:24:30 +04:00
void * Realloc ( void * p , size_t size ) ;
1998-08-09 17:25:34 +04:00
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 ) ;
1998-11-10 21:14:16 +03:00
BOOL matchname ( char * remotehost , struct in_addr addr ) ;
1998-08-09 17:25:34 +04:00
void standard_sub_basic ( char * str ) ;
1998-08-14 21:38:29 +04:00
void standard_sub ( connection_struct * conn , char * str ) ;
1998-08-09 17:25:34 +04:00
BOOL same_net ( struct in_addr ip1 , struct in_addr ip2 , struct in_addr mask ) ;
struct hostent * Get_Hostbyname ( char * name ) ;
BOOL process_exists ( int pid ) ;
1998-09-30 00:24:17 +04:00
char * uidtoname ( uid_t uid ) ;
char * gidtoname ( gid_t gid ) ;
1998-10-04 13:42:51 +04:00
uid_t nametouid ( const char * name ) ;
1998-08-21 15:37:40 +04:00
void smb_panic ( char * why ) ;
1998-08-09 17:25:34 +04:00
char * readdirname ( void * 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 ) ;
1998-09-04 04:23:28 +04:00
BOOL fcntl_lock ( int fd , int op , SMB_OFF_T offset , SMB_OFF_T count , int type ) ;
1998-08-09 17:25:34 +04:00
BOOL is_myname ( char * s ) ;
void set_remote_arch ( enum remote_arch_types type ) ;
enum remote_arch_types get_remote_arch ( void ) ;
char * align2 ( char * q , char * base ) ;
1998-11-10 21:14:16 +03:00
void out_ascii ( FILE * f , unsigned char * buf , int len ) ;
void out_data ( FILE * f , char * buf1 , int len , int per_line ) ;
1998-08-09 17:25:34 +04:00
void print_asc ( int level , unsigned char * buf , int len ) ;
void dump_data ( int level , char * buf1 , int len ) ;
char * tab_depth ( int depth ) ;
1998-10-03 17:12:08 +04:00
int str_checksum ( const char * s ) ;
1998-09-11 05:24:30 +04:00
void zero_free ( void * p , size_t size ) ;
1998-10-16 10:16:10 +04:00
int set_maxfiles ( int requested_max ) ;
1998-05-08 20:49:10 +04:00
1998-11-10 21:14:16 +03:00
/*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 ) ;
void * startfilepwent ( char * pfile , char * s_readbuf , int bufsize ,
int * file_lock_depth , BOOL update ) ;
void endfilepwent ( 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 ) ;
/*The following definitions come from lib/util_sid.c */
char * sid_to_string ( pstring sidstr_out , DOM_SID * sid ) ;
BOOL string_to_sid ( DOM_SID * sidout , 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 , DOM_SID * sid2 ) ;
BOOL sid_equal ( DOM_SID * sid1 , DOM_SID * sid2 ) ;
/*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 ) ;
int open_socket_out ( int type , struct in_addr * addr , int port , int timeout ) ;
void reset_globals_after_fork ( void ) ;
char * client_name ( int fd ) ;
char * client_addr ( int fd ) ;
/*The following definitions come from lib/util_str.c */
void set_first_token ( char * ptr ) ;
BOOL next_token ( char * * ptr , char * buff , char * sep , int bufsize ) ;
char * * toktocliplist ( int * ctok , char * sep ) ;
int StrCaseCmp ( char * s , char * t ) ;
int StrnCaseCmp ( char * s , char * t , int n ) ;
BOOL strequal ( char * s1 , char * s2 ) ;
BOOL strnequal ( char * s1 , char * s2 , int n ) ;
BOOL strcsequal ( char * s1 , 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 , int n ) ;
size_t str_charnum ( char * s ) ;
BOOL trim_string ( char * s , char * front , char * back ) ;
BOOL strhasupper ( char * s ) ;
BOOL strhaslower ( char * s ) ;
int count_chars ( char * s , char c ) ;
char * safe_strcpy ( char * dest , const char * src , int maxlength ) ;
char * safe_strcat ( char * dest , char * src , int maxlength ) ;
char * StrCpy ( char * dest , char * src ) ;
char * StrnCpy ( char * dest , char * src , int n ) ;
char * strncpyn ( char * dest , char * src , int n , char c ) ;
1998-11-10 22:05:00 +03:00
int strhex_to_str ( char * p , int len , const char * strhex ) ;
1998-11-10 21:14:16 +03:00
BOOL in_list ( char * s , char * list , BOOL casesensitive ) ;
BOOL string_init ( char * * dest , char * src ) ;
void string_free ( char * * s ) ;
BOOL string_set ( char * * dest , char * src ) ;
BOOL string_sub ( char * s , char * pattern , char * insert ) ;
/*The following definitions come from lib/util_unistr.c */
int PutUniCode ( char * dst , char * src ) ;
char * skip_unicode_string ( char * buf , int n ) ;
char * unistrn2 ( uint16 * buf , int len ) ;
char * unistr2 ( uint16 * buf ) ;
char * unistr2_to_str ( UNISTR2 * str ) ;
1998-11-10 22:05:00 +03:00
uint32 buffer2_to_uint32 ( BUFFER2 * str ) ;
char * buffer2_to_str ( BUFFER2 * str ) ;
char * buffer2_to_multistr ( BUFFER2 * str ) ;
1998-11-10 21:14:16 +03:00
int struni2 ( uint16 * p , char * buf ) ;
char * unistr ( char * buf ) ;
int unistrcpy ( char * dst , char * src ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from libsmb/clientgen.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
char * cli_errstr ( struct cli_state * cli ) ;
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 ) ;
1998-08-25 10:52:26 +04:00
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 ) ;
1998-08-09 17:25:34 +04:00
BOOL cli_NetWkstaUserLogon ( struct cli_state * cli , char * user , char * workstation ) ;
1998-10-03 17:12:08 +04:00
BOOL cli_RNetShareEnum ( struct cli_state * cli , void ( * fn ) ( const char * , uint32 , const char * ) ) ;
1998-08-09 17:25:34 +04:00
BOOL cli_NetServerEnum ( struct cli_state * cli , char * workgroup , uint32 stype ,
1998-10-04 15:25:06 +04:00
void ( * fn ) ( const char * , uint32 , const char * ) ) ;
1998-08-09 17:25:34 +04:00
BOOL cli_session_setup ( struct cli_state * cli ,
char * user ,
char * pass , int passlen ,
char * ntpass , int ntpasslen ,
char * workgroup ) ;
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 ) ;
1998-10-03 13:39:11 +04:00
BOOL cli_rename ( struct cli_state * cli , char * fname_src , char * fname_dst ) ;
1998-08-09 17:25:34 +04:00
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 ) ;
1998-10-09 23:34:57 +04:00
int cli_nt_create ( struct cli_state * cli , char * fname ) ;
1998-08-09 17:25:34 +04:00
int cli_open ( struct cli_state * cli , 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 ) ;
1998-10-03 19:01:11 +04:00
size_t cli_read ( struct cli_state * cli , int fnum , char * buf , off_t offset , size_t size ) ;
1998-10-19 21:32:10 +04:00
ssize_t cli_write ( struct cli_state * cli ,
1998-11-09 06:45:49 +03:00
int fnum , uint16 write_mode ,
char * buf , off_t offset , size_t size ) ;
1998-10-03 12:28:05 +04:00
BOOL cli_getattrE ( struct cli_state * cli , int fd ,
1998-11-09 23:33:37 +03:00
uint16 * attr , size_t * size ,
1998-10-03 12:28:05 +04:00
time_t * c_time , time_t * a_time , time_t * m_time ) ;
1998-08-09 17:25:34 +04:00
BOOL cli_getatr ( struct cli_state * cli , char * fname ,
1998-11-09 23:33:37 +03:00
uint16 * attr , size_t * size , time_t * t ) ;
BOOL cli_setatr ( struct cli_state * cli , char * fname , uint16 attr , time_t t ) ;
1998-10-04 08:33:56 +04:00
BOOL cli_qpathinfo ( struct cli_state * cli , const char * fname ,
1998-10-02 16:34:14 +04:00
time_t * c_time , time_t * a_time , time_t * m_time ,
1998-11-09 23:33:37 +03:00
size_t * size , uint16 * mode ) ;
1998-10-08 06:28:21 +04:00
BOOL cli_qpathinfo2 ( struct cli_state * cli , const char * fname ,
1998-08-09 17:25:34 +04:00
time_t * c_time , time_t * a_time , time_t * m_time ,
1998-11-09 23:33:37 +03:00
time_t * w_time , size_t * size , uint16 * mode ,
1998-10-24 12:08:05 +04:00
SMB_INO_T * ino ) ;
1998-08-09 17:25:34 +04:00
BOOL cli_qfileinfo ( struct cli_state * cli , int fnum ,
1998-11-09 23:33:37 +03:00
uint16 * mode , size_t * size ,
1998-10-24 12:08:05 +04:00
time_t * c_time , time_t * a_time , time_t * m_time ,
time_t * w_time , SMB_INO_T * ino ) ;
1998-11-09 23:33:37 +03:00
int cli_list ( struct cli_state * cli , const char * Mask , uint16 attribute ,
1998-11-09 06:45:49 +03:00
void ( * fn ) ( file_info * , const char * ) ) ;
1998-08-09 17:25:34 +04:00
BOOL cli_oem_change_password ( struct cli_state * cli , char * user , char * new_password ,
char * old_password ) ;
BOOL cli_negprot ( struct cli_state * cli ) ;
1998-09-26 01:01:52 +04:00
BOOL cli_session_request ( struct cli_state * cli ,
1998-10-04 15:25:06 +04:00
struct nmb_name * calling , struct nmb_name * called ) ;
1998-08-09 17:25:34 +04:00
BOOL cli_connect ( struct cli_state * cli , char * host , struct in_addr * ip ) ;
1998-11-09 06:45:49 +03:00
struct cli_state * cli_initialise ( struct cli_state * cli ) ;
1998-08-09 17:25:34 +04:00
void cli_shutdown ( struct cli_state * cli ) ;
1998-10-03 12:28:05 +04:00
int cli_error ( struct cli_state * cli , uint8 * eclass , uint32 * num ) ;
1998-08-09 17:25:34 +04:00
void cli_sockopt ( struct cli_state * cli , char * options ) ;
1998-09-30 00:24:17 +04:00
uint16 cli_setpid ( struct cli_state * cli , uint16 pid ) ;
1998-09-26 01:01:52 +04:00
BOOL cli_reestablish_connection ( struct cli_state * cli ) ;
BOOL cli_establish_connection ( struct cli_state * cli ,
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 ) ;
1998-10-04 14:14:21 +04:00
int cli_printjob_del ( struct cli_state * cli , int job ) ;
1998-10-04 13:42:51 +04:00
int cli_print_queue ( struct cli_state * cli ,
void ( * fn ) ( struct print_job_info * ) ) ;
1998-11-09 06:45:49 +03:00
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 ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 18:37:32 +04:00
/*The following definitions come from libsmb/credentials.c */
char * credstr ( uchar * cred ) ;
void cred_session_key ( DOM_CHAL * clnt_chal , DOM_CHAL * srv_chal , 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 ( 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 ,
DOM_CRED * rcv_clnt_cred , DOM_CRED * rtn_srv_cred ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from libsmb/namequery.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
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 , 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 , char * name , int * name_type , struct in_addr * ipaddr ) ;
void endlmhosts ( FILE * fp ) ;
1998-10-04 16:00:40 +04:00
BOOL resolve_name ( char * name , struct in_addr * return_ip , int name_type ) ;
1998-10-08 10:21:33 +04:00
BOOL find_master_ip ( char * group , struct in_addr * master_ip ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from libsmb/nmblib.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
void debug_nmb_packet ( struct packet_struct * p ) ;
char * namestr ( struct nmb_name * n ) ;
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 , char * name , int type , 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 ) ;
1998-08-30 12:45:23 +04:00
void sort_query_replies ( char * data , int n , struct in_addr ip ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from libsmb/nterr.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
char * get_nt_error_msg ( uint32 nt_code ) ;
1998-05-08 20:49:10 +04:00
1998-09-26 01:01:52 +04:00
/*The following definitions come from libsmb/pwd_cache.c */
void pwd_init ( struct pwd_info * pwd ) ;
void pwd_obfuscate_key ( struct pwd_info * pwd , uint32 int_key , char * str_key ) ;
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 ) ;
1998-09-29 01:43:48 +04:00
void pwd_set_lm_nt_16 ( struct pwd_info * pwd , uchar lm_pwd [ 16 ] , uchar nt_pwd [ 16 ] ) ;
void pwd_get_lm_nt_16 ( struct pwd_info * pwd , uchar lm_pwd [ 16 ] , uchar nt_pwd [ 16 ] ) ;
1998-09-26 01:01:52 +04:00
void pwd_make_lm_nt_16 ( struct pwd_info * pwd , char * clr ) ;
1998-09-29 01:43:48 +04:00
void pwd_make_lm_nt_owf ( struct pwd_info * pwd , uchar cryptkey [ 8 ] ) ;
void pwd_get_lm_nt_owf ( struct pwd_info * pwd , uchar lm_owf [ 24 ] , uchar nt_owf [ 24 ] ) ;
1998-09-26 01:01:52 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from libsmb/smbdes.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
void E_P16 ( unsigned char * p14 , unsigned char * p16 ) ;
void E_P24 ( unsigned char * p21 , unsigned char * c8 , unsigned char * p24 ) ;
void D_P16 ( unsigned char * p14 , unsigned char * in , unsigned char * out ) ;
void E_old_pw_hash ( unsigned char * p14 , unsigned char * in , unsigned char * out ) ;
void cred_hash1 ( unsigned char * out , unsigned char * in , unsigned char * key ) ;
void cred_hash2 ( unsigned char * out , unsigned char * in , unsigned char * key ) ;
void cred_hash3 ( unsigned char * out , unsigned char * in , unsigned char * key , int forw ) ;
1998-10-09 23:34:57 +04:00
void NTLMSSPcalc ( unsigned char hash [ 258 ] , unsigned char * data , int len ) ;
1998-08-09 17:25:34 +04:00
void SamOEMhash ( unsigned char * data , unsigned char * key , int val ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from libsmb/smbencrypt.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
void SMBencrypt ( uchar * passwd , uchar * c8 , uchar * p24 ) ;
void E_md4hash ( uchar * passwd , uchar * p16 ) ;
1998-09-26 01:01:52 +04:00
void nt_lm_owf_gen ( char * pwd , uchar nt_p16 [ 16 ] , uchar p16 [ 16 ] ) ;
1998-09-30 00:24:17 +04:00
void SMBOWFencrypt ( uchar passwd [ 16 ] , uchar * c8 , uchar p24 [ 24 ] ) ;
1998-10-08 01:42:24 +04:00
void NTLMSSPOWFencrypt ( uchar passwd [ 8 ] , uchar * ntlmchalresp , uchar p24 [ 24 ] ) ;
1998-08-09 17:25:34 +04:00
void SMBNTencrypt ( uchar * passwd , uchar * c8 , uchar * p24 ) ;
1998-10-19 21:32:10 +04:00
BOOL make_oem_passwd_hash ( char data [ 516 ] , char * passwd , uchar old_pw_hash [ 16 ] , BOOL unicode ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from libsmb/smberr.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
char * smb_errstr ( char * inbuf ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from locking/locking.c */
1998-05-08 20:49:10 +04:00
1998-08-15 11:27:34 +04:00
BOOL is_locked ( files_struct * fsp , connection_struct * conn ,
1998-09-04 04:23:28 +04:00
SMB_OFF_T count , SMB_OFF_T offset , int lock_type ) ;
1998-08-15 11:27:34 +04:00
BOOL do_lock ( files_struct * fsp , connection_struct * conn ,
1998-09-04 04:23:28 +04:00
SMB_OFF_T count , SMB_OFF_T offset , int lock_type ,
1998-08-09 17:25:34 +04:00
int * eclass , uint32 * ecode ) ;
1998-08-15 11:27:34 +04:00
BOOL do_unlock ( files_struct * fsp , connection_struct * conn ,
1998-09-04 04:23:28 +04:00
SMB_OFF_T count , SMB_OFF_T offset , int * eclass , uint32 * ecode ) ;
1998-08-09 17:25:34 +04:00
BOOL locking_init ( int read_only ) ;
BOOL locking_end ( void ) ;
1998-08-14 21:38:29 +04:00
BOOL lock_share_entry ( connection_struct * conn ,
1998-09-01 00:20:54 +04:00
SMB_DEV_T dev , SMB_INO_T inode , int * ptok ) ;
1998-08-14 21:38:29 +04:00
BOOL unlock_share_entry ( connection_struct * conn ,
1998-09-01 00:20:54 +04:00
SMB_DEV_T dev , SMB_INO_T inode , int token ) ;
1998-08-14 21:38:29 +04:00
int get_share_modes ( connection_struct * conn ,
1998-09-01 00:20:54 +04:00
int token , SMB_DEV_T dev , SMB_INO_T inode ,
1998-08-09 17:25:34 +04:00
share_mode_entry * * shares ) ;
1998-08-15 11:27:34 +04:00
void del_share_mode ( int token , files_struct * fsp ) ;
BOOL set_share_mode ( int token , files_struct * fsp , uint16 port , uint16 op_type ) ;
1998-10-23 07:34:50 +04:00
BOOL remove_share_oplock ( int token , files_struct * fsp ) ;
BOOL modify_share_mode ( int token , files_struct * fsp , int new_mode ) ;
1998-08-09 17:25:34 +04:00
int share_mode_forall ( void ( * fn ) ( share_mode_entry * , char * ) ) ;
void share_status ( FILE * f ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from locking/locking_shm.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
struct share_ops * locking_shm_init ( int ronly ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from locking/locking_slow.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
struct share_ops * locking_slow_init ( int ronly ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from locking/shmem.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
struct shmem_ops * smb_shm_open ( int ronly ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from locking/shmem_sysv.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
struct shmem_ops * sysv_shm_open ( int ronly ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 18:08:42 +04:00
/*The following definitions come from nmbd/asyncdns.c */
int asyncdns_fd ( void ) ;
void kill_async_dns_child ( void ) ;
void start_async_dns ( void ) ;
void run_dns_queue ( void ) ;
BOOL queue_dns_query ( struct packet_struct * p , struct nmb_name * question ,
struct name_record * * n ) ;
BOOL queue_dns_query ( struct packet_struct * p , struct nmb_name * question ,
struct name_record * * n ) ;
void kill_async_dns_child ( void ) ;
/*The following definitions come from nmbd/nmbd.c */
BOOL reload_services ( BOOL test ) ;
/*The following definitions come from nmbd/nmbd_become_dmb.c */
void add_domain_names ( time_t t ) ;
/*The following definitions come from nmbd/nmbd_become_lmb.c */
void insert_permanent_name_into_unicast ( struct subnet_record * subrec ,
struct nmb_name * nmbname , uint16 nb_type ) ;
void unbecome_local_master_browser ( struct subnet_record * subrec , struct work_record * work ,
BOOL force_new_election ) ;
void become_local_master_browser ( struct subnet_record * subrec , struct work_record * work ) ;
void set_workgroup_local_master_browser_name ( struct work_record * work , char * newname ) ;
/*The following definitions come from nmbd/nmbd_browserdb.c */
void update_browser_death_time ( struct browse_cache_record * browc ) ;
struct browse_cache_record * create_browser_in_lmb_cache ( char * work_name ,
char * browser_name ,
struct in_addr ip ) ;
struct browse_cache_record * find_browser_in_lmb_cache ( char * browser_name ) ;
void expire_lmb_browsers ( time_t t ) ;
/*The following definitions come from nmbd/nmbd_browsesync.c */
void dmb_expire_and_sync_browser_lists ( time_t t ) ;
void announce_and_sync_with_domain_master_browser ( struct subnet_record * subrec ,
struct work_record * work ) ;
void collect_all_workgroup_names_from_wins_server ( time_t t ) ;
1998-08-30 19:58:17 +04:00
void sync_all_dmbs ( time_t t ) ;
1998-08-09 18:08:42 +04:00
/*The following definitions come from nmbd/nmbd_elections.c */
void check_master_browser_exists ( time_t t ) ;
void run_elections ( time_t t ) ;
void process_election ( struct subnet_record * subrec , struct packet_struct * p , char * buf ) ;
BOOL check_elections ( void ) ;
/*The following definitions come from nmbd/nmbd_incomingdgrams.c */
void tell_become_backup ( void ) ;
void process_host_announce ( struct subnet_record * subrec , struct packet_struct * p , char * buf ) ;
void process_workgroup_announce ( struct subnet_record * subrec , struct packet_struct * p , char * buf ) ;
void process_local_master_announce ( struct subnet_record * subrec , struct packet_struct * p , char * buf ) ;
void process_master_browser_announce ( struct subnet_record * subrec ,
struct packet_struct * p , char * buf ) ;
void process_lm_host_announce ( struct subnet_record * subrec , struct packet_struct * p , char * buf ) ;
void process_get_backup_list_request ( struct subnet_record * subrec ,
struct packet_struct * p , char * buf ) ;
void process_reset_browser ( struct subnet_record * subrec ,
struct packet_struct * p , char * buf ) ;
void process_announce_request ( struct subnet_record * subrec , struct packet_struct * p , char * buf ) ;
void process_lm_announce_request ( struct subnet_record * subrec , struct packet_struct * p , char * buf ) ;
/*The following definitions come from nmbd/nmbd_incomingrequests.c */
void process_name_release_request ( struct subnet_record * subrec ,
struct packet_struct * p ) ;
void process_name_refresh_request ( struct subnet_record * subrec ,
struct packet_struct * p ) ;
void process_name_registration_request ( struct subnet_record * subrec ,
struct packet_struct * p ) ;
void process_node_status_request ( struct subnet_record * subrec , struct packet_struct * p ) ;
void process_name_query_request ( struct subnet_record * subrec , struct packet_struct * p ) ;
/*The following definitions come from nmbd/nmbd_lmhosts.c */
void load_lmhosts_file ( char * fname ) ;
BOOL find_name_in_lmhosts ( struct nmb_name * nmbname , struct name_record * * namerecp ) ;
/*The following definitions come from nmbd/nmbd_logonnames.c */
void add_logon_names ( void ) ;
/*The following definitions come from nmbd/nmbd_mynames.c */
BOOL register_my_workgroup_and_names ( void ) ;
void release_my_names ( void ) ;
void refresh_my_names ( time_t t ) ;
/*The following definitions come from nmbd/nmbd_namelistdb.c */
void set_samba_nb_type ( void ) ;
void remove_name_from_namelist ( struct subnet_record * subrec ,
struct name_record * namerec ) ;
struct name_record * find_name_on_subnet ( struct subnet_record * subrec ,
struct nmb_name * nmbname ,
BOOL self_only ) ;
struct name_record * find_name_for_remote_broadcast_subnet (
struct nmb_name * nmbname ,
BOOL self_only ) ;
void update_name_ttl ( struct name_record * namerec , int ttl ) ;
struct name_record * add_name_to_subnet ( struct subnet_record * subrec ,
char * name ,
int type ,
uint16 nb_flags ,
int ttl ,
enum name_source source ,
int num_ips ,
struct in_addr * iplist ) ;
void standard_success_register ( struct subnet_record * subrec ,
struct userdata_struct * userdata ,
struct nmb_name * nmbname , uint16 nb_flags , int ttl ,
struct in_addr registered_ip ) ;
void standard_fail_register ( struct subnet_record * subrec ,
struct response_record * rrec ,
struct nmb_name * nmbname ) ;
BOOL find_ip_in_name_record ( struct name_record * namerec , struct in_addr ip ) ;
void add_ip_to_name_record ( struct name_record * namerec , struct in_addr new_ip ) ;
void remove_ip_from_name_record ( struct name_record * namerec ,
struct in_addr remove_ip ) ;
void standard_success_release ( struct subnet_record * subrec ,
struct userdata_struct * userdata ,
struct nmb_name * nmbname ,
struct in_addr released_ip ) ;
void expire_names_on_subnet ( struct subnet_record * subrec , time_t t ) ;
void expire_names ( time_t t ) ;
void add_samba_names_to_subnet ( struct subnet_record * subrec ) ;
void dump_all_namelists ( void ) ;
/*The following definitions come from nmbd/nmbd_namequery.c */
BOOL query_name ( struct subnet_record * subrec , char * name , int type ,
query_name_success_function success_fn ,
query_name_fail_function fail_fn ,
struct userdata_struct * userdata ) ;
BOOL query_name_from_wins_server ( struct in_addr ip_to ,
char * name , int type ,
query_name_success_function success_fn ,
query_name_fail_function fail_fn ,
struct userdata_struct * userdata ) ;
/*The following definitions come from nmbd/nmbd_nameregister.c */
BOOL register_name ( struct subnet_record * subrec ,
char * name , int type , uint16 nb_flags ,
register_name_success_function success_fn ,
register_name_fail_function fail_fn ,
struct userdata_struct * userdata ) ;
BOOL refresh_name ( struct subnet_record * subrec , struct name_record * namerec ,
refresh_name_success_function success_fn ,
refresh_name_fail_function fail_fn ,
struct userdata_struct * userdata ) ;
/*The following definitions come from nmbd/nmbd_namerelease.c */
BOOL release_name ( struct subnet_record * subrec , struct name_record * namerec ,
release_name_success_function success_fn ,
release_name_fail_function fail_fn ,
struct userdata_struct * userdata ) ;
/*The following definitions come from nmbd/nmbd_nodestatus.c */
BOOL node_status ( struct subnet_record * subrec , struct nmb_name * nmbname ,
struct in_addr send_ip , node_status_success_function success_fn ,
node_status_fail_function fail_fn , struct userdata_struct * userdata ) ;
/*The following definitions come from nmbd/nmbd_packets.c */
uint16 get_nb_flags ( char * buf ) ;
void set_nb_flags ( char * buf , uint16 nb_flags ) ;
struct response_record * queue_register_name ( struct subnet_record * subrec ,
response_function resp_fn ,
timeout_response_function timeout_fn ,
register_name_success_function success_fn ,
register_name_fail_function fail_fn ,
struct userdata_struct * userdata ,
struct nmb_name * nmbname ,
uint16 nb_flags ) ;
struct response_record * queue_register_multihomed_name ( struct subnet_record * subrec ,
response_function resp_fn ,
timeout_response_function timeout_fn ,
register_name_success_function success_fn ,
register_name_fail_function fail_fn ,
struct userdata_struct * userdata ,
struct nmb_name * nmbname ,
uint16 nb_flags ,
struct in_addr register_ip ) ;
struct response_record * queue_release_name ( struct subnet_record * subrec ,
response_function resp_fn ,
timeout_response_function timeout_fn ,
release_name_success_function success_fn ,
release_name_fail_function fail_fn ,
struct userdata_struct * userdata ,
struct nmb_name * nmbname ,
uint16 nb_flags ,
struct in_addr release_ip ) ;
struct response_record * queue_refresh_name ( struct subnet_record * subrec ,
response_function resp_fn ,
timeout_response_function timeout_fn ,
refresh_name_success_function success_fn ,
refresh_name_fail_function fail_fn ,
struct userdata_struct * userdata ,
struct name_record * namerec ,
struct in_addr refresh_ip ) ;
struct response_record * queue_query_name ( struct subnet_record * subrec ,
response_function resp_fn ,
timeout_response_function timeout_fn ,
query_name_success_function success_fn ,
query_name_fail_function fail_fn ,
struct userdata_struct * userdata ,
struct nmb_name * nmbname ) ;
struct response_record * queue_query_name_from_wins_server ( struct in_addr to_ip ,
response_function resp_fn ,
timeout_response_function timeout_fn ,
query_name_success_function success_fn ,
query_name_fail_function fail_fn ,
struct userdata_struct * userdata ,
struct nmb_name * nmbname ) ;
struct response_record * queue_node_status ( struct subnet_record * subrec ,
response_function resp_fn ,
timeout_response_function timeout_fn ,
node_status_success_function success_fn ,
node_status_fail_function fail_fn ,
struct userdata_struct * userdata ,
struct nmb_name * nmbname ,
struct in_addr send_ip ) ;
void reply_netbios_packet ( struct packet_struct * orig_packet ,
int rcode , enum netbios_reply_type_code rcv_code , int opcode ,
int ttl , char * data , int len ) ;
void run_packet_queue ( void ) ;
void retransmit_or_expire_response_records ( time_t t ) ;
BOOL listen_for_packets ( BOOL run_election ) ;
BOOL send_mailslot ( BOOL unique , char * mailslot , char * buf , int len ,
char * srcname , int src_type ,
char * dstname , int dest_type ,
1998-08-30 21:04:24 +04:00
struct in_addr dest_ip , struct in_addr src_ip ,
int dest_port ) ;
1998-08-09 18:08:42 +04:00
/*The following definitions come from nmbd/nmbd_processlogon.c */
void process_logon_packet ( struct packet_struct * p , char * buf , int len ,
char * mailslot ) ;
/*The following definitions come from nmbd/nmbd_responserecordsdb.c */
void remove_response_record ( struct subnet_record * subrec ,
struct response_record * rrec ) ;
struct response_record * make_response_record ( struct subnet_record * subrec ,
struct packet_struct * p ,
response_function resp_fn ,
timeout_response_function timeout_fn ,
success_function success_fn ,
fail_function fail_fn ,
struct userdata_struct * userdata ) ;
struct response_record * find_response_record ( struct subnet_record * * ppsubrec ,
uint16 id ) ;
BOOL is_refresh_already_queued ( struct subnet_record * subrec , struct name_record * namerec ) ;
/*The following definitions come from nmbd/nmbd_sendannounce.c */
void send_browser_reset ( int reset_type , char * to_name , int to_type , struct in_addr to_ip ) ;
void broadcast_announce_request ( struct subnet_record * subrec , struct work_record * work ) ;
void announce_my_server_names ( time_t t ) ;
void announce_my_lm_server_names ( time_t t ) ;
void reset_announce_timer ( void ) ;
void announce_myself_to_domain_master_browser ( time_t t ) ;
void announce_my_servers_removed ( void ) ;
void announce_remote ( time_t t ) ;
void browse_sync_remote ( time_t t ) ;
/*The following definitions come from nmbd/nmbd_serverlistdb.c */
void remove_all_servers ( struct work_record * work ) ;
struct server_record * find_server_in_workgroup ( struct work_record * work , char * name ) ;
void remove_server_from_workgroup ( struct work_record * work , struct server_record * servrec ) ;
struct server_record * create_server_on_workgroup ( struct work_record * work ,
char * name , int servertype ,
int ttl , char * comment ) ;
void update_server_ttl ( struct server_record * servrec , int ttl ) ;
void expire_servers ( struct work_record * work , time_t t ) ;
void write_browse_list ( time_t t , BOOL force_write ) ;
/*The following definitions come from nmbd/nmbd_subnetdb.c */
BOOL create_subnets ( void ) ;
BOOL we_are_a_wins_client ( void ) ;
struct subnet_record * get_next_subnet_maybe_unicast ( struct subnet_record * subrec ) ;
struct subnet_record * get_next_subnet_maybe_unicast_or_wins_server ( struct subnet_record * subrec ) ;
1998-08-30 19:58:17 +04:00
/*The following definitions come from nmbd/nmbd_synclists.c */
void sync_browse_lists ( struct work_record * work ,
char * name , int nm_type ,
struct in_addr ip , BOOL local , BOOL servers ) ;
void sync_check_completion ( void ) ;
1998-08-09 18:08:42 +04:00
/*The following definitions come from nmbd/nmbd_winsproxy.c */
void make_wins_proxy_name_query_request ( struct subnet_record * subrec ,
struct packet_struct * incoming_packet ,
struct nmb_name * question_name ) ;
/*The following definitions come from nmbd/nmbd_winsserver.c */
BOOL packet_is_for_wins_server ( struct packet_struct * packet ) ;
BOOL initialise_wins ( void ) ;
void wins_process_name_refresh_request ( struct subnet_record * subrec ,
struct packet_struct * p ) ;
void wins_process_name_registration_request ( struct subnet_record * subrec ,
struct packet_struct * p ) ;
void wins_process_multihomed_name_registration_request ( struct subnet_record * subrec ,
struct packet_struct * p ) ;
void send_wins_name_query_response ( int rcode , struct packet_struct * p ,
struct name_record * namerec ) ;
void wins_process_name_query_request ( struct subnet_record * subrec ,
struct packet_struct * p ) ;
void wins_process_name_release_request ( struct subnet_record * subrec ,
struct packet_struct * p ) ;
void initiate_wins_processing ( time_t t ) ;
1998-09-17 10:36:08 +04:00
void wins_write_database ( BOOL background ) ;
1998-08-09 18:08:42 +04:00
/*The following definitions come from nmbd/nmbd_workgroupdb.c */
struct work_record * find_workgroup_on_subnet ( struct subnet_record * subrec ,
fstring name ) ;
struct work_record * create_workgroup_on_subnet ( struct subnet_record * subrec ,
fstring name , int ttl ) ;
void update_workgroup_ttl ( struct work_record * work , int ttl ) ;
void initiate_myworkgroup_startup ( struct subnet_record * subrec , struct work_record * work ) ;
void dump_workgroups ( BOOL force_write ) ;
void expire_workgroups_and_servers ( time_t t ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from param/loadparm.c */
1998-05-08 20:49:10 +04:00
char * lp_logfile ( void ) ;
char * lp_smbrun ( void ) ;
char * lp_configfile ( void ) ;
char * lp_smb_passwd_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_username_map ( void ) ;
1998-09-08 23:21:04 +04:00
char * lp_groupname_map ( void ) ;
1998-05-08 20:49:10 +04:00
char * lp_logon_script ( void ) ;
char * lp_logon_path ( void ) ;
char * lp_logon_drive ( void ) ;
char * lp_logon_home ( 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 ) ;
1998-08-21 15:37:40 +04:00
char * lp_panic_action ( void ) ;
1998-05-08 20:49:10 +04:00
char * lp_domain_groups ( void ) ;
1998-06-04 19:24:20 +04:00
char * lp_domain_admin_group ( void ) ;
char * lp_domain_guest_group ( void ) ;
1998-05-08 20:49:10 +04:00
char * lp_domain_admin_users ( void ) ;
char * lp_domain_guest_users ( void ) ;
char * lp_ldap_server ( void ) ;
char * lp_ldap_suffix ( void ) ;
char * lp_ldap_filter ( void ) ;
char * lp_ldap_root ( void ) ;
char * lp_ldap_rootpasswd ( void ) ;
1998-06-16 05:35:52 +04:00
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 ) ;
1998-05-08 20:49:10 +04:00
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_master ( void ) ;
BOOL lp_domain_logons ( void ) ;
BOOL lp_preferred_master ( 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_syslog_only ( void ) ;
1998-08-03 23:07:55 +04:00
BOOL lp_timestamp_logs ( void ) ;
1998-05-08 20:49:10 +04:00
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 ) ;
1998-07-31 01:18:57 +04:00
BOOL lp_ole_locking_compat ( void ) ;
1998-09-05 07:14:40 +04:00
BOOL lp_nt_smb_support ( void ) ;
1998-10-18 23:45:05 +04:00
BOOL lp_nt_pipe_support ( void ) ;
1998-09-06 05:37:14 +04:00
BOOL lp_stat_cache ( void ) ;
1998-05-08 20:49:10 +04:00
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 ) ;
1998-09-30 05:49:24 +04:00
int lp_max_open_files ( void ) ;
1998-05-08 20:49:10 +04:00
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 ) ;
1998-05-27 04:30:52 +04:00
int lp_machine_password_timeout ( void ) ;
1998-08-03 23:07:55 +04:00
int lp_change_notify_timeout ( void ) ;
1998-08-29 01:46:29 +04:00
int lp_stat_cache_size ( void ) ;
1998-11-10 23:51:25 +03:00
int lp_map_to_guest ( void ) ;
1998-05-08 20:49:10 +04:00
int lp_ldap_port ( void ) ;
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 ) ;
1998-07-16 04:06:29 +04:00
char * lp_queuepausecommand ( int ) ;
char * lp_queueresumecommand ( int ) ;
1998-05-08 20:49:10 +04:00
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 ) ;
1998-09-20 19:48:35 +04:00
char * lp_fstype ( int ) ;
1998-05-08 20:49:10 +04:00
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 ) ;
1998-07-28 22:15:31 +04:00
BOOL lp_strict_sync ( int ) ;
1998-05-08 20:49:10 +04:00
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 ) ;
1998-09-08 23:21:04 +04:00
BOOL lp_blocking_locks ( int ) ;
1998-05-08 20:49:10 +04:00
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 ) ;
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 ) ;
1998-08-14 21:38:29 +04:00
void lp_add_one_printer ( char * name , char * comment ) ;
1998-05-08 20:49:10 +04:00
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 ) ;
1998-09-18 21:50:18 +04:00
void lp_set_kernel_oplocks ( BOOL val ) ;
1998-09-30 05:49:24 +04:00
BOOL lp_kernel_oplocks ( void ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from param/params.c */
BOOL pm_process ( char * FileName ,
BOOL ( * sfunc ) ( char * ) ,
BOOL ( * pfunc ) ( char * , char * ) ) ;
1998-08-14 06:02:40 +04:00
/*The following definitions come from passdb/ldap.c */
struct passdb_ops * ldap_initialize_password_db ( void ) ;
/*The following definitions come from passdb/nispass.c */
struct passdb_ops * nisplus_initialize_password_db ( void ) ;
1998-08-10 11:04:53 +04:00
/*The following definitions come from passdb/pass_check.c */
void dfs_unlogin ( void ) ;
BOOL pass_check ( char * user , char * password , int pwlen , struct passwd * pwd ,
BOOL ( * fn ) ( char * , char * ) ) ;
1998-08-09 18:20:02 +04:00
/*The following definitions come from passdb/passdb.c */
BOOL initialize_password_db ( void ) ;
1998-10-22 01:11:16 +04:00
struct smb_passwd * iterate_getsmbpwrid ( uint32 user_rid ) ;
1998-08-09 18:20:02 +04:00
struct smb_passwd * iterate_getsmbpwuid ( uid_t smb_userid ) ;
struct smb_passwd * iterate_getsmbpwnam ( char * name ) ;
void * startsmbpwent ( BOOL update ) ;
void endsmbpwent ( void * vp ) ;
struct smb_passwd * getsmbpwent ( void * vp ) ;
BOOL add_smbpwd_entry ( struct smb_passwd * newpwd ) ;
BOOL mod_smbpwd_entry ( struct smb_passwd * pwd , BOOL override ) ;
struct smb_passwd * getsmbpwnam ( char * name ) ;
1998-10-22 01:11:16 +04:00
struct smb_passwd * getsmbpwrid ( uint32 user_rid ) ;
1998-08-09 18:20:02 +04:00
struct smb_passwd * getsmbpwuid ( uid_t smb_userid ) ;
struct sam_passwd * iterate_getsam21pwnam ( char * name ) ;
struct sam_passwd * iterate_getsam21pwrid ( uint32 rid ) ;
struct sam_passwd * iterate_getsam21pwuid ( uid_t uid ) ;
struct sam_disp_info * getsamdisprid ( uint32 rid ) ;
struct sam_passwd * getsam21pwent ( void * vp ) ;
struct sam_passwd * getsam21pwnam ( char * name ) ;
struct sam_passwd * getsam21pwrid ( uint32 rid ) ;
void pdb_init_smb ( struct smb_passwd * user ) ;
void pdb_init_sam ( struct sam_passwd * user ) ;
struct sam_disp_info * pdb_sam_to_dispinfo ( struct sam_passwd * user ) ;
struct smb_passwd * pdb_sam_to_smb ( struct sam_passwd * user ) ;
1998-09-29 21:59:16 +04:00
struct sam_passwd * pdb_smb_to_sam ( struct smb_passwd * user ) ;
1998-09-25 02:33:13 +04:00
char * pdb_encode_acct_ctrl ( uint16 acct_ctrl , size_t length ) ;
1998-08-09 18:20:02 +04:00
uint16 pdb_decode_acct_ctrl ( char * p ) ;
1998-09-29 21:56:12 +04:00
time_t pdb_get_last_set_time ( char * p ) ;
void pdb_set_logon_time ( char * p , int max_len , time_t t ) ;
void pdb_set_logoff_time ( char * p , int max_len , time_t t ) ;
void pdb_set_kickoff_time ( char * p , int max_len , time_t t ) ;
void pdb_set_can_change_time ( char * p , int max_len , time_t t ) ;
void pdb_set_must_change_time ( char * p , int max_len , time_t t ) ;
void pdb_set_last_set_time ( char * p , int max_len , time_t t ) ;
void pdb_sethexpwd ( char * p , char * pwd , uint16 acct_ctrl ) ;
1998-08-09 18:20:02 +04:00
BOOL pdb_gethexpwd ( char * p , char * pwd ) ;
BOOL pdb_name_to_rid ( char * user_name , uint32 * u_rid , uint32 * g_rid ) ;
1998-10-22 02:36:26 +04:00
BOOL pdb_generate_sam_sid ( void ) ;
1998-10-22 01:11:16 +04:00
uid_t pdb_user_rid_to_uid ( uint32 user_rid ) ;
1998-08-09 18:20:02 +04:00
uint32 pdb_uid_to_user_rid ( uid_t uid ) ;
uint32 pdb_gid_to_group_rid ( gid_t gid ) ;
BOOL pdb_rid_is_user ( uint32 rid ) ;
/*The following definitions come from passdb/smbpass.c */
struct passdb_ops * file_initialize_password_db ( void ) ;
/*The following definitions come from passdb/smbpassfile.c */
BOOL pw_file_lock ( int fd , int type , int secs , int * plock_depth ) ;
BOOL pw_file_unlock ( int fd , int * plock_depth ) ;
BOOL trust_password_lock ( char * domain , char * name , BOOL update ) ;
BOOL trust_password_unlock ( void ) ;
BOOL trust_password_delete ( char * domain , char * name ) ;
BOOL get_trust_account_password ( unsigned char * ret_pwd , time_t * pass_last_set_time ) ;
BOOL set_trust_account_password ( unsigned char * md4_new_pwd ) ;
1998-10-16 10:16:10 +04:00
BOOL trust_get_passwd ( unsigned char trust_passwd [ 16 ] , char * domain , char * myname ) ;
1998-08-09 18:20:02 +04:00
1998-08-15 07:26:52 +04:00
/*The following definitions come from printing/pcap.c */
BOOL pcap_printername_ok ( char * pszPrintername , char * pszPrintcapname ) ;
void pcap_printer_fn ( void ( * fn ) ( char * , char * ) ) ;
/*The following definitions come from printing/print_svid.c */
void sysv_printer_fn ( void ( * fn ) ( char * , char * ) ) ;
int sysv_printername_ok ( char * name ) ;
/*The following definitions come from printing/printing.c */
void lpq_reset ( int snum ) ;
void print_file ( connection_struct * conn , files_struct * file ) ;
int get_printqueue ( int snum ,
connection_struct * conn , print_queue_struct * * queue ,
print_status_struct * status ) ;
void del_printqueue ( connection_struct * conn , int snum , int jobid ) ;
void status_printjob ( connection_struct * conn , int snum , int jobid , int status ) ;
int printjob_encode ( int snum , int job ) ;
void printjob_decode ( int jobid , int * snum , int * job ) ;
void status_printqueue ( connection_struct * conn , int snum , int status ) ;
void load_printers ( void ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_client/cli_login.c */
BOOL cli_nt_setup_creds ( struct cli_state * cli , unsigned char mach_pwd [ 16 ] ) ;
BOOL cli_nt_srv_pwset ( struct cli_state * cli , unsigned char * new_hashof_mach_pwd ) ;
BOOL cli_nt_login_interactive ( struct cli_state * cli , char * domain , char * username ,
uint32 smb_userid_low , char * password ,
NET_ID_INFO_CTR * ctr , NET_USER_INFO_3 * user_info3 ) ;
BOOL cli_nt_login_network ( struct cli_state * cli , char * domain , char * username ,
uint32 smb_userid_low , char lm_chal [ 8 ] , char lm_chal_resp [ 24 ] ,
char nt_chal_resp [ 24 ] ,
NET_ID_INFO_CTR * ctr , NET_USER_INFO_3 * user_info3 ) ;
BOOL cli_nt_logoff ( struct cli_state * cli , NET_ID_INFO_CTR * ctr ) ;
1998-09-26 01:01:52 +04:00
/*The following definitions come from rpc_client/cli_lsarpc.c */
BOOL do_lsa_open_policy ( struct cli_state * cli ,
1998-09-30 23:09:57 +04:00
char * server_name , POLICY_HND * hnd ,
BOOL sec_qos ) ;
BOOL do_lsa_lookup_sids ( struct cli_state * cli ,
POLICY_HND * hnd ,
int num_sids ,
DOM_SID * * sids ,
char * * names ) ;
1998-09-26 01:01:52 +04:00
BOOL do_lsa_query_info_pol ( struct cli_state * cli ,
POLICY_HND * hnd , uint16 info_class ,
fstring domain_name , fstring domain_sid ) ;
BOOL do_lsa_close ( struct cli_state * cli , POLICY_HND * hnd ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_client/cli_netlogon.c */
BOOL cli_net_logon_ctrl2 ( struct cli_state * cli , uint32 status_level ) ;
BOOL cli_net_auth2 ( struct cli_state * cli , uint16 sec_chan ,
uint32 neg_flags , DOM_CHAL * srv_chal ) ;
BOOL cli_net_req_chal ( struct cli_state * cli , DOM_CHAL * clnt_chal , DOM_CHAL * srv_chal ) ;
BOOL cli_net_srv_pwset ( struct cli_state * cli , uint8 hashed_mach_pwd [ 16 ] ) ;
BOOL cli_net_sam_logon ( struct cli_state * cli , NET_ID_INFO_CTR * ctr ,
NET_USER_INFO_3 * user_info3 ) ;
BOOL cli_net_sam_logoff ( struct cli_state * cli , NET_ID_INFO_CTR * ctr ) ;
BOOL change_trust_account_password ( char * domain , char * remote_machine_list ) ;
/*The following definitions come from rpc_client/cli_pipe.c */
BOOL rpc_api_pipe_req ( struct cli_state * cli , uint8 op_num ,
prs_struct * data , prs_struct * rdata ) ;
1998-10-17 01:36:19 +04:00
void cli_nt_set_ntlmssp_flgs ( struct cli_state * cli , uint32 ntlmssp_flgs ) ;
1998-10-17 00:08:56 +04:00
BOOL cli_nt_session_open ( struct cli_state * cli , char * pipe_name ) ;
1998-08-09 17:25:34 +04:00
void cli_nt_session_close ( struct cli_state * cli ) ;
1998-11-10 22:05:00 +03:00
/*The following definitions come from rpc_client/cli_reg.c */
BOOL do_reg_open_policy ( struct cli_state * cli , uint16 unknown_0 , uint32 level ,
POLICY_HND * hnd ) ;
BOOL do_reg_open_unk_4 ( struct cli_state * cli , uint16 unknown_0 , uint32 level ,
POLICY_HND * hnd ) ;
1998-11-11 01:03:34 +03:00
BOOL do_reg_unk_b ( struct cli_state * cli , POLICY_HND * hnd ) ;
1998-11-10 22:05:00 +03:00
BOOL do_reg_query_key ( struct cli_state * cli , POLICY_HND * hnd ,
char * class , uint32 * class_len ,
uint32 * num_subkeys , uint32 * max_subkeylen ,
uint32 * max_subkeysize , uint32 * num_values ,
uint32 * max_valnamelen , uint32 * max_valbufsize ,
uint32 * sec_desc , NTTIME * mod_time ) ;
BOOL do_reg_unknown_1a ( struct cli_state * cli , POLICY_HND * hnd , uint32 * unk ) ;
BOOL do_reg_query_info ( struct cli_state * cli , POLICY_HND * hnd ,
char * type , uint32 * unk_0 , uint32 * unk_1 ) ;
BOOL do_reg_get_key_sec ( struct cli_state * cli , POLICY_HND * hnd ,
uint32 * sec_buf_size , SEC_DESC_BUF * sec_buf ) ;
1998-11-11 01:14:05 +03:00
BOOL do_reg_delete_key ( struct cli_state * cli , POLICY_HND * hnd , char * key_name ) ;
1998-11-10 22:05:00 +03:00
BOOL do_reg_create_key ( struct cli_state * cli , POLICY_HND * hnd ,
char * key_name , char * key_class ,
SEC_INFO * sam_access ,
POLICY_HND * key ) ;
BOOL do_reg_enum_key ( struct cli_state * cli , POLICY_HND * hnd ,
int key_index , char * key_name ,
uint32 * unk_1 , uint32 * unk_2 ,
time_t * mod_time ) ;
BOOL do_reg_create_val ( struct cli_state * cli , POLICY_HND * hnd ,
char * val_name , uint32 type , BUFFER3 * data ) ;
BOOL do_reg_enum_val ( struct cli_state * cli , POLICY_HND * hnd ,
int val_index , int max_valnamelen , int max_valbufsize ,
fstring val_name ,
uint32 * val_type , BUFFER2 * value ) ;
BOOL do_reg_open_entry ( struct cli_state * cli , POLICY_HND * hnd ,
char * key_name , uint32 unk_0 ,
POLICY_HND * key_hnd ) ;
BOOL do_reg_close ( struct cli_state * cli , POLICY_HND * hnd ) ;
1998-09-26 02:20:05 +04:00
/*The following definitions come from rpc_client/cli_samr.c */
BOOL get_samr_query_usergroups ( struct cli_state * cli ,
POLICY_HND * pol_open_domain , uint32 user_rid ,
uint32 * num_groups , DOM_GID * gid ) ;
BOOL get_samr_query_userinfo ( struct cli_state * cli ,
POLICY_HND * pol_open_domain ,
uint32 info_level ,
uint32 user_rid , SAM_USER_INFO_21 * usr ) ;
1998-10-10 03:31:50 +04:00
BOOL do_samr_chgpasswd_user ( struct cli_state * cli ,
char * srv_name , char * user_name ,
1998-10-21 20:58:34 +04:00
char nt_newpass [ 516 ] , uchar nt_oldhash [ 16 ] ,
char lm_newpass [ 516 ] , uchar lm_oldhash [ 16 ] ) ;
1998-10-09 23:05:19 +04:00
BOOL do_samr_unknown_38 ( struct cli_state * cli , char * srv_name ) ;
1998-10-22 02:36:26 +04:00
BOOL do_samr_query_dom_info ( struct cli_state * cli ,
1998-09-26 02:20:05 +04:00
POLICY_HND * domain_pol , uint16 switch_value ) ;
BOOL do_samr_enum_dom_users ( struct cli_state * cli ,
POLICY_HND * pol , uint16 num_entries , uint16 unk_0 ,
uint16 acb_mask , uint16 unk_1 , uint32 size ,
1998-09-26 03:14:20 +04:00
struct acct_info * * sam ,
1998-09-26 02:20:05 +04:00
int * num_sam_users ) ;
BOOL do_samr_connect ( struct cli_state * cli ,
char * srv_name , uint32 unknown_0 ,
POLICY_HND * connect_pol ) ;
BOOL do_samr_open_user ( struct cli_state * cli ,
POLICY_HND * pol , uint32 unk_0 , uint32 rid ,
POLICY_HND * user_pol ) ;
BOOL do_samr_open_domain ( struct cli_state * cli ,
POLICY_HND * connect_pol , uint32 rid , DOM_SID * sid ,
POLICY_HND * domain_pol ) ;
BOOL do_samr_query_unknown_12 ( struct cli_state * cli ,
POLICY_HND * pol , uint32 rid , uint32 num_gids , uint32 * gids ,
uint32 * num_aliases ,
fstring als_names [ MAX_LOOKUP_SIDS ] ,
uint32 num_als_users [ MAX_LOOKUP_SIDS ] ) ;
BOOL do_samr_query_usergroups ( struct cli_state * cli ,
POLICY_HND * pol , uint32 * num_groups , DOM_GID * gid ) ;
BOOL do_samr_query_userinfo ( struct cli_state * cli ,
POLICY_HND * pol , uint16 switch_value , void * usr ) ;
BOOL do_samr_close ( struct cli_state * cli , POLICY_HND * hnd ) ;
Makefile.in :
- added srvsvc client files
clientgen.c :
- replaced cli_error(cli, int *cls, int *err) with
cli_error(cli, uint8 cls, uint32 *err). this version detects
32 bit status messages. the DOS error "MORE_DATA", the
equivalent of the 32 bit *warning* 0x8000 0005
(STATUS_BUFFER_OVERFLOW), was being processed as an error,
terminating the cli_receive_trans() call.
cli_pipe.c :
- replaced calls that had been incorrectly modified from
32 bit warnings (0x8000 0005 - STATUS_BUFFER_OVERFLOW)
to 8 bit DOS errors (0x01 0xEA - MORE_DATA).
the use of the old version of cli_error (DOS only)
instead of the new one (DOS and 32 bit) caused the
dce/rpc client code to fail.
- replaced 2 space indentation with tab indentation in all functions.
cli_srvsvc.c :
cmd_srvsvc.c :
- added these files back in, fixing them up to use jeremy's
modified versions of the dce/rpc client functions.
parse_srv.c :
- added back in some "unused" functions required by dce/rpc
client-side code. it would be helpful if all such "unused"
functions could be added back in.
rpcclient.c :
- added "session", "file", "share", "connection" enumeration
functions back in. these are equivalent to nt's "NetXXXXXEnum"
Win32 (MSDN) functions.
- added "srvinfo" function back in. this is equivalent to
nt's NetServerGetInfo Win32 (MSDN) function.
(This used to be commit bcf39ffdcc64e049bca2d70a394a99976291e81d)
1998-10-03 01:09:23 +04:00
/*The following definitions come from rpc_client/cli_srvsvc.c */
BOOL do_srv_net_srv_conn_enum ( struct cli_state * cli ,
char * server_name , char * qual_name ,
uint32 switch_value , SRV_CONN_INFO_CTR * ctr ,
uint32 preferred_len ,
ENUM_HND * hnd ) ;
BOOL do_srv_net_srv_sess_enum ( struct cli_state * cli ,
char * server_name , char * qual_name ,
uint32 switch_value , SRV_SESS_INFO_CTR * ctr ,
uint32 preferred_len ,
ENUM_HND * hnd ) ;
BOOL do_srv_net_srv_share_enum ( struct cli_state * cli ,
char * server_name ,
uint32 switch_value , SRV_SHARE_INFO_CTR * ctr ,
uint32 preferred_len ,
ENUM_HND * hnd ) ;
BOOL do_srv_net_srv_file_enum ( struct cli_state * cli ,
char * server_name , char * qual_name ,
uint32 switch_value , SRV_FILE_INFO_CTR * ctr ,
uint32 preferred_len ,
ENUM_HND * hnd ) ;
BOOL do_srv_net_srv_get_info ( struct cli_state * cli ,
char * server_name , uint32 switch_value , SRV_INFO_CTR * ctr ) ;
1998-09-26 01:20:37 +04:00
/*The following definitions come from rpc_client/cli_wkssvc.c */
BOOL do_wks_query_info ( struct cli_state * cli ,
char * server_name , uint32 switch_value ,
WKS_INFO_100 * wks100 ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_parse/parse_lsa.c */
1998-10-22 22:15:23 +04:00
void make_lsa_trans_name ( LSA_TRANS_NAME * trn , UNISTR2 * uni_name ,
uint32 sid_name_use , char * name , uint32 idx ) ;
1998-09-30 23:09:57 +04:00
void make_lsa_sec_qos ( LSA_SEC_QOS * qos , uint16 imp_lev , uint8 ctxt , uint8 eff ,
uint32 unknown ) ;
void make_lsa_obj_attr ( LSA_OBJ_ATTR * attr , uint32 attributes , LSA_SEC_QOS * qos ) ;
1998-10-15 09:47:29 +04:00
void make_q_open_pol ( LSA_Q_OPEN_POL * r_q , uint16 system_name ,
1998-09-30 23:09:57 +04:00
uint32 attributes ,
uint32 desired_access ,
LSA_SEC_QOS * qos ) ;
1998-08-09 17:25:34 +04:00
void lsa_io_q_open_pol ( char * desc , LSA_Q_OPEN_POL * r_q , prs_struct * ps , int depth ) ;
void lsa_io_r_open_pol ( char * desc , LSA_R_OPEN_POL * r_p , prs_struct * ps , int depth ) ;
1998-10-15 09:47:29 +04:00
void make_q_open_pol2 ( LSA_Q_OPEN_POL2 * r_q , char * server_name ,
uint32 attributes ,
uint32 desired_access ,
LSA_SEC_QOS * qos ) ;
void lsa_io_q_open_pol2 ( char * desc , LSA_Q_OPEN_POL2 * r_q , prs_struct * ps , int depth ) ;
void lsa_io_r_open_pol2 ( char * desc , LSA_R_OPEN_POL2 * r_p , prs_struct * ps , int depth ) ;
1998-09-26 01:01:52 +04:00
void make_q_query ( LSA_Q_QUERY_INFO * q_q , POLICY_HND * hnd , uint16 info_class ) ;
1998-08-09 17:25:34 +04:00
void lsa_io_q_query ( char * desc , LSA_Q_QUERY_INFO * q_q , prs_struct * ps , int depth ) ;
void lsa_io_q_enum_trust_dom ( char * desc , LSA_Q_ENUM_TRUST_DOM * q_e , prs_struct * ps , int depth ) ;
void make_r_enum_trust_dom ( LSA_R_ENUM_TRUST_DOM * r_e ,
uint32 enum_context , char * domain_name , DOM_SID * domain_sid ,
uint32 status ) ;
void lsa_io_r_enum_trust_dom ( char * desc , LSA_R_ENUM_TRUST_DOM * r_e , prs_struct * ps , int depth ) ;
void lsa_io_r_query ( char * desc , LSA_R_QUERY_INFO * r_q , prs_struct * ps , int depth ) ;
1998-09-30 23:09:57 +04:00
void make_lsa_sid_enum ( LSA_SID_ENUM * sen , int num_entries , DOM_SID * * sids ) ;
void make_q_lookup_sids ( LSA_Q_LOOKUP_SIDS * q_l , POLICY_HND * hnd ,
int num_sids , DOM_SID * * sids ,
uint16 level ) ;
1998-08-09 17:25:34 +04:00
void lsa_io_q_lookup_sids ( char * desc , LSA_Q_LOOKUP_SIDS * q_s , prs_struct * ps , int depth ) ;
void lsa_io_r_lookup_sids ( char * desc , LSA_R_LOOKUP_SIDS * r_s , prs_struct * ps , int depth ) ;
void lsa_io_q_lookup_rids ( char * desc , LSA_Q_LOOKUP_RIDS * q_r , prs_struct * ps , int depth ) ;
void lsa_io_r_lookup_rids ( char * desc , LSA_R_LOOKUP_RIDS * r_r , prs_struct * ps , int depth ) ;
1998-09-26 01:01:52 +04:00
void make_lsa_q_close ( LSA_Q_CLOSE * q_c , POLICY_HND * hnd ) ;
void lsa_io_q_close ( char * desc , LSA_Q_CLOSE * q_c , prs_struct * ps , int depth ) ;
void lsa_io_r_close ( char * desc , LSA_R_CLOSE * r_c , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_parse/parse_misc.c */
void smb_io_time ( char * desc , NTTIME * nttime , prs_struct * ps , int depth ) ;
void smb_io_lookup_level ( char * desc , LOOKUP_LEVEL * level , prs_struct * ps , int depth ) ;
uint32 get_enum_hnd ( ENUM_HND * enh ) ;
void make_enum_hnd ( ENUM_HND * enh , uint32 hnd ) ;
void smb_io_enum_hnd ( char * desc , ENUM_HND * hnd , prs_struct * ps , int depth ) ;
void smb_io_dom_sid ( char * desc , DOM_SID * sid , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_dom_sid ( DOM_SID * sid , char * str_sid ) ;
1998-08-09 17:25:34 +04:00
void make_dom_sid2 ( DOM_SID2 * sid2 , DOM_SID * sid ) ;
void smb_io_dom_sid2 ( char * desc , DOM_SID2 * sid , prs_struct * ps , int depth ) ;
void make_str_hdr ( STRHDR * hdr , int max_len , int len , uint32 buffer ) ;
void smb_io_strhdr ( char * desc , STRHDR * hdr , prs_struct * ps , int depth ) ;
void make_uni_hdr ( UNIHDR * hdr , int max_len , int len , uint32 buffer ) ;
void smb_io_unihdr ( char * desc , UNIHDR * hdr , prs_struct * ps , int depth ) ;
1998-11-10 22:05:00 +03:00
void make_buf_hdr ( BUFHDR * hdr , int max_len , int len ) ;
void smb_io_hdrbuf ( char * desc , BUFHDR * hdr , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
void make_uni_hdr2 ( UNIHDR2 * hdr , int max_len , int len , uint16 terminate ) ;
void smb_io_unihdr2 ( char * desc , UNIHDR2 * hdr2 , prs_struct * ps , int depth ) ;
void make_unistr ( UNISTR * str , char * buf ) ;
void smb_io_unistr ( char * desc , UNISTR * uni , prs_struct * ps , int depth ) ;
1998-11-10 22:05:00 +03:00
void make_buffer3_uint32 ( BUFFER3 * str , uint32 val ) ;
void make_buffer3_str ( BUFFER3 * str , char * buf , int len ) ;
void make_buffer3_hex ( BUFFER3 * str , char * buf ) ;
void make_buffer3_bytes ( BUFFER3 * str , uint8 * buf , int len ) ;
void smb_io_buffer3 ( char * desc , BUFFER3 * buf3 , prs_struct * ps , int depth ) ;
void make_buffer2 ( BUFFER2 * str , uint8 * buf , int len ) ;
void smb_io_buffer2 ( char * desc , BUFFER2 * buf2 , uint32 buffer , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
void make_buf_unistr2 ( UNISTR2 * str , uint32 * ptr , char * buf ) ;
void copy_unistr2 ( UNISTR2 * str , UNISTR2 * from ) ;
void make_string2 ( STRING2 * str , char * buf , int len ) ;
void smb_io_string2 ( char * desc , STRING2 * str2 , uint32 buffer , prs_struct * ps , int depth ) ;
void make_unistr2 ( UNISTR2 * str , char * buf , int len ) ;
void smb_io_unistr2 ( char * desc , UNISTR2 * uni2 , uint32 buffer , prs_struct * ps , int depth ) ;
1998-11-10 22:05:00 +03:00
void make_dom_rid2 ( DOM_RID2 * rid2 , uint32 rid , uint8 type ) ;
1998-08-09 17:25:34 +04:00
void smb_io_dom_rid2 ( char * desc , DOM_RID2 * rid2 , prs_struct * ps , int depth ) ;
1998-11-10 22:05:00 +03:00
void make_dom_rid3 ( DOM_RID3 * rid3 , uint32 rid , uint8 type ) ;
1998-08-09 17:25:34 +04:00
void smb_io_dom_rid3 ( char * desc , DOM_RID3 * rid3 , prs_struct * ps , int depth ) ;
void make_dom_rid4 ( DOM_RID4 * rid4 , uint16 unknown , uint16 attr , uint32 rid ) ;
void make_log_info ( DOM_LOG_INFO * log , char * logon_srv , char * acct_name ,
uint16 sec_chan , char * comp_name ) ;
void smb_io_log_info ( char * desc , DOM_LOG_INFO * log , prs_struct * ps , int depth ) ;
void smb_io_chal ( char * desc , DOM_CHAL * chal , prs_struct * ps , int depth ) ;
void smb_io_cred ( char * desc , DOM_CRED * cred , prs_struct * ps , int depth ) ;
void make_clnt_info2 ( DOM_CLNT_INFO2 * clnt ,
char * logon_srv , char * comp_name ,
DOM_CRED * clnt_cred ) ;
void smb_io_clnt_info2 ( char * desc , DOM_CLNT_INFO2 * clnt , prs_struct * ps , int depth ) ;
void make_clnt_info ( DOM_CLNT_INFO * clnt ,
char * logon_srv , char * acct_name ,
uint16 sec_chan , char * comp_name ,
DOM_CRED * cred ) ;
void smb_io_clnt_info ( char * desc , DOM_CLNT_INFO * clnt , prs_struct * ps , int depth ) ;
void make_logon_id ( DOM_LOGON_ID * log , uint32 log_id_low , uint32 log_id_high ) ;
void smb_io_logon_id ( char * desc , DOM_LOGON_ID * log , prs_struct * ps , int depth ) ;
void make_owf_info ( OWF_INFO * hash , uint8 data [ 16 ] ) ;
void smb_io_owf_info ( char * desc , OWF_INFO * hash , prs_struct * ps , int depth ) ;
void smb_io_gid ( char * desc , DOM_GID * gid , prs_struct * ps , int depth ) ;
void smb_io_pol_hnd ( char * desc , POLICY_HND * pol , prs_struct * ps , int depth ) ;
void smb_io_dom_query_3 ( char * desc , DOM_QUERY_3 * d_q , prs_struct * ps , int depth ) ;
void smb_io_dom_query_5 ( char * desc , DOM_QUERY_3 * d_q , prs_struct * ps , int depth ) ;
1998-11-10 22:05:00 +03:00
void smb_io_unistr3 ( char * desc , UNISTR3 * name , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_parse/parse_net.c */
void net_io_q_logon_ctrl2 ( char * desc , NET_Q_LOGON_CTRL2 * q_l , prs_struct * ps , int depth ) ;
void make_r_logon_ctrl2 ( NET_R_LOGON_CTRL2 * r_l , uint32 query_level ,
uint32 flags , uint32 pdc_status , uint32 logon_attempts ,
uint32 tc_status , char * trusted_domain_name ) ;
void net_io_r_logon_ctrl2 ( char * desc , NET_R_LOGON_CTRL2 * r_l , prs_struct * ps , int depth ) ;
void make_r_trust_dom ( NET_R_TRUST_DOM_LIST * r_t ,
uint32 num_doms , char * dom_name ) ;
void net_io_r_trust_dom ( char * desc , NET_R_TRUST_DOM_LIST * r_t , prs_struct * ps , int depth ) ;
void net_io_q_trust_dom ( char * desc , NET_Q_TRUST_DOM_LIST * q_l , prs_struct * ps , int depth ) ;
void make_q_req_chal ( NET_Q_REQ_CHAL * q_c ,
char * logon_srv , char * logon_clnt ,
DOM_CHAL * clnt_chal ) ;
void net_io_q_req_chal ( char * desc , NET_Q_REQ_CHAL * q_c , prs_struct * ps , int depth ) ;
void net_io_r_req_chal ( char * desc , NET_R_REQ_CHAL * r_c , prs_struct * ps , int depth ) ;
void make_q_auth_2 ( NET_Q_AUTH_2 * q_a ,
char * logon_srv , char * acct_name , uint16 sec_chan , char * comp_name ,
DOM_CHAL * clnt_chal , uint32 clnt_flgs ) ;
void net_io_q_auth_2 ( char * desc , NET_Q_AUTH_2 * q_a , prs_struct * ps , int depth ) ;
void net_io_r_auth_2 ( char * desc , NET_R_AUTH_2 * r_a , prs_struct * ps , int depth ) ;
void make_q_srv_pwset ( NET_Q_SRV_PWSET * q_s , char * logon_srv , char * acct_name ,
uint16 sec_chan , char * comp_name , DOM_CRED * cred , char nt_cypher [ 16 ] ) ;
void net_io_q_srv_pwset ( char * desc , NET_Q_SRV_PWSET * q_s , prs_struct * ps , int depth ) ;
void net_io_r_srv_pwset ( char * desc , NET_R_SRV_PWSET * r_s , prs_struct * ps , int depth ) ;
1998-10-16 03:51:07 +04:00
void make_id_info1 ( NET_ID_INFO_1 * id , char * domain_name ,
uint32 param_ctrl , uint32 log_id_low , uint32 log_id_high ,
char * user_name , char * wksta_name ,
char sess_key [ 16 ] ,
unsigned char lm_cypher [ 16 ] , unsigned char nt_cypher [ 16 ] ) ;
1998-08-09 17:25:34 +04:00
void make_id_info2 ( NET_ID_INFO_2 * id , char * domain_name ,
uint32 param_ctrl , uint32 log_id_low , uint32 log_id_high ,
char * user_name , char * wksta_name ,
unsigned char lm_challenge [ 8 ] ,
unsigned char lm_chal_resp [ 24 ] ,
unsigned char nt_chal_resp [ 24 ] ) ;
void make_sam_info ( DOM_SAM_INFO * sam ,
char * logon_srv , char * comp_name , DOM_CRED * clnt_cred ,
DOM_CRED * rtn_cred , uint16 logon_level ,
NET_ID_INFO_CTR * ctr , uint16 validation_level ) ;
void 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 ,
DOM_SID * dom_sid ,
char * other_sids ) ;
void net_io_q_sam_logon ( char * desc , NET_Q_SAM_LOGON * q_l , prs_struct * ps , int depth ) ;
void net_io_r_sam_logon ( char * desc , NET_R_SAM_LOGON * r_l , prs_struct * ps , int depth ) ;
void net_io_q_sam_logoff ( char * desc , NET_Q_SAM_LOGOFF * q_l , prs_struct * ps , int depth ) ;
void net_io_r_sam_logoff ( char * desc , NET_R_SAM_LOGOFF * r_l , prs_struct * ps , int depth ) ;
/*The following definitions come from rpc_parse/parse_prs.c */
void prs_debug ( prs_struct * ps , int depth , char * desc , char * fn_name ) ;
void prs_init ( prs_struct * ps , uint32 size ,
uint8 align , uint32 margin ,
BOOL io ) ;
void prs_mem_free ( prs_struct * ps ) ;
1998-10-08 01:42:24 +04:00
void prs_link ( prs_struct * prev , prs_struct * ps , prs_struct * next ) ;
1998-08-09 17:25:34 +04:00
void prs_align ( prs_struct * ps ) ;
BOOL prs_grow ( prs_struct * ps ) ;
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_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_uint32s ( BOOL charmode , char * name , prs_struct * ps , int depth , uint32 * data32s , int len ) ;
1998-11-10 22:05:00 +03:00
BOOL prs_buffer2 ( BOOL charmode , char * name , prs_struct * ps , int depth , BUFFER2 * str ) ;
1998-08-09 17:25:34 +04:00
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 ) ;
1998-11-10 22:05:00 +03:00
BOOL prs_unistr3 ( BOOL charmode , char * name , UNISTR3 * str , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
BOOL prs_unistr ( char * name , prs_struct * ps , int depth , UNISTR * str ) ;
1998-10-07 02:03:04 +04:00
BOOL prs_string ( char * name , prs_struct * ps , int depth , char * str , uint16 len , uint16 max_buf_size ) ;
1998-11-10 22:05:00 +03:00
BOOL prs_uint16_pre ( char * name , prs_struct * ps , int depth , uint16 * data16 , uint32 * off_ptr ) ;
BOOL prs_uint16_post ( char * name , prs_struct * ps , int depth ,
uint32 ptr_uint16 , uint32 start_offset ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_parse/parse_reg.c */
1998-11-10 22:05:00 +03:00
void make_reg_q_open_pol ( REG_Q_OPEN_POLICY * q_o ,
uint16 unknown_0 , uint32 level ) ;
1998-08-09 17:25:34 +04:00
void reg_io_q_open_policy ( char * desc , REG_Q_OPEN_POLICY * r_q , prs_struct * ps , int depth ) ;
void reg_io_r_open_policy ( char * desc , REG_R_OPEN_POLICY * r_r , prs_struct * ps , int depth ) ;
1998-11-11 01:03:34 +03:00
void make_reg_q_unk_b ( REG_Q_UNK_B * q_u , POLICY_HND * pol ) ;
void reg_io_q_unk_b ( char * desc , REG_Q_UNK_B * r_q , prs_struct * ps , int depth ) ;
void reg_io_r_unk_b ( char * desc , REG_R_UNK_B * r_r , prs_struct * ps , int depth ) ;
1998-11-10 22:05:00 +03:00
void make_reg_q_create_key ( REG_Q_CREATE_KEY * q_c , POLICY_HND * hnd ,
char * name , char * class ,
SEC_INFO * sam_access ) ;
void reg_io_q_create_key ( char * desc , REG_Q_CREATE_KEY * r_q , prs_struct * ps , int depth ) ;
void reg_io_r_create_key ( char * desc , REG_R_CREATE_KEY * r_r , prs_struct * ps , int depth ) ;
1998-11-11 01:14:05 +03:00
void make_reg_q_delete_key ( REG_Q_DELETE_KEY * q_c , POLICY_HND * hnd ,
char * name ) ;
void reg_io_q_delete_key ( char * desc , REG_Q_DELETE_KEY * r_q , prs_struct * ps , int depth ) ;
void reg_io_r_delete_key ( char * desc , REG_R_DELETE_KEY * r_r , prs_struct * ps , int depth ) ;
1998-11-10 22:05:00 +03:00
void make_reg_q_query_key ( REG_Q_QUERY_KEY * q_o , POLICY_HND * hnd ,
uint32 max_class_len ) ;
void reg_io_q_query_key ( char * desc , REG_Q_QUERY_KEY * r_q , prs_struct * ps , int depth ) ;
void reg_io_r_query_key ( char * desc , REG_R_QUERY_KEY * r_r , prs_struct * ps , int depth ) ;
void make_reg_q_unk_1a ( REG_Q_UNK_1A * q_o , POLICY_HND * hnd ) ;
void reg_io_q_unk_1a ( char * desc , REG_Q_UNK_1A * r_q , prs_struct * ps , int depth ) ;
void reg_io_r_unk_1a ( char * desc , REG_R_UNK_1A * r_r , prs_struct * ps , int depth ) ;
void make_reg_q_open_unk_4 ( REG_Q_OPEN_UNK_4 * q_o ,
uint16 unknown_0 , uint32 level ) ;
void reg_io_q_open_unk_4 ( char * desc , REG_Q_OPEN_UNK_4 * r_q , prs_struct * ps , int depth ) ;
void reg_io_r_open_unk_4 ( char * desc , REG_R_OPEN_UNK_4 * r_r , prs_struct * ps , int depth ) ;
void make_reg_q_close ( REG_Q_CLOSE * q_c , POLICY_HND * hnd ) ;
1998-08-09 17:25:34 +04:00
void reg_io_q_close ( char * desc , REG_Q_CLOSE * q_u , prs_struct * ps , int depth ) ;
void reg_io_r_close ( char * desc , REG_R_CLOSE * r_u , prs_struct * ps , int depth ) ;
1998-11-10 22:05:00 +03:00
void make_reg_q_get_key_sec ( REG_Q_GET_KEY_SEC * q_i , POLICY_HND * pol ,
uint32 buf_len , SEC_DESC_BUF * sec_buf ) ;
void reg_io_q_get_key_sec ( char * desc , REG_Q_GET_KEY_SEC * r_q , prs_struct * ps , int depth ) ;
void make_reg_r_get_key_sec ( REG_R_GET_KEY_SEC * r_i , POLICY_HND * pol ,
uint32 buf_len , uint8 * buf ,
uint32 status ) ;
void reg_io_r_get_key_sec ( char * desc , REG_R_GET_KEY_SEC * r_q , prs_struct * ps , int depth ) ;
void make_reg_q_info ( REG_Q_INFO * q_i , POLICY_HND * pol , char * product_type ,
time_t unix_time , uint8 major , uint8 minor ) ;
1998-08-09 17:25:34 +04:00
void reg_io_q_info ( char * desc , REG_Q_INFO * r_q , prs_struct * ps , int depth ) ;
void make_reg_r_info ( REG_R_INFO * r_r ,
uint32 level , char * os_type ,
uint32 unknown_0 , uint32 unknown_1 ,
uint32 status ) ;
1998-11-10 22:05:00 +03:00
void reg_io_r_info ( char * desc , REG_R_INFO * r_r , prs_struct * ps , int depth ) ;
void make_reg_q_enum_val ( REG_Q_ENUM_VALUE * q_i , POLICY_HND * pol ,
uint32 val_idx , uint32 max_val_len ,
uint32 max_buf_len ) ;
void reg_io_q_enum_val ( char * desc , REG_Q_ENUM_VALUE * q_q , prs_struct * ps , int depth ) ;
void reg_io_r_enum_val ( char * desc , REG_R_ENUM_VALUE * r_q , prs_struct * ps , int depth ) ;
void make_reg_q_create_val ( REG_Q_CREATE_VALUE * q_i , POLICY_HND * pol ,
char * val_name , uint32 type ,
BUFFER3 * val ) ;
void reg_io_q_create_val ( char * desc , REG_Q_CREATE_VALUE * q_q , prs_struct * ps , int depth ) ;
void reg_io_r_create_val ( char * desc , REG_R_CREATE_VALUE * r_q , prs_struct * ps , int depth ) ;
void make_reg_q_enum_key ( REG_Q_ENUM_KEY * q_i , POLICY_HND * pol , uint32 key_idx ) ;
void reg_io_q_enum_key ( char * desc , REG_Q_ENUM_KEY * q_q , prs_struct * ps , int depth ) ;
void reg_io_r_enum_key ( char * desc , REG_R_ENUM_KEY * r_q , prs_struct * ps , int depth ) ;
void make_reg_q_open_entry ( REG_Q_OPEN_ENTRY * r_q , POLICY_HND * pol ,
char * key_name , uint32 unk ) ;
1998-08-09 17:25:34 +04:00
void reg_io_q_open_entry ( char * desc , REG_Q_OPEN_ENTRY * r_q , prs_struct * ps , int depth ) ;
void make_reg_r_open_entry ( REG_R_OPEN_ENTRY * r_r ,
POLICY_HND * pol , uint32 status ) ;
void reg_io_r_open_entry ( char * desc , REG_R_OPEN_ENTRY * r_r , prs_struct * ps , int depth ) ;
/*The following definitions come from rpc_parse/parse_rpc.c */
void make_rpc_hdr ( RPC_HDR * hdr , enum RPC_PKT_TYPE pkt_type , uint8 flags ,
uint32 call_id , int data_len , int auth_len ) ;
void smb_io_rpc_hdr ( char * desc , RPC_HDR * rpc , prs_struct * ps , int depth ) ;
void make_rpc_hdr_rb ( RPC_HDR_RB * rpc ,
uint16 max_tsize , uint16 max_rsize , uint32 assoc_gid ,
uint32 num_elements , uint16 context_id , uint8 num_syntaxes ,
RPC_IFACE * abstract , RPC_IFACE * transfer ) ;
void smb_io_rpc_hdr_rb ( char * desc , RPC_HDR_RB * rpc , prs_struct * ps , int depth ) ;
void make_rpc_hdr_ba ( RPC_HDR_BA * rpc ,
uint16 max_tsize , uint16 max_rsize , uint32 assoc_gid ,
char * pipe_addr ,
uint8 num_results , uint16 result , uint16 reason ,
RPC_IFACE * transfer ) ;
void smb_io_rpc_hdr_ba ( char * desc , RPC_HDR_BA * rpc , prs_struct * ps , int depth ) ;
1998-10-09 23:05:19 +04:00
void make_rpc_hdr_req ( RPC_HDR_REQ * hdr , uint32 alloc_hint , uint16 opnum ) ;
1998-08-09 17:25:34 +04:00
void smb_io_rpc_hdr_req ( char * desc , RPC_HDR_REQ * rpc , prs_struct * ps , int depth ) ;
void smb_io_rpc_hdr_resp ( char * desc , RPC_HDR_RESP * rpc , prs_struct * ps , int depth ) ;
1998-10-08 01:42:24 +04:00
void make_rpc_hdr_autha ( RPC_HDR_AUTHA * rai ,
uint16 max_tsize , uint16 max_rsize ,
uint8 auth_type , uint8 auth_level ,
uint8 stub_type_len ) ;
void smb_io_rpc_hdr_autha ( char * desc , RPC_HDR_AUTHA * rai , prs_struct * ps , int depth ) ;
1998-10-19 21:32:10 +04:00
BOOL rpc_hdr_auth_chk ( RPC_HDR_AUTH * rai ) ;
1998-10-08 01:42:24 +04:00
void make_rpc_hdr_auth ( RPC_HDR_AUTH * rai ,
uint8 auth_type , uint8 auth_level ,
1998-10-14 10:29:20 +04:00
uint8 stub_type_len ,
uint32 ptr ) ;
1998-10-08 01:42:24 +04:00
void smb_io_rpc_hdr_auth ( char * desc , RPC_HDR_AUTH * rai , prs_struct * ps , int depth ) ;
1998-10-19 21:32:10 +04:00
BOOL rpc_auth_verifier_chk ( RPC_AUTH_VERIFIER * rav ,
char * signature , uint32 msg_type ) ;
1998-10-09 03:57:46 +04:00
void make_rpc_auth_verifier ( RPC_AUTH_VERIFIER * rav ,
char * signature , uint32 msg_type ) ;
void smb_io_rpc_auth_verifier ( char * desc , RPC_AUTH_VERIFIER * rav , prs_struct * ps , int depth ) ;
1998-10-07 02:03:04 +04:00
void make_rpc_auth_ntlmssp_neg ( RPC_AUTH_NTLMSSP_NEG * neg ,
uint32 neg_flgs ,
fstring myname , fstring domain ) ;
void smb_io_rpc_auth_ntlmssp_neg ( char * desc , RPC_AUTH_NTLMSSP_NEG * neg , prs_struct * ps , int depth ) ;
void make_rpc_auth_ntlmssp_chal ( RPC_AUTH_NTLMSSP_CHAL * chl ,
uint32 neg_flags ,
uint8 challenge [ 8 ] ) ;
void smb_io_rpc_auth_ntlmssp_chal ( char * desc , RPC_AUTH_NTLMSSP_CHAL * chl , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
void make_rpc_auth_ntlmssp_resp ( RPC_AUTH_NTLMSSP_RESP * rsp ,
1998-10-07 02:03:04 +04:00
uchar lm_resp [ 24 ] , uchar nt_resp [ 24 ] ,
char * domain , char * user , char * wks ,
uint32 neg_flags ) ;
1998-08-09 17:25:34 +04:00
void smb_io_rpc_auth_ntlmssp_resp ( char * desc , RPC_AUTH_NTLMSSP_RESP * rsp , prs_struct * ps , int depth ) ;
1998-10-21 05:35:01 +04:00
BOOL rpc_auth_ntlmssp_chk ( RPC_AUTH_NTLMSSP_CHK * chk , uint32 crc32 , uint32 seq_num ) ;
1998-10-09 03:57:46 +04:00
void make_rpc_auth_ntlmssp_chk ( RPC_AUTH_NTLMSSP_CHK * chk ,
uint32 ver , uint32 crc32 , uint32 seq_num ) ;
void smb_io_rpc_auth_ntlmssp_chk ( char * desc , RPC_AUTH_NTLMSSP_CHK * chk , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_parse/parse_samr.c */
1998-09-26 02:20:05 +04:00
void make_samr_q_close_hnd ( SAMR_Q_CLOSE_HND * q_c , POLICY_HND * hnd ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_close_hnd ( char * desc , SAMR_Q_CLOSE_HND * q_u , prs_struct * ps , int depth ) ;
void samr_io_r_close_hnd ( char * desc , SAMR_R_CLOSE_HND * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_open_domain ( SAMR_Q_OPEN_DOMAIN * q_u ,
POLICY_HND * connect_pol , uint32 rid ,
DOM_SID * sid ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_open_domain ( char * desc , SAMR_Q_OPEN_DOMAIN * q_u , prs_struct * ps , int depth ) ;
void samr_io_r_open_domain ( char * desc , SAMR_R_OPEN_DOMAIN * r_u , prs_struct * ps , int depth ) ;
1998-10-22 01:11:16 +04:00
void make_samr_q_unknown_2c ( SAMR_Q_UNKNOWN_2C * q_u , POLICY_HND * user_pol ) ;
void samr_io_q_unknown_2c ( char * desc , SAMR_Q_UNKNOWN_2C * q_u , prs_struct * ps , int depth ) ;
void make_samr_r_unknown_2c ( SAMR_R_UNKNOWN_2C * q_u , uint32 status ) ;
void samr_io_r_unknown_2c ( char * desc , SAMR_R_UNKNOWN_2C * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_unknown_3 ( SAMR_Q_UNKNOWN_3 * q_u ,
POLICY_HND * user_pol , uint16 switch_value ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_unknown_3 ( char * desc , SAMR_Q_UNKNOWN_3 * q_u , prs_struct * ps , int depth ) ;
1998-10-22 02:36:26 +04:00
void make_samr_q_query_dom_info ( SAMR_Q_QUERY_DOMAIN_INFO * q_u ,
1998-09-26 02:20:05 +04:00
POLICY_HND * domain_pol , uint16 switch_value ) ;
1998-10-22 02:36:26 +04:00
void samr_io_q_query_dom_info ( char * desc , SAMR_Q_QUERY_DOMAIN_INFO * q_u , prs_struct * ps , int depth ) ;
1998-10-22 01:11:16 +04:00
void make_unk_info2 ( SAM_UNK_INFO_2 * u_2 , char * domain , char * server ) ;
void sam_io_unk_info2 ( char * desc , SAM_UNK_INFO_2 * u_2 , prs_struct * ps , int depth ) ;
1998-10-22 02:36:26 +04:00
void make_samr_r_query_dom_info ( SAMR_R_QUERY_DOMAIN_INFO * r_u ,
1998-10-22 01:11:16 +04:00
uint16 switch_value , SAM_UNK_CTR * ctr ,
uint32 status ) ;
1998-10-22 02:36:26 +04:00
void samr_io_r_query_dom_info ( char * desc , SAMR_R_QUERY_DOMAIN_INFO * r_u , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
void make_dom_sid3 ( DOM_SID3 * sid3 , uint16 unk_0 , uint16 unk_1 , DOM_SID * sid ) ;
void make_samr_r_unknown_3 ( SAMR_R_UNKNOWN_3 * r_u ,
uint16 unknown_2 , uint16 unknown_3 ,
uint32 unknown_4 , uint16 unknown_6 , uint16 unknown_7 ,
int num_sid3s , DOM_SID3 sid3 [ MAX_SAM_SIDS ] ,
uint32 status ) ;
void samr_io_r_unknown_3 ( char * desc , SAMR_R_UNKNOWN_3 * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_enum_dom_users ( SAMR_Q_ENUM_DOM_USERS * q_e , POLICY_HND * pol ,
uint16 req_num_entries , uint16 unk_0 ,
uint16 acb_mask , uint16 unk_1 , uint32 size ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_enum_dom_users ( char * desc , SAMR_Q_ENUM_DOM_USERS * q_e , prs_struct * ps , int depth ) ;
void make_samr_r_enum_dom_users ( SAMR_R_ENUM_DOM_USERS * r_u ,
uint16 total_num_entries , uint16 unk_0 ,
uint32 num_sam_entries , SAM_USER_INFO_21 pass [ MAX_SAM_ENTRIES ] , uint32 status ) ;
void samr_io_r_enum_dom_users ( char * desc , SAMR_R_ENUM_DOM_USERS * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_enum_dom_aliases ( SAMR_Q_ENUM_DOM_ALIASES * q_e , POLICY_HND * pol , uint32 size ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_enum_dom_aliases ( char * desc , SAMR_Q_ENUM_DOM_ALIASES * q_e , prs_struct * ps , int depth ) ;
void make_samr_r_enum_dom_aliases ( SAMR_R_ENUM_DOM_ALIASES * r_u ,
uint32 num_sam_entries , SAM_USER_INFO_21 grps [ MAX_SAM_ENTRIES ] ,
uint32 status ) ;
void samr_io_r_enum_dom_aliases ( char * desc , SAMR_R_ENUM_DOM_ALIASES * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_query_dispinfo ( SAMR_Q_QUERY_DISPINFO * q_e , POLICY_HND * pol ,
uint16 switch_level , uint32 start_idx , uint32 size ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_query_dispinfo ( char * desc , SAMR_Q_QUERY_DISPINFO * q_e , prs_struct * ps , int depth ) ;
void make_sam_info_2 ( SAM_INFO_2 * sam , uint32 acb_mask ,
uint32 start_idx , uint32 num_sam_entries ,
SAM_USER_INFO_21 pass [ MAX_SAM_ENTRIES ] ) ;
void make_sam_info_1 ( SAM_INFO_1 * sam , uint32 acb_mask ,
uint32 start_idx , uint32 num_sam_entries ,
SAM_USER_INFO_21 pass [ MAX_SAM_ENTRIES ] ) ;
void make_samr_r_query_dispinfo ( SAMR_R_QUERY_DISPINFO * r_u ,
uint16 switch_level , SAM_INFO_CTR * ctr , uint32 status ) ;
void samr_io_r_query_dispinfo ( char * desc , SAMR_R_QUERY_DISPINFO * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_enum_dom_groups ( SAMR_Q_ENUM_DOM_GROUPS * q_e , POLICY_HND * pol ,
uint16 switch_level , uint32 start_idx , uint32 size ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_enum_dom_groups ( char * desc , SAMR_Q_ENUM_DOM_GROUPS * q_e , prs_struct * ps , int depth ) ;
void make_samr_r_enum_dom_groups ( SAMR_R_ENUM_DOM_GROUPS * r_u ,
uint32 start_idx , uint32 num_sam_entries ,
SAM_USER_INFO_21 pass [ MAX_SAM_ENTRIES ] ,
uint32 status ) ;
void samr_io_r_enum_dom_groups ( char * desc , SAMR_R_ENUM_DOM_GROUPS * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_query_aliasinfo ( SAMR_Q_QUERY_ALIASINFO * q_e ,
POLICY_HND * pol ,
uint16 switch_level ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_query_aliasinfo ( char * desc , SAMR_Q_QUERY_ALIASINFO * q_e , prs_struct * ps , int depth ) ;
void make_samr_r_query_aliasinfo ( SAMR_R_QUERY_ALIASINFO * r_u ,
uint16 switch_value , char * acct_desc ,
uint32 status ) ;
void samr_io_r_query_aliasinfo ( char * desc , SAMR_R_QUERY_ALIASINFO * r_u , prs_struct * ps , int depth ) ;
void samr_io_q_lookup_ids ( char * desc , SAMR_Q_LOOKUP_IDS * q_u , prs_struct * ps , int depth ) ;
void make_samr_r_lookup_ids ( SAMR_R_LOOKUP_IDS * r_u ,
uint32 num_rids , uint32 * rid , uint32 status ) ;
void samr_io_r_lookup_ids ( char * desc , SAMR_R_LOOKUP_IDS * r_u , prs_struct * ps , int depth ) ;
void samr_io_q_lookup_names ( char * desc , SAMR_Q_LOOKUP_NAMES * q_u , prs_struct * ps , int depth ) ;
void make_samr_r_lookup_names ( SAMR_R_LOOKUP_NAMES * r_u ,
uint32 num_rids , uint32 * rid , uint32 status ) ;
void samr_io_r_lookup_names ( char * desc , SAMR_R_LOOKUP_NAMES * r_u , prs_struct * ps , int depth ) ;
void samr_io_q_unknown_12 ( char * desc , SAMR_Q_UNKNOWN_12 * q_u , prs_struct * ps , int depth ) ;
void make_samr_r_unknown_12 ( SAMR_R_UNKNOWN_12 * r_u ,
uint32 num_aliases , fstring * als_name , uint32 * num_als_usrs ,
uint32 status ) ;
void samr_io_r_unknown_12 ( char * desc , SAMR_R_UNKNOWN_12 * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_open_user ( SAMR_Q_OPEN_USER * q_u ,
POLICY_HND * pol ,
uint32 unk_0 , uint32 rid ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_open_user ( char * desc , SAMR_Q_OPEN_USER * q_u , prs_struct * ps , int depth ) ;
void samr_io_r_open_user ( char * desc , SAMR_R_OPEN_USER * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_query_usergroups ( SAMR_Q_QUERY_USERGROUPS * q_u ,
POLICY_HND * hnd ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_query_usergroups ( char * desc , SAMR_Q_QUERY_USERGROUPS * q_u , prs_struct * ps , int depth ) ;
void make_samr_r_query_usergroups ( SAMR_R_QUERY_USERGROUPS * r_u ,
uint32 num_gids , DOM_GID * gid , uint32 status ) ;
void samr_io_r_query_usergroups ( char * desc , SAMR_R_QUERY_USERGROUPS * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_query_userinfo ( SAMR_Q_QUERY_USERINFO * q_u ,
POLICY_HND * hnd , uint16 switch_value ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_query_userinfo ( char * desc , SAMR_Q_QUERY_USERINFO * q_u , prs_struct * ps , int depth ) ;
1998-10-22 01:11:16 +04:00
void make_sam_user_info10 ( SAM_USER_INFO_10 * usr ,
uint32 acb_info ) ;
void sam_io_user_info10 ( char * desc , SAM_USER_INFO_10 * usr , prs_struct * ps , int depth ) ;
void make_sam_user_info11 ( SAM_USER_INFO_11 * usr ,
NTTIME * expiry ,
char * mach_acct ,
uint32 rid_user ,
uint32 rid_group ,
uint16 acct_ctrl ) ;
void sam_io_user_info11 ( char * desc , SAM_USER_INFO_11 * usr , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
void make_sam_user_info21 ( 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 * logon_script ,
char * profile_path ,
char * description ,
char * workstations ,
char * unknown_str ,
char * munged_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 ) ;
void make_samr_r_query_userinfo ( SAMR_R_QUERY_USERINFO * r_u ,
uint16 switch_value , void * info , uint32 status ) ;
void samr_io_r_query_userinfo ( char * desc , SAMR_R_QUERY_USERINFO * r_u , prs_struct * ps , int depth ) ;
void samr_io_q_unknown_32 ( char * desc , SAMR_Q_UNKNOWN_32 * q_u , prs_struct * ps , int depth ) ;
void samr_io_r_unknown_32 ( char * desc , SAMR_R_UNKNOWN_32 * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_connect ( SAMR_Q_CONNECT * q_u ,
char * srv_name , uint32 unknown_0 ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_connect ( char * desc , SAMR_Q_CONNECT * q_u , prs_struct * ps , int depth ) ;
void samr_io_r_connect ( char * desc , SAMR_R_CONNECT * r_u , prs_struct * ps , int depth ) ;
1998-10-15 09:47:29 +04:00
void make_samr_q_connect_anon ( SAMR_Q_CONNECT_ANON * q_u ) ;
void samr_io_q_connect_anon ( char * desc , SAMR_Q_CONNECT_ANON * q_u , prs_struct * ps , int depth ) ;
void samr_io_r_connect_anon ( char * desc , SAMR_R_CONNECT_ANON * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_open_alias ( SAMR_Q_OPEN_ALIAS * q_u ,
uint32 unknown_0 , uint32 rid ) ;
1998-08-09 17:25:34 +04:00
void samr_io_q_open_alias ( char * desc , SAMR_Q_OPEN_ALIAS * q_u , prs_struct * ps , int depth ) ;
void samr_io_r_open_alias ( char * desc , SAMR_R_OPEN_ALIAS * r_u , prs_struct * ps , int depth ) ;
1998-09-26 02:20:05 +04:00
void make_samr_q_unknown_12 ( SAMR_Q_UNKNOWN_12 * q_u ,
POLICY_HND * pol , uint32 rid ,
uint32 num_gids , uint32 * gid ) ;
void make_samr_q_unknown_21 ( SAMR_Q_UNKNOWN_21 * q_c ,
POLICY_HND * hnd , uint16 unk_1 , uint16 unk_2 ) ;
void make_samr_q_unknown_13 ( SAMR_Q_UNKNOWN_13 * q_c ,
POLICY_HND * hnd , uint16 unk_1 , uint16 unk_2 ) ;
1998-10-10 03:31:50 +04:00
void make_samr_q_unknown_38 ( SAMR_Q_UNKNOWN_38 * q_u , char * srv_name ) ;
void samr_io_q_unknown_38 ( char * desc , SAMR_Q_UNKNOWN_38 * q_u , prs_struct * ps , int depth ) ;
1998-10-15 09:47:29 +04:00
void make_samr_r_unknown_38 ( SAMR_R_UNKNOWN_38 * r_u ) ;
1998-10-10 03:31:50 +04:00
void samr_io_r_unknown_38 ( char * desc , SAMR_R_UNKNOWN_38 * r_u , prs_struct * ps , int depth ) ;
void make_enc_passwd ( SAMR_ENC_PASSWD * pwd , char pass [ 512 ] ) ;
void samr_io_enc_passwd ( char * desc , SAMR_ENC_PASSWD * pwd , prs_struct * ps , int depth ) ;
1998-10-21 20:58:34 +04:00
void make_enc_hash ( SAMR_ENC_HASH * hsh , uchar hash [ 16 ] ) ;
1998-10-10 03:31:50 +04:00
void samr_io_enc_hash ( char * desc , SAMR_ENC_HASH * hsh , prs_struct * ps , int depth ) ;
void make_samr_q_chgpasswd_user ( SAMR_Q_CHGPASSWD_USER * q_u ,
char * dest_host , char * user_name ,
1998-10-21 20:58:34 +04:00
char nt_newpass [ 516 ] , uchar nt_oldhash [ 16 ] ,
char lm_newpass [ 516 ] , uchar lm_oldhash [ 16 ] ) ;
1998-10-10 03:31:50 +04:00
void samr_io_q_chgpasswd_user ( char * desc , SAMR_Q_CHGPASSWD_USER * q_u , prs_struct * ps , int depth ) ;
1998-10-17 03:40:59 +04:00
void make_samr_r_chgpasswd_user ( SAMR_R_CHGPASSWD_USER * r_u , uint32 status ) ;
1998-10-10 03:31:50 +04:00
void samr_io_r_chgpasswd_user ( char * desc , SAMR_R_CHGPASSWD_USER * r_u , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
1998-11-10 22:05:00 +03:00
/*The following definitions come from rpc_parse/parse_sec.c */
void sec_io_info ( char * desc , SEC_INFO * t , prs_struct * ps , int depth ) ;
void sec_io_ace ( char * desc , SEC_ACE * t , prs_struct * ps , int depth ) ;
void sec_io_acl ( char * desc , SEC_ACL * t , prs_struct * ps , int depth ) ;
void sec_io_desc ( char * desc , SEC_DESC * t , prs_struct * ps , int depth ) ;
void make_sec_desc_buf ( SEC_DESC_BUF * buf , int len , uint32 buf_ptr ) ;
void sec_io_desc_buf ( char * desc , SEC_DESC_BUF * sec , prs_struct * ps , int depth ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_parse/parse_srv.c */
void make_srv_share_info1_str ( SH_INFO_1_STR * sh1 , char * net_name , char * remark ) ;
void make_srv_share_info1 ( SH_INFO_1 * sh1 , char * net_name , uint32 type , char * remark ) ;
void make_srv_share_info2_str ( SH_INFO_2_STR * sh2 ,
char * net_name , char * remark ,
char * path , char * passwd ) ;
void make_srv_share_info2 ( SH_INFO_2 * sh2 ,
char * net_name , uint32 type , char * remark ,
uint32 perms , uint32 max_uses , uint32 num_uses ,
char * path , char * passwd ) ;
Makefile.in :
- added srvsvc client files
clientgen.c :
- replaced cli_error(cli, int *cls, int *err) with
cli_error(cli, uint8 cls, uint32 *err). this version detects
32 bit status messages. the DOS error "MORE_DATA", the
equivalent of the 32 bit *warning* 0x8000 0005
(STATUS_BUFFER_OVERFLOW), was being processed as an error,
terminating the cli_receive_trans() call.
cli_pipe.c :
- replaced calls that had been incorrectly modified from
32 bit warnings (0x8000 0005 - STATUS_BUFFER_OVERFLOW)
to 8 bit DOS errors (0x01 0xEA - MORE_DATA).
the use of the old version of cli_error (DOS only)
instead of the new one (DOS and 32 bit) caused the
dce/rpc client code to fail.
- replaced 2 space indentation with tab indentation in all functions.
cli_srvsvc.c :
cmd_srvsvc.c :
- added these files back in, fixing them up to use jeremy's
modified versions of the dce/rpc client functions.
parse_srv.c :
- added back in some "unused" functions required by dce/rpc
client-side code. it would be helpful if all such "unused"
functions could be added back in.
rpcclient.c :
- added "session", "file", "share", "connection" enumeration
functions back in. these are equivalent to nt's "NetXXXXXEnum"
Win32 (MSDN) functions.
- added "srvinfo" function back in. this is equivalent to
nt's NetServerGetInfo Win32 (MSDN) function.
(This used to be commit bcf39ffdcc64e049bca2d70a394a99976291e81d)
1998-10-03 01:09:23 +04:00
void make_srv_q_net_share_enum ( SRV_Q_NET_SHARE_ENUM * q_n ,
char * srv_name ,
uint32 share_level , SRV_SHARE_INFO_CTR * ctr ,
uint32 preferred_len ,
ENUM_HND * hnd ) ;
1998-08-09 17:25:34 +04:00
void srv_io_q_net_share_enum ( char * desc , SRV_Q_NET_SHARE_ENUM * q_n , prs_struct * ps , int depth ) ;
void srv_io_r_net_share_enum ( char * desc , SRV_R_NET_SHARE_ENUM * r_n , prs_struct * ps , int depth ) ;
void make_srv_sess_info0_str ( SESS_INFO_0_STR * ss0 , char * name ) ;
void make_srv_sess_info0 ( SESS_INFO_0 * ss0 , char * name ) ;
void make_srv_sess_info1_str ( SESS_INFO_1_STR * ss1 , char * name , char * user ) ;
void make_srv_sess_info1 ( SESS_INFO_1 * ss1 ,
char * name , char * user ,
uint32 num_opens , uint32 open_time , uint32 idle_time ,
uint32 user_flags ) ;
Makefile.in :
- added srvsvc client files
clientgen.c :
- replaced cli_error(cli, int *cls, int *err) with
cli_error(cli, uint8 cls, uint32 *err). this version detects
32 bit status messages. the DOS error "MORE_DATA", the
equivalent of the 32 bit *warning* 0x8000 0005
(STATUS_BUFFER_OVERFLOW), was being processed as an error,
terminating the cli_receive_trans() call.
cli_pipe.c :
- replaced calls that had been incorrectly modified from
32 bit warnings (0x8000 0005 - STATUS_BUFFER_OVERFLOW)
to 8 bit DOS errors (0x01 0xEA - MORE_DATA).
the use of the old version of cli_error (DOS only)
instead of the new one (DOS and 32 bit) caused the
dce/rpc client code to fail.
- replaced 2 space indentation with tab indentation in all functions.
cli_srvsvc.c :
cmd_srvsvc.c :
- added these files back in, fixing them up to use jeremy's
modified versions of the dce/rpc client functions.
parse_srv.c :
- added back in some "unused" functions required by dce/rpc
client-side code. it would be helpful if all such "unused"
functions could be added back in.
rpcclient.c :
- added "session", "file", "share", "connection" enumeration
functions back in. these are equivalent to nt's "NetXXXXXEnum"
Win32 (MSDN) functions.
- added "srvinfo" function back in. this is equivalent to
nt's NetServerGetInfo Win32 (MSDN) function.
(This used to be commit bcf39ffdcc64e049bca2d70a394a99976291e81d)
1998-10-03 01:09:23 +04:00
void make_srv_q_net_sess_enum ( SRV_Q_NET_SESS_ENUM * q_n ,
char * srv_name , char * qual_name ,
uint32 sess_level , SRV_SESS_INFO_CTR * ctr ,
uint32 preferred_len ,
ENUM_HND * hnd ) ;
1998-08-09 17:25:34 +04:00
void srv_io_q_net_sess_enum ( char * desc , SRV_Q_NET_SESS_ENUM * q_n , prs_struct * ps , int depth ) ;
void srv_io_r_net_sess_enum ( char * desc , SRV_R_NET_SESS_ENUM * r_n , prs_struct * ps , int depth ) ;
void make_srv_conn_info0 ( CONN_INFO_0 * ss0 , uint32 id ) ;
void make_srv_conn_info1_str ( CONN_INFO_1_STR * ss1 , char * usr_name , char * net_name ) ;
void make_srv_conn_info1 ( CONN_INFO_1 * ss1 ,
uint32 id , uint32 type ,
uint32 num_opens , uint32 num_users , uint32 open_time ,
char * usr_name , char * net_name ) ;
Makefile.in :
- added srvsvc client files
clientgen.c :
- replaced cli_error(cli, int *cls, int *err) with
cli_error(cli, uint8 cls, uint32 *err). this version detects
32 bit status messages. the DOS error "MORE_DATA", the
equivalent of the 32 bit *warning* 0x8000 0005
(STATUS_BUFFER_OVERFLOW), was being processed as an error,
terminating the cli_receive_trans() call.
cli_pipe.c :
- replaced calls that had been incorrectly modified from
32 bit warnings (0x8000 0005 - STATUS_BUFFER_OVERFLOW)
to 8 bit DOS errors (0x01 0xEA - MORE_DATA).
the use of the old version of cli_error (DOS only)
instead of the new one (DOS and 32 bit) caused the
dce/rpc client code to fail.
- replaced 2 space indentation with tab indentation in all functions.
cli_srvsvc.c :
cmd_srvsvc.c :
- added these files back in, fixing them up to use jeremy's
modified versions of the dce/rpc client functions.
parse_srv.c :
- added back in some "unused" functions required by dce/rpc
client-side code. it would be helpful if all such "unused"
functions could be added back in.
rpcclient.c :
- added "session", "file", "share", "connection" enumeration
functions back in. these are equivalent to nt's "NetXXXXXEnum"
Win32 (MSDN) functions.
- added "srvinfo" function back in. this is equivalent to
nt's NetServerGetInfo Win32 (MSDN) function.
(This used to be commit bcf39ffdcc64e049bca2d70a394a99976291e81d)
1998-10-03 01:09:23 +04:00
void make_srv_q_net_conn_enum ( SRV_Q_NET_CONN_ENUM * q_n ,
char * srv_name , char * qual_name ,
uint32 conn_level , SRV_CONN_INFO_CTR * ctr ,
uint32 preferred_len ,
ENUM_HND * hnd ) ;
1998-08-09 17:25:34 +04:00
void srv_io_q_net_conn_enum ( char * desc , SRV_Q_NET_CONN_ENUM * q_n , prs_struct * ps , int depth ) ;
void srv_io_r_net_conn_enum ( char * desc , SRV_R_NET_CONN_ENUM * r_n , prs_struct * ps , int depth ) ;
void make_srv_file_info3_str ( FILE_INFO_3_STR * fi3 , char * user_name , char * path_name ) ;
void make_srv_file_info3 ( FILE_INFO_3 * fl3 ,
uint32 id , uint32 perms , uint32 num_locks ,
char * path_name , char * user_name ) ;
Makefile.in :
- added srvsvc client files
clientgen.c :
- replaced cli_error(cli, int *cls, int *err) with
cli_error(cli, uint8 cls, uint32 *err). this version detects
32 bit status messages. the DOS error "MORE_DATA", the
equivalent of the 32 bit *warning* 0x8000 0005
(STATUS_BUFFER_OVERFLOW), was being processed as an error,
terminating the cli_receive_trans() call.
cli_pipe.c :
- replaced calls that had been incorrectly modified from
32 bit warnings (0x8000 0005 - STATUS_BUFFER_OVERFLOW)
to 8 bit DOS errors (0x01 0xEA - MORE_DATA).
the use of the old version of cli_error (DOS only)
instead of the new one (DOS and 32 bit) caused the
dce/rpc client code to fail.
- replaced 2 space indentation with tab indentation in all functions.
cli_srvsvc.c :
cmd_srvsvc.c :
- added these files back in, fixing them up to use jeremy's
modified versions of the dce/rpc client functions.
parse_srv.c :
- added back in some "unused" functions required by dce/rpc
client-side code. it would be helpful if all such "unused"
functions could be added back in.
rpcclient.c :
- added "session", "file", "share", "connection" enumeration
functions back in. these are equivalent to nt's "NetXXXXXEnum"
Win32 (MSDN) functions.
- added "srvinfo" function back in. this is equivalent to
nt's NetServerGetInfo Win32 (MSDN) function.
(This used to be commit bcf39ffdcc64e049bca2d70a394a99976291e81d)
1998-10-03 01:09:23 +04:00
void make_srv_q_net_file_enum ( SRV_Q_NET_FILE_ENUM * q_n ,
char * srv_name , char * qual_name ,
uint32 file_level , SRV_FILE_INFO_CTR * ctr ,
uint32 preferred_len ,
ENUM_HND * hnd ) ;
1998-08-09 17:25:34 +04:00
void srv_io_q_net_file_enum ( char * desc , SRV_Q_NET_FILE_ENUM * q_n , prs_struct * ps , int depth ) ;
void srv_io_r_net_file_enum ( char * desc , SRV_R_NET_FILE_ENUM * r_n , prs_struct * ps , int depth ) ;
void make_srv_info_101 ( SRV_INFO_101 * sv101 , uint32 platform_id , char * name ,
uint32 ver_major , uint32 ver_minor ,
uint32 srv_type , char * comment ) ;
void make_srv_info_102 ( SRV_INFO_102 * sv102 , uint32 platform_id , char * name ,
char * comment , uint32 ver_major , uint32 ver_minor ,
uint32 srv_type , uint32 users , uint32 disc , uint32 hidden ,
uint32 announce , uint32 ann_delta , uint32 licenses ,
char * usr_path ) ;
Makefile.in :
- added srvsvc client files
clientgen.c :
- replaced cli_error(cli, int *cls, int *err) with
cli_error(cli, uint8 cls, uint32 *err). this version detects
32 bit status messages. the DOS error "MORE_DATA", the
equivalent of the 32 bit *warning* 0x8000 0005
(STATUS_BUFFER_OVERFLOW), was being processed as an error,
terminating the cli_receive_trans() call.
cli_pipe.c :
- replaced calls that had been incorrectly modified from
32 bit warnings (0x8000 0005 - STATUS_BUFFER_OVERFLOW)
to 8 bit DOS errors (0x01 0xEA - MORE_DATA).
the use of the old version of cli_error (DOS only)
instead of the new one (DOS and 32 bit) caused the
dce/rpc client code to fail.
- replaced 2 space indentation with tab indentation in all functions.
cli_srvsvc.c :
cmd_srvsvc.c :
- added these files back in, fixing them up to use jeremy's
modified versions of the dce/rpc client functions.
parse_srv.c :
- added back in some "unused" functions required by dce/rpc
client-side code. it would be helpful if all such "unused"
functions could be added back in.
rpcclient.c :
- added "session", "file", "share", "connection" enumeration
functions back in. these are equivalent to nt's "NetXXXXXEnum"
Win32 (MSDN) functions.
- added "srvinfo" function back in. this is equivalent to
nt's NetServerGetInfo Win32 (MSDN) function.
(This used to be commit bcf39ffdcc64e049bca2d70a394a99976291e81d)
1998-10-03 01:09:23 +04:00
void make_srv_q_net_srv_get_info ( SRV_Q_NET_SRV_GET_INFO * srv ,
char * server_name , uint32 switch_value ) ;
1998-08-09 17:25:34 +04:00
void srv_io_q_net_srv_get_info ( char * desc , SRV_Q_NET_SRV_GET_INFO * q_n , prs_struct * ps , int depth ) ;
void make_srv_r_net_srv_get_info ( SRV_R_NET_SRV_GET_INFO * srv ,
uint32 switch_value , SRV_INFO_CTR * ctr , uint32 status ) ;
void srv_io_r_net_srv_get_info ( char * desc , SRV_R_NET_SRV_GET_INFO * r_n , prs_struct * ps , int depth ) ;
void srv_io_q_net_remote_tod ( char * desc , SRV_Q_NET_REMOTE_TOD * q_n , prs_struct * ps , int depth ) ;
void make_time_of_day_info ( TIME_OF_DAY_INFO * tod , uint32 elapsedt , uint32 msecs ,
uint32 hours , uint32 mins , uint32 secs , uint32 hunds ,
uint32 zone , uint32 tintervals , uint32 day ,
uint32 month , uint32 year , uint32 weekday ) ;
void srv_io_r_net_remote_tod ( char * desc , SRV_R_NET_REMOTE_TOD * r_n , prs_struct * ps , int depth ) ;
/*The following definitions come from rpc_parse/parse_wks.c */
1998-05-08 20:49:10 +04:00
1998-09-26 01:20:37 +04:00
void make_wks_q_query_info ( WKS_Q_QUERY_INFO * q_u ,
char * server , uint16 switch_value ) ;
1998-08-09 17:25:34 +04:00
void wks_io_q_query_info ( char * desc , WKS_Q_QUERY_INFO * q_u , prs_struct * ps , int depth ) ;
void make_wks_info_100 ( WKS_INFO_100 * inf ,
uint32 platform_id , uint32 ver_major , uint32 ver_minor ,
char * my_name , char * domain_name ) ;
void make_wks_r_query_info ( WKS_R_QUERY_INFO * r_u ,
uint32 switch_value , WKS_INFO_100 * wks100 ,
int status ) ;
void wks_io_r_query_info ( char * desc , WKS_R_QUERY_INFO * r_u , prs_struct * ps , int depth ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_server/srv_lsa.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
BOOL api_ntlsa_rpc ( pipes_struct * p , prs_struct * data ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_server/srv_lsa_hnd.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
void init_lsa_policy_hnd ( void ) ;
BOOL open_lsa_policy_hnd ( POLICY_HND * hnd ) ;
int find_lsa_policy_by_hnd ( POLICY_HND * hnd ) ;
BOOL set_lsa_policy_samr_rid ( POLICY_HND * hnd , uint32 rid ) ;
BOOL set_lsa_policy_samr_pol_status ( POLICY_HND * hnd , uint32 pol_status ) ;
BOOL set_lsa_policy_samr_sid ( POLICY_HND * hnd , DOM_SID * sid ) ;
1998-10-22 02:36:26 +04:00
BOOL get_lsa_policy_samr_sid ( POLICY_HND * hnd , DOM_SID * sid ) ;
1998-08-09 17:25:34 +04:00
uint32 get_lsa_policy_samr_rid ( POLICY_HND * hnd ) ;
BOOL set_lsa_policy_reg_name ( POLICY_HND * hnd , fstring name ) ;
BOOL close_lsa_policy_hnd ( POLICY_HND * hnd ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_server/srv_netlog.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
BOOL api_netlog_rpc ( pipes_struct * p , prs_struct * data ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_server/srv_pipe_hnd.c */
1998-05-08 20:49:10 +04:00
1998-09-30 05:49:24 +04:00
void set_pipe_handle_offset ( int max_open_files ) ;
1998-08-17 07:06:20 +04:00
void reset_chain_p ( void ) ;
1998-08-09 17:25:34 +04:00
void init_rpc_pipe_hnd ( void ) ;
1998-08-17 07:06:20 +04:00
pipes_struct * open_rpc_pipe_p ( char * pipe_name ,
1998-08-17 07:52:05 +04:00
connection_struct * conn , uint16 vuid ) ;
1998-10-17 00:08:56 +04:00
ssize_t write_pipe ( pipes_struct * p , char * data , size_t n ) ;
1998-08-17 07:06:20 +04:00
int read_pipe ( pipes_struct * p , char * data , uint32 pos , int n ) ;
1998-10-15 09:47:29 +04:00
BOOL wait_rpc_pipe_hnd_state ( pipes_struct * p , uint16 priority ) ;
1998-08-09 17:25:34 +04:00
BOOL set_rpc_pipe_hnd_state ( pipes_struct * p , uint16 device_state ) ;
1998-08-17 07:06:20 +04:00
BOOL close_rpc_pipe_hnd ( pipes_struct * p , connection_struct * conn ) ;
pipes_struct * get_rpc_pipe_p ( char * buf , int where ) ;
pipes_struct * get_rpc_pipe ( int pnum ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_server/srv_reg.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
BOOL api_reg_rpc ( pipes_struct * p , prs_struct * data ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_server/srv_samr.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
BOOL api_samr_rpc ( pipes_struct * p , prs_struct * data ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_server/srv_srvsvc.c */
1998-07-29 07:08:05 +04:00
1998-08-09 17:25:34 +04:00
BOOL api_srvsvc_rpc ( pipes_struct * p , prs_struct * data ) ;
1998-07-29 07:08:05 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from rpc_server/srv_util.c */
1998-05-18 15:54:00 +04:00
1998-08-09 17:25:34 +04:00
int make_dom_gids ( char * gids_str , DOM_GID * * ppgids ) ;
BOOL create_rpc_reply ( pipes_struct * p ,
uint32 data_start , uint32 data_end ) ;
1998-10-08 01:42:24 +04:00
BOOL rpc_command ( pipes_struct * p , prs_struct * pd ) ;
1998-08-09 17:25:34 +04:00
BOOL api_rpcTNP ( pipes_struct * p , char * rpc_name , struct api_struct * api_rpc_cmds ,
prs_struct * data ) ;
void get_domain_user_groups ( char * domain_groups , char * user ) ;
uint32 lookup_group_name ( uint32 rid , char * group_name , uint32 * type ) ;
uint32 lookup_alias_name ( uint32 rid , char * alias_name , uint32 * type ) ;
uint32 lookup_user_name ( uint32 rid , char * user_name , uint32 * type ) ;
uint32 lookup_group_rid ( char * group_name , uint32 * rid ) ;
uint32 lookup_alias_rid ( char * alias_name , uint32 * rid ) ;
uint32 lookup_user_rid ( char * user_name , uint32 * rid ) ;
/*The following definitions come from rpc_server/srv_wkssvc.c */
BOOL api_wkssvc_rpc ( pipes_struct * p , prs_struct * data ) ;
1998-09-26 01:01:52 +04:00
/*The following definitions come from rpcclient/cmd_lsarpc.c */
void cmd_lsa_query_info ( struct client_info * info ) ;
1998-09-30 23:09:57 +04:00
void cmd_lsa_lookup_sids ( struct client_info * info ) ;
1998-09-26 01:01:52 +04:00
1998-10-16 03:51:07 +04:00
/*The following definitions come from rpcclient/cmd_netlogon.c */
void cmd_netlogon_login_test ( struct client_info * info ) ;
1998-11-10 22:05:00 +03:00
/*The following definitions come from rpcclient/cmd_reg.c */
void cmd_reg_enum ( struct client_info * info ) ;
void cmd_reg_query_key ( struct client_info * info ) ;
void cmd_reg_test2 ( struct client_info * info ) ;
void cmd_reg_create_val ( struct client_info * info ) ;
1998-11-11 01:14:05 +03:00
void cmd_reg_delete_key ( struct client_info * info ) ;
1998-11-10 22:05:00 +03:00
void cmd_reg_create_key ( struct client_info * info ) ;
void cmd_reg_get_key_sec ( struct client_info * info ) ;
1998-09-26 02:20:05 +04:00
/*The following definitions come from rpcclient/cmd_samr.c */
1998-10-10 04:58:12 +04:00
void cmd_sam_ntchange_pwd ( struct client_info * info ) ;
1998-09-26 02:20:05 +04:00
void cmd_sam_test ( struct client_info * info ) ;
void cmd_sam_enum_users ( struct client_info * info ) ;
void cmd_sam_query_user ( struct client_info * info ) ;
void cmd_sam_query_groups ( struct client_info * info ) ;
void cmd_sam_enum_aliases ( struct client_info * info ) ;
1998-10-05 19:41:41 +04:00
/*The following definitions come from rpcclient/cmd_srvsvc.c */
void cmd_srv_query_info ( struct client_info * info ) ;
void cmd_srv_enum_conn ( struct client_info * info ) ;
void cmd_srv_enum_shares ( struct client_info * info ) ;
void cmd_srv_enum_sess ( struct client_info * info ) ;
void cmd_srv_enum_files ( struct client_info * info ) ;
1998-09-26 01:20:37 +04:00
/*The following definitions come from rpcclient/cmd_wkssvc.c */
void cmd_wks_query_info ( struct client_info * info ) ;
1998-09-26 02:20:05 +04:00
/*The following definitions come from rpcclient/display.c */
char * get_file_mode_str ( uint32 share_mode ) ;
char * get_file_oplock_str ( uint32 op_type ) ;
char * get_share_type_str ( uint32 type ) ;
char * get_server_type_str ( uint32 type ) ;
void display_srv_info_101 ( FILE * out_hnd , enum action_type action ,
SRV_INFO_101 * sv101 ) ;
void display_srv_info_102 ( FILE * out_hnd , enum action_type action , SRV_INFO_102 * sv102 ) ;
void display_srv_info_ctr ( FILE * out_hnd , enum action_type action , SRV_INFO_CTR * ctr ) ;
void display_conn_info_0 ( FILE * out_hnd , enum action_type action ,
CONN_INFO_0 * info0 ) ;
void display_conn_info_1 ( FILE * out_hnd , enum action_type action ,
CONN_INFO_1 * info1 , CONN_INFO_1_STR * str1 ) ;
void display_srv_conn_info_0_ctr ( FILE * out_hnd , enum action_type action ,
SRV_CONN_INFO_0 * ctr ) ;
void display_srv_conn_info_1_ctr ( FILE * out_hnd , enum action_type action ,
SRV_CONN_INFO_1 * ctr ) ;
void display_srv_conn_info_ctr ( FILE * out_hnd , enum action_type action ,
SRV_CONN_INFO_CTR * ctr ) ;
void display_share_info_1 ( FILE * out_hnd , enum action_type action ,
SH_INFO_1 * info1 , SH_INFO_1_STR * str1 ) ;
void display_share_info_2 ( FILE * out_hnd , enum action_type action ,
SH_INFO_2 * info2 , SH_INFO_2_STR * str2 ) ;
void display_srv_share_info_1_ctr ( FILE * out_hnd , enum action_type action ,
SRV_SHARE_INFO_1 * ctr ) ;
void display_srv_share_info_2_ctr ( FILE * out_hnd , enum action_type action ,
SRV_SHARE_INFO_2 * ctr ) ;
void display_srv_share_info_ctr ( FILE * out_hnd , enum action_type action ,
SRV_SHARE_INFO_CTR * ctr ) ;
void display_file_info_3 ( FILE * out_hnd , enum action_type action ,
FILE_INFO_3 * info3 , FILE_INFO_3_STR * str3 ) ;
void display_srv_file_info_3_ctr ( FILE * out_hnd , enum action_type action ,
SRV_FILE_INFO_3 * ctr ) ;
void display_srv_file_info_ctr ( FILE * out_hnd , enum action_type action ,
SRV_FILE_INFO_CTR * ctr ) ;
void display_server ( FILE * out_hnd , enum action_type action ,
char * sname , uint32 type , char * comment ) ;
void display_share ( FILE * out_hnd , enum action_type action ,
char * sname , uint32 type , char * comment ) ;
void display_share2 ( FILE * out_hnd , enum action_type action ,
char * sname , uint32 type , char * comment ,
uint32 perms , uint32 max_uses , uint32 num_uses ,
char * path , char * passwd ) ;
void display_name ( FILE * out_hnd , enum action_type action ,
char * sname ) ;
void display_group_rid_info ( FILE * out_hnd , enum action_type action ,
uint32 num_gids , DOM_GID * gid ) ;
void display_alias_name_info ( FILE * out_hnd , enum action_type action ,
uint32 num_aliases , fstring * alias_name , uint32 * num_als_usrs ) ;
void display_sam_user_info_21 ( FILE * out_hnd , enum action_type action , SAM_USER_INFO_21 * usr ) ;
1998-11-10 22:05:00 +03:00
char * get_sec_perms_str ( uint32 type ) ;
void display_sec_info ( FILE * out_hnd , enum action_type action , SEC_INFO * info ) ;
void display_sec_ace ( FILE * out_hnd , enum action_type action , SEC_ACE * ace ) ;
void display_sec_acl ( FILE * out_hnd , enum action_type action , SEC_ACL * acl ) ;
void display_sec_desc ( FILE * out_hnd , enum action_type action , SEC_DESC * sec ) ;
char * get_reg_val_type_str ( uint32 type ) ;
void display_reg_value_info ( FILE * out_hnd , enum action_type action ,
char * val_name , uint32 val_type , BUFFER2 * value ) ;
void display_reg_key_info ( FILE * out_hnd , enum action_type action ,
char * key_name , time_t key_mod_time ) ;
1998-09-26 02:20:05 +04:00
1998-09-26 01:01:52 +04:00
/*The following definitions come from rpcclient/rpcclient.c */
void rpcclient_init ( void ) ;
1998-08-19 05:49:34 +04:00
/*The following definitions come from smbd/blocking.c */
BOOL push_blocking_lock_request ( char * inbuf , int length , int lock_timeout , int lock_num ) ;
void remove_pending_lock_requests_by_fid ( files_struct * fsp ) ;
void remove_pending_lock_requests_by_mid ( int mid ) ;
void process_blocking_lock_queue ( time_t t ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/chgpasswd.c */
BOOL chgpasswd ( char * name , char * oldpass , char * newpass , BOOL as_root ) ;
BOOL chgpasswd ( char * name , char * oldpass , char * newpass , BOOL as_root ) ;
1998-10-19 21:32:10 +04:00
BOOL check_lanman_password ( char * user , uchar * pass1 ,
uchar * pass2 , struct smb_passwd * * psmbpw ) ;
BOOL change_lanman_password ( struct smb_passwd * smbpw , uchar * pass1 , uchar * pass2 ) ;
BOOL pass_oem_change ( char * user ,
uchar * lmdata , uchar * lmhash ,
uchar * ntdata , uchar * nthash ) ;
BOOL check_oem_password ( char * user ,
uchar * lmdata , uchar * lmhash ,
uchar * ntdata , uchar * nthash ,
1998-08-09 17:25:34 +04:00
struct smb_passwd * * psmbpw , char * new_passwd ,
int new_passwd_size ) ;
BOOL change_oem_password ( struct smb_passwd * smbpw , char * new_passwd , BOOL override ) ;
1998-08-17 17:11:34 +04:00
/*The following definitions come from smbd/close.c */
void close_file ( files_struct * fsp , BOOL normal_close ) ;
void close_directory ( files_struct * fsp ) ;
1998-08-17 10:13:32 +04:00
/*The following definitions come from smbd/conn.c */
void conn_init ( void ) ;
int conn_num_open ( void ) ;
BOOL conn_snum_used ( int snum ) ;
connection_struct * conn_find ( int cnum ) ;
connection_struct * conn_new ( void ) ;
void conn_close_all ( void ) ;
BOOL conn_idle_all ( time_t t , int deadtime ) ;
void conn_free ( connection_struct * conn ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/connection.c */
1998-08-14 21:38:29 +04:00
BOOL yield_connection ( connection_struct * conn , char * name , int max_connections ) ;
BOOL claim_connection ( connection_struct * conn , char * name , int max_connections , BOOL Clear ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/dfree.c */
1998-09-18 04:12:15 +04:00
SMB_BIG_UINT sys_disk_free ( char * path , SMB_BIG_UINT * bsize , SMB_BIG_UINT * dfree , SMB_BIG_UINT * dsize ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/dir.c */
void init_dptrs ( void ) ;
char * dptr_path ( int key ) ;
char * dptr_wcard ( int key ) ;
BOOL dptr_set_wcard ( int key , char * wcard ) ;
BOOL dptr_set_attr ( int key , uint16 attr ) ;
uint16 dptr_attr ( int key ) ;
void dptr_close ( int key ) ;
1998-08-14 21:38:29 +04:00
void dptr_closecnum ( connection_struct * conn ) ;
void dptr_idlecnum ( connection_struct * conn ) ;
1998-08-09 17:25:34 +04:00
void dptr_closepath ( char * path , int pid ) ;
1998-08-14 21:38:29 +04:00
int dptr_create ( connection_struct * conn , char * path , BOOL expect_close , int pid ) ;
1998-08-09 17:25:34 +04:00
BOOL dptr_fill ( char * buf1 , unsigned int key ) ;
BOOL dptr_zero ( char * buf ) ;
void * dptr_fetch ( char * buf , int * num ) ;
void * dptr_fetch_lanman2 ( int dptr_num ) ;
1998-09-02 00:11:54 +04:00
BOOL dir_check_ftype ( connection_struct * conn , int mode , SMB_STRUCT_STAT * st , int dirtype ) ;
1998-09-03 22:40:31 +04:00
BOOL get_dir_entry ( connection_struct * conn , char * mask , int dirtype , char * fname ,
SMB_OFF_T * size , int * mode , time_t * date , BOOL check_descend ) ;
1998-08-14 21:38:29 +04:00
void * OpenDir ( connection_struct * conn , char * name , BOOL use_veto ) ;
1998-08-09 17:25:34 +04:00
void CloseDir ( void * p ) ;
char * ReadDirName ( void * p ) ;
BOOL SeekDir ( void * p , int pos ) ;
int TellDir ( void * p ) ;
void DirCacheAdd ( char * path , char * name , char * dname , int snum ) ;
char * DirCacheCheck ( char * path , char * name , int snum ) ;
void DirCacheFlush ( int snum ) ;
1998-08-17 11:40:06 +04:00
/*The following definitions come from smbd/dosmode.c */
mode_t unix_mode ( connection_struct * conn , int dosmode ) ;
1998-09-02 00:11:54 +04:00
int dos_mode ( connection_struct * conn , char * path , SMB_STRUCT_STAT * sbuf ) ;
int file_chmod ( connection_struct * conn , char * fname , int dosmode , SMB_STRUCT_STAT * st ) ;
1998-08-17 17:11:34 +04:00
int file_utime ( connection_struct * conn , char * fname , struct utimbuf * times ) ;
BOOL set_filetime ( connection_struct * conn , char * fname , time_t mtime ) ;
/*The following definitions come from smbd/error.c */
int cached_error_packet ( char * inbuf , char * outbuf , files_struct * fsp , int line ) ;
int unix_error_packet ( char * inbuf , char * outbuf , int def_class , uint32 def_code , int line ) ;
int error_packet ( char * inbuf , char * outbuf , int error_class , uint32 error_code , int line ) ;
1998-08-17 11:40:06 +04:00
1998-08-17 11:15:54 +04:00
/*The following definitions come from smbd/fileio.c */
1998-09-03 22:40:31 +04:00
SMB_OFF_T seek_file ( files_struct * fsp , SMB_OFF_T pos ) ;
1998-09-11 05:24:30 +04:00
ssize_t read_file ( files_struct * fsp , char * data , SMB_OFF_T pos , size_t n ) ;
ssize_t write_file ( files_struct * fsp , char * data , size_t n ) ;
1998-08-17 11:40:06 +04:00
void sync_file ( connection_struct * conn , files_struct * fsp ) ;
/*The following definitions come from smbd/filename.c */
1998-08-28 00:38:53 +04:00
void print_stat_cache_statistics ( void ) ;
BOOL unix_convert ( char * name , connection_struct * conn , char * saved_last_component ,
1998-09-02 00:11:54 +04:00
BOOL * bad_path , SMB_STRUCT_STAT * pst ) ;
1998-08-17 11:40:06 +04:00
BOOL check_name ( char * name , connection_struct * conn ) ;
1998-08-17 11:15:54 +04:00
1998-08-15 11:27:34 +04:00
/*The following definitions come from smbd/files.c */
1998-08-16 07:04:06 +04:00
files_struct * file_new ( void ) ;
1998-09-02 00:11:54 +04:00
file_fd_struct * fd_get_already_open ( SMB_STRUCT_STAT * sbuf ) ;
1998-08-15 11:27:34 +04:00
file_fd_struct * fd_get_new ( void ) ;
void file_close_conn ( connection_struct * conn ) ;
void file_init ( void ) ;
void file_close_user ( int vuid ) ;
1998-09-01 00:20:54 +04:00
files_struct * file_find_dit ( SMB_DEV_T dev , SMB_INO_T inode , struct timeval * tval ) ;
1998-10-23 07:34:50 +04:00
files_struct * file_find_di_first ( SMB_DEV_T dev , SMB_INO_T inode ) ;
files_struct * file_find_di_next ( files_struct * start_fsp ) ;
1998-08-15 11:27:34 +04:00
files_struct * file_find_print ( void ) ;
void file_sync_all ( connection_struct * conn ) ;
1998-09-05 07:14:40 +04:00
void fd_ptr_free ( file_fd_struct * fd_ptr ) ;
1998-08-15 11:27:34 +04:00
void file_free ( files_struct * fsp ) ;
1998-08-17 07:52:05 +04:00
files_struct * file_fsp ( char * buf , int where ) ;
void file_chain_reset ( void ) ;
1998-08-18 02:59:53 +04:00
void file_chain_save ( void ) ;
void file_chain_restore ( void ) ;
1998-08-15 11:27:34 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/ipc.c */
1998-08-14 21:38:29 +04:00
int reply_trans ( connection_struct * conn , char * inbuf , char * outbuf , int size , int bufsize ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/mangle.c */
BOOL is_mangled ( char * s ) ;
BOOL is_8_3 ( char * fname , BOOL check_case ) ;
void reset_mangled_cache ( void ) ;
BOOL check_mangled_cache ( char * s ) ;
1998-09-03 07:14:31 +04:00
void mangle_name_83 ( char * s ) ;
BOOL name_map_mangle ( char * OutName , BOOL need83 , int snum ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/message.c */
1998-05-08 20:49:10 +04:00
1998-08-14 21:38:29 +04:00
int reply_sends ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_sendstrt ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_sendtxt ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_sendend ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
1998-05-08 20:49:10 +04:00
1998-08-17 11:15:54 +04:00
/*The following definitions come from smbd/negprot.c */
int reply_negprot ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size ,
int dum_buffsize ) ;
1998-11-03 05:25:28 +03:00
/*The following definitions come from smbd/noquotas.c */
1998-11-06 21:40:51 +03:00
BOOL disk_quotas ( char * path , SMB_BIG_UINT * bsize , SMB_BIG_UINT * dfree , SMB_BIG_UINT * dsize ) ;
1998-11-03 05:25:28 +03:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/nttrans.c */
1998-07-17 02:46:06 +04:00
1998-08-14 21:38:29 +04:00
int reply_ntcreate_and_X ( connection_struct * conn ,
char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_ntcancel ( connection_struct * conn ,
char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_nttranss ( connection_struct * conn ,
char * inbuf , char * outbuf , int length , int bufsize ) ;
1998-08-15 11:27:34 +04:00
void remove_pending_change_notify_requests_by_fid ( files_struct * fsp ) ;
1998-08-03 23:07:55 +04:00
void process_pending_change_notify_queue ( time_t t ) ;
1998-08-14 21:38:29 +04:00
int reply_nttrans ( connection_struct * conn ,
char * inbuf , char * outbuf , int length , int bufsize ) ;
1998-07-17 02:46:06 +04:00
1998-08-17 17:11:34 +04:00
/*The following definitions come from smbd/open.c */
void fd_add_to_uid_cache ( file_fd_struct * fd_ptr , uid_t u ) ;
1998-09-08 23:21:04 +04:00
uint16 fd_attempt_close ( file_fd_struct * fd_ptr ) ;
1998-08-17 17:11:34 +04:00
void open_file_shared ( files_struct * fsp , connection_struct * conn , char * fname , int share_mode , int ofun ,
1998-09-18 22:09:17 +04:00
mode_t mode , int oplock_request , int * Access , int * action ) ;
1998-08-17 17:11:34 +04:00
int open_directory ( files_struct * fsp , connection_struct * conn ,
1998-09-18 03:06:57 +04:00
char * fname , int smb_ofun , mode_t unixmode , int * action ) ;
1998-08-17 17:11:34 +04:00
BOOL check_file_sharing ( connection_struct * conn , char * fname , BOOL rename_op ) ;
/*The following definitions come from smbd/oplock.c */
BOOL open_oplock_ipc ( void ) ;
1998-09-23 05:48:45 +04:00
BOOL receive_local_message ( fd_set * fds , char * buffer , int buffer_len , int timeout ) ;
BOOL set_file_oplock ( files_struct * fsp ) ;
int setup_oplock_select_set ( fd_set * fds ) ;
BOOL process_local_message ( char * buffer , int buf_size ) ;
1998-08-17 17:11:34 +04:00
BOOL request_oplock_break ( share_mode_entry * share_entry ,
1998-09-01 00:20:54 +04:00
SMB_DEV_T dev , SMB_INO_T inode ) ;
1998-08-17 17:11:34 +04:00
BOOL attempt_close_oplocked_file ( files_struct * fsp ) ;
1998-09-23 05:48:45 +04:00
void check_kernel_oplocks ( void ) ;
1998-08-17 17:11:34 +04:00
1998-08-09 18:58:51 +04:00
/*The following definitions come from smbd/password.c */
void generate_next_challenge ( char * challenge ) ;
1998-09-29 01:43:48 +04:00
BOOL set_challenge ( unsigned char * challenge ) ;
1998-08-09 18:58:51 +04:00
user_struct * get_valid_user_struct ( uint16 vuid ) ;
void invalidate_vuid ( uint16 vuid ) ;
char * validated_username ( uint16 vuid ) ;
1998-09-30 00:24:17 +04:00
int setup_groups ( char * user , uid_t uid , gid_t gid , int * p_ngroups , gid_t * * p_groups ) ;
uint16 register_vuid ( uid_t uid , gid_t gid , char * unix_name , char * requested_name , BOOL guest ) ;
1998-08-09 18:58:51 +04:00
void add_session_user ( char * user ) ;
BOOL smb_password_check ( char * password , unsigned char * part_passwd , unsigned char * c8 ) ;
1998-10-19 21:32:10 +04:00
BOOL smb_password_ok ( struct smb_passwd * smb_pass , uchar chal [ 8 ] ,
1998-08-09 18:58:51 +04:00
uchar lm_pass [ 24 ] , uchar nt_pass [ 24 ] ) ;
1998-10-17 01:36:19 +04:00
BOOL pass_check_smb ( char * user , char * domain ,
1998-10-21 20:58:34 +04:00
uchar * chal , uchar * lm_pwd , uchar * nt_pwd ,
1998-10-17 01:36:19 +04:00
struct passwd * pwd ) ;
1998-10-17 00:08:56 +04:00
BOOL password_ok ( char * user , char * password , int pwlen , struct passwd * pwd ) ;
1998-08-09 18:58:51 +04:00
BOOL user_ok ( char * user , int snum ) ;
BOOL authorise_login ( int snum , char * user , char * password , int pwlen ,
BOOL * guest , BOOL * force , uint16 vuid ) ;
BOOL check_hosts_equiv ( char * user ) ;
struct cli_state * server_client ( void ) ;
struct cli_state * server_cryptkey ( void ) ;
BOOL server_validate ( char * user , char * domain ,
char * pass , int passlen ,
char * ntpass , int ntpasslen ) ;
BOOL domain_client_validate ( char * user , char * domain ,
char * smb_apasswd , int smb_apasslen ,
char * smb_ntpasswd , int smb_ntpasslen ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/pipes.c */
1998-05-08 20:49:10 +04:00
1998-08-14 21:38:29 +04:00
int reply_open_pipe_and_X ( connection_struct * conn ,
char * inbuf , char * outbuf , int length , int bufsize ) ;
1998-10-07 19:22:49 +04:00
int reply_pipe_write_and_X ( char * inbuf , char * outbuf , int length , int bufsize ) ;
1998-05-08 20:49:10 +04:00
int reply_pipe_read_and_X ( char * inbuf , char * outbuf , int length , int bufsize ) ;
1998-08-14 21:38:29 +04:00
int reply_pipe_close ( connection_struct * conn , char * inbuf , char * outbuf ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/predict.c */
1998-05-08 20:49:10 +04:00
1998-09-11 05:24:30 +04:00
ssize_t read_predict ( int fd , SMB_OFF_T offset , char * buf , char * * ptr , size_t num ) ;
1998-05-08 20:49:10 +04:00
void do_read_prediction ( void ) ;
void invalidate_read_prediction ( int fd ) ;
1998-08-17 17:11:34 +04:00
/*The following definitions come from smbd/process.c */
1998-09-23 05:48:45 +04:00
BOOL push_oplock_pending_smb_message ( char * buf , int msg_len ) ;
BOOL receive_next_smb ( char * inbuf , int bufsize , int timeout ) ;
1998-08-17 17:11:34 +04:00
void process_smb ( char * inbuf , char * outbuf ) ;
char * smb_fn_name ( int type ) ;
void construct_reply_common ( char * inbuf , char * outbuf ) ;
1998-08-20 23:28:37 +04:00
int chain_reply ( char * inbuf , char * outbuf , int size , int bufsize ) ;
1998-08-17 17:11:34 +04:00
void smbd_process ( void ) ;
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/reply.c */
1998-05-08 20:49:10 +04:00
int reply_special ( char * inbuf , char * outbuf ) ;
1998-08-14 21:38:29 +04:00
int reply_tcon ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_tcon_and_X ( connection_struct * conn , char * inbuf , char * outbuf , int length , int bufsize ) ;
1998-05-08 20:49:10 +04:00
int reply_unknown ( char * inbuf , char * outbuf ) ;
1998-08-14 21:38:29 +04:00
int reply_ioctl ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_sesssetup_and_X ( connection_struct * conn , char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_chkpth ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_getatr ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_setatr ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_dskattr ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_search ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_fclose ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_open ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_open_and_X ( connection_struct * conn , char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_ulogoffX ( connection_struct * conn , char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_mknew ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_ctemp ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_unlink ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_readbraw ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
1998-08-20 23:28:37 +04:00
int reply_lockread ( connection_struct * conn , char * inbuf , char * outbuf , int length , int dum_buffsiz ) ;
1998-08-14 21:38:29 +04:00
int reply_read ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_read_and_X ( connection_struct * conn , char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_writebraw ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_writeunlock ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_write ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_write_and_X ( connection_struct * conn , char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_lseek ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_flush ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_exit ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_close ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_writeclose ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_lock ( connection_struct * conn ,
1998-08-20 23:28:37 +04:00
char * inbuf , char * outbuf , int length , int dum_buffsize ) ;
1998-08-14 21:38:29 +04:00
int reply_unlock ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_tdis ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_echo ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_printopen ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_printclose ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_printqueue ( connection_struct * conn ,
char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_printwrite ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_mkdir ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_rmdir ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int rename_internals ( connection_struct * conn ,
char * inbuf , char * outbuf , char * name ,
char * newname , BOOL replace_if_exists ) ;
int reply_mv ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_copy ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_setdir ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_lockingX ( connection_struct * conn , char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_readbmpx ( connection_struct * conn , char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_writebmpx ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_writebs ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_setattrE ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
int reply_getattrE ( connection_struct * conn , char * inbuf , char * outbuf , int dum_size , int dum_buffsize ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/server.c */
1998-05-08 20:49:10 +04:00
1998-08-17 17:11:34 +04:00
BOOL reload_services ( BOOL test ) ;
void exit_server ( char * reason ) ;
/*The following definitions come from smbd/service.c */
1998-08-14 21:38:29 +04:00
BOOL become_service ( connection_struct * conn , BOOL do_chdir ) ;
1998-05-08 20:49:10 +04:00
int find_service ( char * service ) ;
1998-08-14 21:38:29 +04:00
connection_struct * make_connection ( char * service , char * user , char * password , int pwlen , char * dev , uint16 vuid , int * ecode ) ;
void close_cnum ( connection_struct * conn , uint16 vuid ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/ssl.c */
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
int sslutil_init ( int isServer ) ;
int sslutil_accept ( int fd ) ;
int sslutil_fd_is_ssl ( int fd ) ;
int sslutil_connect ( int fd ) ;
int sslutil_disconnect ( int fd ) ;
int sslutil_negotiate_ssl ( int fd , int msg_type ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/trans2.c */
1998-05-08 20:49:10 +04:00
1998-07-29 04:27:23 +04:00
void mask_convert ( char * mask ) ;
1998-08-14 21:38:29 +04:00
int reply_findclose ( connection_struct * conn ,
char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_findnclose ( connection_struct * conn ,
char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_transs2 ( connection_struct * conn ,
char * inbuf , char * outbuf , int length , int bufsize ) ;
int reply_trans2 ( connection_struct * conn ,
char * inbuf , char * outbuf , int length , int bufsize ) ;
1998-05-08 20:49:10 +04:00
1998-08-09 17:25:34 +04:00
/*The following definitions come from smbd/uid.c */
1998-05-08 20:49:10 +04:00
void init_uid ( void ) ;
BOOL become_guest ( void ) ;
1998-08-14 21:38:29 +04:00
BOOL become_user ( connection_struct * conn , uint16 vuid ) ;
1998-05-08 20:49:10 +04:00
BOOL unbecome_user ( void ) ;
void become_root ( BOOL save_dir ) ;
void unbecome_root ( BOOL restore_dir ) ;
1998-08-09 18:37:32 +04:00
1998-10-05 16:17:01 +04:00
/*The following definitions come from smbwrapper/realcalls.c */
int real_utime ( const char * name , struct utimbuf * buf ) ;
int real_utimes ( const char * name , struct timeval tv [ 2 ] ) ;
1998-10-19 05:05:49 +04:00
/*The following definitions come from smbwrapper/shared.c */
void smbw_setup_shared ( void ) ;
char * smbw_getshared ( const char * name ) ;
void smbw_setshared ( const char * name , const char * val ) ;
1998-10-20 10:43:59 +04:00
int smbw_setenv ( const char * name , const char * value ) ;
1998-10-24 10:36:22 +04:00
int smbw_shared_fd ( int fd ) ;
1998-10-19 05:05:49 +04:00
1998-10-04 08:33:56 +04:00
/*The following definitions come from smbwrapper/smbw.c */
void smbw_init ( void ) ;
int smbw_fd ( int fd ) ;
1998-10-24 10:36:22 +04:00
int smbw_local_fd ( int fd ) ;
1998-10-04 08:33:56 +04:00
ino_t smbw_inode ( const char * name ) ;
void clean_fname ( char * name ) ;
char * smbw_parse_path ( const char * fname , char * server , char * share , char * path ) ;
int smbw_path ( const char * path ) ;
int smbw_errno ( struct cli_state * c ) ;
struct smbw_server * smbw_server ( char * server , char * share ) ;
struct smbw_file * smbw_file ( int fd ) ;
int smbw_open ( const char * fname , int flags , mode_t mode ) ;
1998-10-05 16:17:01 +04:00
ssize_t smbw_pread ( int fd , void * buf , size_t count , off_t ofs ) ;
1998-10-04 08:33:56 +04:00
ssize_t smbw_read ( int fd , void * buf , size_t count ) ;
ssize_t smbw_write ( int fd , void * buf , size_t count ) ;
1998-10-05 16:17:01 +04:00
ssize_t smbw_pwrite ( int fd , void * buf , size_t count , off_t ofs ) ;
1998-10-04 08:33:56 +04:00
int smbw_close ( int fd ) ;
int smbw_fcntl ( int fd , int cmd , long arg ) ;
int smbw_access ( const char * name , int mode ) ;
int smbw_readlink ( const char * path , char * buf , size_t bufsize ) ;
int smbw_unlink ( const char * fname ) ;
int smbw_rename ( const char * oldname , const char * newname ) ;
int smbw_utime ( const char * fname , void * buf ) ;
1998-10-05 16:17:01 +04:00
int smbw_utimes ( const char * fname , void * buf ) ;
1998-10-04 08:33:56 +04:00
int smbw_chown ( const char * fname , uid_t owner , gid_t group ) ;
int smbw_chmod ( const char * fname , mode_t newmode ) ;
off_t smbw_lseek ( int fd , off_t offset , int whence ) ;
1998-10-04 13:42:51 +04:00
int smbw_dup ( int fd ) ;
int smbw_dup2 ( int fd , int fd2 ) ;
1998-10-07 02:03:04 +04:00
int smbw_fork ( void ) ;
1998-10-04 08:33:56 +04:00
/*The following definitions come from smbwrapper/smbw_dir.c */
struct smbw_dir * smbw_dir ( int fd ) ;
int smbw_dirp ( DIR * dirp ) ;
int smbw_dir_open ( const char * fname ) ;
int smbw_dir_fstat ( int fd , struct stat * st ) ;
int smbw_dir_close ( int fd ) ;
int smbw_getdents ( unsigned int fd , struct dirent * dirp , int count ) ;
int smbw_chdir ( const char * name ) ;
off_t smbw_dir_lseek ( int fd , off_t offset , int whence ) ;
int smbw_mkdir ( const char * fname , mode_t mode ) ;
int smbw_rmdir ( const char * fname ) ;
char * smbw_getcwd ( char * buf , size_t size ) ;
int smbw_fchdir ( unsigned int fd ) ;
DIR * smbw_opendir ( const char * fname ) ;
struct dirent * smbw_readdir ( DIR * dirp ) ;
int smbw_closedir ( DIR * dirp ) ;
void smbw_seekdir ( DIR * dirp , off_t offset ) ;
off_t smbw_telldir ( DIR * dirp ) ;
/*The following definitions come from smbwrapper/smbw_stat.c */
void smbw_setup_stat ( struct stat * st , char * fname , size_t size , int mode ) ;
BOOL smbw_getatr ( struct smbw_server * srv , char * path ,
1998-11-09 23:33:37 +03:00
uint16 * mode , size_t * size ,
1998-10-24 12:08:05 +04:00
time_t * c_time , time_t * a_time , time_t * m_time ,
SMB_INO_T * ino ) ;
1998-10-04 13:42:51 +04:00
int smbw_stat_printjob ( struct smbw_server * srv , char * path ,
size_t * size , time_t * m_time ) ;
1998-10-04 08:33:56 +04:00
int smbw_fstat ( int fd , struct stat * st ) ;
int smbw_stat ( const char * fname , struct stat * st ) ;
1998-08-09 18:37:32 +04:00
/*The following definitions come from web/cgi.c */
void cgi_load_variables ( FILE * f1 ) ;
char * cgi_variable ( char * name ) ;
void cgi_setup ( char * rootdir , int auth_required ) ;
char * cgi_baseurl ( void ) ;
char * cgi_pathinfo ( void ) ;
char * cgi_remote_host ( void ) ;
char * cgi_remote_addr ( void ) ;
BOOL cgi_waspost ( void ) ;
/*The following definitions come from web/diagnose.c */
BOOL nmbd_running ( void ) ;
BOOL smbd_running ( void ) ;
/*The following definitions come from web/startstop.c */
void start_smbd ( void ) ;
void start_nmbd ( void ) ;
void stop_smbd ( void ) ;
void stop_nmbd ( void ) ;
1998-09-29 01:43:48 +04:00
void kill_pid ( pid_t pid ) ;
1998-08-09 18:37:32 +04:00
/*The following definitions come from web/statuspage.c */
void status_page ( void ) ;
/*The following definitions come from web/swat.c */
1998-06-08 23:38:57 +04:00
# endif /* _PROTO_H_ */