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

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

?? assoc.c

?? r73模塊的無線網(wǎng)卡在Linux下的驅(qū)動程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*************************************************************************** * RT2x00 SourceForge Project - http://rt2x00.serialmonkey.com             * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * *   You should have received a copy of the GNU General Public License     * *   along with this program; if not, write to the                         * *   Free Software Foundation, Inc.,                                       * *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * *                                                                         * *   Licensed under the GNU GPL                                            * *   Original code supplied under license from RaLink Inc, 2004.           * ***************************************************************************//*************************************************************************** *	Module Name:	assoc.c * *	Abstract: * *	Revision History: *	Who		When		What *	--------	----------	----------------------------- *	Name		Date		Modification logs *	John		2004-9-3	porting from RT2500 * ***************************************************************************/#include "rt_config.h"#include <net/iw_handler.h>UCHAR	CipherWpaTemplate[] = {		0xdd, 					// WPA IE		0x16,					// Length		0x00, 0x50, 0xf2, 0x01,	// oui		0x01, 0x00,				// Version		0x00, 0x50, 0xf2, 0x02,	// Multicast		0x01, 0x00,				// Number of unicast		0x00, 0x50, 0xf2, 0x02,	// unicast		0x01, 0x00,				// number of authentication method		0x00, 0x50, 0xf2, 0x01	// authentication		};UCHAR	CipherWpa2Template[] = {		0x30,					// RSN IE		0x14,					// Length		0x01, 0x00,				// Version		0x00, 0x0f, 0xac, 0x02,	// group cipher, TKIP		0x01, 0x00,				// number of pairwise		0x00, 0x0f, 0xac, 0x02,	// unicast		0x01, 0x00,				// number of authentication method		0x00, 0x0f, 0xac, 0x02,	// authentication		0x00, 0x00,				// RSN capability		};UCHAR   CipherWpa2TemplateLen = (sizeof(CipherWpa2Template) / sizeof(UCHAR));/*    ==========================================================================    Description:        association state machine init, including state transition and timer init		All functions run in process context    Parameters:        S - pointer to the association state machine    Note:        The state machine looks like the following                               ASSOC_IDLE               ASSOC_WAIT_RSP             REASSOC_WAIT_RSP             DISASSOC_WAIT_RSP    MT2_MLME_ASSOC_REQ       mlme_assoc_req_action    invalid_state_when_assoc   invalid_state_when_assoc       invalid_state_when_assoc    MT2_MLME_REASSOC_REQ     mlme_reassoc_req_action  invalid_state_when_reassoc invalid_state_when_reassoc     invalid_state_when_reassoc    MT2_MLME_DISASSOC_REQ    mlme_disassoc_req_action mlme_disassoc_req_action   mlme_disassoc_req_action       mlme_disassoc_req_action    MT2_PEER_DISASSOC_REQ    peer_disassoc_action     peer_disassoc_action       peer_disassoc_action           peer_disassoc_action    MT2_PEER_ASSOC_REQ       drop                     drop                       drop                           drop    MT2_PEER_ASSOC_RSP       drop                     peer_assoc_rsp_action      drop                           drop    MT2_PEER_REASSOC_REQ     drop                     drop                       drop                           drop    MT2_PEER_REASSOC_RSP     drop                     drop                       peer_reassoc_rsp_action        drop    MT2_CLS3ERR              cls3err_action           cls3err_action             cls3err_action                 cls3err_action    MT2_ASSOC_TIMEOUT        timer_nop                assoc_timeout_action       timer_nop                      timer_nop    MT2_REASSOC_TIMEOUT      timer_nop                timer_nop                  reassoc_timeout_action         timer_nop    MT2_DISASSOC_TIMEOUT     timer_nop                timer_nop                  timer_nop                      disassoc_timeout_action    ========================================================================== */VOID AssocStateMachineInit(    IN	PRTMP_ADAPTER	pAd,    IN  STATE_MACHINE *S,    OUT STATE_MACHINE_FUNC Trans[]){    StateMachineInit(S, (STATE_MACHINE_FUNC*)Trans, MAX_ASSOC_STATE, MAX_ASSOC_MSG, (STATE_MACHINE_FUNC)Drop, ASSOC_IDLE, ASSOC_MACHINE_BASE);    // first column    StateMachineSetAction(S, ASSOC_IDLE, MT2_MLME_ASSOC_REQ, (STATE_MACHINE_FUNC)MlmeAssocReqAction);    StateMachineSetAction(S, ASSOC_IDLE, MT2_MLME_REASSOC_REQ, (STATE_MACHINE_FUNC)MlmeReassocReqAction);    StateMachineSetAction(S, ASSOC_IDLE, MT2_MLME_DISASSOC_REQ, (STATE_MACHINE_FUNC)MlmeDisassocReqAction);    StateMachineSetAction(S, ASSOC_IDLE, MT2_PEER_DISASSOC_REQ, (STATE_MACHINE_FUNC)PeerDisassocAction);    // second column    StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_MLME_ASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenAssoc);    StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_MLME_REASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenReassoc);    StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_MLME_DISASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenDisassociate);    StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_PEER_DISASSOC_REQ, (STATE_MACHINE_FUNC)PeerDisassocAction);    StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_PEER_ASSOC_RSP, (STATE_MACHINE_FUNC)PeerAssocRspAction);    StateMachineSetAction(S, ASSOC_WAIT_RSP, MT2_ASSOC_TIMEOUT, (STATE_MACHINE_FUNC)AssocTimeoutAction);    // third column    StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_MLME_ASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenAssoc);    StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_MLME_REASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenReassoc);    StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_MLME_DISASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenDisassociate);    StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_PEER_DISASSOC_REQ, (STATE_MACHINE_FUNC)PeerDisassocAction);    StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_PEER_REASSOC_RSP, (STATE_MACHINE_FUNC)PeerReassocRspAction);    StateMachineSetAction(S, REASSOC_WAIT_RSP, MT2_REASSOC_TIMEOUT, (STATE_MACHINE_FUNC)ReassocTimeoutAction);    // fourth column    StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_MLME_ASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenAssoc);    StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_MLME_REASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenReassoc);    StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_MLME_DISASSOC_REQ, (STATE_MACHINE_FUNC)InvalidStateWhenDisassociate);    StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_PEER_DISASSOC_REQ, (STATE_MACHINE_FUNC)PeerDisassocAction);    StateMachineSetAction(S, DISASSOC_WAIT_RSP, MT2_DISASSOC_TIMEOUT, (STATE_MACHINE_FUNC)DisassocTimeoutAction);    // timer init    RTMPInitTimer(pAd, &pAd->MlmeAux.AssocTimer, &AssocTimeout);    RTMPInitTimer(pAd, &pAd->MlmeAux.ReassocTimer, &ReassocTimeout);}/*    ==========================================================================    Description:        Association timeout procedure. After association timeout, this function        will be called and it will put a message into the MLME queue    Parameters:        Standard timer parameters    ========================================================================== */VOID AssocTimeout(    IN	unsigned long data){    RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;    DBGPRINT(RT_DEBUG_TRACE,"ASSOC - enqueue MT2_ASSOC_TIMEOUT \n");    MlmeEnqueue(pAd, ASSOC_STATE_MACHINE, MT2_ASSOC_TIMEOUT, 0, NULL);    RTUSBMlmeUp(pAd);}/*    ==========================================================================    Description:        Reassociation timeout procedure. After reassociation timeout, this        function will be called and put a message into the MLME queue    Parameters:        Standard timer parameters    ========================================================================== */VOID ReassocTimeout(    IN	unsigned long data){    RTMP_ADAPTER *pAd = (RTMP_ADAPTER *)data;    DBGPRINT(RT_DEBUG_TRACE,"ASSOC - enqueue MT2_REASSOC_TIMEOUT \n");    MlmeEnqueue(pAd, ASSOC_STATE_MACHINE, MT2_REASSOC_TIMEOUT, 0, NULL);    RTUSBMlmeUp(pAd);}/*	==========================================================================	Description:		mlme assoc req handling procedure	Parameters:		Adapter - Adapter pointer		Elem - MLME Queue Element	Pre:		the station has been authenticated and the following information is stored in the config			-# SSID			-# supported rates and their length			-# listen interval (Adapter->PortCfg.default_listen_count)			-# Transmit power  (Adapter->PortCfg.tx_power)	Post  :		-# An association request frame is generated and sent to the air		-# Association timer starts		-# Association state -> ASSOC_WAIT_RSP	========================================================================== */VOID MlmeAssocReqAction(	IN PRTMP_ADAPTER pAd,	IN MLME_QUEUE_ELEM *Elem){	UCHAR			 ApAddr[6];	HEADER_802_11	 AssocHdr;	UCHAR			 WmeIe[9] = {IE_VENDOR_SPECIFIC, 0x07, 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, STA_QOS_CAPABILITY};	UCHAR			 CipherTmp[64];	UCHAR			 CipherTmpLen;	USHORT			 ListenIntv;	ULONG			 Timeout;	USHORT			 CapabilityInfo;	PUCHAR			 pOutBuffer = NULL;	ULONG			 FrameLen = 0;	ULONG			 tmp;	UCHAR			 VarIesOffset;	USHORT			 Status;	ULONG			 idx;	BOOLEAN			 FoundPMK = FALSE;	USHORT			 NStatus;	// Block all authentication request durning WPA block period	if (pAd->PortCfg.bBlockAssoc == TRUE)	{		DBGPRINT(RT_DEBUG_TRACE, "ASSOC - Block Assoc request durning WPA block period!\n");		pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;		Status = MLME_STATE_MACHINE_REJECT;		MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_ASSOC_CONF, 2, &Status);	}	// check sanity first	else if (MlmeAssocReqSanity(pAd, Elem->Msg, Elem->MsgLen, ApAddr, &CapabilityInfo, &Timeout, &ListenIntv))	{		RTMPCancelTimer(&pAd->MlmeAux.AssocTimer);		COPY_MAC_ADDR(pAd->MlmeAux.Bssid, ApAddr);		// allocate and send out AssocRsp frame		NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);	//Get an unused nonpaged memory		if (NStatus != NDIS_STATUS_SUCCESS)		{			DBGPRINT(RT_DEBUG_TRACE,"ASSOC - MlmeAssocReqAction() allocate memory failed \n");			pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;			Status = MLME_FAIL_NO_RESOURCE;			MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_ASSOC_CONF, 2, &Status);			return;		}		// Add by James 03/06/27		pAd->PortCfg.AssocInfo.Length = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);		// Association don't need to report MAC address		pAd->PortCfg.AssocInfo.AvailableRequestFixedIEs =			NDIS_802_11_AI_REQFI_CAPABILITIES | NDIS_802_11_AI_REQFI_LISTENINTERVAL;		pAd->PortCfg.AssocInfo.RequestFixedIEs.Capabilities = CapabilityInfo;		pAd->PortCfg.AssocInfo.RequestFixedIEs.ListenInterval = ListenIntv;		// Only reassociate need this		//COPY_MAC_ADDR(pAd->PortCfg.AssocInfo.RequestFixedIEs.CurrentAPAddress, ApAddr);		pAd->PortCfg.AssocInfo.OffsetRequestIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);		// First add SSID		VarIesOffset = 0;		memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, &SsidIe, 1);		VarIesOffset += 1;		memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, &pAd->MlmeAux.SsidLen, 1);		VarIesOffset += 1;		memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, pAd->MlmeAux.Ssid, pAd->MlmeAux.SsidLen);		VarIesOffset += pAd->MlmeAux.SsidLen;		// Second add Supported rates		memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, &SupRateIe, 1);		VarIesOffset += 1;		memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, &pAd->MlmeAux.SupRateLen, 1);		VarIesOffset += 1;		memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, pAd->MlmeAux.SupRate, pAd->MlmeAux.SupRateLen);		VarIesOffset += pAd->MlmeAux.SupRateLen;		// End Add by James		DBGPRINT(RT_DEBUG_TRACE, "ASSOC - Send ASSOC request...\n");		MgtMacHeaderInit(pAd, &AssocHdr, SUBTYPE_ASSOC_REQ, 0, ApAddr, ApAddr);		// Build basic frame first		MakeOutgoingFrame(pOutBuffer,				&FrameLen,						  sizeof(HEADER_802_11),	&AssocHdr,						  2,						&CapabilityInfo,						  2,						&ListenIntv,						  1,						&SsidIe,						  1,						&pAd->MlmeAux.SsidLen,						  pAd->MlmeAux.SsidLen, 	pAd->MlmeAux.Ssid,						  1,						&SupRateIe,						  1,						&pAd->MlmeAux.SupRateLen,						  pAd->MlmeAux.SupRateLen,	pAd->MlmeAux.SupRate,						  END_OF_ARGS);		if (pAd->MlmeAux.ExtRateLen != 0)		{			MakeOutgoingFrame(pOutBuffer + FrameLen,	&tmp,							  1,						&ExtRateIe,							  1,						&pAd->MlmeAux.ExtRateLen,							  pAd->MlmeAux.ExtRateLen,	pAd->MlmeAux.ExtRate,							  END_OF_ARGS);			FrameLen += tmp;		}		if (pAd->MlmeAux.APEdcaParm.bValid)		{			WmeIe[8] |= (pAd->MlmeAux.APEdcaParm.EdcaUpdateCount & 0x0f);			MakeOutgoingFrame(pOutBuffer + FrameLen,	&tmp,							  9,						&WmeIe[0],							  END_OF_ARGS);			FrameLen += tmp;		}		// For WPA / WPA-PSK		if ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA) ||			(pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPAPSK))		{			// Copy WPA template to buffer			CipherTmpLen = sizeof(CipherWpaTemplate);			memcpy(CipherTmp, CipherWpaTemplate, CipherTmpLen);			// Modify Group cipher			CipherTmp[11] = ((pAd->PortCfg.GroupCipher == Ndis802_11Encryption2Enabled) ? 0x2 : 0x4);			// Modify Pairwise cipher			CipherTmp[17] = ((pAd->PortCfg.PairCipher == Ndis802_11Encryption2Enabled) ? 0x2 : 0x4);			// Modify AKM			CipherTmp[23] = ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA) ? 0x1 : 0x2);			// Make outgoing frame			MakeOutgoingFrame(pOutBuffer + FrameLen,	&tmp,							  CipherTmpLen,				&CipherTmp[0],							  END_OF_ARGS);			FrameLen += tmp;			// Append Variable IE			memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, CipherTmp, CipherTmpLen);			VarIesOffset += CipherTmpLen;			// Set Variable IEs Length			pAd->PortCfg.ReqVarIELen = VarIesOffset;			pAd->PortCfg.AssocInfo.RequestIELength = VarIesOffset;			// OffsetResponseIEs follow ReqVarIE			pAd->PortCfg.AssocInfo.OffsetResponseIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION) + pAd->PortCfg.ReqVarIELen;		}		// For WPA2 / WPA2-PSK		else if ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA2) ||				 (pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA2PSK))		{			// Copy WPA2 template to buffer			CipherTmpLen = sizeof(CipherWpa2Template);			memcpy(CipherTmp, CipherWpa2Template, CipherTmpLen);			// Modify Group cipher			CipherTmp[7] = ((pAd->PortCfg.GroupCipher == Ndis802_11Encryption2Enabled) ? 0x2 : 0x4);			// Modify Pairwise cipher			CipherTmp[13] = ((pAd->PortCfg.PairCipher == Ndis802_11Encryption2Enabled) ? 0x2 : 0x4);			// Modify AKM			CipherTmp[19] = ((pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA2) ? 0x1 : 0x2);			// Check for WPA PMK cache list			if (pAd->PortCfg.AuthMode == Ndis802_11AuthModeWPA2)			{				// Search chched PMKID, append it if existed				for (idx = 0; idx < PMKID_NO; idx++)				{					if (NdisEqualMemory(ApAddr, &pAd->PortCfg.SavedPMK[idx].BSSID, 6))					{						FoundPMK = TRUE;						break;					}				}				if (FoundPMK)				{					// Update length within RSN IE					CipherTmp[1] += 18;					// Set PMK number					*(PUSHORT) &CipherTmp[CipherTmpLen] = 1;					memcpy(&CipherTmp[CipherTmpLen + 2], &pAd->PortCfg.SavedPMK[idx].PMKID, 16);					CipherTmpLen += 18;				}			}			// Make outgoing frame			MakeOutgoingFrame(pOutBuffer + FrameLen,	&tmp,							  CipherTmpLen,				&CipherTmp[0],							  END_OF_ARGS);			FrameLen += tmp;			// Append Variable IE			memcpy(pAd->PortCfg.ReqVarIEs + VarIesOffset, CipherTmp, CipherTmpLen);			VarIesOffset += CipherTmpLen;			// Set Variable IEs Length			pAd->PortCfg.ReqVarIELen = VarIesOffset;			pAd->PortCfg.AssocInfo.RequestIELength = VarIesOffset;			// OffsetResponseIEs follow ReqVarIE			pAd->PortCfg.AssocInfo.OffsetResponseIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION) + pAd->PortCfg.ReqVarIELen;		}		else		{			// Do nothing			;		}#if 0 //AGGREGATION_SUPPORT		// add Ralink proprietary IE to inform AP this STA is going to use AGGREGATION, only when -		// 1. user enable aggregation, AND		// 2. AP annouces it's AGGREGATION-capable in BEACON		if (pAd->PortCfg.bAggregationCapable && (pAd->MlmeAux.APRalinkIe & 0x00000001))		{			ULONG TmpLen;			UCHAR RalinkIe[9] = {IE_VENDOR_SPECIFIC, 7, 0x00, 0x0c, 0x43, 0x01, 0x00, 0x00, 0x00};			MakeOutgoingFrame(pOutBuffer+FrameLen,			 &TmpLen,							  9,							 RalinkIe,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av综合在线播放| 欧美一区二区视频在线观看| 欧美日韩一二三| 国产色一区二区| 日欧美一区二区| 99re热这里只有精品免费视频 | 欧美肥妇毛茸茸| 欧美极品少妇xxxxⅹ高跟鞋| 日韩国产在线一| 欧日韩精品视频| 中文字幕中文字幕一区| 久久精品国产999大香线蕉| 欧美三级一区二区| 国产精品成人免费在线| 国产精品亚洲视频| 久久久综合激的五月天| 麻豆传媒一区二区三区| 91麻豆精品国产91久久久| 一区二区三区日韩精品| 99在线视频精品| 国产精品久久久久一区二区三区| 国产精品一区二区果冻传媒| 精品国产成人系列| 久久99精品久久久久久动态图| 欧美日本在线一区| 亚洲v中文字幕| 7777精品伊人久久久大香线蕉的 | 国产精品久久久久久久久果冻传媒 | 国产精品乱码一区二三区小蝌蚪| 精品一区二区免费看| 日韩欧美久久久| 精品一区二区三区免费播放| 日韩亚洲欧美一区| 日本sm残虐另类| 日本电影亚洲天堂一区| 亚洲一区二区三区在线看| 最新不卡av在线| 成人av午夜电影| 亚洲欧美日韩精品久久久久| 91色九色蝌蚪| 亚洲成年人网站在线观看| 欧美日韩成人综合在线一区二区| 亚洲国产一区二区三区 | 麻豆精品新av中文字幕| 日韩欧美国产一区二区三区| 久久成人免费日本黄色| 久久久.com| 99久久精品国产一区| 一片黄亚洲嫩模| 日韩网站在线看片你懂的| 国产专区欧美精品| 国产精品第13页| 欧美三级日韩在线| 久久99国产乱子伦精品免费| 国产视频一区在线播放| 91亚洲午夜精品久久久久久| 亚洲第一福利视频在线| 欧美成人精品1314www| 懂色av噜噜一区二区三区av| 亚洲一二三四久久| 欧美不卡在线视频| 91麻豆免费在线观看| 美腿丝袜亚洲一区| 国产精品久久久久久久浪潮网站| 欧美日韩一级片在线观看| 狠狠色丁香久久婷婷综| 亚洲精品精品亚洲| 欧美xxxx在线观看| 91极品视觉盛宴| 国产一区二区三区美女| 亚洲中国最大av网站| 久久精品日韩一区二区三区| 欧美四级电影在线观看| 高清av一区二区| 蜜桃视频一区二区三区| 自拍偷自拍亚洲精品播放| 精品美女在线播放| 在线观看网站黄不卡| 国产91在线观看丝袜| 视频一区二区三区在线| 亚洲色图视频网站| 精品sm在线观看| 欧美人伦禁忌dvd放荡欲情| 成人av综合在线| 国内精品伊人久久久久影院对白| 亚洲一区电影777| 成人欧美一区二区三区黑人麻豆| 欧美videofree性高清杂交| 在线观看精品一区| www.在线欧美| 国产不卡免费视频| 国产一区激情在线| 精品综合久久久久久8888| 日韩精品一二区| 性感美女极品91精品| 亚洲精品写真福利| 亚洲丝袜制服诱惑| 中文字幕在线观看不卡视频| 久久蜜臀精品av| 欧美精品一区二区三区蜜桃视频| 欧美精品丝袜久久久中文字幕| 91高清视频免费看| 91福利区一区二区三区| 91影院在线观看| 一本大道久久a久久精品综合| 成人精品一区二区三区中文字幕| 国产一区不卡在线| 国产一区二区在线看| 韩国v欧美v亚洲v日本v| 麻豆freexxxx性91精品| 麻豆视频观看网址久久| 日本免费在线视频不卡一不卡二| 婷婷久久综合九色国产成人| 亚洲国产aⅴ成人精品无吗| 亚洲bt欧美bt精品| 天堂va蜜桃一区二区三区漫画版| 日日夜夜免费精品视频| 欧美aaaaaa午夜精品| 捆绑调教一区二区三区| 激情伊人五月天久久综合| 国产揄拍国内精品对白| 高清不卡一区二区在线| 一本一道久久a久久精品| 色偷偷久久人人79超碰人人澡| 欧美综合在线视频| 欧美日韩成人一区二区| 欧美不卡一区二区三区四区| 久久午夜老司机| 日韩一区有码在线| 亚洲国产另类av| 精品一区二区在线免费观看| 国产一区二区视频在线播放| 成人久久久精品乱码一区二区三区| 91一区二区在线观看| 制服丝袜日韩国产| 26uuu另类欧美| 亚洲精品欧美在线| 日本不卡在线视频| 成人性生交大合| 欧美日韩日本视频| 国产亚洲1区2区3区| 一区二区三区日韩| 韩国v欧美v日本v亚洲v| aaa欧美日韩| 欧美一区二区人人喊爽| 中文字幕乱码日本亚洲一区二区| 一区二区三区在线视频观看58| 人人精品人人爱| 99精品在线观看视频| 日韩一级免费观看| 亚洲丝袜自拍清纯另类| 久久99久久精品| 色悠悠亚洲一区二区| 精品久久一二三区| 亚洲夂夂婷婷色拍ww47| 国产乱一区二区| 欧美日韩国产在线播放网站| 国产视频在线观看一区二区三区| 亚洲国产一区二区三区 | 欧美日韩国产精品成人| 久久无码av三级| 五月婷婷久久综合| 99久久精品国产毛片| 欧美一级国产精品| 亚洲午夜在线观看视频在线| 国产高清在线观看免费不卡| 88在线观看91蜜桃国自产| 《视频一区视频二区| 经典三级一区二区| 91精品国产综合久久久蜜臀粉嫩| 中文字幕在线观看一区二区| 激情综合亚洲精品| 91麻豆精品国产91久久久资源速度 | 中文一区在线播放| 久久99精品国产麻豆不卡| 欧美日韩你懂的| 一区二区三区不卡在线观看| 成熟亚洲日本毛茸茸凸凹| 日韩欧美国产一区二区在线播放| 亚洲一区二区三区不卡国产欧美| 懂色中文一区二区在线播放| 久久嫩草精品久久久久| 久久精品国产久精国产| 日韩一级黄色片| 免费成人在线视频观看| 欧美日韩国产精选| 天天综合网 天天综合色| 欧美丝袜第三区| 亚洲午夜私人影院| 精品视频一区二区不卡| 亚洲高清免费一级二级三级| 91黄视频在线| 亚洲妇女屁股眼交7| 欧美综合在线视频| 亚洲成人精品一区二区| 欧美天堂一区二区三区| 亚洲sss视频在线视频| 8x福利精品第一导航| 免费成人在线网站| 精品福利视频一区二区三区|