3 /* This file is automatically generated with "make proto". DO NOT EDIT */
6 /*The following definitions come from client/client.c */
8 void do_dir(char *inbuf
,char *outbuf
,char *Mask
,int attribute
,void (*fn
)(file_info
*),BOOL recurse_dir
, BOOL dirstoo
);
10 /*The following definitions come from client/clientutil.c */
12 void cli_setup_pkt(char *outbuf
);
13 BOOL
cli_call_api(char *pipe_name
, int pipe_name_len
,
14 int prcnt
,int drcnt
, int srcnt
,
15 int mprcnt
,int mdrcnt
,
16 int *rprcnt
,int *rdrcnt
,
17 char *param
,char *data
, uint16
*setup
,
18 char **rparam
,char **rdata
);
19 BOOL
cli_receive_trans_response(char *inbuf
,int trans
,
20 int *data_len
,int *param_len
,
21 char **data
,char **param
);
22 BOOL
cli_send_trans_request(char *outbuf
,int trans
,
23 char *name
,int namelen
, int fid
,int flags
,
24 char *data
,char *param
,uint16
*setup
,
25 int ldata
,int lparam
,int lsetup
,
26 int mdata
,int mparam
,int msetup
);
27 BOOL
cli_send_session_request(char *inbuf
,char *outbuf
);
28 BOOL
cli_send_login(char *inbuf
,char *outbuf
,BOOL start_session
,BOOL use_setup
, struct connection_options
*options
);
29 void cli_send_logout(char *dum_in
, char *dum_out
);
30 BOOL
cli_open_sockets(int port
);
31 BOOL
cli_reopen_connection(char *inbuf
,char *outbuf
);
33 /*The following definitions come from client/clitar.c */
35 void cmd_block(char *dum_in
, char *dum_out
);
36 void cmd_tarmode(char *dum_in
, char *dum_out
);
37 void cmd_setmode(char *dum_in
, char *dum_out
);
38 void cmd_tar(char *inbuf
, char *outbuf
);
39 int process_tar(char *inbuf
, char *outbuf
);
40 int tar_parseargs(int argc
, char *argv
[], char *Optarg
, int Optind
);
42 /*The following definitions come from lib/access.c */
44 BOOL
allow_access(char *deny_list
,char *allow_list
,
45 char *cname
,char *caddr
);
46 BOOL
check_access(int sock
, char *allow_list
, char *deny_list
);
48 /*The following definitions come from lib/bitmap.c */
50 struct bitmap
*bitmap_allocate(int n
);
51 BOOL
bitmap_set(struct bitmap
*bm
, unsigned i
);
52 BOOL
bitmap_clear(struct bitmap
*bm
, unsigned i
);
53 int bitmap_find(struct bitmap
*bm
, unsigned ofs
);
55 /*The following definitions come from lib/charcnv.c */
57 char *unix2dos_format(char *str
,BOOL overwrite
);
58 char *dos2unix_format(char *str
, BOOL overwrite
);
59 void interpret_character_set(char *str
);
61 /*The following definitions come from lib/charset.c */
63 void charset_initialise(void);
64 void codepage_initialise(int client_codepage
);
65 void add_char_string(char *s
);
67 /*The following definitions come from lib/debug.c */
69 void sig_usr2( int sig
);
70 void sig_usr1( int sig
);
71 void setup_logging( char *pname
, BOOL interactive
);
72 void reopen_logs( void );
73 void force_check_log_size( void );
74 void dbgflush( void );
75 BOOL
dbghdr( int level
, char *file
, char *func
, int line
);
77 /*The following definitions come from lib/fault.c */
79 void fault_setup(void (*fn
)(void *));
81 /*The following definitions come from lib/genrand.c */
83 void generate_random_buffer( unsigned char *out
, int len
, BOOL re_seed
);
85 /*The following definitions come from lib/getsmbpass.c */
87 char *getsmbpass(char *prompt
) ;
89 /*The following definitions come from lib/interface.c */
91 void load_interfaces(void);
92 void iface_set_default(char *ip
,char *bcast
,char *nmask
);
93 BOOL
ismyip(struct in_addr ip
);
94 BOOL
is_local_net(struct in_addr from
);
95 int iface_count(void);
96 BOOL
we_are_multihomed(void);
97 struct interface
*get_interface(int n
);
98 struct in_addr
*iface_n_ip(int n
);
99 unsigned iface_hash(void);
100 struct in_addr
*iface_bcast(struct in_addr ip
);
101 struct in_addr
*iface_ip(struct in_addr ip
);
103 /*The following definitions come from lib/kanji.c */
105 void interpret_coding_system(char *str
);
106 void initialize_multibyte_vectors( int client_codepage
);
108 /*The following definitions come from lib/md4.c */
110 void mdfour(unsigned char *out
, unsigned char *in
, int n
);
112 /*The following definitions come from lib/membuffer.c */
114 void mem_init(struct mem_buf
*buf
, int margin
);
115 void mem_create(struct mem_buf
*buf
, char *data
, int size
, int margin
, BOOL dynamic
);
116 BOOL
mem_alloc_data(struct mem_buf
*buf
, int size
);
117 BOOL
mem_buf_copy(char *copy_into
, struct mem_buf
*buf
,
118 uint32 offset
, uint32 len
);
119 BOOL
mem_buf_init(struct mem_buf
**buf
, uint32 margin
);
120 void mem_buf_free(struct mem_buf
**buf
);
121 void mem_free_data(struct mem_buf
*buf
);
122 BOOL
mem_realloc_data(struct mem_buf
*buf
, int new_size
);
123 BOOL
mem_grow_data(struct mem_buf
**buf
, BOOL io
, int new_size
, BOOL force_grow
);
124 uint32
mem_buf_len(struct mem_buf
*buf
);
125 char *mem_data(struct mem_buf
**buf
, uint32 offset
);
127 /*The following definitions come from lib/netmask.c */
129 int get_netmask(struct in_addr
*ipaddr
, struct in_addr
*nmask
);
131 /*The following definitions come from lib/pidfile.c */
133 int pidfile_pid(char *name
);
134 void pidfile_create(char *name
);
136 /*The following definitions come from lib/replace.c */
138 char *rep_inet_ntoa(struct in_addr ip
);
140 /*The following definitions come from lib/signal.c */
142 void BlockSignals(BOOL block
,int signum
);
143 void CatchSignal(int signum
,void (*handler
)(int ));
144 void CatchChild(void);
146 /*The following definitions come from lib/slprintf.c */
148 int vslprintf(char *str
, int n
, char *format
, va_list ap
);
150 /*The following definitions come from lib/smbrun.c */
152 int smbrun(char *cmd
,char *outfile
,BOOL shared
);
154 /*The following definitions come from lib/system.c */
156 int sys_select(int maxfd
, fd_set
*fds
,struct timeval
*tval
);
157 int sys_select(int maxfd
, fd_set
*fds
,struct timeval
*tval
);
158 int sys_stat(char *fname
,SMB_STRUCT_STAT
*sbuf
);
159 int sys_fstat(int fd
,SMB_STRUCT_STAT
*sbuf
);
160 int sys_lstat(char *fname
,SMB_STRUCT_STAT
*sbuf
);
161 int sys_ftruncate(int fd
, SMB_OFF_T offset
);
162 SMB_OFF_T
sys_lseek(int fd
, SMB_OFF_T offset
, int whence
);
163 int sys_fseek(FILE *fp
, SMB_OFF_T offset
, int whence
);
164 SMB_OFF_T
sys_ftell(FILE *fp
);
165 int dos_unlink(char *fname
);
166 int dos_open(char *fname
,int flags
,mode_t mode
);
167 DIR *dos_opendir(char *dname
);
168 int dos_stat(char *fname
,SMB_STRUCT_STAT
*sbuf
);
169 int sys_waitpid(pid_t pid
,int *status
,int options
);
170 int dos_lstat(char *fname
,SMB_STRUCT_STAT
*sbuf
);
171 int dos_mkdir(char *dname
,mode_t mode
);
172 int dos_rmdir(char *dname
);
173 int dos_chdir(char *dname
);
174 int dos_utime(char *fname
,struct utimbuf
*times
);
175 int dos_rename(char *from
, char *to
);
176 int dos_chmod(char *fname
,mode_t mode
);
177 char *dos_getwd(char *s
);
178 int sys_chown(char *fname
,int uid
,int gid
);
179 int sys_chroot(char *dname
);
180 struct hostent
*sys_gethostbyname(char *name
);
182 /*The following definitions come from lib/time.c */
184 void GetTimeOfDay(struct timeval
*tval
);
186 int TimeDiff(time_t t
);
187 struct tm
*LocalTime(time_t *t
);
188 time_t interpret_long_date(char *p
);
189 void put_long_date(char *p
,time_t t
);
190 BOOL
null_mtime(time_t mtime
);
191 void put_dos_date(char *buf
,int offset
,time_t unixdate
);
192 void put_dos_date2(char *buf
,int offset
,time_t unixdate
);
193 void put_dos_date3(char *buf
,int offset
,time_t unixdate
);
194 time_t make_unix_date(void *date_ptr
);
195 time_t make_unix_date2(void *date_ptr
);
196 time_t make_unix_date3(void *date_ptr
);
197 char *http_timestring(time_t t
);
198 char *timestring(void );
199 time_t get_create_time(SMB_STRUCT_STAT
*st
,BOOL fake_dirs
);
201 /*The following definitions come from lib/ufc.c */
203 char *ufc_crypt(char *key
,char *salt
);
205 /*The following definitions come from lib/username.c */
207 char *get_home_dir(char *user
);
208 BOOL
map_username(char *user
);
209 struct passwd
*Get_Pwnam(char *user
,BOOL allow_change
);
210 BOOL
user_in_list(char *user
,char *list
);
212 /*The following definitions come from lib/util.c */
215 BOOL
is_a_socket(int fd
);
216 BOOL
next_token(char **ptr
,char *buff
,char *sep
, int bufsize
);
217 char **toktocliplist(int *ctok
, char *sep
);
218 void set_socket_options(int fd
, char *options
);
219 void close_sockets(void );
220 BOOL
in_group(gid_t group
, int current_gid
, int ngroups
, GID_T
*groups
);
221 char *StrCpy(char *dest
,char *src
);
222 char *StrnCpy(char *dest
,char *src
,int n
);
223 void putip(void *dest
,void *src
);
224 int name_mangle( char *In
, char *Out
, char name_type
);
225 BOOL
file_exist(char *fname
,SMB_STRUCT_STAT
*sbuf
);
226 time_t file_modtime(char *fname
);
227 BOOL
directory_exist(char *dname
,SMB_STRUCT_STAT
*st
);
228 SMB_OFF_T
file_size(char *file_name
);
229 char *attrib_string(int mode
);
230 int StrCaseCmp(char *s
, char *t
);
231 int StrnCaseCmp(char *s
, char *t
, int n
);
232 BOOL
strequal(char *s1
, char *s2
);
233 BOOL
strnequal(char *s1
,char *s2
,int n
);
234 BOOL
strcsequal(char *s1
,char *s2
);
235 void strlower(char *s
);
236 void strupper(char *s
);
237 void strnorm(char *s
);
238 BOOL
strisnormal(char *s
);
239 void string_replace(char *s
,char oldc
,char newc
);
240 void unix_format(char *fname
);
241 void dos_format(char *fname
);
242 void show_msg(char *buf
);
243 int smb_len(char *buf
);
244 void _smb_setlen(char *buf
,int len
);
245 void smb_setlen(char *buf
,int len
);
246 int set_message(char *buf
,int num_words
,int num_bytes
,BOOL zero
);
247 int smb_buflen(char *buf
);
248 char *smb_buf(char *buf
);
249 int smb_offset(char *p
,char *buf
);
250 char *skip_string(char *buf
,int n
);
251 BOOL
trim_string(char *s
,char *front
,char *back
);
252 void dos_clean_name(char *s
);
253 void unix_clean_name(char *s
);
254 int ChDir(char *path
);
255 char *GetWd(char *str
);
256 BOOL
reduce_name(char *s
,char *dir
,BOOL widelinks
);
257 void expand_mask(char *Mask
,BOOL doext
);
258 BOOL
strhasupper(char *s
);
259 BOOL
strhaslower(char *s
);
260 int count_chars(char *s
,char c
);
261 void make_dir_struct(char *buf
,char *mask
,char *fname
,SMB_OFF_T size
,int mode
,time_t date
);
262 void close_low_fds(void);
263 ssize_t
write_socket(int fd
,char *buf
,size_t len
);
264 ssize_t
read_udp_socket(int fd
,char *buf
,size_t len
);
265 ssize_t
read_with_timeout(int fd
,char *buf
,size_t mincnt
,size_t maxcnt
,unsigned int time_out
);
266 int TvalDiff(struct timeval
*tvalold
,struct timeval
*tvalnew
);
267 BOOL
send_keepalive(int client
);
268 ssize_t
read_data(int fd
,char *buffer
,size_t N
);
269 ssize_t
write_data(int fd
,char *buffer
,size_t N
);
270 SMB_OFF_T
transfer_file(int infd
,int outfd
,SMB_OFF_T n
,char *header
,int headlen
,int align
);
271 ssize_t
read_smb_length(int fd
,char *inbuf
,unsigned int timeout
);
272 BOOL
receive_smb(int fd
,char *buffer
, unsigned int timeout
);
273 BOOL
client_receive_smb(int fd
,char *buffer
, unsigned int timeout
);
274 BOOL
receive_local_message(int fd
, char *buffer
, int buffer_len
, unsigned int timeout
);
275 BOOL
push_oplock_pending_smb_message(char *buf
, int msg_len
);
276 BOOL
receive_message_or_smb(int smbfd
, int oplock_fd
,
277 char *buffer
, int buffer_len
,
278 int timeout
, BOOL
*got_smb
);
279 BOOL
send_smb(int fd
,char *buffer
);
280 int name_extract(char *buf
,int ofs
,char *name
);
281 int name_len( char *s
);
282 BOOL
send_one_packet(char *buf
,int len
,struct in_addr ip
,int port
,int type
);
283 BOOL
in_list(char *s
,char *list
,BOOL casesensitive
);
284 BOOL
string_init(char **dest
,char *src
);
285 void string_free(char **s
);
286 BOOL
string_set(char **dest
,char *src
);
287 BOOL
string_sub(char *s
,char *pattern
,char *insert
);
288 BOOL
do_match(char *str
, char *regexp
, int case_sig
);
289 BOOL
mask_match(char *str
, char *regexp
, int case_sig
,BOOL trans2
);
290 void become_daemon(void);
292 char *fgets_slash(char *s2
,int maxlen
,FILE *f
);
293 int set_filelen(int fd
, SMB_OFF_T len
);
294 void *Realloc(void *p
,size_t size
);
295 BOOL
get_myname(char *my_name
,struct in_addr
*ip
);
296 BOOL
ip_equal(struct in_addr ip1
,struct in_addr ip2
);
297 int open_socket_in(int type
, int port
, int dlevel
,uint32 socket_addr
);
298 int open_socket_out(int type
, struct in_addr
*addr
, int port
,int timeout
);
299 int interpret_protocol(char *str
,int def
);
300 uint32
interpret_addr(char *str
);
301 struct in_addr
*interpret_addr2(char *str
);
302 BOOL
zero_ip(struct in_addr ip
);
303 void reset_globals_after_fork(void);
304 char *client_name(int fd
);
305 char *client_addr(int fd
);
306 void standard_sub_basic(char *str
);
307 void standard_sub(connection_struct
*conn
,char *str
);
308 BOOL
same_net(struct in_addr ip1
,struct in_addr ip2
,struct in_addr mask
);
309 int PutUniCode(char *dst
,char *src
);
310 struct hostent
*Get_Hostbyname(char *name
);
311 BOOL
process_exists(int pid
);
312 char *uidtoname(int uid
);
313 char *gidtoname(int gid
);
314 void smb_panic(char *why
);
315 char *readdirname(void *p
);
316 BOOL
is_in_path(char *name
, name_compare_entry
*namelist
);
317 void set_namearray(name_compare_entry
**ppname_array
, char *namelist
);
318 void free_namearray(name_compare_entry
*name_array
);
319 BOOL
fcntl_lock(int fd
, int op
, SMB_OFF_T offset
, SMB_OFF_T count
, int type
);
320 BOOL
is_myname(char *s
);
321 void set_remote_arch(enum remote_arch_types type
);
322 enum remote_arch_types
get_remote_arch(void);
323 char *skip_unicode_string(char *buf
,int n
);
324 char *unistrn2(uint16
*buf
, int len
);
325 char *unistr2(uint16
*buf
);
326 int struni2(uint16
*p
, char *buf
);
327 char *unistr(char *buf
);
328 int unistrcpy(char *dst
, char *src
);
329 char *safe_strcpy(char *dest
, char *src
, int maxlength
);
330 char *safe_strcat(char *dest
, char *src
, int maxlength
);
331 char *align2(char *q
, char *base
);
332 void print_asc(int level
, unsigned char *buf
,int len
);
333 void dump_data(int level
,char *buf1
,int len
);
334 char *tab_depth(int depth
);
335 char *sid_to_string(pstring sidstr_out
, DOM_SID
*sid
);
336 BOOL
string_to_sid(DOM_SID
*sidout
, char *sidstr
);
337 int str_checksum(char *s
);
338 void zero_free(void *p
, size_t size
);
340 /*The following definitions come from libsmb/clientgen.c */
342 char *cli_errstr(struct cli_state
*cli
);
343 BOOL
cli_api_pipe(struct cli_state
*cli
, char *pipe_name
, int pipe_name_len
,
344 uint16
*setup
, uint32 setup_count
, uint32 max_setup_count
,
345 char *params
, uint32 param_count
, uint32 max_param_count
,
346 char *data
, uint32 data_count
, uint32 max_data_count
,
347 char **rparam
, uint32
*rparam_count
,
348 char **rdata
, uint32
*rdata_count
);
349 BOOL
cli_api(struct cli_state
*cli
,
350 char *param
, int prcnt
, int mprcnt
,
351 char *data
, int drcnt
, int mdrcnt
,
352 char **rparam
, int *rprcnt
,
353 char **rdata
, int *rdrcnt
);
354 BOOL
cli_NetWkstaUserLogon(struct cli_state
*cli
,char *user
, char *workstation
);
355 BOOL
cli_RNetShareEnum(struct cli_state
*cli
, void (*fn
)(char *, uint32
, char *));
356 BOOL
cli_NetServerEnum(struct cli_state
*cli
, char *workgroup
, uint32 stype
,
357 void (*fn
)(char *, uint32
, char *));
358 BOOL
cli_session_setup(struct cli_state
*cli
,
360 char *pass
, int passlen
,
361 char *ntpass
, int ntpasslen
,
363 BOOL
cli_ulogoff(struct cli_state
*cli
);
364 BOOL
cli_send_tconX(struct cli_state
*cli
,
365 char *share
, char *dev
, char *pass
, int passlen
);
366 BOOL
cli_tdis(struct cli_state
*cli
);
367 BOOL
cli_mv(struct cli_state
*cli
, char *fname_src
, char *fname_dst
);
368 BOOL
cli_unlink(struct cli_state
*cli
, char *fname
);
369 BOOL
cli_mkdir(struct cli_state
*cli
, char *dname
);
370 BOOL
cli_rmdir(struct cli_state
*cli
, char *dname
);
371 int cli_open(struct cli_state
*cli
, char *fname
, int flags
, int share_mode
);
372 BOOL
cli_close(struct cli_state
*cli
, int fnum
);
373 BOOL
cli_lock(struct cli_state
*cli
, int fnum
, uint32 offset
, uint32 len
, int timeout
);
374 BOOL
cli_unlock(struct cli_state
*cli
, int fnum
, uint32 offset
, uint32 len
, int timeout
);
375 int cli_read(struct cli_state
*cli
, int fnum
, char *buf
, uint32 offset
, uint16 size
);
376 int cli_write(struct cli_state
*cli
, int fnum
, char *buf
, uint32 offset
, uint16 size
);
377 BOOL
cli_getatr(struct cli_state
*cli
, char *fname
,
378 int *attr
, uint32
*size
, time_t *t
);
379 BOOL
cli_setatr(struct cli_state
*cli
, char *fname
, int attr
, time_t t
);
380 BOOL
cli_qpathinfo(struct cli_state
*cli
, char *fname
,
381 time_t *c_time
, time_t *a_time
, time_t *m_time
, uint32
*size
);
382 BOOL
cli_qpathinfo2(struct cli_state
*cli
, char *fname
,
383 time_t *c_time
, time_t *a_time
, time_t *m_time
,
384 time_t *w_time
, uint32
*size
);
385 BOOL
cli_qfileinfo(struct cli_state
*cli
, int fnum
,
386 time_t *c_time
, time_t *a_time
, time_t *m_time
, uint32
*size
);
387 BOOL
cli_oem_change_password(struct cli_state
*cli
, char *user
, char *new_password
,
389 BOOL
cli_negprot(struct cli_state
*cli
);
390 BOOL
cli_session_request(struct cli_state
*cli
, char *host
, int name_type
,
392 BOOL
cli_connect(struct cli_state
*cli
, char *host
, struct in_addr
*ip
);
393 BOOL
cli_initialise(struct cli_state
*cli
);
394 void cli_shutdown(struct cli_state
*cli
);
395 void cli_error(struct cli_state
*cli
, int *eclass
, int *num
);
396 void cli_sockopt(struct cli_state
*cli
, char *options
);
397 int cli_setpid(struct cli_state
*cli
, int pid
);
399 /*The following definitions come from libsmb/credentials.c */
401 char *credstr(uchar
*cred
);
402 void cred_session_key(DOM_CHAL
*clnt_chal
, DOM_CHAL
*srv_chal
, char *pass
,
403 uchar session_key
[8]);
404 void cred_create(uchar session_key
[8], DOM_CHAL
*stor_cred
, UTIME timestamp
,
406 int cred_assert(DOM_CHAL
*cred
, uchar session_key
[8], DOM_CHAL
*stored_cred
,
408 BOOL
clnt_deal_with_creds(uchar sess_key
[8],
409 DOM_CRED
*sto_clnt_cred
, DOM_CRED
*rcv_srv_cred
);
410 BOOL
deal_with_creds(uchar sess_key
[8],
411 DOM_CRED
*sto_clnt_cred
,
412 DOM_CRED
*rcv_clnt_cred
, DOM_CRED
*rtn_srv_cred
);
414 /*The following definitions come from libsmb/namequery.c */
416 BOOL
name_status(int fd
,char *name
,int name_type
,BOOL recurse
,
417 struct in_addr to_ip
,char *master
,char *rname
,
418 void (*fn
)(struct packet_struct
*));
419 struct in_addr
*name_query(int fd
,char *name
,int name_type
, BOOL bcast
,BOOL recurse
,
420 struct in_addr to_ip
, int *count
, void (*fn
)(struct packet_struct
*));
421 FILE *startlmhosts(char *fname
);
422 BOOL
getlmhostsent( FILE *fp
, char *name
, int *name_type
, struct in_addr
*ipaddr
);
423 void endlmhosts(FILE *fp
);
424 BOOL
resolve_name(char *name
, struct in_addr
*return_ip
);
426 /*The following definitions come from libsmb/nmblib.c */
428 void debug_nmb_packet(struct packet_struct
*p
);
429 char *namestr(struct nmb_name
*n
);
430 struct packet_struct
*copy_packet(struct packet_struct
*packet
);
431 void free_packet(struct packet_struct
*packet
);
432 struct packet_struct
*read_packet(int fd
,enum packet_type packet_type
);
433 void make_nmb_name( struct nmb_name
*n
, char *name
, int type
, char *this_scope
);
434 BOOL
nmb_name_equal(struct nmb_name
*n1
, struct nmb_name
*n2
);
435 BOOL
send_packet(struct packet_struct
*p
);
436 struct packet_struct
*receive_packet(int fd
,enum packet_type type
,int t
);
437 void sort_query_replies(char *data
, int n
, struct in_addr ip
);
439 /*The following definitions come from libsmb/nterr.c */
441 char *get_nt_error_msg(uint32 nt_code
);
443 /*The following definitions come from libsmb/smbdes.c */
445 void E_P16(unsigned char *p14
,unsigned char *p16
);
446 void E_P24(unsigned char *p21
, unsigned char *c8
, unsigned char *p24
);
447 void D_P16(unsigned char *p14
, unsigned char *in
, unsigned char *out
);
448 void E_old_pw_hash( unsigned char *p14
, unsigned char *in
, unsigned char *out
);
449 void cred_hash1(unsigned char *out
,unsigned char *in
,unsigned char *key
);
450 void cred_hash2(unsigned char *out
,unsigned char *in
,unsigned char *key
);
451 void cred_hash3(unsigned char *out
,unsigned char *in
,unsigned char *key
, int forw
);
452 void SamOEMhash( unsigned char *data
, unsigned char *key
, int val
);
454 /*The following definitions come from libsmb/smbencrypt.c */
456 void SMBencrypt(uchar
*passwd
, uchar
*c8
, uchar
*p24
);
457 void E_md4hash(uchar
*passwd
, uchar
*p16
);
458 void SMBNTencrypt(uchar
*passwd
, uchar
*c8
, uchar
*p24
);
460 /*The following definitions come from libsmb/smberr.c */
462 char *smb_errstr(char *inbuf
);
464 /*The following definitions come from locking/locking.c */
466 BOOL
is_locked(files_struct
*fsp
,connection_struct
*conn
,
467 SMB_OFF_T count
,SMB_OFF_T offset
, int lock_type
);
468 BOOL
do_lock(files_struct
*fsp
,connection_struct
*conn
,
469 SMB_OFF_T count
,SMB_OFF_T offset
,int lock_type
,
470 int *eclass
,uint32
*ecode
);
471 BOOL
do_unlock(files_struct
*fsp
,connection_struct
*conn
,
472 SMB_OFF_T count
,SMB_OFF_T offset
,int *eclass
,uint32
*ecode
);
473 BOOL
locking_init(int read_only
);
474 BOOL
locking_end(void);
475 BOOL
lock_share_entry(connection_struct
*conn
,
476 SMB_DEV_T dev
, SMB_INO_T inode
, int *ptok
);
477 BOOL
unlock_share_entry(connection_struct
*conn
,
478 SMB_DEV_T dev
, SMB_INO_T inode
, int token
);
479 int get_share_modes(connection_struct
*conn
,
480 int token
, SMB_DEV_T dev
, SMB_INO_T inode
,
481 share_mode_entry
**shares
);
482 void del_share_mode(int token
, files_struct
*fsp
);
483 BOOL
set_share_mode(int token
, files_struct
*fsp
, uint16 port
, uint16 op_type
);
484 BOOL
remove_share_oplock(files_struct
*fsp
, int token
);
485 int share_mode_forall(void (*fn
)(share_mode_entry
*, char *));
486 void share_status(FILE *f
);
488 /*The following definitions come from locking/locking_shm.c */
490 struct share_ops
*locking_shm_init(int ronly
);
492 /*The following definitions come from locking/locking_slow.c */
494 struct share_ops
*locking_slow_init(int ronly
);
496 /*The following definitions come from locking/shmem.c */
498 struct shmem_ops
*smb_shm_open(int ronly
);
500 /*The following definitions come from locking/shmem_sysv.c */
502 struct shmem_ops
*sysv_shm_open(int ronly
);
504 /*The following definitions come from nmbd/asyncdns.c */
506 int asyncdns_fd(void);
507 void kill_async_dns_child(void);
508 void start_async_dns(void);
509 void run_dns_queue(void);
510 BOOL
queue_dns_query(struct packet_struct
*p
,struct nmb_name
*question
,
511 struct name_record
**n
);
512 BOOL
queue_dns_query(struct packet_struct
*p
,struct nmb_name
*question
,
513 struct name_record
**n
);
514 void kill_async_dns_child(void);
516 /*The following definitions come from nmbd/nmbd.c */
518 BOOL
reload_services(BOOL test
);
519 int main(int argc
,char *argv
[]);
521 /*The following definitions come from nmbd/nmbd_become_dmb.c */
523 void add_domain_names(time_t t
);
525 /*The following definitions come from nmbd/nmbd_become_lmb.c */
527 void insert_permanent_name_into_unicast( struct subnet_record
*subrec
,
528 struct nmb_name
*nmbname
, uint16 nb_type
);
529 void unbecome_local_master_browser(struct subnet_record
*subrec
, struct work_record
*work
,
530 BOOL force_new_election
);
531 void become_local_master_browser(struct subnet_record
*subrec
, struct work_record
*work
);
532 void set_workgroup_local_master_browser_name( struct work_record
*work
, char *newname
);
534 /*The following definitions come from nmbd/nmbd_browserdb.c */
536 void update_browser_death_time( struct browse_cache_record
*browc
);
537 struct browse_cache_record
*create_browser_in_lmb_cache( char *work_name
,
540 struct browse_cache_record
*find_browser_in_lmb_cache( char *browser_name
);
541 void expire_lmb_browsers( time_t t
);
543 /*The following definitions come from nmbd/nmbd_browsesync.c */
545 void dmb_expire_and_sync_browser_lists(time_t t
);
546 void announce_and_sync_with_domain_master_browser( struct subnet_record
*subrec
,
547 struct work_record
*work
);
548 void collect_all_workgroup_names_from_wins_server(time_t t
);
549 void sync_all_dmbs(time_t t
);
551 /*The following definitions come from nmbd/nmbd_elections.c */
553 void check_master_browser_exists(time_t t
);
554 void run_elections(time_t t
);
555 void process_election(struct subnet_record
*subrec
, struct packet_struct
*p
, char *buf
);
556 BOOL
check_elections(void);
558 /*The following definitions come from nmbd/nmbd_incomingdgrams.c */
560 void tell_become_backup(void);
561 void process_host_announce(struct subnet_record
*subrec
, struct packet_struct
*p
, char *buf
);
562 void process_workgroup_announce(struct subnet_record
*subrec
, struct packet_struct
*p
, char *buf
);
563 void process_local_master_announce(struct subnet_record
*subrec
, struct packet_struct
*p
, char *buf
);
564 void process_master_browser_announce(struct subnet_record
*subrec
,
565 struct packet_struct
*p
,char *buf
);
566 void process_lm_host_announce(struct subnet_record
*subrec
, struct packet_struct
*p
, char *buf
);
567 void process_get_backup_list_request(struct subnet_record
*subrec
,
568 struct packet_struct
*p
,char *buf
);
569 void process_reset_browser(struct subnet_record
*subrec
,
570 struct packet_struct
*p
,char *buf
);
571 void process_announce_request(struct subnet_record
*subrec
, struct packet_struct
*p
, char *buf
);
572 void process_lm_announce_request(struct subnet_record
*subrec
, struct packet_struct
*p
, char *buf
);
574 /*The following definitions come from nmbd/nmbd_incomingrequests.c */
576 void process_name_release_request(struct subnet_record
*subrec
,
577 struct packet_struct
*p
);
578 void process_name_refresh_request(struct subnet_record
*subrec
,
579 struct packet_struct
*p
);
580 void process_name_registration_request(struct subnet_record
*subrec
,
581 struct packet_struct
*p
);
582 void process_node_status_request(struct subnet_record
*subrec
, struct packet_struct
*p
);
583 void process_name_query_request(struct subnet_record
*subrec
, struct packet_struct
*p
);
585 /*The following definitions come from nmbd/nmbd_lmhosts.c */
587 void load_lmhosts_file(char *fname
);
588 BOOL
find_name_in_lmhosts(struct nmb_name
*nmbname
, struct name_record
**namerecp
);
590 /*The following definitions come from nmbd/nmbd_logonnames.c */
592 void add_logon_names(void);
594 /*The following definitions come from nmbd/nmbd_mynames.c */
596 BOOL
register_my_workgroup_and_names(void);
597 void release_my_names(void);
598 void refresh_my_names(time_t t
);
600 /*The following definitions come from nmbd/nmbd_namelistdb.c */
602 void set_samba_nb_type(void);
603 void remove_name_from_namelist( struct subnet_record
*subrec
,
604 struct name_record
*namerec
);
605 struct name_record
*find_name_on_subnet( struct subnet_record
*subrec
,
606 struct nmb_name
*nmbname
,
608 struct name_record
*find_name_for_remote_broadcast_subnet(
609 struct nmb_name
*nmbname
,
611 void update_name_ttl( struct name_record
*namerec
, int ttl
);
612 struct name_record
*add_name_to_subnet( struct subnet_record
*subrec
,
617 enum name_source source
,
619 struct in_addr
*iplist
);
620 void standard_success_register(struct subnet_record
*subrec
,
621 struct userdata_struct
*userdata
,
622 struct nmb_name
*nmbname
, uint16 nb_flags
, int ttl
,
623 struct in_addr registered_ip
);
624 void standard_fail_register( struct subnet_record
*subrec
,
625 struct response_record
*rrec
,
626 struct nmb_name
*nmbname
);
627 BOOL
find_ip_in_name_record( struct name_record
*namerec
, struct in_addr ip
);
628 void add_ip_to_name_record( struct name_record
*namerec
, struct in_addr new_ip
);
629 void remove_ip_from_name_record( struct name_record
*namerec
,
630 struct in_addr remove_ip
);
631 void standard_success_release( struct subnet_record
*subrec
,
632 struct userdata_struct
*userdata
,
633 struct nmb_name
*nmbname
,
634 struct in_addr released_ip
);
635 void expire_names_on_subnet(struct subnet_record
*subrec
, time_t t
);
636 void expire_names(time_t t
);
637 void add_samba_names_to_subnet( struct subnet_record
*subrec
);
638 void dump_all_namelists(void);
640 /*The following definitions come from nmbd/nmbd_namequery.c */
642 BOOL
query_name(struct subnet_record
*subrec
, char *name
, int type
,
643 query_name_success_function success_fn
,
644 query_name_fail_function fail_fn
,
645 struct userdata_struct
*userdata
);
646 BOOL
query_name_from_wins_server(struct in_addr ip_to
,
647 char *name
, int type
,
648 query_name_success_function success_fn
,
649 query_name_fail_function fail_fn
,
650 struct userdata_struct
*userdata
);
652 /*The following definitions come from nmbd/nmbd_nameregister.c */
654 BOOL
register_name(struct subnet_record
*subrec
,
655 char *name
, int type
, uint16 nb_flags
,
656 register_name_success_function success_fn
,
657 register_name_fail_function fail_fn
,
658 struct userdata_struct
*userdata
);
659 BOOL
refresh_name(struct subnet_record
*subrec
, struct name_record
*namerec
,
660 refresh_name_success_function success_fn
,
661 refresh_name_fail_function fail_fn
,
662 struct userdata_struct
*userdata
);
664 /*The following definitions come from nmbd/nmbd_namerelease.c */
666 BOOL
release_name(struct subnet_record
*subrec
, struct name_record
*namerec
,
667 release_name_success_function success_fn
,
668 release_name_fail_function fail_fn
,
669 struct userdata_struct
*userdata
);
671 /*The following definitions come from nmbd/nmbd_nodestatus.c */
673 BOOL
node_status(struct subnet_record
*subrec
, struct nmb_name
*nmbname
,
674 struct in_addr send_ip
, node_status_success_function success_fn
,
675 node_status_fail_function fail_fn
, struct userdata_struct
*userdata
);
677 /*The following definitions come from nmbd/nmbd_packets.c */
679 uint16
get_nb_flags(char *buf
);
680 void set_nb_flags(char *buf
, uint16 nb_flags
);
681 struct response_record
*queue_register_name( struct subnet_record
*subrec
,
682 response_function resp_fn
,
683 timeout_response_function timeout_fn
,
684 register_name_success_function success_fn
,
685 register_name_fail_function fail_fn
,
686 struct userdata_struct
*userdata
,
687 struct nmb_name
*nmbname
,
689 struct response_record
*queue_register_multihomed_name( struct subnet_record
*subrec
,
690 response_function resp_fn
,
691 timeout_response_function timeout_fn
,
692 register_name_success_function success_fn
,
693 register_name_fail_function fail_fn
,
694 struct userdata_struct
*userdata
,
695 struct nmb_name
*nmbname
,
697 struct in_addr register_ip
);
698 struct response_record
*queue_release_name( struct subnet_record
*subrec
,
699 response_function resp_fn
,
700 timeout_response_function timeout_fn
,
701 release_name_success_function success_fn
,
702 release_name_fail_function fail_fn
,
703 struct userdata_struct
*userdata
,
704 struct nmb_name
*nmbname
,
706 struct in_addr release_ip
);
707 struct response_record
*queue_refresh_name( struct subnet_record
*subrec
,
708 response_function resp_fn
,
709 timeout_response_function timeout_fn
,
710 refresh_name_success_function success_fn
,
711 refresh_name_fail_function fail_fn
,
712 struct userdata_struct
*userdata
,
713 struct name_record
*namerec
,
714 struct in_addr refresh_ip
);
715 struct response_record
*queue_query_name( struct subnet_record
*subrec
,
716 response_function resp_fn
,
717 timeout_response_function timeout_fn
,
718 query_name_success_function success_fn
,
719 query_name_fail_function fail_fn
,
720 struct userdata_struct
*userdata
,
721 struct nmb_name
*nmbname
);
722 struct response_record
*queue_query_name_from_wins_server( struct in_addr to_ip
,
723 response_function resp_fn
,
724 timeout_response_function timeout_fn
,
725 query_name_success_function success_fn
,
726 query_name_fail_function fail_fn
,
727 struct userdata_struct
*userdata
,
728 struct nmb_name
*nmbname
);
729 struct response_record
*queue_node_status( struct subnet_record
*subrec
,
730 response_function resp_fn
,
731 timeout_response_function timeout_fn
,
732 node_status_success_function success_fn
,
733 node_status_fail_function fail_fn
,
734 struct userdata_struct
*userdata
,
735 struct nmb_name
*nmbname
,
736 struct in_addr send_ip
);
737 void reply_netbios_packet(struct packet_struct
*orig_packet
,
738 int rcode
, enum netbios_reply_type_code rcv_code
, int opcode
,
739 int ttl
, char *data
,int len
);
740 void run_packet_queue(void);
741 void retransmit_or_expire_response_records(time_t t
);
742 BOOL
listen_for_packets(BOOL run_election
);
743 BOOL
send_mailslot(BOOL unique
, char *mailslot
,char *buf
,int len
,
744 char *srcname
, int src_type
,
745 char *dstname
, int dest_type
,
746 struct in_addr dest_ip
,struct in_addr src_ip
,
749 /*The following definitions come from nmbd/nmbd_processlogon.c */
751 void process_logon_packet(struct packet_struct
*p
,char *buf
,int len
,
754 /*The following definitions come from nmbd/nmbd_responserecordsdb.c */
756 void remove_response_record(struct subnet_record
*subrec
,
757 struct response_record
*rrec
);
758 struct response_record
*make_response_record( struct subnet_record
*subrec
,
759 struct packet_struct
*p
,
760 response_function resp_fn
,
761 timeout_response_function timeout_fn
,
762 success_function success_fn
,
763 fail_function fail_fn
,
764 struct userdata_struct
*userdata
);
765 struct response_record
*find_response_record(struct subnet_record
**ppsubrec
,
767 BOOL
is_refresh_already_queued(struct subnet_record
*subrec
, struct name_record
*namerec
);
769 /*The following definitions come from nmbd/nmbd_sendannounce.c */
771 void send_browser_reset(int reset_type
, char *to_name
, int to_type
, struct in_addr to_ip
);
772 void broadcast_announce_request(struct subnet_record
*subrec
, struct work_record
*work
);
773 void announce_my_server_names(time_t t
);
774 void announce_my_lm_server_names(time_t t
);
775 void reset_announce_timer(void);
776 void announce_myself_to_domain_master_browser(time_t t
);
777 void announce_my_servers_removed(void);
778 void announce_remote(time_t t
);
779 void browse_sync_remote(time_t t
);
781 /*The following definitions come from nmbd/nmbd_serverlistdb.c */
783 void remove_all_servers(struct work_record
*work
);
784 struct server_record
*find_server_in_workgroup(struct work_record
*work
, char *name
);
785 void remove_server_from_workgroup(struct work_record
*work
, struct server_record
*servrec
);
786 struct server_record
*create_server_on_workgroup(struct work_record
*work
,
787 char *name
,int servertype
,
788 int ttl
,char *comment
);
789 void update_server_ttl(struct server_record
*servrec
, int ttl
);
790 void expire_servers(struct work_record
*work
, time_t t
);
791 void write_browse_list(time_t t
, BOOL force_write
);
793 /*The following definitions come from nmbd/nmbd_subnetdb.c */
795 BOOL
create_subnets(void);
796 BOOL
we_are_a_wins_client(void);
797 struct subnet_record
*get_next_subnet_maybe_unicast(struct subnet_record
*subrec
);
798 struct subnet_record
*get_next_subnet_maybe_unicast_or_wins_server(struct subnet_record
*subrec
);
800 /*The following definitions come from nmbd/nmbd_synclists.c */
802 void sync_browse_lists(struct work_record
*work
,
803 char *name
, int nm_type
,
804 struct in_addr ip
, BOOL local
, BOOL servers
);
805 void sync_check_completion(void);
807 /*The following definitions come from nmbd/nmbd_winsproxy.c */
809 void make_wins_proxy_name_query_request( struct subnet_record
*subrec
,
810 struct packet_struct
*incoming_packet
,
811 struct nmb_name
*question_name
);
813 /*The following definitions come from nmbd/nmbd_winsserver.c */
815 BOOL
packet_is_for_wins_server(struct packet_struct
*packet
);
816 BOOL
initialise_wins(void);
817 void wins_process_name_refresh_request(struct subnet_record
*subrec
,
818 struct packet_struct
*p
);
819 void wins_process_name_registration_request(struct subnet_record
*subrec
,
820 struct packet_struct
*p
);
821 void wins_process_multihomed_name_registration_request( struct subnet_record
*subrec
,
822 struct packet_struct
*p
);
823 void send_wins_name_query_response(int rcode
, struct packet_struct
*p
,
824 struct name_record
*namerec
);
825 void wins_process_name_query_request(struct subnet_record
*subrec
,
826 struct packet_struct
*p
);
827 void wins_process_name_release_request(struct subnet_record
*subrec
,
828 struct packet_struct
*p
);
829 void initiate_wins_processing(time_t t
);
830 void wins_write_database(BOOL background
);
832 /*The following definitions come from nmbd/nmbd_workgroupdb.c */
834 struct work_record
*find_workgroup_on_subnet(struct subnet_record
*subrec
,
836 struct work_record
*create_workgroup_on_subnet(struct subnet_record
*subrec
,
837 fstring name
, int ttl
);
838 void update_workgroup_ttl(struct work_record
*work
, int ttl
);
839 void initiate_myworkgroup_startup(struct subnet_record
*subrec
, struct work_record
*work
);
840 void dump_workgroups(BOOL force_write
);
841 void expire_workgroups_and_servers(time_t t
);
843 /*The following definitions come from param/loadparm.c */
845 char *lp_logfile(void);
846 char *lp_smbrun(void);
847 char *lp_configfile(void);
848 char *lp_smb_passwd_file(void);
849 char *lp_serverstring(void);
850 char *lp_printcapname(void);
851 char *lp_lockdir(void);
852 char *lp_rootdir(void);
853 char *lp_defaultservice(void);
854 char *lp_msg_command(void);
855 char *lp_hosts_equiv(void);
856 char *lp_auto_services(void);
857 char *lp_passwd_program(void);
858 char *lp_passwd_chat(void);
859 char *lp_passwordserver(void);
860 char *lp_name_resolve_order(void);
861 char *lp_workgroup(void);
862 char *lp_username_map(void);
863 char *lp_groupname_map(void);
864 char *lp_logon_script(void);
865 char *lp_logon_path(void);
866 char *lp_logon_drive(void);
867 char *lp_logon_home(void);
868 char *lp_remote_announce(void);
869 char *lp_remote_browse_sync(void);
870 char *lp_wins_server(void);
871 char *lp_interfaces(void);
872 char *lp_socket_address(void);
873 char *lp_nis_home_map_name(void);
874 char *lp_netbios_aliases(void);
875 char *lp_driverfile(void);
876 char *lp_panic_action(void);
877 char *lp_domain_sid(void);
878 char *lp_domain_groups(void);
879 char *lp_domain_admin_group(void);
880 char *lp_domain_guest_group(void);
881 char *lp_domain_admin_users(void);
882 char *lp_domain_guest_users(void);
883 char *lp_ldap_server(void);
884 char *lp_ldap_suffix(void);
885 char *lp_ldap_filter(void);
886 char *lp_ldap_root(void);
887 char *lp_ldap_rootpasswd(void);
888 int lp_ssl_version(void);
889 char *lp_ssl_hosts(void);
890 char *lp_ssl_hosts_resign(void);
891 char *lp_ssl_cacertdir(void);
892 char *lp_ssl_cacertfile(void);
893 char *lp_ssl_cert(void);
894 char *lp_ssl_privkey(void);
895 char *lp_ssl_client_cert(void);
896 char *lp_ssl_client_privkey(void);
897 char *lp_ssl_ciphers(void);
898 BOOL
lp_ssl_enabled(void);
899 BOOL
lp_ssl_reqClientCert(void);
900 BOOL
lp_ssl_reqServerCert(void);
901 BOOL
lp_ssl_compatibility(void);
902 BOOL
lp_dns_proxy(void);
903 BOOL
lp_wins_support(void);
904 BOOL
lp_we_are_a_wins_server(void);
905 BOOL
lp_wins_proxy(void);
906 BOOL
lp_local_master(void);
907 BOOL
lp_domain_controller(void);
908 BOOL
lp_domain_master(void);
909 BOOL
lp_domain_logons(void);
910 BOOL
lp_preferred_master(void);
911 BOOL
lp_load_printers(void);
912 BOOL
lp_use_rhosts(void);
913 BOOL
lp_readprediction(void);
914 BOOL
lp_readbmpx(void);
915 BOOL
lp_readraw(void);
916 BOOL
lp_writeraw(void);
917 BOOL
lp_null_passwords(void);
918 BOOL
lp_strip_dot(void);
919 BOOL
lp_encrypted_passwords(void);
920 BOOL
lp_update_encrypted(void);
921 BOOL
lp_syslog_only(void);
922 BOOL
lp_timestamp_logs(void);
923 BOOL
lp_browse_list(void);
924 BOOL
lp_unix_realname(void);
925 BOOL
lp_nis_home_map(void);
926 BOOL
lp_bind_interfaces_only(void);
927 BOOL
lp_net_wksta_user_logon(void);
928 BOOL
lp_unix_password_sync(void);
929 BOOL
lp_passwd_chat_debug(void);
930 BOOL
lp_ole_locking_compat(void);
931 BOOL
lp_nt_smb_support(void);
932 BOOL
lp_stat_cache(void);
933 int lp_os_level(void);
934 int lp_max_ttl(void);
935 int lp_max_wins_ttl(void);
936 int lp_min_wins_ttl(void);
937 int lp_max_log_size(void);
938 int lp_maxxmit(void);
940 int lp_passwordlevel(void);
941 int lp_usernamelevel(void);
942 int lp_readsize(void);
943 int lp_shmem_size(void);
944 int lp_deadtime(void);
945 int lp_maxprotocol(void);
946 int lp_security(void);
947 int lp_maxdisksize(void);
948 int lp_lpqcachetime(void);
950 int lp_client_code_page(void);
951 int lp_lm_announce(void);
952 int lp_lm_interval(void);
953 int lp_machine_password_timeout(void);
954 int lp_change_notify_timeout(void);
955 int lp_stat_cache_size(void);
956 int lp_ldap_port(void);
957 char *lp_preexec(int );
958 char *lp_postexec(int );
959 char *lp_rootpreexec(int );
960 char *lp_rootpostexec(int );
961 char *lp_servicename(int );
962 char *lp_pathname(int );
963 char *lp_dontdescend(int );
964 char *lp_username(int );
965 char *lp_guestaccount(int );
966 char *lp_invalid_users(int );
967 char *lp_valid_users(int );
968 char *lp_admin_users(int );
969 char *lp_printcommand(int );
970 char *lp_lpqcommand(int );
971 char *lp_lprmcommand(int );
972 char *lp_lppausecommand(int );
973 char *lp_lpresumecommand(int );
974 char *lp_queuepausecommand(int );
975 char *lp_queueresumecommand(int );
976 char *lp_printername(int );
977 char *lp_printerdriver(int );
978 char *lp_hostsallow(int );
979 char *lp_hostsdeny(int );
980 char *lp_magicscript(int );
981 char *lp_magicoutput(int );
982 char *lp_comment(int );
983 char *lp_force_user(int );
984 char *lp_force_group(int );
985 char *lp_readlist(int );
986 char *lp_writelist(int );
987 char *lp_mangled_map(int );
988 char *lp_veto_files(int );
989 char *lp_hide_files(int );
990 char *lp_veto_oplocks(int );
991 char *lp_driverlocation(int );
992 BOOL
lp_revalidate(int );
993 BOOL
lp_casesensitive(int );
994 BOOL
lp_preservecase(int );
995 BOOL
lp_shortpreservecase(int );
996 BOOL
lp_casemangle(int );
997 BOOL
lp_status(int );
998 BOOL
lp_hide_dot_files(int );
999 BOOL
lp_browseable(int );
1000 BOOL
lp_readonly(int );
1001 BOOL
lp_no_set_dir(int );
1002 BOOL
lp_guest_ok(int );
1003 BOOL
lp_guest_only(int );
1004 BOOL
lp_print_ok(int );
1005 BOOL
lp_postscript(int );
1006 BOOL
lp_map_hidden(int );
1007 BOOL
lp_map_archive(int );
1008 BOOL
lp_locking(int );
1009 BOOL
lp_strict_locking(int );
1010 BOOL
lp_share_modes(int );
1011 BOOL
lp_oplocks(int );
1012 BOOL
lp_onlyuser(int );
1013 BOOL
lp_manglednames(int );
1014 BOOL
lp_widelinks(int );
1015 BOOL
lp_symlinks(int );
1016 BOOL
lp_syncalways(int );
1017 BOOL
lp_strict_sync(int );
1018 BOOL
lp_map_system(int );
1019 BOOL
lp_delete_readonly(int );
1020 BOOL
lp_fake_oplocks(int );
1021 BOOL
lp_recursive_veto_delete(int );
1022 BOOL
lp_dos_filetimes(int );
1023 BOOL
lp_dos_filetime_resolution(int );
1024 BOOL
lp_fake_dir_create_times(int );
1025 BOOL
lp_blocking_locks(int );
1026 int lp_create_mode(int );
1027 int lp_force_create_mode(int );
1028 int lp_dir_mode(int );
1029 int lp_force_dir_mode(int );
1030 int lp_max_connections(int );
1031 int lp_defaultcase(int );
1032 int lp_minprintspace(int );
1033 int lp_printing(int );
1034 char lp_magicchar(int );
1035 BOOL
lp_add_home(char *pszHomename
, int iDefaultService
, char *pszHomedir
);
1036 int lp_add_service(char *pszService
, int iDefaultService
);
1037 BOOL
lp_add_printer(char *pszPrintername
, int iDefaultService
);
1038 BOOL
lp_file_list_changed(void);
1039 void *lp_local_ptr(int snum
, void *ptr
);
1040 BOOL
lp_do_parameter(int snum
, char *pszParmName
, char *pszParmValue
);
1041 BOOL
lp_is_default(int snum
, struct parm_struct
*parm
);
1042 struct parm_struct
*lp_next_parameter(int snum
, int *i
, int allparameters
);
1043 BOOL
lp_snum_ok(int iService
);
1044 void lp_add_one_printer(char *name
,char *comment
);
1045 BOOL
lp_loaded(void);
1046 void lp_killunused(BOOL (*snumused
)(int ));
1047 BOOL
lp_load(char *pszFname
,BOOL global_only
, BOOL save_defaults
, BOOL add_ipc
);
1048 int lp_numservices(void);
1049 void lp_dump(FILE *f
, BOOL show_defaults
);
1050 int lp_servicenumber(char *pszServiceName
);
1051 char *volume_label(int snum
);
1052 void lp_remove_service(int snum
);
1053 void lp_copy_service(int snum
, char *new_name
);
1054 int lp_default_server_announce(void);
1055 int lp_major_announce_version(void);
1056 int lp_minor_announce_version(void);
1057 void lp_set_name_resolve_order(char *new_order
);
1059 /*The following definitions come from param/params.c */
1061 BOOL
pm_process( char *FileName
,
1062 BOOL (*sfunc
)(char *),
1063 BOOL (*pfunc
)(char *, char *) );
1065 /*The following definitions come from passdb/ldap.c */
1067 struct passdb_ops
*ldap_initialize_password_db(void);
1069 /*The following definitions come from passdb/nispass.c */
1071 struct passdb_ops
*nisplus_initialize_password_db(void);
1073 /*The following definitions come from passdb/pass_check.c */
1075 void dfs_unlogin(void);
1076 BOOL
pass_check(char *user
,char *password
, int pwlen
, struct passwd
*pwd
,
1077 BOOL (*fn
)(char *, char *));
1079 /*The following definitions come from passdb/passdb.c */
1081 BOOL
initialize_password_db(void);
1082 struct smb_passwd
*iterate_getsmbpwuid(uid_t smb_userid
);
1083 struct smb_passwd
*iterate_getsmbpwnam(char *name
);
1084 void *startsmbpwent(BOOL update
);
1085 void endsmbpwent(void *vp
);
1086 struct smb_passwd
*getsmbpwent(void *vp
);
1087 BOOL
add_smbpwd_entry(struct smb_passwd
*newpwd
);
1088 BOOL
mod_smbpwd_entry(struct smb_passwd
* pwd
, BOOL override
);
1089 struct smb_passwd
*getsmbpwnam(char *name
);
1090 struct smb_passwd
*getsmbpwuid(uid_t smb_userid
);
1091 struct sam_passwd
*iterate_getsam21pwnam(char *name
);
1092 struct sam_passwd
*iterate_getsam21pwrid(uint32 rid
);
1093 struct sam_passwd
*iterate_getsam21pwuid(uid_t uid
);
1094 struct sam_disp_info
*getsamdisprid(uint32 rid
);
1095 struct sam_passwd
*getsam21pwent(void *vp
);
1096 struct sam_passwd
*getsam21pwnam(char *name
);
1097 struct sam_passwd
*getsam21pwrid(uint32 rid
);
1098 void pdb_init_smb(struct smb_passwd
*user
);
1099 void pdb_init_sam(struct sam_passwd
*user
);
1100 struct sam_disp_info
*pdb_sam_to_dispinfo(struct sam_passwd
*user
);
1101 struct smb_passwd
*pdb_sam_to_smb(struct sam_passwd
*user
);
1102 char *pdb_encode_acct_ctrl(uint16 acct_ctrl
);
1103 uint16
pdb_decode_acct_ctrl(char *p
);
1104 BOOL
pdb_gethexpwd(char *p
, char *pwd
);
1105 BOOL
pdb_name_to_rid(char *user_name
, uint32
*u_rid
, uint32
*g_rid
);
1106 BOOL
pdb_generate_machine_sid(void);
1107 uint32
pdb_uid_to_user_rid(uid_t uid
);
1108 uint32
pdb_gid_to_group_rid(gid_t gid
);
1109 BOOL
pdb_rid_is_user(uint32 rid
);
1111 /*The following definitions come from passdb/smbpass.c */
1113 struct passdb_ops
*file_initialize_password_db(void);
1115 /*The following definitions come from passdb/smbpassfile.c */
1117 BOOL
do_file_lock(int fd
, int waitsecs
, int type
);
1118 BOOL
pw_file_lock(int fd
, int type
, int secs
, int *plock_depth
);
1119 BOOL
pw_file_unlock(int fd
, int *plock_depth
);
1120 BOOL
trust_password_lock( char *domain
, char *name
, BOOL update
);
1121 BOOL
trust_password_unlock(void);
1122 BOOL
trust_password_delete( char *domain
, char *name
);
1123 BOOL
get_trust_account_password( unsigned char *ret_pwd
, time_t *pass_last_set_time
);
1124 BOOL
set_trust_account_password( unsigned char *md4_new_pwd
);
1126 /*The following definitions come from printing/pcap.c */
1128 BOOL
pcap_printername_ok(char *pszPrintername
, char *pszPrintcapname
);
1129 void pcap_printer_fn(void (*fn
)(char *, char *));
1131 /*The following definitions come from printing/print_svid.c */
1133 void sysv_printer_fn(void (*fn
)(char *, char *));
1134 int sysv_printername_ok(char *name
);
1136 /*The following definitions come from printing/printing.c */
1138 void lpq_reset(int snum
);
1139 void print_file(connection_struct
*conn
, files_struct
*file
);
1140 int get_printqueue(int snum
,
1141 connection_struct
*conn
,print_queue_struct
**queue
,
1142 print_status_struct
*status
);
1143 void del_printqueue(connection_struct
*conn
,int snum
,int jobid
);
1144 void status_printjob(connection_struct
*conn
,int snum
,int jobid
,int status
);
1145 int printjob_encode(int snum
, int job
);
1146 void printjob_decode(int jobid
, int *snum
, int *job
);
1147 void status_printqueue(connection_struct
*conn
,int snum
,int status
);
1148 void load_printers(void);
1150 /*The following definitions come from rpc_client/cli_login.c */
1152 BOOL
cli_nt_setup_creds(struct cli_state
*cli
, unsigned char mach_pwd
[16]);
1153 BOOL
cli_nt_srv_pwset(struct cli_state
*cli
, unsigned char *new_hashof_mach_pwd
);
1154 BOOL
cli_nt_login_interactive(struct cli_state
*cli
, char *domain
, char *username
,
1155 uint32 smb_userid_low
, char *password
,
1156 NET_ID_INFO_CTR
*ctr
, NET_USER_INFO_3
*user_info3
);
1157 BOOL
cli_nt_login_network(struct cli_state
*cli
, char *domain
, char *username
,
1158 uint32 smb_userid_low
, char lm_chal
[8], char lm_chal_resp
[24],
1159 char nt_chal_resp
[24],
1160 NET_ID_INFO_CTR
*ctr
, NET_USER_INFO_3
*user_info3
);
1161 BOOL
cli_nt_logoff(struct cli_state
*cli
, NET_ID_INFO_CTR
*ctr
);
1163 /*The following definitions come from rpc_client/cli_netlogon.c */
1165 BOOL
cli_net_logon_ctrl2(struct cli_state
*cli
, uint32 status_level
);
1166 BOOL
cli_net_auth2(struct cli_state
*cli
, uint16 sec_chan
,
1167 uint32 neg_flags
, DOM_CHAL
*srv_chal
);
1168 BOOL
cli_net_req_chal(struct cli_state
*cli
, DOM_CHAL
*clnt_chal
, DOM_CHAL
*srv_chal
);
1169 BOOL
cli_net_srv_pwset(struct cli_state
*cli
, uint8 hashed_mach_pwd
[16]);
1170 BOOL
cli_net_sam_logon(struct cli_state
*cli
, NET_ID_INFO_CTR
*ctr
,
1171 NET_USER_INFO_3
*user_info3
);
1172 BOOL
cli_net_sam_logoff(struct cli_state
*cli
, NET_ID_INFO_CTR
*ctr
);
1173 BOOL
change_trust_account_password( char *domain
, char *remote_machine_list
);
1175 /*The following definitions come from rpc_client/cli_pipe.c */
1177 BOOL
rpc_api_pipe_req(struct cli_state
*cli
, uint8 op_num
,
1178 prs_struct
*data
, prs_struct
*rdata
);
1179 BOOL
cli_nt_session_open(struct cli_state
*cli
, char *pipe_name
, BOOL encrypted
);
1180 void cli_nt_session_close(struct cli_state
*cli
);
1182 /*The following definitions come from rpc_parse/parse_lsa.c */
1184 void make_lsa_trans_name(LSA_TRANS_NAME
*trn
, uint32 sid_name_use
, char *name
, uint32 idx
);
1185 void lsa_io_q_open_pol(char *desc
, LSA_Q_OPEN_POL
*r_q
, prs_struct
*ps
, int depth
);
1186 void lsa_io_r_open_pol(char *desc
, LSA_R_OPEN_POL
*r_p
, prs_struct
*ps
, int depth
);
1187 void lsa_io_q_query(char *desc
, LSA_Q_QUERY_INFO
*q_q
, prs_struct
*ps
, int depth
);
1188 void lsa_io_q_enum_trust_dom(char *desc
, LSA_Q_ENUM_TRUST_DOM
*q_e
, prs_struct
*ps
, int depth
);
1189 void make_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM
*r_e
,
1190 uint32 enum_context
, char *domain_name
, DOM_SID
*domain_sid
,
1192 void lsa_io_r_enum_trust_dom(char *desc
, LSA_R_ENUM_TRUST_DOM
*r_e
, prs_struct
*ps
, int depth
);
1193 void lsa_io_r_query(char *desc
, LSA_R_QUERY_INFO
*r_q
, prs_struct
*ps
, int depth
);
1194 void lsa_io_q_lookup_sids(char *desc
, LSA_Q_LOOKUP_SIDS
*q_s
, prs_struct
*ps
, int depth
);
1195 void lsa_io_r_lookup_sids(char *desc
, LSA_R_LOOKUP_SIDS
*r_s
, prs_struct
*ps
, int depth
);
1196 void lsa_io_q_lookup_rids(char *desc
, LSA_Q_LOOKUP_RIDS
*q_r
, prs_struct
*ps
, int depth
);
1197 void lsa_io_r_lookup_rids(char *desc
, LSA_R_LOOKUP_RIDS
*r_r
, prs_struct
*ps
, int depth
);
1199 /*The following definitions come from rpc_parse/parse_misc.c */
1201 void smb_io_time(char *desc
, NTTIME
*nttime
, prs_struct
*ps
, int depth
);
1202 void smb_io_lookup_level(char *desc
, LOOKUP_LEVEL
*level
, prs_struct
*ps
, int depth
);
1203 uint32
get_enum_hnd(ENUM_HND
*enh
);
1204 void make_enum_hnd(ENUM_HND
*enh
, uint32 hnd
);
1205 void smb_io_enum_hnd(char *desc
, ENUM_HND
*hnd
, prs_struct
*ps
, int depth
);
1206 void smb_io_dom_sid(char *desc
, DOM_SID
*sid
, prs_struct
*ps
, int depth
);
1207 void make_dom_sid2(DOM_SID2
*sid2
, DOM_SID
*sid
);
1208 void smb_io_dom_sid2(char *desc
, DOM_SID2
*sid
, prs_struct
*ps
, int depth
);
1209 void make_str_hdr(STRHDR
*hdr
, int max_len
, int len
, uint32 buffer
);
1210 void smb_io_strhdr(char *desc
, STRHDR
*hdr
, prs_struct
*ps
, int depth
);
1211 void make_uni_hdr(UNIHDR
*hdr
, int max_len
, int len
, uint32 buffer
);
1212 void smb_io_unihdr(char *desc
, UNIHDR
*hdr
, prs_struct
*ps
, int depth
);
1213 void make_uni_hdr2(UNIHDR2
*hdr
, int max_len
, int len
, uint16 terminate
);
1214 void smb_io_unihdr2(char *desc
, UNIHDR2
*hdr2
, prs_struct
*ps
, int depth
);
1215 void make_unistr(UNISTR
*str
, char *buf
);
1216 void smb_io_unistr(char *desc
, UNISTR
*uni
, prs_struct
*ps
, int depth
);
1217 void make_uninotstr2(UNINOTSTR2
*str
, char *buf
, int len
);
1218 void smb_io_uninotstr2(char *desc
, UNINOTSTR2
*uni2
, uint32 buffer
, prs_struct
*ps
, int depth
);
1219 void make_buf_unistr2(UNISTR2
*str
, uint32
*ptr
, char *buf
);
1220 void copy_unistr2(UNISTR2
*str
, UNISTR2
*from
);
1221 void make_string2(STRING2
*str
, char *buf
, int len
);
1222 void smb_io_string2(char *desc
, STRING2
*str2
, uint32 buffer
, prs_struct
*ps
, int depth
);
1223 void make_unistr2(UNISTR2
*str
, char *buf
, int len
);
1224 void smb_io_unistr2(char *desc
, UNISTR2
*uni2
, uint32 buffer
, prs_struct
*ps
, int depth
);
1225 void make_dom_rid2(DOM_RID2
*rid2
, uint32 rid
);
1226 void smb_io_dom_rid2(char *desc
, DOM_RID2
*rid2
, prs_struct
*ps
, int depth
);
1227 void make_dom_rid3(DOM_RID3
*rid3
, uint32 rid
);
1228 void smb_io_dom_rid3(char *desc
, DOM_RID3
*rid3
, prs_struct
*ps
, int depth
);
1229 void make_dom_rid4(DOM_RID4
*rid4
, uint16 unknown
, uint16 attr
, uint32 rid
);
1230 void make_log_info(DOM_LOG_INFO
*log
, char *logon_srv
, char *acct_name
,
1231 uint16 sec_chan
, char *comp_name
);
1232 void smb_io_log_info(char *desc
, DOM_LOG_INFO
*log
, prs_struct
*ps
, int depth
);
1233 void smb_io_chal(char *desc
, DOM_CHAL
*chal
, prs_struct
*ps
, int depth
);
1234 void smb_io_cred(char *desc
, DOM_CRED
*cred
, prs_struct
*ps
, int depth
);
1235 void make_clnt_info2(DOM_CLNT_INFO2
*clnt
,
1236 char *logon_srv
, char *comp_name
,
1237 DOM_CRED
*clnt_cred
);
1238 void smb_io_clnt_info2(char *desc
, DOM_CLNT_INFO2
*clnt
, prs_struct
*ps
, int depth
);
1239 void make_clnt_info(DOM_CLNT_INFO
*clnt
,
1240 char *logon_srv
, char *acct_name
,
1241 uint16 sec_chan
, char *comp_name
,
1243 void smb_io_clnt_info(char *desc
, DOM_CLNT_INFO
*clnt
, prs_struct
*ps
, int depth
);
1244 void make_logon_id(DOM_LOGON_ID
*log
, uint32 log_id_low
, uint32 log_id_high
);
1245 void smb_io_logon_id(char *desc
, DOM_LOGON_ID
*log
, prs_struct
*ps
, int depth
);
1246 void make_owf_info(OWF_INFO
*hash
, uint8 data
[16]);
1247 void smb_io_owf_info(char *desc
, OWF_INFO
*hash
, prs_struct
*ps
, int depth
);
1248 void smb_io_gid(char *desc
, DOM_GID
*gid
, prs_struct
*ps
, int depth
);
1249 void smb_io_pol_hnd(char *desc
, POLICY_HND
*pol
, prs_struct
*ps
, int depth
);
1250 void smb_io_dom_query_3(char *desc
, DOM_QUERY_3
*d_q
, prs_struct
*ps
, int depth
);
1251 void smb_io_dom_query_5(char *desc
, DOM_QUERY_3
*d_q
, prs_struct
*ps
, int depth
);
1252 void smb_io_dom_name(char *desc
, DOM_NAME
*name
, prs_struct
*ps
, int depth
);
1254 /*The following definitions come from rpc_parse/parse_net.c */
1256 void net_io_q_logon_ctrl2(char *desc
, NET_Q_LOGON_CTRL2
*q_l
, prs_struct
*ps
, int depth
);
1257 void make_r_logon_ctrl2(NET_R_LOGON_CTRL2
*r_l
, uint32 query_level
,
1258 uint32 flags
, uint32 pdc_status
, uint32 logon_attempts
,
1259 uint32 tc_status
, char *trusted_domain_name
);
1260 void net_io_r_logon_ctrl2(char *desc
, NET_R_LOGON_CTRL2
*r_l
, prs_struct
*ps
, int depth
);
1261 void make_r_trust_dom(NET_R_TRUST_DOM_LIST
*r_t
,
1262 uint32 num_doms
, char *dom_name
);
1263 void net_io_r_trust_dom(char *desc
, NET_R_TRUST_DOM_LIST
*r_t
, prs_struct
*ps
, int depth
);
1264 void net_io_q_trust_dom(char *desc
, NET_Q_TRUST_DOM_LIST
*q_l
, prs_struct
*ps
, int depth
);
1265 void make_q_req_chal(NET_Q_REQ_CHAL
*q_c
,
1266 char *logon_srv
, char *logon_clnt
,
1267 DOM_CHAL
*clnt_chal
);
1268 void net_io_q_req_chal(char *desc
, NET_Q_REQ_CHAL
*q_c
, prs_struct
*ps
, int depth
);
1269 void net_io_r_req_chal(char *desc
, NET_R_REQ_CHAL
*r_c
, prs_struct
*ps
, int depth
);
1270 void make_q_auth_2(NET_Q_AUTH_2
*q_a
,
1271 char *logon_srv
, char *acct_name
, uint16 sec_chan
, char *comp_name
,
1272 DOM_CHAL
*clnt_chal
, uint32 clnt_flgs
);
1273 void net_io_q_auth_2(char *desc
, NET_Q_AUTH_2
*q_a
, prs_struct
*ps
, int depth
);
1274 void net_io_r_auth_2(char *desc
, NET_R_AUTH_2
*r_a
, prs_struct
*ps
, int depth
);
1275 void make_q_srv_pwset(NET_Q_SRV_PWSET
*q_s
, char *logon_srv
, char *acct_name
,
1276 uint16 sec_chan
, char *comp_name
, DOM_CRED
*cred
, char nt_cypher
[16]);
1277 void net_io_q_srv_pwset(char *desc
, NET_Q_SRV_PWSET
*q_s
, prs_struct
*ps
, int depth
);
1278 void net_io_r_srv_pwset(char *desc
, NET_R_SRV_PWSET
*r_s
, prs_struct
*ps
, int depth
);
1279 void make_id_info2(NET_ID_INFO_2
*id
, char *domain_name
,
1280 uint32 param_ctrl
, uint32 log_id_low
, uint32 log_id_high
,
1281 char *user_name
, char *wksta_name
,
1282 unsigned char lm_challenge
[8],
1283 unsigned char lm_chal_resp
[24],
1284 unsigned char nt_chal_resp
[24]);
1285 void make_sam_info(DOM_SAM_INFO
*sam
,
1286 char *logon_srv
, char *comp_name
, DOM_CRED
*clnt_cred
,
1287 DOM_CRED
*rtn_cred
, uint16 logon_level
,
1288 NET_ID_INFO_CTR
*ctr
, uint16 validation_level
);
1289 void make_net_user_info3(NET_USER_INFO_3
*usr
,
1292 NTTIME
*logoff_time
,
1293 NTTIME
*kickoff_time
,
1294 NTTIME
*pass_last_set_time
,
1295 NTTIME
*pass_can_change_time
,
1296 NTTIME
*pass_must_change_time
,
1306 uint16 bad_pw_count
,
1321 void net_io_q_sam_logon(char *desc
, NET_Q_SAM_LOGON
*q_l
, prs_struct
*ps
, int depth
);
1322 void net_io_r_sam_logon(char *desc
, NET_R_SAM_LOGON
*r_l
, prs_struct
*ps
, int depth
);
1323 void net_io_q_sam_logoff(char *desc
, NET_Q_SAM_LOGOFF
*q_l
, prs_struct
*ps
, int depth
);
1324 void net_io_r_sam_logoff(char *desc
, NET_R_SAM_LOGOFF
*r_l
, prs_struct
*ps
, int depth
);
1326 /*The following definitions come from rpc_parse/parse_prs.c */
1328 void prs_debug(prs_struct
*ps
, int depth
, char *desc
, char *fn_name
);
1329 void prs_init(prs_struct
*ps
, uint32 size
,
1330 uint8 align
, uint32 margin
,
1332 void prs_mem_free(prs_struct
*ps
);
1333 void prs_align(prs_struct
*ps
);
1334 BOOL
prs_grow(prs_struct
*ps
);
1335 BOOL
prs_uint8(char *name
, prs_struct
*ps
, int depth
, uint8
*data8
);
1336 BOOL
prs_uint16(char *name
, prs_struct
*ps
, int depth
, uint16
*data16
);
1337 BOOL
prs_uint32(char *name
, prs_struct
*ps
, int depth
, uint32
*data32
);
1338 BOOL
prs_uint8s(BOOL charmode
, char *name
, prs_struct
*ps
, int depth
, uint8
*data8s
, int len
);
1339 BOOL
prs_uint32s(BOOL charmode
, char *name
, prs_struct
*ps
, int depth
, uint32
*data32s
, int len
);
1340 BOOL
prs_uninotstr2(BOOL charmode
, char *name
, prs_struct
*ps
, int depth
, UNINOTSTR2
*str
);
1341 BOOL
prs_string2(BOOL charmode
, char *name
, prs_struct
*ps
, int depth
, STRING2
*str
);
1342 BOOL
prs_unistr2(BOOL charmode
, char *name
, prs_struct
*ps
, int depth
, UNISTR2
*str
);
1343 BOOL
prs_unistr(char *name
, prs_struct
*ps
, int depth
, UNISTR
*str
);
1344 BOOL
prs_string(char *name
, prs_struct
*ps
, int depth
, char *str
, uint16 len
);
1346 /*The following definitions come from rpc_parse/parse_reg.c */
1348 void reg_io_q_open_policy(char *desc
, REG_Q_OPEN_POLICY
*r_q
, prs_struct
*ps
, int depth
);
1349 void reg_io_r_open_policy(char *desc
, REG_R_OPEN_POLICY
*r_r
, prs_struct
*ps
, int depth
);
1350 void reg_io_q_close(char *desc
, REG_Q_CLOSE
*q_u
, prs_struct
*ps
, int depth
);
1351 void reg_io_r_close(char *desc
, REG_R_CLOSE
*r_u
, prs_struct
*ps
, int depth
);
1352 void reg_io_q_info(char *desc
, REG_Q_INFO
*r_q
, prs_struct
*ps
, int depth
);
1353 void make_reg_r_info(REG_R_INFO
*r_r
,
1354 uint32 level
, char *os_type
,
1355 uint32 unknown_0
, uint32 unknown_1
,
1357 void reg_io_r_info(char *desc
, REG_R_INFO
*r_r
, prs_struct
*ps
, int depth
);
1358 void reg_io_q_open_entry(char *desc
, REG_Q_OPEN_ENTRY
*r_q
, prs_struct
*ps
, int depth
);
1359 void make_reg_r_open_entry(REG_R_OPEN_ENTRY
*r_r
,
1360 POLICY_HND
*pol
, uint32 status
);
1361 void reg_io_r_open_entry(char *desc
, REG_R_OPEN_ENTRY
*r_r
, prs_struct
*ps
, int depth
);
1363 /*The following definitions come from rpc_parse/parse_rpc.c */
1365 void make_rpc_hdr(RPC_HDR
*hdr
, enum RPC_PKT_TYPE pkt_type
, uint8 flags
,
1366 uint32 call_id
, int data_len
, int auth_len
);
1367 void smb_io_rpc_hdr(char *desc
, RPC_HDR
*rpc
, prs_struct
*ps
, int depth
);
1368 void make_rpc_hdr_rb(RPC_HDR_RB
*rpc
,
1369 uint16 max_tsize
, uint16 max_rsize
, uint32 assoc_gid
,
1370 uint32 num_elements
, uint16 context_id
, uint8 num_syntaxes
,
1371 RPC_IFACE
*abstract
, RPC_IFACE
*transfer
);
1372 void smb_io_rpc_hdr_rb(char *desc
, RPC_HDR_RB
*rpc
, prs_struct
*ps
, int depth
);
1373 void make_rpc_hdr_ba(RPC_HDR_BA
*rpc
,
1374 uint16 max_tsize
, uint16 max_rsize
, uint32 assoc_gid
,
1376 uint8 num_results
, uint16 result
, uint16 reason
,
1377 RPC_IFACE
*transfer
);
1378 void smb_io_rpc_hdr_ba(char *desc
, RPC_HDR_BA
*rpc
, prs_struct
*ps
, int depth
);
1379 void make_rpc_hdr_req(RPC_HDR_REQ
*hdr
, uint32 data_len
, uint16 opnum
);
1380 void smb_io_rpc_hdr_req(char *desc
, RPC_HDR_REQ
*rpc
, prs_struct
*ps
, int depth
);
1381 void smb_io_rpc_hdr_resp(char *desc
, RPC_HDR_RESP
*rpc
, prs_struct
*ps
, int depth
);
1382 void make_rpc_auth_ntlmssp_req(RPC_AUTH_NTLMSSP_REQ
*req
,
1383 fstring ntlmssp_str
, uint32 ntlmssp_ver
,
1384 uint32 unknown_0
, fstring myname
, fstring domain
);
1385 void smb_io_rpc_auth_ntlmssp_req(char *desc
, RPC_AUTH_NTLMSSP_REQ
*req
, prs_struct
*ps
, int depth
);
1386 void make_rpc_auth_ntlmssp_resp(RPC_AUTH_NTLMSSP_RESP
*rsp
,
1387 uint8 auth_type
, uint8 auth_level
, uint8 stub_type_len
,
1388 fstring ntlmssp_str
, uint32 ntlmssp_ver
,
1389 uint32 unknown_1
, uint32 unknown_2
, uint32 unknown_3
,
1391 void smb_io_rpc_auth_ntlmssp_resp(char *desc
, RPC_AUTH_NTLMSSP_RESP
*rsp
, prs_struct
*ps
, int depth
);
1393 /*The following definitions come from rpc_parse/parse_samr.c */
1395 void samr_io_q_close_hnd(char *desc
, SAMR_Q_CLOSE_HND
*q_u
, prs_struct
*ps
, int depth
);
1396 void samr_io_r_close_hnd(char *desc
, SAMR_R_CLOSE_HND
*r_u
, prs_struct
*ps
, int depth
);
1397 void samr_io_q_open_domain(char *desc
, SAMR_Q_OPEN_DOMAIN
*q_u
, prs_struct
*ps
, int depth
);
1398 void samr_io_r_open_domain(char *desc
, SAMR_R_OPEN_DOMAIN
*r_u
, prs_struct
*ps
, int depth
);
1399 void samr_io_q_unknown_3(char *desc
, SAMR_Q_UNKNOWN_3
*q_u
, prs_struct
*ps
, int depth
);
1400 void make_dom_sid3(DOM_SID3
*sid3
, uint16 unk_0
, uint16 unk_1
, DOM_SID
*sid
);
1401 void make_samr_r_unknown_3(SAMR_R_UNKNOWN_3
*r_u
,
1402 uint16 unknown_2
, uint16 unknown_3
,
1403 uint32 unknown_4
, uint16 unknown_6
, uint16 unknown_7
,
1404 int num_sid3s
, DOM_SID3 sid3
[MAX_SAM_SIDS
],
1406 void samr_io_r_unknown_3(char *desc
, SAMR_R_UNKNOWN_3
*r_u
, prs_struct
*ps
, int depth
);
1407 void samr_io_q_enum_dom_users(char *desc
, SAMR_Q_ENUM_DOM_USERS
*q_e
, prs_struct
*ps
, int depth
);
1408 void make_samr_r_enum_dom_users(SAMR_R_ENUM_DOM_USERS
*r_u
,
1409 uint16 total_num_entries
, uint16 unk_0
,
1410 uint32 num_sam_entries
, SAM_USER_INFO_21 pass
[MAX_SAM_ENTRIES
], uint32 status
);
1411 void samr_io_r_enum_dom_users(char *desc
, SAMR_R_ENUM_DOM_USERS
*r_u
, prs_struct
*ps
, int depth
);
1412 void samr_io_q_enum_dom_aliases(char *desc
, SAMR_Q_ENUM_DOM_ALIASES
*q_e
, prs_struct
*ps
, int depth
);
1413 void make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES
*r_u
,
1414 uint32 num_sam_entries
, SAM_USER_INFO_21 grps
[MAX_SAM_ENTRIES
],
1416 void samr_io_r_enum_dom_aliases(char *desc
, SAMR_R_ENUM_DOM_ALIASES
*r_u
, prs_struct
*ps
, int depth
);
1417 void samr_io_q_query_dispinfo(char *desc
, SAMR_Q_QUERY_DISPINFO
*q_e
, prs_struct
*ps
, int depth
);
1418 void make_sam_info_2(SAM_INFO_2
*sam
, uint32 acb_mask
,
1419 uint32 start_idx
, uint32 num_sam_entries
,
1420 SAM_USER_INFO_21 pass
[MAX_SAM_ENTRIES
]);
1421 void make_sam_info_1(SAM_INFO_1
*sam
, uint32 acb_mask
,
1422 uint32 start_idx
, uint32 num_sam_entries
,
1423 SAM_USER_INFO_21 pass
[MAX_SAM_ENTRIES
]);
1424 void make_samr_r_query_dispinfo(SAMR_R_QUERY_DISPINFO
*r_u
,
1425 uint16 switch_level
, SAM_INFO_CTR
*ctr
, uint32 status
);
1426 void samr_io_r_query_dispinfo(char *desc
, SAMR_R_QUERY_DISPINFO
*r_u
, prs_struct
*ps
, int depth
);
1427 void samr_io_q_enum_dom_groups(char *desc
, SAMR_Q_ENUM_DOM_GROUPS
*q_e
, prs_struct
*ps
, int depth
);
1428 void make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS
*r_u
,
1429 uint32 start_idx
, uint32 num_sam_entries
,
1430 SAM_USER_INFO_21 pass
[MAX_SAM_ENTRIES
],
1432 void samr_io_r_enum_dom_groups(char *desc
, SAMR_R_ENUM_DOM_GROUPS
*r_u
, prs_struct
*ps
, int depth
);
1433 void samr_io_q_query_aliasinfo(char *desc
, SAMR_Q_QUERY_ALIASINFO
*q_e
, prs_struct
*ps
, int depth
);
1434 void make_samr_r_query_aliasinfo(SAMR_R_QUERY_ALIASINFO
*r_u
,
1435 uint16 switch_value
, char *acct_desc
,
1437 void samr_io_r_query_aliasinfo(char *desc
, SAMR_R_QUERY_ALIASINFO
*r_u
, prs_struct
*ps
, int depth
);
1438 void samr_io_q_lookup_ids(char *desc
, SAMR_Q_LOOKUP_IDS
*q_u
, prs_struct
*ps
, int depth
);
1439 void make_samr_r_lookup_ids(SAMR_R_LOOKUP_IDS
*r_u
,
1440 uint32 num_rids
, uint32
*rid
, uint32 status
);
1441 void samr_io_r_lookup_ids(char *desc
, SAMR_R_LOOKUP_IDS
*r_u
, prs_struct
*ps
, int depth
);
1442 void samr_io_q_lookup_names(char *desc
, SAMR_Q_LOOKUP_NAMES
*q_u
, prs_struct
*ps
, int depth
);
1443 void make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES
*r_u
,
1444 uint32 num_rids
, uint32
*rid
, uint32 status
);
1445 void samr_io_r_lookup_names(char *desc
, SAMR_R_LOOKUP_NAMES
*r_u
, prs_struct
*ps
, int depth
);
1446 void samr_io_q_unknown_12(char *desc
, SAMR_Q_UNKNOWN_12
*q_u
, prs_struct
*ps
, int depth
);
1447 void make_samr_r_unknown_12(SAMR_R_UNKNOWN_12
*r_u
,
1448 uint32 num_aliases
, fstring
*als_name
, uint32
*num_als_usrs
,
1450 void samr_io_r_unknown_12(char *desc
, SAMR_R_UNKNOWN_12
*r_u
, prs_struct
*ps
, int depth
);
1451 void samr_io_q_open_user(char *desc
, SAMR_Q_OPEN_USER
*q_u
, prs_struct
*ps
, int depth
);
1452 void samr_io_r_open_user(char *desc
, SAMR_R_OPEN_USER
*r_u
, prs_struct
*ps
, int depth
);
1453 void samr_io_q_query_usergroups(char *desc
, SAMR_Q_QUERY_USERGROUPS
*q_u
, prs_struct
*ps
, int depth
);
1454 void make_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS
*r_u
,
1455 uint32 num_gids
, DOM_GID
*gid
, uint32 status
);
1456 void samr_io_r_query_usergroups(char *desc
, SAMR_R_QUERY_USERGROUPS
*r_u
, prs_struct
*ps
, int depth
);
1457 void samr_io_q_query_userinfo(char *desc
, SAMR_Q_QUERY_USERINFO
*q_u
, prs_struct
*ps
, int depth
);
1458 void make_sam_user_info21(SAM_USER_INFO_21
*usr
,
1461 NTTIME
*logoff_time
,
1462 NTTIME
*kickoff_time
,
1463 NTTIME
*pass_last_set_time
,
1464 NTTIME
*pass_can_change_time
,
1465 NTTIME
*pass_must_change_time
,
1487 void make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO
*r_u
,
1488 uint16 switch_value
, void *info
, uint32 status
);
1489 void samr_io_r_query_userinfo(char *desc
, SAMR_R_QUERY_USERINFO
*r_u
, prs_struct
*ps
, int depth
);
1490 void samr_io_q_unknown_32(char *desc
, SAMR_Q_UNKNOWN_32
*q_u
, prs_struct
*ps
, int depth
);
1491 void samr_io_r_unknown_32(char *desc
, SAMR_R_UNKNOWN_32
*r_u
, prs_struct
*ps
, int depth
);
1492 void samr_io_q_connect(char *desc
, SAMR_Q_CONNECT
*q_u
, prs_struct
*ps
, int depth
);
1493 void samr_io_r_connect(char *desc
, SAMR_R_CONNECT
*r_u
, prs_struct
*ps
, int depth
);
1494 void samr_io_q_open_alias(char *desc
, SAMR_Q_OPEN_ALIAS
*q_u
, prs_struct
*ps
, int depth
);
1495 void samr_io_r_open_alias(char *desc
, SAMR_R_OPEN_ALIAS
*r_u
, prs_struct
*ps
, int depth
);
1497 /*The following definitions come from rpc_parse/parse_srv.c */
1499 void make_srv_share_info1_str(SH_INFO_1_STR
*sh1
, char *net_name
, char *remark
);
1500 void make_srv_share_info1(SH_INFO_1
*sh1
, char *net_name
, uint32 type
, char *remark
);
1501 void make_srv_share_info2_str(SH_INFO_2_STR
*sh2
,
1502 char *net_name
, char *remark
,
1503 char *path
, char *passwd
);
1504 void make_srv_share_info2(SH_INFO_2
*sh2
,
1505 char *net_name
, uint32 type
, char *remark
,
1506 uint32 perms
, uint32 max_uses
, uint32 num_uses
,
1507 char *path
, char *passwd
);
1508 void srv_io_q_net_share_enum(char *desc
, SRV_Q_NET_SHARE_ENUM
*q_n
, prs_struct
*ps
, int depth
);
1509 void srv_io_r_net_share_enum(char *desc
, SRV_R_NET_SHARE_ENUM
*r_n
, prs_struct
*ps
, int depth
);
1510 void make_srv_sess_info0_str(SESS_INFO_0_STR
*ss0
, char *name
);
1511 void make_srv_sess_info0(SESS_INFO_0
*ss0
, char *name
);
1512 void make_srv_sess_info1_str(SESS_INFO_1_STR
*ss1
, char *name
, char *user
);
1513 void make_srv_sess_info1(SESS_INFO_1
*ss1
,
1514 char *name
, char *user
,
1515 uint32 num_opens
, uint32 open_time
, uint32 idle_time
,
1517 void srv_io_q_net_sess_enum(char *desc
, SRV_Q_NET_SESS_ENUM
*q_n
, prs_struct
*ps
, int depth
);
1518 void srv_io_r_net_sess_enum(char *desc
, SRV_R_NET_SESS_ENUM
*r_n
, prs_struct
*ps
, int depth
);
1519 void make_srv_conn_info0(CONN_INFO_0
*ss0
, uint32 id
);
1520 void make_srv_conn_info1_str(CONN_INFO_1_STR
*ss1
, char *usr_name
, char *net_name
);
1521 void make_srv_conn_info1(CONN_INFO_1
*ss1
,
1522 uint32 id
, uint32 type
,
1523 uint32 num_opens
, uint32 num_users
, uint32 open_time
,
1524 char *usr_name
, char *net_name
);
1525 void srv_io_q_net_conn_enum(char *desc
, SRV_Q_NET_CONN_ENUM
*q_n
, prs_struct
*ps
, int depth
);
1526 void srv_io_r_net_conn_enum(char *desc
, SRV_R_NET_CONN_ENUM
*r_n
, prs_struct
*ps
, int depth
);
1527 void make_srv_file_info3_str(FILE_INFO_3_STR
*fi3
, char *user_name
, char *path_name
);
1528 void make_srv_file_info3(FILE_INFO_3
*fl3
,
1529 uint32 id
, uint32 perms
, uint32 num_locks
,
1530 char *path_name
, char *user_name
);
1531 void srv_io_q_net_file_enum(char *desc
, SRV_Q_NET_FILE_ENUM
*q_n
, prs_struct
*ps
, int depth
);
1532 void srv_io_r_net_file_enum(char *desc
, SRV_R_NET_FILE_ENUM
*r_n
, prs_struct
*ps
, int depth
);
1533 void make_srv_info_101(SRV_INFO_101
*sv101
, uint32 platform_id
, char *name
,
1534 uint32 ver_major
, uint32 ver_minor
,
1535 uint32 srv_type
, char *comment
);
1536 void make_srv_info_102(SRV_INFO_102
*sv102
, uint32 platform_id
, char *name
,
1537 char *comment
, uint32 ver_major
, uint32 ver_minor
,
1538 uint32 srv_type
, uint32 users
, uint32 disc
, uint32 hidden
,
1539 uint32 announce
, uint32 ann_delta
, uint32 licenses
,
1541 void srv_io_q_net_srv_get_info(char *desc
, SRV_Q_NET_SRV_GET_INFO
*q_n
, prs_struct
*ps
, int depth
);
1542 void make_srv_r_net_srv_get_info(SRV_R_NET_SRV_GET_INFO
*srv
,
1543 uint32 switch_value
, SRV_INFO_CTR
*ctr
, uint32 status
);
1544 void srv_io_r_net_srv_get_info(char *desc
, SRV_R_NET_SRV_GET_INFO
*r_n
, prs_struct
*ps
, int depth
);
1545 void srv_io_q_net_remote_tod(char *desc
, SRV_Q_NET_REMOTE_TOD
*q_n
, prs_struct
*ps
, int depth
);
1546 void make_time_of_day_info(TIME_OF_DAY_INFO
*tod
, uint32 elapsedt
, uint32 msecs
,
1547 uint32 hours
, uint32 mins
, uint32 secs
, uint32 hunds
,
1548 uint32 zone
, uint32 tintervals
, uint32 day
,
1549 uint32 month
, uint32 year
, uint32 weekday
);
1550 void srv_io_r_net_remote_tod(char *desc
, SRV_R_NET_REMOTE_TOD
*r_n
, prs_struct
*ps
, int depth
);
1552 /*The following definitions come from rpc_parse/parse_wks.c */
1554 void wks_io_q_query_info(char *desc
, WKS_Q_QUERY_INFO
*q_u
, prs_struct
*ps
, int depth
);
1555 void make_wks_info_100(WKS_INFO_100
*inf
,
1556 uint32 platform_id
, uint32 ver_major
, uint32 ver_minor
,
1557 char *my_name
, char *domain_name
);
1558 void make_wks_r_query_info(WKS_R_QUERY_INFO
*r_u
,
1559 uint32 switch_value
, WKS_INFO_100
*wks100
,
1561 void wks_io_r_query_info(char *desc
, WKS_R_QUERY_INFO
*r_u
, prs_struct
*ps
, int depth
);
1563 /*The following definitions come from rpc_server/srv_ldap_helpers.c */
1565 void ldap_helper_dummy(void);
1567 /*The following definitions come from rpc_server/srv_lsa.c */
1569 BOOL
api_ntlsa_rpc(pipes_struct
*p
, prs_struct
*data
);
1571 /*The following definitions come from rpc_server/srv_lsa_hnd.c */
1573 void init_lsa_policy_hnd(void);
1574 BOOL
open_lsa_policy_hnd(POLICY_HND
*hnd
);
1575 int find_lsa_policy_by_hnd(POLICY_HND
*hnd
);
1576 BOOL
set_lsa_policy_samr_rid(POLICY_HND
*hnd
, uint32 rid
);
1577 BOOL
set_lsa_policy_samr_pol_status(POLICY_HND
*hnd
, uint32 pol_status
);
1578 BOOL
set_lsa_policy_samr_sid(POLICY_HND
*hnd
, DOM_SID
*sid
);
1579 uint32
get_lsa_policy_samr_rid(POLICY_HND
*hnd
);
1580 BOOL
set_lsa_policy_reg_name(POLICY_HND
*hnd
, fstring name
);
1581 BOOL
close_lsa_policy_hnd(POLICY_HND
*hnd
);
1583 /*The following definitions come from rpc_server/srv_netlog.c */
1585 BOOL
api_netlog_rpc(pipes_struct
*p
, prs_struct
*data
);
1587 /*The following definitions come from rpc_server/srv_pipe_hnd.c */
1589 void reset_chain_p(void);
1590 void init_rpc_pipe_hnd(void);
1591 pipes_struct
*open_rpc_pipe_p(char *pipe_name
,
1592 connection_struct
*conn
, uint16 vuid
);
1593 int read_pipe(pipes_struct
*p
, char *data
, uint32 pos
, int n
);
1594 BOOL
set_rpc_pipe_hnd_state(pipes_struct
*p
, uint16 device_state
);
1595 BOOL
close_rpc_pipe_hnd(pipes_struct
*p
, connection_struct
*conn
);
1596 pipes_struct
*get_rpc_pipe_p(char *buf
, int where
);
1597 pipes_struct
*get_rpc_pipe(int pnum
);
1599 /*The following definitions come from rpc_server/srv_reg.c */
1601 BOOL
api_reg_rpc(pipes_struct
*p
, prs_struct
*data
);
1603 /*The following definitions come from rpc_server/srv_samr.c */
1605 BOOL
api_samr_rpc(pipes_struct
*p
, prs_struct
*data
);
1607 /*The following definitions come from rpc_server/srv_srvsvc.c */
1609 BOOL
api_srvsvc_rpc(pipes_struct
*p
, prs_struct
*data
);
1611 /*The following definitions come from rpc_server/srv_util.c */
1613 int make_dom_gids(char *gids_str
, DOM_GID
**ppgids
);
1614 BOOL
create_rpc_reply(pipes_struct
*p
,
1615 uint32 data_start
, uint32 data_end
);
1616 BOOL
api_rpcTNP(pipes_struct
*p
, char *rpc_name
, struct api_struct
*api_rpc_cmds
,
1618 void get_domain_user_groups(char *domain_groups
, char *user
);
1619 uint32
lookup_group_name(uint32 rid
, char *group_name
, uint32
*type
);
1620 uint32
lookup_alias_name(uint32 rid
, char *alias_name
, uint32
*type
);
1621 uint32
lookup_user_name(uint32 rid
, char *user_name
, uint32
*type
);
1622 uint32
lookup_group_rid(char *group_name
, uint32
*rid
);
1623 uint32
lookup_alias_rid(char *alias_name
, uint32
*rid
);
1624 uint32
lookup_user_rid(char *user_name
, uint32
*rid
);
1626 /*The following definitions come from rpc_server/srv_wkssvc.c */
1628 BOOL
api_wkssvc_rpc(pipes_struct
*p
, prs_struct
*data
);
1630 /*The following definitions come from smbd/blocking.c */
1632 BOOL
push_blocking_lock_request( char *inbuf
, int length
, int lock_timeout
, int lock_num
);
1633 void remove_pending_lock_requests_by_fid(files_struct
*fsp
);
1634 void remove_pending_lock_requests_by_mid(int mid
);
1635 void process_blocking_lock_queue(time_t t
);
1637 /*The following definitions come from smbd/chgpasswd.c */
1639 BOOL
chgpasswd(char *name
,char *oldpass
,char *newpass
, BOOL as_root
);
1640 BOOL
chgpasswd(char *name
,char *oldpass
,char *newpass
, BOOL as_root
);
1641 BOOL
check_lanman_password(char *user
, unsigned char *pass1
,
1642 unsigned char *pass2
, struct smb_passwd
**psmbpw
);
1643 BOOL
change_lanman_password(struct smb_passwd
*smbpw
, unsigned char *pass1
, unsigned char *pass2
);
1644 BOOL
check_oem_password(char *user
, unsigned char *data
,
1645 struct smb_passwd
**psmbpw
, char *new_passwd
,
1646 int new_passwd_size
);
1647 BOOL
change_oem_password(struct smb_passwd
*smbpw
, char *new_passwd
, BOOL override
);
1649 /*The following definitions come from smbd/close.c */
1651 void close_file(files_struct
*fsp
, BOOL normal_close
);
1652 void close_directory(files_struct
*fsp
);
1654 /*The following definitions come from smbd/conn.c */
1656 void conn_init(void);
1657 int conn_num_open(void);
1658 BOOL
conn_snum_used(int snum
);
1659 connection_struct
*conn_find(int cnum
);
1660 connection_struct
*conn_new(void);
1661 void conn_close_all(void);
1662 BOOL
conn_idle_all(time_t t
, int deadtime
);
1663 void conn_free(connection_struct
*conn
);
1665 /*The following definitions come from smbd/connection.c */
1667 BOOL
yield_connection(connection_struct
*conn
,char *name
,int max_connections
);
1668 BOOL
claim_connection(connection_struct
*conn
,char *name
,int max_connections
,BOOL Clear
);
1670 /*The following definitions come from smbd/dfree.c */
1672 SMB_BIG_UINT
sys_disk_free(char *path
,SMB_BIG_UINT
*bsize
,SMB_BIG_UINT
*dfree
,SMB_BIG_UINT
*dsize
);
1674 /*The following definitions come from smbd/dir.c */
1676 void init_dptrs(void);
1677 char *dptr_path(int key
);
1678 char *dptr_wcard(int key
);
1679 BOOL
dptr_set_wcard(int key
, char *wcard
);
1680 BOOL
dptr_set_attr(int key
, uint16 attr
);
1681 uint16
dptr_attr(int key
);
1682 void dptr_close(int key
);
1683 void dptr_closecnum(connection_struct
*conn
);
1684 void dptr_idlecnum(connection_struct
*conn
);
1685 void dptr_closepath(char *path
,int pid
);
1686 int dptr_create(connection_struct
*conn
,char *path
, BOOL expect_close
,int pid
);
1687 BOOL
dptr_fill(char *buf1
,unsigned int key
);
1688 BOOL
dptr_zero(char *buf
);
1689 void *dptr_fetch(char *buf
,int *num
);
1690 void *dptr_fetch_lanman2(int dptr_num
);
1691 BOOL
dir_check_ftype(connection_struct
*conn
,int mode
,SMB_STRUCT_STAT
*st
,int dirtype
);
1692 BOOL
get_dir_entry(connection_struct
*conn
,char *mask
,int dirtype
,char *fname
,
1693 SMB_OFF_T
*size
,int *mode
,time_t *date
,BOOL check_descend
);
1694 void *OpenDir(connection_struct
*conn
, char *name
, BOOL use_veto
);
1695 void CloseDir(void *p
);
1696 char *ReadDirName(void *p
);
1697 BOOL
SeekDir(void *p
,int pos
);
1698 int TellDir(void *p
);
1699 void DirCacheAdd( char *path
, char *name
, char *dname
, int snum
);
1700 char *DirCacheCheck( char *path
, char *name
, int snum
);
1701 void DirCacheFlush(int snum
);
1703 /*The following definitions come from smbd/dosmode.c */
1705 mode_t
unix_mode(connection_struct
*conn
,int dosmode
);
1706 int dos_mode(connection_struct
*conn
,char *path
,SMB_STRUCT_STAT
*sbuf
);
1707 int file_chmod(connection_struct
*conn
,char *fname
,int dosmode
,SMB_STRUCT_STAT
*st
);
1708 int file_utime(connection_struct
*conn
, char *fname
, struct utimbuf
*times
);
1709 BOOL
set_filetime(connection_struct
*conn
, char *fname
, time_t mtime
);
1711 /*The following definitions come from smbd/error.c */
1713 int cached_error_packet(char *inbuf
,char *outbuf
,files_struct
*fsp
,int line
);
1714 int unix_error_packet(char *inbuf
,char *outbuf
,int def_class
,uint32 def_code
,int line
);
1715 int error_packet(char *inbuf
,char *outbuf
,int error_class
,uint32 error_code
,int line
);
1717 /*The following definitions come from smbd/fileio.c */
1719 SMB_OFF_T
seek_file(files_struct
*fsp
,SMB_OFF_T pos
);
1720 ssize_t
read_file(files_struct
*fsp
,char *data
,SMB_OFF_T pos
,size_t n
);
1721 ssize_t
write_file(files_struct
*fsp
,char *data
,size_t n
);
1722 void sync_file(connection_struct
*conn
, files_struct
*fsp
);
1724 /*The following definitions come from smbd/filename.c */
1726 void print_stat_cache_statistics(void);
1727 BOOL
unix_convert(char *name
,connection_struct
*conn
,char *saved_last_component
,
1728 BOOL
*bad_path
, SMB_STRUCT_STAT
*pst
);
1729 BOOL
check_name(char *name
,connection_struct
*conn
);
1731 /*The following definitions come from smbd/files.c */
1733 files_struct
*file_new(void );
1734 file_fd_struct
*fd_get_already_open(SMB_STRUCT_STAT
*sbuf
);
1735 file_fd_struct
*fd_get_new(void);
1736 void file_close_conn(connection_struct
*conn
);
1737 void file_init(void);
1738 void file_close_user(int vuid
);
1739 files_struct
*file_find_dit(SMB_DEV_T dev
, SMB_INO_T inode
, struct timeval
*tval
);
1740 files_struct
*file_find_print(void);
1741 void file_sync_all(connection_struct
*conn
);
1742 void fd_ptr_free(file_fd_struct
*fd_ptr
);
1743 void file_free(files_struct
*fsp
);
1744 files_struct
*file_fsp(char *buf
, int where
);
1745 void file_chain_reset(void);
1746 void file_chain_save(void);
1747 void file_chain_restore(void);
1749 /*The following definitions come from smbd/ipc.c */
1751 int reply_trans(connection_struct
*conn
, char *inbuf
,char *outbuf
, int size
, int bufsize
);
1753 /*The following definitions come from smbd/mangle.c */
1755 BOOL
is_mangled( char *s
);
1756 BOOL
is_8_3( char *fname
, BOOL check_case
);
1757 void reset_mangled_cache( void );
1758 BOOL
check_mangled_cache( char *s
);
1759 void mangle_name_83( char *s
);
1760 BOOL
name_map_mangle(char *OutName
, BOOL need83
, int snum
);
1762 /*The following definitions come from smbd/message.c */
1764 int reply_sends(connection_struct
*conn
,
1765 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1766 int reply_sendstrt(connection_struct
*conn
,
1767 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1768 int reply_sendtxt(connection_struct
*conn
,
1769 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1770 int reply_sendend(connection_struct
*conn
,
1771 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1773 /*The following definitions come from smbd/negprot.c */
1775 int reply_negprot(connection_struct
*conn
,
1776 char *inbuf
,char *outbuf
, int dum_size
,
1779 /*The following definitions come from smbd/nttrans.c */
1781 int reply_ntcreate_and_X(connection_struct
*conn
,
1782 char *inbuf
,char *outbuf
,int length
,int bufsize
);
1783 int reply_ntcancel(connection_struct
*conn
,
1784 char *inbuf
,char *outbuf
,int length
,int bufsize
);
1785 int reply_nttranss(connection_struct
*conn
,
1786 char *inbuf
,char *outbuf
,int length
,int bufsize
);
1787 void remove_pending_change_notify_requests_by_fid(files_struct
*fsp
);
1788 void process_pending_change_notify_queue(time_t t
);
1789 int reply_nttrans(connection_struct
*conn
,
1790 char *inbuf
,char *outbuf
,int length
,int bufsize
);
1792 /*The following definitions come from smbd/open.c */
1794 void fd_add_to_uid_cache(file_fd_struct
*fd_ptr
, uid_t u
);
1795 uint16
fd_attempt_close(file_fd_struct
*fd_ptr
);
1796 void open_file_shared(files_struct
*fsp
,connection_struct
*conn
,char *fname
,int share_mode
,int ofun
,
1797 mode_t mode
,int oplock_request
, int *Access
,int *action
);
1798 int open_directory(files_struct
*fsp
,connection_struct
*conn
,
1799 char *fname
, int smb_ofun
, mode_t unixmode
, int *action
);
1800 BOOL
check_file_sharing(connection_struct
*conn
,char *fname
, BOOL rename_op
);
1802 /*The following definitions come from smbd/oplock.c */
1804 BOOL
open_oplock_ipc(void);
1805 BOOL
process_local_message(int sock
, char *buffer
, int buf_size
);
1806 BOOL
request_oplock_break(share_mode_entry
*share_entry
,
1807 SMB_DEV_T dev
, SMB_INO_T inode
);
1808 BOOL
attempt_close_oplocked_file(files_struct
*fsp
);
1810 /*The following definitions come from smbd/password.c */
1812 void generate_next_challenge(char *challenge
);
1813 BOOL
set_challenge(char *challenge
);
1814 user_struct
*get_valid_user_struct(uint16 vuid
);
1815 void invalidate_vuid(uint16 vuid
);
1816 char *validated_username(uint16 vuid
);
1817 int setup_groups(char *user
, int uid
, int gid
, int *p_ngroups
, GID_T
**p_groups
);
1818 uint16
register_vuid(int uid
,int gid
, char *unix_name
, char *requested_name
, BOOL guest
);
1819 void add_session_user(char *user
);
1820 BOOL
smb_password_check(char *password
, unsigned char *part_passwd
, unsigned char *c8
);
1821 BOOL
smb_password_ok(struct smb_passwd
*smb_pass
,
1822 uchar lm_pass
[24], uchar nt_pass
[24]);
1823 BOOL
password_ok(char *user
,char *password
, int pwlen
, struct passwd
*pwd
);
1824 BOOL
user_ok(char *user
,int snum
);
1825 BOOL
authorise_login(int snum
,char *user
,char *password
, int pwlen
,
1826 BOOL
*guest
,BOOL
*force
,uint16 vuid
);
1827 BOOL
check_hosts_equiv(char *user
);
1828 struct cli_state
*server_client(void);
1829 struct cli_state
*server_cryptkey(void);
1830 BOOL
server_validate(char *user
, char *domain
,
1831 char *pass
, int passlen
,
1832 char *ntpass
, int ntpasslen
);
1833 BOOL
domain_client_validate( char *user
, char *domain
,
1834 char *smb_apasswd
, int smb_apasslen
,
1835 char *smb_ntpasswd
, int smb_ntpasslen
);
1837 /*The following definitions come from smbd/pipes.c */
1839 int reply_open_pipe_and_X(connection_struct
*conn
,
1840 char *inbuf
,char *outbuf
,int length
,int bufsize
);
1841 int reply_pipe_read_and_X(char *inbuf
,char *outbuf
,int length
,int bufsize
);
1842 int reply_pipe_close(connection_struct
*conn
, char *inbuf
,char *outbuf
);
1844 /*The following definitions come from smbd/predict.c */
1846 ssize_t
read_predict(int fd
,SMB_OFF_T offset
,char *buf
,char **ptr
,size_t num
);
1847 void do_read_prediction(void);
1848 void invalidate_read_prediction(int fd
);
1850 /*The following definitions come from smbd/process.c */
1852 BOOL
receive_next_smb(int smbfd
, int oplockfd
, char *inbuf
, int bufsize
, int timeout
);
1853 void process_smb(char *inbuf
, char *outbuf
);
1854 char *smb_fn_name(int type
);
1855 void construct_reply_common(char *inbuf
,char *outbuf
);
1856 int chain_reply(char *inbuf
,char *outbuf
,int size
,int bufsize
);
1857 void smbd_process(void);
1859 /*The following definitions come from smbd/quotas.c */
1861 BOOL
disk_quotas(char *path
, int *bsize
, int *dfree
, int *dsize
);
1862 BOOL
disk_quotas(char *path
, int *bsize
, int *dfree
, int *dsize
);
1863 BOOL
disk_quotas(char *path
, int *bsize
, int *dfree
, int *dsize
);
1864 BOOL
disk_quotas(char *path
, int *bsize
, int *dfree
, int *dsize
);
1865 BOOL
disk_quotas(char *path
, int *bsize
, int *dfree
, int *dsize
);
1866 BOOL
disk_quotas(char *path
, int *bsize
, int *dfree
, int *dsize
);
1868 /*The following definitions come from smbd/reply.c */
1870 int reply_special(char *inbuf
,char *outbuf
);
1871 int reply_tcon(connection_struct
*conn
,
1872 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1873 int reply_tcon_and_X(connection_struct
*conn
, char *inbuf
,char *outbuf
,int length
,int bufsize
);
1874 int reply_unknown(char *inbuf
,char *outbuf
);
1875 int reply_ioctl(connection_struct
*conn
,
1876 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1877 int reply_sesssetup_and_X(connection_struct
*conn
, char *inbuf
,char *outbuf
,int length
,int bufsize
);
1878 int reply_chkpth(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1879 int reply_getatr(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1880 int reply_setatr(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1881 int reply_dskattr(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1882 int reply_search(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1883 int reply_fclose(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1884 int reply_open(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1885 int reply_open_and_X(connection_struct
*conn
, char *inbuf
,char *outbuf
,int length
,int bufsize
);
1886 int reply_ulogoffX(connection_struct
*conn
, char *inbuf
,char *outbuf
,int length
,int bufsize
);
1887 int reply_mknew(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1888 int reply_ctemp(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1889 int reply_unlink(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1890 int reply_readbraw(connection_struct
*conn
, char *inbuf
, char *outbuf
, int dum_size
, int dum_buffsize
);
1891 int reply_lockread(connection_struct
*conn
, char *inbuf
,char *outbuf
, int length
, int dum_buffsiz
);
1892 int reply_read(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1893 int reply_read_and_X(connection_struct
*conn
, char *inbuf
,char *outbuf
,int length
,int bufsize
);
1894 int reply_writebraw(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1895 int reply_writeunlock(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1896 int reply_write(connection_struct
*conn
, char *inbuf
,char *outbuf
,int dum_size
,int dum_buffsize
);
1897 int reply_write_and_X(connection_struct
*conn
, char *inbuf
,char *outbuf
,int length
,int bufsize
);
1898 int reply_lseek(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1899 int reply_flush(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1900 int reply_exit(connection_struct
*conn
,
1901 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1902 int reply_close(connection_struct
*conn
,
1903 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1904 int reply_writeclose(connection_struct
*conn
,
1905 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1906 int reply_lock(connection_struct
*conn
,
1907 char *inbuf
,char *outbuf
, int length
, int dum_buffsize
);
1908 int reply_unlock(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1909 int reply_tdis(connection_struct
*conn
,
1910 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1911 int reply_echo(connection_struct
*conn
,
1912 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1913 int reply_printopen(connection_struct
*conn
,
1914 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1915 int reply_printclose(connection_struct
*conn
,
1916 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1917 int reply_printqueue(connection_struct
*conn
,
1918 char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1919 int reply_printwrite(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1920 int reply_mkdir(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1921 int reply_rmdir(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1922 int rename_internals(connection_struct
*conn
,
1923 char *inbuf
, char *outbuf
, char *name
,
1924 char *newname
, BOOL replace_if_exists
);
1925 int reply_mv(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1926 int reply_copy(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1927 int reply_setdir(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1928 int reply_lockingX(connection_struct
*conn
, char *inbuf
,char *outbuf
,int length
,int bufsize
);
1929 int reply_readbmpx(connection_struct
*conn
, char *inbuf
,char *outbuf
,int length
,int bufsize
);
1930 int reply_writebmpx(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1931 int reply_writebs(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1932 int reply_setattrE(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1933 int reply_getattrE(connection_struct
*conn
, char *inbuf
,char *outbuf
, int dum_size
, int dum_buffsize
);
1935 /*The following definitions come from smbd/server.c */
1937 BOOL
reload_services(BOOL test
);
1938 void exit_server(char *reason
);
1940 /*The following definitions come from smbd/service.c */
1942 BOOL
become_service(connection_struct
*conn
,BOOL do_chdir
);
1943 int find_service(char *service
);
1944 connection_struct
*make_connection(char *service
,char *user
,char *password
, int pwlen
, char *dev
,uint16 vuid
, int *ecode
);
1945 void close_cnum(connection_struct
*conn
, uint16 vuid
);
1947 /*The following definitions come from smbd/ssl.c */
1949 int sslutil_init(int isServer
);
1950 int sslutil_accept(int fd
);
1951 int sslutil_fd_is_ssl(int fd
);
1952 int sslutil_connect(int fd
);
1953 int sslutil_disconnect(int fd
);
1954 int sslutil_negotiate_ssl(int fd
, int msg_type
);
1956 /*The following definitions come from smbd/trans2.c */
1958 void mask_convert( char *mask
);
1959 int reply_findclose(connection_struct
*conn
,
1960 char *inbuf
,char *outbuf
,int length
,int bufsize
);
1961 int reply_findnclose(connection_struct
*conn
,
1962 char *inbuf
,char *outbuf
,int length
,int bufsize
);
1963 int reply_transs2(connection_struct
*conn
,
1964 char *inbuf
,char *outbuf
,int length
,int bufsize
);
1965 int reply_trans2(connection_struct
*conn
,
1966 char *inbuf
,char *outbuf
,int length
,int bufsize
);
1968 /*The following definitions come from smbd/uid.c */
1970 void init_uid(void);
1971 BOOL
become_guest(void);
1972 BOOL
become_user(connection_struct
*conn
, uint16 vuid
);
1973 BOOL
unbecome_user(void );
1974 void become_root(BOOL save_dir
) ;
1975 void unbecome_root(BOOL restore_dir
);
1977 /*The following definitions come from web/cgi.c */
1979 void cgi_load_variables(FILE *f1
);
1980 char *cgi_variable(char *name
);
1981 void cgi_setup(char *rootdir
, int auth_required
);
1982 char *cgi_baseurl(void);
1983 char *cgi_pathinfo(void);
1984 char *cgi_remote_host(void);
1985 char *cgi_remote_addr(void);
1986 BOOL
cgi_waspost(void);
1988 /*The following definitions come from web/diagnose.c */
1990 BOOL
nmbd_running(void);
1991 BOOL
smbd_running(void);
1993 /*The following definitions come from web/startstop.c */
1995 void start_smbd(void);
1996 void start_nmbd(void);
1997 void stop_smbd(void);
1998 void stop_nmbd(void);
1999 void kill_pid(int pid
);
2001 /*The following definitions come from web/statuspage.c */
2003 void status_page(void);
2005 /*The following definitions come from web/swat.c */
2007 int main(int argc
, char *argv
[]);
2008 #endif /* _PROTO_H_ */