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

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

?? assoc.c

?? 經過修改的在uClinux2.6上正常運行的ralink rt2571芯片組的設備驅動程序.
?? C
?? 第 1 頁 / 共 3 頁
字號:
			;
		}
#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,
							  END_OF_ARGS);
			FrameLen += TmpLen;
		}
#endif
		
		MiniportMMRequest(pAd, pOutBuffer, FrameLen);
		
		RTMPSetTimer(pAd, &pAd->MlmeAux.AssocTimer, Timeout);
		pAd->Mlme.AssocMachine.CurrState = ASSOC_WAIT_RSP;
	} 
	else 
	{
		DBGPRINT(RT_DEBUG_TRACE,"ASSOC - MlmeAssocReqAction() sanity check failed. BUG!!!!!! \n");
		pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
		Status = MLME_INVALID_FORMAT;
		MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_ASSOC_CONF, 2, &Status);
	}

}

/*
	==========================================================================
	Description:
		mlme reassoc req handling procedure
	Parameters:
		Elem - 
	Pre:
		-# SSID  (Adapter->PortCfg.ssid[])
		-# BSSID (AP address, Adapter->PortCfg.bssid)
		-# Supported rates (Adapter->PortCfg.supported_rates[])
		-# Supported rates length (Adapter->PortCfg.supported_rates_len)
		-# Tx power (Adapter->PortCfg.tx_power)
		
	==========================================================================
 */
VOID MlmeReassocReqAction(
	IN PRTMP_ADAPTER pAd, 
	IN MLME_QUEUE_ELEM *Elem) 
{
	UCHAR			ApAddr[6];
	HEADER_802_11	ReassocHdr;	
	UCHAR			WmeIe[9] = {IE_VENDOR_SPECIFIC, 0x07, 0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, STA_QOS_CAPABILITY};
	USHORT			CapabilityInfo, ListenIntv;
	ULONG			Timeout;
	ULONG			FrameLen = 0;
	ULONG			tmp;
	PUCHAR			pOutBuffer = NULL;
	USHORT			Status;
	USHORT			NStatus;
	
	// Block all authentication request durning WPA block period
	if (pAd->PortCfg.bBlockAssoc == TRUE)
	{
		DBGPRINT(RT_DEBUG_TRACE, "ASSOC - Block ReAssoc request durning WPA block period!\n");
		pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
		Status = MLME_STATE_MACHINE_REJECT;
		MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_REASSOC_CONF, 2, &Status);
	}	
	// the parameters are the same as the association
	else if(MlmeAssocReqSanity(pAd, Elem->Msg, Elem->MsgLen, ApAddr, &CapabilityInfo, &Timeout, &ListenIntv))
	{
		RTMPCancelTimer(&pAd->MlmeAux.ReassocTimer);

		// allocate and send out ReassocReq frame
		NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);	//Get an unused nonpaged memory
		if (NStatus != NDIS_STATUS_SUCCESS)
		{
			DBGPRINT(RT_DEBUG_TRACE,"ASSOC - MlmeReassocReqAction() allocate memory failed \n");
			pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
			Status = MLME_FAIL_NO_RESOURCE;
			MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_REASSOC_CONF, 2, &Status);
			return;
		}

		COPY_MAC_ADDR(pAd->MlmeAux.Bssid, ApAddr);

		// make frame, use bssid as the AP address??
		DBGPRINT(RT_DEBUG_TRACE, "ASSOC - Send RE-ASSOC request...\n");
		MgtMacHeaderInit(pAd, &ReassocHdr, SUBTYPE_REASSOC_REQ, 0, ApAddr, ApAddr);
		MakeOutgoingFrame(pOutBuffer,				&FrameLen,
						  sizeof(HEADER_802_11),	&ReassocHdr,
						  2,						&CapabilityInfo,
						  2,						&ListenIntv,
						  MAC_ADDR_LEN, 			ApAddr,
						  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;
		}
#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,
							  END_OF_ARGS);
			FrameLen += TmpLen;
		}
#endif
		MiniportMMRequest(pAd, pOutBuffer, FrameLen);
		
		RTMPSetTimer(pAd, &pAd->MlmeAux.ReassocTimer, Timeout);
		pAd->Mlme.AssocMachine.CurrState = REASSOC_WAIT_RSP;
	} 
	else 
	{
		DBGPRINT(RT_DEBUG_TRACE,"ASSOC - MlmeReassocReqAction() sanity check failed. BUG!!!! \n");
		pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
		Status = MLME_INVALID_FORMAT;
		MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_REASSOC_CONF, 2, &Status);
	}
}

/*
    ==========================================================================
    Description:
        Upper layer issues disassoc request
    Parameters:
        Elem -
    ==========================================================================
 */
VOID MlmeDisassocReqAction(
    IN PRTMP_ADAPTER pAd, 
    IN MLME_QUEUE_ELEM *Elem) 
{
    PMLME_DISASSOC_REQ_STRUCT pDisassocReq;
    HEADER_802_11         DisassocHdr;
    PCHAR                 pOutBuffer = NULL;
    ULONG                 FrameLen = 0;
    ULONG                 Timeout = 0;
    USHORT                Status;
    USHORT                NStatus;
#if WPA_SUPPLICANT_SUPPORT
    union iwreq_data      wrqu;
#endif
    
    // skip sanity check
    pDisassocReq = (PMLME_DISASSOC_REQ_STRUCT)(Elem->Msg);

    // allocate and send out DeassocReq frame
    NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);  //Get an unused nonpaged memory
    if (NStatus != NDIS_STATUS_SUCCESS)
    {
        DBGPRINT(RT_DEBUG_TRACE, "ASSOC - MlmeDisassocReqAction() allocate memory failed\n");
        pAd->Mlme.AssocMachine.CurrState = ASSOC_IDLE;
        Status = MLME_FAIL_NO_RESOURCE;
        MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_DISASSOC_CONF, 2, &Status);
        return;
    }

    RTMPCancelTimer(&pAd->MlmeAux.DisassocTimer);
    
    DBGPRINT(RT_DEBUG_TRACE, "ASSOC - Send DISASSOC request\n");
    MgtMacHeaderInit(pAd, &DisassocHdr, SUBTYPE_DISASSOC, 0, pDisassocReq->Addr, pDisassocReq->Addr);
    MakeOutgoingFrame(pOutBuffer,           &FrameLen, 
                      sizeof(HEADER_802_11),&DisassocHdr, 
                      2,                    &pDisassocReq->Reason, 
                      END_OF_ARGS);
    MiniportMMRequest(pAd, pOutBuffer, FrameLen);
	

	// Set the control aux SSID to prevent it reconnect to old SSID
	// Since calling this indicate user don't want to connect to that SSID anymore.
	// 2004-11-10 can't reset this info, cause it may be the new SSID that user requests for
	// pAd->MlmeAux.SsidLen = MAX_LEN_OF_SSID;
	// NdisZeroMemory(pAd->MlmeAux.Ssid, MAX_LEN_OF_SSID);
    // NdisZeroMemory(pAd->MlmeAux.Bssid, MAC_ADDR_LEN);
    
#if WPA_SUPPLICANT_SUPPORT
    if (pAd->PortCfg.WPA_Supplicant == TRUE) {       
        //send disassociate event to wpa_supplicant
        memset(&wrqu, 0, sizeof(wrqu));
        wrqu.data.flags = RT_DISASSOC_EVENT_FLAG;
        wireless_send_event(pAd->net_dev, IWEVCUSTOM, &wrqu, NULL);
    } 
#endif

    pAd->PortCfg.DisassocReason = REASON_DISASSOC_STA_LEAVING;
    COPY_MAC_ADDR(pAd->PortCfg.DisassocSta, pDisassocReq->Addr);

    RTMPSetTimer(pAd, &pAd->MlmeAux.DisassocTimer, Timeout);
    
    pAd->Mlme.AssocMachine.CurrState = DISASSOC_WAIT_RSP;
}

#if WPA_SUPPLICANT_SUPPORT
#ifdef DBG
static void _rtmp_hexdump(int level, const char *title, const u8 *buf,
			 size_t len, int show)
{
	size_t i;
	if (level < RTDebugLevel)
		return;
	printk("%s - hexdump(len=%lu):", title, (unsigned long) len);
	if (show) {
		for (i = 0; i < len; i++)
			printk(" %02x", buf[i]);
	} else {
		printk(" [REMOVED]");
	}
	printk("\n");
}

void rtmp_hexdump(int level, const char *title, const u8 *buf, size_t len)
{
	_rtmp_hexdump(level, title, buf, len, 1);
}
#endif

NDIS_STATUS miniport_query_info(
     IN PRTMP_ADAPTER pAd,
     IN USHORT oid,
     OUT void *buf, 
     OUT ULONG bufsize)
{	
    // First add AssocInfo
	NdisMoveMemory(buf, &pAd->PortCfg.AssocInfo, sizeof(NDIS_802_11_ASSOCIATION_INFORMATION));
	// Second add ReqVarIEs
	NdisMoveMemory(buf + sizeof(NDIS_802_11_ASSOCIATION_INFORMATION), pAd->PortCfg.ReqVarIEs, pAd->PortCfg.ReqVarIELen);
	// Third add ResVarIEs
	NdisMoveMemory(buf + sizeof(NDIS_802_11_ASSOCIATION_INFORMATION) + pAd->PortCfg.ReqVarIELen, pAd->PortCfg.ResVarIEs, pAd->PortCfg.ResVarIELen);
	
	return 0;
}

VOID link_status_handler(
    IN PRTMP_ADAPTER pAd)
{
	NDIS_802_11_ASSOCIATION_INFORMATION *ndis_assoc_info;

	unsigned char *wpa_assoc_info_req, *wpa_assoc_info_resp, *ies;
	unsigned char *p;
	int i;
	unsigned char *assoc_info;
	union iwreq_data wrqu;
	NDIS_STATUS res;
	
	const int assoc_size = sizeof(*ndis_assoc_info) + IW_CUSTOM_MAX;
	assoc_info = kmalloc(assoc_size, MEM_ALLOC_FLAG);
	if (!assoc_info) {
              DBGPRINT(RT_DEBUG_TRACE, "couldn't allocate memory\n");
		return;
	}
	memset(assoc_info, 0, assoc_size);
	ndis_assoc_info = (NDIS_802_11_ASSOCIATION_INFORMATION *)assoc_info;
       
	res = miniport_query_info(pAd, OID_802_11_ASSOCIATION_INFORMATION,
				  assoc_info, assoc_size);
	if (res) {
		DBGPRINT(RT_DEBUG_TRACE, "query assoc_info failed\n");
		kfree(assoc_info);
		return;
	}

	/*
	 * TODO: backwards compatibility would require that IWEVCUSTOM
	 * is sent even if WIRELESS_EXT > 17. This version does not do
	 * this in order to allow wpa_supplicant to be tested with
	 * WE-18.
	 */

#ifdef DBG
	rtmp_hexdump(RT_DEBUG_TRACE, "ASSOCINFO", (const u8 *) ndis_assoc_info,
		    sizeof(NDIS_802_11_ASSOCIATION_INFORMATION));
#endif

    wpa_assoc_info_req = kmalloc(IW_CUSTOM_MAX, MEM_ALLOC_FLAG);
	if (!wpa_assoc_info_req) {
		DBGPRINT(RT_DEBUG_TRACE, "couldn't allocate memory\n");
		kfree(wpa_assoc_info_req);
		return;
	}

    //send ReqIEs
    memset(wpa_assoc_info_req, 0, IW_CUSTOM_MAX);
	p = wpa_assoc_info_req;
	p += sprintf(p, "ASSOCINFO(ReqIEs=");
	ies = ((char *)ndis_assoc_info) +
		ndis_assoc_info->OffsetRequestIEs;
	for (i = 0; i < ndis_assoc_info->RequestIELength; i++)
		p += sprintf(p, "%02x", ies[i]);

	memset(&wrqu, 0, sizeof(wrqu));
    wrqu.data.length = p - wpa_assoc_info_req;
	wrqu.data.flags = RT_REQIE_EVENT_FLAG;
	DBGPRINT(RT_DEBUG_TRACE, "adding %d bytes\n", wrqu.data.length);
	wireless_send_event(pAd->net_dev, IWEVCUSTOM, &wrqu, wpa_assoc_info_req);

    wpa_assoc_info_resp = kmalloc(IW_CUSTOM_MAX, MEM_ALLOC_FLAG);
	if (!wpa_assoc_info_resp) {
		DBGPRINT(RT_DEBUG_TRACE, "couldn't allocate memory\n");
		kfree(wpa_assoc_info_resp);
		return;
	}

    //send RespIEs
	memset(wpa_assoc_info_resp, 0, IW_CUSTOM_MAX);
	p = wpa_assoc_info_resp;
	p += sprintf(p, " RespIEs=");
	ies = ((char *)ndis_assoc_info) +
		ndis_assoc_info->OffsetResponseIEs;
	for (i = 0; i < ndis_assoc_info->ResponseIELength; i++)
		p += sprintf(p, "%02x", ies[i]);
	p += sprintf(p, ")");

    memset(&wrqu, 0, sizeof(wrqu));
	wrqu.data.length = p - wpa_assoc_info_resp;
	wrqu.data.flags = RT_RESPIE_EVENT_FLAG;
	wireless_send_event(pAd->net_dev, IWEVCUSTOM, &wrqu, wpa_assoc_info_resp);

        memset(&wrqu, 0, sizeof(wrqu));
        wrqu.data.flags = RT_ASSOCINFO_EVENT_FLAG;
        wireless_send_event(pAd->net_dev, IWEVCUSTOM, &wrqu, NULL);

#if 0
	/* we need 28 extra bytes for the format strings */
	if ((ndis_assoc_info->RequestIELength +
	     ndis_assoc_info->ResponseIELength + 28) > IW_CUSTOM_MAX) {
		//WARNING("information element is too long! (%u,%u),"
		//	"association information dropped",
		//	ndis_assoc_info->RequestIELength,
		//	ndis_assoc_info->ResponseIELength);
		DBGPRINT(RT_DEBUG_TRACE, "information element is too long! "
			"association information dropped\n");
		kfree(assoc_info);
		return;
	}

	wpa_assoc_info = kmalloc(IW_CUSTOM_MAX, MEM_ALLOC_FLAG);
	if (!wpa_assoc_info) {
		DBGPRINT(RT_DEBUG_TRACE, "couldn't allocate memory\n");
		kfree(assoc_info);
		return;
	}
	p = wpa_assoc_info;
	p += sprintf(p, "ASSOCINFO(ReqIEs=");
	ies = ((char *)ndis_assoc_info) +
		ndis_assoc_info->OffsetRequestIEs;
	for (i = 0; i < ndis_assoc_info->RequestIELength; i++)
		p += sprintf(p, "%02x", ies[i]);

       
	p += sprintf(p, " RespIEs=");
	ies = ((char *)ndis_assoc_info) +
		ndis_assoc_info->OffsetResponseIEs;
	for (i = 0; i < ndis_assoc_info->ResponseIELength; i++)
		p += sprintf(p, "%02x", ies[i]);

	p += sprintf(p, ")");

	memset(&wrqu, 0, sizeof(wrqu));
	wrqu.data.length = p - wpa_assoc_info;
	//DBGPRINT(RT_DEBUG_TRACE, "adding %d bytes\n", wrqu.data.length);	
	wireless_send_event(pAd->net_dev, IWEVCUSTOM, &wrqu, wpa_assoc_info);

	kfree(wpa_assoc_info);
#endif
    kfree(wpa_assoc_info_req);
	kfree(wpa_assoc_info_resp);
	kfree(assoc_info);

	return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品自拍| 色呦呦一区二区三区| 成人免费视频播放| 欧美老肥妇做.爰bbww| 国产拍欧美日韩视频二区| 亚洲va欧美va国产va天堂影院| 精品无码三级在线观看视频| 欧美性xxxxxx少妇| 中文字幕一区免费在线观看| 免费在线观看精品| 在线免费精品视频| 国产精品麻豆视频| 精品一区二区三区免费观看| 91福利在线免费观看| 国产精品免费久久久久| 国产一区二区三区在线观看免费| 欧美日韩精品欧美日韩精品一| 最新日韩在线视频| 国产精品123区| 久久麻豆一区二区| 国内成+人亚洲+欧美+综合在线| 欧美精品一级二级| 亚洲福利视频一区二区| 91片在线免费观看| 亚洲欧美视频在线观看视频| 成人精品免费看| 国产三级精品三级在线专区| 极品少妇一区二区| 欧美精品一区二区在线观看| 美女高潮久久久| 日韩欧美视频一区| 久久99久久99| 亚洲精品一区二区三区四区高清| 免费高清在线一区| 日韩欧美一级二级三级| 久久se精品一区二区| 日韩精品中文字幕在线一区| 日本伊人精品一区二区三区观看方式| 欧美日韩在线三区| 日日骚欧美日韩| 日韩欧美高清dvd碟片| 久久国产精品色| 久久影视一区二区| 丁香六月综合激情| 亚洲欧美日韩在线播放| 91福利在线播放| 青青草伊人久久| 26uuu国产一区二区三区| 国产精品影音先锋| 中文字幕一区二区三区在线观看| 99国产麻豆精品| 亚洲一区二区三区四区五区中文| 欧美日韩午夜精品| 久久精品国产99| 国产精品视频你懂的| 色婷婷av一区二区三区之一色屋| 三级影片在线观看欧美日韩一区二区| 日韩三级精品电影久久久| 精品一区二区久久| 亚洲日本一区二区三区| 在线91免费看| 国产成人精品综合在线观看| 亚洲精品自拍动漫在线| 欧美一区午夜视频在线观看| 国产盗摄一区二区| 亚洲小说欧美激情另类| 亚洲精品一区二区三区福利| 91色.com| 国产一区在线看| 一区二区三区四区在线免费观看 | 国产91色综合久久免费分享| 国产精品高潮久久久久无| 欧美日韩国产乱码电影| 国产成人精品免费视频网站| 亚洲主播在线观看| 欧美激情一区在线观看| 欧美人与z0zoxxxx视频| 国产98色在线|日韩| 日韩电影在线一区二区三区| 亚洲视频一二三| 久久女同互慰一区二区三区| 欧美三日本三级三级在线播放| 国产精品一区二区三区网站| 午夜精品一区二区三区三上悠亚 | 成人性生交大片免费| 亚洲第一福利一区| 自拍偷自拍亚洲精品播放| 欧美不卡在线视频| 欧美无乱码久久久免费午夜一区| 国产丶欧美丶日本不卡视频| 美腿丝袜亚洲三区| 性做久久久久久| 伊人夜夜躁av伊人久久| 一区精品在线播放| 国产亚洲污的网站| xf在线a精品一区二区视频网站| 欧美日韩五月天| 在线观看视频一区二区欧美日韩| 国产黄色精品网站| 精品综合久久久久久8888| 五月天亚洲精品| 亚洲第一会所有码转帖| 亚洲免费在线看| 五月激情综合网| 亚洲综合色视频| 一片黄亚洲嫩模| 一区二区三区不卡在线观看 | 久久久久久99久久久精品网站| 欧美日韩国产中文| 欧美性欧美巨大黑白大战| 91性感美女视频| 91蝌蚪porny| 91在线免费播放| 91丝袜高跟美女视频| 91丨国产丨九色丨pron| 99久精品国产| 在线日韩国产精品| 欧美日韩亚洲综合在线| 欧美精品在线观看一区二区| 欧美精品乱码久久久久久| 欧美精品免费视频| 日韩女优电影在线观看| 精品国产制服丝袜高跟| 久久精品综合网| 国产精品国产三级国产aⅴ原创| 亚洲国产精品黑人久久久| 欧美极品另类videosde| 国产精品传媒视频| 一区二区欧美国产| 亚洲v中文字幕| 精品一二三四区| av在线不卡电影| 在线视频一区二区三| 欧美日韩一区二区三区免费看| 欧美日韩视频在线观看一区二区三区 | 欧美一区二区三区思思人| 欧美不卡激情三级在线观看| 久久久久免费观看| 亚洲日本va午夜在线电影| 亚洲一级在线观看| 男人的j进女人的j一区| 国产**成人网毛片九色| 欧美午夜精品电影| 精品久久国产字幕高潮| 国产色91在线| 午夜精品久久久久影视| 国产精品中文字幕欧美| 99视频热这里只有精品免费| 欧美精品亚洲一区二区在线播放| 久久伊99综合婷婷久久伊| 亚洲精品免费播放| 精品午夜一区二区三区在线观看| 91丨九色porny丨蝌蚪| 日韩视频一区二区| 一区二区三区在线观看欧美| 紧缚奴在线一区二区三区| 色成年激情久久综合| 久久一区二区三区四区| 一区二区视频免费在线观看| 韩国v欧美v亚洲v日本v| 欧洲在线/亚洲| 久久久.com| 六月丁香综合在线视频| 在线视频欧美区| 国产免费成人在线视频| 日韩中文字幕一区二区三区| www..com久久爱| 亚洲精品在线观| 免费看欧美女人艹b| 在线看一区二区| 国产精品久久久久久久久动漫| 秋霞电影网一区二区| 欧美亚男人的天堂| 国产精品成人一区二区艾草| 久久精品久久99精品久久| 欧美日韩精品一区视频| 一区二区三区在线免费视频| 成人午夜短视频| 欧美va亚洲va香蕉在线| 日本欧美一区二区在线观看| 91福利国产精品| 亚洲欧美一区二区三区极速播放 | 国产一区二区免费视频| 欧美久久婷婷综合色| 一区二区三区精密机械公司| 99久久精品国产一区二区三区| 久久久久久免费网| 极品少妇xxxx偷拍精品少妇| 日韩丝袜美女视频| 裸体在线国模精品偷拍| 欧美一区二区三区小说| 日韩电影免费在线看| 欧美卡1卡2卡| 爽好多水快深点欧美视频| 欧美日韩国产一二三| 亚洲午夜免费福利视频| 欧日韩精品视频| 天天影视涩香欲综合网| 欧美浪妇xxxx高跟鞋交| 日韩电影在线一区|