⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftpd.h

📁 一个简单的运行在LINUX下的FTPServer,仅完成文件传输及目录操作等常见的功能
💻 H
字号:
/*      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__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -