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

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

?? p80211.c

?? Linux Wireless LAN Project 的目標是開發一個完整的
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* p80211.c: ieee 802.11 support functions*	--------------------------------------------------------------------*   Linux WLAN **   The contents of this file are subject to the Mozilla Public*   License Version 1.0 (the "License"); you may not use this file*   except in compliance with the License. You may obtain a copy of*   the License at http://www.mozilla.org/MPL/**   Software distributed under the License is distributed on an "AS*   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or*   implied. See the License for the specific language governing*   rights and limitations under the License.**   The initial developer of the original code is Mark S. Mathews*   <mark@absoval.com>.  Portions created by Mark S. Mathews*   are Copyright (C) 1998 AbsoluteValue Software, Inc.  All Rights Reserved.**	--------------------------------------------------------------------**	Provides the implementation of functions handling generic ieee 802.11*	networking issues.*/#include <linux/config.h>#include <wlan/wlan_compat.h>#if (WLAN_OS == WLAN_LINUX_KERNEL)/* The following prevents "kernel_version" from being set in this file. */#define __NO_VERSION__#include <linux/version.h>#include <linux/modversions.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/string.h>/* Standard driver includes */#include <linux/kernel.h>#elif (WLAN_OS == WLAN_LWOS)#include <wlan/wlan_compat.h>#include <kernel.h>#endif#include <wlan/p80211hdr.h>#include <wlan/p80211mgmt.h>/*--------------------------------------------------------------	p80211addr_to_str	Formats a 6 byte IEEE 802 address as a string of the form	xx:xx:xx:xx:xx:xx  where the bytes are in hex.	On entry Assumptions:		buf is at least 18 bytes long		addr is at least 6 bytes long--------------------------------------------------------------*/void p802addr_to_str( char *buf, UINT8 *addr){	int strindex = 0;	int addrindex;	for( addrindex = 0; addrindex < 6; addrindex++)	{		buf[strindex] = ((addr[addrindex] & 0xf0) >> 4) > 9 ?			'a' + (((addr[addrindex] & 0xf0) >> 4) - 10) :			'0' +  ((addr[addrindex] & 0xf0) >> 4);		buf[strindex +  1] = (addr[addrindex] & 0x0f) > 9 ?			'a' + ((addr[addrindex] & 0x0f) - 10) :			'0' +  (addr[addrindex] & 0x0f);		buf[strindex + 2] = ':';		strindex += 3;	}	buf[strindex] = '\0';	return;}/*--------------------------------------------------------------	Encode Beacon	Receives an fr_mgmt struct with its len and buf set.  Fills	in the rest of the members as far as possible.  On entry len	is the length of the buffer, on return len is the actual length	of the frame with all the currently encoded fields.  For 	frames where the caller adds variable/optional IEs, the caller	will have to update the len field.	On entry Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len, buf, and priv are zero--------------------------------------------------------------*/void wlan_mgmt_encode_beacon( wlan_fr_beacon_t  *f ){	f->type = WLAN_FSTYPE_BEACON;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT( f->len >= WLAN_BEACON_FR_MAXLEN );	/*-- Fixed Fields ----*/	f->ts		= (UINT64*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))							+ WLAN_BEACON_OFF_TS);	f->bcn_int	= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3)) 							+ WLAN_BEACON_OFF_BCN_INT);	f->cap_info	= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3)) 							+ WLAN_BEACON_OFF_CAPINFO);	f->len = WLAN_HDR_A3_LEN + WLAN_BEACON_OFF_CAPINFO + sizeof(*(f->cap_info));	return;}/*--------------------------------------------------------------	Decode Beacon	Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len and buf are zero--------------------------------------------------------------*/void wlan_mgmt_decode_beacon( wlan_fr_beacon_t  *f ){	wlan_ie_t	*ie_ptr; 	f->type = WLAN_FSTYPE_BEACON;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT(WLAN_FTYPE_MGMT == 					WLAN_GET_FC_FTYPE(ieee2host16(f->hdr->a3.fc)));	WLAN_ASSERT(WLAN_FSTYPE_BEACON == 					WLAN_GET_FC_FSTYPE(ieee2host16(f->hdr->a3.fc)));	/*-- Fixed Fields ----*/	f->ts		= (UINT64*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))							+ WLAN_BEACON_OFF_TS);	f->bcn_int	= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))							+ WLAN_BEACON_OFF_BCN_INT);	f->cap_info	= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3)) 							+ WLAN_BEACON_OFF_CAPINFO);	/*-- Information elements */	ie_ptr = (wlan_ie_t*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3)) 							+ WLAN_BEACON_OFF_SSID);	while( ((UINT8*)ie_ptr) < (f->buf + f->len) )	{		switch (ie_ptr->eid)		{			case WLAN_EID_SSID:				f->ssid = (wlan_ie_ssid_t*)ie_ptr;				break;			case WLAN_EID_SUPP_RATES:				f->supp_rates = (wlan_ie_supp_rates_t*)ie_ptr;				break;			case WLAN_EID_FH_PARMS:				f->fh_parms = (wlan_ie_fh_parms_t*)ie_ptr;				break;			case WLAN_EID_DS_PARMS:				f->ds_parms = (wlan_ie_ds_parms_t*)ie_ptr;				break;			case WLAN_EID_CF_PARMS:				f->cf_parms = (wlan_ie_cf_parms_t*)ie_ptr;				break;			case WLAN_EID_IBSS_PARMS:				f->ibss_parms = (wlan_ie_ibss_parms_t*)ie_ptr;				break;			case WLAN_EID_TIM:				f->tim = (wlan_ie_tim_t*)ie_ptr;				break;			default:				WLAN_LOG_WARNING1( 					"Unrecognized EID=%dd in beacon decode.\n",ie_ptr->eid);				WLAN_HEX_DUMP(3, "frm w/ bad eid:", f->buf, f->len );				break;		}		ie_ptr = (wlan_ie_t*)(((UINT8*)ie_ptr) + 2 + ie_ptr->len);	}		return;}/*--------------------------------------------------------------	Encode IBSS ATIM	Receives an fr_mgmt struct with its len and buf set.  Fills	in the rest of the members as far as possible.  On entry len	is the length of the buffer, on return len is the actual length	of the frame with all the currently encoded fields.  For 	frames where the caller adds variable/optional IEs, the caller	will have to update the len field.	On entry Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len, buf, and priv are zero--------------------------------------------------------------*/void  wlan_mgmt_encode_ibssatim( wlan_fr_ibssatim_t  *f ){	f->type = WLAN_FSTYPE_ATIM;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT( f->len >= WLAN_ATIM_FR_MAXLEN );	/*-- Fixed Fields ----*/	/*-- Information elements */	f->len = WLAN_HDR_A3_LEN;	return;}/*--------------------------------------------------------------	Decode IBSS ATIM	Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len and buf are zero--------------------------------------------------------------*/void  wlan_mgmt_decode_ibssatim( wlan_fr_ibssatim_t  *f ){	f->type = WLAN_FSTYPE_ATIM;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT(WLAN_FTYPE_MGMT == 					WLAN_GET_FC_FTYPE(ieee2host16(f->hdr->a3.fc)));	WLAN_ASSERT(WLAN_FSTYPE_ATIM == 					WLAN_GET_FC_FSTYPE(ieee2host16(f->hdr->a3.fc)));	/*-- Fixed Fields ----*/	/*-- Information elements */	return;}/*--------------------------------------------------------------	Encode Disassociation	Receives an fr_mgmt struct with its len and buf set.  Fills	in the rest of the members as far as possible.  On entry len	is the length of the buffer, on return len is the actual length	of the frame with all the currently encoded fields.  For 	frames where the caller adds variable/optional IEs, the caller	will have to update the len field.	On entry Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len, buf, and priv are zero--------------------------------------------------------------*/void wlan_mgmt_encode_disassoc( wlan_fr_disassoc_t  *f ){	f->type = WLAN_FSTYPE_DISASSOC;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT( f->len >= WLAN_DISASSOC_FR_MAXLEN );	/*-- Fixed Fields ----*/	f->reason	= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3)) 							+ WLAN_DISASSOC_OFF_REASON);	f->len = WLAN_HDR_A3_LEN + WLAN_DISASSOC_OFF_REASON + sizeof(*(f->reason));	return;}/*--------------------------------------------------------------	Decode Disassociation	Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len and buf are zero--------------------------------------------------------------*/void wlan_mgmt_decode_disassoc( wlan_fr_disassoc_t  *f ){	f->type = WLAN_FSTYPE_DISASSOC;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT(WLAN_FTYPE_MGMT == 					WLAN_GET_FC_FTYPE(ieee2host16(f->hdr->a3.fc)));	WLAN_ASSERT(WLAN_FSTYPE_DISASSOC == 					WLAN_GET_FC_FSTYPE(ieee2host16(f->hdr->a3.fc)));	/*-- Fixed Fields ----*/	f->reason	= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))							+ WLAN_DISASSOC_OFF_REASON);	/*-- Information elements */	return;}/*--------------------------------------------------------------	Encode Association Request	Receives an fr_mgmt struct with its len and buf set.  Fills	in the rest of the members as far as possible.  On entry len	is the length of the buffer, on return len is the actual length	of the frame with all the currently encoded fields.  For 	frames where the caller adds variable/optional IEs, the caller	will have to update the len field.	On entry Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len, buf, and priv are zero--------------------------------------------------------------*/void wlan_mgmt_encode_assocreq( wlan_fr_assocreq_t  *f ){	f->type = WLAN_FSTYPE_ASSOCREQ;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT( f->len >= WLAN_ASSOCREQ_FR_MAXLEN );	/*-- Fixed Fields ----*/	f->cap_info		= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3)) 								+ WLAN_ASSOCREQ_OFF_CAP_INFO);	f->listen_int	= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3)) 								+ WLAN_ASSOCREQ_OFF_LISTEN_INT);	f->len = WLAN_HDR_A3_LEN + 			WLAN_ASSOCREQ_OFF_LISTEN_INT + 			sizeof(*(f->listen_int));	return;}/*--------------------------------------------------------------	Decode Association Request	Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len and buf are zero--------------------------------------------------------------*/void wlan_mgmt_decode_assocreq( wlan_fr_assocreq_t  *f ){	wlan_ie_t	*ie_ptr; 	f->type = WLAN_FSTYPE_ASSOCREQ;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT(WLAN_FTYPE_MGMT == 					WLAN_GET_FC_FTYPE(ieee2host16(f->hdr->a3.fc)));	WLAN_ASSERT(WLAN_FSTYPE_ASSOCREQ == 					WLAN_GET_FC_FSTYPE(ieee2host16(f->hdr->a3.fc)));	/*-- Fixed Fields ----*/	f->cap_info		= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))								+ WLAN_ASSOCREQ_OFF_CAP_INFO);	f->listen_int	= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))								+ WLAN_ASSOCREQ_OFF_LISTEN_INT);	/*-- Information elements */	ie_ptr = (wlan_ie_t*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))							+ WLAN_ASSOCREQ_OFF_SSID);	while( ((UINT8*)ie_ptr) < (f->buf + f->len) )	{		switch (ie_ptr->eid)		{			case WLAN_EID_SSID:				f->ssid = (wlan_ie_ssid_t*)ie_ptr;				break;			case WLAN_EID_SUPP_RATES:				f->supp_rates = (wlan_ie_supp_rates_t*)ie_ptr;				break;			default:				WLAN_LOG_WARNING1(						"Unrecognized EID=%dd in assocreq decode.\n",						ie_ptr->eid);				WLAN_HEX_DUMP(3, "frm w/ bad eid:", f->buf, f->len );				break;		}		ie_ptr = (wlan_ie_t*)(((UINT8*)ie_ptr) + 2 + ie_ptr->len);	}	return;}/*--------------------------------------------------------------	Encode Association Response	Receives an fr_mgmt struct with its len and buf set.  Fills	in the rest of the members as far as possible.  On entry len	is the length of the buffer, on return len is the actual length	of the frame with all the currently encoded fields.  For 	frames where the caller adds variable/optional IEs, the caller	will have to update the len field.	On entry Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len, buf, and priv are zero--------------------------------------------------------------*/void wlan_mgmt_encode_assocresp( wlan_fr_assocresp_t  *f ){	f->type = WLAN_FSTYPE_ASSOCRESP;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT( f->len >= WLAN_ASSOCRESP_FR_MAXLEN );	/*-- Fixed Fields ----*/	f->cap_info		= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))								+ WLAN_ASSOCRESP_OFF_CAP_INFO);	f->status		= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))								+ WLAN_ASSOCRESP_OFF_STATUS);	f->aid			= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))								+ WLAN_ASSOCRESP_OFF_AID);	f->len = WLAN_HDR_A3_LEN + WLAN_ASSOCRESP_OFF_AID + sizeof(*(f->aid));	return;}/*--------------------------------------------------------------	Decode Association Response	Assumptions:		1) f->len and f->buf are already set		2) f->len is the length of the MAC header + data, the CRC		   is NOT included		3) all members except len and buf are zero--------------------------------------------------------------*/void wlan_mgmt_decode_assocresp( wlan_fr_assocresp_t  *f ){	f->type = WLAN_FSTYPE_ASSOCRESP;	f->hdr = (p80211_hdr_t*)f->buf;	WLAN_ASSERT(WLAN_FTYPE_MGMT == 					WLAN_GET_FC_FTYPE(ieee2host16(f->hdr->a3.fc)));	WLAN_ASSERT(WLAN_FSTYPE_ASSOCRESP == 					WLAN_GET_FC_FSTYPE(ieee2host16(f->hdr->a3.fc)));	/*-- Fixed Fields ----*/	f->cap_info		= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))								+ WLAN_ASSOCRESP_OFF_CAP_INFO);	f->status		= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))								+ WLAN_ASSOCRESP_OFF_STATUS);	f->aid			= (UINT16*)(WLAN_HDR_A3_DATAP(&(f->hdr->a3))								+ WLAN_ASSOCRESP_OFF_AID);	/*-- Information elements */	f->supp_rates	= (wlan_ie_supp_rates_t*)					(WLAN_HDR_A3_DATAP(&(f->hdr->a3))					+ WLAN_ASSOCRESP_OFF_SUPP_RATES);	return;}/*--------------------------------------------------------------	Encode Reassociation Request	Receives an fr_mgmt struct with its len and buf set.  Fills	in the rest of the members as far as possible.  On entry len	is the length of the buffer, on return len is the actual length	of the frame with all the currently encoded fields.  For 	frames where the caller adds variable/optional IEs, the caller	will have to update the len field.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国三级在线一区| av中文字幕一区| 成人国产电影网| 日韩欧美中文字幕一区| 亚洲欧洲一区二区在线播放| 美国精品在线观看| 91视频在线观看| 久久久精品天堂| 免费一级欧美片在线观看| 欧洲在线/亚洲| 国产精品福利一区二区三区| 麻豆成人久久精品二区三区小说| 色老综合老女人久久久| 欧美激情在线一区二区| 精品一区二区在线免费观看| 欧美日韩成人综合在线一区二区| 亚洲色图都市小说| 成人黄色国产精品网站大全在线免费观看| 日韩免费一区二区| 日本va欧美va精品发布| 欧美精品一卡二卡| 亚洲高清久久久| 欧美三区免费完整视频在线观看| 亚洲日本在线a| 91首页免费视频| 亚洲码国产岛国毛片在线| 丰满少妇在线播放bd日韩电影| 久久亚洲影视婷婷| 黄色成人免费在线| 精品电影一区二区| 狠狠色丁香久久婷婷综合丁香| 精品卡一卡二卡三卡四在线| 久久99在线观看| 久久影视一区二区| 国产成人午夜精品影院观看视频| 精品国产区一区| 国产精品一区免费视频| 欧美国产精品v| 99久久精品国产导航| 亚洲图片欧美激情| 色婷婷av一区| 日本麻豆一区二区三区视频| 日韩免费视频一区二区| 国产精品一区二区在线播放 | 中文字幕第一区综合| 国产成人免费网站| 日韩毛片视频在线看| 色老汉av一区二区三区| 亚洲成人一区二区在线观看| 69av一区二区三区| 国产乱淫av一区二区三区| 国产精品乱码久久久久久| av一区二区三区黑人| 亚洲精品免费在线观看| 欧美日韩国产首页在线观看| 久久丁香综合五月国产三级网站| 久久综合色之久久综合| 不卡视频在线看| 天天色综合天天| 久久久精品免费免费| 一本久道久久综合中文字幕| 亚洲v精品v日韩v欧美v专区| 26uuu欧美日本| 日本道精品一区二区三区| 日一区二区三区| 欧美激情一区二区| 欧美日韩激情一区二区| 国产成人av电影免费在线观看| 尤物av一区二区| 2021国产精品久久精品| 欧美中文字幕一区二区三区| 国产一区二区三区在线观看免费 | 成人高清免费在线播放| 亚洲国产精品久久一线不卡| 精品福利一二区| 欧美综合一区二区| 国产91对白在线观看九色| 日韩精品国产欧美| 综合色天天鬼久久鬼色| 久久品道一品道久久精品| 欧美三级中文字幕在线观看| 成人sese在线| 国产一区二区伦理片| 强制捆绑调教一区二区| 一区二区在线观看免费| 国产亚洲福利社区一区| 日韩欧美亚洲国产精品字幕久久久 | 高清久久久久久| 日本成人在线网站| 亚洲午夜精品在线| 日韩一区欧美一区| 国产女同互慰高潮91漫画| 欧美一区二区啪啪| 欧美网站大全在线观看| 91影视在线播放| jvid福利写真一区二区三区| 国产毛片精品视频| 精品一区二区三区久久| 奇米888四色在线精品| 天天综合色天天综合| 一区二区三区鲁丝不卡| 亚洲欧洲精品天堂一级| 国产精品视频一二| 久久久国产一区二区三区四区小说| 欧美日韩国产精选| 欧美日韩精品欧美日韩精品一| 欧美性猛片aaaaaaa做受| 色系网站成人免费| 91美女在线观看| 99久久久无码国产精品| 成人黄动漫网站免费app| 国产福利不卡视频| 福利一区在线观看| 成人在线视频一区| 成a人片亚洲日本久久| 成人禁用看黄a在线| a美女胸又www黄视频久久| 成人性生交大片免费看在线播放| 懂色av一区二区夜夜嗨| 成人一区在线观看| 色婷婷亚洲精品| 在线一区二区三区| 6080国产精品一区二区| 日韩视频一区二区三区 | 欧美美女直播网站| 日韩一区二区三区四区| 欧美videossexotv100| 欧美精品一区二区三区久久久| 久久久久97国产精华液好用吗| 欧美国产综合一区二区| 亚洲卡通动漫在线| 婷婷夜色潮精品综合在线| 精品写真视频在线观看| 成人aaaa免费全部观看| 欧美综合一区二区| 日韩美女一区二区三区四区| 国产无人区一区二区三区| 日韩理论片在线| 蜜臀91精品一区二区三区| 国产成人午夜99999| 在线观看视频91| 久久综合色综合88| 亚洲精选在线视频| 久久精品72免费观看| 99r国产精品| 欧美一级日韩一级| 国产精品成人免费在线| 免费av成人在线| 91毛片在线观看| 日韩精品一区二区三区蜜臀| 亚洲色图视频网| 国产一区二区三区日韩| 欧洲激情一区二区| 久久久久9999亚洲精品| 石原莉奈在线亚洲二区| 成人精品视频一区| 日韩精品中文字幕在线一区| 亚洲乱码国产乱码精品精小说| 久久99精品一区二区三区| 色综合婷婷久久| 国产日韩欧美在线一区| 日韩av电影免费观看高清完整版| 不卡的av在线| 久久综合av免费| 日韩av一级电影| 在线观看一区二区精品视频| 国产女人水真多18毛片18精品视频 | 国产九九视频一区二区三区| 欧美亚男人的天堂| 中文字幕在线观看不卡| 精品在线一区二区| 欧美日韩一区高清| 亚洲免费观看高清完整版在线观看熊| 国产尤物一区二区在线| 欧美日韩在线播放| 一区二区三区高清| 91在线丨porny丨国产| 久久精品日产第一区二区三区高清版 | 日韩成人一级大片| 欧美图区在线视频| 亚洲色图.com| 成人黄色在线看| 国产午夜精品久久久久久免费视| 麻豆专区一区二区三区四区五区| 欧美日韩一级片网站| 一区二区三区在线视频观看| aaa欧美大片| 亚洲欧洲日产国码二区| 成人av免费在线播放| 久久久青草青青国产亚洲免观| 激情综合网激情| 欧美成人精品二区三区99精品| 五月激情综合色| 91精品蜜臀在线一区尤物| 午夜激情久久久| 91麻豆精品国产91久久久更新时间| 亚洲一区二区三区美女| 欧美中文字幕不卡| 亚洲国产精品一区二区久久恐怖片| 91麻豆产精品久久久久久|