📄 myftp_session.h
字号:
#ifndef _MYFTP_SESSION_H
#define _MYFTP_SESSION_H
#include "public.h"
#include "mystr.h"
typedef struct myftp_sockaddr
{
union
{
struct sockaddr u_sockaddr;
struct sockaddr_in u_sockaddr_in;
}un;
}MYFTP_SOCKADDR,*pMYFTP_SOCKADDR;
typedef struct myftp_session
{
/*detail of the control connection */
MYFTP_SOCKADDR local_addr; //本机地址
MYFTP_SOCKADDR remote_addr; //客户端地址
int cntl_listen_fd; //监听套接字
int cmd_cntl_fd; //控制连接
fd_set read_fd; //客户连接超时套接字集
int is_port_or_pasv; //port、pasv模式标记
/*detail of the data connection*/
MYFTP_SOCKADDR data_sockaddr; //port模式时.
unsigned long rate_datatrans;
int port_data_fd; //port模式时的数据套接字
int pasv_listen_fd; //pasv模式时的监听套接字
int pasv_data_fd; //pasv模式时的数据连接套接字
//unsigned long send_start_sec;
//unsigned long send_start_usec;
char remote_data_ip_str[IPV4_LEN];
int remote_data_port;
int data_trans_child_pid;
/*detail of the file_trans */
unsigned long transfile_start_pos; //传输文件(支持端点续传)时指定的开始的位置(单位为字节)
unsigned int up_file_num; //上传的文件个数
unsigned int size_of_storfile; //上传的文件总大小
unsigned int size_of_retrfile; //下载的文件总大小
unsigned int down_file_num; //下载的文件数
char cur_file_name[256];
/*detail of login*/
int is_anonymous;
char user_str[USER_LEN];
char passwd_str[PASS_LEN];
char cur_dir[MAX_PATH];
char typemode[7];
struct passwd* cur_usr_pwd;
/*cmd and arg buffer*/
pMYSTR p_cmd_line;
/*other info*/
char old_path_rnfr[MAX_PATH]; //由客户端参数指定的文件相对路径
char *zjwftp_log_file;
}MYFTP_SESSION,*pMYFTP_SESSION;
#define INIT_SESSION(p_thesession) bzero(p_thesession,sizeof(MYFTP_SESSION))
#endif /*_MYFTP_SESSION_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -