proto.h
上传用户:zibowangxu
上传日期:2007-01-04
资源大小:331k
文件大小:7k
源码类别:

Ftp客户端

开发平台:

Unix_Linux

  1. /****************************************************************************    
  2.   Copyright (c) 1999 WU-FTPD Development Group.  
  3.   All rights reserved.
  4.    
  5.   Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994  
  6.     The Regents of the University of California. 
  7.   Portions Copyright (c) 1993, 1994 Washington University in Saint Louis.  
  8.   Portions Copyright (c) 1996, 1998 Berkeley Software Design, Inc.  
  9.   Portions Copyright (c) 1989 Massachusetts Institute of Technology.  
  10.   Portions Copyright (c) 1998 Sendmail, Inc.  
  11.   Portions Copyright (c) 1983, 1995, 1996, 1997 Eric P.  Allman.  
  12.   Portions Copyright (c) 1997 by Stan Barber.  
  13.   Portions Copyright (c) 1997 by Kent Landfield.  
  14.   Portions Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997  
  15.     Free Software Foundation, Inc.    
  16.    
  17.   Use and distribution of this software and its source code are governed   
  18.   by the terms and conditions of the WU-FTPD Software License ("LICENSE").  
  19.    
  20.   If you did not receive a copy of the license, it may be obtained online  
  21.   at http://www.wu-ftpd.org/license.html.  
  22.    
  23.   $Id: proto.h,v 1.9 1999/09/27 18:37:15 wuftpd Exp $  
  24.    
  25. ****************************************************************************/
  26. #include <sys/types.h>
  27. #include <sys/stat.h>
  28. #include <ctype.h>
  29. #include <stdio.h>
  30. #include <stdlib.h>
  31. #include <signal.h>
  32. #include <pwd.h>
  33. #include <grp.h>
  34. #include <setjmp.h>
  35. #include <netdb.h>
  36. #include <errno.h>
  37. #include <string.h>
  38. #include <stdarg.h>
  39. /*
  40.    ** access.c
  41.  */
  42. int parsetime(char *);
  43. int validtime(char *);
  44. int hostmatch(char *, char *, char *);
  45. int acl_guestgroup(struct passwd *);
  46. int acl_realgroup(struct passwd *);
  47. void acl_autogroup(struct passwd *);
  48. void acl_setfunctions(void);
  49. int acl_getclass(char *);
  50. int acl_getlimit(char *, char *);
  51. int acl_getnice(char *);
  52. void acl_getdefumask(char *);
  53. void acl_tcpwindow(char *);
  54. void acl_filelimit(char *);
  55. void acl_datalimit(char *);
  56. int acl_deny(char *);
  57. int acl_countusers(char *);
  58. void acl_join(char *);
  59. void acl_remove(void);
  60. void pr_mesg(int, char *);
  61. void access_init(void);
  62. int access_ok(int);
  63. /*
  64.    ** acl.c
  65.  */
  66. struct aclmember *getaclentry(char *, struct aclmember **);
  67. void parseacl(void);
  68. int readacl(char *);
  69. /*
  70.    ** auth.c
  71.  */
  72. #ifdef  BSD_AUTH
  73. char *start_auth(char *, char *, struct passwd *);
  74. #endif
  75. char *check_auth(char *, char *);
  76. /*
  77.    ** authenticate.c
  78.  */
  79. int wu_authenticate(void);
  80. /*
  81.    ** conversions.c
  82.  */
  83. void conv_init(void);
  84. /*
  85.    ** extensions.c
  86.  */
  87. int check_newer(char *, struct stat *, int);
  88. long getSize(char *);
  89. void msg_massage(const char *, char *, size_t);
  90. int cwd_beenhere(int);
  91. void show_banner(int);
  92. void show_message(int, int);
  93. void show_readme(int, int);
  94. int deny_badasciixfer(int, char *);
  95. int is_shutdown(int, int);
  96. void newer(char *date, char *path, int showlots);
  97. int type_match(char *typelist);
  98. int path_compare(char *p1, char *p2);
  99. void expand_id(void);
  100. int fn_check(char *name);
  101. int dir_check(char *name, uid_t * uid, gid_t * gid, int *d_mode, int *valid);
  102. int upl_check(char *name, uid_t * uid, gid_t * gid, int *f_mode, int *valid);
  103. int del_check(char *name);
  104. int regexmatch(char *name, char *rgexp);
  105. int checknoretrieve(char *name);
  106. int path_to_device(char *pathname, char *result);
  107. void get_quota(char *fs, int uid);
  108. char *time_quota(long curstate, long softlimit, long timelimit, char *timeleft);
  109. void fmttime(char *buf, register long time);
  110. int file_compare(char *patterns, char *file);
  111. int remote_compare(char *patterns);
  112. void throughput_calc(char *name, int *bps, double *bpsmult);
  113. void throughput_adjust(char *name);
  114. void SetCheckMethod(const char *method);
  115. void ShowCheckMethod(void);
  116. void CheckSum(char *pathname);
  117. void CheckSumLastFile(void);
  118. /*
  119.    ** ftpcmd.c
  120.  */
  121. char *wu_getline(char *s, int n, register FILE *iop);
  122. int yyparse(void);
  123. void upper(char *s);
  124. char *copy(char *s);
  125. void sizecmd(char *filename);
  126. void site_exec(char *cmd);
  127. void alias(char *s);
  128. void cdpath(void);
  129. void print_groups(void);
  130. /*
  131.    ** ftpd.c
  132.  */
  133. SIGNAL_TYPE randomsig(int sig);
  134. SIGNAL_TYPE lostconn(int sig);
  135. char *mapping_getwd(char *path);
  136. void do_elem(char *dir);
  137. int mapping_chdir(char *orig_path);
  138. char *sgetsave(char *s);
  139. struct passwd *sgetpwnam(char *name);
  140. char *skey_challenge(char *name, struct passwd *pwd, int pwok);
  141. void user(char *name);
  142. int checkuser(char *name);
  143. int denieduid(uid_t uid);
  144. int alloweduid(uid_t uid);
  145. int deniedgid(gid_t gid);
  146. int allowedgid(gid_t gid);
  147. void end_login(void);
  148. int validate_eaddr(char *eaddr);
  149. void pass(char *passwd);
  150. int restricteduid(uid_t uid);
  151. int unrestricteduid(uid_t uid);
  152. int restrictedgid(gid_t gid);
  153. int unrestrictedgid(gid_t gid);
  154. char *opt_string(int options);
  155. void retrieve(char *cmd, char *name);
  156. void store(char *name, char *mode, int unique);
  157. FILE *getdatasock(char *mode);
  158. FILE *dataconn(char *name, off_t size, char *mode);
  159. #ifdef THROUGHPUT
  160. int send_data(char *name, FILE *instr, FILE *outstr, off_t blksize);
  161. #else
  162. int send_data(FILE *instr, FILE *outstr, off_t blksize);
  163. #endif
  164. int receive_data(FILE *instr, FILE *outstr);
  165. void statfilecmd(char *filename);
  166. void statcmd(void);
  167. void fatal(char *s);
  168. void vreply(long flags, int n, char *fmt, va_list ap);
  169. void reply(int, char *fmt,...);
  170. void lreply(int, char *fmt,...);
  171. void ack(char *s);
  172. void nack(char *s);
  173. void yyerror(char *s);
  174. void delete(char *name);
  175. void cwd(char *path);
  176. void makedir(char *name);
  177. void removedir(char *name);
  178. void pwd(void);
  179. char *renamefrom(char *name);
  180. void renamecmd(char *from, char *to);
  181. void dologout(int status);
  182. SIGNAL_TYPE myoob(int sig);
  183. void passive(void);
  184. char *gunique(char *local);
  185. void perror_reply(int code, char *string);
  186. void send_file_list(char *whichfiles);
  187. void initsetproctitle(int argc, char **argv, char **envp);
  188. void setproctitle(const char *fmt,...);
  189. void init_krb(void);
  190. void end_krb(void);
  191. void do_daemon(int argc, char **argv, char **envp);
  192. #ifdef INTERNAL_LS
  193. char *rpad(char *s, unsigned int len);
  194. char *ls_file(const char *file, int nameonly, char remove_path, char classify);
  195. void ls_dir(char *d, char ls_a, char ls_F, char ls_l, char ls_R, char omit_total, FILE *out);
  196. void ls(char *file, char nlst);
  197. #endif
  198. void fixpath(char *path);
  199. /*
  200.    ** glob.c
  201.  */
  202. void blkfree(char **);
  203. char **ftpglob(register char *);
  204. /*
  205.    ** hostacc.c
  206.  */
  207. int rhost_ok(char *pcRuser, char *pcRhost, char *pcRaddr);
  208. /*
  209.    ** loadavg.c
  210.  */
  211. /*
  212.    ** logwtmp.c
  213.  */
  214. void wu_logwtmp(char *line, char *name, char *host, int login);
  215. /*
  216.    ** paths.c
  217.  */
  218. void setup_paths(void);
  219. /*
  220.    ** popen.c
  221.  */
  222. FILE *ftpd_popen(char *program, char *type, int closestderr);
  223. int ftpd_pclose(FILE *iop);
  224. /*
  225.    ** private.c
  226.  */
  227. #ifndef NO_PRIVATE
  228. void parsepriv(void);
  229. void priv_setup(char *path);
  230. void priv_group(char *group);
  231. void priv_gpass(char *gpass);
  232. #endif
  233. /*
  234.    ** rdservers.c
  235.  */
  236. /*
  237.    ** realpath.c
  238.  */
  239. char *fb_realpath(const char *path, char *resolved);
  240. char *wu_realpath(const char *path, char *resolved_path, char *chroot_path);
  241. /*
  242.    ** restrict.c
  243.  */
  244. int restrict_check(char *name);
  245. int test_restriction(char *name);
  246. int restrict_list_check(char *name);
  247. /*
  248.    ** routevector.c
  249.  */
  250. int routevector(void);
  251. void checkports(void);
  252. /*
  253.    ** sigfix.c
  254.  */
  255. int enable_signaling(void);
  256. int delay_signaling(void);
  257. /*
  258.    ** timeout.c
  259.  */
  260. void load_timeouts(void);
  261. /*
  262.    ** support/getusershell.c
  263.  */
  264. char *getusershell(void);
  265. void endusershell(void);
  266. /*
  267.    ** support/strcasestr.c
  268.  */
  269. char *strcasestr(register char *s, register char *find);