X-Git-Url: http://git.samba.org/samba.git/?p=kai%2Fsamba.git;a=blobdiff_plain;f=source3%2Finclude%2Fproto.h;h=a6250ca56c8a62801f0b615961dfad36b0a5e8c8;hp=e9994214fb8052091ba4ef0020a6b2a2ff1367d9;hb=0e151792c3289ce2253d1940d07f6caa12774118;hpb=612111c7a1a048d19e24b5e2e4d426247d320d1e diff --git a/source3/include/proto.h b/source3/include/proto.h index e9994214fb8..a6250ca56c8 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -14,7 +14,7 @@ int interpret_character_set(char *str, int def); /*The following definitions come from charset.c */ -void charset_initialise(void); +void charset_initialise(); void codepage_initialise(int client_codepage); void add_char_string(char *s); @@ -51,7 +51,6 @@ char *smb_errstr(char *inbuf); /*The following definitions come from clitar.c */ -int strslashcmp(char *s1,char *s2); int padit(char *buf, int bufsize, int padsize); void cmd_block(void); void cmd_tarmode(void); @@ -74,13 +73,13 @@ void dptr_closecnum(int cnum); void dptr_idlecnum(int cnum); void dptr_closepath(char *path,int pid); int dptr_create(int cnum,char *path, BOOL expect_close,int pid); -BOOL dptr_fill(int snum, char *buf1,unsigned int key); +BOOL dptr_fill(char *buf1,unsigned int key); BOOL dptr_zero(char *buf); -void *dptr_fetch(int snum, char *buf,int *num); -void *dptr_fetch_lanman2(int snum, char *params,int dptr_num); +void *dptr_fetch(char *buf,int *num); +void *dptr_fetch_lanman2(char *params,int dptr_num); BOOL dir_check_ftype(int cnum,int mode,struct stat *st,int dirtype); BOOL get_dir_entry(int cnum,char *mask,int dirtype,char *fname,int *size,int *mode,time_t *date,BOOL check_descend); -void *OpenDir(int snum, char *name, BOOL use_veto); +void *OpenDir(int cnum, char *name, BOOL use_veto); void CloseDir(void *p); char *ReadDirName(void *p); BOOL SeekDir(void *p,int pos); @@ -115,6 +114,10 @@ int reply_trans(char *inbuf,char *outbuf); /*The following definitions come from kanji.c */ +char *sj_strtok(char *s1, char *s2); +char *sj_strstr(char *s1, char *s2); +char *sj_strchr (char *s, int c); +char *sj_strrchr(char *s, int c); int interpret_coding_system(char *str, int def); /*The following definitions come from loadparm.c */ @@ -147,6 +150,8 @@ char *lp_wins_server(void); char *lp_interfaces(void); char *lp_socket_address(void); char *lp_nis_home_map_name(void); +char *lp_announce_version(void); +char *lp_netbios_aliases(void); BOOL lp_dns_proxy(void); BOOL lp_wins_support(void); BOOL lp_wins_proxy(void); @@ -178,6 +183,7 @@ int lp_maxmux(void); int lp_maxpacket(void); int lp_keepalive(void); int lp_passwordlevel(void); +int lp_usernamelevel(void); int lp_readsize(void); int lp_shmem_size(void); int lp_shmem_hash_size(void); @@ -189,6 +195,7 @@ int lp_maxdisksize(void); int lp_lpqcachetime(void); int lp_syslog(void); int lp_client_code_page(void); +int lp_announce_as(void); char *lp_preexec(int ); char *lp_postexec(int ); char *lp_rootpreexec(int ); @@ -241,6 +248,7 @@ 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 ); @@ -249,6 +257,7 @@ BOOL lp_syncalways(int ); BOOL lp_map_system(int ); BOOL lp_delete_readonly(int ); BOOL lp_fake_oplocks(int ); +BOOL lp_recursive_veto_delete(int ); int lp_create_mode(int ); int lp_force_create_mode(int ); int lp_dir_mode(int ); @@ -261,14 +270,23 @@ 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); +BOOL lp_do_parameter(int snum, char *pszParmName, char *pszParmValue); +int lp_next_parameter(int snum, int *i, char *label, + char *value, int allparameters); BOOL lp_snum_ok(int iService); BOOL lp_loaded(void); void lp_killunused(BOOL (*snumused)(int )); BOOL lp_load(char *pszFname,BOOL global_only); int lp_numservices(void); -void lp_dump(void); +void lp_dump(FILE *f); int lp_servicenumber(char *pszServiceName); char *volume_label(int snum); +void lp_rename_service(int snum, char *new_name); +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); /*The following definitions come from locking.c */ @@ -282,13 +300,31 @@ BOOL unlock_share_entry(int cnum, uint32 dev, uint32 inode, share_lock_token tok int get_share_modes(int cnum, share_lock_token token, uint32 dev, uint32 inode, min_share_mode_entry **old_shares); void del_share_mode(share_lock_token token, int fnum); -BOOL set_share_mode(share_lock_token token, int fnum); +BOOL set_share_mode(share_lock_token token, int fnum, uint16 port, uint16 op_type); +BOOL remove_share_oplock(int fnum, share_lock_token token); BOOL lock_share_entry(int cnum, uint32 dev, uint32 inode, share_lock_token *ptok); BOOL unlock_share_entry(int cnum, uint32 dev, uint32 inode, share_lock_token token); int get_share_modes(int cnum, share_lock_token token, uint32 dev, uint32 inode, min_share_mode_entry **old_shares); void del_share_mode(share_lock_token token, int fnum); -BOOL set_share_mode(share_lock_token token,int fnum); +BOOL set_share_mode(share_lock_token token,int fnum, uint16 port, uint16 op_type); +BOOL remove_share_oplock(int fnum, share_lock_token token); + +/*The following definitions come from lsaparse.c */ + +char* lsa_io_q_query(BOOL io, LSA_Q_QUERY_INFO *q_q, char *q, char *base, int align); +char* lsa_io_r_query(BOOL io, LSA_R_QUERY_INFO *r_q, char *q, char *base, int align); +char* lsa_io_q_lookup_sids(BOOL io, LSA_Q_LOOKUP_SIDS *q_s, char *q, char *base, int align); +char* lsa_io_r_lookup_sids(BOOL io, LSA_R_LOOKUP_SIDS *r_s, char *q, char *base, int align); +char* lsa_io_q_lookup_rids(BOOL io, LSA_Q_LOOKUP_RIDS *q_r, char *q, char *base, int align); +char* lsa_io_r_lookup_rids(BOOL io, LSA_R_LOOKUP_RIDS *r_r, char *q, char *base, int align); +char* lsa_io_q_req_chal(BOOL io, LSA_Q_REQ_CHAL *q_c, char *q, char *base, int align); +char* lsa_io_r_req_chal(BOOL io, LSA_R_REQ_CHAL *r_c, char *q, char *base, int align); +char* lsa_io_q_auth2(BOOL io, LSA_Q_AUTH_2 *q_a, char *q, char *base, int align); +char* lsa_io_r_auth_2(BOOL io, LSA_R_AUTH_2 *r_a, char *q, char *base, int align); +char* lsa_io_q_srv_pwset(BOOL io, LSA_Q_SRV_PWSET *q_s, char *q, char *base, int align); +char* lsa_io_r_srv_pwset(BOOL io, LSA_R_SRV_PWSET *r_s, char *q, char *base, int align); +char* lsa_io_user_info(BOOL io, LSA_USER_INFO *usr, char *q, char *base, int align); /*The following definitions come from mangle.c */ @@ -302,6 +338,7 @@ BOOL name_map_mangle(char *OutName,BOOL need83,int snum); /*The following definitions come from md4.c */ +void mdfour(unsigned char *out, unsigned char *in, int n); /*The following definitions come from message.c */ @@ -341,20 +378,6 @@ struct browse_cache_record *add_browser_entry(char *name, int type, char *wg, struct in_addr ip, BOOL local); void do_browser_lists(time_t t); -/*The following definitions come from nameconf.c */ - -int get_num_workgroups(void); -int conf_workgroup_name_to_token(char *workgroup_name,char *default_name); -char *conf_workgroup_name(int token); -int conf_should_workgroup_member(int token); -int conf_should_local_master(int token); -int conf_should_domain_master(int token); -char *conf_browsing_alias(int token); -char *conf_browsing_alias_comment(int token); -char *conf_alias_to_workgroup(char *alias); -int conf_alias_to_token(char *alias); -void read_smbbrowse_conf(char *default_name); - /*The following definitions come from namedbname.c */ void set_samba_nb_type(void); @@ -457,7 +480,9 @@ void initiate_netbios_packet(uint16 *id, int nb_flags,BOOL bcast,BOOL recurse, struct in_addr to_ip); void reply_netbios_packet(struct packet_struct *p1,int trn_id, - int rcode, int rcv_code, int opcode, BOOL recurse, + int rcode, int rcv_code, int opcode, + BOOL recursion_available, + BOOL recursion_desired, struct nmb_name *rr_name,int rr_type,int rr_class,int ttl, char *data,int len); void queue_packet(struct packet_struct *packet); @@ -483,7 +508,6 @@ struct response_record *queue_netbios_pkt_wins( int fd,int quest_type,enum state_type state, char *name,int name_type,int nb_flags, time_t ttl, int server_type, char *my_name, char *my_comment, - BOOL bcast,BOOL recurse, struct in_addr send_ip, struct in_addr reply_to_ip); struct response_record *queue_netbios_packet(struct subnet_record *d, int fd,int quest_type,enum state_type state,char *name, @@ -494,8 +518,11 @@ struct response_record *queue_netbios_packet(struct subnet_record *d, /*The following definitions come from nameserv.c */ -void remove_name_entry(struct subnet_record *d, char *name,int type, BOOL direct); -void add_my_name_entry(struct subnet_record *d,char *name,int type,int nb_flags, BOOL direct); +void remove_name_entry(struct subnet_record *d, char *name,int type); +void add_my_name_entry(struct subnet_record *d,char *name,int type,int nb_flags); +void add_domain_logon_names(void); +void add_domain_master_bcast(void); +void add_domain_master_wins(void); void add_domain_names(time_t t); void add_my_names(void); void remove_my_names(); @@ -532,6 +559,7 @@ BOOL reload_services(BOOL test); /*The following definitions come from nmblib.c */ +char *lookup_opcode_name( int opcode ); void debug_nmb_packet(struct packet_struct *p); char *namestr(struct nmb_name *n); void free_nmb_packet(struct nmb_packet *nmb); @@ -553,7 +581,9 @@ void sync_browse_lists(struct subnet_record *d, struct work_record *work, /*The following definitions come from params.c */ -BOOL pm_process(char *pszFileName,BOOL (*sfunc)(char *),BOOL (*pfunc)(char *,char *)); +BOOL pm_process( char *FileName, + BOOL (*sfunc)(char *), + BOOL (*pfunc)(char *, char *) ); /*The following definitions come from password.c */ @@ -607,6 +637,8 @@ int get_printqueue(int snum,int cnum,print_queue_struct **queue, print_status_struct *status); void del_printqueue(int cnum,int snum,int jobid); void status_printjob(int cnum,int snum,int jobid,int status); +int printjob_encode(int snum, int job); +void printjob_decode(int jobid, int *snum, int *job); /*The following definitions come from quotas.c */ @@ -614,6 +646,7 @@ BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize); BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize); BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize); BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize); +BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize); /*The following definitions come from replace.c */ @@ -685,26 +718,28 @@ void killkids(void); mode_t unix_mode(int cnum,int dosmode); int dos_mode(int cnum,char *path,struct stat *sbuf); int dos_chmod(int cnum,char *fname,int dosmode,struct stat *st); -BOOL unix_convert(char *name,int cnum,pstring saved_last_component); +BOOL unix_convert(char *name,int cnum,pstring saved_last_component, BOOL *bad_path); int disk_free(char *path,int *bsize,int *dfree,int *dsize); int sys_disk_free(char *path,int *bsize,int *dfree,int *dsize); BOOL check_name(char *name,int cnum); -int fd_attempt_open(char *fname, int flags, int mode); -void fd_attempt_reopen(char *fname, int mode, file_fd_struct *fd_ptr); -int fd_attempt_close(file_fd_struct *fd_ptr); void sync_file(int fnum); void close_file(int fnum); BOOL check_file_sharing(int cnum,char *fname); +int check_share_mode( min_share_mode_entry *share, int deny_mode, char *fname, + BOOL fcbopen, int *flags); void open_file_shared(int fnum,int cnum,char *fname,int share_mode,int ofun, - int mode,int *Access,int *action); -int seek_file(int fnum,int pos); -int read_file(int fnum,char *data,int pos,int n); + int mode,int oplock_request, int *Access,int *action); +int seek_file(int fnum,uint32 pos); +int read_file(int fnum,char *data,uint32 pos,int n); int write_file(int fnum,char *data,int n); BOOL become_service(int cnum,BOOL do_chdir); int find_service(char *service); int cached_error_packet(char *inbuf,char *outbuf,int fnum,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); +BOOL oplock_break(uint32 dev, uint32 inode, struct timeval *tval); +BOOL request_oplock_break(min_share_mode_entry *share_entry, + uint32 dev, uint32 inode); BOOL snum_used(int snum); BOOL reload_services(BOOL test); int setup_groups(char *user, int uid, int gid, int *p_ngroups, @@ -720,7 +755,7 @@ void close_cnum(int cnum, uint16 vuid); BOOL yield_connection(int cnum,char *name,int max_connections); BOOL claim_connection(int cnum,char *name,int max_connections,BOOL Clear); void exit_server(char *reason); -void standard_sub(int cnum,char *s); +void standard_sub(int cnum,char *str); char *smb_fn_name(int type); int chain_reply(char *inbuf,char *outbuf,int size,int bufsize); int construct_reply(char *inbuf,char *outbuf,int size,int bufsize); @@ -730,29 +765,58 @@ int construct_reply(char *inbuf,char *outbuf,int size,int bufsize); BOOL smb_shm_create_hash_table( unsigned int size ); BOOL smb_shm_open( char *file_name, int size); BOOL smb_shm_close( void ); +smb_shm_offset_t smb_shm_alloc(int size); BOOL smb_shm_free(smb_shm_offset_t offset); +smb_shm_offset_t smb_shm_get_userdef_off(void); BOOL smb_shm_set_userdef_off(smb_shm_offset_t userdef_off); -void * smb_shm_offset2addr(smb_shm_offset_t offset); +void *smb_shm_offset2addr(smb_shm_offset_t offset); +smb_shm_offset_t smb_shm_addr2offset(void *addr); BOOL smb_shm_lock_hash_entry( unsigned int entry); BOOL smb_shm_unlock_hash_entry( unsigned int entry ); BOOL smb_shm_get_usage(int *bytes_free, int *bytes_used, int *bytes_overhead); -smb_shm_offset_t smb_shm_alloc(int size); -smb_shm_offset_t smb_shm_addr2offset(void *addr); -smb_shm_offset_t smb_shm_get_userdef_off(void); + +/*The following definitions come from smbdes.c */ + +void E_P16(unsigned char *p14,unsigned char *p16); +void E_P24(unsigned char *p21, unsigned char *c8, unsigned char *p24); /*The following definitions come from smbencrypt.c */ -void str_to_key(uchar *str,uchar *key); -void D1(uchar *k, uchar *d, uchar *out); -void E1(uchar *k, uchar *d, uchar *out); -void E_P16(uchar *p14,uchar *p16); -void E_P24(uchar *p21, uchar *c8, uchar *p24); void SMBencrypt(uchar *passwd, uchar *c8, uchar *p24); void E_md4hash(uchar *passwd, uchar *p16); void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24); +/*The following definitions come from smbparse.c */ + +char* smb_io_utime(BOOL io, UTIME *t, char *q, char *base, int align); +char* smb_io_time(BOOL io, NTTIME *nttime, char *q, char *base, int align); +char* smb_io_dom_sid(BOOL io, DOM_SID *sid, char *q, char *base, int align); +char* smb_io_unihdr(BOOL io, UNIHDR *hdr, char *q, char *base, int align); +char* smb_io_unihdr2(BOOL io, UNIHDR2 *hdr2, char *q, char *base, int align); +char* smb_io_unistr(BOOL io, UNISTR *uni, char *q, char *base, int align); +char* smb_io_unistr2(BOOL io, UNISTR2 *uni2, char *q, char *base, int align); +char* smb_io_dom_sid2(BOOL io, DOM_SID2 *sid2, char *q, char *base, int align); +char* smb_io_dom_rid2(BOOL io, DOM_RID2 *rid2, char *q, char *base, int align); +char* smb_io_log_info(BOOL io, DOM_LOG_INFO *log, char *q, char *base, int align); +char* smb_io_chal(BOOL io, DOM_CHAL *chal, char *q, char *base, int align); +char* smb_io_cred(BOOL io, DOM_CRED *cred, char *q, char *base, int align); +char* smb_io_clnt_info(BOOL io, DOM_CLNT_INFO *clnt, char *q, char *base, int align); +char* smb_io_logon_id(BOOL io, DOM_LOGON_ID *log, char *q, char *base, int align); +char* smb_io_rc4_owf(BOOL io, RC4_OWF *hash, char *q, char *base, int align); +char* smb_io_id_info1(BOOL io, DOM_ID_INFO_1 *id, char *q, char *base, int align); +char* smb_io_sam_info(BOOL io, DOM_SAM_INFO *sam, char *q, char *base, int align); +char* smb_io_gid(BOOL io, DOM_GID *gid, char *q, char *base, int align); +char* smb_io_rpc_hdr(BOOL io, RPC_HDR *rpc, char *q, char *base, int align); +char* smb_io_pol_hnd(BOOL io, LSA_POL_HND *pol, char *q, char *base, int align); +char* smb_io_dom_query_3(BOOL io, DOM_QUERY_3 *d_q, char *q, char *base, int align); +char* smb_io_dom_query_5(BOOL io, DOM_QUERY_3 *d_q, char *q, char *base, int align); +char* smb_io_dom_query(BOOL io, DOM_QUERY *d_q, char *q, char *base, int align); +char* smb_io_dom_r_ref(BOOL io, DOM_R_REF *r_r, char *q, char *base, int align); +char* smb_io_dom_name(BOOL io, DOM_NAME *name, char *q, char *base, int align); +char* smb_io_neg_flags(BOOL io, NEG_FLAGS *neg, char *q, char *base, int align); + /*The following definitions come from smbpass.c */ int pw_file_lock(char *name, int type, int secs); @@ -788,6 +852,7 @@ int sys_chdir(char *dname); int sys_utime(char *fname,struct utimbuf *times); int sys_rename(char *from, char *to); int sys_chmod(char *fname,int mode); +char *sys_getwd(char *s); int sys_chown(char *fname,int uid,int gid); int sys_chroot(char *dname); struct hostent *sys_gethostbyname(char *name); @@ -864,9 +929,9 @@ time_t file_modtime(char *fname); BOOL directory_exist(char *dname,struct stat *st); uint32 file_size(char *file_name); char *attrib_string(int mode); -int StrCaseCmp(const char *s, const char *t); -int StrnCaseCmp(const char *s, const char *t, int n); -BOOL strequal(char *s1,char *s2); +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); @@ -899,7 +964,7 @@ BOOL strhaslower(char *s); int count_chars(char *s,char c); void make_dir_struct(char *buf,char *mask,char *fname,unsigned int size,int mode,time_t date); void close_low_fds(void); -int set_blocking(int fd, int set); +int set_blocking(int fd, BOOL set); int write_socket(int fd,char *buf,int len); int read_udp_socket(int fd,char *buf,int len); int read_with_timeout(int fd,char *buf,int mincnt,int maxcnt,long time_out); @@ -910,7 +975,12 @@ int read_data(int fd,char *buffer,int N); int write_data(int fd,char *buffer,int N); int transfer_file(int infd,int outfd,int n,char *header,int headlen,int align); int read_smb_length(int fd,char *inbuf,int timeout); -BOOL receive_smb(int fd,char *buffer,int timeout); +BOOL receive_smb(int fd,char *buffer, int timeout); +BOOL receive_local_message(int fd, char *buffer, int buffer_len, int timeout); +BOOL push_local_message(char *buf, int msg_len); +BOOL receive_message_or_smb(int smbfd, int oplock_fd, + char *buffer, int buffer_len, + int timeout, BOOL *got_smb); BOOL send_smb(int fd,char *buffer); char *name_ptr(char *buf,int ofs); int name_extract(char *buf,int ofs,char *name); @@ -944,7 +1014,7 @@ BOOL zero_ip(struct in_addr ip); void reset_globals_after_fork(); char *client_name(void); char *client_addr(void); -void standard_sub_basic(char *s); +void standard_sub_basic(char *str); BOOL same_net(struct in_addr ip1,struct in_addr ip2,struct in_addr mask); int PutUniCode(char *dst,char *src); struct hostent *Get_Hostbyname(char *name); @@ -954,21 +1024,21 @@ char *gidtoname(int gid); void BlockSignals(BOOL block,int signum); void ajt_panic(void); char *readdirname(void *p); -BOOL is_hidden_path(int snum, char *name); -BOOL is_vetoed_name(int snum, char *name); +BOOL is_in_path(char *name, name_compare_entry *namelist); +void set_namearray(name_compare_entry **ppname_array, char *namelist); +void free_namearray(name_compare_entry *name_array); BOOL fcntl_lock(int fd,int op,uint32 offset,uint32 count,int type); int file_lock(char *name,int timeout); void file_unlock(int fd); - -/*The following definitions come from vt_mode.c */ - -int VT_Check(char *buffer); -int VT_Start_utmp(void); -int VT_Stop_utmp(void); -void VT_AtExit(void); -void VT_SigCLD(int sig); -void VT_SigEXIT(int sig); -int VT_Start(void); -int VT_Output(char *Buffer); -int VT_Input(char *Buffer,int Size); -void VT_Process(void); +BOOL is_myname(char *s); +void set_remote_arch(enum remote_arch_types type); +enum remote_arch_types get_remote_arch(); +char *skip_unicode_string(char *buf,int n); +char *unistr(char *buf); +int unistrncpy(char *dst, char *src, int len); +int unistrcpy(char *dst, char *src); +void fstrcpy(char *dest, char *src); +void pstrcpy(char *dest, char *src); +char *align4(char *q, char *base); +char *align2(char *q, char *base); +char *align_offset(char *q, char *base, int align_offset);