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

📄 ftp.h

📁 php-4.4.7学习linux时下载的源代码
💻 H
字号:
/*   +----------------------------------------------------------------------+   | PHP Version 4                                                        |   +----------------------------------------------------------------------+   | Copyright (c) 1997-2007 The PHP Group                                |   +----------------------------------------------------------------------+   | This source file is subject to version 3.01 of the PHP license,      |   | that is bundled with this package in the file LICENSE, and is        |   | available through the world-wide-web at the following url:           |   | http://www.php.net/license/3_01.txt                                  |   | If you did not receive a copy of the PHP license and are unable to   |   | obtain it through the world-wide-web, please send a note to          |   | license@php.net so we can mail you a copy immediately.               |   +----------------------------------------------------------------------+   | Authors: Andrew Skalski <askalski@chek.com>                          |   |          Stefan Esser <sesser@php.net> (resume functions)            |   +----------------------------------------------------------------------+ *//* $Id: ftp.h,v 1.30.2.3.4.3 2007/01/01 09:46:42 sebastian Exp $ */#ifndef	FTP_H#define	FTP_H#include "php_network.h"#include <stdio.h>#ifdef HAVE_NETINET_IN_H#include <netinet/in.h>#endif#define	FTP_DEFAULT_TIMEOUT	90#define FTP_DEFAULT_AUTOSEEK 1#define PHP_FTP_FAILED			0#define PHP_FTP_FINISHED		1#define PHP_FTP_MOREDATA		2/* XXX this should be configurable at runtime XXX */#define	FTP_BUFSIZE	4096typedef enum ftptype {	FTPTYPE_ASCII=1,	FTPTYPE_IMAGE} ftptype_t;typedef struct databuf{	int		listener;		/* listener socket */	int		fd;			/* data connection */	ftptype_t	type;			/* transfer type */	char		buf[FTP_BUFSIZE];	/* data buffer */#ifdef HAVE_OPENSSL_EXT	SSL		*ssl_handle;	/* ssl handle */	int		ssl_active;		/* flag if ssl is active or not */#endif} databuf_t;typedef struct ftpbuf{	int		fd;			/* control connection */	php_sockaddr_storage	localaddr;	/* local address */	int		resp;			/* last response code */	char		inbuf[FTP_BUFSIZE];	/* last response text */	char		*extra;			/* extra characters */	int		extralen;		/* number of extra chars */	char		outbuf[FTP_BUFSIZE];	/* command output buffer */	char		*pwd;			/* cached pwd */	char		*syst;			/* cached system type */	ftptype_t	type;			/* current transfer type */	int		pasv;			/* 0=off; 1=pasv; 2=ready */	php_sockaddr_storage	pasvaddr;	/* passive mode address */	long	timeout_sec;	/* User configureable timeout (seconds) */	int			autoseek;	/* User configureable autoseek flag */	int				nb;		/* "nonblocking" transfer in progress */	databuf_t		*data;	/* Data connection for "nonblocking" transfers */	php_stream		*stream; /* output stream for "nonblocking" transfers */	int				lastch;		/* last char of previous call */	int				direction;	/* recv = 0 / send = 1 */	int				closestream;/* close or not close stream */#ifdef HAVE_OPENSSL_EXT	int				use_ssl; /* enable(1) or disable(0) ssl */	int				use_ssl_for_data; /* en/disable ssl for the dataconnection */	int				old_ssl;	/* old mode = forced data encryption */	SSL				*ssl_handle;      /* handle for control connection */	int				ssl_active;		  /* ssl active on control conn */#endif} ftpbuf_t;/* open a FTP connection, returns ftpbuf (NULL on error) * port is the ftp port in network byte order, or 0 for the default */ftpbuf_t*	ftp_open(const char *host, short port, long timeout_sec TSRMLS_DC);/* quits from the ftp session (it still needs to be closed) * return true on success, false on error */int		ftp_quit(ftpbuf_t *ftp);/* frees up any cached data held in the ftp buffer */void		ftp_gc(ftpbuf_t *ftp);/* close the FTP connection and return NULL */ftpbuf_t*	ftp_close(ftpbuf_t *ftp);/* logs into the FTP server, returns true on success, false on error */int		ftp_login(ftpbuf_t *ftp, const char *user, const char *pass TSRMLS_DC);/* reinitializes the connection, returns true on success, false on error */int		ftp_reinit(ftpbuf_t *ftp);/* returns the remote system type (NULL on error) */const char*	ftp_syst(ftpbuf_t *ftp);/* returns the present working directory (NULL on error) */const char*	ftp_pwd(ftpbuf_t *ftp);/* exec a command [special features], return true on success, false on error */int 	ftp_exec(ftpbuf_t *ftp, const char *cmd);/* changes directories, return true on success, false on error */int		ftp_chdir(ftpbuf_t *ftp, const char *dir);/* changes to parent directory, return true on success, false on error */int		ftp_cdup(ftpbuf_t *ftp);/* creates a directory, return the directory name on success, NULL on error. * the return value must be freed */char*		ftp_mkdir(ftpbuf_t *ftp, const char *dir);/* removes a directory, return true on success, false on error */int		ftp_rmdir(ftpbuf_t *ftp, const char *dir);/* returns a NULL-terminated array of filenames in the given path * or NULL on error.  the return array must be freed (but don't * free the array elements) */char**		ftp_nlist(ftpbuf_t *ftp, const char *path TSRMLS_DC);/* returns a NULL-terminated array of lines returned by the ftp * LIST command for the given path or NULL on error.  the return * array must be freed (but don't * free the array elements) */char**		ftp_list(ftpbuf_t *ftp, const char *path, int recursive TSRMLS_DC);/* switches passive mode on or off * returns true on success, false on error */int		ftp_pasv(ftpbuf_t *ftp, int pasv);/* retrieves a file and saves its contents to outfp * returns true on success, false on error */int		ftp_get(ftpbuf_t *ftp, php_stream *outstream, const char *path,			ftptype_t type, int resumepos);/* stores the data from a file, socket, or process as a file on the remote server * returns true on success, false on error */int		ftp_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type, int startpos);/* returns the size of the given file, or -1 on error */int		ftp_size(ftpbuf_t *ftp, const char *path);/* returns the last modified time of the given file, or -1 on error */time_t		ftp_mdtm(ftpbuf_t *ftp, const char *path);/* renames a file on the server */int		ftp_rename(ftpbuf_t *ftp, const char *src, const char *dest);/* deletes the file from the server */int		ftp_delete(ftpbuf_t *ftp, const char *path);/* sends a SITE command to the server */int		ftp_site(ftpbuf_t *ftp, const char *cmd);/* retrieves part of a file and saves its contents to outfp * returns true on success, false on error */int		ftp_nb_get(ftpbuf_t *ftp, php_stream *outstream, const char *path, ftptype_t type, int resumepos TSRMLS_DC);/* stores the data from a file, socket, or process as a file on the remote server * returns true on success, false on error */int		ftp_nb_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type, int startpos TSRMLS_DC);/* continues a previous nb_(f)get command */int		ftp_nb_continue_read(ftpbuf_t *ftp);/* continues a previous nb_(f)put command */int		ftp_nb_continue_write(ftpbuf_t *ftp);#endif

⌨️ 快捷键说明

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