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

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

?? lcp.c

?? ppp協議的lwip源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*****************************************************************************
* lcp.c - Network Link Control Protocol program file.
*
* Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc.
* portions Copyright (c) 1997 by Global Election Systems Inc.
*
* The authors hereby grant permission to use, copy, modify, distribute,
* and license this software and its documentation for any purpose, provided
* that existing copyright notices are retained in all copies and that this
* notice and the following disclaimer are included verbatim in any 
* distributions. No written agreement, license, or royalty fee is required
* for any of the authorized uses.
*
* THIS SOFTWARE IS PROVIDED BY THE 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 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.
*
******************************************************************************
* REVISION HISTORY
*
* 03-01-01 Marc Boucher <marc@mbsi.ca>
*   Ported to lwIP.
* 97-12-01 Guy Lancaster <lancasterg@acm.org>, Global Election Systems Inc.
*	Original.
*****************************************************************************/

/*
 * lcp.c - PPP Link Control Protocol.
 *
 * Copyright (c) 1989 Carnegie Mellon University.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms are permitted
 * provided that the above copyright notice and this paragraph are
 * duplicated in all such forms and that any documentation,
 * advertising materials, and other materials related to such
 * distribution and use acknowledge that the software was developed
 * by Carnegie Mellon University.  The name of the
 * University may not be used to endorse or promote products derived
 * from this software without specific prior written permission.
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */
#include "pppconf.h"
#if PPP_SUPPORT > 0
#include "ppp.h"
#include "fsm.h"
#include "chap.h"
#include "magic.h"
#include "auth.h"
#include "lcp.h"
#include "pppdebug.h"


/*************************/
/*** LOCAL DEFINITIONS ***/
/*************************/
/*
 * Length of each type of configuration option (in octets)
 */
#define CILEN_VOID	2
#define CILEN_CHAR	3
#define CILEN_SHORT	4	/* CILEN_VOID + sizeof(short) */
#define CILEN_CHAP	5	/* CILEN_VOID + sizeof(short) + 1 */
#define CILEN_LONG	6	/* CILEN_VOID + sizeof(long) */
#define CILEN_LQR	8	/* CILEN_VOID + sizeof(short) + sizeof(long) */
#define CILEN_CBCP	3


/***********************************/
/*** LOCAL FUNCTION DECLARATIONS ***/
/***********************************/
/*
 * Callbacks for fsm code.  (CI = Configuration Information)
 */
static void lcp_resetci (fsm*);	        /* Reset our CI */
static int  lcp_cilen (fsm*);		        /* Return length of our CI */
static void lcp_addci (fsm*, u_char*, int*);       /* Add our CI to pkt */
static int  lcp_ackci (fsm*, u_char*, int);/* Peer ack'd our CI */
static int  lcp_nakci (fsm*, u_char*, int);/* Peer nak'd our CI */
static int  lcp_rejci (fsm*, u_char*, int);/* Peer rej'd our CI */
static int  lcp_reqci (fsm*, u_char*, int*, int);  /* Rcv peer CI */
static void lcp_up (fsm*);		            /* We're UP */
static void lcp_down (fsm*);	    	    /* We're DOWN */
static void lcp_starting (fsm*);   	    /* We need lower layer up */
static void lcp_finished (fsm*);	        /* We need lower layer down */
//static int  lcp_extcode (fsm*, int, int, u_char*, int);
static int  lcp_extcode (fsm*, int, u_char, u_char*, int);

static void lcp_rprotrej (fsm*, u_char*, int);

/*
 * routines to send LCP echos to peer
 */
static void lcp_echo_lowerup (int);
static void lcp_echo_lowerdown (int);
static void LcpEchoTimeout (void*);
static void lcp_received_echo_reply (fsm*, int, u_char*, int);
static void LcpSendEchoRequest (fsm*);
static void LcpLinkFailure (fsm*);
static void LcpEchoCheck (fsm*);

/*
 * Protocol entry points.
 * Some of these are called directly.
 */
static void lcp_input (int, u_char *, int);
static void lcp_protrej (int);

#define CODENAME(x)	((x) == CONFACK ? "ACK" : \
			 (x) == CONFNAK ? "NAK" : "REJ")


/******************************/
/*** PUBLIC DATA STRUCTURES ***/
/******************************/
/* global vars */
LinkPhase lcp_phase[NUM_PPP];			/* Phase of link session (RFC 1661) */
lcp_options lcp_wantoptions[NUM_PPP];	/* Options that we want to request */
lcp_options lcp_gotoptions[NUM_PPP];	/* Options that peer ack'd */
lcp_options lcp_allowoptions[NUM_PPP];	/* Options we allow peer to request */
lcp_options lcp_hisoptions[NUM_PPP];	/* Options that we ack'd */
ext_accm xmit_accm[NUM_PPP];			/* extended transmit ACCM */



/*****************************/
/*** LOCAL DATA STRUCTURES ***/
/*****************************/
static fsm lcp_fsm[NUM_PPP];			/* LCP fsm structure (global)*/
static u_int	 lcp_echo_interval = LCP_ECHOINTERVAL; /* Interval between LCP echo-requests */
static u_int	 lcp_echo_fails = LCP_MAXECHOFAILS; /* Tolerance to unanswered echo-requests */
static u32_t lcp_echos_pending = 0;	/* Number of outstanding echo msgs */
static u32_t lcp_echo_number   = 0;	/* ID number of next echo frame */
static u32_t lcp_echo_timer_running = 0;  /* TRUE if a timer is running */

static u_char nak_buffer[PPP_MRU];	/* where we construct a nak packet */

static fsm_callbacks lcp_callbacks = {	/* LCP callback routines */
    lcp_resetci,		/* Reset our Configuration Information */
    lcp_cilen,			/* Length of our Configuration Information */
    lcp_addci,			/* Add our Configuration Information */
    lcp_ackci,			/* ACK our Configuration Information */
    lcp_nakci,			/* NAK our Configuration Information */
    lcp_rejci,			/* Reject our Configuration Information */
    lcp_reqci,			/* Request peer's Configuration Information */
    lcp_up,				/* Called when fsm reaches OPENED state */
    lcp_down,			/* Called when fsm leaves OPENED state */
    lcp_starting,		/* Called when we want the lower layer up */
    lcp_finished,		/* Called when we want the lower layer down */
    NULL,				/* Called when Protocol-Reject received */
    NULL,				/* Retransmission is necessary */
    lcp_extcode,		/* Called to handle LCP-specific codes */
    "LCP"				/* String name of protocol */
};

struct protent lcp_protent = {
    PPP_LCP,
    lcp_init,
    lcp_input,
    lcp_protrej,
    lcp_lowerup,
    lcp_lowerdown,
    lcp_open,
    lcp_close,
#if 0
    lcp_printpkt,
    NULL,
#endif
    1,
    "LCP",
#if 0
    NULL,
    NULL,
    NULL
#endif
};

int lcp_loopbackfail = DEFLOOPBACKFAIL;



/***********************************/
/*** PUBLIC FUNCTION DEFINITIONS ***/
/***********************************/
/*
 * lcp_init - Initialize LCP.
 */
void lcp_init(int unit)
{
	fsm *f = &lcp_fsm[unit];
	lcp_options *wo = &lcp_wantoptions[unit];
	lcp_options *ao = &lcp_allowoptions[unit];
	
	f->unit = unit;
	f->protocol = PPP_LCP;
	f->callbacks = &lcp_callbacks;
	
	fsm_init(f);
	
	wo->passive = 0;
	wo->silent = 0;
	wo->restart = 0;			/* Set to 1 in kernels or multi-line
								 * implementations */
	wo->neg_mru = 1;
	wo->mru = PPP_DEFMRU;
	wo->neg_asyncmap = 1;
	wo->asyncmap = 0x00000000l;	/* Assume don't need to escape any ctl chars. */
	wo->neg_chap = 0;			/* Set to 1 on server */
	wo->neg_upap = 0;			/* Set to 1 on server */
	wo->chap_mdtype = CHAP_DIGEST_MD5;
	wo->neg_magicnumber = 1;
	wo->neg_pcompression = 1;
	wo->neg_accompression = 1;
	wo->neg_lqr = 0;			/* no LQR implementation yet */
	wo->neg_cbcp = 0;
	
	ao->neg_mru = 1;
	ao->mru = PPP_MAXMRU;
	ao->neg_asyncmap = 1;
	ao->asyncmap = 0x00000000l;	/* Assume don't need to escape any ctl chars. */
	ao->neg_chap = (CHAP_SUPPORT != 0);
	ao->chap_mdtype = CHAP_DIGEST_MD5;
	ao->neg_upap = (PAP_SUPPORT != 0);
	ao->neg_magicnumber = 1;
	ao->neg_pcompression = 1;
	ao->neg_accompression = 1;
	ao->neg_lqr = 0;			/* no LQR implementation yet */
	ao->neg_cbcp = (CBCP_SUPPORT != 0);

	/* 
	 * Set transmit escape for the flag and escape characters plus anything
	 * set for the allowable options.
	 */
	memset(xmit_accm[unit], 0, sizeof(xmit_accm[0]));
	xmit_accm[unit][15] = 0x60;
	xmit_accm[unit][0] = (u_char)(ao->asyncmap & 0xFF);
	xmit_accm[unit][1] = (u_char)((ao->asyncmap >> 8) & 0xFF);
	xmit_accm[unit][2] = (u_char)((ao->asyncmap >> 16) & 0xFF);
	xmit_accm[unit][3] = (u_char)((ao->asyncmap >> 24) & 0xFF);
	LCPDEBUG((LOG_INFO, "lcp_init: xmit_accm=%X %X %X %X\n",
				xmit_accm[unit][0],
				xmit_accm[unit][1],
				xmit_accm[unit][2],
				xmit_accm[unit][3]));
	
	lcp_phase[unit] = PHASE_INITIALIZE;
}


/*
 * lcp_open - LCP is allowed to come up.
 */
void lcp_open(int unit)
{
	fsm *f = &lcp_fsm[unit];
	lcp_options *wo = &lcp_wantoptions[unit];
	
	f->flags = 0;
	if (wo->passive)
		f->flags |= OPT_PASSIVE;
	if (wo->silent)
		f->flags |= OPT_SILENT;
	fsm_open(f);
	
	lcp_phase[unit] = PHASE_ESTABLISH; 
}


/*
 * lcp_close - Take LCP down.
 */
void lcp_close(int unit, char *reason)
{
	fsm *f = &lcp_fsm[unit];
	
	if (lcp_phase[unit] != PHASE_DEAD)
		lcp_phase[unit] = PHASE_TERMINATE;
	if (f->state == STOPPED && f->flags & (OPT_PASSIVE|OPT_SILENT)) {
		/*
		 * This action is not strictly according to the FSM in RFC1548,
		 * but it does mean that the program terminates if you do an
		 * lcp_close() in passive/silent mode when a connection hasn't
		 * been established.
		 */
		f->state = CLOSED;
		lcp_finished(f);
	}
	else
		fsm_close(&lcp_fsm[unit], reason);
}


/*
 * lcp_lowerup - The lower layer is up.
 */
void lcp_lowerup(int unit)
{
	lcp_options *wo = &lcp_wantoptions[unit];
	
	/*
	* Don't use A/C or protocol compression on transmission,
	* but accept A/C and protocol compressed packets
	* if we are going to ask for A/C and protocol compression.
	*/
	ppp_set_xaccm(unit, &xmit_accm[unit]);
	ppp_send_config(unit, PPP_MRU, 0xffffffffl, 0, 0);
	ppp_recv_config(unit, PPP_MRU, 0x00000000l,
					wo->neg_pcompression, wo->neg_accompression);
	peer_mru[unit] = PPP_MRU;
	lcp_allowoptions[unit].asyncmap 
		= (u_long)xmit_accm[unit][0]
			| ((u_long)xmit_accm[unit][1] << 8)
			| ((u_long)xmit_accm[unit][2] << 16)
			| ((u_long)xmit_accm[unit][3] << 24);
	LCPDEBUG((LOG_INFO, "lcp_lowerup: asyncmap=%X %X %X %X\n",
				xmit_accm[unit][3],
				xmit_accm[unit][2],
				xmit_accm[unit][1],
				xmit_accm[unit][0]));
	
	fsm_lowerup(&lcp_fsm[unit]);
}


/*
 * lcp_lowerdown - The lower layer is down.
 */
void lcp_lowerdown(int unit)
{
	fsm_lowerdown(&lcp_fsm[unit]);
}

/*
 * lcp_sprotrej - Send a Protocol-Reject for some protocol.
 */
void lcp_sprotrej(int unit, u_char *p, int len)
{
	/*
	* Send back the protocol and the information field of the
	* rejected packet.  We only get here if LCP is in the OPENED state.
	*/

	fsm_sdata(&lcp_fsm[unit], PROTREJ, ++lcp_fsm[unit].id,
				p, len);
}



/**********************************/
/*** LOCAL FUNCTION DEFINITIONS ***/
/**********************************/
/*
 * lcp_input - Input LCP packet.
 */
static void lcp_input(int unit, u_char *p, int len)
{
	fsm *f = &lcp_fsm[unit];
	
	fsm_input(f, p, len);
}


/*
 * lcp_extcode - Handle a LCP-specific code.
 */
//static int lcp_extcode(fsm *f, int code, int id, u_char *inp, int len)
static int lcp_extcode(fsm *f, int code, u_char id, u_char *inp, int len)
{
	u_char *magp;
	
	switch( code ){
	case PROTREJ:
		lcp_rprotrej(f, inp, len);
		break;
	
	case ECHOREQ:
		if (f->state != OPENED)
			break;
		LCPDEBUG((LOG_INFO, "lcp: Echo-Request, Rcvd id %d\n", id));
		magp = inp;
		PUTLONG(lcp_gotoptions[f->unit].magicnumber, magp);
		fsm_sdata(f, ECHOREP, id, inp, len);
		break;
	
	case ECHOREP:
		lcp_received_echo_reply(f, id, inp, len);
		break;
	
	case DISCREQ:
		break;
	
	default:
		return 0;
	}
	return 1;
}

    
/*
 * lcp_rprotrej - Receive an Protocol-Reject.
 *
 * Figure out which protocol is rejected and inform it.
 */
static void lcp_rprotrej(fsm *f, u_char *inp, int len)
{
	int i;
	struct protent *protp;
	u_short prot;
	
	if (len < sizeof (u_short)) {
		LCPDEBUG((LOG_INFO,
				"lcp_rprotrej: Rcvd short Protocol-Reject packet!\n"));
		return;
	}
	
	GETSHORT(prot, inp);
	
	LCPDEBUG((LOG_INFO,
			"lcp_rprotrej: Rcvd Protocol-Reject packet for %x!\n",
			prot));
	
	/*
	* Protocol-Reject packets received in any state other than the LCP
	* OPENED state SHOULD be silently discarded.
	*/
	if( f->state != OPENED ){
		LCPDEBUG((LOG_INFO, "Protocol-Reject discarded: LCP in state %d\n",
				f->state));
		return;
	}
	
	/*
	* Upcall the proper Protocol-Reject routine.
	*/
	for (i = 0; (protp = ppp_protocols[i]) != NULL; ++i)
		if (protp->protocol == prot && protp->enabled_flag) {
			(*protp->protrej)(f->unit);
			return;
		}
	
	LCPDEBUG((LOG_WARNING, "Protocol-Reject for unsupported protocol 0x%x\n",
			prot));
}


/*
 * lcp_protrej - A Protocol-Reject was received.
 */
static void lcp_protrej(int unit)
{
	(void)unit;
	/*
	* Can't reject LCP!
	*/
	LCPDEBUG((LOG_WARNING,
			"lcp_protrej: Received Protocol-Reject for LCP!\n"));
	fsm_protreject(&lcp_fsm[unit]);
}


/*
 * lcp_resetci - Reset our CI.
 */
static void lcp_resetci(fsm *f)
{
	lcp_wantoptions[f->unit].magicnumber = magic();
	lcp_wantoptions[f->unit].numloops = 0;
	lcp_gotoptions[f->unit] = lcp_wantoptions[f->unit];
	peer_mru[f->unit] = PPP_MRU;
	auth_reset(f->unit);
}


/*
 * lcp_cilen - Return length of our CI.
 */
static int lcp_cilen(fsm *f)
{
	lcp_options *go = &lcp_gotoptions[f->unit];

#define LENCIVOID(neg)	((neg) ? CILEN_VOID : 0)
#define LENCICHAP(neg)	((neg) ? CILEN_CHAP : 0)
#define LENCISHORT(neg)	((neg) ? CILEN_SHORT : 0)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲乱码中文字幕综合| 麻豆91在线播放| 狠狠狠色丁香婷婷综合激情 | 日本高清无吗v一区| 欧美成人精品福利| 亚洲一区免费在线观看| 国产盗摄精品一区二区三区在线| 色老头久久综合| 国产日产亚洲精品系列| 蜜臀av一级做a爰片久久| 91激情五月电影| 亚洲色图清纯唯美| 国产成人av影院| 欧美成人福利视频| 日韩制服丝袜av| 精品视频在线看| 亚洲精品自拍动漫在线| 成人av在线资源网站| 国产亚洲一区二区三区四区| 美女在线观看视频一区二区| 欧美日韩在线综合| 亚洲在线一区二区三区| 日韩欧美国产电影| 亚洲大型综合色站| 欧美日韩激情一区| 亚洲成av人片观看| 欧美丝袜自拍制服另类| 亚洲激情男女视频| 91久久精品网| 亚洲一区在线观看视频| 在线免费观看日本一区| 亚洲精品国产精华液| 欧美综合亚洲图片综合区| 一区二区三区在线免费观看| 欧美自拍丝袜亚洲| 亚洲午夜久久久久中文字幕久| 99久久精品国产麻豆演员表| ...av二区三区久久精品| caoporn国产精品| 亚洲男同性视频| 欧美午夜片在线看| 日韩精品亚洲一区| 亚洲精品一线二线三线无人区| 国产一区二区三区日韩| 国产精品免费看片| 972aa.com艺术欧美| 伊人婷婷欧美激情| 欧美一区二区三区爱爱| 国产一区二区三区综合| 国产精品美女久久久久aⅴ国产馆| 福利电影一区二区| 亚洲欧美日韩国产综合在线| 欧美三级蜜桃2在线观看| 久久精品久久精品| 国产精品久久久久久久第一福利| 色哟哟一区二区| 欧美a级一区二区| 国产欧美一区视频| 欧洲日韩一区二区三区| 国产一区久久久| 亚洲一区二区三区四区在线免费观看 | 日本不卡视频一二三区| 欧美成人精品1314www| a级高清视频欧美日韩| 亚洲成av人片在线| 久久精品人人做人人爽97| 日本乱人伦aⅴ精品| 久久精品国产精品青草| 综合久久给合久久狠狠狠97色 | 91免费版在线| 久久精品国产久精国产爱| 中文字幕一区视频| 欧美一区二区三区视频免费播放| 成人美女在线观看| 日本网站在线观看一区二区三区 | 国产欧美日韩不卡| 久久久亚洲综合| 在线免费观看日韩欧美| 国模无码大尺度一区二区三区| 亚洲精品乱码久久久久| 国产三级精品在线| 欧美一区二区女人| 在线观看欧美精品| 波多野结衣一区二区三区 | 欧美日韩精品综合在线| 成人激情校园春色| 韩国一区二区视频| 日韩精品亚洲一区| 亚洲综合自拍偷拍| 中文字幕一区二区在线播放| 精品电影一区二区| 欧美一区二区三区成人| 欧美日韩第一区日日骚| 99国内精品久久| 国v精品久久久网| 国产在线视频不卡二| 日韩影院免费视频| 亚洲图片欧美色图| 亚洲理论在线观看| 国产精品不卡视频| 国产精品欧美综合在线| 久久久不卡网国产精品一区| 日韩欧美中文一区| 欧美乱熟臀69xxxxxx| 欧美性猛交一区二区三区精品| av在线不卡免费看| a级高清视频欧美日韩| 国产ts人妖一区二区| 国产高清不卡二三区| 国产一区二区看久久| 黄色资源网久久资源365| 蜜臀av性久久久久蜜臀aⅴ四虎 | 精品一区二区日韩| 乱一区二区av| 激情五月婷婷综合| 国产裸体歌舞团一区二区| 另类欧美日韩国产在线| 韩国三级中文字幕hd久久精品| 久久国产精品一区二区| 国产一区二区三区不卡在线观看 | 国产精品久久久久久久久图文区| 久久久亚洲精华液精华液精华液 | 久久精品视频网| 国产日韩欧美麻豆| 中文字幕不卡的av| 国产精品美女久久久久久久| 亚洲日本乱码在线观看| 亚洲综合精品自拍| 五月婷婷激情综合| 色噜噜狠狠色综合欧洲selulu| 欧美性受xxxx黑人xyx性爽| 欧美日韩mp4| 日韩一区二区视频| 国产午夜精品久久久久久免费视| 国产精品欧美极品| 亚洲第一成人在线| 国产资源在线一区| 日本久久一区二区| 日韩午夜激情电影| 中文字幕av一区二区三区| 夜夜嗨av一区二区三区| 久久99九九99精品| av电影天堂一区二区在线观看| 欧美影院午夜播放| 精品国产乱子伦一区| 国产精品欧美一级免费| 日韩精品久久理论片| 国产91在线观看| 欧美影视一区二区三区| 2020国产精品自拍| 亚洲欧洲综合另类在线| 免费成人小视频| 色悠久久久久综合欧美99| 欧美一区欧美二区| 中文字幕亚洲在| 久久国产麻豆精品| 色狠狠av一区二区三区| 精品美女一区二区| 一区二区三区波多野结衣在线观看| 蜜臀av在线播放一区二区三区| 99热精品国产| 久久免费看少妇高潮| 亚洲福利视频一区| 99精品视频在线观看免费| 欧美一区二区免费| 夜色激情一区二区| 丁香婷婷综合五月| 日韩丝袜情趣美女图片| 亚洲综合激情小说| 99久久婷婷国产综合精品电影| 亚洲精品中文在线影院| 国产米奇在线777精品观看| 欧美色老头old∨ideo| 最新日韩在线视频| 国产美女精品一区二区三区| 欧美高清视频一二三区| 亚洲欧洲制服丝袜| 成人午夜视频福利| 久久久久国产精品厨房| 卡一卡二国产精品 | 奇米在线7777在线精品| 97久久超碰国产精品| 国产精品私房写真福利视频| 精品无码三级在线观看视频| 欧美老女人第四色| 一区二区三区视频在线看| a在线播放不卡| 国产精品久久久久久久久晋中| 国产一区二区三区四区五区美女| 91精品一区二区三区久久久久久| 一区二区三区丝袜| 色综合天天综合网国产成人综合天 | 一区二区在线电影| 色婷婷亚洲综合| 亚洲色图视频免费播放| 99精品偷自拍| 一区二区三区av电影| 色妞www精品视频| 尤物在线观看一区| 欧美日韩国产免费一区二区|