summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/local.h5
-rw-r--r--source3/include/ntdomain.h16
-rw-r--r--source3/include/proto.h1802
3 files changed, 705 insertions, 1118 deletions
diff --git a/source3/include/local.h b/source3/include/local.h
index afe1a3b1c6..2350c00211 100644
--- a/source3/include/local.h
+++ b/source3/include/local.h
@@ -5,6 +5,11 @@
#ifndef _LOCAL_H
#define _LOCAL_H
+/* The default workgroup - usually overridden in smb.conf */
+#ifndef WORKGROUP
+#define WORKGROUP "WORKGROUP"
+#endif
+
/* This defines the section name in the configuration file that will contain */
/* global parameters - that is, parameters relating to the whole server, not */
/* just services. This name is then reserved, and may not be used as a */
diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h
index 329cb1e325..50f9397012 100644
--- a/source3/include/ntdomain.h
+++ b/source3/include/ntdomain.h
@@ -26,18 +26,18 @@
/* dce/rpc support */
-#include "lib/rpc/include/rpc_dce.h"
+#include "rpc_dce.h"
/* miscellaneous structures / defines */
-#include "lib/rpc/include/rpc_misc.h"
+#include "rpc_misc.h"
/* different dce/rpc pipes */
-#include "lib/rpc/include/rpc_lsa.h"
-#include "lib/rpc/include/rpc_netlogon.h"
-#include "lib/rpc/include/rpc_reg.h"
-#include "lib/rpc/include/rpc_samr.h"
-#include "lib/rpc/include/rpc_srvsvc.h"
-#include "lib/rpc/include/rpc_wkssvc.h"
+#include "rpc_lsa.h"
+#include "rpc_netlogon.h"
+#include "rpc_reg.h"
+#include "rpc_samr.h"
+#include "rpc_srvsvc.h"
+#include "rpc_wkssvc.h"
/*
* A bunch of stuff that was put into smb.h
diff --git a/source3/include/proto.h b/source3/include/proto.h
index d3dcd70c16..e1f88f2365 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -3,55 +3,289 @@
/* This file is automatically generated with "make proto". DO NOT EDIT */
-/*The following definitions come from access.c */
-
-BOOL check_access(int snum);
-BOOL allow_access(char *deny_list,char *allow_list,char *cname,char *caddr);
-
-/*The following definitions come from 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 charcnv.c */
+/*The following definitions come from lib/charcnv.c */
char *unix2dos_format(char *str,BOOL overwrite);
char *dos2unix_format(char *str, BOOL overwrite);
void interpret_character_set(char *str);
-/*The following definitions come from charset.c */
+/*The following definitions come from lib/charset.c */
void charset_initialise(void);
void codepage_initialise(int client_codepage);
void add_char_string(char *s);
-/*The following definitions come from chgpasswd.c */
+/*The following definitions come from lib/debug.c */
-BOOL chat_with_program(char *passwordprogram,char *name,char *chatsequence, BOOL as_root);
-BOOL chgpasswd(char *name,char *oldpass,char *newpass, BOOL as_root);
-BOOL chgpasswd(char *name,char *oldpass,char *newpass, BOOL as_root);
-BOOL check_lanman_password(char *user, unsigned char *pass1,
- unsigned char *pass2, struct smb_passwd **psmbpw);
-BOOL change_lanman_password(struct smb_passwd *smbpw, unsigned char *pass1, unsigned char *pass2);
-BOOL check_oem_password(char *user, unsigned char *data,
- struct smb_passwd **psmbpw, char *new_passwd,
- int new_passwd_size);
-BOOL change_oem_password(struct smb_passwd *smbpw, char *new_passwd, BOOL override);
+int sig_usr2( void );
+int sig_usr1( void );
+void setup_logging( char *pname, BOOL interactive );
+void reopen_logs( void );
+void force_check_log_size( void );
+BOOL dbghdr( int level, char *file, char *func, int line );
+
+/*The following definitions come from lib/fault.c */
+
+void fault_setup(void (*fn)(void *));
+
+/*The following definitions come from lib/getsmbpass.c */
+
+char *getsmbpass(char *prompt) ;
+
+/*The following definitions come from lib/interface.c */
+
+void load_interfaces(void);
+void iface_set_default(char *ip,char *bcast,char *nmask);
+BOOL ismyip(struct in_addr ip);
+BOOL ismybcast(struct in_addr bcast);
+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);
+struct in_addr *iface_bcast(struct in_addr ip);
+struct in_addr *iface_nmask(struct in_addr ip);
+struct in_addr *iface_ip(struct in_addr ip);
+
+/*The following definitions come from lib/kanji.c */
+
+void interpret_coding_system(char *str);
+void initialize_multibyte_vectors( int client_codepage);
+
+/*The following definitions come from lib/md4.c */
+
+void mdfour(unsigned char *out, unsigned char *in, int n);
+
+/*The following definitions come from lib/membuffer.c */
+
+void mem_init(struct mem_buf *buf, int margin);
+void mem_create(struct mem_buf *buf, char *data, int size, int margin, BOOL dynamic);
+void mem_take(struct mem_buf *mem_to, struct mem_buf *mem_from);
+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_chain(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);
+BOOL mem_find(struct mem_buf **buf, uint32 offset);
+uint32 mem_buf_len(struct mem_buf *buf);
+char *mem_data(struct mem_buf **buf, uint32 offset);
+
+/*The following definitions come from lib/netmask.c */
+
+int get_netmask(struct in_addr *ipaddr, struct in_addr *nmask);
+
+/*The following definitions come from lib/pidfile.c */
+
+int pidfile_pid(char *name);
+void pidfile_create(char *name);
+
+/*The following definitions come from lib/replace.c */
+
+char *rep_inet_ntoa(struct in_addr ip);
-/*The following definitions come from client.c */
+/*The following definitions come from lib/signal.c */
-void cli_smb_close(char *inbuf, char *outbuf, int clnt_fd, int c_num, int f_num);
-void do_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (*fn)(file_info *),BOOL recurse_dir, BOOL dirstoo);
-void cmd_help(char *dum_in, char *dum_out);
+void BlockSignals(BOOL block,int signum);
+void CatchSignal(int signum,void (*handler)(int ));
+void CatchChild(void);
+
+/*The following definitions come from lib/slprintf.c */
+
+int vslprintf(char *str, int n, char *format, va_list ap);
+
+/*The following definitions come from lib/system.c */
+
+int sys_select(fd_set *fds,struct timeval *tval);
+int sys_select(fd_set *fds,struct timeval *tval);
+int sys_unlink(char *fname);
+int sys_open(char *fname,int flags,int mode);
+DIR *sys_opendir(char *dname);
+int sys_stat(char *fname,struct stat *sbuf);
+int sys_waitpid(pid_t pid,int *status,int options);
+int sys_lstat(char *fname,struct stat *sbuf);
+int sys_mkdir(char *dname,int mode);
+int sys_rmdir(char *dname);
+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);
+
+/*The following definitions come from lib/time.c */
+
+void GetTimeOfDay(struct timeval *tval);
+void TimeInit(void);
+int TimeDiff(time_t t);
+struct tm *LocalTime(time_t *t);
+time_t interpret_long_date(char *p);
+void put_long_date(char *p,time_t t);
+BOOL null_mtime(time_t mtime);
+void put_dos_date(char *buf,int offset,time_t unixdate);
+void put_dos_date2(char *buf,int offset,time_t unixdate);
+void put_dos_date3(char *buf,int offset,time_t unixdate);
+time_t make_unix_date(void *date_ptr);
+time_t make_unix_date2(void *date_ptr);
+time_t make_unix_date3(void *date_ptr);
+char *http_timestring(time_t t);
+char *timestring(void );
+time_t get_create_time(struct stat *st,BOOL fake_dirs);
+
+/*The following definitions come from lib/ufc.c */
+
+char *ufc_crypt(char *key,char *salt);
+
+/*The following definitions come from lib/util.c */
+
+char *tmpdir(void);
+BOOL is_a_socket(int fd);
+BOOL next_token(char **ptr,char *buff,char *sep);
+char **toktocliplist(int *ctok, char *sep);
+void *mem_dup( void *from, int size );
+void array_promote(char *array,int elsize,int element);
+void set_socket_options(int fd, char *options);
+void close_sockets(void );
+BOOL in_group(gid_t group, int current_gid, int ngroups, GID_T *groups);
+char *StrCpy(char *dest,char *src);
+char *StrnCpy(char *dest,char *src,int n);
+void putip(void *dest,void *src);
+int name_mangle( char *In, char *Out, char name_type );
+BOOL file_exist(char *fname,struct stat *sbuf);
+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(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);
+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_numwords(char *buf);
+int smb_buflen(char *buf);
+int smb_buf_ofs(char *buf);
+char *smb_buf(char *buf);
+int smb_offset(char *p,char *buf);
+char *skip_string(char *buf,int n);
+BOOL trim_string(char *s,char *front,char *back);
+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);
+BOOL strhasupper(char *s);
+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, 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);
+int read_max_udp(int fd,char *buffer,int bufsize,int maxtime);
+int TvalDiff(struct timeval *tvalold,struct timeval *tvalnew);
+BOOL send_keepalive(int client);
+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 client_receive_smb(int fd,char *buffer, int timeout);
+BOOL receive_local_message(int fd, char *buffer, int buffer_len, int timeout);
+BOOL push_oplock_pending_smb_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);
+int name_len( char *s );
+BOOL send_one_packet(char *buf,int len,struct in_addr ip,int port,int type);
+void msleep(int t);
+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);
+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);
+char *fgets_slash(char *s2,int maxlen,FILE *f);
+int set_filelen(int fd, long len);
+int byte_checksum(char *buf,int len);
+char *dirname_dos(char *path,char *buf);
+void *Realloc(void *p,int size);
+void Abort(void );
+BOOL get_myname(char *my_name,struct in_addr *ip);
+BOOL ip_equal(struct in_addr ip1,struct in_addr ip2);
+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);
+int interpret_protocol(char *str,int def);
+int interpret_security(char *str,int def);
+uint32 interpret_addr(char *str);
+struct in_addr *interpret_addr2(char *str);
+BOOL zero_ip(struct in_addr ip);
+void reset_globals_after_fork(void);
+char *client_name(int fd);
+char *client_addr(int fd);
+char *automount_server(char *user_name);
+char *automount_path(char *user_name);
+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);
+BOOL process_exists(int pid);
+char *uidtoname(int uid);
+char *gidtoname(int gid);
+void ajt_panic(void);
+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);
+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);
+BOOL is_myname(char *s);
+void set_remote_arch(enum remote_arch_types type);
+enum remote_arch_types get_remote_arch(void);
+char *skip_unicode_string(char *buf,int n);
+char *unistrn2(uint16 *buf, int len);
+char *unistr2(uint16 *buf);
+int struni2(uint16 *p, char *buf);
+char *unistr(char *buf);
+int unistrncpy(char *dst, char *src, int len);
+int unistrcpy(char *dst, char *src);
+char *safe_strcpy(char *dest, char *src, int maxlength);
+char *safe_strcat(char *dest, char *src, int maxlength);
+char *align4(char *q, char *base);
+char *align2(char *q, char *base);
+char *align_offset(char *q, char *base, int align_offset_len);
+void print_asc(int level, unsigned char *buf,int len);
+void dump_data(int level,char *buf1,int len);
+char *tab_depth(int depth);
+char *sid_to_string(pstring sidstr_out, DOM_SID *sid);
+BOOL string_to_sid(DOM_SID *sidout, char *sidstr);
-/*The following definitions come from clientgen.c */
+/*The following definitions come from libsmb/clientgen.c */
char *cli_smb_errstr(struct cli_state *cli);
char *cli_errstr(struct cli_state *cli);
@@ -106,148 +340,324 @@ void cli_error(struct cli_state *cli, int *eclass, int *num);
void cli_sockopt(struct cli_state *cli, char *options);
int cli_setpid(struct cli_state *cli, int pid);
-/*The following definitions come from clientutil.c */
-
-void cli_setup_pkt(char *outbuf);
-BOOL cli_call_api(char *pipe_name, int pipe_name_len,
- int prcnt,int drcnt, int srcnt,
- int mprcnt,int mdrcnt,
- int *rprcnt,int *rdrcnt,
- char *param,char *data, uint16 *setup,
- char **rparam,char **rdata);
-BOOL cli_receive_trans_response(char *inbuf,int trans,
- int *data_len,int *param_len,
- char **data,char **param);
-BOOL cli_send_trans_request(char *outbuf,int trans,
- char *name,int namelen, int fid,int flags,
- char *data,char *param,uint16 *setup,
- int ldata,int lparam,int lsetup,
- int mdata,int mparam,int msetup);
-BOOL cli_send_session_request(char *inbuf,char *outbuf);
-BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup, struct connection_options *options);
-void cli_send_logout(char *dum_in, char *dum_out);
-BOOL cli_open_sockets(int port );
-BOOL cli_reopen_connection(char *inbuf,char *outbuf);
-
-/*The following definitions come from clitar.c */
-
-int padit(char *buf, int bufsize, int padsize);
-void cmd_block(char *dum_in, char *dum_out);
-void cmd_tarmode(char *dum_in, char *dum_out);
-void cmd_setmode(char *dum_in, char *dum_out);
-void cmd_tar(char *inbuf, char *outbuf);
-int process_tar(char *inbuf, char *outbuf);
-int clipfind(char **aret, int ret, char *tok);
-int tar_parseargs(int argc, char *argv[], char *Optarg, int Optind);
-
-/*The following definitions come from connection.c */
+/*The following definitions come from libsmb/namequery.c */
-BOOL yield_connection(int cnum,char *name,int max_connections);
-BOOL claim_connection(int cnum,char *name,int max_connections,BOOL Clear);
+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);
+BOOL resolve_name(char *name, struct in_addr *return_ip);
-/*The following definitions come from credentials.c */
+/*The following definitions come from libsmb/nmblib.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);
+char *lookup_opcode_name( int opcode );
+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);
-/*The following definitions come from debug.c */
+/*The following definitions come from libsmb/nterr.c */
-int sig_usr2( void );
-int sig_usr1( void );
-void setup_logging( char *pname, BOOL interactive );
-void reopen_logs( void );
-void force_check_log_size( void );
-BOOL dbghdr( int level, char *file, char *func, int line );
+char *get_nt_error_msg(uint32 nt_code);
-/*The following definitions come from dfree.c */
+/*The following definitions come from libsmb/smbdes.c */
-int sys_disk_free(char *path,int *bsize,int *dfree,int *dsize);
+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);
+void SamOEMhash( unsigned char *data, unsigned char *key, int val);
-/*The following definitions come from dir.c */
+/*The following definitions come from libsmb/smbencrypt.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);
-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(char *buf1,unsigned int key);
-BOOL dptr_zero(char *buf);
-void *dptr_fetch(char *buf,int *num);
-void *dptr_fetch_lanman2(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 cnum, char *name, BOOL use_veto);
-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);
+void SMBencrypt(uchar *passwd, uchar *c8, uchar *p24);
+void E_md4hash(uchar *passwd, uchar *p16);
+void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24);
+void nt_lm_owf_gen(char *pwd, char *nt_p16, char *p16);
-/*The following definitions come from fault.c */
+/*The following definitions come from libsmb/smberr.c */
-void fault_setup(void (*fn)(void *));
+char *smb_errstr(char *inbuf);
-/*The following definitions come from genrand.c */
+/*The following definitions come from locking/locking.c */
-void generate_random_buffer( unsigned char *out, int len, BOOL re_seed);
+BOOL is_locked(int fnum,int cnum,uint32 count,uint32 offset, int lock_type);
+BOOL do_lock(int fnum,int cnum,uint32 count,uint32 offset,int lock_type,
+ int *eclass,uint32 *ecode);
+BOOL do_unlock(int fnum,int cnum,uint32 count,uint32 offset,int *eclass,uint32 *ecode);
+BOOL locking_init(int read_only);
+BOOL locking_end(void);
+BOOL lock_share_entry(int cnum, uint32 dev, uint32 inode, int *ptok);
+BOOL unlock_share_entry(int cnum, uint32 dev, uint32 inode, int token);
+int get_share_modes(int cnum, int token, uint32 dev, uint32 inode,
+ share_mode_entry **shares);
+void del_share_mode(int token, int fnum);
+BOOL set_share_mode(int token, int fnum, uint16 port, uint16 op_type);
+BOOL remove_share_oplock(int fnum, int token);
+int share_mode_forall(void (*fn)(share_mode_entry *, char *));
+void share_status(FILE *f);
-/*The following definitions come from getsmbpass.c */
+/*The following definitions come from locking/locking_shm.c */
-char *getsmbpass(char *prompt) ;
+struct share_ops *locking_shm_init(int ronly);
-/*The following definitions come from groupname.c */
+/*The following definitions come from locking/locking_slow.c */
-void load_groupname_map(void);
-void map_gid_to_sid( gid_t gid, DOM_SID *psid);
+struct share_ops *locking_slow_init(int ronly);
-/*The following definitions come from interface.c */
+/*The following definitions come from locking/shmem.c */
-void load_interfaces(void);
-void iface_set_default(char *ip,char *bcast,char *nmask);
-BOOL ismyip(struct in_addr ip);
-BOOL ismybcast(struct in_addr bcast);
-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);
-struct in_addr *iface_bcast(struct in_addr ip);
-struct in_addr *iface_nmask(struct in_addr ip);
-struct in_addr *iface_ip(struct in_addr ip);
+struct shmem_ops *smb_shm_open(int ronly);
-/*The following definitions come from ipc.c */
+/*The following definitions come from locking/shmem_sysv.c */
-int get_printerdrivernumber(int snum);
-int reply_trans(char *inbuf,char *outbuf, int size, int bufsize);
+struct shmem_ops *sysv_shm_open(int ronly);
-/*The following definitions come from kanji.c */
+/*The following definitions come from param/loadparm.c */
-void interpret_coding_system(char *str);
-void initialize_multibyte_vectors( int client_codepage);
+char *lp_string(char *s);
+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_dfree_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);
+char *lp_groupname_map(void);
+char *lp_character_set(void);
+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_announce_version(void);
+char *lp_netbios_aliases(void);
+char *lp_driverfile(void);
+char *lp_domain_sid(void);
+char *lp_domain_other_sids(void);
+char *lp_domain_groups(void);
+char *lp_domain_admin_group(void);
+char *lp_domain_guest_group(void);
+char *lp_domain_admin_users(void);
+char *lp_domain_guest_users(void);
+char *lp_domain_hostsallow(void);
+char *lp_domain_hostsdeny(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);
+int lp_ssl_version(void);
+char *lp_ssl_hosts(void);
+char *lp_ssl_hosts_resign(void);
+char *lp_ssl_cacertdir(void);
+char *lp_ssl_cacertfile(void);
+char *lp_ssl_cert(void);
+char *lp_ssl_privkey(void);
+char *lp_ssl_client_cert(void);
+char *lp_ssl_client_privkey(void);
+char *lp_ssl_ciphers(void);
+BOOL lp_ssl_enabled(void);
+BOOL lp_ssl_reqClientCert(void);
+BOOL lp_ssl_reqServerCert(void);
+BOOL lp_ssl_compatibility(void);
+BOOL lp_dns_proxy(void);
+BOOL lp_wins_support(void);
+BOOL lp_we_are_a_wins_server(void);
+BOOL lp_wins_proxy(void);
+BOOL lp_local_master(void);
+BOOL lp_domain_controller(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_getwdcache(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);
+BOOL lp_timestamp_logs(void);
+BOOL lp_browse_list(void);
+BOOL lp_unix_realname(void);
+BOOL lp_nis_home_map(void);
+BOOL lp_time_server(void);
+BOOL lp_bind_interfaces_only(void);
+BOOL lp_net_wksta_user_logon(void);
+BOOL lp_unix_password_sync(void);
+BOOL lp_passwd_chat_debug(void);
+BOOL lp_ole_locking_compat(void);
+int lp_os_level(void);
+int lp_max_ttl(void);
+int lp_max_wins_ttl(void);
+int lp_min_wins_ttl(void);
+int lp_max_log_size(void);
+int lp_mangledstack(void);
+int lp_maxxmit(void);
+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_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_announce_as(void);
+int lp_lm_announce(void);
+int lp_lm_interval(void);
+int lp_machine_password_timeout(void);
+int lp_change_notify_timeout(void);
+int lp_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 );
+char *lp_queuepausecommand(int );
+char *lp_queueresumecommand(int );
+char *lp_printername(int );
+char *lp_printerdriver(int );
+char *lp_hostsallow(int );
+char *lp_hostsdeny(int );
+char *lp_magicscript(int );
+char *lp_magicoutput(int );
+char *lp_comment(int );
+char *lp_force_user(int );
+char *lp_force_group(int );
+char *lp_readlist(int );
+char *lp_writelist(int );
+char *lp_volume(int );
+char *lp_mangled_map(int );
+char *lp_veto_files(int );
+char *lp_hide_files(int );
+char *lp_veto_oplocks(int );
+char *lp_driverlocation(int );
+BOOL lp_alternate_permissions(int );
+BOOL lp_revalidate(int );
+BOOL lp_casesensitive(int );
+BOOL lp_preservecase(int );
+BOOL lp_shortpreservecase(int );
+BOOL lp_casemangle(int );
+BOOL lp_status(int );
+BOOL lp_hide_dot_files(int );
+BOOL lp_browseable(int );
+BOOL lp_readonly(int );
+BOOL lp_no_set_dir(int );
+BOOL lp_guest_ok(int );
+BOOL lp_guest_only(int );
+BOOL lp_print_ok(int );
+BOOL lp_postscript(int );
+BOOL lp_map_hidden(int );
+BOOL lp_map_archive(int );
+BOOL lp_locking(int );
+BOOL lp_strict_locking(int );
+BOOL lp_share_modes(int );
+BOOL lp_oplocks(int );
+BOOL lp_onlyuser(int );
+BOOL lp_manglednames(int );
+BOOL lp_widelinks(int );
+BOOL lp_symlinks(int );
+BOOL lp_syncalways(int );
+BOOL lp_strict_sync(int );
+BOOL lp_map_system(int );
+BOOL lp_delete_readonly(int );
+BOOL lp_fake_oplocks(int );
+BOOL lp_recursive_veto_delete(int );
+BOOL lp_dos_filetimes(int );
+BOOL lp_dos_filetime_resolution(int );
+BOOL lp_fake_dir_create_times(int );
+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);
+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_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);
+void lp_set_name_resolve_order(char *new_order);
-/*The following definitions come from ldap.c */
+/*The following definitions come from param/params.c */
-struct passdb_ops *ldap_initialize_password_db(void);
+BOOL pm_process( char *FileName,
+ BOOL (*sfunc)(char *),
+ BOOL (*pfunc)(char *, char *) );
-/*The following definitions come from lib/rpc/client/cli_login.c */
+/*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);
@@ -260,7 +670,7 @@ BOOL cli_nt_login_network(struct cli_state *cli, char *domain, char *username,
NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3);
BOOL cli_nt_logoff(struct cli_state *cli, NET_ID_INFO_CTR *ctr);
-/*The following definitions come from lib/rpc/client/cli_netlogon.c */
+/*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,
@@ -272,7 +682,7 @@ BOOL cli_net_sam_logon(struct cli_state *cli, NET_ID_INFO_CTR *ctr,
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 lib/rpc/client/cli_pipe.c */
+/*The following definitions come from rpc_client/cli_pipe.c */
uint32 get_rpc_call_id(void);
BOOL rpc_api_pipe(struct cli_state *cli, uint16 cmd,
@@ -286,7 +696,7 @@ BOOL rpc_pipe_bind(struct cli_state *cli, char *pipe_name,
BOOL cli_nt_session_open(struct cli_state *cli, char *pipe_name, BOOL encrypted);
void cli_nt_session_close(struct cli_state *cli);
-/*The following definitions come from lib/rpc/parse/parse_lsa.c */
+/*The following definitions come from rpc_parse/parse_lsa.c */
void make_lsa_trans_name(LSA_TRANS_NAME *trn, uint32 sid_name_use, char *name, uint32 idx);
void lsa_io_trans_name(char *desc, LSA_TRANS_NAME *trn, prs_struct *ps, int depth);
@@ -317,7 +727,7 @@ void lsa_io_r_lookup_sids(char *desc, LSA_R_LOOKUP_SIDS *r_s, prs_struct *ps, i
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);
-/*The following definitions come from lib/rpc/parse/parse_misc.c */
+/*The following definitions come from rpc_parse/parse_misc.c */
void smb_io_utime(char *desc, UTIME *t, prs_struct *ps, int depth);
void smb_io_time(char *desc, NTTIME *nttime, prs_struct *ps, int depth);
@@ -377,7 +787,7 @@ void smb_io_dom_query_5(char *desc, DOM_QUERY_3 *d_q, prs_struct *ps, int depth
void smb_io_dom_query(char *desc, DOM_QUERY *d_q, prs_struct *ps, int depth);
void smb_io_dom_name(char *desc, DOM_NAME *name, prs_struct *ps, int depth);
-/*The following definitions come from lib/rpc/parse/parse_net.c */
+/*The following definitions come from rpc_parse/parse_net.c */
void net_io_neg_flags(char *desc, NEG_FLAGS *neg, prs_struct *ps, int depth);
void make_netinfo_3(NETLOGON_INFO_3 *info, uint32 flags, uint32 logon_attempts);
@@ -471,7 +881,7 @@ void net_io_r_sam_logon(char *desc, NET_R_SAM_LOGON *r_l, prs_struct *ps, int d
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 lib/rpc/parse/parse_prs.c */
+/*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,
@@ -492,7 +902,7 @@ BOOL prs_unistr2(BOOL charmode, char *name, prs_struct *ps, int depth, UNISTR2 *
BOOL prs_unistr(char *name, prs_struct *ps, int depth, UNISTR *str);
BOOL prs_string(char *name, prs_struct *ps, int depth, char *str, uint16 len);
-/*The following definitions come from lib/rpc/parse/parse_reg.c */
+/*The following definitions come from rpc_parse/parse_reg.c */
void make_reg_q_open_policy(REG_Q_OPEN_POLICY *r_q,
uint16 unknown_0, uint32 level, uint16 unknown_1);
@@ -520,7 +930,7 @@ 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 lib/rpc/parse/parse_rpc.c */
+/*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);
@@ -560,7 +970,7 @@ void make_rpc_auth_ntlmssp_resp(RPC_AUTH_NTLMSSP_RESP *rsp,
uint8 data[16]);
void smb_io_rpc_auth_ntlmssp_resp(char *desc, RPC_AUTH_NTLMSSP_RESP *rsp, prs_struct *ps, int depth);
-/*The following definitions come from lib/rpc/parse/parse_samr.c */
+/*The following definitions come from rpc_parse/parse_samr.c */
void make_samr_q_close_hnd(SAMR_Q_CLOSE_HND *q_c, POLICY_HND *hnd);
void samr_io_q_close_hnd(char *desc, SAMR_Q_CLOSE_HND *q_u, prs_struct *ps, int depth);
@@ -746,7 +1156,7 @@ void samr_io_r_unknown_38(char *desc, SAMR_R_UNKNOWN_38 *r_u, prs_struct *ps, i
void samr_io_enc_passwd(char *desc, SAMR_ENC_PASSWD *pwd, prs_struct *ps, int depth);
void samr_io_enc_hash(char *desc, SAMR_ENC_HASH *hsh, prs_struct *ps, int depth);
-/*The following definitions come from lib/rpc/parse/parse_srv.c */
+/*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 srv_io_share_info1_str(char *desc, SH_INFO_1_STR *sh1, prs_struct *ps, int depth);
@@ -857,7 +1267,7 @@ void make_time_of_day_info(TIME_OF_DAY_INFO *tod, uint32 elapsedt, uint32 msecs,
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 lib/rpc/parse/parse_wks.c */
+/*The following definitions come from rpc_parse/parse_wks.c */
void make_wks_q_query_info(WKS_Q_QUERY_INFO *q_u,
char *server, uint16 switch_value) ;
@@ -871,11 +1281,15 @@ void make_wks_r_query_info(WKS_R_QUERY_INFO *r_u,
int status) ;
void wks_io_r_query_info(char *desc, WKS_R_QUERY_INFO *r_u, prs_struct *ps, int depth);
-/*The following definitions come from lib/rpc/server/srv_lsa.c */
+/*The following definitions come from rpc_server/srv_ldap_helpers.c */
+
+void ldap_helper_dummy(void);
+
+/*The following definitions come from rpc_server/srv_lsa.c */
BOOL api_ntlsa_rpc(pipes_struct *p, prs_struct *data);
-/*The following definitions come from lib/rpc/server/srv_lsa_hnd.c */
+/*The following definitions come from rpc_server/srv_lsa_hnd.c */
void create_pol_hnd(POLICY_HND *hnd);
void init_lsa_policy_hnd(void);
@@ -889,11 +1303,11 @@ BOOL set_lsa_policy_reg_name(POLICY_HND *hnd, fstring name);
BOOL get_lsa_policy_reg_name(POLICY_HND *hnd, fstring name);
BOOL close_lsa_policy_hnd(POLICY_HND *hnd);
-/*The following definitions come from lib/rpc/server/srv_netlog.c */
+/*The following definitions come from rpc_server/srv_netlog.c */
BOOL api_netlog_rpc(pipes_struct *p, prs_struct *data);
-/*The following definitions come from lib/rpc/server/srv_pipe_hnd.c */
+/*The following definitions come from rpc_server/srv_pipe_hnd.c */
void reset_chain_pnum(void);
void set_chain_pnum(int new_pnum);
@@ -906,19 +1320,19 @@ BOOL set_rpc_pipe_hnd_state(pipes_struct *p, uint16 device_state);
BOOL close_rpc_pipe_hnd(int pnum, int cnum);
int get_rpc_pipe_num(char *buf, int where);
-/*The following definitions come from lib/rpc/server/srv_reg.c */
+/*The following definitions come from rpc_server/srv_reg.c */
BOOL api_reg_rpc(pipes_struct *p, prs_struct *data);
-/*The following definitions come from lib/rpc/server/srv_samr.c */
+/*The following definitions come from rpc_server/srv_samr.c */
BOOL api_samr_rpc(pipes_struct *p, prs_struct *data);
-/*The following definitions come from lib/rpc/server/srv_srvsvc.c */
+/*The following definitions come from rpc_server/srv_srvsvc.c */
BOOL api_srvsvc_rpc(pipes_struct *p, prs_struct *data);
-/*The following definitions come from lib/rpc/server/srv_util.c */
+/*The following definitions come from rpc_server/srv_util.c */
BOOL lookup_wellknown_sid_from_name(char *windows_name, DOM_SID *psid);
int make_dom_gids(char *gids_str, DOM_GID **ppgids);
@@ -934,673 +1348,120 @@ 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 lib/rpc/server/srv_wkssvc.c */
+/*The following definitions come from rpc_server/srv_wkssvc.c */
BOOL api_wkssvc_rpc(pipes_struct *p, prs_struct *data);
-/*The following definitions come from loadparm.c */
-
-char *lp_string(char *s);
-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_dfree_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);
-char *lp_groupname_map(void);
-char *lp_character_set(void);
-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_announce_version(void);
-char *lp_netbios_aliases(void);
-char *lp_driverfile(void);
-char *lp_domain_sid(void);
-char *lp_domain_other_sids(void);
-char *lp_domain_groups(void);
-char *lp_domain_admin_group(void);
-char *lp_domain_guest_group(void);
-char *lp_domain_admin_users(void);
-char *lp_domain_guest_users(void);
-char *lp_domain_hostsallow(void);
-char *lp_domain_hostsdeny(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);
-int lp_ssl_version(void);
-char *lp_ssl_hosts(void);
-char *lp_ssl_hosts_resign(void);
-char *lp_ssl_cacertdir(void);
-char *lp_ssl_cacertfile(void);
-char *lp_ssl_cert(void);
-char *lp_ssl_privkey(void);
-char *lp_ssl_client_cert(void);
-char *lp_ssl_client_privkey(void);
-char *lp_ssl_ciphers(void);
-BOOL lp_ssl_enabled(void);
-BOOL lp_ssl_reqClientCert(void);
-BOOL lp_ssl_reqServerCert(void);
-BOOL lp_ssl_compatibility(void);
-BOOL lp_dns_proxy(void);
-BOOL lp_wins_support(void);
-BOOL lp_we_are_a_wins_server(void);
-BOOL lp_wins_proxy(void);
-BOOL lp_local_master(void);
-BOOL lp_domain_controller(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_getwdcache(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);
-BOOL lp_timestamp_logs(void);
-BOOL lp_browse_list(void);
-BOOL lp_unix_realname(void);
-BOOL lp_nis_home_map(void);
-BOOL lp_time_server(void);
-BOOL lp_bind_interfaces_only(void);
-BOOL lp_net_wksta_user_logon(void);
-BOOL lp_unix_password_sync(void);
-BOOL lp_passwd_chat_debug(void);
-BOOL lp_ole_locking_compat(void);
-int lp_os_level(void);
-int lp_max_ttl(void);
-int lp_max_wins_ttl(void);
-int lp_min_wins_ttl(void);
-int lp_max_log_size(void);
-int lp_mangledstack(void);
-int lp_maxxmit(void);
-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_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_announce_as(void);
-int lp_lm_announce(void);
-int lp_lm_interval(void);
-int lp_machine_password_timeout(void);
-int lp_change_notify_timeout(void);
-int lp_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 );
-char *lp_queuepausecommand(int );
-char *lp_queueresumecommand(int );
-char *lp_printername(int );
-char *lp_printerdriver(int );
-char *lp_hostsallow(int );
-char *lp_hostsdeny(int );
-char *lp_magicscript(int );
-char *lp_magicoutput(int );
-char *lp_comment(int );
-char *lp_force_user(int );
-char *lp_force_group(int );
-char *lp_readlist(int );
-char *lp_writelist(int );
-char *lp_volume(int );
-char *lp_mangled_map(int );
-char *lp_veto_files(int );
-char *lp_hide_files(int );
-char *lp_veto_oplocks(int );
-char *lp_driverlocation(int );
-BOOL lp_alternate_permissions(int );
-BOOL lp_revalidate(int );
-BOOL lp_casesensitive(int );
-BOOL lp_preservecase(int );
-BOOL lp_shortpreservecase(int );
-BOOL lp_casemangle(int );
-BOOL lp_status(int );
-BOOL lp_hide_dot_files(int );
-BOOL lp_browseable(int );
-BOOL lp_readonly(int );
-BOOL lp_no_set_dir(int );
-BOOL lp_guest_ok(int );
-BOOL lp_guest_only(int );
-BOOL lp_print_ok(int );
-BOOL lp_postscript(int );
-BOOL lp_map_hidden(int );
-BOOL lp_map_archive(int );
-BOOL lp_locking(int );
-BOOL lp_strict_locking(int );
-BOOL lp_share_modes(int );
-BOOL lp_oplocks(int );
-BOOL lp_onlyuser(int );
-BOOL lp_manglednames(int );
-BOOL lp_widelinks(int );
-BOOL lp_symlinks(int );
-BOOL lp_syncalways(int );
-BOOL lp_strict_sync(int );
-BOOL lp_map_system(int );
-BOOL lp_delete_readonly(int );
-BOOL lp_fake_oplocks(int );
-BOOL lp_recursive_veto_delete(int );
-BOOL lp_dos_filetimes(int );
-BOOL lp_dos_filetime_resolution(int );
-BOOL lp_fake_dir_create_times(int );
-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);
-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_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);
-void lp_set_name_resolve_order(char *new_order);
+/*The following definitions come from smbd/access.c */
-/*The following definitions come from locking.c */
+BOOL check_access(int snum);
+BOOL allow_access(char *deny_list,char *allow_list,char *cname,char *caddr);
-BOOL is_locked(int fnum,int cnum,uint32 count,uint32 offset, int lock_type);
-BOOL do_lock(int fnum,int cnum,uint32 count,uint32 offset,int lock_type,
- int *eclass,uint32 *ecode);
-BOOL do_unlock(int fnum,int cnum,uint32 count,uint32 offset,int *eclass,uint32 *ecode);
-BOOL locking_init(int read_only);
-BOOL locking_end(void);
-BOOL lock_share_entry(int cnum, uint32 dev, uint32 inode, int *ptok);
-BOOL unlock_share_entry(int cnum, uint32 dev, uint32 inode, int token);
-int get_share_modes(int cnum, int token, uint32 dev, uint32 inode,
- share_mode_entry **shares);
-void del_share_mode(int token, int fnum);
-BOOL set_share_mode(int token, int fnum, uint16 port, uint16 op_type);
-BOOL remove_share_oplock(int fnum, int token);
-int share_mode_forall(void (*fn)(share_mode_entry *, char *));
-void share_status(FILE *f);
+/*The following definitions come from smbd/chgpasswd.c */
-/*The following definitions come from locking_shm.c */
+BOOL chat_with_program(char *passwordprogram,char *name,char *chatsequence, BOOL as_root);
+BOOL chgpasswd(char *name,char *oldpass,char *newpass, BOOL as_root);
+BOOL chgpasswd(char *name,char *oldpass,char *newpass, BOOL as_root);
+BOOL check_lanman_password(char *user, unsigned char *pass1,
+ unsigned char *pass2, struct smb_passwd **psmbpw);
+BOOL change_lanman_password(struct smb_passwd *smbpw, unsigned char *pass1, unsigned char *pass2);
+BOOL check_oem_password(char *user, unsigned char *data,
+ struct smb_passwd **psmbpw, char *new_passwd,
+ int new_passwd_size);
+BOOL change_oem_password(struct smb_passwd *smbpw, char *new_passwd, BOOL override);
-struct share_ops *locking_shm_init(int ronly);
+/*The following definitions come from smbd/connection.c */
-/*The following definitions come from locking_slow.c */
+BOOL yield_connection(int cnum,char *name,int max_connections);
+BOOL claim_connection(int cnum,char *name,int max_connections,BOOL Clear);
-struct share_ops *locking_slow_init(int ronly);
+/*The following definitions come from smbd/credentials.c */
-/*The following definitions come from mangle.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);
-BOOL is_mangled( char *s );
-BOOL is_8_3( char *fname, BOOL check_case );
-int str_checksum( char *s );
-void reset_mangled_cache( void );
-BOOL check_mangled_cache( char *s );
-void mangle_name_83( char *s, int s_len );
-BOOL name_map_mangle( char *OutName, BOOL need83, int snum );
+/*The following definitions come from smbd/dfree.c */
-/*The following definitions come from md4.c */
+int sys_disk_free(char *path,int *bsize,int *dfree,int *dsize);
-void mdfour(unsigned char *out, unsigned char *in, int n);
+/*The following definitions come from smbd/dir.c */
-/*The following definitions come from membuffer.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);
+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(char *buf1,unsigned int key);
+BOOL dptr_zero(char *buf);
+void *dptr_fetch(char *buf,int *num);
+void *dptr_fetch_lanman2(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 cnum, char *name, BOOL use_veto);
+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);
-void mem_init(struct mem_buf *buf, int margin);
-void mem_create(struct mem_buf *buf, char *data, int size, int margin, BOOL dynamic);
-void mem_take(struct mem_buf *mem_to, struct mem_buf *mem_from);
-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_chain(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);
-BOOL mem_find(struct mem_buf **buf, uint32 offset);
-uint32 mem_buf_len(struct mem_buf *buf);
-char *mem_data(struct mem_buf **buf, uint32 offset);
+/*The following definitions come from smbd/genrand.c */
-/*The following definitions come from message.c */
+void generate_random_buffer( unsigned char *out, int len, BOOL re_seed);
-int reply_sends(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
-int reply_sendstrt(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
-int reply_sendtxt(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
-int reply_sendend(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
+/*The following definitions come from smbd/groupname.c */
-/*The following definitions come from namequery.c */
+void load_groupname_map(void);
+void map_gid_to_sid( gid_t gid, DOM_SID *psid);
-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);
-BOOL resolve_name(char *name, struct in_addr *return_ip);
+/*The following definitions come from smbd/ipc.c */
-/*The following definitions come from netmask.c */
+int get_printerdrivernumber(int snum);
+int reply_trans(char *inbuf,char *outbuf, int size, int bufsize);
-int get_netmask(struct in_addr *ipaddr, struct in_addr *nmask);
+/*The following definitions come from smbd/ldap.c */
-/*The following definitions come from nisppass.c */
+struct passdb_ops *ldap_initialize_password_db(void);
-struct passdb_ops *nisplus_initialize_password_db(void);
+/*The following definitions come from smbd/mangle.c */
-/*The following definitions come from nmbd.c */
+BOOL is_mangled( char *s );
+BOOL is_8_3( char *fname, BOOL check_case );
+int str_checksum( char *s );
+void reset_mangled_cache( void );
+BOOL check_mangled_cache( char *s );
+void mangle_name_83( char *s, int s_len );
+BOOL name_map_mangle( char *OutName, BOOL need83, int snum );
-BOOL reload_services(BOOL test);
-int main(int argc,char *argv[]);
-
-/*The following definitions come from nmbd_become_dmb.c */
-
-void unbecome_domain_master(char *workgroup_name);
-void add_domain_names(time_t t);
-
-/*The following definitions come from 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_success(struct subnet_record *subrec,
- struct userdata_struct *userdata,
- struct nmb_name *released_name,
- struct in_addr released_ip);
-void unbecome_local_master_fail(struct subnet_record *subrec, struct response_record *rrec,
- struct nmb_name *fail_name);
-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_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 );
-void remove_workgroup_lmb_browsers( char *work_group );
-
-/*The following definitions come from 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);
-
-/*The following definitions come from 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_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_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_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_logonnames.c */
-
-void add_logon_names(void);
-
-/*The following definitions come from 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_namelistdb.c */
-
-void set_samba_nb_type(void);
-BOOL ms_browser_name( char *name, int type );
-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_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_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_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_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_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 queue_packet(struct packet_struct *packet);
-void process_browse_packet(struct packet_struct *p, char *buf,int len);
-void process_lanman_packet(struct packet_struct *p, char *buf,int len);
-BOOL validate_nmb_response_packet( struct nmb_packet *nmb );
-BOOL validate_nmb_packet( struct nmb_packet *nmb );
-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,
- struct in_addr dest_ip,struct in_addr src_ip);
-
-/*The following definitions come from nmbd_processlogon.c */
-
-void process_logon_packet(struct packet_struct *p,char *buf,int len,
- char *mailslot);
-
-/*The following definitions come from nmbd_responserecordsdb.c */
-
-void add_response_record(struct subnet_record *subrec,
- struct response_record *rrec);
-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_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_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_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);
-
-/*The following definitions come from 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_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);
-void wins_write_database(void);
-
-/*The following definitions come from 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);
-
-/*The following definitions come from nmblib.c */
+/*The following definitions come from smbd/message.c */
-char *lookup_opcode_name( int opcode );
-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);
+int reply_sends(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
+int reply_sendstrt(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
+int reply_sendtxt(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
+int reply_sendend(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
-/*The following definitions come from nterr.c */
+/*The following definitions come from smbd/nispass.c */
-char *get_nt_error_msg(uint32 nt_code);
+struct passdb_ops *nisplus_initialize_password_db(void);
-/*The following definitions come from nttrans.c */
+/*The following definitions come from smbd/nttrans.c */
int reply_ntcreate_and_X(char *inbuf,char *outbuf,int length,int bufsize);
int reply_ntcancel(char *inbuf,char *outbuf,int length,int bufsize);
@@ -1610,13 +1471,7 @@ void remove_pending_change_notify_requests_by_mid(int mid);
void process_pending_change_notify_queue(time_t t);
int reply_nttrans(char *inbuf,char *outbuf,int length,int bufsize);
-/*The following definitions come from params.c */
-
-BOOL pm_process( char *FileName,
- BOOL (*sfunc)(char *),
- BOOL (*pfunc)(char *, char *) );
-
-/*The following definitions come from passdb.c */
+/*The following definitions come from smbd/passdb.c */
BOOL initialize_password_db(void);
struct smb_passwd *iterate_getsmbpwuid(uid_t smb_userid);
@@ -1668,7 +1523,7 @@ uint32 pdb_gid_to_group_rid(gid_t gid);
BOOL pdb_rid_is_well_known(uint32 rid);
BOOL pdb_rid_is_user(uint32 rid);
-/*The following definitions come from password.c */
+/*The following definitions come from smbd/password.c */
void generate_next_challenge(char *challenge);
BOOL set_challenge(char *challenge);
@@ -1699,34 +1554,29 @@ BOOL domain_client_validate( char *user, char *domain,
char *smb_apasswd, int smb_apasslen,
char *smb_ntpasswd, int smb_ntpasslen);
-/*The following definitions come from pcap.c */
+/*The following definitions come from smbd/pcap.c */
BOOL pcap_printername_ok(char *pszPrintername, char *pszPrintcapname);
void pcap_printer_fn(void (*fn)(char *, char *));
-/*The following definitions come from pidfile.c */
-
-int pidfile_pid(char *name);
-void pidfile_create(char *name);
-
-/*The following definitions come from pipes.c */
+/*The following definitions come from smbd/pipes.c */
int reply_open_pipe_and_X(char *inbuf,char *outbuf,int length,int bufsize);
int reply_pipe_read_and_X(char *inbuf,char *outbuf,int length,int bufsize);
int reply_pipe_close(char *inbuf,char *outbuf);
-/*The following definitions come from predict.c */
+/*The following definitions come from smbd/predict.c */
int read_predict(int fd,int offset,char *buf,char **ptr,int num);
void do_read_prediction(void);
void invalidate_read_prediction(int fd);
-/*The following definitions come from print_svid.c */
+/*The following definitions come from smbd/print_svid.c */
void sysv_printer_fn(void (*fn)(char *, char *));
int sysv_printername_ok(char *name);
-/*The following definitions come from printing.c */
+/*The following definitions come from smbd/printing.c */
void lpq_reset(int snum);
void print_file(int fnum);
@@ -1738,7 +1588,7 @@ int printjob_encode(int snum, int job);
void printjob_decode(int jobid, int *snum, int *job);
void status_printqueue(int cnum,int snum,int status);
-/*The following definitions come from quotas.c */
+/*The following definitions come from smbd/quotas.c */
BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize);
BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize);
@@ -1747,11 +1597,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);
-/*The following definitions come from replace.c */
-
-char *rep_inet_ntoa(struct in_addr ip);
-
-/*The following definitions come from reply.c */
+/*The following definitions come from smbd/reply.c */
int reply_special(char *inbuf,char *outbuf);
int reply_tcon(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
@@ -1805,7 +1651,7 @@ int reply_writebs(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
int reply_setattrE(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
int reply_getattrE(char *inbuf,char *outbuf, int dum_size, int dum_buffsize);
-/*The following definitions come from server.c */
+/*The following definitions come from smbd/server.c */
void *dflt_sig(void);
void killkids(void);
@@ -1851,53 +1697,14 @@ void exit_server(char *reason);
void standard_sub(int cnum,char *str);
char *smb_fn_name(int type);
int chain_reply(char *inbuf,char *outbuf,int size,int bufsize);
+void construct_reply_common(char *inbuf,char *outbuf);
int construct_reply(char *inbuf,char *outbuf,int size,int bufsize);
-/*The following definitions come from shmem.c */
-
-struct shmem_ops *smb_shm_open(int ronly);
-
-/*The following definitions come from shmem_sysv.c */
-
-struct shmem_ops *sysv_shm_open(int ronly);
-
-/*The following definitions come from signal.c */
-
-void BlockSignals(BOOL block,int signum);
-void CatchSignal(int signum,void (*handler)(int ));
-void CatchChild(void);
-
-/*The following definitions come from slprintf.c */
-
-int vslprintf(char *str, int n, char *format, va_list ap);
-
-/*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);
-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);
-void SamOEMhash( unsigned char *data, unsigned char *key, int val);
-
-/*The following definitions come from smbencrypt.c */
-
-void SMBencrypt(uchar *passwd, uchar *c8, uchar *p24);
-void E_md4hash(uchar *passwd, uchar *p16);
-void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24);
-void nt_lm_owf_gen(char *pwd, char *nt_p16, char *p16);
-
-/*The following definitions come from smberr.c */
-
-char *smb_errstr(char *inbuf);
-
-/*The following definitions come from smbpass.c */
+/*The following definitions come from smbd/smbpass.c */
struct passdb_ops *file_initialize_password_db(void);
-/*The following definitions come from smbpassfile.c */
+/*The following definitions come from smbd/smbpassfile.c */
BOOL do_file_lock(int fd, int waitsecs, int type);
BOOL pw_file_lock(int fd, int type, int secs, int *plock_depth);
@@ -1908,54 +1715,16 @@ 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);
-/*The following definitions come from status.c */
-
-void Ucrit_addUsername(pstring username);
-unsigned int Ucrit_checkUsername(pstring username);
-void Ucrit_addPid(int pid);
-unsigned int Ucrit_checkPid(int pid);
-
-/*The following definitions come from system.c */
-
-int sys_select(fd_set *fds,struct timeval *tval);
-int sys_select(fd_set *fds,struct timeval *tval);
-int sys_unlink(char *fname);
-int sys_open(char *fname,int flags,int mode);
-DIR *sys_opendir(char *dname);
-int sys_stat(char *fname,struct stat *sbuf);
-int sys_waitpid(pid_t pid,int *status,int options);
-int sys_lstat(char *fname,struct stat *sbuf);
-int sys_mkdir(char *dname,int mode);
-int sys_rmdir(char *dname);
-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);
-
-/*The following definitions come from time.c */
+/*The following definitions come from smbd/ssl.c */
-void GetTimeOfDay(struct timeval *tval);
-void TimeInit(void);
-int TimeDiff(time_t t);
-struct tm *LocalTime(time_t *t);
-time_t interpret_long_date(char *p);
-void put_long_date(char *p,time_t t);
-BOOL null_mtime(time_t mtime);
-void put_dos_date(char *buf,int offset,time_t unixdate);
-void put_dos_date2(char *buf,int offset,time_t unixdate);
-void put_dos_date3(char *buf,int offset,time_t unixdate);
-time_t make_unix_date(void *date_ptr);
-time_t make_unix_date2(void *date_ptr);
-time_t make_unix_date3(void *date_ptr);
-char *http_timestring(time_t t);
-char *timestring(void );
-time_t get_create_time(struct stat *st,BOOL fake_dirs);
+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);
-/*The following definitions come from trans2.c */
+/*The following definitions come from smbd/trans2.c */
void mask_convert( char *mask);
int reply_findclose(char *inbuf,char *outbuf,int length,int bufsize);
@@ -1963,11 +1732,7 @@ int reply_findnclose(char *inbuf,char *outbuf,int length,int bufsize);
int reply_transs2(char *inbuf,char *outbuf,int length,int bufsize);
int reply_trans2(char *inbuf,char *outbuf,int length,int bufsize);
-/*The following definitions come from ufc.c */
-
-char *ufc_crypt(char *key,char *salt);
-
-/*The following definitions come from uid.c */
+/*The following definitions come from smbd/uid.c */
void init_uid(void);
BOOL become_guest(void);
@@ -1977,193 +1742,10 @@ int smbrun(char *cmd,char *outfile,BOOL shared);
void become_root(BOOL save_dir) ;
void unbecome_root(BOOL restore_dir);
-/*The following definitions come from username.c */
+/*The following definitions come from smbd/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);
-
-/*The following definitions come from util.c */
-
-char *tmpdir(void);
-BOOL is_a_socket(int fd);
-BOOL next_token(char **ptr,char *buff,char *sep);
-char **toktocliplist(int *ctok, char *sep);
-void *mem_dup( void *from, int size );
-void array_promote(char *array,int elsize,int element);
-void set_socket_options(int fd, char *options);
-void close_sockets(void );
-BOOL in_group(gid_t group, int current_gid, int ngroups, GID_T *groups);
-char *StrCpy(char *dest,char *src);
-char *StrnCpy(char *dest,char *src,int n);
-void putip(void *dest,void *src);
-int name_mangle( char *In, char *Out, char name_type );
-BOOL file_exist(char *fname,struct stat *sbuf);
-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(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);
-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_numwords(char *buf);
-int smb_buflen(char *buf);
-int smb_buf_ofs(char *buf);
-char *smb_buf(char *buf);
-int smb_offset(char *p,char *buf);
-char *skip_string(char *buf,int n);
-BOOL trim_string(char *s,char *front,char *back);
-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);
-BOOL strhasupper(char *s);
-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, 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);
-int read_max_udp(int fd,char *buffer,int bufsize,int maxtime);
-int TvalDiff(struct timeval *tvalold,struct timeval *tvalnew);
-BOOL send_keepalive(int client);
-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 client_receive_smb(int fd,char *buffer, int timeout);
-BOOL receive_local_message(int fd, char *buffer, int buffer_len, int timeout);
-BOOL push_oplock_pending_smb_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);
-int name_len( char *s );
-BOOL send_one_packet(char *buf,int len,struct in_addr ip,int port,int type);
-void msleep(int t);
-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);
-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);
-char *fgets_slash(char *s2,int maxlen,FILE *f);
-int set_filelen(int fd, long len);
-int byte_checksum(char *buf,int len);
-char *dirname_dos(char *path,char *buf);
-void *Realloc(void *p,int size);
-void Abort(void );
-BOOL get_myname(char *my_name,struct in_addr *ip);
-BOOL ip_equal(struct in_addr ip1,struct in_addr ip2);
-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);
-int interpret_protocol(char *str,int def);
-int interpret_security(char *str,int def);
-uint32 interpret_addr(char *str);
-struct in_addr *interpret_addr2(char *str);
-BOOL zero_ip(struct in_addr ip);
-void reset_globals_after_fork(void);
-char *client_name(int fd);
-char *client_addr(int fd);
-char *automount_server(char *user_name);
-char *automount_path(char *user_name);
-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);
-BOOL process_exists(int pid);
-char *uidtoname(int uid);
-char *gidtoname(int gid);
-void ajt_panic(void);
-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);
-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);
-BOOL is_myname(char *s);
-void set_remote_arch(enum remote_arch_types type);
-enum remote_arch_types get_remote_arch(void);
-char *skip_unicode_string(char *buf,int n);
-char *unistrn2(uint16 *buf, int len);
-char *unistr2(uint16 *buf);
-int struni2(uint16 *p, char *buf);
-char *unistr(char *buf);
-int unistrncpy(char *dst, char *src, int len);
-int unistrcpy(char *dst, char *src);
-char *safe_strcpy(char *dest, char *src, int maxlength);
-char *safe_strcat(char *dest, char *src, int maxlength);
-char *align4(char *q, char *base);
-char *align2(char *q, char *base);
-char *align_offset(char *q, char *base, int align_offset_len);
-void print_asc(int level, unsigned char *buf,int len);
-void dump_data(int level,char *buf1,int len);
-char *tab_depth(int depth);
-char *sid_to_string(pstring sidstr_out, DOM_SID *sid);
-BOOL string_to_sid(DOM_SID *sidout, char *sidstr);
-
-/*The following definitions come from web/cgi.c */
-
-void cgi_load_variables(FILE *f1);
-char *cgi_variable(char *name);
-char *cgi_vnum(int i, char **name);
-int cgi_boolean(char *name, int def);
-char *quotedup(char *s);
-char *urlquote(char *s);
-char *quotequotes(char *s);
-void quote_spaces(char *buf);
-void cgi_setup(char *rootdir, int auth_required);
-char *cgi_baseurl(void);
-char *cgi_rooturl(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);
-void kill_pid(int pid);
-
-/*The following definitions come from web/statuspage.c */
-
-void status_page(void);
-
-/*The following definitions come from web/swat.c */
-
-int main(int argc, char *argv[]);
#endif /* _PROTO_H_ */