亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ftpdlib.c

?? tornado開發 三星s3c44b0x開發板 bsp
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* ftpdLib.c - File Transfer Protocol (FTP) server *//* Copyright 1990 - 1998 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------03d,03dec98,lrn  added default home dir control (SPR#23554)                 removed dependency on usrLib (SPR#23536)03c,29sep98,lrn  creqated DosFs 2.0 branch for T2.0, verified fix for SPR#2082803b,14jul98,lrn  SPR#6647: adding notes on text file to description03a,25may98,lrn  anonymous access with root dir and upload dir	         connection timeout, default mode Binary                 enhance transfer rate: bufSize now same as winSize                 mget "*" support with wildcards, rework directory travel	         standardized directory listing to work with GUI clients	         simplified error handling in main loop, to make code smaller	         fixed: ASCII transfer of binary files breaks connection02n,17may98,lrn  merged previous additions with SENS source		 added support for delete, rename, mkdir and rmdir,		 added non-standard service port02m,05dec97,spm  upgraded server shutdown routine to terminate active                  sessions (SPR #9906); corrected response for PASV command                 to include valid IP address (SPR #1318); modified syntax                 of PASV command (SPR #5627); corrected handling of PORT                  command to support multiple interfaces (SPR #3500); added                  support for maximum number of connections (SPR #2032);                 applied changes for configurable password authentication                  from SENS branch (SPR #8602); removed incorrect note from                 man page concerning user/password verification, which was                  actually performed (SPR #7672); general cleanup (reorganized                 code, added FTP responses for error conditions, replaced                  "static" with LOCAL keyword in function declarations)02l,09jul97,dgp  doc: add note on UID and password per SPR 767202k,06feb97,jdi  made drawing internal.02j,30sep96,spm  partial fix for spr #7227. Added support for deleting files                 and using relative pathnames when listing directories.02i,05aug96,sgv  fix for spr #3583 and spr #5920. Provide login security		 for VxWorks login02h,21may96,sgv  Added global variable ftpdWindowSize which can be set by		 the user. the server would set the window size after the		 connection is established.02g,29mar95,kdl  changed ftpdDirListGet() to use ANSI time format in stat.02f,11feb95,jdi  doc format tweak.02e,20aug93,jag  Fixed memory leak by calling fclose (SPR #2194)                 Changed ftpdWorkTask Command Read Logic, Added error checking		 on write calls to the network and file operations.                 Added case-conversion changes (SPR #2035)02d,20aug93,jmm  Changed ioctl.h and socket.h to sys/ioctl.h and sys/socket.h02c,27feb93,kdl  Removed 01z case-conversion changes (SPR #2035).02b,05feb93,jag  Changed call to inet_ntoa to inet_ntoa_b. SPR# 181402a,20jan93,jdi  documentation cleanup for 5.1.01z,09sep92,jmm  fixed spr 1568, ftpd now recognizes lower case commands                 changed errnoGet() to errno to get rid of warning message01y,19aug92,smb  Changed systime.h to sys/times.h.01x,16jun92,kdl	 increased slot buffer to hold null terminator; use calloc()		 to allocate slot struct (SPR #1509).01w,26may92,rrr  the tree shuffle		  -changed includes to have absolute path from h/01v,08apr92,jmm  cleaned up some ansi warnings01u,18dec91,rrr  removed a recursive macro (killed the mips compiler)01t,10dec91,gae  ANSI cleanup. Changed ftpdSlotSem to an Id so that internal		    routine semTerminate() not used.01s,19nov91,rrr  shut up some ansi warnings.01r,14nov91,rrr  shut up some warnings01q,12nov91,wmd  fixed bug in ftpdDataStreamSend() and ftpdDataStreamReceive(),                 EOF is cast to type char to prevent endless looping.01p,04oct91,rrr  passed through the ansification filter                  -changed functions to ansi style		  -changed includes to have absolute path from h/		  -changed VOID to void		  -changed copyright notice01o,10jul91,gae  i960 fixes: non-varargs usage, added ntohs().  added HELP		 command, changed listing to support NFS/DOS not old style.01n,30apr91,jdi	 documentation tweaks.01m,05apr91,jdi	 documentation -- removed header parens and x-ref numbers;		 doc review by dnw.01l,12feb91,jaa	 documentation.01k,08oct90,hjb  included "inetLib.h".01j,05oct90,dnw  made ftpdWorkTask() be LOCAL.		 documentation tweaks.01i,02oct90,hjb  deleted "inet.h".  added more doc to ftpdInit().  added a call		   to htons() where needed.01h,18sep90,kdl  removed erroneous forward declaration of "ftpDataStreamRecv()".01g,10aug90,dnw  added forward declaration of ftpdDataStreamReceive().01f,10aug90,kdl  added forward declarations for functions returning void.01e,26jun90,jcf  changed ftpd semaphore to static mutex.01d,07may90,hjb  various bug fixes -- too numerous to mention.01c,17apr90,jcf  changed ftpd work task name to tFtpd...01b,11apr90,hjb  de-linted01a,01mar90,hjb  written*//*DESCRIPTIONThis library implements the server side of the File Transfer Protocol (FTP),which provides remote access to the file systems available on a target.The protocol is defined in RFC 959. This implementation supports all commandsrequired by that specification, as well as several additional commands.USER INTERFACEDuring system startup, the ftpdInit() routine creates a control connectionat the predefined FTP server port which is monitored by the primary FTPtask. Each FTP session established is handled by a secondary server taskcreated as necessary. The server accepts the following commands:.TStab(|);l1 l.    HELP | - List supported commands.    USER | - Verify user name.    PASS | - Verify password for the user.    QUIT | - Quit the session.    LIST | - List out contents of a directory.    NLST | - List directory contents using a concise format.    RETR | - Retrieve a file.    STOR | - Store a file.    CWD  | - Change working directory.    XCWD | - Change working directory.    CDUP | - Change to parent directory.    XCUP | - Change to parent directory.    TYPE | - Change the data representation type.    PORT | - Change the port number.    PWD  | - Get the name of current working directory.    XPWD | - Get the name of current working directory.    STRU | - Change file structure settings.    MODE | - Change file transfer mode.    ALLO | - Reserver sufficient storage.    ACCT | - Identify the user's account.    PASV | - Make the server listen on a port for data connection.    NOOP | - Do nothing.    DELE | - Delete a file    MKD  | - Make a directory    XMKD | - Make a directory    RMD  | - Remove a directory    XRMD | - Remove a directory    RNFR | - File to rename    RNTO | - a new name for a file that is being renamed    SIZE | - get file size in bytes    MDTM | - get file modification date and time    SYST | - report type of operating system.TEThe ftpdDelete() routine will disable the FTP server until restarted. It reclaims all system resources used by the server tasks and cleanly terminates all active sessions.This FTP server optionally offers client login via loginLib, or anyother custom user and password verification mechanism, which isintroduced to the FTP server by calling ftpdLoginInstall().  Also,"anonymous" guest access may be optionally enabled withftpdAnonymousAllow(), which imposes certain access restrictions on theguest client, namely access may be restriced to a certain subdirectoryon the disk, and the access is restirected to read-only, except aspecified directory which is allowed for read-write access.Please note that if ftpdLoginInstall() is not called, the FTP server willaccept any client, which may potentially cause a security problem, hence ifthere is no user login mechanism used, then at least "anonymous" access shouldbe enabled, so at least some access restrictions can be imposed on the client,which can not be authenticated.Therefore, if anonymous access has been enabled but no other authenticationmechanism was installed with ftpdLoginInstall(), no other user then"anonymous" will be allowed to access the FTP service.NOTE ON TEXT FILESAlthough the dominant file system on VxWorksis MS-DOS compatible, this does not imply that Text Files on VxWorks aretreated as in MS-DOS.Essentially, VxWorks does not treat Text Files in any special way, all filestext or binary are treated in a transparrent manner by the I/O and stdiolibraries, resulting in handling of Text Files similar to UNIX.Therefore, the FTP server will treat ASCII-mode file transfers in the same wayas on UNIX, whence the text lines are delimited with the Line Feed characteronly. Transferring a Text File from an MS-DOS or Windows system to VxWorkswill thus result in all CR-LF sequences converted to LF only.INTERNALThe ftpdInit() routine spawns the primary server task ('ftpdTask') to handlemultiple FTP sessions. That task creates a separate task ('ftpdWorkTask') foreach active control connection.The diagram below defines the structure chart of ftpdLib..CS  ftpdDelete		   			ftpdInit	|  \					  |	|   \					  |	|    \					ftpdTask	|     \					/    |  \____________	|      \			       /     |		     \	|	|   	          ftpdSessionAdd ftpdWorkTask ftpdSessionDelete	|	|	      ______________________/     |  \	|	|	     /    /	|	          |   \ ftpdSlotDelete | ftpdDirListGet /  ftpdDataStreamReceive |   ftpdDataStreamSend	|	|	        /	|	\	  |   /	     /	 \	|    __________/	|	 \	  |  /	    /	  \	|   /			|         ftpdDataConnGet  /	   \	|   |			|	   |   ___________/	    \	|   |			|	   |  /         ftpdSockFree			ftpdDataCmdSend.CEKnown Problems:Work task name are not guaranteed to be unique.All file sizes are done in 32-bit, hence 3 GB max file size limitation.Should log every anonymous access to logMsg or log file.INCLUDE FILES: ftpdLib.hSEE ALSO:ftpLib, netDrv, .I "RFC-959 File Transfer Protocol"*/#include "vxWorks.h"#include "ioLib.h"#include "taskLib.h"#include "lstLib.h"#include "stdio.h"#include "sys/socket.h"#include "netinet/in.h"#include "errno.h"#include "version.h"#include "string.h"#include "stdlib.h"#include "iosLib.h"#include "inetLib.h"#include "dirent.h"#include "sys/stat.h"#include "sys/times.h"#include "sockLib.h"#include "logLib.h"#include "unistd.h"#include "pathLib.h"#include "sysLib.h"#include "ftpdLib.h"#include "ctype.h"#include "time.h"#include "loginLib.h"#include "fioLib.h"#include "dosFsLib.h"	/* for attributes definition *//* Representation Type */#define FTPD_BINARY_TYPE	0x1#define FTPD_ASCII_TYPE		0x2#define FTPD_EBCDIC_TYPE	0x4#define FTPD_LOCAL_BYTE_TYPE	0x8/* Transfer mode */#define FTPD_STREAM_MODE	0x10#define FTPD_BLOCK_MODE		0x20#define FTPD_COMPRESSED_MODE	0x40/* File structure */#define FTPD_NO_RECORD_STRU	0x100#define FTPD_RECORD_STRU	0x200#define FTPD_PAGE_STRU		0x400/* Session Status */#define FTPD_USER_OK		0x1000#define	FTPD_ANONYMOUS		0x2000#define FTPD_PASSIVE		0x10000/* Macros to obtain correct parts of the status code */#define FTPD_REPRESENTATION(slot)	( (slot)->status	& 0xff)#ifdef	_unused_#define FTPD_TRANS_MODE(slot)		(((slot)->status >> 8)	& 0xff)#define FTPD_FILE_STRUCTURE(slot)	(((slot)->status >> 16)	& 0xff)#define FTPD_STATUS(slot)		(((slot)->status >> 24) & 0xff)#endif/* Well known port definitions -- someday we'll have getservbyname */#define FTP_DATA_PORT		20#define FTP_DAEMON_PORT		21/* Free socket indicative */#define FTPD_SOCK_FREE		-1/* Arbitrary limits for the size of the FTPD work task name */#define FTPD_WORK_TASK_NAME_LEN	40/* Arbitrary limits hinted by Unix FTPD in waing for a new data connection */#define FTPD_WAIT_MAX		90#define FTPD_WAIT_INTERVAL	5#define	FTPD_CONN_TIMEOUT	200/* Macro to get the byte out of an int */#define FTPD_UC(ch)		(((int) (ch)) & 0xff)/* Bit set in FTP reply code to indicate multi-line reply. * Used internally by ftpdCmdSend() where codes are less than * 1024 but are 32-bit integers.  [Admittedly a hack, see * ftpdCmdSend().] */#define	FTPD_MULTI_LINE		0x10000000#define FTPD_WINDOW_SIZE	10240#define	FTPD_ANONYMOUS_USER_1	"anonymous"#define	FTPD_ANONYMOUS_USER_2	"ftp"#define	FTPD_ANONYMOUS_USER_3	"guest"/* globals */int ftpdDebug			= FALSE;	/* TRUE: debugging messages */int ftpdTaskPriority		= 56;int ftpdTaskOptions 		= VX_SUPERVISOR_MODE | VX_UNBREAKABLE;int ftpdWorkTaskPriority	= 152;int ftpdWorkTaskOptions		= VX_SUPERVISOR_MODE | VX_UNBREAKABLE; int ftpdWorkTaskStackSize	= 12000;int ftpdWindowSize              = FTPD_WINDOW_SIZE;int ftpsMaxClients = 4; 	/* Default max. for simultaneous connections */int ftpsCurrentClients;/* locals */LOCAL BOOL ftpsActive = FALSE; 	/* Server started? */LOCAL BOOL ftpsShutdownFlag; 	/* Server halt requested? *//* * The FTP server keeps track of active client sessions in a linked list * of the following FTPD_SESSION_DATA data structures. That structure * contains all the variables which must be maintained separately * for each client so that the code shared by every secondary * task will function correctly. */typedef struct    {    NODE		node;		/* for link-listing */    int			status;		/* see various status bits above */    int			byteCount;	/* bytes transferred */    int			cmdSock;	/* command socket */    STATUS		cmdSockError;   /* Set to ERROR on write error */    int			dataSock;	/* data socket */    struct sockaddr_in	peerAddr;	/* address of control connection */    struct sockaddr_in 	dataAddr; 	/* address of data connection */    caddr_t		buf;		/* multi-purpose buffer per session */    int			bufSize;	/* size of the above buffer */    time_t		timeUsed;	/* last time session was active */    char 		curDirName 	/* active directory */				[MAX_FILENAME_LENGTH+1];    char                curUserName 	/* current user */				[MAX_LOGIN_NAME_LEN+1];    } FTPD_SESSION_DATA;LOCAL int ftpdTaskId 		= -1;LOCAL int ftpdServerSock 	= FTPD_SOCK_FREE;LOCAL LIST		ftpsSessionList;LOCAL SEM_ID		ftpsMutexSem;LOCAL SEM_ID 		ftpsSignalSem;LOCAL char		ftpdWorkTaskName [FTPD_WORK_TASK_NAME_LEN];LOCAL int		ftpdNumTasks;LOCAL FUNCPTR		pLoginVrfyFunc = NULL ;LOCAL char		defaultHomeDir	/* default root directory */				[MAX_FILENAME_LENGTH+1] = {0};LOCAL char		guestHomeDir	/* anonymous root directory */				[MAX_FILENAME_LENGTH+1] = {0};LOCAL char		writeDirName	/* anonymous upload directory */				[MAX_FILENAME_LENGTH+1] = {0};/* Various messages to be told to the clients */LOCAL const char *messages [] =    {    "Can't open passive connection",    "Parameter not accepted",    "Data connection error",    "Directory non existent or syntax error",    "Local resource failure: %s",    "VxWorks FTP server (VxWorks %s) ready.",    "Password required",    "User logged in",    "Bye...see you later",    "USER and PASS required",    "No files found or invalid directory or permission problem",    "Transfer complete",    "File \"%s\" not found or permission problem",    "Cannot create file \"%s\" or permission problem",    "Changed directory to \"%s\"",    "Type set to I, binary mode",    "Type set to A, ASCII mode",    "Port set okay",    "Current directory is \"%s\"",    "File structure set to NO RECORD",    "Stream mode okay",    "Allocate and Account not required",    "Entering Passive Mode (%d,%d,%d,%d,%d,%d)",    "NOOP -- did nothing as requested...hah!",    "Command not recognized",    "Error in input file",    "Unimplemented TYPE %d",    "You could at least say goodbye.",    "The following commands are recognized:",    "End of command list.",    "File deleted successfully.",    "Login failed.",    "File exists, ready for destination name.",    "File renamed successfuly.",    "\"%s\" directory created",    "Directory %s removed",    "%s: not a plain file",    "UNIX Type: L8 Version: VxWorks",

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区三区四区五区| 日韩免费看的电影| 成人精品小蝌蚪| 欧美日韩一区 二区 三区 久久精品| 精品婷婷伊人一区三区三| 久久久99精品久久| 美女www一区二区| 福利一区福利二区| 国产精品二区一区二区aⅴ污介绍| 亚洲成av人综合在线观看| 国产综合一区二区| 日韩欧美中文一区| 亚洲乱码国产乱码精品精的特点 | 亚洲欧美日韩国产手机在线| 美女一区二区三区在线观看| 国产九色精品成人porny| 欧美日韩情趣电影| 五月综合激情婷婷六月色窝| 精品一区二区久久| 日韩一级片网站| 亚洲va国产天堂va久久en| 美女一区二区在线观看| av一区二区三区四区| 国产精品1024| 成人午夜电影网站| 国产精品无人区| 91久久精品国产91性色tv| 久久蜜桃av一区精品变态类天堂| 美女在线观看视频一区二区| 欧美一区二区三区日韩| 久久国内精品自在自线400部| 日韩女优视频免费观看| 国产经典欧美精品| 成人免费在线视频| 欧美一区二区免费| 国产原创一区二区| 中文字幕国产一区二区| 日本乱人伦aⅴ精品| 男人操女人的视频在线观看欧美| 精品国精品国产| 懂色av一区二区三区蜜臀| 国产精品无人区| 欧美日韩精品系列| 久久国产精品露脸对白| 亚洲美女免费在线| 久久亚区不卡日本| 欧美一级理论片| 在线观看亚洲一区| 国产黄人亚洲片| 中文字幕在线观看不卡视频| 69p69国产精品| 在线欧美一区二区| 成人精品国产一区二区4080| 日日摸夜夜添夜夜添精品视频| 国产亚洲综合av| 91精品国产91综合久久蜜臀| 精品午夜久久福利影院| 亚洲精品日韩综合观看成人91| 国产精品全国免费观看高清| 欧美顶级少妇做爰| 色噜噜狠狠一区二区三区果冻| 美洲天堂一区二卡三卡四卡视频| 一区在线中文字幕| 久久精品日产第一区二区三区高清版 | 国产亚洲污的网站| 精品国产第一区二区三区观看体验| 欧美日韩一区中文字幕| 欧美午夜精品理论片a级按摩| 国产老肥熟一区二区三区| 一区二区三区视频在线看| 亚洲欧美日本在线| 亚洲成人免费视频| 日韩精品乱码免费| 日韩精品久久久久久| 日本v片在线高清不卡在线观看| 亚洲精品视频一区二区| 亚洲日本成人在线观看| 亚洲午夜免费视频| 亚洲小说春色综合另类电影| 亚洲妇女屁股眼交7| 日韩和欧美一区二区三区| 国产一区二区三区四区五区美女| 国产成人亚洲精品青草天美| 91小视频在线免费看| 91精品国产综合久久精品图片 | 一区二区三区国产精华| 婷婷丁香久久五月婷婷| 国内精品久久久久影院薰衣草| 国产精品系列在线播放| 91无套直看片红桃| 在线亚洲一区二区| 久久免费偷拍视频| 亚洲国产你懂的| 免费看日韩a级影片| 日本不卡一二三区黄网| 盗摄精品av一区二区三区| 91丝袜高跟美女视频| 欧美日韩免费电影| 国产精品国产三级国产专播品爱网 | 久久久久久免费网| 一区二区三区在线观看网站| 日韩av中文字幕一区二区| 黑人巨大精品欧美一区| 在线观看91av| 香蕉影视欧美成人| 欧美写真视频网站| 国产精品传媒入口麻豆| 丁香六月综合激情| 国产亚洲污的网站| 国产高清精品网站| 精品国产91久久久久久久妲己 | 欧美电视剧在线看免费| 午夜国产精品影院在线观看| 在线亚洲人成电影网站色www| 亚洲欧洲精品一区二区三区| 国产91精品入口| 国产亚洲制服色| 91在线云播放| 亚洲国产另类精品专区| 欧美日韩电影一区| 麻豆传媒一区二区三区| 26uuu亚洲综合色| 高清不卡一区二区| 亚洲精品成人在线| 欧美一区二区三区思思人| 国产乱色国产精品免费视频| 久久精品亚洲一区二区三区浴池 | 国产精品久久久久久久午夜片 | 不卡一区在线观看| 亚洲综合免费观看高清在线观看| 91福利资源站| 韩国午夜理伦三级不卡影院| 亚洲国产精品精华液2区45| 91国产视频在线观看| 国内精品第一页| 亚洲精品国产高清久久伦理二区 | 亚洲精品欧美激情| 日韩欧美电影在线| 91精品91久久久中77777| 亚洲h在线观看| 亚洲三级免费电影| 国产亚洲va综合人人澡精品| 国产91在线|亚洲| 毛片av一区二区三区| 亚洲韩国精品一区| 亚洲免费观看高清完整| 久久久蜜桃精品| 日韩一区二区三区视频在线 | 久久精品久久99精品久久| 国产精品蜜臀在线观看| 欧美mv日韩mv国产网站| 欧美美女网站色| 欧美伊人久久久久久午夜久久久久| 另类综合日韩欧美亚洲| 丝袜亚洲另类丝袜在线| 自拍偷自拍亚洲精品播放| 欧美精品欧美精品系列| 欧美精品第1页| 91精品久久久久久久久99蜜臂| 欧美私模裸体表演在线观看| 91久久免费观看| 日本高清视频一区二区| caoporen国产精品视频| 成人免费高清在线观看| 波多野结衣精品在线| 高清不卡在线观看av| 暴力调教一区二区三区| 91国内精品野花午夜精品| 色婷婷激情久久| 欧美精品高清视频| 欧美精品一区二区久久久| 26uuu国产在线精品一区二区| 久久午夜老司机| 亚洲精品久久嫩草网站秘色| 亚洲一区在线观看视频| 奇米综合一区二区三区精品视频| 麻豆精品国产传媒mv男同| 欧美中文字幕久久| 欧美肥妇bbw| 国产一区二区电影| 成人深夜福利app| 欧美日韩一卡二卡| 欧美成人三级电影在线| 久久综合九色综合97婷婷女人| 自拍av一区二区三区| 亚洲成人自拍网| 国产精品888| 欧美一级久久久| 亚洲与欧洲av电影| 国产一区美女在线| 欧美一区二区三区视频免费| 中文字幕在线不卡一区| 精品一区二区日韩| 欧美日韩久久一区| 亚洲精品精品亚洲| 国产精品一级片| 国产无一区二区| 精品一区二区三区在线播放视频| 国产一区二区在线观看视频| 欧美视频在线观看一区二区|