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

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

?? lcp.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* lcp.c - PPP Link Control Protocol *//* Copyright 1995 Wind River Systems, Inc. */#include "copyright_wrs.h"/* * 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. *//*modification history--------------------01d,14apr97,vin  lcp state machine fixes from ppp-2.3b3, corrected the		 problem of lcp_reqci generating CONFREJ instead of CONFNAKs.01e,10dec96,vin  fixed additional problem with lcp_finished(), SPR7604.01d,15nov96,vin  fixed lcp_finished(), calls fsm_open() if OPT_RESTART		 is specified. This will cause the ppp deamon task		 to wait for the next connection. This is typically useful		 when vxWorks target is acting as a ppp server.		 Added flag OPT_RESTART if passive or silent options are 		 specified.01c,16jun95,dzb  header file consolidation.                 changed [UN]TIMEOUT macros to PPP_[UN]TIMEOUT.01b,09feb95,dab  ensure ao->mru is not 0 when setting interface mtu.                 removed lcp_echo_fails_reached variable.01a,21dec94,dab  VxWorks port - first WRS version.	   +dzb  added: path for ppp header files, WRS copyright.*/#include "vxWorks.h"#include "stdio.h"#include "string.h"#include "sys/ioctl.h"#include "sys/types.h"#include "sys/socket.h"#include "sys/times.h"#include "netinet/in.h"#include "pppLib.h"/* * Callbacks for fsm code.  (CI = Configuration Information) */static void lcp_resetci __ARGS((fsm *));	/* Reset our CI */static int  lcp_cilen __ARGS((fsm *));		/* Return length of our CI */static void lcp_addci __ARGS((fsm *, u_char *, int *)); /* Add our CI to pkt */static int  lcp_ackci __ARGS((fsm *, u_char *, int)); /* Peer ack'd our CI */static int  lcp_nakci __ARGS((fsm *, u_char *, int)); /* Peer nak'd our CI */static int  lcp_rejci __ARGS((fsm *, u_char *, int)); /* Peer rej'd our CI */static int  lcp_reqci __ARGS((fsm *, u_char *, int *, int)); /* Rcv peer CI */static void lcp_up __ARGS((fsm *));		/* We're UP */static void lcp_down __ARGS((fsm *));		/* We're DOWN */static void lcp_starting __ARGS((fsm *));	/* We need lower layer up */static void lcp_finished __ARGS((fsm *));	/* We need lower layer down */static int  lcp_extcode __ARGS((fsm *, int, int, u_char *, int));static void lcp_rprotrej __ARGS((fsm *, u_char *, int));/* * routines to send LCP echos to peer */static void lcp_echo_lowerup __ARGS((int));static void lcp_echo_lowerdown __ARGS((int));static void LcpEchoTimeout __ARGS((caddr_t));static void lcp_received_echo_reply __ARGS((fsm *, int, u_char *, int));static void LcpSendEchoRequest __ARGS((fsm *));static void LcpLinkFailure __ARGS((fsm *));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 */};int lcp_warnloops = DEFWARNLOOPS; /* Warn about a loopback this often *//* * Length of each type of configuration option (in octets) */#define CILEN_VOID	2#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 CODENAME(x)	((x) == CONFACK ? "ACK" : \			 (x) == CONFNAK ? "NAK" : "REJ")static u_char nak_buffer[PPP_MRU];	/* where we construct a nak packet *//* * lcp_init - Initialize LCP. */voidlcp_init(unit)    int unit;{    fsm *f = &ppp_if[unit]->lcp_fsm;    lcp_options *wo = &ppp_if[unit]->lcp_wantoptions;    lcp_options *ao = &ppp_if[unit]->lcp_allowoptions;    f->unit = unit;    f->protocol = 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 = DEFMRU;    wo->neg_asyncmap = 0;    wo->asyncmap = 0;    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 */    ao->neg_mru = 1;    ao->mru = MAXMRU;    ao->neg_asyncmap = 1;    ao->asyncmap = 0;    ao->neg_chap = 1;    ao->chap_mdtype = CHAP_DIGEST_MD5;    ao->neg_upap = 1;    ao->neg_magicnumber = 1;    ao->neg_pcompression = 1;    ao->neg_accompression = 1;    ao->neg_lqr = 0;			/* no LQR implementation yet */    bzero((char *)ppp_if[unit]->xmit_accm, sizeof(ppp_if[unit]->xmit_accm[0]));    ppp_if[unit]->xmit_accm[3] = 0x60000000;}/* * lcp_open - LCP is allowed to come up. */voidlcp_open(unit)    int unit;{    fsm *f = &ppp_if[unit]->lcp_fsm;    lcp_options *wo = &ppp_if[unit]->lcp_wantoptions;    f->flags = 0;    if (wo->passive)	f->flags |= (OPT_PASSIVE | OPT_RESTART) ;    if (wo->silent)	f->flags |= (OPT_SILENT | OPT_RESTART);    fsm_open(f);}/* * lcp_close - Take LCP down. */voidlcp_close(unit)    int unit;{    fsm *f = &ppp_if[unit]->lcp_fsm;    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 a         * lcp_close(0) in passive/silent mode when a connection hasn't         * been established.         */        f->state = CLOSED;        lcp_finished(f);    } else        fsm_close(&ppp_if[unit]->lcp_fsm);}/* * lcp_lowerup - The lower layer is up. */voidlcp_lowerup(unit)    int unit;{    sifdown(unit);    ppp_set_xaccm(unit, ppp_if[unit]->xmit_accm);    ppp_send_config(unit, MTU, 0xffffffff, 0, 0);    ppp_recv_config(unit, MTU, 0x00000000, 0, 0);    ppp_if[unit]->peer_mru = MTU;    ppp_if[unit]->lcp_allowoptions.asyncmap = ppp_if[unit]->xmit_accm[0];    fsm_lowerup(&ppp_if[unit]->lcp_fsm);}/* * lcp_lowerdown - The lower layer is down. */voidlcp_lowerdown(unit)    int unit;{    fsm_lowerdown(&ppp_if[unit]->lcp_fsm);}/* * lcp_input - Input LCP packet. */voidlcp_input(unit, p, len)    int unit;    u_char *p;    int len;{    fsm_input(&ppp_if[unit]->lcp_fsm, p, len);}/* * lcp_extcode - Handle a LCP-specific code. */static intlcp_extcode(f, code, id, inp, len)    fsm *f;    int code, 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", id));        magp = inp;        PUTLONG(ppp_if[f->unit]->lcp_gotoptions.magicnumber, magp);        if (len < CILEN_LONG)            len = CILEN_LONG;	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 voidlcp_rprotrej(f, inp, len)    fsm *f;    u_char *inp;    int len;{    u_short prot;    LCPDEBUG((LOG_INFO, "lcp_rprotrej."));    if (len < sizeof (u_short)) {	LCPDEBUG((LOG_INFO,                  "lcp_rprotrej: Rcvd short Protocol-Reject packet!"));	return;    }    GETSHORT(prot, inp);    LCPDEBUG((LOG_INFO,              "lcp_rprotrej: Rcvd Protocol-Reject packet for %x!",	      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",                  f->state));	return;    }    DEMUXPROTREJ(f->unit, prot);	/* Inform protocol */}/* * lcp_protrej - A Protocol-Reject was received. *//*ARGSUSED*/voidlcp_protrej(unit)    int unit;{    /*     * Can't reject LCP!     */    LCPDEBUG((LOG_WARNING,              "lcp_protrej: Received Protocol-Reject for LCP!"));    fsm_protreject(&ppp_if[unit]->lcp_fsm);}/* * lcp_sprotrej - Send a Protocol-Reject for some protocol. */voidlcp_sprotrej(unit, p, len)    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.     */    p += 2;    len -= 2;    fsm_sdata(&ppp_if[unit]->lcp_fsm, PROTREJ, ++ppp_if[unit]->lcp_fsm.id,	      p, len);}/* * lcp_resetci - Reset our CI. */static void  lcp_resetci(f)fsm *f;{    ppp_if[f->unit]->lcp_wantoptions.magicnumber = magic();    ppp_if[f->unit]->lcp_wantoptions.numloops = 0;    ppp_if[f->unit]->lcp_gotoptions = ppp_if[f->unit]->lcp_wantoptions;    ppp_if[f->unit]->peer_mru = MTU;}/* * lcp_cilen - Return length of our CI. */static intlcp_cilen(f)    fsm *f;{    lcp_options *go = &ppp_if[f->unit]->lcp_gotoptions;#define LENCIVOID(neg)	(neg ? CILEN_VOID : 0)#define LENCICHAP(neg)	(neg ? CILEN_CHAP : 0)#define LENCISHORT(neg)	(neg ? CILEN_SHORT : 0)#define LENCILONG(neg)	(neg ? CILEN_LONG : 0)#define LENCILQR(neg)	(neg ? CILEN_LQR: 0)    /*     * NB: we only ask for one of CHAP and UPAP, even if we will     * accept either.     */    return (LENCISHORT(go->neg_mru) +	    LENCILONG(go->neg_asyncmap) +	    LENCICHAP(go->neg_chap) +	    LENCISHORT(!go->neg_chap && go->neg_upap) +	    LENCILQR(go->neg_lqr) +	    LENCILONG(go->neg_magicnumber) +	    LENCIVOID(go->neg_pcompression) +	    LENCIVOID(go->neg_accompression));}/* * lcp_addci - Add our desired CIs to a packet. */static voidlcp_addci(f, ucp, lenp)    fsm *f;    u_char *ucp;    int *lenp;{    lcp_options *go = &ppp_if[f->unit]->lcp_gotoptions;    u_char *start_ucp = ucp;#define ADDCIVOID(opt, neg) \    if (neg) { \	PUTCHAR(opt, ucp); \	PUTCHAR(CILEN_VOID, ucp); \    }#define ADDCISHORT(opt, neg, val) \    if (neg) { \	PUTCHAR(opt, ucp); \	PUTCHAR(CILEN_SHORT, ucp); \	PUTSHORT(val, ucp); \    }#define ADDCICHAP(opt, neg, val, digest) \    if (neg) { \	PUTCHAR(opt, ucp); \	PUTCHAR(CILEN_CHAP, ucp); \	PUTSHORT(val, ucp); \	PUTCHAR(digest, ucp); \    }#define ADDCILONG(opt, neg, val) \    if (neg) { \	PUTCHAR(opt, ucp); \	PUTCHAR(CILEN_LONG, ucp); \	PUTLONG(val, ucp); \    }#define ADDCILQR(opt, neg, val) \    if (neg) { \	PUTCHAR(opt, ucp); \	PUTCHAR(CILEN_LQR, ucp); \	PUTSHORT(LQR, ucp); \	PUTLONG(val, ucp); \    }    ADDCISHORT(CI_MRU, go->neg_mru, go->mru);    ADDCILONG(CI_ASYNCMAP, go->neg_asyncmap, go->asyncmap);    ADDCICHAP(CI_AUTHTYPE, go->neg_chap, CHAP, go->chap_mdtype);    ADDCISHORT(CI_AUTHTYPE, !go->neg_chap && go->neg_upap, UPAP);    ADDCILQR(CI_QUALITY, go->neg_lqr, go->lqr_period);    ADDCILONG(CI_MAGICNUMBER, go->neg_magicnumber, go->magicnumber);    ADDCIVOID(CI_PCOMPRESSION, go->neg_pcompression);    ADDCIVOID(CI_ACCOMPRESSION, go->neg_accompression);    if (ucp - start_ucp != *lenp) {	/* this should never happen, because peer_mtu should be 1500 */	syslog(LOG_ERR, "Bug in lcp_addci: wrong length");    }}/* * lcp_ackci - Ack our CIs. * This should not modify any state if the Ack is bad. * * Returns: *	0 - Ack was bad. *	1 - Ack was good. */static intlcp_ackci(f, p, len)    fsm *f;    u_char *p;    int len;{    lcp_options *go = &ppp_if[f->unit]->lcp_gotoptions;    u_char cilen, citype, cichar;    u_short cishort;    u_long cilong;    /*     * CIs must be in exactly the same order that we sent.     * Check packet length and CI length at each step.     * If we find any deviations, then this packet is bad.     */#define ACKCIVOID(opt, neg) \    if (neg) { \	if ((len -= CILEN_VOID) < 0) \	    goto bad; \	GETCHAR(citype, p); \	GETCHAR(cilen, p); \	if (cilen != CILEN_VOID || \	    citype != opt) \	    goto bad; \    }#define ACKCISHORT(opt, neg, val) \    if (neg) { \	if ((len -= CILEN_SHORT) < 0) \	    goto bad; \	GETCHAR(citype, p); \	GETCHAR(cilen, p); \	if (cilen != CILEN_SHORT || \	    citype != (u_char)opt) \	    goto bad; \	GETSHORT(cishort, p); \	if (cishort != (u_short)val) \	    goto bad; \    }#define ACKCICHAP(opt, neg, val, digest) \    if (neg) { \	if ((len -= CILEN_CHAP) < 0) \	    goto bad; \	GETCHAR(citype, p); \	GETCHAR(cilen, p); \	if (cilen != CILEN_CHAP || \	    citype != (u_char)opt) \	    goto bad; \	GETSHORT(cishort, p); \	if (cishort != (u_short)val) \	    goto bad; \	GETCHAR(cichar, p); \	if (cichar != (u_char)digest) \	  goto bad; \    }#define ACKCILONG(opt, neg, val) \    if (neg) { \	if ((len -= CILEN_LONG) < 0) \	    goto bad; \	GETCHAR(citype, p); \	GETCHAR(cilen, p); \	if (cilen != CILEN_LONG || \	    citype != (u_char)opt) \	    goto bad; \	GETLONG(cilong, p); \	if (cilong != (u_long)val) \	    goto bad; \    }#define ACKCILQR(opt, neg, val) \    if (neg) { \	if ((len -= CILEN_LQR) < 0) \	    goto bad; \	GETCHAR(citype, p); \	GETCHAR(cilen, p); \	if (cilen != CILEN_LQR || \	    citype != (u_char)opt) \	    goto bad; \	GETSHORT(cishort, p); \	if (cishort != LQR) \	    goto bad; \	GETLONG(cilong, p); \	if (cilong != (u_long)val) \	  goto bad; \    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品亚洲人成人网在线播放| 欧美日韩一区精品| 国产一区二区久久| 国产又黄又大久久| 黑人巨大精品欧美黑白配亚洲| 久久精品国产亚洲高清剧情介绍 | 国产尤物一区二区| 国产精品一级片| 99久久久免费精品国产一区二区 | 久久久精品天堂| 中文字幕一区二区三区四区 | 91成人免费在线视频| 欧美视频一区二区三区四区| 3751色影院一区二区三区| 日韩视频国产视频| 中文字幕乱码日本亚洲一区二区| 自拍偷拍亚洲欧美日韩| 亚洲午夜视频在线观看| 国产剧情一区二区| 91麻豆精品国产| 欧美韩国一区二区| 亚洲欧洲综合另类| 国内偷窥港台综合视频在线播放| 成人视屏免费看| 日韩欧美高清一区| 亚洲精品国产无套在线观| 国产精品综合网| 91精品国产欧美一区二区18 | 成人av影院在线| 久久五月婷婷丁香社区| 亚洲成人在线网站| 日本电影亚洲天堂一区| 亚洲男女一区二区三区| 粉嫩欧美一区二区三区高清影视| 日韩一区二区在线观看视频播放| 国产在线视频不卡二| 欧美另类久久久品| 精品婷婷伊人一区三区三| 欧美午夜精品久久久久久孕妇| 欧美羞羞免费网站| 精品国产欧美一区二区| 波多野结衣中文字幕一区二区三区| 91免费视频网| 亚洲图片欧美激情| jlzzjlzz亚洲女人18| 国产精品乱码一区二区三区软件| 麻豆91免费看| 日韩欧美高清一区| 国产精品综合av一区二区国产馆| 91精品国产免费| 日韩激情一区二区| 精品国产乱码久久久久久闺蜜 | 亚洲韩国精品一区| 在线视频国内自拍亚洲视频| 亚洲国产精品一区二区www在线| 欧美色涩在线第一页| 久久成人18免费观看| 亚洲精品一区在线观看| 国产一区二区三区日韩| 亚洲伦理在线免费看| 欧美精品九九99久久| 狠狠狠色丁香婷婷综合激情| 中文字幕亚洲在| 日韩免费在线观看| 一本大道综合伊人精品热热 | 99riav一区二区三区| 天涯成人国产亚洲精品一区av| 91麻豆精品久久久久蜜臀| 国产精品一二三四区| 亚洲国产精品视频| 国产视频一区在线观看| 777亚洲妇女| 在线欧美日韩国产| 国产精品888| 久久99久久久久久久久久久| 一区二区三区在线视频免费观看| 久久一留热品黄| 91麻豆精品国产91久久久资源速度 | 久久精品人人爽人人爽| 欧美高清www午色夜在线视频| 色一区在线观看| av电影天堂一区二区在线观看| 日韩成人免费电影| 五月天欧美精品| 午夜精品久久久久久久蜜桃app| 亚洲美女在线一区| 亚洲三级在线免费| 亚洲视频一区二区免费在线观看 | 久久国产精品99精品国产| 丝袜诱惑亚洲看片| 热久久久久久久| 国产在线播放一区二区三区| 免费成人在线视频观看| 国产精品一区二区你懂的| 欧美在线制服丝袜| 99久久国产综合精品女不卡| 91精彩视频在线| 欧美一区二区视频观看视频 | 成人午夜激情影院| 色一情一伦一子一伦一区| 欧美日韩在线精品一区二区三区激情| 911精品产国品一二三产区| 日韩一区二区三区视频| 中文字幕一区免费在线观看| 亚洲一区二区三区中文字幕在线| 午夜精品久久久久久久蜜桃app| 国产在线看一区| 91国产免费看| 欧美国产国产综合| 人禽交欧美网站| 欧美一级日韩一级| 国产欧美日韩另类视频免费观看| 欧美成人a视频| 精品视频在线免费看| 欧美日韩在线三区| 精品成人佐山爱一区二区| 久久久国产综合精品女国产盗摄| 欧美成人精品3d动漫h| 欧美久久久久免费| 欧美韩国日本综合| 美女视频一区在线观看| 欧美色男人天堂| 日韩欧美黄色影院| 一区二区视频免费在线观看| 韩国av一区二区三区四区| 欧美肥大bbwbbw高潮| 亚洲激情第一区| www.66久久| 国产精品乱人伦| 成人av午夜电影| 最新不卡av在线| 色综合视频在线观看| 中文字幕一区二区三区av| 国产成人精品免费一区二区| 欧美精品一区二区三区高清aⅴ| 日本视频免费一区| 精品久久久久久久久久久久包黑料 | 欧美吻胸吃奶大尺度电影 | 久久精品久久99精品久久| 欧美高清视频一二三区 | 91玉足脚交白嫩脚丫在线播放| 538在线一区二区精品国产| 日本中文字幕一区二区有限公司| 91国偷自产一区二区三区观看| 亚洲午夜精品在线| 91精品在线一区二区| 九一九一国产精品| 久久精子c满五个校花| 95精品视频在线| 九色综合狠狠综合久久| 国产精品国产三级国产普通话99| 日本韩国精品一区二区在线观看| 五月婷婷久久综合| 久久久国产精品午夜一区ai换脸| 一本色道亚洲精品aⅴ| 日本不卡一区二区三区| 欧美激情综合在线| 欧美美女喷水视频| 成人av在线资源| 捆绑变态av一区二区三区| 亚洲欧美日本在线| 久久亚洲综合色一区二区三区| 欧美亚洲愉拍一区二区| 成人的网站免费观看| 紧缚捆绑精品一区二区| 亚洲国产va精品久久久不卡综合| 精品日韩在线一区| 欧美精品亚洲一区二区在线播放| av电影一区二区| 成人国产在线观看| 国产精品123| 高清久久久久久| 国产精品自拍一区| 国产成人亚洲综合a∨婷婷| 日韩福利视频导航| 婷婷开心激情综合| 一区二区在线看| 五月婷婷综合在线| 日日夜夜免费精品视频| 天堂一区二区在线免费观看| 亚洲午夜免费福利视频| 国产精品污www在线观看| 最新中文字幕一区二区三区| 亚洲人成小说网站色在线| 国产亚洲综合性久久久影院| 欧美精品一区二区三区很污很色的| 欧美一卡二卡在线| 26uuu精品一区二区| 中文字幕在线不卡视频| 亚洲综合精品久久| 手机精品视频在线观看| 国产一区二区三区四| a级精品国产片在线观看| 91官网在线观看| 欧美一卡二卡在线| 中文字幕在线不卡国产视频| 亚洲福利视频一区二区| 久久99精品国产.久久久久 | 99精品视频一区二区| 欧美色图第一页|