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

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

?? dump.c

?? 同時(shí)支持IPv4和IPv6的BGP協(xié)議實(shí)現(xiàn)
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
		fputc('\n', fp);		/* statistics */		fprintf(fp, "  Responses: in/out/fail: "			LONGLONG "/" LONGLONG "/" LONGLONG "\n",			(unsigned long long)ripif->rip_responsercvd,			(unsigned long long)ripif->rip_responsesent,			(unsigned long long)ripif->rip_respfail);		fprintf(fp, "  Requests: in/out/fail: "			LONGLONG "/" LONGLONG "/" LONGLONG "\n",			(unsigned long long)ripif->rip_requestrcvd,			(unsigned long long)ripif->rip_requestsent,			(unsigned long long)ripif->rip_reqsentfail);		/* RIPng routing table */		fprintf(fp, "  RIPng routing table\n");				dump_rip_rtable(fp, ripif->rip_adj_ribs_in);		/* RIPng filter statistics */		fprintf(fp, "  RIPng filter information\n");		dump_filterinfo(fp, "  ", &ripif->rip_filterset);		if ((ripif = ripif->rip_next) == ripifs)			break;	}}static struct bgproute_list *init_bgp_route_list(){	static struct bgproute_list head;	memset(&head, 0, sizeof(head));	head.next = head.prev = &head;	return(&head);}/* * Compare two IPv6 prefixes. A supplement function. * Return value: *   -1 if rte1 < rte2 *    0 if rte1 == rte2 *   +1 if rte1 > rte2 */static intprefix_comp(rte1, rte2)	struct rt_entry *rte1, *rte2;{	u_int32_t i32_1, i32_2;	int i;	for (i = 0; i < 4; i++) {		i32_1 = ntohl(*(u_int32_t *)&(rte1->rt_ripinfo.rip6_dest.s6_addr[i * 4]));		i32_2 = ntohl(*(u_int32_t *)&(rte2->rt_ripinfo.rip6_dest.s6_addr[i * 4]));		if (i32_1 < i32_2)			return(-1);		if (i32_1 > i32_2)			return(1);		/* continue to next 32 bits */	}	/* Two addresses are equal. Compare prefix length. */	if (rte1->rt_ripinfo.rip6_plen < rte2->rt_ripinfo.rip6_plen)		return(-1);	if (rte1->rt_ripinfo.rip6_plen > rte2->rt_ripinfo.rip6_plen)		return(1);	return(0);		/* completely equal */}static voidinsert_bgp_route_entry(list, rte, bnp)	struct bgproute_list *list;	struct rt_entry *rte;	struct rpcb *bnp;{	struct bgproute_list *brl, *newbrl;	struct rt_entry *orte;	struct bgproute_entry **brep, *newbre;	int cmp;	for (brl = bgp_route_head(list); !bgp_route_isend(brl, list);	     brl = bgp_route_next(brl)) {		if (brl->entry == NULL || (orte = brl->entry->rte) == NULL) {			syslog(LOG_ERR, "<%s>: bogus bgproute list(%p)",				__FUNCTION__, brl);			continue; /* XXX */		}		if ((cmp = prefix_comp(rte, orte)) == 0) /* rte == orte */			goto insert_entry;		else if (cmp > 0) /* rte > orte */			continue;		else {			break;	/* insert new list and entry */		}	}	if ((newbrl = (struct bgproute_list *)malloc(sizeof(*newbrl))) == NULL)		fatalx("<insert_bgp_route_entry>: malloc failed"); /* XXX */	memset(newbrl, 0, sizeof(*newbrl));	bgp_route_insert(newbrl, brl);	brl = newbrl;	  insert_entry:	for (brep = &brl->entry; *brep; brep = &(*brep)->next) {		orte = (*brep)->rte;		/*		 * if the new entry is preferred to the old one, insert here.		 * A route that is installed to the kernel is the most preferable		 * one. There is no preference between routes that is not up. 		 */		if ((rte->rt_flags & RTF_INSTALLED) ||		    !(orte->rt_flags & RTF_UP))			break;	}	/* allocate a new entry and insert it */	if ((newbre = (struct bgproute_entry *)malloc(sizeof(*newbre))) == NULL)		fatalx("<insert_bgp_route_entry>: malloc failed"); /* XXX */	newbre->head = brl;	newbre->bnp = bnp;	newbre->rte = rte;	newbre->next = *brep;	*brep = newbre;}static struct bgproute_list *make_bgp_route_list(){	extern struct rpcb *bgb;	struct bgproute_list *brl;	struct rpcb *bnp = bgb;	struct rt_entry *rte;	brl = init_bgp_route_list();		while(bnp) {		if (bnp->rp_state == BGPSTATE_ESTABLISHED) {			rte = bnp->rp_adj_ribs_in;			while(rte) {				insert_bgp_route_entry(brl, rte, bnp);				if ((rte = rte->rt_next) == bnp->rp_adj_ribs_in)					break;			}		}		if ((bnp = bnp->rp_next) == bgb)			break;	}	return(brl);}static voidfree_bgp_route_list(head)	struct bgproute_list *head;{	struct bgproute_list *brl, *brl_next;	struct bgproute_entry *bre, *bre_next;	for (brl = bgp_route_head(head); !bgp_route_isend(brl, head);	     brl = brl_next) {		brl_next = bgp_route_next(brl);	/* brl will soon be freed */		for (bre = brl->entry; bre; bre = bre_next) {			bre_next = bre->next; /* bre will soon be freed */			free(bre);		}		remque(brl);		free(brl);	}}static voidshow_bgp_route_entry(fp, bre)	FILE *fp;	struct bgproute_entry *bre;{	struct rpcb *bnp = bre->bnp;	char inetaddrstr[INET_ADDRSTRLEN]; /* XXX */	char *indent = " ";	dump_bgp_rtentry(fp, bre->rte, indent);	fprintf(fp, "%s  PeerInfo: Addr: %s,\n", indent, bgp_peerstr(bnp));		fprintf(fp, "%s            ID: %s, Type: %s\n", indent,		inet_ntop(AF_INET, &bnp->rp_id, inetaddrstr, INET_ADDRSTRLEN),		(bnp->rp_mode & BGPO_IGP) ? "IBGP" : "EBGP");	fprintf(fp, "%s  Last Update: %s", indent,		ctime(&bre->rte->rt_time));	if (bre->rte->rt_flags & RTF_INSTALLED)		dump_bgp_exportlist(fp, bre->rte, indent);}static struct bgproute_entry *bgp_route_headentry(head)	struct bgproute_list *head;{	struct bgproute_list *brl;	brl = bgp_route_head(head);	return(brl->entry);}static struct bgproute_entry *bgp_route_nextentry(listhead, prev)	struct bgproute_list *listhead;	struct bgproute_entry *prev;{	struct bgproute_list *brl;	if (prev->next)		return(prev->next);	for (brl = prev->head->next; brl != listhead; brl = brl->next) {		if (brl->entry)			return(brl->entry);	}	return(NULL);}/* show a sorted list of BGP routes per prefix */static voidprint_bgp_routes(fp)	FILE *fp;{	struct bgproute_list *brl;	struct bgproute_entry *bre;	brl = make_bgp_route_list(); /* make a sorted list */	for (bre = bgp_route_headentry(brl); bre;	     bre = bgp_route_nextentry(brl, bre)) {		fputc('\n', fp);		show_bgp_route_entry(fp, bre);	}	free_bgp_route_list(brl);}static voidshow_bgp_peer(FILE *fp, struct rpcb *bnp, char *indent){	char inetaddrstr[INET_ADDRSTRLEN];	static char *bgpstate[] = {"", /* dummy */				   "IDLE", "CONNECT", "ACTIVE",				   "OPENSENT", "OPENCONFERM",				   "ESTABLISHED"};	struct rpcb *abnp = find_aopen_peer(bnp);	fprintf(fp, "%sAS: %d, ", indent, bnp->rp_as);	fprintf(fp, "Router Id: %s, ",		inet_ntop(AF_INET, &bnp->rp_id,			  inetaddrstr, INET_ADDRSTRLEN));	fprintf(fp, "state: %s, ", bgpstate[bnp->rp_state]);	fprintf(fp, "localpref: %d\n", (int)ntohl(bnp->rp_prefer));	fprintf(fp, "%sMode:", indent);	if (bnp->rp_mode & BGPO_PASSIVE) fprintf(fp, " PASSIVE");	if (bnp->rp_mode & BGPO_IFSTATIC) fprintf(fp, " IFSTATIC");	if (bnp->rp_mode & BGPO_IGP)		fprintf(fp, " IBGP");	else		fprintf(fp, " EBGP");	if (bnp->rp_mode & BGPO_RRCLIENT) fprintf(fp, " RRCLIENT");	if (bnp->rp_mode & BGPO_ONLINK) fprintf(fp, " ONLINK");	if (bnp->rp_mode & BGPO_IDSTATIC) fprintf(fp, " IDSTATIC");	if (bnp->rp_mode & BGPO_NOSYNC) fprintf(fp, " NOSYNC");	if (bnp->rp_mode & BGPO_NEXTHOPSELF) fprintf(fp, " NEXTHOPSELF");	if (abnp) {		if (abnp->rp_filterset.deffilterflags & DEFAULT_FILTERIN)			fprintf(fp, " FILTERIN_DEFAULT");		if (abnp->rp_filterset.deffilterflags & DEFAULT_FILTEROUT)			fprintf(fp, " FILTEROUT_DEFAULT");		if (abnp->rp_filterset.deffilterflags & DEFAULT_RESTRICTIN)			fprintf(fp, " RESTRICTIN_DEFAULT");		if (abnp->rp_filterset.deffilterflags & DEFAULT_RESTRICTOUT)			fprintf(fp, " RESTRICTOUT_DEFAULT");	}	fputc('\n', fp);	fprintf(fp, "%sHis global addr: %s\n", indent, bgp_peerstr(bnp));	fprintf(fp, "%sHis local addr: %s\n", indent, bgp_peerstr(bnp));	fprintf(fp, "%sOur addr: %s\n", indent,		ip6str(&bnp->rp_myaddr.sin6_addr, 0));	fprintf(fp, "%sTimers:", indent);	if (bnp->rp_connect_timer)		fprintf(fp, " connect=%d:%02d",			(int)(bnp->rp_connect_timer->tsk_timeval.tv_sec/60),			(int)(bnp->rp_connect_timer->tsk_timeval.tv_sec%60));	if (bnp->rp_hold_timer)		fprintf(fp, " hold=%d:%02d",			(int)(bnp->rp_hold_timer->tsk_timeval.tv_sec/60),			(int)(bnp->rp_hold_timer->tsk_timeval.tv_sec%60));	if (bnp->rp_keepalive_timer)		fprintf(fp, " keepalive=%d:%02d",			(int)(bnp->rp_keepalive_timer->tsk_timeval.tv_sec/60),			(int)(bnp->rp_keepalive_timer->tsk_timeval.tv_sec%60));	fputc('\n', fp);	/*	 * Dump filter information and statistics if	 * - there is an actively opened peer (it must be, though), and	 *   + bnp is active, or	 *   + it is an actively opend peer and there is no other active peer.	 */	if (abnp &&	    (bnp->rp_state != BGPSTATE_IDLE ||	     ((bnp->rp_mode & BGPO_PASSIVE) == 0 &&	      find_active_peer(bnp) == NULL))) {		fprintf(fp, "%sStatistics:\n", indent);		fprintf(fp, "%s Connection retries: " LONGLONG "\n",			indent,			(unsigned long long)abnp->rp_stat.rps_connretry);		fprintf(fp, "%s Peering establishments: " LONGLONG "\n",			indent, (unsigned long long)abnp->rp_stat.established);		fprintf(fp, "%s OPENs: in/out: " LONGLONG "/" LONGLONG "\n",			indent, (unsigned long long)abnp->rp_stat.openrcvd,			(unsigned long long)abnp->rp_stat.opensent);		fprintf(fp, "%s UPDATEs: in/out: " LONGLONG "/" LONGLONG "\n",			indent, (unsigned long long)abnp->rp_stat.updatercvd,			(unsigned long long)abnp->rp_stat.updatesent);		fprintf(fp, "%s NOTIFYs: in/out: " LONGLONG "/" LONGLONG "\n",			indent, (unsigned long long)abnp->rp_stat.notifyrcvd,			(unsigned long long)abnp->rp_stat.notifysent);		fprintf(fp, "%s KEEPALIVEs: in/out: "			LONGLONG "/" LONGLONG "\n",			indent, (unsigned long long)abnp->rp_stat.keepalivercvd,			(unsigned long long)abnp->rp_stat.keepalivesent);		fprintf(fp, "%s WITHDRAWs: in/out: "			LONGLONG "/" LONGLONG "\n",			indent, (unsigned long long)abnp->rp_stat.withdrawrcvd,			(unsigned long long)abnp->rp_stat.withdrawsent);		if (abnp->rp_stat.last_established) {			/* ctime appends \n */			fprintf(fp, "%s Last esbalished: %s", indent,				ctime(&abnp->rp_stat.last_established));			if (bnp->rp_state == BGPSTATE_ESTABLISHED)				fprintf(fp,					"%s   has been established for %s\n",					indent,					sec2str(tloc_now -						abnp->rp_stat.last_established));			fprintf(fp, "%s Max established period: %s\n", indent,				sec2str(abnp->rp_stat.max_established_period));			fprintf(fp, "%s Min established period: %s\n", indent,				sec2str(abnp->rp_stat.min_established_period));		}		if (abnp->rp_stat.last_closed) {			/* ctime appends \n */			fprintf(fp, "%s Last closed: %s", indent,				ctime(&abnp->rp_stat.last_closed));		}		if (bnp->rp_state != BGPSTATE_ESTABLISHED) {			time_t blankperiod;			if (abnp->rp_stat.last_closed)				blankperiod = tloc_now -					abnp->rp_stat.last_closed;			else				blankperiod = tloc_now - bgpd_start_time;			fprintf(fp, "%s   hasn't been established for %s\n",				indent, sec2str(blankperiod));		}		fprintf(fp, "%sFilters:\n", indent);		dump_filterinfo(fp, indent, &abnp->rp_filterset);	}	if (bnp->rp_ebgp_as_prepends)		fprintf(fp, "%sour own AS number will be prepended "			"to each advertised AS path %d time%s\n", indent,			bnp->rp_ebgp_as_prepends,			(bnp->rp_ebgp_as_prepends == 1) ? "" : "s");#if 0	fprintf(fp, "  Imported routes from the peer:\n");	dump_bgp_rtable(fp, bnp->rp_adj_ribs_in);	fprintf(fp, "  Exported routes to the peer:\n");	dump_exports(fp, bnp->rp_adj_ribs_out);#endif}static voidprint_bgp_dump(FILE *fp){	struct rpcb *bnp;	char inetaddrstr[INET_ADDRSTRLEN];	extern struct rpcb *bgb;	extern u_int16_t    my_as_number;	extern u_int32_t    bgpIdentifier;	extern u_int32_t    clusterId;	extern u_int16_t    bgpHoldtime;	extern byte         IamRR;	bnp = bgb;	if (bnp) {		fprintf(fp, "\n=== BGP local information ===\n");		fprintf(fp, "  AS: %d, ", my_as_number);		fprintf(fp, "RouterId: %s, ",			inet_ntop(AF_INET, &bgpIdentifier,				  inetaddrstr, INET_ADDRSTRLEN));		fprintf(fp, "ClusterId: %s\n",			inet_ntop(AF_INET, &clusterId,				  inetaddrstr, INET_ADDRSTRLEN));		fprintf(fp, "  HoldTime: %d", bgpHoldtime);		if (IamRR)			fprintf(fp, ", Reflector");		fputc('\n', fp);		fprintf(fp, "\n=== BGP per peer information ===\n");	}	/* show established peer first */	while(bnp) {		if (bnp->rp_state == BGPSTATE_ESTABLISHED) {			show_bgp_peer(fp, bnp, "  ");			fputc('\n', fp);		}		if ((bnp = bnp->rp_next) == bgb)			break;	}	/*	 * Then show non-established peers, skipping established passive-opend	 * peers.	 */	bnp = bgb;	while(bnp) {		if (bnp->rp_state != BGPSTATE_ESTABLISHED &&		    find_epeer_by_rpcb(bnp) == NULL) {			show_bgp_peer(fp, bnp, "  ");			fputc('\n', fp);		}		if ((bnp = bnp->rp_next) == bgb)			break;	}	if (bnp) {		fprintf(fp, "\n=== BGP routing information ===\n");		print_bgp_routes(fp);	}}voidbgpd_dump_file(){	FILE *fp;	if ((fp = fopen(dumpfile, "w")) == NULL) {		syslog(LOG_ERR, "<%s>: can't open dump file(%s): %s",			__FUNCTION__, dumpfile, strerror(errno));		return;	}	(void)time(&tloc_now);	fprintf(fp, "\n************ bgpd dump on %s", ctime(&tloc_now));	print_if_dump(fp);	print_rip_dump(fp);	print_bgp_dump(fp);	fclose(fp);}static char *aspath2str(struct aspath *aspath){	struct asnum *asn;	struct asseg *asg;	int l = 0, bufwlen, palen, slen;	static char buf[LINE_MAX];	if ((asg = aspath->asp_segment) == NULL)		return("Nil");	for (palen = 0 ; palen < aspath->asp_len ; palen++) {		if (asg->asg_type == PA_PATH_SET) {			strcpy(&buf[l], "set(");			l += 4;		}		asn = asg->asg_asn;		for (slen = 0; slen < asg->asg_len; slen++) {			bufwlen = sprintf(&buf[l], "%u ", asn->asn_num);			l += bufwlen;			asn = asn->asn_next;		}		if (asg->asg_type == PA_PATH_SET) {			strcpy(&buf[l-1], ") ");			l++;		}		asg = asg->asg_next;	}	return(buf);}static char *cll2str(cll)	struct clstrlist *cll;{	static char buf[LINE_MAX];	char inetaddrstr[INET_ADDRSTRLEN];	struct clstrlist *cll_top = cll;	int l = 0;	if (cll == NULL)		return("Nil");	while(cll) {		l += sprintf(&buf[l], "%s ", inet_ntop(AF_INET, &cll->cll_id,						       inetaddrstr,						       INET_ADDRSTRLEN));		if ((cll = cll->cll_next) == cll_top)			break;	}	return(buf);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲6080在线| 精品一二三四区| 日韩欧美在线综合网| 成人黄色在线网站| 日本不卡123| 中文字幕一区二区三区四区| 欧美一区二区精美| 色欧美片视频在线观看| 国产盗摄一区二区| 日韩电影一区二区三区| 99国产精品99久久久久久| 日本大胆欧美人术艺术动态 | 99久久99久久精品国产片果冻| 日韩激情一二三区| 亚洲精品高清在线| 国产精品不卡一区| 国产亚洲欧美激情| 欧美sm美女调教| 欧美电影在哪看比较好| 欧美制服丝袜第一页| 成人国产精品免费观看动漫| 黑人巨大精品欧美黑白配亚洲| 午夜日韩在线电影| 亚洲高清视频的网址| 亚洲欧美日韩中文字幕一区二区三区| 久久久国产午夜精品| 欧美成人一级视频| 日韩欧美在线网站| 欧美一级理论片| 337p亚洲精品色噜噜| 欧美日韩一二三区| 欧美日本在线看| 精品视频一区二区不卡| 欧美视频一区二| 欧美自拍偷拍一区| 欧美网站一区二区| 欧美中文字幕一二三区视频| 色乱码一区二区三区88| 日本高清不卡在线观看| 在线观看视频一区二区欧美日韩 | 一区二区三区.www| 国产精品国产三级国产aⅴ中文| 中文字幕高清一区| 国产精品不卡在线观看| **性色生活片久久毛片| 亚洲日本丝袜连裤袜办公室| 亚洲欧洲综合另类在线| 亚洲精品美国一| 一区二区三区免费观看| 亚洲成人免费视| 日韩av电影免费观看高清完整版| 日韩国产欧美视频| 久久99精品国产麻豆婷婷 | 色综合久久综合网欧美综合网| 9色porny自拍视频一区二区| 91麻豆123| 欧美日韩国产经典色站一区二区三区| 8x8x8国产精品| 精品免费国产一区二区三区四区| 久久夜色精品国产欧美乱极品| 国产欧美一区二区精品性色超碰| 国产精品的网站| 亚洲国产精品一区二区久久恐怖片 | 欧美一区中文字幕| 欧美大片在线观看一区| 国产色产综合色产在线视频 | 国产视频一区不卡| 亚洲女性喷水在线观看一区| 午夜av电影一区| 国产精品一二三在| 一本在线高清不卡dvd| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩视频专区在线播放| 欧美大片在线观看| 亚洲国产精品99久久久久久久久| 亚洲免费av网站| 蜜臀久久久久久久| 99久久99久久精品国产片果冻 | 在线精品视频一区二区三四| 欧美一级二级在线观看| 国产欧美精品一区二区色综合 | 国产成人精品免费看| 在线精品国精品国产尤物884a| 精品日韩在线一区| 亚洲欧美激情小说另类| 欧美一区二区在线播放| 久久久久久久综合狠狠综合| 樱桃国产成人精品视频| 国模一区二区三区白浆| 欧美在线观看18| 久久久久久9999| 亚洲超丰满肉感bbw| 国产91在线观看丝袜| 欧美欧美午夜aⅴ在线观看| 国产免费观看久久| 日韩和欧美的一区| 91首页免费视频| 久久无码av三级| 亚洲va国产va欧美va观看| 成人蜜臀av电影| 日韩欧美国产精品| 一区二区欧美视频| 国产成人精品一区二区三区四区 | 欧美一区二区国产| 亚洲色图制服诱惑 | 免费观看日韩av| 在线观看精品一区| 国产精品国产三级国产三级人妇 | 亚洲乱码国产乱码精品精小说| 激情综合网av| 欧美一区二区视频在线观看2020| 亚洲美女视频在线观看| 高清免费成人av| 欧美精品一区二区三区久久久| 婷婷国产在线综合| 亚洲三级在线免费| 粉嫩蜜臀av国产精品网站| 日韩一二三区不卡| 日本在线不卡视频| 欧美日韩在线一区二区| 一区二区三区四区亚洲| 99久久伊人精品| 久久久国产精华| 国产福利精品一区| 久久久欧美精品sm网站| 国模无码大尺度一区二区三区| 欧美一级搡bbbb搡bbbb| 五月天激情小说综合| 欧美日韩一区二区不卡| 亚洲aaa精品| 777午夜精品视频在线播放| 午夜a成v人精品| 91精品国产aⅴ一区二区| 日韩精品每日更新| 欧美一区二区三区系列电影| 日韩影视精彩在线| 日韩三级高清在线| 另类中文字幕网| 精品日韩欧美在线| 国产精品自拍网站| 中文字幕成人在线观看| www.日本不卡| 一区二区三区在线不卡| 欧美中文字幕久久 | 日韩西西人体444www| 免费的国产精品| 26uuu成人网一区二区三区| 国产在线观看一区二区| 久久久久九九视频| 99r精品视频| 亚洲丰满少妇videoshd| 欧美一级xxx| 国产精品一区二区你懂的| 国产精品天干天干在线综合| 972aa.com艺术欧美| 亚洲麻豆国产自偷在线| 欧美片网站yy| 国产综合一区二区| 国产精品久久久久久久第一福利| 色综合激情久久| 婷婷夜色潮精品综合在线| 欧美xxxxxxxx| 本田岬高潮一区二区三区| 亚洲一区二区三区四区五区黄| 欧美一区二区三区日韩视频| 国内精品伊人久久久久影院对白| 国产精品久久久久aaaa樱花 | 国产精品亚洲一区二区三区妖精| 国产精品丝袜91| 欧美日韩国产美| 国产精品99久久久| 亚洲综合视频网| 亚洲精品在线观看网站| 成人短视频下载| 婷婷成人激情在线网| 国产亚洲综合性久久久影院| 色域天天综合网| 久久se精品一区精品二区| 中文字幕一区二区日韩精品绯色| 欧美视频一区二区三区四区 | 亚洲五码中文字幕| 26uuu亚洲综合色| 91黄色激情网站| 国产伦精品一区二区三区免费| 亚洲另类色综合网站| 欧美tickling网站挠脚心| 色屁屁一区二区| 国产激情精品久久久第一区二区| 亚洲资源在线观看| 久久免费国产精品 | 国产精品丝袜91| 欧美一区二区三区爱爱| av资源站一区| 久久99久久精品| 亚洲国产aⅴ天堂久久| 国产精品久久久久7777按摩| 欧美成人伊人久久综合网| 在线观看成人小视频| 成人午夜大片免费观看| 麻豆一区二区三区|