|
/* Writen by Pacific, 2000/11/23 Support command: 214 The following commands are recognized (* =>'s unimplemented). 214 USER PASS ACCT* CWD XCWD CDUP XCUP SMNT* 214 QUIT REIN* PORT PASV TYPE STRU* MODE* RETR 214 STOR STOU* APPE ALLO* REST RNFR RNTO ABOR 214 DELE MDTM RMD XRMD MKD XMKD PWD XPWD 214 SIZE LIST NLST SITE SYST STAT HELP NOOP 214 Direct comments to nolove@263.net */ #ifndef __FTPD_H__ #define __FTPD_H__ #define _XOPEN_SOURCE #include <shadow.h> #include <unistd.h> #include <crypt.h> #include <pwd.h> #include <time.h> #include <sys/wait.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/ioctl.h> #include <utime.h> #include <stdlib.h> #include <signal.h> #include <ctype.h> #include <malloc.h> #include <sys/file.h> #include <errno.h> #include <stdarg.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/socket.h> #include <netdb.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <sys/types.h> #define BUFSIZE (1024) #define ERRS(x) outs("550 %s: " x, param) //buffer and string char inbuf[BUFSIZE]; char genbuf[BUFSIZE]; char hostname[BUFSIZE]; char path[PATH_MAX]; char rename_file[PATH_MAX]; char username[100]; char basedir[PATH_MAX]; //system arguments unsigned int ftp_port = 21; unsigned int max_conn = 65535; unsigned int timeout = 300; unsigned int file_rest = 0; unsigned int timeout = 300; unsigned int file_rest = 0; char transfer_type='i'; int system_uid; //boolean int user_valid = 0; int input_user = 0; int anonymous_login = 0; int pasv_mode = 0; int transfer = 0; int listenfd; int connfd; int pasvfd; FILE *file; int data_pid = 0; FILE *data_file; #define NO_CHECK 1 #define NEED_PARAM 2 #define NO_PARAM 4 #define CHECK_LOGIN 8 #define CHECK_NOLOGIN 16 #define NO_TRANSFER 32 struct _cmd_list { char *cmd; void (*func)(char *param); int check; }; struct _port { uint32_t host; uint16_t port; } remote_port, local_port; int port_base = 3072; #endif //__FTPD_H__ |