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

📄 myftp_session.h

📁 Linux下的ftp服务器
💻 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 + -