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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ftpdlib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
		    return (ERROR);		    }		continue;		}	    /* receive the file */	    ftpdDataStreamReceive (pSlot, outStream);	    (void) fclose (outStream);	    }	else if (strncmp (pBuf, "CWD", 3) == 0)	    {	    /* change directory */	    dirName = &pBuf [4];	    /* there is no default device for the specified directory */#ifdef _WRS_VXWORKS_5_X	    if (iosDevFind (dirName, (char **)&pTail) == NULL)#else	    if (iosDevFind (dirName, (const char **)&pTail) == NULL)#endif		{                if (ftpdCmdSend (pSlot, sock,                                  501, messages [MSG_DIR_NOT_PRESENT],                                 0, 0, 0, 0, 0, 0) == ERROR)			    		    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		continue;		}	    /* dirName doesn't start with a device name, prepend old path */	    if (dirName == pTail)		{		(void) strcpy (curDirName, pSlot->curDirName);		(void) pathCat (curDirName, dirName, newPath);		}	    else				/* it starts with a dev name */		(void) strcpy (newPath, dirName);/* use the whole thing */	    pathCondense (newPath);		/* condense ".." shit */	    /* remember where we are */	    (void) strcpy (pSlot->curDirName, newPath);	    /* notify successful chdir */	    if (ftpdCmdSend (pSlot, sock, 250, messages [MSG_CHANGED_DIR],			    (int)newPath, 0, 0, 0, 0, 0) == ERROR)		{		ftpdSessionDelete (pSlot);		return (ERROR);		}	    }	else if (strncmp (pBuf, "TYPE", 4) == 0)	    {	    /* we only support BINARY and ASCII representation types */	    if (pBuf [5] == 'I' || pBuf [5] == 'i' ||		pBuf [5] == 'L' || pBuf [5] == 'l')		{	        pSlot->status |= FTPD_BINARY_TYPE;		pSlot->status &= ~FTPD_ASCII_TYPE;		if (ftpdCmdSend (pSlot, sock, 200, messages [MSG_TYPE_BINARY],			     0, 0, 0, 0, 0, 0) == ERROR)					    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		}	    else if (pBuf [5] == 'A' || pBuf [5] == 'a')		{	        pSlot->status |= FTPD_ASCII_TYPE;		pSlot->status &= ~FTPD_BINARY_TYPE;		if (ftpdCmdSend (pSlot, sock, 200, messages [MSG_TYPE_ASCII],			     0, 0, 0, 0, 0, 0) == ERROR)		    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		}	    else		{		if (ftpdCmdSend (pSlot, sock, 504, messages [MSG_PARAM_BAD],			     0, 0, 0, 0, 0, 0) == ERROR)		    		    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		}	    }	else if (strncmp (pBuf, "PORT", 4) == 0)	    {	    /* client specifies the port to be used in setting up	     * active data connections later on (see ftpdDataConnGet ()).	     * format:  first four decimal digits separated by commas	     * indicate the internet address; the last two decimal	     * digits separated by a comma represents hi and low	     * bytes of a port number.	     */	    (void) sscanf (&pBuf [5], "%d,%d,%d,%d,%d,%d",			   &portNum [0], &portNum [1], &portNum [2],			   &portNum [3], &portNum [4], &portNum [5]);	    pSlot->dataAddr.sin_port = portNum [4] * 256 + portNum [5];	    /* convert port number to network byte order */	    pSlot->dataAddr.sin_port = htons (pSlot->dataAddr.sin_port);            /* Set remote host to given value. */            value = (portNum [0] << 24) | (portNum [1] << 16) |                    (portNum [2] << 8) | portNum [3];            pSlot->dataAddr.sin_addr.s_addr = htonl (value);	    if (ftpdCmdSend (pSlot, sock, 200, messages [MSG_PORT_SET],			 0, 0, 0, 0, 0, 0) == ERROR)		{		ftpdSessionDelete (pSlot);		return (ERROR);		}	    }	else if (strncmp (pBuf, "PWD", 3) == 0)	    {	    /* get current working directory */	    (void) strcpy (pBuf, pSlot->curDirName);	    if (ftpdCmdSend (pSlot, sock, 257, messages [MSG_CUR_DIR],			 (int)pBuf, 0, 0, 0, 0, 0) == ERROR)		{		ftpdSessionDelete (pSlot);		return (ERROR);		}	    }	else if (strncmp (pBuf, "STRU", 4) == 0)	    {	    /* specify the file structure */	    /* we only support normal byte stream oriented files;	     * we don't support IBM-ish record block oriented files	     */	    if (pBuf [5] == 'F' || pBuf [5] == 'f')		{	        if (ftpdCmdSend (pSlot, sock, 200, messages [MSG_FILE_STRU],			     0, 0, 0, 0, 0, 0) == ERROR)		    		    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		}	    else		{	        if (ftpdCmdSend (pSlot, sock, 504, messages [MSG_PARAM_BAD],			     0, 0, 0, 0, 0, 0) == ERROR)		    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		}	    }	else if (strncmp (pBuf, "MODE", 4) == 0)	    {	    /* specify transfer mode */	    /* we only support stream mode -- no block or compressed mode */	    if (pBuf [5] == 'S' || pBuf [5] == 's')		{	        if (ftpdCmdSend (pSlot, sock, 200, messages [MSG_STREAM_MODE],			     0, 0, 0, 0, 0, 0) == ERROR)		    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		}	    else		{	        if (ftpdCmdSend (pSlot, sock, 504, messages [MSG_PARAM_BAD],			     0, 0, 0, 0, 0, 0) == ERROR)		    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		}	    }	else if (strncmp (pBuf, "ALLO", 4) == 0 ||		 strncmp (pBuf, "ACCT", 4) == 0)	    {	    /* allocate and account commands are not need */	    if (ftpdCmdSend (pSlot, sock, 202, messages [MSG_ALLOC_ACCOUNT],			 0, 0, 0, 0, 0, 0) == ERROR)		{		ftpdSessionDelete (pSlot);		return (ERROR);		}	    }	else if (strncmp (pBuf, "PASV", 4) == 0)	    {	    /* client wants to connect to us instead of waiting	     * for us to make a connection to its data connection	     * socket	     */	    ftpdSockFree (&pSlot->dataSock);	    /* we need to open a socket and start listening on it	     * to accommodate his request.	     */	    if ((pSlot->dataSock = socket (AF_INET, SOCK_STREAM, 0)) < 0)		{		if (ftpdCmdSend (pSlot, sock, 425, messages [MSG_PASSIVE_ERROR],			     0, 0, 0, 0, 0, 0) == ERROR)		    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		}	    else		{                int outval1;                int outval2;                int outval3;                int outval4;                int outval5;                int outval6;                if (getsockname (pSlot->cmdSock,                                 (struct sockaddr *) &pSlot->dataAddr,                                 &addrLen) < 0)                    {                    /* Couldn't find address for local end of connection. */                    if (ftpdCmdSend (pSlot, sock,                                     425, messages [MSG_PASSIVE_ERROR],                                     0, 0, 0, 0, 0, 0) == ERROR)                        {                        ftpdSessionDelete (pSlot);                        return (ERROR);                        }                    }                /*                 * Find an ephemeral port for the expected connection                 * and initialize connection queue.                  */                pSlot->dataAddr.sin_port = htons (0);                addrLen = sizeof (struct sockaddr_in);		if (bind (pSlot->dataSock, (struct sockaddr *)&pSlot->dataAddr,			  sizeof (struct sockaddr_in)) < 0 ||		    getsockname (pSlot->dataSock,				 (struct sockaddr *) &pSlot->dataAddr,				 &addrLen) < 0 ||		    listen (pSlot->dataSock, 1) < 0)		    {		    ftpdSockFree (&pSlot->dataSock);                    if (ftpdCmdSend (pSlot, sock,                                      425, messages [MSG_PASSIVE_ERROR],                                     0, 0, 0, 0, 0, 0) == ERROR)			{			ftpdSessionDelete (pSlot);			return (ERROR);			}		    continue;		    }		/* we're passive, let us keep that in mind */		pSlot->status |= FTPD_PASSIVE;                value = pSlot->dataAddr.sin_addr.s_addr;                outval1 = ( (u_char *)&value)[0];                outval2 = ( (u_char *)&value)[1];                outval3 = ( (u_char *)&value)[2];                outval4 = ( (u_char *)&value)[3];                 /* Separate port number into bytes. */                outval5 = ( (u_char *)&pSlot->dataAddr.sin_port)[0];                outval6 = ( (u_char *)&pSlot->dataAddr.sin_port)[1];		/* tell the client to which port to connect */                if (ftpdCmdSend (pSlot, pSlot->cmdSock,                                  227, messages [MSG_PASSIVE_MODE],                                 outval1, outval2, outval3, outval4,                                 outval5, outval6) == ERROR)		    {		    ftpdSessionDelete (pSlot);		    return (ERROR);		    }		}	    }	else if (strncmp (pBuf, "NOOP", 4) == 0)	    {	    /* don't do anything */	    if (ftpdCmdSend (pSlot, sock, 200, messages [MSG_NOOP_OKAY],			 0, 0, 0, 0, 0, 0) == ERROR)		{		ftpdSessionDelete (pSlot);		return (ERROR);		}	    }        else if (strncmp (pBuf, "DELE", 4) == 0)            {             if (pBuf [5] != '/')                 {                 if (pSlot->curDirName [strlen (pSlot->curDirName) - 1] == '/')                     (void) sprintf (newPath,                                     "%s%s", pSlot->curDirName, &pBuf [5]);                 else                     (void) sprintf (newPath,                                     "%s/%s", pSlot->curDirName, &pBuf [5]);                 pFileName = newPath;                 }             else                 pFileName = &pBuf [5];             ftpdDebugMsg ("DELE %s\n", (int)pFileName,0,0,0);             if (remove (pFileName) != OK)                 {                 if (ftpdCmdSend (pSlot, sock, 550, messages [MSG_FILE_ERROR],                                  (int) pFileName, 0, 0, 0, 0, 0) == ERROR)                     {                      ftpdSessionDelete (pSlot);                      return (ERROR);                      }                 continue;                 }             else                 {                  if (ftpdCmdSend (pSlot, sock, 250, messages [MSG_DELE_OKAY],                                   0, 0, 0, 0, 0, 0) == ERROR)                      {                       ftpdSessionDelete (pSlot);                       return (ERROR);                      }                 }           }       else           {	    /* unrecognized command or command not supported */	    if (ftpdCmdSend (pSlot, sock, 500, messages [MSG_BAD_COMMAND],			 0, 0, 0, 0, 0, 0) == ERROR)		{		ftpdSessionDelete (pSlot);		return (ERROR);		}	    }	}    /*     * Processing halted due to pending server shutdown.     * Remove all resources and exit.     */    ftpdSessionDelete (pSlot);    return (OK);    }/********************************************************************************* ftpdDataConnGet - get a fresh data connection socket for FTP data transfer** FTP uses upto two connections per session (as described above) at any* time.  The command connection (cmdSock) is maintained throughout the* FTP session to pass the request command strings and replies between* the client and the server.  For commands that require bulk data transfer* such as contents of a file or a list of files in a directory, FTP* sets up dynamic data connections separate from the command connection.* This function, ftpdDataConnGet, is responsible for creating* such connections.** Setting up the data connection is performed in two ways.  If the dataSock* is already initialized and we're in passive mode (as indicated by the* FTPD_PASSIVE bit of the status field in the FTPD_SESSION_SLOT) we need to* wait for our client to make a connection to us -- so we just do an accept* on this already initialized dataSock.  If the dataSock is already* initialized and we're not in passive mode, we just use the already* existing connection.  Otherwise, we need to initialize a new socket and* make a connection to the the port where client is accepting new* connections.  This port number is in general set by "PORT" command (see* ftpdWorkTask()).*/LOCAL STATUS ftpdDataConnGet    (    FTPD_SESSION_DATA   *pSlot          /* pointer to the work slot */    )    {    FAST int		newSock;	/* new connection socket */    int			addrLen;	/* to be used with accept */    struct sockaddr_in	addr;		/* to be used with accept */    int			on = 1;		/* to be used to turn things on */    int			retry = 0;	/* retry counter initialized to zero */    /* command socket is invalid, return immediately */    if (pSlot->cmdSock == FTPD_SOCK_FREE)        return (ERROR);    pSlot->byteCount = 0;    if (pSlot->dataSock != FTPD_SOCK_FREE)        {	/* data socket is already initialized */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
wwwwww.欧美系列| 亚洲蜜臀av乱码久久精品| 97se亚洲国产综合自在线观| 蜜臀av一区二区在线免费观看| 国产精品欧美久久久久一区二区| 日韩欧美国产精品| 91福利在线观看| 成人免费高清在线| 精品综合久久久久久8888| 亚洲成人免费视| 亚洲麻豆国产自偷在线| 国产人成亚洲第一网站在线播放 | 中文字幕免费在线观看视频一区| 精品视频1区2区| 92国产精品观看| 成人精品视频.| 国产一区二区在线电影| 免费成人结看片| 性欧美大战久久久久久久久| 亚洲图片你懂的| 国产精品你懂的在线| 精品久久久久久无| 欧美一区二区三区在线看| 欧美三级日韩三级国产三级| 一本大道综合伊人精品热热 | 91高清视频在线| 99久久精品国产毛片| 风间由美性色一区二区三区| 韩国v欧美v日本v亚洲v| 久久精品国产精品青草| 奇米影视一区二区三区| 蜜桃av一区二区三区电影| 日韩精品电影在线观看| 日韩va欧美va亚洲va久久| 亚洲国产精品综合小说图片区| 一区二区三区在线影院| 一区二区三区自拍| 亚洲午夜精品网| 亚洲第一会所有码转帖| 亚洲成人tv网| 人禽交欧美网站| 精品在线一区二区| 国产精品一区二区久激情瑜伽| 国产精品亚洲а∨天堂免在线| 国产麻豆精品一区二区| 成人午夜av电影| 91麻豆国产自产在线观看| 日本福利一区二区| 欧美日韩亚洲综合在线| 欧美久久久久久蜜桃| 日韩一级完整毛片| 久久久久久**毛片大全| 亚洲国产精品二十页| 国产精品白丝在线| 亚洲综合色视频| 亚洲欧美激情在线| 亚洲国产中文字幕在线视频综合| 欧美猛男超大videosgay| 91美女片黄在线观看91美女| 高清av一区二区| 国产69精品一区二区亚洲孕妇| 成人性生交大片免费看中文网站| 亚洲一区在线看| 激情综合色丁香一区二区| 欧美主播一区二区三区美女| 久久精品人人做人人爽97| 日韩电影在线观看电影| 99精品视频在线观看| 久久色在线观看| 日本中文字幕不卡| 欧美在线免费播放| 成人免费在线视频观看| 国模大尺度一区二区三区| 欧美精品自拍偷拍动漫精品| 中文字幕一区二区三区乱码在线 | 97aⅴ精品视频一二三区| 2019国产精品| 日本不卡视频在线观看| 在线这里只有精品| 中文字幕制服丝袜一区二区三区| 国产在线播放一区三区四| 制服.丝袜.亚洲.另类.中文| 玉米视频成人免费看| jlzzjlzz亚洲日本少妇| 国产午夜一区二区三区| 精品午夜久久福利影院| 日韩一区二区麻豆国产| 热久久国产精品| 欧美一区二区三区在线看| 午夜伊人狠狠久久| 欧美三级韩国三级日本三斤| 自拍偷拍亚洲激情| 成人avav影音| 中文字幕一区二区三中文字幕| 国产99精品国产| 日本一区二区三级电影在线观看| 国产在线看一区| 久久精品日韩一区二区三区| 国产一区二区在线看| 精品乱人伦小说| 国产主播一区二区| 国产午夜精品美女毛片视频| 国产河南妇女毛片精品久久久| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品久久国产老人久久综合| 久久精品国产免费| wwwwxxxxx欧美| 欧美四级电影在线观看| 亚洲在线视频网站| 欧美日韩国产小视频在线观看| 亚洲成人自拍偷拍| 制服.丝袜.亚洲.中文.综合| 日本欧美加勒比视频| 日韩亚洲欧美高清| 国精产品一区一区三区mba视频 | 欧美一三区三区四区免费在线看| 午夜婷婷国产麻豆精品| 欧美高清你懂得| 激情深爱一区二区| 国产女人18毛片水真多成人如厕| 成人黄动漫网站免费app| 亚洲日本在线a| 7777精品伊人久久久大香线蕉经典版下载 | 国产一区二区三区免费看| 欧美—级在线免费片| 99re这里只有精品6| 亚洲成av人片在www色猫咪| 91麻豆精品国产91久久久更新时间| 麻豆一区二区99久久久久| 国产亚洲人成网站| 在线看日本不卡| 美女免费视频一区| 国产精品久久久久婷婷二区次| 91久久精品一区二区二区| 日韩精品一级中文字幕精品视频免费观看| 欧美一区二区精品| 成人伦理片在线| 五月天亚洲婷婷| 国产亚洲欧美日韩俺去了| 91社区在线播放| 免费在线观看日韩欧美| 国产精品嫩草99a| 欧美性受xxxx| 国产九九视频一区二区三区| 依依成人精品视频| 日韩欧美一区在线观看| 99综合电影在线视频| 婷婷夜色潮精品综合在线| 久久婷婷色综合| 欧美私模裸体表演在线观看| 国产剧情一区在线| 亚洲国产美国国产综合一区二区| 久久免费的精品国产v∧| 在线观看亚洲精品视频| 极品少妇xxxx偷拍精品少妇| 一区二区三区精品久久久| 精品精品国产高清一毛片一天堂| av电影在线观看完整版一区二区| 美腿丝袜亚洲色图| 亚洲综合在线第一页| 欧美激情艳妇裸体舞| 一区在线观看免费| 在线综合亚洲欧美在线视频| 97精品国产露脸对白| 国产在线视视频有精品| 天天综合天天做天天综合| 中文字幕一区二区三区四区不卡 | 亚洲va韩国va欧美va精品| 欧美高清一级片在线观看| 日韩欧美中文字幕一区| 欧美日韩中文字幕一区| 成人a级免费电影| 国产一区二区免费看| 日韩精品五月天| 亚洲精品v日韩精品| 亚洲国产精品精华液ab| 亚洲精品在线三区| 9191精品国产综合久久久久久| 91色九色蝌蚪| 福利一区二区在线| 国产一区二区三区高清播放| 日韩国产精品久久| 香蕉影视欧美成人| 亚洲一区二区三区四区在线观看 | 亚洲超碰精品一区二区| 日韩毛片高清在线播放| 国产三级欧美三级日产三级99| 日韩一区二区三区免费观看| 欧美三级中文字幕| 欧美在线免费观看视频| 色又黄又爽网站www久久| 成人ar影院免费观看视频| 国产成人av一区二区三区在线观看| 日本成人在线视频网站| 日韩国产精品大片| 日韩影院在线观看| 日本亚洲最大的色成网站www| 夜夜亚洲天天久久| 夜夜嗨av一区二区三区网页| 亚洲男人的天堂在线aⅴ视频|