?? public.h
字號:
#ifndef __FTP_PUBLIC_H__
#define __FTP_PUBLIC_H__
#define MAX_BUF_SIZE 1024
#define MIN_BUF_SIZE 128
#define FIL_BUF_SIZE 512
#include <pwd.h>
#include <sys/ipc.h>
#define FTP_DATACONN "150 Here comes the derectory listing!\r\n"
#define FTP_NOOPOK "200 NOOP OK\r\n"
#define FTP_PORTOK "200 Port Command successfully\r\n"
#define FTP_EPRTOK "200"
#define FTP_UMASKOK "200"
#define FTP_CHMODOK "200"
#define FTP_EPSVALLOK "200"
#define FTP_STRUOK "200"
#define FTP_MODEOK "200"
#define FTP_PBSZOK "200"
#define FTP_PROTOK "200"
#define FTP_ALLOOK "202"
#define FTP_FEAT "211"
#define FTP_STATOK "211 End of status.\r\n"
#define FTP_MDTMOK "213"
#define FTP_STATFILE_OK "213"
#define FTP_SITEHELP "214"
#define FTP_HELP "214 All implement Command\r\n"
#define FTP_SYSTOK "215 Unix Type L8!\r\n"
#define FTP_GREET "220 Connect Successfully!\r\n"
#define FTP_REINOK "220 Services ready for new user\r\n"
#define FTP_GOODBYE "221 GoodBye!\r\n"
#define FTP_ABOR_NOCONN "225 Not file on trans\r\n"
#define FTP_TRANSFEROK "226 File send OK\r\n"
#define FTP_ABOROK "226 About successfully!\r\n"
#define FTP_EPSVOK "229"
#define FTP_LOGINOK "230 Login Successfully!\r\n"
#define FTP_AUTHOK "234"
#define FTP_CWDOK "250 Directory successfully changed\r\n"
#define FTP_RMDIROK "250 Delete directory successfully!\r\n"
#define FTP_DELEOK "250 Delete file successfully!\r\n"
#define FTP_RENAMEOK "250 Rename successfully!\r\n"
#define FTP_PWDOK "257"
#define FTP_MKDIROK "257 Make directory successfully!\r\n"
#define FTP_GIVEPWORD "331 User's name OK, next checking password!\r\n"
#define FTP_RESTOK "350 Rest is successfully!\r\n"
#define FTP_RNFROK "350 Ready for RNTO!\r\n"
#define FTP_IDLE_TIMEOUT "421"
#define FTP_DATA_TIMEOUT "421"
#define FTP_TOO_MANY_USERS "421"
#define FTP_IP_LIMIT "421"
#define FTP_IP_DENY "421"
#define FTP_TLS_FAIL "421"
#define FTP_BADSENDCONN "425"
#define FTP_BADSENDNET "426 Trans abort!\r\n"
#define FTP_BADSENDFILE "451"
#define FTP_BADCMD "500 Undnown Command!\r\n"
#define FTP_BADOPTS "501"
#define FTP_COMMANDNOTIMPL "502 Ftp Command Not Implement\r\n"
#define FTP_NEEDUSER "503 You must USER first\r\n"
#define FTP_NEEDRNFR "503 You must RNFR first!\r\n"
#define FTP_BADPBSZ "503"
#define FTP_BADPROT "503"
#define FTP_BADSTRU "504"
#define FTP_BADMODE "504"
#define FTP_BADAUTH "504"
#define FTP_NOSUCHPROT "504"
#define FTP_NEEDENCRYPT "521"
#define FTP_EPSVBAD "522"
#define FTP_DATATLSBAD "522"
#define FTP_LOGINERR "530 Login Fail!\r\n"
#define FTP_NOHANDLEPROT "536"
#define FTP_RMDIRFAIL "550 Remove directory fail!\r\n"
#define FTP_FILEFAIL "550 Change dir error Fail!\r\n"
#define FTP_DELEFAIL "550 Delete fail fail!\r\n"
#define FTP_MKDIRFAIL "550 Make directory fail!\r\n"
#define FTP_NOPERM "550 Failed to change directory\r\n"
#define FTP_RENAMEFAIL "550 rename fail!\r\n"
#define FTP_UPLOADFAIL "553 Upload fail!\r\n"
struct state_struct
{
int upFiles;
int downFiles;
long upTraffic;
long downTraffic;
};
union semun
{
int val;
struct semid_ds *buf;
unsigned short *array;
};
/* 登入狀態 */
typedef struct loginstat_struct
{
int s;
int Socket;
int sSocket;
char uname[MAX_BUF_SIZE];
char upass[MAX_BUF_SIZE];
char dir[MAX_BUF_SIZE];
char homeDir[MAX_BUF_SIZE];
char type[MIN_BUF_SIZE];
char ip[MIN_BUF_SIZE];
char oFile[MAX_BUF_SIZE];
int port;
int isLogin;
int needParam;
long offset;
int mode;
int upFiles;
int downFiles;
long upTraffic;
long downTraffic;
int anologin;
int anoupload;
int anodwload;
int MAX_UP;
int MAX_DW;
int MAX_TIME;
} LoginState;
extern int shmkey;
extern int semkey;
extern struct loginstat_struct State;
extern void *sMemory;
extern struct state_struct *ftpState;
extern int sid;
/* 返回類型 */
enum LOGIN {USER_EMPTY, PWD_EMPTY, NO_THIS_USER, GET_PASSWORD_FAIL, PASSWORD_ERROR, USER_OK,PASS_OK};
/* 驗證用戶 */
int Login(char *user, char *pwd, struct passwd *userInfo);
/* 寫入數據 */
int Read(int fd, char *buf, int size);
/* 讀取數據 */
int Write(int fd, char *buf, int size);
/* 去除換行和回車 */
void rmlncr(char *str);
/* 得到命令 */
int GetCommand(char **buf, char **cmd);
/* 得到當前路徑 */
int GetHomeDir(char *user, char *path);
/* 去除換行和回車 */
void Rmlfcr(char *str);
/* 得到ip和端口 */
int GetIpPort(char *text, char *ip, int *port);
/* ip和端口 */
int PutIpPort(char *sIp, char *ip, int port);
/* 去除右空格 */
int RTrim(char *str);
/* 讀取配置文件 */
int GetConfig(char *flag, char *value);
/* 得到本地IP */
int GetLocalIp(char *ip);
/* 傳輸完畢 */
void TransOK(int i);
/* 得到共享內存 */
struct state_struct *GetFtpStateMomory(int *sid, int flag);
/* 讀取配置信息 */
int GetSysConfig();
/* 用戶 */
int GetUser(char *user, struct passwd **userInfo);
/* 字符串大寫 */
char *strupp(char *str);
/* 初始化信號量 */
int initSem();
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -