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

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

?? xtranslcl.c

?? 手寫識別Chinput源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* $XConsortium: Xtranslcl.c /main/27 1996/09/28 16:50:14 rws $ *//* $XFree86: xc/lib/xtrans/Xtranslcl.c,v 3.21.2.3 1998/02/01 16:04:34 robin Exp $ *//*Copyright (c) 1993, 1994  X ConsortiumPermission is hereby granted, free of charge, to any person obtaininga copy of this software and associated documentation files (the"Software"), to deal in the Software without restriction, includingwithout limitation the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell copies of the Software, and topermit persons to whom the Software is furnished to do so, subject tothe following conditions:The above copyright notice and this permission notice shall be includedin all copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OROTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OROTHER DEALINGS IN THE SOFTWARE.Except as contained in this notice, the name of the X Consortium shallnot be used in advertising or otherwise to promote the sale, use orother dealings in this Software without prior written authorizationfrom the X Consortium.*//* Copyright (c) 1993, 1994 NCR Corporation - Dayton, Ohio, USA * * All Rights Reserved * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, provided * that the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name NCR not be used in advertising * or publicity pertaining to distribution of the software without specific, * written prior permission.  NCR makes no representations about the * suitability of this software for any purpose.  It is provided "as is" * without express or implied warranty. * * NCR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN * NO EVENT SHALL NCR BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *//* * * The connection code/ideas in lib/X and server/os for SVR4/Intel  * environments was contributed by the following companies/groups: * *	MetroLink Inc *	NCR *	Pittsburgh Powercomputing Corporation (PPc)/Quarterdeck Office Systems *	SGCS *	Unix System Laboratories (USL) / Novell *	XFree86 * * The goal is to have common connection code among all SVR4/Intel vendors. * * ALL THE ABOVE COMPANIES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS  * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,  * IN NO EVENT SHALL THESE COMPANIES * BE LIABLE FOR ANY SPECIAL, INDIRECT  * OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS  * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE  * OR PERFORMANCE OF THIS SOFTWARE. */#include <errno.h>#include <ctype.h>#include <sys/signal.h>#include <sys/ioctl.h>#include <sys/stat.h>#ifdef SVR4#include <sys/filio.h>#endif#include <sys/stropts.h>#include <sys/wait.h>/* * The local transports should be treated the same as a UNIX domain socket * wrt authentication, etc. Because of this, we will use struct sockaddr_un * for the address format. This will simplify the code in other places like * The X Server. */#include <sys/socket.h>#ifndef X_NO_SYS_UN#include <sys/un.h>#endif#if defined(ISC) && !defined(_POSIX_SOURCE)typedef unsigned short  mode_t;/* POSIX needed for mode_t define in sys/types.h */#endif/* * These functions actually implement the local connection mechanisms. *//* Type Not Supported */static intTRANS(OpenFail)(ciptr, port)XtransConnInfo	ciptr;char		*port;{    return -1;}#ifdef TRANS_REOPENstatic intTRANS(ReopenFail)(ciptr, fd, port)XtransConnInfo	ciptr;int		fd;char		*port;{    return 0;}#endif /* TRANS_REOPEN */static intTRANS(FillAddrInfo)(ciptr, sun_path, peer_sun_path)XtransConnInfo	ciptr;char		*sun_path;char		*peer_sun_path;{    struct sockaddr_un	*sunaddr;    struct sockaddr_un	*p_sunaddr;    ciptr->family = AF_UNIX;    ciptr->addrlen = sizeof (struct sockaddr_un);    if ((sunaddr = (struct sockaddr_un *) xalloc (ciptr->addrlen)) == NULL)    {	PRMSG(1,"FillAddrInfo: failed to allocate memory for addr\n",									0,0,0);	return 0;    }    sunaddr->sun_family = AF_UNIX;    strcpy (sunaddr->sun_path, sun_path);#if defined(BSD44SOCKETS) && !defined(Lynx)    sunaddr->sun_len = strlen (sunaddr->sun_path);#endif    ciptr->addr = (char *) sunaddr;    ciptr->peeraddrlen = sizeof (struct sockaddr_un);    if ((p_sunaddr = (struct sockaddr_un *) xalloc (	ciptr->peeraddrlen)) == NULL)    {	PRMSG(1,	   "FillAddrInfo: failed to allocate memory for peer addr\n",									0,0,0);	xfree ((char *) sunaddr);	ciptr->addr = NULL;	return 0;    }    p_sunaddr->sun_family = AF_UNIX;    strcpy (p_sunaddr->sun_path, peer_sun_path);#if defined(BSD44SOCKETS) && !defined(Lynx)    p_sunaddr->sun_len = strlen (p_sunaddr->sun_path);#endif    ciptr->peeraddr = (char *) p_sunaddr;    return 1;}/* PTS */#if defined(SYSV) && !defined(sco) && !defined(SCO) && !defined(ISC)#define SIGNAL_T int#else#define SIGNAL_T void#endif /* SYSV */typedef SIGNAL_T (*PFV)();extern PFV signal();extern char *ptsname(#if NeedFunctionPrototypes    int#endif);static void _dummy(sig)int sig;{}#define X_STREAMS_DIR	"/dev/X"#define DEV_PTMX	"/dev/ptmx"#define DEV_SPX		"/dev/spx"#if defined(X11_t)#define PTSNODENAME "/dev/X/server."#define NAMEDNODENAME "/dev/X/Nserver."/* * ISC and SCO are only defined for X11 since they are there for * backwards binary compatability only. */#define X_ISC_DIR	"/dev/X/ISCCONN"#define ISCDEVNODENAME	"/dev/X/ISCCONN/X%s"#define ISCTMPNODENAME	"/tmp/.X11-unix/X%s"#define SCORNODENAME	"/dev/X%1sR"#define SCOSNODENAME	"/dev/X%1sS"#endif#if defined(XIM_t)#define PTSNODENAME	"/dev/X/XIM."#define NAMEDNODENAME	"/dev/X/NXIM."#endif#if defined(FS_t) || defined (FONT_t)/* * USL has already defined something here. We need to check with them * and see if their choice is usable here. */#define PTSNODENAME	"/dev/X/fontserver."#define NAMEDNODENAME	"/dev/X/Nfontserver."#endif#if defined(ICE_t)#define PTSNODENAME	"/dev/X/ICE."#define NAMEDNODENAME	"/dev/X/NICE."#endif#if defined(TEST_t)#define PTSNODENAME	"/dev/X/transtest."#define NAMEDNODENAME	"/dev/X/Ntranstest."#endif#ifdef TRANS_CLIENTstatic intTRANS(PTSOpenClient)(ciptr, port)XtransConnInfo	ciptr;char		*port;{    int			fd,server,exitval,alarm_time,ret;    char		server_path[64];    char		*slave, namelen;    char		buf[20]; /* MAX_PATH_LEN?? */    PFV			savef;    PRMSG(2,"PTSOpenClient(%s)\n", port, 0,0 );#if !defined(PTSNODENAME)    PRMSG(1,"PTSOpenClient: Protocol is not supported by a pts connection\n", 0,0,0);    return -1;#else    if (port && *port ) {	if( *port == '/' ) { /* A full pathname */		(void) sprintf(server_path, "%s", port);	    } else {		(void) sprintf(server_path, "%s%s", PTSNODENAME, port);	    }    } else {	(void) sprintf(server_path, "%s%d", PTSNODENAME, getpid());    }    /*     * Open the node the on which the server is listening.     */    if ((server = open (server_path, O_RDWR)) < 0) {	PRMSG(1,"PTSOpenClient: failed to open %s\n", server_path, 0,0);	return -1;    }    /*     * Open the streams based pipe that will be this connection.     */    if ((fd = open("/dev/ptmx", O_RDWR)) < 0) {	PRMSG(1,"PTSOpenClient: failed to open /dev/ptmx\n", 0,0,0);	return -1;    }    (void) grantpt(fd);    (void) unlockpt(fd);    slave = ptsname(fd); /* get name */    if( slave == NULL ) {	PRMSG(1,"PTSOpenClient: failed to get ptsname()\n", 0,0,0);	close(fd);	close(server);	return -1;    }    /*     * This is neccesary for the case where a program is setuid to non-root.     * grantpt() calls /usr/lib/pt_chmod which is set-uid root. This program will     * set the owner of the pt device incorrectly if the uid is not restored     * before it is called. The problem is that once it gets restored, it     * cannot be changed back to its original condition, hence the fork().     */    if( !fork()) {	uid_t       saved_euid;	saved_euid = geteuid();	setuid( getuid() ); /** sets the euid to the actual/real uid **/	if( chown( slave, saved_euid, -1 ) < 0 ) {		exit( 1 );		}	exit( 0 );    }    wait( &exitval );    if (chmod(slave, 0666) < 0) {	close(fd);	close(server);	PRMSG(1,"PTSOpenClient: Cannot chmod %s\n", slave, 0,0);	return(-1);    }    /*     * write slave name to server     */    namelen = strlen(slave);    buf[0] = namelen;    (void) sprintf(&buf[1], slave);    (void) write(server, buf, namelen+1);    (void) close(server);    /*     * wait for server to respond     */    savef = signal(SIGALRM, _dummy);    alarm_time = alarm (30); /* CONNECT_TIMEOUT */    ret = read(fd, buf, 1);    (void) alarm(alarm_time);    (void) signal(SIGALRM, savef);    if (ret != 1) {	PRMSG(1,	"PTSOpenClient: failed to get acknoledgement from server\n",									0,0,0);	(void) close(fd);	fd = -1;    }    /*     * Everything looks good: fill in the XtransConnInfo structure.     */    if (TRANS(FillAddrInfo) (ciptr, slave, server_path) == 0)    {	PRMSG(1,"PTSOpenClient: failed to fill in addr info\n",								0,0,0);	close(fd);	return -1;    }    return(fd);#endif /* !PTSNODENAME */}#endif /* TRANS_CLIENT */#ifdef TRANS_SERVERstatic intTRANS(PTSOpenServer)(ciptr, port)XtransConnInfo	ciptr;char		*port;{    int fd, server;    char server_path[64], *slave;    PRMSG(2,"PTSOpenServer(%s)\n", port, 0,0 );#if !defined(PTSNODENAME)    PRMSG(1,"PTSOpenServer: Protocol is not supported by a pts connection\n", 0,0,0);    return -1;#else    if (port && *port ) {	if( *port == '/' ) { /* A full pathname */		(void) sprintf(server_path, "%s", port);	    } else {		(void) sprintf(server_path, "%s%s", PTSNODENAME, port);	    }    } else {	(void) sprintf(server_path, "%s%d", PTSNODENAME, getpid());    }    mkdir(X_STREAMS_DIR, 0777);    chmod(X_STREAMS_DIR, 0777);    if( (fd=open(server_path, O_RDWR)) >= 0 ) {#if 0	/*	 * This doesn't prevent the server from starting up, and doesn't	 * prevent clients from trying to connect to the in-use PTS (which	 * is often in use by something other than another server).	 */	PRMSG(1, "PTSOpenServer: A server is already running on port %s\n", port, 0,0 );	PRMSG(1, "PTSOpenServer: Remove %s if this is incorrect.\n", server_path, 0,0 );	close(fd);	return(-1);#else	/* Just remove the old path (which is what happens with UNIXCONN) */	;#endif    }    unlink(server_path);    if( (fd=open(DEV_PTMX, O_RDWR)) < 0) {	PRMSG(1, "PTSOpenServer: Unable to open %s\n", DEV_PTMX, 0,0 );	return(-1);    }    grantpt(fd);    unlockpt(fd);    if( (slave=ptsname(fd)) == NULL) {	PRMSG(1, "PTSOpenServer: Unable to get slave device name\n", 0,0,0 );	close(fd);	return(-1);    }    if( link(slave,server_path) < 0 ) {	PRMSG(1, "PTSOpenServer: Unable to link %s to %s\n", slave, server_path,0 );	close(fd);	return(-1);    }    if( chmod(server_path, 0666) < 0 ) {	PRMSG(1, "PTSOpenServer: Unable to chmod %s to 0666\n", server_path,0,0 );	close(fd);	return(-1);    }    if( (server=open(server_path, O_RDWR)) < 0 ) {	PRMSG(1, "PTSOpenServer: Unable to open server device %s\n", server_path,0,0 );	close(fd);	return(-1);    }    close(server);    /*     * Everything looks good: fill in the XtransConnInfo structure.     */    if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)    {	PRMSG(1,"PTSOpenServer: failed to fill in addr info\n",								0,0,0);	close(fd);	return -1;    }    return fd;#endif /* !PTSNODENAME */}static intTRANS(PTSAccept)(ciptr, newciptr, status)XtransConnInfo	ciptr;XtransConnInfo	newciptr;int		*status;{    int			newfd;    int			in;    unsigned char	length;    char		buf[256];    struct sockaddr_un	*sunaddr;    PRMSG(2,"PTSAccept(%x->%d)\n",ciptr,ciptr->fd,0);    if( (in=read(ciptr->fd,&length,1)) <= 0 ){	if( !in ) {		PRMSG(2,		"PTSAccept: Incoming connection closed\n",0,0,0);		}	else {		PRMSG(1,	"PTSAccept: Error reading incoming connection. errno=%d \n",								errno,0,0);		}	*status = TRANS_ACCEPT_MISC_ERROR;	return -1;    }    if( (in=read(ciptr->fd,buf,length)) <= 0 ){	if( !in ) {		PRMSG(2,		"PTSAccept: Incoming connection closed\n",0,0,0);		}	else {		PRMSG(1,"PTSAccept: Error reading device name for new connection. errno=%d \n",								errno,0,0);		}	*status = TRANS_ACCEPT_MISC_ERROR;	return -1;    }    buf[length] = '\0';    if( (newfd=open(buf,O_RDWR)) < 0 ) {	PRMSG(1, "PTSAccept: Failed to open %s\n",buf,0,0);	*status = TRANS_ACCEPT_MISC_ERROR;	return -1;    }    write(newfd,"1",1);    /*     * Everything looks good: fill in the XtransConnInfo structure.     */    newciptr->addrlen=ciptr->addrlen;    if( (newciptr->addr=(char *)xalloc(newciptr->addrlen)) == NULL ) {	PRMSG(1,"PTSAccept: failed to allocate memory for peer addr\n",									0,0,0);	close(newfd);	*status = TRANS_ACCEPT_BAD_MALLOC;	return -1;    }    memcpy(newciptr->addr,ciptr->addr,newciptr->addrlen);    newciptr->peeraddrlen=sizeof(struct sockaddr_un);    if( (sunaddr=(struct sockaddr_un *)xalloc(newciptr->peeraddrlen)) == NULL ) {	PRMSG(1,"PTSAccept: failed to allocate memory for peer addr\n",									0,0,0);	xfree(newciptr->addr);	close(newfd);	*status = TRANS_ACCEPT_BAD_MALLOC;	return -1;    }    sunaddr->sun_family=AF_UNIX;    strcpy(sunaddr->sun_path,buf);#if defined(BSD44SOCKETS) && !defined(Lynx)    sunaddr->sun_len=strlen(sunaddr->sun_path);#endif    newciptr->peeraddr=(char *)sunaddr;    *status = 0;    return newfd;}#endif /* TRANS_SERVER */#ifdef SVR4/* NAMED */#ifdef TRANS_CLIENTstatic intTRANS(NAMEDOpenClient)(ciptr, port)XtransConnInfo	ciptr;char		*port;{    int			fd;    char		server_path[64];    struct stat		filestat;    extern int		isastream();    PRMSG(2,"NAMEDOpenClient(%s)\n", port, 0,0 );#if !defined(NAMEDNODENAME)    PRMSG(1,"NAMEDOpenClient: Protocol is not supported by a NAMED connection\n", 0,0,0);    return -1;#else    if ( port && *port ) {	if( *port == '/' ) { /* A full pathname */		(void) sprintf(server_path, "%s", port);	    } else {		(void) sprintf(server_path, "%s%s", NAMEDNODENAME, port);	    }    } else {	(void) sprintf(server_path, "%s%d", NAMEDNODENAME, getpid());    }    if (stat(server_path, &filestat) < 0 ) {	PRMSG(1,"NAMEDOpenClient: No device %s for NAMED connection\n", server_path, 0,0 );	return -1;    }    if ((filestat.st_mode & S_IFMT) != S_IFIFO) {	PRMSG(1,"NAMEDOpenClient: Device %s is not a FIFO\n", server_path, 0,0 );	/* Is this really a failure? */	return -1;    }    if ((fd = open(server_path, O_RDWR)) < 0) {	PRMSG(1,"NAMEDOpenClient: Cannot open %s for NAMED connection\n", server_path, 0,0 );	return -1;    }    if (isastream(fd) <= 0) {	PRMSG(1,"NAMEDOpenClient: %s is not a streams device\n", server_path, 0,0 );	(void) close(fd);	return -1;    }    /*     * Everything looks good: fill in the XtransConnInfo structure.     */    if (TRANS(FillAddrInfo) (ciptr, server_path, server_path) == 0)    {	PRMSG(1,"NAMEDOpenClient: failed to fill in addr info\n",								0,0,0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲四区在线观看| 六月婷婷色综合| 五月激情六月综合| 国模一区二区三区白浆| 97久久精品人人澡人人爽| 精品国产一区久久| 综合欧美亚洲日本| 狠狠色伊人亚洲综合成人| 在线一区二区视频| 欧美国产乱子伦 | 日韩欧美国产精品| 亚洲免费av网站| 国产精品2024| 欧美一区二区播放| 亚洲国产精品欧美一二99| 国产99精品视频| 欧美大胆人体bbbb| 日韩精品一二三四| 欧美综合亚洲图片综合区| 日本一区二区动态图| 激情五月婷婷综合网| 制服丝袜亚洲网站| 亚洲国产裸拍裸体视频在线观看乱了| 国产成人午夜99999| 欧美不卡一区二区三区四区| 亚洲午夜免费福利视频| 色噜噜狠狠一区二区三区果冻| 国产精品麻豆一区二区| 国产成人精品免费看| 精品国产乱码久久久久久老虎| 日韩专区欧美专区| 欧美久久一区二区| 天天亚洲美女在线视频| 欧美日韩午夜精品| 亚洲h在线观看| 在线不卡一区二区| 日韩电影免费一区| 91精品国产综合久久久久| 亚洲国产中文字幕在线视频综合| 91成人免费在线视频| 亚洲高清视频的网址| 欧美精品亚洲二区| 美女视频网站久久| 亚洲精品在线观看网站| 国产高清久久久| 国产精品网站一区| 色综合中文字幕国产 | 国产精品水嫩水嫩| av亚洲产国偷v产偷v自拍| 亚洲另类春色校园小说| 日本道在线观看一区二区| 亚洲一区二区在线视频| 69精品人人人人| 精品在线一区二区| 欧美高清一级片在线观看| 91亚洲大成网污www| 亚洲午夜电影网| 日韩一区二区在线看| 国产一区二区三区免费看| 国产精品素人视频| 日本丰满少妇一区二区三区| 日韩国产精品91| 精品美女在线观看| 91免费版在线| 视频一区国产视频| 国产欧美精品一区| 在线观看日韩av先锋影音电影院| 香蕉久久夜色精品国产使用方法| 精品va天堂亚洲国产| www.久久精品| 日本不卡一区二区三区| 国产精品女同一区二区三区| 欧美日韩亚州综合| 成人午夜免费av| 日本不卡123| 亚洲欧洲精品一区二区三区不卡| 欧美日韩国产综合视频在线观看 | 一区二区高清免费观看影视大全| 欧美精品乱码久久久久久按摩| 国产精品 欧美精品| 亚洲在线观看免费视频| 久久精品一区八戒影视| 欧美日韩国产不卡| 成人午夜伦理影院| 韩国三级中文字幕hd久久精品| 亚洲精品老司机| 日本一区二区电影| 精品处破学生在线二十三| 日本高清成人免费播放| 国产美女在线观看一区| 视频一区在线播放| 亚洲激情在线播放| 欧美国产综合一区二区| 欧美tk—视频vk| 欧美二区在线观看| 91日韩精品一区| 国产成人午夜电影网| 久草精品在线观看| 婷婷国产v国产偷v亚洲高清| 亚洲蜜臀av乱码久久精品| 国产日韩欧美精品在线| 精品久久久久香蕉网| 欧美视频一区二| 日本电影欧美片| 99精品视频在线观看| 国产成人免费视频网站| 国产在线国偷精品产拍免费yy| 免费观看成人av| 日本最新不卡在线| 天堂蜜桃一区二区三区| 亚洲第一福利一区| 亚洲成人综合网站| 婷婷成人激情在线网| 亚洲国产一区二区三区青草影视| 亚洲精选在线视频| 亚洲卡通动漫在线| 亚洲精品高清视频在线观看| 亚洲日本在线a| 亚洲精品美腿丝袜| 亚洲五码中文字幕| 天堂va蜜桃一区二区三区 | 亚洲精品欧美专区| 亚洲激情网站免费观看| 亚洲国产精品麻豆| 天天色 色综合| 日本va欧美va精品发布| 久久99热这里只有精品| 国产在线看一区| 国产精品中文字幕日韩精品| 国产不卡视频一区二区三区| 成人白浆超碰人人人人| 色综合久久综合网97色综合 | 中文字幕中文字幕在线一区 | 精品少妇一区二区三区| 精品毛片乱码1区2区3区| 久久综合丝袜日本网| 国产亚洲欧美在线| 亚洲欧美日韩久久精品| 亚瑟在线精品视频| 久久国产精品露脸对白| 国产·精品毛片| 91看片淫黄大片一级| 欧美日韩一级片在线观看| 日韩三级伦理片妻子的秘密按摩| 久久亚洲精华国产精华液| 欧美激情一区二区| 亚洲线精品一区二区三区八戒| 日本91福利区| 成人a免费在线看| 欧美久久免费观看| 久久精品日韩一区二区三区| 亚洲视频网在线直播| 三级成人在线视频| 国产91丝袜在线播放九色| 色婷婷激情久久| 久久这里只有精品视频网| 欧美国产日本韩| 日日夜夜精品视频天天综合网| 国产精品亚洲第一区在线暖暖韩国| 色综合久久99| 久久免费看少妇高潮| 亚洲一级二级三级| 丁香啪啪综合成人亚洲小说| 欧美日产在线观看| 中文字幕一区二区三区色视频| 日韩精彩视频在线观看| av毛片久久久久**hd| 日韩一级完整毛片| 一区二区三区加勒比av| 国产伦精品一区二区三区免费 | 国产精品一区二区久久精品爱涩| 一本色道久久综合狠狠躁的推荐| 精品国精品国产| 午夜电影一区二区| 色又黄又爽网站www久久| 久久久久亚洲蜜桃| 日韩福利视频导航| 欧美午夜精品理论片a级按摩| 国产欧美一区二区三区网站| 免费一级欧美片在线观看| 在线免费观看视频一区| 中文字幕av一区二区三区免费看| 爽好久久久欧美精品| 欧美性一二三区| 亚洲精品高清在线观看| 成人丝袜视频网| 久久久久99精品国产片| 久久精品国产成人一区二区三区| 欧美日韩精品高清| 亚洲国产成人av好男人在线观看| 92国产精品观看| 国产精品久线观看视频| 国产大陆亚洲精品国产| 2017欧美狠狠色| 国内精品久久久久影院色| 欧美大片在线观看| 免费人成网站在线观看欧美高清| 91麻豆精品国产91久久久使用方法 | 久久er99热精品一区二区| 4438x成人网最大色成网站|