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

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

?? sys_term.c

?? 早期freebsd實現
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * Copyright (c) 1989, 1993 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, 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. */#ifndef lintstatic char sccsid[] = "@(#)sys_term.c	8.2 (Berkeley) 12/15/93";#endif /* not lint */#include "telnetd.h"#include "pathnames.h"#if	defined(AUTHENTICATION)#include <libtelnet/auth.h>#endif#if defined(CRAY) || defined(__hpux)# define PARENT_DOES_UTMP#endif#ifdef	NEWINIT#include <initreq.h>int	utmp_len = MAXHOSTNAMELEN;	/* sizeof(init_request.host) */#else	/* NEWINIT*/# ifdef	UTMPX# include <utmpx.h>struct	utmpx wtmp;# else# include <utmp.h>struct	utmp wtmp;# endif /* UTMPX */int	utmp_len = sizeof(wtmp.ut_host);# ifndef PARENT_DOES_UTMPchar	wtmpf[]	= "/usr/adm/wtmp";char	utmpf[] = "/etc/utmp";# else /* PARENT_DOES_UTMP */char	wtmpf[]	= "/etc/wtmp";# endif /* PARENT_DOES_UTMP */# ifdef CRAY#include <tmpdir.h>#include <sys/wait.h>#  if defined(_SC_CRAY_SECURE_SYS) && !defined(SCM_SECURITY)   /*    * UNICOS 6.0/6.1 do not have SCM_SECURITY defined, so we can    * use it to tell us to turn off all the socket security code,    * since that is only used in UNICOS 7.0 and later.    */#   undef _SC_CRAY_SECURE_SYS#  endif#  if defined(_SC_CRAY_SECURE_SYS)#include <sys/sysv.h>#include <sys/secstat.h>extern int secflag;extern struct sysv sysv;#  endif /* _SC_CRAY_SECURE_SYS */# endif	/* CRAY */#endif	/* NEWINIT */#ifdef	STREAMSPTY#include <sac.h>#include <sys/stropts.h>#endif#define SCPYN(a, b)	(void) strncpy(a, b, sizeof(a))#define SCMPN(a, b)	strncmp(a, b, sizeof(a))#ifdef	STREAMS#include <sys/stream.h>#endif#ifdef __hpux#include <sys/resource.h>#include <sys/proc.h>#endif#include <sys/tty.h>#ifdef	t_erase#undef	t_erase#undef	t_kill#undef	t_intrc#undef	t_quitc#undef	t_startc#undef	t_stopc#undef	t_eofc#undef	t_brkc#undef	t_suspc#undef	t_dsuspc#undef	t_rprntc#undef	t_flushc#undef	t_werasc#undef	t_lnextc#endif#if defined(UNICOS5) && defined(CRAY2) && !defined(EXTPROC)# define EXTPROC 0400#endif#ifndef	USE_TERMIOstruct termbuf {	struct sgttyb sg;	struct tchars tc;	struct ltchars ltc;	int state;	int lflags;} termbuf, termbuf2;# define	cfsetospeed(tp, val)	(tp)->sg.sg_ospeed = (val)# define	cfsetispeed(tp, val)	(tp)->sg.sg_ispeed = (val)# define	cfgetospeed(tp)		(tp)->sg.sg_ospeed# define	cfgetispeed(tp)		(tp)->sg.sg_ispeed#else	/* USE_TERMIO */# ifdef	SYSV_TERMIO#	define termios termio# endif# ifndef	TCSANOW#  ifdef TCSETS#   define	TCSANOW		TCSETS#   define	TCSADRAIN	TCSETSW#   define	tcgetattr(f, t)	ioctl(f, TCGETS, (char *)t)#  else#   ifdef TCSETA#    define	TCSANOW		TCSETA#    define	TCSADRAIN	TCSETAW#    define	tcgetattr(f, t)	ioctl(f, TCGETA, (char *)t)#   else#    define	TCSANOW		TIOCSETA#    define	TCSADRAIN	TIOCSETAW#    define	tcgetattr(f, t)	ioctl(f, TIOCGETA, (char *)t)#   endif#  endif#  define	tcsetattr(f, a, t)	ioctl(f, a, t)#  define	cfsetospeed(tp, val)	(tp)->c_cflag &= ~CBAUD; \					(tp)->c_cflag |= (val)#  define	cfgetospeed(tp)		((tp)->c_cflag & CBAUD)#  ifdef CIBAUD#   define	cfsetispeed(tp, val)	(tp)->c_cflag &= ~CIBAUD; \					(tp)->c_cflag |= ((val)<<IBSHIFT)#   define	cfgetispeed(tp)		(((tp)->c_cflag & CIBAUD)>>IBSHIFT)#  else#   define	cfsetispeed(tp, val)	(tp)->c_cflag &= ~CBAUD; \					(tp)->c_cflag |= (val)#   define	cfgetispeed(tp)		((tp)->c_cflag & CBAUD)#  endif# endif /* TCSANOW */struct termios termbuf, termbuf2;	/* pty control structure */# ifdef  STREAMSPTYint ttyfd = -1;# endif#endif	/* USE_TERMIO *//* * init_termbuf() * copy_termbuf(cp) * set_termbuf() * * These three routines are used to get and set the "termbuf" structure * to and from the kernel.  init_termbuf() gets the current settings. * copy_termbuf() hands in a new "termbuf" to write to the kernel, and * set_termbuf() writes the structure into the kernel. */	voidinit_termbuf(){#ifndef	USE_TERMIO	(void) ioctl(pty, TIOCGETP, (char *)&termbuf.sg);	(void) ioctl(pty, TIOCGETC, (char *)&termbuf.tc);	(void) ioctl(pty, TIOCGLTC, (char *)&termbuf.ltc);# ifdef	TIOCGSTATE	(void) ioctl(pty, TIOCGSTATE, (char *)&termbuf.state);# endif#else# ifdef  STREAMSPTY	(void) tcgetattr(ttyfd, &termbuf);# else	(void) tcgetattr(pty, &termbuf);# endif#endif	termbuf2 = termbuf;}#if	defined(LINEMODE) && defined(TIOCPKT_IOCTL)	voidcopy_termbuf(cp, len)	char *cp;	int len;{	if (len > sizeof(termbuf))		len = sizeof(termbuf);	bcopy(cp, (char *)&termbuf, len);	termbuf2 = termbuf;}#endif	/* defined(LINEMODE) && defined(TIOCPKT_IOCTL) */	voidset_termbuf(){	/*	 * Only make the necessary changes.	 */#ifndef	USE_TERMIO	if (bcmp((char *)&termbuf.sg, (char *)&termbuf2.sg, sizeof(termbuf.sg)))		(void) ioctl(pty, TIOCSETN, (char *)&termbuf.sg);	if (bcmp((char *)&termbuf.tc, (char *)&termbuf2.tc, sizeof(termbuf.tc)))		(void) ioctl(pty, TIOCSETC, (char *)&termbuf.tc);	if (bcmp((char *)&termbuf.ltc, (char *)&termbuf2.ltc,							sizeof(termbuf.ltc)))		(void) ioctl(pty, TIOCSLTC, (char *)&termbuf.ltc);	if (termbuf.lflags != termbuf2.lflags)		(void) ioctl(pty, TIOCLSET, (char *)&termbuf.lflags);#else	/* USE_TERMIO */	if (bcmp((char *)&termbuf, (char *)&termbuf2, sizeof(termbuf)))# ifdef  STREAMSPTY		(void) tcsetattr(ttyfd, TCSANOW, &termbuf);# else		(void) tcsetattr(pty, TCSANOW, &termbuf);# endif# if	defined(CRAY2) && defined(UNICOS5)	needtermstat = 1;# endif#endif	/* USE_TERMIO */}/* * spcset(func, valp, valpp) * * This function takes various special characters (func), and * sets *valp to the current value of that character, and * *valpp to point to where in the "termbuf" structure that * value is kept. * * It returns the SLC_ level of support for this function. */#ifndef	USE_TERMIO	intspcset(func, valp, valpp)	int func;	cc_t *valp;	cc_t **valpp;{	switch(func) {	case SLC_EOF:		*valp = termbuf.tc.t_eofc;		*valpp = (cc_t *)&termbuf.tc.t_eofc;		return(SLC_VARIABLE);	case SLC_EC:		*valp = termbuf.sg.sg_erase;		*valpp = (cc_t *)&termbuf.sg.sg_erase;		return(SLC_VARIABLE);	case SLC_EL:		*valp = termbuf.sg.sg_kill;		*valpp = (cc_t *)&termbuf.sg.sg_kill;		return(SLC_VARIABLE);	case SLC_IP:		*valp = termbuf.tc.t_intrc;		*valpp = (cc_t *)&termbuf.tc.t_intrc;		return(SLC_VARIABLE|SLC_FLUSHIN|SLC_FLUSHOUT);	case SLC_ABORT:		*valp = termbuf.tc.t_quitc;		*valpp = (cc_t *)&termbuf.tc.t_quitc;		return(SLC_VARIABLE|SLC_FLUSHIN|SLC_FLUSHOUT);	case SLC_XON:		*valp = termbuf.tc.t_startc;		*valpp = (cc_t *)&termbuf.tc.t_startc;		return(SLC_VARIABLE);	case SLC_XOFF:		*valp = termbuf.tc.t_stopc;		*valpp = (cc_t *)&termbuf.tc.t_stopc;		return(SLC_VARIABLE);	case SLC_AO:		*valp = termbuf.ltc.t_flushc;		*valpp = (cc_t *)&termbuf.ltc.t_flushc;		return(SLC_VARIABLE);	case SLC_SUSP:		*valp = termbuf.ltc.t_suspc;		*valpp = (cc_t *)&termbuf.ltc.t_suspc;		return(SLC_VARIABLE);	case SLC_EW:		*valp = termbuf.ltc.t_werasc;		*valpp = (cc_t *)&termbuf.ltc.t_werasc;		return(SLC_VARIABLE);	case SLC_RP:		*valp = termbuf.ltc.t_rprntc;		*valpp = (cc_t *)&termbuf.ltc.t_rprntc;		return(SLC_VARIABLE);	case SLC_LNEXT:		*valp = termbuf.ltc.t_lnextc;		*valpp = (cc_t *)&termbuf.ltc.t_lnextc;		return(SLC_VARIABLE);	case SLC_FORW1:		*valp = termbuf.tc.t_brkc;		*valpp = (cc_t *)&termbuf.ltc.t_lnextc;		return(SLC_VARIABLE);	case SLC_BRK:	case SLC_SYNCH:	case SLC_AYT:	case SLC_EOR:		*valp = (cc_t)0;		*valpp = (cc_t *)0;		return(SLC_DEFAULT);	default:		*valp = (cc_t)0;		*valpp = (cc_t *)0;		return(SLC_NOSUPPORT);	}}#else	/* USE_TERMIO */	intspcset(func, valp, valpp)	int func;	cc_t *valp;	cc_t **valpp;{#define	setval(a, b)	*valp = termbuf.c_cc[a]; \			*valpp = &termbuf.c_cc[a]; \			return(b);#define	defval(a) *valp = ((cc_t)a); *valpp = (cc_t *)0; return(SLC_DEFAULT);	switch(func) {	case SLC_EOF:		setval(VEOF, SLC_VARIABLE);	case SLC_EC:		setval(VERASE, SLC_VARIABLE);	case SLC_EL:		setval(VKILL, SLC_VARIABLE);	case SLC_IP:		setval(VINTR, SLC_VARIABLE|SLC_FLUSHIN|SLC_FLUSHOUT);	case SLC_ABORT:		setval(VQUIT, SLC_VARIABLE|SLC_FLUSHIN|SLC_FLUSHOUT);	case SLC_XON:#ifdef	VSTART		setval(VSTART, SLC_VARIABLE);#else		defval(0x13);#endif	case SLC_XOFF:#ifdef	VSTOP		setval(VSTOP, SLC_VARIABLE);#else		defval(0x11);#endif	case SLC_EW:#ifdef	VWERASE		setval(VWERASE, SLC_VARIABLE);#else		defval(0);#endif	case SLC_RP:#ifdef	VREPRINT		setval(VREPRINT, SLC_VARIABLE);#else		defval(0);#endif	case SLC_LNEXT:#ifdef	VLNEXT		setval(VLNEXT, SLC_VARIABLE);#else		defval(0);#endif	case SLC_AO:#if	!defined(VDISCARD) && defined(VFLUSHO)# define VDISCARD VFLUSHO#endif#ifdef	VDISCARD		setval(VDISCARD, SLC_VARIABLE|SLC_FLUSHOUT);#else		defval(0);#endif	case SLC_SUSP:#ifdef	VSUSP		setval(VSUSP, SLC_VARIABLE|SLC_FLUSHIN);#else		defval(0);#endif#ifdef	VEOL	case SLC_FORW1:		setval(VEOL, SLC_VARIABLE);#endif#ifdef	VEOL2	case SLC_FORW2:		setval(VEOL2, SLC_VARIABLE);#endif	case SLC_AYT:#ifdef	VSTATUS		setval(VSTATUS, SLC_VARIABLE);#else		defval(0);#endif	case SLC_BRK:	case SLC_SYNCH:	case SLC_EOR:		defval(0);	default:		*valp = 0;		*valpp = 0;		return(SLC_NOSUPPORT);	}}#endif	/* USE_TERMIO */#ifdef CRAY/* * getnpty() * * Return the number of pty's configured into the system. */	intgetnpty(){#ifdef _SC_CRAY_NPTY	int numptys;	if ((numptys = sysconf(_SC_CRAY_NPTY)) != -1)		return numptys;	else#endif /* _SC_CRAY_NPTY */		return 128;}#endif /* CRAY */#ifndef	convex/* * getpty() * * Allocate a pty.  As a side effect, the external character * array "line" contains the name of the slave side. * * Returns the file descriptor of the opened pty. */#ifndef	__GNUC__char *line = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";#elsestatic char Xline[] = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";char *line = Xline;#endif#ifdef	CRAYchar *myline = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";#endif	/* CRAY */	intgetpty(ptynum)int *ptynum;{	register int p;#ifdef	STREAMSPTY	int t;	char *ptsname();	p = open("/dev/ptmx", 2);	if (p > 0) {		grantpt(p);		unlockpt(p);		strcpy(line, ptsname(p));		return(p);	}#else	/* ! STREAMSPTY */#ifndef CRAY	register char *cp, *p1, *p2;	register int i;#if defined(sun) && defined(TIOCGPGRP) && BSD < 199207	int dummy;#endif#ifndef	__hpux	(void) sprintf(line, "/dev/ptyXX");	p1 = &line[8];	p2 = &line[9];#else	(void) sprintf(line, "/dev/ptym/ptyXX");	p1 = &line[13];	p2 = &line[14];#endif	for (cp = "pqrstuvwxyzPQRST"; *cp; cp++) {		struct stat stb;		*p1 = *cp;		*p2 = '0';		/*		 * This stat() check is just to keep us from		 * looping through all 256 combinations if there		 * aren't that many ptys available.		 */		if (stat(line, &stb) < 0)			break;		for (i = 0; i < 16; i++) {			*p2 = "0123456789abcdef"[i];			p = open(line, 2);			if (p > 0) {#ifndef	__hpux				line[5] = 't';#else				for (p1 = &line[8]; *p1; p1++)					*p1 = *(p1+1);				line[9] = 't';#endif				chown(line, 0, 0);				chmod(line, 0600);#if defined(sun) && defined(TIOCGPGRP) && BSD < 199207				if (ioctl(p, TIOCGPGRP, &dummy) == 0				    || errno != EIO) {					chmod(line, 0666);					close(p);					line[5] = 'p';				} else#endif /* defined(sun) && defined(TIOCGPGRP) && BSD < 199207 */					return(p);			}		}	}#else	/* CRAY */	extern lowpty, highpty;	struct stat sb;	for (*ptynum = lowpty; *ptynum <= highpty; (*ptynum)++) {		(void) sprintf(myline, "/dev/pty/%03d", *ptynum);		p = open(myline, 2);		if (p < 0)			continue;		(void) sprintf(line, "/dev/ttyp%03d", *ptynum);		/*		 * Here are some shenanigans to make sure that there		 * are no listeners lurking on the line.		 */		if(stat(line, &sb) < 0) {			(void) close(p);			continue;		}		if(sb.st_uid || sb.st_gid || sb.st_mode != 0600) {			chown(line, 0, 0);			chmod(line, 0600);			(void)close(p);			p = open(myline, 2);			if (p < 0)				continue;		}		/*		 * Now it should be safe...check for accessability.		 */		if (access(line, 6) == 0)			return(p);		else {			/* no tty side to pty so skip it */			(void) close(p);		}	}#endif	/* CRAY */#endif	/* STREAMSPTY */	return(-1);}#endif	/* convex */#ifdef	LINEMODE/* * tty_flowmode()	Find out if flow control is enabled or disabled. * tty_linemode()	Find out if linemode (external processing) is enabled. * tty_setlinemod(on)	Turn on/off linemode. * tty_isecho()		Find out if echoing is turned on. * tty_setecho(on)	Enable/disable character echoing. * tty_israw()		Find out if terminal is in RAW mode. * tty_binaryin(on)	Turn on/off BINARY on input. * tty_binaryout(on)	Turn on/off BINARY on output. * tty_isediting()	Find out if line editing is enabled. * tty_istrapsig()	Find out if signal trapping is enabled. * tty_setedit(on)	Turn on/off line editing. * tty_setsig(on)	Turn on/off signal trapping. * tty_issofttab()	Find out if tab expansion is enabled. * tty_setsofttab(on)	Turn on/off soft tab expansion. * tty_islitecho()	Find out if typed control chars are echoed literally * tty_setlitecho()	Turn on/off literal echo of control chars * tty_tspeed(val)	Set transmit speed to val. * tty_rspeed(val)	Set receive speed to val. */#ifdef convexstatic int linestate;#endif	inttty_linemode(){#ifndef convex#ifndef	USE_TERMIO	return(termbuf.state & TS_EXTPROC);#else	return(termbuf.c_lflag & EXTPROC);#endif#else	return(linestate);#endif}	voidtty_setlinemode(on)	int on;{#ifdef	TIOCEXT# ifndef convex	set_termbuf();# else	linestate = on;# endif	(void) ioctl(pty, TIOCEXT, (char *)&on);# ifndef convex	init_termbuf();# endif#else	/* !TIOCEXT */# ifdef	EXTPROC	if (on)		termbuf.c_lflag |= EXTPROC;	else		termbuf.c_lflag &= ~EXTPROC;# endif#endif	/* TIOCEXT */}#endif	/* LINEMODE */	inttty_isecho(){#ifndef USE_TERMIO	return (termbuf.sg.sg_flags & ECHO);#else	return (termbuf.c_lflag & ECHO);#endif}	inttty_flowmode(){#ifndef USE_TERMIO	return(((termbuf.tc.t_startc) > 0 && (termbuf.tc.t_stopc) > 0) ? 1 : 0);#else	return((termbuf.c_iflag & IXON) ? 1 : 0);#endif}	inttty_restartany(){#ifndef USE_TERMIO# ifdef	DECCTQ	return((termbuf.lflags & DECCTQ) ? 0 : 1);# else	return(-1);# endif#else	return((termbuf.c_iflag & IXANY) ? 1 : 0);#endif}	voidtty_setecho(on)	int on;{#ifndef	USE_TERMIO	if (on)		termbuf.sg.sg_flags |= ECHO|CRMOD;	else		termbuf.sg.sg_flags &= ~(ECHO|CRMOD);#else	if (on)		termbuf.c_lflag |= ECHO;	else		termbuf.c_lflag &= ~ECHO;#endif}	inttty_israw(){#ifndef USE_TERMIO	return(termbuf.sg.sg_flags & RAW);#else	return(!(termbuf.c_lflag & ICANON));#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩三级在线| 国产精品国产成人国产三级 | 免费av网站大全久久| 国产一区激情在线| 在线免费一区三区| 国产日韩欧美电影| 日韩精品乱码av一区二区| av在线这里只有精品| 精品少妇一区二区三区日产乱码 | ...xxx性欧美| 国产一区二区影院| 亚洲老妇xxxxxx| 精品国产伦理网| 亚洲色欲色欲www| 精品一区二区三区免费观看| 色综合天天综合色综合av| 久久人人超碰精品| 美国十次综合导航| 欧美私人免费视频| 一区二区在线免费| 972aa.com艺术欧美| 国产欧美日韩综合| 国产在线一区二区| 日韩欧美自拍偷拍| 蜜臀av一区二区在线免费观看| 一本久道久久综合中文字幕| 国产精品久久夜| 成人免费黄色在线| 中文一区二区在线观看| 国产成人精品免费网站| 国产日韩精品一区| 国产美女精品一区二区三区| 精品美女在线播放| 国产一区二区看久久| 欧美精品一区二区三区高清aⅴ | 男男视频亚洲欧美| 6080yy午夜一二三区久久| 亚洲一区二区三区中文字幕| 色吊一区二区三区| 亚洲一区二区三区在线看| 精品视频在线视频| 日产国产高清一区二区三区| 日韩网站在线看片你懂的| 日韩有码一区二区三区| 日韩欧美色综合网站| 韩国v欧美v日本v亚洲v| 久久精品人人做人人综合| 国产xxx精品视频大全| 国产精品电影一区二区三区| 91丝袜高跟美女视频| 亚洲精品视频观看| 欧美日韩亚洲另类| 久久精品国产精品青草| 国产色综合久久| 91麻豆国产在线观看| 午夜欧美大尺度福利影院在线看 | 亚洲电影在线免费观看| 91麻豆精品国产91久久久资源速度| 日韩精品欧美精品| 久久久噜噜噜久噜久久综合| a在线播放不卡| 丝袜亚洲精品中文字幕一区| 久久香蕉国产线看观看99| 成人动漫在线一区| 午夜精品影院在线观看| 久久久久9999亚洲精品| 色婷婷久久综合| 麻豆国产91在线播放| 国产精品国产三级国产普通话蜜臀| 9191国产精品| 日韩1区2区3区| 欧美高清一级片在线观看| 欧美中文字幕亚洲一区二区va在线| 蜜臀av性久久久久蜜臀aⅴ| 国产精品嫩草久久久久| 激情综合网激情| 欧美激情一区二区三区| 色又黄又爽网站www久久| 日本伊人午夜精品| 亚洲天堂成人网| 欧美成人激情免费网| 色诱亚洲精品久久久久久| 麻豆国产欧美一区二区三区| 综合在线观看色| 亚洲精品一区二区三区福利| 91精品91久久久中77777| 国产一区91精品张津瑜| 亚洲国产成人av网| 成人免费一区二区三区视频| 日韩欧美一区二区久久婷婷| 欧美中文字幕一区| 99在线精品观看| 国产综合久久久久久久久久久久| 亚洲国产精品一区二区www在线| 国产色综合一区| 精品国产一二三区| 欧美精品乱码久久久久久| av午夜一区麻豆| 国产激情视频一区二区三区欧美 | 国产欧美日韩综合精品一区二区| 91视视频在线直接观看在线看网页在线看 | 欧美精品少妇一区二区三区 | 国产精品国产三级国产a| 日韩一区二区三免费高清| 欧美色视频一区| 91香蕉国产在线观看软件| 成人一区二区视频| 国产乱子伦一区二区三区国色天香| 亚洲午夜久久久| 亚洲一区视频在线| 曰韩精品一区二区| 亚洲九九爱视频| 中文字幕制服丝袜成人av| 国模套图日韩精品一区二区| 国产精品视频免费| 91精品国产麻豆| 色天天综合色天天久久| 高清在线成人网| 国产福利一区二区| 夫妻av一区二区| 成人午夜在线视频| 99久久精品国产一区| a4yy欧美一区二区三区| 99精品国产91久久久久久| 99久久er热在这里只有精品66| 成人激情视频网站| 99久久99久久免费精品蜜臀| 91原创在线视频| 欧美羞羞免费网站| 欧美一区二区三区在线观看| 欧美大片在线观看一区二区| 欧美xxxx老人做受| 国产校园另类小说区| 中文字幕一区二区在线播放| 自拍偷在线精品自拍偷无码专区| 亚洲欧美一区二区三区孕妇| 亚洲一区自拍偷拍| 日韩高清不卡一区二区| 韩国精品免费视频| 99国产欧美另类久久久精品| 色哟哟精品一区| 欧美浪妇xxxx高跟鞋交| 精品国产一区二区亚洲人成毛片| 日韩欧美国产wwwww| 中文字幕乱码久久午夜不卡| 欧美日韩国产成人在线免费| 欧美日产国产精品| 亚洲精品一区二区三区四区高清 | 午夜av区久久| 黄色成人免费在线| 91色.com| 欧美tk—视频vk| 美女尤物国产一区| 成人国产精品视频| 欧美人妖巨大在线| 国产精品青草综合久久久久99| 亚洲综合色区另类av| 激情综合色播五月| 91蜜桃网址入口| 欧美变态口味重另类| 亚洲免费毛片网站| 黄网站免费久久| 欧美日韩国产小视频| 国产欧美日韩亚州综合| 午夜不卡av在线| 99精品视频在线观看| 欧美电影免费观看高清完整版| 中文字幕在线不卡一区| 美脚の诱脚舐め脚责91| 中文字幕av在线一区二区三区| 国产欧美一区二区精品性色超碰| 国产日产欧美一区二区视频| 亚洲不卡一区二区三区| 东方欧美亚洲色图在线| 91精品国产91热久久久做人人| 国产精品色一区二区三区| 麻豆一区二区三| 欧美在线啊v一区| 国产精品久久久久桃色tv| 麻豆国产91在线播放| 欧美片网站yy| 一区二区三区.www| 波多野结衣在线aⅴ中文字幕不卡| 日韩一区国产二区欧美三区| 国产乱码精品一区二区三| 欧美性猛交一区二区三区精品| 国产精品国产三级国产普通话99| 国产在线视频不卡二| 欧美一区二区三区四区高清| 亚洲一区在线看| 91视频国产资源| 国产精品第13页| 成人18精品视频| 欧美国产日本韩| 国产成人精品免费| 久久综合九色综合欧美98| 久久福利资源站| 欧美videos大乳护士334| 美女高潮久久久| 91精品福利视频|