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

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

?? ftpdlib.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* ftpdLib.c - File Transfer Protocol (FTP) server *//* Copyright 1990 - 2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02u,22may02,elr  Corrected closing of sockets so they do not linger (SPR #77377)02t,05nov01,vvv  fixed compilation warnings02s,15oct01,rae  merge from truestack ver 02w, base 02q02r,13oct00,cn   fixed memory leak (SPR# 25954).02q,16mar99,spm  recovered orphaned code from tor2_0_x branch (SPR #25770)02p,01dec98,spm  changed reply code for successful DELE command (SPR #20554)02o,27mar98,spm  corrected byte-ordering problem in PASV command (SPR #20828)02n,27mar98,spm  merged from recovered version 02m of tor1_0_x branch02m,10dec97,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.    TYPE | - Change the data representation type.    PORT | - Change the port number.    PWD | - 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.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.To use this feature, include the following component:INCLUDE_FTP_SERVERINTERNALThe 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.CEINCLUDE 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 "memPartLib.h"#ifndef _WRS_VXWORKS_5_X#include "private/pdLibP.h"#endif /* _WRS_VXWORKS_5_X *//* 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_PASSIVE		0x2000/* Macros to obtain correct parts of the status code */#define FTPD_REPRESENTATION(slot)	( (slot)->status	& 0xff)#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)/* 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/* 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/* globals */int ftpdDebug			= FALSE;	/* TRUE: debugging messages */int ftpdTaskPriority		= 56;int ftpdTaskOptions 		= VX_SUPERVISOR_MODE | VX_UNBREAKABLE;int ftpdWorkTaskPriority	= 252;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;FUNCPTR loginVerifyRtn;/* 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 */    char		buf [BUFSIZE]; /* multi-purpose buffer per session */    char 		curDirName [MAX_FILENAME_LENGTH]; /* active directory */    char               user [MAX_LOGIN_NAME_LEN+1]; /* current user */    } 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;/* Various messages to be told to the clients */LOCAL char *messages [] =    {    "Can't open passive connection",    "Parameter not accepted",    "Data connection error",    "Directory non existent or syntax error",    "Local resource failure: %s",    "VxWorks (%s) FTP server 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.",    };/* Indexes to the messages [] array */#define MSG_PASSIVE_ERROR	0#define MSG_PARAM_BAD		1#define MSG_DATA_CONN_ERROR	2#define MSG_DIR_NOT_PRESENT	3#define MSG_LOCAL_RESOURCE_FAIL	4#define MSG_SERVER_READY	5#define MSG_PASSWORD_REQUIRED	6#define MSG_USER_LOGGED_IN	7#define MSG_SEE_YOU_LATER	8#define MSG_USER_PASS_REQ	9#define MSG_DIR_ERROR		10#define MSG_TRANS_COMPLETE	11#define MSG_FILE_ERROR		12#define MSG_CREATE_ERROR	13#define MSG_CHANGED_DIR		14#define MSG_TYPE_BINARY		15#define MSG_TYPE_ASCII		16#define MSG_PORT_SET		17#define MSG_CUR_DIR		18#define MSG_FILE_STRU		19#define MSG_STREAM_MODE		20#define MSG_ALLOC_ACCOUNT	21#define MSG_PASSIVE_MODE	22#define MSG_NOOP_OKAY		23#define MSG_BAD_COMMAND		24#define MSG_INPUT_FILE_ERROR	25#define MSG_TYPE_ERROR		26#define MSG_NO_GOOD_BYE		27#define	MSG_COMMAND_LIST_BEGIN	28#define	MSG_COMMAND_LIST_END	29#define MSG_DELE_OKAY           30#define        MSG_USER_LOGIN_FAILED   31LOCAL char *ftpdCommandList ="HELP	USER	PASS	QUIT	LIST	NLST\n\RETR	STOR	CWD	TYPE	PORT	PWD\n\STRU	MODE	ALLO	ACCT	PASV	NOOP\n\DELE\n";/* forward declarations */LOCAL FTPD_SESSION_DATA *ftpdSessionAdd (void);LOCAL void ftpdSessionDelete (FTPD_SESSION_DATA *);LOCAL STATUS ftpdWorkTask (FTPD_SESSION_DATA *);LOCAL STATUS ftpdCmdSend (FTPD_SESSION_DATA *, int, int, char *,                          int, int, int, int, int, int);LOCAL STATUS ftpdDataConnGet (FTPD_SESSION_DATA *);LOCAL void ftpdDataStreamSend (FTPD_SESSION_DATA *, FILE *);LOCAL void ftpdDataStreamReceive (FTPD_SESSION_DATA *, FILE *outStream);LOCAL void ftpdSockFree (int *);LOCAL STATUS ftpdDirListGet (int, char *, BOOL);LOCAL void ftpdDebugMsg (char *, int, int, int, int);LOCAL void unImplementedType (FTPD_SESSION_DATA *pSlot);LOCAL void dataError (FTPD_SESSION_DATA *pSlot);LOCAL void fileError (FTPD_SESSION_DATA *pSlot);LOCAL void transferOkay (FTPD_SESSION_DATA *pSlot);/********************************************************************************* ftpdTask - FTP server daemon task** This routine monitors the FTP control port for incoming requests from clients* and processes each request by spawning a secondary server task after * establishing the control connection. If the maximum number of connections is* reached, it returns the appropriate error to the requesting client. The * routine is the entry point for the primary FTP server task and should only* be called internally.** RETURNS: N/A** ERRNO: N/A** INTERNAL:* The server task is deleted by the server shutdown routine. Adding a newly* created client session to the list of active clients is performed atomically* with respect to the shutdown routine. However, accepting control connections* is not a critical section, since closing the initial socket used in the* listen() call also closes any later connections which are still open.** NOMANUAL*/LOCAL void ftpdTask (void)    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产免费看| 一区二区欧美在线观看| 日韩午夜av电影| 欧美日韩精品是欧美日韩精品| jiyouzz国产精品久久| 韩国一区二区三区| 精品亚洲成av人在线观看| 日本不卡高清视频| 麻豆专区一区二区三区四区五区| 亚洲国产精品一区二区久久| 亚洲午夜成aⅴ人片| 亚洲一区二区高清| 日韩成人午夜电影| 久久精品国产99| 国产一区二区三区免费看| 国产suv精品一区二区6| 97se亚洲国产综合自在线观| 色综合久久天天| 欧美美女一区二区在线观看| 日韩三级.com| 99re热视频这里只精品| 亚洲大片免费看| 日本欧美一区二区| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美国产亚洲另类动漫| 国产精品久久久久国产精品日日| 亚洲最大成人网4388xx| 久久av中文字幕片| av亚洲精华国产精华| 欧美丰满少妇xxxxx高潮对白| 精品国产123| 亚洲手机成人高清视频| 日韩精品久久理论片| 国产91精品入口| 777xxx欧美| 国产精品乱码妇女bbbb| 日韩福利视频网| 成人黄色在线网站| 日韩欧美三级在线| 亚洲靠逼com| 国产一区二区三区在线观看免费| 一本色道亚洲精品aⅴ| 日韩欧美一区二区视频| 亚洲欧洲制服丝袜| 国产精品自拍在线| 欧美精三区欧美精三区| 欧美激情一区二区三区四区| 亚洲福利电影网| 99视频国产精品| 亚洲精品在线观| 日韩精品高清不卡| 91视频精品在这里| 国产精品三级在线观看| 美女视频黄 久久| 欧美日韩国产区一| 亚洲精品视频在线观看网站| 国产成a人亚洲精品| 日韩一级高清毛片| 日本成人中文字幕在线视频| 在线精品视频免费播放| 亚洲色图一区二区三区| 国产福利电影一区二区三区| 欧美va亚洲va| 日韩国产一二三区| 色综合久久中文字幕| 日韩毛片一二三区| 欧美成人aa大片| 不卡av在线网| 欧美日韩免费一区二区三区视频| 欧美精品一区二区三区四区 | 91小视频在线免费看| 久久久久久久一区| 久久99久久久久| 欧美一区二区在线观看| 香蕉成人啪国产精品视频综合网| 91免费看`日韩一区二区| 中文字幕在线观看一区| 欧美伦理视频网站| 91免费国产视频网站| 国产精品456露脸| 国产精品2024| 成人av资源站| 一本到高清视频免费精品| 国产伦精品一区二区三区在线观看 | 精品国精品国产尤物美女| 白白色 亚洲乱淫| 精品国产青草久久久久福利| 紧缚捆绑精品一区二区| 五月婷婷久久综合| 精品亚洲porn| 国产精品网站一区| av影院午夜一区| 亚洲男帅同性gay1069| 91国内精品野花午夜精品| 国产美女一区二区三区| 亚洲在线中文字幕| 欧美婷婷六月丁香综合色| 免费人成在线不卡| 欧美mv和日韩mv国产网站| 国产精品小仙女| 伊人色综合久久天天| 欧美精品一二三区| 精品系列免费在线观看| 欧美激情一区二区| 欧美色综合天天久久综合精品| 日韩av电影免费观看高清完整版在线观看| 91精品国产品国语在线不卡| 国产乱人伦偷精品视频不卡| 亚洲视频一区在线| 日韩一区二区中文字幕| av一区二区三区| 久久精品国产亚洲aⅴ| 国产精品久久久久影院亚瑟| 制服丝袜激情欧洲亚洲| 成人黄色免费短视频| 天堂av在线一区| 国产精品三级av在线播放| 91精选在线观看| 97se亚洲国产综合在线| 国产在线视频不卡二| 亚洲午夜激情av| 日本一区二区动态图| 欧美一级xxx| 色综合天天综合网天天狠天天| 美女任你摸久久| 午夜精品久久久久久久久久| 国产精品久久久久久久久久久免费看| 在线观看区一区二| 本田岬高潮一区二区三区| 看国产成人h片视频| 亚洲第一二三四区| 亚洲精品成a人| 国产精品乱码人人做人人爱| 久久影院午夜片一区| 欧美区一区二区三区| 91久久免费观看| 99久久国产综合色|国产精品| 国产一区二区三区av电影| 亚洲国产欧美日韩另类综合 | 美脚の诱脚舐め脚责91| 亚洲综合视频网| 亚洲视频一区在线观看| 国产精品久久看| 国产精品家庭影院| 国产精品国产馆在线真实露脸| 久久久久久久精| 久久精品视频网| 精品久久久久久久人人人人传媒| 欧美在线999| 欧美在线你懂的| 日本道色综合久久| 欧美三区在线观看| 欧美日韩mp4| 精品视频色一区| 欧美三片在线视频观看| 欧美色爱综合网| 91精品国产日韩91久久久久久| 日韩一区二区电影| 欧美不卡在线视频| 日韩精品资源二区在线| 精品久久久久久最新网址| 欧美大片日本大片免费观看| 精品国一区二区三区| 91精品国产综合久久婷婷香蕉| 国产精品久久久久一区二区三区共 | av网站一区二区三区| eeuss国产一区二区三区| 99久久久国产精品| 欧洲av一区二区嗯嗯嗯啊| 欧美日韩三级一区| 精品卡一卡二卡三卡四在线| 久久女同性恋中文字幕| 成人免费在线播放视频| 亚洲一区二区偷拍精品| 日本麻豆一区二区三区视频| 精品一区二区影视| 成人国产精品免费观看动漫| 一本到不卡免费一区二区| 欧美一级片在线观看| 久久人人超碰精品| 日韩美女视频一区| 美女国产一区二区三区| 国产成人免费9x9x人网站视频| 92精品国产成人观看免费| 制服丝袜国产精品| 亚洲国产成人私人影院tom| 一区二区视频免费在线观看| 麻豆久久一区二区| aaa国产一区| 欧美一级理论性理论a| 国产精品三级视频| 日韩制服丝袜av| 国产成人亚洲综合a∨婷婷图片| 色婷婷精品大视频在线蜜桃视频| 欧美一区二区视频网站| 国产欧美一区二区精品秋霞影院| 亚洲精品中文在线| 精品一区二区三区欧美| 在线观看日韩一区| 国产精品国产馆在线真实露脸|