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

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

?? snmp_process.c

?? 在freescale 的ne64上開發的源代碼
?? C
字號:
#include "snmptype.h"
#include "snmpdef.h"
#include "snmpfunc.h"

#include "snmp_ol100cr.h"


SNMP_PKT_T gSnmpPkt;
_INT16 mib2_SystemScalar_Handler(_UINT8 request,void *ptr);
#if 0
_INT16 mib2_IfScalar_Handler(_UINT8 request,void *ptr);
_INT16 mib2_IfTable_Handler(_UINT8 request,void *ptr);
#endif

SNMP_OID_TABLE_T g_mib_table[]= {
	{SNMP_SCALAR,{1,3,6,1,2,1,1}, 8 , 1 , 7 , mib2_SystemScalar_Handler},
	{SNMP_SCALAR ,{1,3,6,1,4,1,3807,1,100,1} , 11, 1 ,10, ol100crLocDeviceInfo_Handler},
	{SNMP_TABLE , {1,3,6,1,4,1,3807,1,100,2,1,1} , 13, 1,12,ol100crLocPortTableEntry_Handler},
	{SNMP_TABLE , {1,3,6,1,4,1,3807,1,100,2,2,1} , 13, 1,7,ol100crLocPortInfoEntry_Handler},
	{SNMP_TABLE , {1,3,6,1,4,1,3807,1,100,2,3,1} , 13, 1,31,ol100crLocPortStasticEntry_Handler},
#if 0
	{SNMP_SCALAR,{1,3,6,1,2,1,2}, 8 , 1 , 1 , mib2_IfScalar_Handler},
	{SNMP_TABLE,  {1,3,6,1,2,1,2,2,1}, 10 , 1 , 22, mib2_IfTable_Handler},
#endif
	{SNMP_TERMINATOR}
};
#if 1
_UINT32 Uint32Get(VB_T *vbp)
{
	return (_UINT32)(vbp->value_u.v_counter);
}

_INT32  Int32Get(VB_T *vbp)
{
	return (_INT32)(vbp->value_u.v_number);
}
_UINT8  * octetGet(VB_T *vbp)
{
	return (_UINT8 *)(vbp->value_u.v_string);
}
_UINT32 * oidGet(VB_T *vbp)
{
	return (_UINT32 *)(vbp->value_u.v_object.component_list);
}

void Uint32Set(VB_T *vbp,_UINT32 value)
{
	vbp->vb_data_flags_n_type = VT_UNSIGNED32;
	vbp->value_u.v_counter=value;
}

void GaugeSet(VB_T *vbp,_UINT32 value)
{
	vbp->vb_data_flags_n_type = VT_GAUGE;
	vbp->value_u.v_counter=value;
}

void CounterSet(VB_T *vbp,_UINT32 value)
{
	vbp->vb_data_flags_n_type = VT_COUNTER;
	vbp->value_u.v_counter=value;
}

void Counter64Set(VB_T *vbp,_UINT32 high,_UINT32 low)
{
	vbp->vb_data_flags_n_type = VT_COUNTER64;
	vbp->value_u.v_counter64.high=high;
	vbp->value_u.v_counter64.low=low;
}
#endif
void Int32Set(VB_T *vbp,_INT32 value)
{
	vbp->vb_data_flags_n_type = VT_NUMBER;
	vbp->value_u.v_number=value;
}

void TimetickSet(VB_T *vbp,_UINT32 value)
{
	vbp->vb_data_flags_n_type = VT_TIMETICKS;
	vbp->value_u.v_counter=value;
}

void oidSet(VB_T *vbp,_UINT32 *pOid,_UINT16 length)
{
	_UINT16 i;
	vbp->vb_data_flags_n_type = VT_OBJECT;
	for(i=0; i<length; i++)
		vbp->value_u.v_object.component_list[i] = pOid[i];
	vbp->value_u.v_object.num_components = length;
}
void octetSet(VB_T *vbp,_UINT8 *pValue,_INT16 length)
{
	if(length>MAX_OCTET_LENGTH)
		length=MAX_OCTET_LENGTH;
	memset(vbp->value_u.v_string,0,sizeof(vbp->value_u.v_string));
	memcpy(vbp->value_u.v_string,pValue,length);
	vbp->vb_data_length=length;
	vbp->vb_data_flags_n_type = VT_STRING;
}

_INT16 mib2_SystemScalar_Handler(_UINT8 request,void *ptr)
{
	VB_T *vbp=(VB_T *)ptr;
	_UINT32 valOid[]={1,3,6,1,4,1,3807,1,100};
	switch(*(vbp->pLeafId))
	{
	default:
		return -1;
		break;
	case 1:/*sysDescr*/
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			octetSet(vbp,"F-engine",strlen("F-engine"));
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 2:/*sysObjectId*/
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			oidSet(vbp,valOid,sizeof(valOid)/sizeof(_UINT32));
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 3:/*sysuptime*/
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			TimetickSet(vbp,0);
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 4:/*sysContact*/
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			octetSet(vbp,"www.fhn.com.cn",strlen("www.fhn.com.cn"));
			break;
		case SET_REQUEST_PDU:

			break;
		}
		break;
	case 5:/*sysName*/
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			octetSet(vbp," ",strlen(""));
			break;
		case SET_REQUEST_PDU:

			break;
		}
		break;
	case 6:/*sysLocaltion*/
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			octetSet(vbp," ",strlen(" "));
			break;
		case SET_REQUEST_PDU:

			break;
		}
		break;
	case 7:/*sysServices*/
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			Int32Set(vbp,0);
			break;
		case SET_REQUEST_PDU:
			break;
		}
		break;
	}
	return NO_ERROR;
}
#if 0
_INT32 mib2_IfScalar_Handler(_UINT8 request,void *ptr)
{
	VB_T *vbp=(VB_T *)ptr;
	switch(*(vbp->pLeafId))
	{
	default:
		return GEN_ERR;
		break;
	case 1:/*sysServices*/
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			Int32Set(vbp,3);
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	}
	return NO_ERROR;
}
_INT32 mib2_IfTable_Handler(_UINT8 request,void *ptr)
{
	VB_T *vbp=(VB_T *)ptr;
	_UINT8 string[16];
	_UINT32 valOid[]={1,3,6,1,2,1,2,2,1,1,0};
	if(request==GET_NEXT_REQUEST_PDU)
	{
		if(vbp->vb_obj_id.num_components<=vbp->defined_prefix_len)
		{
			/*get first index*/
			vbp->pIndex[0]=1;
		}
		else
		{
			/*get next index*/
			if(vbp->pIndex[0]<3)
			{
				vbp->pIndex[0]++;
			}
			else
			{
				/*get fist index*/
				(*(vbp->pLeafId))++;
				vbp->pIndex[0]=1;
			}
		}
		vbp->vb_obj_id.num_components=vbp->defined_prefix_len+vbp->defined_index_cnt;
	}
	switch(*(vbp->pLeafId))
	{
	default:
		return GEN_ERR;
		break;
	case 1:/*ifIndex */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			Int32Set(vbp,vbp->pIndex[0]);
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 2:/*ifDescr */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			sprintf(string,"ifDescr%u",(INT32)vbp->pIndex[0]);
			octetSet(vbp,string,strlen(string));
			break;
		case SET_REQUEST_PDU:
			break;
		}
		break;
	case 3:/*ifType */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			Int32Set(vbp,6);
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 4:/*ifMtu */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			Int32Set(vbp,1500);
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 5:/*ifSpeed */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			GaugeSet(vbp,100);
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 6:/*ifPhysAddress */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			memset(string,1,sizeof(string));
			octetSet(vbp,string,6);
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 7:/*ifAdminStatus */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			Int32Set(vbp,1);
			break;
		case SET_REQUEST_PDU:
			break;
		}
		break;
	case 8:/*ifOperStatus */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			Int32Set(vbp,1);
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 9:/*ifLastChange */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			TimetickSet(vbp,0);
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 10:/*ifInOctets */
	case 11:/*ifInUcastPkts */
	case 12:/*ifInNUcastPkts */
	case 13:/*ifInDiscards */
	case 14:/*ifInErrors */
	case 15:/*ifInUnknownProtos  */
	case 16:/*ifOutOctets */
	case 17:/*ifOutUcastPkts */
	case 18:/*ifOutNUcastPkts */
	case 19:/*ifOutDiscards */
	case 20:/*ifOutErrors */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			CounterSet(vbp,*(vbp->pLeafId));
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 21:/*ifOutQLen */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			Int32Set(vbp,*(vbp->pLeafId));
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	case 22:/*ifSpecific */
		switch(request)
		{
		case GET_NEXT_REQUEST_PDU:
		case GET_REQUEST_PDU:
			valOid[sizeof(valOid)/sizeof(_UINT32)-1]=vbp->pIndex[0];
			oidSet(vbp,valOid,sizeof(valOid)/sizeof(_UINT32));
			break;
		case SET_REQUEST_PDU:
			return NOT_WRITABLE;
		}
		break;
	}
	return NO_ERROR;
}
#endif



void Send_SNMP_Error_Packet(SNMP_PKT_T * rp, _INT16 ecode, _INT16 eindex)
{
	_UINT16 bufsize;
	rp->pdu.error_status = ecode;
	rp->pdu.error_index = ++eindex;
	rp->pdu_type = GET_RESPONSE_PDU;
	bufsize = SNMP_Bufsize_For_Packet(rp);
	(void)snmpAgentOutput(rp,bufsize);
	return;
}

void Send_SNMP_Packet(SNMP_PKT_T * rp)
{
	_UINT16 bufsize;
	if(rp->pdu.error_status != NO_ERROR)
	{
		/* if we had an error we send it */
		Send_SNMP_Error_Packet(rp, rp->pdu.error_status,rp->pdu.error_index);
		return;
	}
	bufsize = SNMP_Bufsize_For_Packet(rp);
	rp->pdu_type = GET_RESPONSE_PDU;
	(void)snmpAgentOutput(rp,bufsize);
	return;
}

/*
	Compare two object identifiers with different lengths.
 * 	Returns -1, 0, or +1 depending whether o1 < o2, o1 == o2, or o1 > o2
 */

_INT16 oidcmp(_UINT16 n1, _UINT32 *idp1,_UINT16 n2,_UINT32 * idp2,_INT16 *matchLen)
{
	(*matchLen)=0;
	while((n1 > 0) && (n2 > 0))
	{

		if(*idp1 != *idp2)
			return (*idp1 < *idp2) ? -1 : 1;

		idp1++;
		idp2++;
		n1--;
		n2--;
		(*matchLen)++;
	}
	if(n1 == n2)
		return 0;				/* OIDs are the same */
	else if(n1 > n2)
		return 1;
	else
		return -1;
}
_INT16 process_packet_oid(_UINT8  pdu_type,VB_T *vbp)
{
	_INT16 i=0;
	_INT16 matchIndex=0;
	_INT16 bestMatchLen=-1;
	_INT16 matchCmp=0;
	_INT16 err_code=NO_ERROR;
	_INT16 cmp=0;
	_INT16 matchLen=0;
	/*find the best match*/
	while(g_mib_table[i].type!=SNMP_TERMINATOR)
	{
		/*first find the best match tabale*/
		cmp=oidcmp(vbp->vb_obj_id.num_components,
			vbp->vb_obj_id.component_list,
			g_mib_table[i].prefixLen-1,
			g_mib_table[i].prefixSubOid,&matchLen);
		if((cmp<=0) || (matchLen==(g_mib_table[i].prefixLen-1)))
		{
			/* find the match*/
			if(matchLen>bestMatchLen)
			{
				matchIndex=i;
				bestMatchLen=matchLen;
				matchCmp=cmp;
			}
			else
			{
				break;
			}
		}
		i++;
	}
	if(bestMatchLen<0)
	{
		vbp->vb_data_flags_n_type = VT_ENDOFMIB;
		return err_code;
	}
	i=matchIndex;
	cmp=matchCmp;
	matchLen=bestMatchLen;
	while(g_mib_table[i].type!=SNMP_TERMINATOR)
	{
		if(matchIndex!=i)
		{
			cmp=oidcmp(vbp->vb_obj_id.num_components,
				vbp->vb_obj_id.component_list,
				g_mib_table[i].prefixLen-1,
				g_mib_table[i].prefixSubOid,&matchLen);
		}
		if((cmp<=0) || (matchLen==(g_mib_table[i].prefixLen-1)))
		{
			if(cmp<0)
			{
				vbp->vb_obj_id.num_components=g_mib_table[i].prefixLen-1;
				(void)memcpy((_UINT8 *)vbp->vb_obj_id.component_list,(_UINT8 *)g_mib_table[i].prefixSubOid,sizeof(_UINT32)*g_mib_table[i].prefixLen);
			}
			vbp->defined_prefix_len = g_mib_table[i].prefixLen;
			vbp->defined_index_cnt = g_mib_table[i].idxCnt;
			vbp->pLeafId=(_UINT32 *)(&(vbp->vb_obj_id.component_list[vbp->defined_prefix_len-1]));
			vbp->pIndex=(_UINT32 *)(&(vbp->vb_obj_id.component_list[vbp->defined_prefix_len]));
			if(pdu_type==GET_NEXT_REQUEST_PDU)
			{
				if(g_mib_table[i].type==SNMP_SCALAR)
				{
					if(vbp->vb_obj_id.num_components<vbp->defined_prefix_len)
					{
						(*vbp->pLeafId)=1;
					}
					else if(vbp->vb_obj_id.num_components==vbp->defined_prefix_len+vbp->defined_index_cnt)
					{
						(*vbp->pLeafId)+=1;
					}
					vbp->pIndex[0]=0;
					vbp->vb_obj_id.num_components=vbp->defined_prefix_len+vbp->defined_index_cnt;
				}
				else
				{
					if(vbp->vb_obj_id.num_components<vbp->defined_prefix_len)
					{
						(*vbp->pLeafId)=1;
						vbp->vb_obj_id.num_components=vbp->defined_prefix_len;
					}
					/*
					else if(vbp->vb_obj_id.num_components==vbp->defined_prefix_len+vbp->defined_index_cnt)
					{
						vbp->vb_obj_id.component_list[vbp->defined_prefix_len-1]++;
					}
					vbp->vb_obj_id.component_list[vbp->defined_prefix_len]=0;
					*/
				}
			}
			else
			{
				if(vbp->vb_obj_id.num_components!=(vbp->defined_prefix_len+vbp->defined_index_cnt))
				{
					err_code = NO_SUCH_NAME;
					return  err_code;
				}
			}
			if((*vbp->pLeafId)>g_mib_table[i].leafNum)
			{
				i++;
				continue;
			}
			vbp->process = g_mib_table[i].pObjHandler;
			if(vbp->process)
				err_code=(*vbp->process)(pdu_type,vbp);
			if(err_code!=NO_ERROR)
			{
				if(pdu_type==GET_NEXT_REQUEST_PDU)
				{
					i++;
					continue;
				}
			}
			return err_code;
		}
		i++;
	}
	err_code=NO_ERROR;
	vbp->vb_data_flags_n_type = VT_ENDOFMIB;
	return err_code;
}
void Process_Rcvd_SNMP_Packet(_UINT8 *ebuffp,_UINT16 pktl,SNMPADDR_T *peeraddr,SNMPADDR_T *myaddr,_INT32 *sock_cooike)
{
	_INT16 i=0;
	SNMP_PKT_T *rp=(SNMP_PKT_T *)(&gSnmpPkt);
	VB_T *vbp=0;
	(void)memset((_UINT8 *)rp,0,sizeof(SNMP_PKT_T));
#if (PLATFORM==LINUX) ||(PLATFORM==UCLINUX)  ||(PLATFORM==VXWORKS) 
	if(peeraddr!=0)
		(void)memcpy((_UINT8 *)(&(rp->peerAddr)),(_UINT8 *)peeraddr,sizeof(SNMPADDR_T));
	if(myaddr!=0)
		(void)memcpy((_UINT8 *)(&(rp->myAddr)),(_UINT8 *)myaddr,sizeof(SNMPADDR_T));
	if(sock_cooike!=0)
		rp->sock_cooike = *sock_cooike;
#endif
	if(SNMP_Decode_Packet_WER(ebuffp,pktl,rp)==NO_ERROR)
	{
		if(rp->pdu_type==GET_BULK_REQUEST_PDU)
			rp->pdu_type=GET_NEXT_REQUEST_PDU;
		for(i = 0; i < rp->pdu.vb_count; i++)
		{
			vbp=(VB_T *)(&(rp->pdu.vb_obj[i]));
			rp->pdu.error_status=process_packet_oid(rp->pdu_type,vbp);
			if(rp->pdu.error_status!=NO_ERROR)
			{
				rp->pdu.error_index=i;
				break;
			}
		}
	}
	(void)Send_SNMP_Packet(rp);
	return;
}

_UINT8 SNMP_Process_Finish(SNMP_PKT_T * rp,_UINT8 *ebuffp,_UINT16 need)
{
	if(SNMP_Encode_Pkt_With_Siz(rp,ebuffp,need))
		return 0;
	return 1;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av一区二区三区免费观看| 精品理论电影在线观看| 成人夜色视频网站在线观看| 国产一区激情在线| 久久成人精品无人区| 精品亚洲国内自在自线福利| 久久电影网电视剧免费观看| 国产在线不卡一卡二卡三卡四卡| 久久国产精品99精品国产| 精品一区二区三区的国产在线播放| 久久精品免费看| 久久精品999| 国产精品18久久久| 国产91丝袜在线18| 91视频免费观看| 91久久精品一区二区三区| 在线观看一区日韩| 91精品国产综合久久精品麻豆| 91精品国产综合久久久久久| 精品国产凹凸成av人导航| 久久久久久久久久美女| 国产精品久久久久四虎| 亚洲情趣在线观看| 亚洲成人激情自拍| 免费不卡在线视频| 丰满少妇久久久久久久| 色婷婷久久久久swag精品| 欧美日本免费一区二区三区| 欧美一区二区性放荡片| 国产曰批免费观看久久久| 中文字幕综合网| 亚洲一区二区三区在线播放| 麻豆免费看一区二区三区| 高清日韩电视剧大全免费| 色婷婷精品大在线视频| 在线电影欧美成精品| 久久一日本道色综合| 国产精品夫妻自拍| 石原莉奈在线亚洲二区| 国产福利电影一区二区三区| 日韩成人午夜电影| 偷拍与自拍一区| 国产精品亚洲一区二区三区妖精| 99久久99久久精品国产片果冻| 在线观看欧美黄色| www国产亚洲精品久久麻豆| 国产精品二三区| 免费成人美女在线观看| 99久久99久久免费精品蜜臀| 在线成人小视频| 亚洲欧洲一区二区在线播放| 欧美a一区二区| 91麻豆精品在线观看| 日韩一级成人av| 亚洲蜜臀av乱码久久精品| 麻豆精品在线观看| 色婷婷综合在线| 久久蜜桃av一区精品变态类天堂| 一区二区三区四区在线播放| 国内精品嫩模私拍在线| 欧美日韩综合色| 中文字幕在线观看一区| 精品无人码麻豆乱码1区2区 | 久久99精品久久久久久动态图| 99视频超级精品| www欧美成人18+| 亚洲va中文字幕| 91小视频免费观看| 国产偷v国产偷v亚洲高清| 蜜桃精品在线观看| 欧洲一区在线电影| 国产精品久久久久一区| 国产在线麻豆精品观看| 日韩黄色一级片| 青青草原综合久久大伊人精品| av在线一区二区三区| 精品国产免费一区二区三区四区 | 国产日韩精品一区二区三区| 天堂影院一区二区| 在线看日本不卡| 亚洲欧洲美洲综合色网| 国产精品中文字幕日韩精品| 欧美一区二区视频在线观看| 亚洲成人av一区| 日本黄色一区二区| 亚洲女同一区二区| 99亚偷拍自图区亚洲| 日本一区二区成人| 国产剧情av麻豆香蕉精品| 日韩手机在线导航| 亚洲高清在线精品| 欧美写真视频网站| 亚洲精品视频一区| av男人天堂一区| 国产精品色在线观看| 国产iv一区二区三区| 国产午夜亚洲精品理论片色戒 | 欧美巨大另类极品videosbest | 久久精品人人做人人爽人人| 久久激五月天综合精品| 日韩免费在线观看| 美女精品一区二区| 欧美日韩国产另类一区| 性做久久久久久免费观看| 欧美日本高清视频在线观看| 亚洲成人精品在线观看| 欧美伊人精品成人久久综合97| 亚洲美女区一区| 在线一区二区视频| 亚洲午夜在线视频| 欧美日韩一区二区三区不卡| 午夜精品久久久久久久久久久| 欧美人xxxx| 免费日本视频一区| 欧美精品乱码久久久久久| 丝瓜av网站精品一区二区| 91精品免费在线观看| 麻豆精品一区二区三区| 久久久久免费观看| 9人人澡人人爽人人精品| 一区二区三区在线影院| 欧美丰满美乳xxx高潮www| 久久精品av麻豆的观看方式| ww亚洲ww在线观看国产| 成人免费精品视频| 夜夜揉揉日日人人青青一国产精品| 欧美美女黄视频| 国产在线精品一区二区夜色| 国产午夜三级一区二区三| 99精品国产热久久91蜜凸| 亚洲午夜在线电影| 日韩欧美你懂的| 成人精品国产免费网站| 亚洲综合在线免费观看| 日韩一区二区视频| 亚洲精品成人天堂一二三| 精品一区二区三区免费毛片爱| 精品国产91乱码一区二区三区| 国产传媒欧美日韩成人| 亚洲视频在线观看一区| 7777女厕盗摄久久久| 精品一区二区三区香蕉蜜桃| 国产精品国产成人国产三级| 色菇凉天天综合网| 免费成人av在线播放| 国产精品国产三级国产普通话三级 | 亚洲精品免费电影| 91精品久久久久久久99蜜桃| 国产成人免费高清| 亚洲午夜久久久久久久久久久| 精品福利二区三区| 在线看日本不卡| 国产精品综合二区| 午夜久久电影网| 欧美激情一区在线| 欧美日韩国产免费一区二区 | 精品粉嫩超白一线天av| 色欧美日韩亚洲| 国产精品一线二线三线| 亚洲一区二区三区三| 国产亚洲成aⅴ人片在线观看| 欧美日本乱大交xxxxx| 成人性生交大合| 日韩av一二三| 日本二三区不卡| 美女精品一区二区| 亚洲综合色视频| 亚洲国产精品99久久久久久久久 | 亚洲视频在线观看三级| 日韩免费在线观看| 欧美日韩综合不卡| av资源网一区| 韩国成人精品a∨在线观看| 亚洲伊人色欲综合网| 国产精品人成在线观看免费| 日韩视频不卡中文| 欧美视频在线一区二区三区 | 欧美系列日韩一区| 成人激情开心网| 欧美96一区二区免费视频| 亚洲专区一二三| 国产精品白丝在线| 国产欧美精品一区二区三区四区 | 日韩理论在线观看| 国产日产欧美一区二区三区| 日韩免费高清电影| 6080国产精品一区二区| 欧洲在线/亚洲| 色综合天天综合狠狠| 成人免费黄色在线| 粉嫩av一区二区三区| 国内精品伊人久久久久av影院| 日韩成人精品在线观看| 亚洲成人av中文| 亚洲国产美女搞黄色| 亚洲综合在线五月| 一区二区日韩av| 亚洲一区二区3| 亚洲综合色区另类av| 一区二区三区在线观看网站|