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

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

?? rpp.c

?? openPBS的開放源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/**         OpenPBS (Portable Batch System) v2.3 Software License* * Copyright (c) 1999-2000 Veridian Information Solutions, Inc.* All rights reserved.* * ---------------------------------------------------------------------------* For a license to use or redistribute the OpenPBS software under conditions* other than those described below, or to purchase support for this software,* please contact Veridian Systems, PBS Products Department ("Licensor") at:* *    www.OpenPBS.org  +1 650 967-4675                  sales@OpenPBS.org*                        877 902-4PBS (US toll-free)* ---------------------------------------------------------------------------* * This license covers use of the OpenPBS v2.3 software (the "Software") at* your site or location, and, for certain users, redistribution of the* Software to other sites and locations.  Use and redistribution of* OpenPBS v2.3 in source and binary forms, with or without modification,* are permitted provided that all of the following conditions are met.* After December 31, 2001, only conditions 3-6 must be met:* * 1. Commercial and/or non-commercial use of the Software is permitted*    provided a current software registration is on file at www.OpenPBS.org.*    If use of this software contributes to a publication, product, or*    service, proper attribution must be given; see www.OpenPBS.org/credit.html* * 2. Redistribution in any form is only permitted for non-commercial,*    non-profit purposes.  There can be no charge for the Software or any*    software incorporating the Software.  Further, there can be no*    expectation of revenue generated as a consequence of redistributing*    the Software.* * 3. Any Redistribution of source code must retain the above copyright notice*    and the acknowledgment contained in paragraph 6, this list of conditions*    and the disclaimer contained in paragraph 7.* * 4. Any Redistribution in binary form must reproduce the above copyright*    notice and the acknowledgment contained in paragraph 6, this list of*    conditions and the disclaimer contained in paragraph 7 in the*    documentation and/or other materials provided with the distribution.* * 5. Redistributions in any form must be accompanied by information on how to*    obtain complete source code for the OpenPBS software and any*    modifications and/or additions to the OpenPBS software.  The source code*    must either be included in the distribution or be available for no more*    than the cost of distribution plus a nominal fee, and all modifications*    and additions to the Software must be freely redistributable by any party*    (including Licensor) without restriction.* * 6. All advertising materials mentioning features or use of the Software must*    display the following acknowledgment:* *     "This product includes software developed by NASA Ames Research Center,*     Lawrence Livermore National Laboratory, and Veridian Information *     Solutions, Inc.*     Visit www.OpenPBS.org for OpenPBS software support,*     products, and information."* * 7. DISCLAIMER OF WARRANTY* * THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ANY EXPRESS* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT* ARE EXPRESSLY DISCLAIMED.* * IN NO EVENT SHALL VERIDIAN CORPORATION, ITS AFFILIATED COMPANIES, OR THE* U.S. GOVERNMENT OR ANY OF ITS AGENCIES BE LIABLE FOR ANY DIRECT OR INDIRECT,* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.* * This license will be governed by the laws of the Commonwealth of Virginia,* without reference to its choice of law rules.*//***	Routines to communicate with UDP packets - Reliable Packet Protocol.****	This package provides for sending information in "messages"**	which are complete blocks of data which will either arrive**	complete or not at all.*/static	char	ident[] = "@(#) $RCSfile: rpp.c,v $ $Revision: 2.3.2.2.2.4 $";#if !defined(_BSD) && defined(_AIX)   /* this is needed by AIX */#define	_BSD	1#endif#include <pbs_config.h>   /* the master config generated by configure */#include	<stdio.h>#include	<stddef.h>#include	<stdlib.h>#include	<string.h>#include	<unistd.h>#include	<fcntl.h>#include	<netdb.h>#include	<errno.h>#include	<assert.h>#include	<math.h>#include	<sys/types.h>#include	<sys/file.h>#include	<sys/stat.h>#include	<sys/socket.h>#include	<sys/time.h>#include	<netinet/in.h>#include	"rpp.h"#if !defined(H_ERRNO_DECLARED)extern int h_errno;#endif/***	Boolean Constants*/#ifndef	FALSE#define	FALSE	0#endif#ifndef	TRUE#define	TRUE	1#endif/***	Turn on for debug log dump to /tmp.#define	RPPLOG	1*//***	Size-Constants for the various parts of RPP packet*/#define	RPP_PKT_SIZE	4*1024 /* max packet length, including header */#define	RPP_PKT_HEAD	26     /* Size of packet header, includes CRC */#define	RPP_HDR_SID	2      /* position of stream id in packet header */#define	RPP_HDR_SEQ	10     /* position of "sequence" in pkt header */#define	RPP_CRC_LEN	8      /* Length of CRC field in pkt header */#define RPP_PKT_CRC	(RPP_PKT_HEAD - RPP_CRC_LEN)#define	RPP_PKT_DATA	(RPP_PKT_SIZE - RPP_PKT_HEAD)/***	RPP packet-header fields****   length             field**  ========          =========**     2		type**     8		stream id**     8		sequence**     8		crc*//***	Integer codes for all the valid RPP message types*/#define	RPP_ACK		1#define	RPP_DATA	2#define	RPP_EOD		3#define	RPP_HELLO1	4#define	RPP_HELLO2	5#define	RPP_GOODBYE	6/***	Integer codes for all the valid RPP state values*/#define RPP_DEAD	-1#define	RPP_FREE 	 0#define	RPP_OPEN_PEND	 1#define	RPP_OPEN_WAIT	 2#define	RPP_CONNECT	 3#define	RPP_CLOSE_PEND	 4#define	RPP_LAST_ACK	 5#define	RPP_CLOSE_WAIT1	 6#define	RPP_CLOSE_WAIT2	 7#define	RPP_STALE	99/***	Time in seconds; packet on the master send queue is not sent more**	often than every RPP_TIMEOUT seconds.*/#define	RPP_TIMEOUT	2/***	Default number of sendto attempts on a *packet.*/#define	RPP_RETRY	10/***	Max allowed number of outstanding pkts*/#define	RPP_HIGHWATER	24/***	Several kinds of linked lists hang from each RPP stream structure.**	In particular, each stram structure has a list of send_packet**	structures.  These structures record information that's necessary for**	managing a piece of data that's being sent to the other end of the**	connection.  Besides having a pointer that links it to the next**	send_packet on the stream, a send_packet posseses a pair of pointers**	(up,down) which link the  send_packet to the master send list when**	connection sequencing has reached the point where it is now proper to**	attach it to the list (stream is fully opened).  Once on the master**	sendlist, any invocation of the rpp_send_out routine will attempt to**	transfer the send_packet's data buffer to the other end of the stream**	connection if all of the following hold:****	1) packet hasn't reached its maximum-transfer-attempt limit**	2) RPP_TIMEOUT or more seconds have elapsed since the last attempt**	3) the transfer has yet to be ACK'd by the other side.**	4) less than RPP_HIGHWATER number of non-duplicate packets are**	   un-ACK'd****	Those "send_packets" that deal with stream control**	(RPP_ACK, RPP_HELLO1, RPP_HELLO2, RPP_GOODBYE) have no**	associated data, the send_packet's data buffer is comprised**	of only the header.*/struct	send_packet {	u_char	*data;               /* points to a buffer to be transferred */	u_short	type;		     /* RPP_ACK, RPP_HELLO1, RPP_DATA, etc */	u_short	sent_out;            /* number of times sent; <= sp->retry */	int	len;                 /* size *data not counting the header */	int	index;               /* other end's stream id */	int	sequence;            /* sequential value that is placed into */                                     /* data buffer's header and is returned */                                     /* in the RPP_ACK; identifies the data */                                     /* that was transferred and now needs */                                     /* to be removed from master send list */	time_t	time_sent;	     /* time packet was last sent; zero if */				     /* it has yet to be sent */	struct	send_packet	*next;	/* next packet on stream's send list */	struct	send_packet	*up;	/* used when the send_packet is */					/* on RPP's master send list */					/* pointer to preceeding packet */	struct	send_packet	*down;	/* similar to up, but pointing to */					/* packet following this one */};/***	Hanging from an stream structure is a linked list of recv_packets**	Each recv_packet records the information necessary for managing a**	piece of data that was received from the other end of a connection.**	With the exception of RPP_GOODBYE (a surrogate RPP_EOD), pkts that deal**	with stream control (RPP_ACK,RPP_HELLO1,RPP_HELLO2,) don't ever make it**	to the stream's receive list, they are handled directly as they come**	in.  So, the only types of packets on a stream's receive list should**	be ones of type RPP_DATA, RPP_EOD, and RPP_GOODBYE.*/struct	recv_packet {	u_char	*data;		/* pointer to byte string that was sent from */				/* the other end of the stream */	u_short	type;		/* RPP_DATA, RPP_EOD or RPP_GOODBYE; i.e. a */				/* piece of the message or the end of the */				/* message (RPP_EOD or RPP_GOODBYE) */	int	len;		/* size in bytes of the received string; */				/* does not include the length of the header */	int	sequence;	/* decoded sequential number; it describes */				/* the buffer's sequential output order */				/* relative to the other buffers */	struct	recv_packet  *next;	/* pointer to next recv_packet in */					/* the linked  receive list for */					/* this stream */};/***	Each stream structure has a linked list of pend structs hanging**	from it.  This list of structs is used to manage a set of data buffers**	that may or may not all get 'packetized' and sent over to the other**	end of the connection.  Subsequent to the creation of the list of data**	buffers, the creating program decides to either commit or not commit**	the sending of this data to the other side-- done by calling the**	interface function, rpp_wcommit.  The interface function**	rpp_write doesn't send the data, it merely**	attaches the data buffer to a pending struct and links this struct to**	the stream's list of pending structs.  No transfer to the other end**	gets set in motion by calling rpp_write.****	Doing an rpp_wcommit, on the other hand, entails adjoining a header**	to each pending struct's data buffer, attaching the buffer to a**	new send_packet struct, linking the send_packet to the master send**	list, freeing the pend struct, and doing an update of the stream's**	pend_commit variable -- a running sum of the number of bytes sent**	to the other side.****	Decommiting data that was written for transfer to the other end entails**	removing and freeing the pending structs and their associated data**	buffer from the stream's pend list and, updating the stream's**	pend_attempt varable back to the byte count that is stored in its**	pend_commit variable.  Refer to relevant fields in struct stream.*/struct	pending {	u_char	*data;		/* pointer to a buffer of user data */	struct	pending	*next;	/* pointer to the next pending struct */};/***	Every stream that comes into existence during the life of the**	process gets realized on each end of the connection by a stream**	struct.  All the stream structs generated by a process are in a**	dynamic array in the process' heap area.**	Each stream is a finite state machine.*/struct	stream {	int			state;		/* state of this end of the */						/* connection; RPP_OPEN, etc */	struct	sockaddr_in	addr;		/* address of the other end; */						/* port/family/IPadrs */	struct	in_addr		*addr_array;	/* array of alternate network */						/* addresses for other end */						/* of the connection */	int			fd;		/* must be in rpp_fd_array */	int			stream_id;	/* id of other end of the */						/* connection; array position */						/* of stream struct on the */						/* other end */	int			retry;		/* sendto retry limit */	int			open_key;	/* unique bit pattern created */						/* by the end issuing the */						/* rpp_open.  It's the same */						/* same for each end of the */						/* connecton; used in setting */						/* up the stream connection */	int			msg_cnt;	/* size in bytes of current */						/* DATA/EOD/GOODBYE message */	int			send_sequence;	/* initialized to value of 1 */						/* and incremented by 1 for */						/* each packet that's added */						/* to the master send list */	struct	pending		*pend_head;	/* head and tail pointers for */	struct	pending		*pend_tail;	/* stream's pend list; see */						/* struct pend definition */	int			pend_commit;	/* total number of data bytes */						/* sent to other end connect */	int			pend_attempt;	/* total number bytes that */						/* reside in the list of */						/* pending struct buffers. */						/* pend_commit<=pend_attempt */	struct	send_packet	*send_head;	/* head and tail pointers for */	struct	send_packet	*send_tail;	/* stream's master send list */						/* see struct send_packet */	int			recv_sequence;	/* monotonic,increasing, by 1 */						/* starts from zero; A packet */						/* on the stream's recv list */						/* having a sequence number */						/* less than this value is a */						/* packet of an earlier mesg */	struct	recv_packet	*recv_head;	/* head and tail pointers for */	struct	recv_packet	*recv_tail;	/* the stream's recv list; */						/* see struct recv_packet */	int			recv_commit;	/* number of bytes from */						/* start of current message */						/* that have been accepted */						/* by the reader on this end */	int			recv_attempt;	/* number bytes, from start */						/* of current message, that */						/* have been read */};/***	Static Variables*/static	struct	stream	*stream_array = NULL;	/* pointer to stream struct */						/* dynamic array */static	int		stream_num = 0;		/* current number of stream */						/* structs in stream_array */static	int		pkts_sent = 0;		/* range: 0 - RPP_HIGHWATER; */						/* incremented with each new */						/* pkt sent; retransmissions */						/* are not counted */static	int		open_key = 0;		/* monotonicly increasing */						/* value stored in stream */						/* struct on rpp_open and */						/* passed to other end to */						/* be recorded in */						/* corresponding stream */						/* struct there */static	struct	send_packet	*top = NULL;	/* ptrs to beginning and end */static	struct	send_packet	*bottom = NULL; /* of master send list; */						/* All sent date is linked */						/* between top and bottom. *//***	Global Variables*/int		rpp_dbprt = 0;			/* controls debug printing *//***	Current file descriptor.  Any call to rpp_open will use this**	for the returned stream.*/int		rpp_fd = -1;/***	A dynamic array of socket descriptors bound to a network address.**	More than one call to rpp_bind can result in this having multiple**	entries.  The value of rpp_fd will be contained in this array.*/int		*rpp_fd_array = NULL;/***	Number of elements in rpp_fd_array*/int		rpp_fd_num = 0;/***	Number of retrys to set into each new stream.*/int		rpp_retry = RPP_RETRY;/***	Tables used by the macros I2TOH, HTOI2, I8TOH, HTOI8**	to convert 2 and 8 digit hexidecimal strings to integer and back.*/char	cval[] = {	-1, -1, -1, -1, -1, -1, -1, -1,		/* nul .. bel */	-1, -1, -1, -1, -1, -1, -1, -1,		/* bs .. si */	-1, -1, -1, -1, -1, -1, -1, -1,		/* dle .. etb */	-1, -1, -1, -1, -1, -1, -1, -1,		/* can .. us */	-1, -1, -1, -1, -1, -1, -1, -1,		/* sp .. ' */	-1, -1, -1, -1, -1, -1, -1, -1,		/* ( .. / */	 0,  1,  2,  3,  4,  5,  6,  7,		/* 0 .. 7 */	 8,  9, -1, -1, -1, -1, -1, -1,		/* 8 .. ? */	-1, 10, 11, 12, 13, 14, 15, -1,		/* @ .. G */	-1, -1, -1, -1, -1, -1, -1, -1,		/* H .. O */	-1, -1, -1, -1, -1, -1, -1, -1,		/* P .. W */	-1, -1, -1, -1, -1, -1, -1, -1,		/* X .. _ */	-1, 10, 11, 12, 13, 14, 15, -1,		/* ` .. g */	-1, -1, -1, -1, -1, -1, -1, -1,		/* h .. o */	-1, -1, -1, -1, -1, -1, -1, -1,		/* p .. w */	-1, -1, -1, -1, -1, -1, -1, -1		/* x .. del */};char	ival[] = {	'0', '1', '2', '3', '4', '5', '6', '7',	'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};/***	Conversion macros*/#define	I2TOH(i, h) \{ \	int	num = i; \	char	*str = h; \	str[1] = ival[num & 0xF]; num >>= 4 ; \	str[0] = ival[num & 0xF]; \}#define	I8TOH(i, h) \{ \	u_long	num = i; \	char	*str = h; \	str[7] = ival[num & 0xF]; num >>= 4; \	str[6] = ival[num & 0xF]; num >>= 4; \	str[5] = ival[num & 0xF]; num >>= 4; \	str[4] = ival[num & 0xF]; num >>= 4; \	str[3] = ival[num & 0xF]; num >>= 4; \	str[2] = ival[num & 0xF]; num >>= 4; \	str[1] = ival[num & 0xF]; num >>= 4; \	str[0] = ival[num & 0xF]; \}#define	HTOI2(h, i) \{ \	char	*str = h; \	int	num = 0; \	num = cval[str[0] & 0xFF]; num <<= 4; \	num |= cval[str[1] & 0xFF]; \	i = num; \}#define	HTOI8(h, i) \{ \	char	*str = h; \	u_long	num; \	num  = (long)cval[str[0] & 0x7F]; num <<= 4; \	num |= (long)cval[str[1] & 0x7F]; num <<= 4; \	num |= (long)cval[str[2] & 0x7F]; num <<= 4; \	num |= (long)cval[str[3] & 0x7F]; num <<= 4; \	num |= (long)cval[str[4] & 0x7F]; num <<= 4; \	num |= (long)cval[str[5] & 0x7F]; num <<= 4; \	num |= (long)cval[str[6] & 0x7F]; num <<= 4; \	num |= (long)cval[str[7] & 0x7F]; \	i = num; \}/***	Different print macros for use in debugging.*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清免费在线| 国产欧美一区二区在线| 一区二区三区蜜桃网| 99re这里只有精品视频首页| 亚洲日本va午夜在线影院| 91小视频在线| 亚洲国产色一区| 欧美电影一区二区三区| 久久av资源站| 久久久久久久久久电影| 91欧美激情一区二区三区成人| 亚洲精品高清在线观看| 宅男在线国产精品| 国产一区二区三区免费在线观看 | 精品一二三四在线| 国产日本欧洲亚洲| 91福利精品视频| 久久成人av少妇免费| 欧美国产精品久久| 欧美色爱综合网| 韩国欧美国产1区| 最近日韩中文字幕| 欧美一区二区免费| 成人动漫在线一区| 日韩福利视频导航| 一色屋精品亚洲香蕉网站| 欧美日韩日日夜夜| 成人毛片老司机大片| 亚洲一区二区三区视频在线| 亚洲精品在线观看视频| 欧美色视频一区| 成人综合在线视频| 另类欧美日韩国产在线| 日韩美女久久久| 欧美一二三在线| 91网站最新地址| 国产一区啦啦啦在线观看| 一区二区在线观看av| 久久亚洲影视婷婷| 这里只有精品视频在线观看| 99久久免费精品高清特色大片| 看片的网站亚洲| 亚洲国产欧美一区二区三区丁香婷| 久久精品亚洲麻豆av一区二区 | 亚洲va欧美va天堂v国产综合| 精品国产一区二区三区久久久蜜月 | 日本一区二区三区在线观看| 欧美日韩一级大片网址| 97久久超碰国产精品| 久久狠狠亚洲综合| 日韩专区中文字幕一区二区| 亚洲精选视频在线| 国产三级一区二区| 欧美成人精品3d动漫h| 欧美视频中文字幕| 91成人免费在线视频| 高清shemale亚洲人妖| 麻豆高清免费国产一区| 视频一区中文字幕| 亚洲女人的天堂| 亚洲国产精品ⅴa在线观看| 精品国产一区二区精华| 欧美精品视频www在线观看| 色综合久久中文综合久久97| 国产一区二区中文字幕| 青草国产精品久久久久久| 亚洲主播在线播放| 亚洲午夜在线观看视频在线| 综合欧美亚洲日本| 国产精品免费视频观看| 国产日韩影视精品| 久久婷婷综合激情| 精品国产乱码久久久久久闺蜜| 欧美高清视频一二三区| 欧美色综合网站| 欧美日韩一区二区三区高清| 91丨porny丨国产入口| 不卡高清视频专区| 不卡的av在线播放| a4yy欧美一区二区三区| 91色九色蝌蚪| 欧美中文字幕一二三区视频| 日本韩国欧美在线| 欧亚一区二区三区| 欧美日本在线视频| 欧美一区二区三区免费观看视频| 欧美日韩mp4| 日韩女同互慰一区二区| 欧美xingq一区二区| 日本一区二区三区电影| 中文字幕一区二| 亚洲自拍偷拍麻豆| 天堂蜜桃91精品| 久久99精品国产91久久来源| 国产美女久久久久| 91小视频免费看| 欧美日韩国产小视频| 欧美成va人片在线观看| 国产亚洲短视频| 日韩一区在线播放| 午夜久久久久久电影| 狠狠色综合播放一区二区| 成人av网站免费| 欧美日韩精品欧美日韩精品一综合| 欧美一级xxx| 中文字幕第一区第二区| 一级特黄大欧美久久久| 免费看欧美女人艹b| 国产**成人网毛片九色| 欧美唯美清纯偷拍| 精品粉嫩超白一线天av| 中文字幕在线观看一区| 亚洲www啪成人一区二区麻豆| 久久不见久久见免费视频1 | 色婷婷精品久久二区二区蜜臂av| 欧美日韩亚州综合| 久久―日本道色综合久久| 亚洲视频在线一区观看| 日韩二区三区四区| 成人免费视频一区二区| 欧美日韩激情一区二区三区| 久久久精品免费观看| 亚洲国产裸拍裸体视频在线观看乱了| 日一区二区三区| 不卡一区中文字幕| 欧美一区二区三区影视| 亚洲欧洲日韩一区二区三区| 日本视频免费一区| 91麻豆自制传媒国产之光| 日韩欧美一级二级| 亚洲综合成人在线| 国产成人av福利| 国产乱码精品一区二区三区忘忧草 | 麻豆精品一区二区综合av| 大桥未久av一区二区三区中文| 欧美男女性生活在线直播观看| 国产欧美日韩三级| 秋霞影院一区二区| 欧洲一区二区三区在线| 欧美极品xxx| 激情欧美一区二区三区在线观看| 色噜噜狠狠一区二区三区果冻| 久久天堂av综合合色蜜桃网| 亚洲成av人片在线| 色狠狠一区二区| 国产精品午夜在线观看| 蜜臀av性久久久久蜜臀aⅴ | 国产精品久久久久三级| 美国毛片一区二区| 欧美视频在线不卡| 亚洲欧美视频在线观看视频| 国产ts人妖一区二区| 欧美岛国在线观看| 日韩av一级片| 欧美日本在线视频| 亚洲成人免费在线| 欧美自拍偷拍一区| 亚洲欧美日韩成人高清在线一区| 丁香亚洲综合激情啪啪综合| 26uuu国产一区二区三区| 麻豆精品视频在线| 日韩片之四级片| 久久国内精品自在自线400部| 91精品婷婷国产综合久久| 亚洲国产精品嫩草影院| 色诱亚洲精品久久久久久| 亚洲私人影院在线观看| 色综合久久久久网| 亚洲柠檬福利资源导航| 色哟哟国产精品| 一区二区三区免费看视频| 在线免费观看不卡av| 夜夜嗨av一区二区三区| 欧日韩精品视频| 一区二区在线观看视频| 色综合欧美在线| 亚洲综合无码一区二区| 欧美日韩国产一级二级| 首页国产欧美久久| 日韩视频免费观看高清完整版在线观看| 午夜精品久久久久久久99樱桃| 欧美天堂亚洲电影院在线播放| 亚洲国产aⅴ成人精品无吗| 欧美日韩国产123区| 日本午夜一本久久久综合| 日韩精品一区二| 国产成人av福利| 亚洲狠狠丁香婷婷综合久久久| 欧美亚洲综合一区| 久久精品噜噜噜成人88aⅴ| 久久久久99精品国产片| 成人妖精视频yjsp地址| 亚洲欧美电影一区二区| 欧美无乱码久久久免费午夜一区| 一区二区三区免费观看| 欧美一级欧美一级在线播放| 国产麻豆视频一区二区| 亚洲欧美一区二区三区极速播放 | 香蕉成人啪国产精品视频综合网| 欧美一区二区视频网站|