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

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

?? vnc.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 4 頁
字號:
    }    if (bits_per_pixel == 32 &&        host_big_endian_flag == big_endian_flag &&        red_max == 0xff && green_max == 0xff && blue_max == 0xff &&        red_shift == 16 && green_shift == 8 && blue_shift == 0) {        vs->depth = 4;        vs->write_pixels = vnc_write_pixels_copy;        vs->send_hextile_tile = send_hextile_tile_32;    } else    if (bits_per_pixel == 16 &&        host_big_endian_flag == big_endian_flag &&        red_max == 31 && green_max == 63 && blue_max == 31 &&        red_shift == 11 && green_shift == 5 && blue_shift == 0) {        vs->depth = 2;        vs->write_pixels = vnc_write_pixels_copy;        vs->send_hextile_tile = send_hextile_tile_16;    } else    if (bits_per_pixel == 8 &&        red_max == 7 && green_max == 7 && blue_max == 3 &&        red_shift == 5 && green_shift == 2 && blue_shift == 0) {        vs->depth = 1;        vs->write_pixels = vnc_write_pixels_copy;        vs->send_hextile_tile = send_hextile_tile_8;    } else    {        /* generic and slower case */        if (bits_per_pixel != 8 &&            bits_per_pixel != 16 &&            bits_per_pixel != 32)            goto fail;        vs->depth = 4;        vs->red_shift = red_shift;        vs->red_max = red_max;        vs->red_shift1 = 24 - compute_nbits(red_max);        vs->green_shift = green_shift;        vs->green_max = green_max;        vs->green_shift1 = 16 - compute_nbits(green_max);        vs->blue_shift = blue_shift;        vs->blue_max = blue_max;        vs->blue_shift1 = 8 - compute_nbits(blue_max);        vs->pix_bpp = bits_per_pixel / 8;        vs->pix_big_endian = big_endian_flag;        vs->write_pixels = vnc_write_pixels_generic;        vs->send_hextile_tile = send_hextile_tile_generic;    }    vnc_dpy_resize(vs->ds, vs->ds->width, vs->ds->height);    memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row));    memset(vs->old_data, 42, vs->ds->linesize * vs->ds->height);    vga_hw_invalidate();    vga_hw_update();}static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len){    int i;    uint16_t limit;    switch (data[0]) {    case 0:	if (len == 1)	    return 20;	set_pixel_format(vs, read_u8(data, 4), read_u8(data, 5),			 read_u8(data, 6), read_u8(data, 7),			 read_u16(data, 8), read_u16(data, 10),			 read_u16(data, 12), read_u8(data, 14),			 read_u8(data, 15), read_u8(data, 16));	break;    case 2:	if (len == 1)	    return 4;	if (len == 4)	    return 4 + (read_u16(data, 2) * 4);	limit = read_u16(data, 2);	for (i = 0; i < limit; i++) {	    int32_t val = read_s32(data, 4 + (i * 4));	    memcpy(data + 4 + (i * 4), &val, sizeof(val));	}	set_encodings(vs, (int32_t *)(data + 4), limit);	break;    case 3:	if (len == 1)	    return 10;	framebuffer_update_request(vs,				   read_u8(data, 1), read_u16(data, 2), read_u16(data, 4),				   read_u16(data, 6), read_u16(data, 8));	break;    case 4:	if (len == 1)	    return 8;	key_event(vs, read_u8(data, 1), read_u32(data, 4));	break;    case 5:	if (len == 1)	    return 6;	pointer_event(vs, read_u8(data, 1), read_u16(data, 2), read_u16(data, 4));	break;    case 6:	if (len == 1)	    return 8;	if (len == 8) {            uint32_t dlen = read_u32(data, 4);            if (dlen > 0)                return 8 + dlen;        }	client_cut_text(vs, read_u32(data, 4), data + 8);	break;    default:	printf("Msg: %d\n", data[0]);	vnc_client_error(vs);	break;    }    vnc_read_when(vs, protocol_client_msg, 1);    return 0;}static int protocol_client_init(VncState *vs, uint8_t *data, size_t len){    char pad[3] = { 0, 0, 0 };    char buf[1024];    int size;    vs->width = vs->ds->width;    vs->height = vs->ds->height;    vnc_write_u16(vs, vs->ds->width);    vnc_write_u16(vs, vs->ds->height);    vnc_write_u8(vs, vs->depth * 8); /* bits-per-pixel */    vnc_write_u8(vs, vs->depth * 8); /* depth */#ifdef WORDS_BIGENDIAN    vnc_write_u8(vs, 1);             /* big-endian-flag */#else    vnc_write_u8(vs, 0);             /* big-endian-flag */#endif    vnc_write_u8(vs, 1);             /* true-color-flag */    if (vs->depth == 4) {	vnc_write_u16(vs, 0xFF);     /* red-max */	vnc_write_u16(vs, 0xFF);     /* green-max */	vnc_write_u16(vs, 0xFF);     /* blue-max */	vnc_write_u8(vs, 16);        /* red-shift */	vnc_write_u8(vs, 8);         /* green-shift */	vnc_write_u8(vs, 0);         /* blue-shift */        vs->send_hextile_tile = send_hextile_tile_32;    } else if (vs->depth == 2) {	vnc_write_u16(vs, 31);       /* red-max */	vnc_write_u16(vs, 63);       /* green-max */	vnc_write_u16(vs, 31);       /* blue-max */	vnc_write_u8(vs, 11);        /* red-shift */	vnc_write_u8(vs, 5);         /* green-shift */	vnc_write_u8(vs, 0);         /* blue-shift */        vs->send_hextile_tile = send_hextile_tile_16;    } else if (vs->depth == 1) {        /* XXX: change QEMU pixel 8 bit pixel format to match the VNC one ? */	vnc_write_u16(vs, 7);        /* red-max */	vnc_write_u16(vs, 7);        /* green-max */	vnc_write_u16(vs, 3);        /* blue-max */	vnc_write_u8(vs, 5);         /* red-shift */	vnc_write_u8(vs, 2);         /* green-shift */	vnc_write_u8(vs, 0);         /* blue-shift */        vs->send_hextile_tile = send_hextile_tile_8;    }    vs->write_pixels = vnc_write_pixels_copy;    vnc_write(vs, pad, 3);           /* padding */    if (qemu_name)        size = snprintf(buf, sizeof(buf), "QEMU (%s)", qemu_name);    else        size = snprintf(buf, sizeof(buf), "QEMU");    vnc_write_u32(vs, size);    vnc_write(vs, buf, size);    vnc_flush(vs);    vnc_read_when(vs, protocol_client_msg, 1);    return 0;}static void make_challenge(VncState *vs){    int i;    srand(time(NULL)+getpid()+getpid()*987654+rand());    for (i = 0 ; i < sizeof(vs->challenge) ; i++)        vs->challenge[i] = (int) (256.0*rand()/(RAND_MAX+1.0));}static int protocol_client_auth_vnc(VncState *vs, uint8_t *data, size_t len){    unsigned char response[VNC_AUTH_CHALLENGE_SIZE];    int i, j, pwlen;    unsigned char key[8];    if (!vs->password || !vs->password[0]) {	VNC_DEBUG("No password configured on server");	vnc_write_u32(vs, 1); /* Reject auth */	if (vs->minor >= 8) {	    static const char err[] = "Authentication failed";	    vnc_write_u32(vs, sizeof(err));	    vnc_write(vs, err, sizeof(err));	}	vnc_flush(vs);	vnc_client_error(vs);	return 0;    }    memcpy(response, vs->challenge, VNC_AUTH_CHALLENGE_SIZE);    /* Calculate the expected challenge response */    pwlen = strlen(vs->password);    for (i=0; i<sizeof(key); i++)        key[i] = i<pwlen ? vs->password[i] : 0;    deskey(key, EN0);    for (j = 0; j < VNC_AUTH_CHALLENGE_SIZE; j += 8)        des(response+j, response+j);    /* Compare expected vs actual challenge response */    if (memcmp(response, data, VNC_AUTH_CHALLENGE_SIZE) != 0) {	VNC_DEBUG("Client challenge reponse did not match\n");	vnc_write_u32(vs, 1); /* Reject auth */	if (vs->minor >= 8) {	    static const char err[] = "Authentication failed";	    vnc_write_u32(vs, sizeof(err));	    vnc_write(vs, err, sizeof(err));	}	vnc_flush(vs);	vnc_client_error(vs);    } else {	VNC_DEBUG("Accepting VNC challenge response\n");	vnc_write_u32(vs, 0); /* Accept auth */	vnc_flush(vs);	vnc_read_when(vs, protocol_client_init, 1);    }    return 0;}static int start_auth_vnc(VncState *vs){    make_challenge(vs);    /* Send client a 'random' challenge */    vnc_write(vs, vs->challenge, sizeof(vs->challenge));    vnc_flush(vs);    vnc_read_when(vs, protocol_client_auth_vnc, sizeof(vs->challenge));    return 0;}#if CONFIG_VNC_TLS#define DH_BITS 1024static gnutls_dh_params_t dh_params;static int vnc_tls_initialize(void){    static int tlsinitialized = 0;    if (tlsinitialized)	return 1;    if (gnutls_global_init () < 0)	return 0;    /* XXX ought to re-generate diffie-hellmen params periodically */    if (gnutls_dh_params_init (&dh_params) < 0)	return 0;    if (gnutls_dh_params_generate2 (dh_params, DH_BITS) < 0)	return 0;#if _VNC_DEBUG == 2    gnutls_global_set_log_level(10);    gnutls_global_set_log_function(vnc_debug_gnutls_log);#endif    tlsinitialized = 1;    return 1;}static gnutls_anon_server_credentials vnc_tls_initialize_anon_cred(void){    gnutls_anon_server_credentials anon_cred;    int ret;    if ((ret = gnutls_anon_allocate_server_credentials(&anon_cred)) < 0) {	VNC_DEBUG("Cannot allocate credentials %s\n", gnutls_strerror(ret));	return NULL;    }    gnutls_anon_set_server_dh_params(anon_cred, dh_params);    return anon_cred;}static gnutls_certificate_credentials_t vnc_tls_initialize_x509_cred(VncState *vs){    gnutls_certificate_credentials_t x509_cred;    int ret;    if (!vs->x509cacert) {	VNC_DEBUG("No CA x509 certificate specified\n");	return NULL;    }    if (!vs->x509cert) {	VNC_DEBUG("No server x509 certificate specified\n");	return NULL;    }    if (!vs->x509key) {	VNC_DEBUG("No server private key specified\n");	return NULL;    }    if ((ret = gnutls_certificate_allocate_credentials(&x509_cred)) < 0) {	VNC_DEBUG("Cannot allocate credentials %s\n", gnutls_strerror(ret));	return NULL;    }    if ((ret = gnutls_certificate_set_x509_trust_file(x509_cred,						      vs->x509cacert,						      GNUTLS_X509_FMT_PEM)) < 0) {	VNC_DEBUG("Cannot load CA certificate %s\n", gnutls_strerror(ret));	gnutls_certificate_free_credentials(x509_cred);	return NULL;    }    if ((ret = gnutls_certificate_set_x509_key_file (x509_cred,						     vs->x509cert,						     vs->x509key,						     GNUTLS_X509_FMT_PEM)) < 0) {	VNC_DEBUG("Cannot load certificate & key %s\n", gnutls_strerror(ret));	gnutls_certificate_free_credentials(x509_cred);	return NULL;    }    if (vs->x509cacrl) {	if ((ret = gnutls_certificate_set_x509_crl_file(x509_cred,							vs->x509cacrl,							GNUTLS_X509_FMT_PEM)) < 0) {	    VNC_DEBUG("Cannot load CRL %s\n", gnutls_strerror(ret));	    gnutls_certificate_free_credentials(x509_cred);	    return NULL;	}    }    gnutls_certificate_set_dh_params (x509_cred, dh_params);    return x509_cred;}static int vnc_validate_certificate(struct VncState *vs){    int ret;    unsigned int status;    const gnutls_datum_t *certs;    unsigned int nCerts, i;    time_t now;    VNC_DEBUG("Validating client certificate\n");    if ((ret = gnutls_certificate_verify_peers2 (vs->tls_session, &status)) < 0) {	VNC_DEBUG("Verify failed %s\n", gnutls_strerror(ret));	return -1;    }    if ((now = time(NULL)) == ((time_t)-1)) {	return -1;    }    if (status != 0) {	if (status & GNUTLS_CERT_INVALID)	    VNC_DEBUG("The certificate is not trusted.\n");	if (status & GNUTLS_CERT_SIGNER_NOT_FOUND)	    VNC_DEBUG("The certificate hasn't got a known issuer.\n");	if (status & GNUTLS_CERT_REVOKED)	    VNC_DEBUG("The certificate has been revoked.\n");	if (status & GNUTLS_CERT_INSECURE_ALGORITHM)	    VNC_DEBUG("The certificate uses an insecure algorithm\n");	return -1;    } else {	VNC_DEBUG("Certificate is valid!\n");    }    /* Only support x509 for now */    if (gnutls_certificate_type_get(vs->tls_session) != GNUTLS_CRT_X509)	return -1;    if (!(certs = gnutls_certificate_get_peers(vs->tls_session, &nCerts)))	return -1;    for (i = 0 ; i < nCerts ; i++) {	gnutls_x509_crt_t cert;	VNC_DEBUG ("Checking certificate chain %d\n", i);	if (gnutls_x509_crt_init (&cert) < 0)	    return -1;	if (gnutls_x509_crt_import(cert, &certs[i], GNUTLS_X509_FMT_DER) < 0) {	    gnutls_x509_crt_deinit (cert);	    return -1;	}	if (gnutls_x509_crt_get_expiration_time (cert) < now) {	    VNC_DEBUG("The certificate has expired\n");	    gnutls_x509_crt_deinit (cert);	    return -1;	}	if (gnutls_x509_crt_get_activation_time (cert) > now) {	    VNC_DEBUG("The certificate is not yet activated\n");	    gnutls_x509_crt_deinit (cert);	    return -1;	}	if (gnutls_x509_crt_get_activation_time (cert) > now) {	    VNC_DEBUG("The certificate is not yet activated\n");	    gnutls_x509_crt_deinit (cert);	    return -1;	}	gnutls_x509_crt_deinit (cert);    }    return 0;}static int start_auth_vencrypt_subauth(VncState *vs){    switch (vs->subauth) {    case VNC_AUTH_VENCRYPT_TLSNONE:    case VNC_AUTH_VENCRYPT_X509NONE:       VNC_DEBUG("Accept TLS auth none\n");       vnc_write_u32(vs, 0); /* Accept auth completion */       vnc_read_when(vs, protocol_client_init, 1);       break;    case VNC_AUTH_VENCRYPT_TLSVNC:    case VNC_AUTH_VENCRYPT_X509VNC:       VNC_DEBUG("Start TLS auth VNC\n");       return start_auth_vnc(vs);    default: /* Should not be possible, but just in case */       VNC_DEBUG("Reject auth %d\n", vs->auth);       vnc_write_u8(vs, 1);       if (vs->minor >= 8) {           static const char err[] = "Unsupported authentication type";           vnc_write_u32(vs, sizeof(err));           vnc_write(vs, err, sizeof(err));       }       vnc_client_error(vs);    }    return 0;}static void vnc_handshake_io(void *opaque);static int vnc_continue_handshake(struct VncState *vs) {    int ret;    if ((ret = gnutls_handshake(vs->tls_session)) < 0) {       if (!gnutls_error_is_fatal(ret)) {           VNC_DEBUG("Handshake interrupted (blocking)\n");           if (!gnutls_record_get_direction(vs->tls_session))               qemu_set_fd_handler(vs->csock, vnc_handshake_io, NULL, vs);           else               qemu_set_fd_handler(vs->csock, NULL, vnc_handshake_io, vs);           return 0;       }       VNC_DEBUG("Handshake failed %s\n", gnutls_strerror(ret));       vnc_client_error(vs);       return -1;    }    if (vs->x509verify) {	if (vnc_validate_certificate(vs) < 0) {	    VNC_DEBUG("Client verification failed\n");	    vnc_client_error(vs);	    return -1;	} else {	    VNC_DEBUG("Client verification passed\n");	}    }    VNC_DEBUG("Handshake done, switching to TLS data mode\n");    vs->wiremode = VNC_WIREMODE_TLS;    qemu_set_fd_handler2(vs->csock, NULL, vnc_client_read, vnc_client_write, vs);    return start_auth_vencrypt_subauth(vs);}static void vnc_handshake_io(void *opaque) {    struct VncState *vs = (struct VncState *)opaque;    VNC_DEBUG("Handshake IO continue\n");    vnc_continue_handshake(vs);}#define NEED_X509_AUTH(vs)			      \    ((vs)->subauth == VNC_AUTH_VENCRYPT_X509NONE ||   \     (vs)->subauth == VNC_AUTH_VENCRYPT_X509VNC ||    \     (vs)->subauth == VNC_AUTH_VENCRYPT_X509PLAIN)static int vnc_start_tls(struct VncState *vs) {    static const int cert_type_priority[] = { GNUTLS_CRT_X509, 0 };    static const int protocol_priority[]= { GNUTLS_TLS1_1, GNUTLS_TLS1_0, GNUTLS_SSL3, 0 };    static const int kx_anon[] = {GNUTLS_KX_ANON_DH, 0};    static const int kx_x509[] = {GNUTLS_KX_DHE_DSS, GNUTLS_KX_RSA, GNUTLS_KX_DHE_RSA, GNUTLS_KX_SRP, 0};    VNC_DEBUG("Do TLS setup\n");    if (vnc_tls_initialize() < 0) {	VNC_DEBUG("Failed to init TLS\n");	vnc_client_error(vs);	return -1;    }    if (vs->tls_session == NULL) {	if (gnutls_init(&vs->tls_session, GNUTLS_SERVER) < 0) {	    vnc_client_error(vs);	    return -1;	}	if (gnutls_set_default_priority(vs->tls_session) < 0) {	    gnutls_deinit(vs->tls_session);	    vs->tls_session = NULL;	    vnc_client_error(vs);	    return -1;	}	if (gnutls_kx_set_priority(vs->tls_session, NEED_X509_AUTH(vs) ? kx_x509 : kx_anon) < 0) {	    gnutls_deinit(vs->tls_session);	    vs->tls_session = NULL;	    vnc_client_error(vs);	    return -1;	}	if (gnutls_certificate_type_set_priority(vs->tls_session, cert_type_priority) < 0) {	    gnutls_deinit(vs->tls_session);	    vs->tls_session = NULL;	    vnc_client_error(vs);	    return -1;	}	if (gnutls_protocol_set_priority(vs->tls_session, protocol_priority) < 0) {	    gnutls_deinit(vs->tls_session);	    vs->tls_session = NULL;	    vnc_client_error(vs);	    return -1;	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一二三区| 国产伦精品一区二区三区在线观看 | 欧美成人性福生活免费看| 亚洲已满18点击进入久久| 91视频观看免费| 亚洲精品欧美激情| 色综合天天综合色综合av | 一区二区三区四区视频精品免费| 国产精品中文有码| 日韩一区日韩二区| 91精品福利在线| 国产精品二区一区二区aⅴ污介绍| 国产精品1区2区3区在线观看| 在线不卡a资源高清| 老司机精品视频在线| 久久美女艺术照精彩视频福利播放| 夫妻av一区二区| 日韩精品一区第一页| 久久久久久一级片| 日韩欧美你懂的| 91在线看国产| 国产尤物一区二区| 亚洲视频在线观看一区| 日韩欧美123| 欧美视频一区二区三区四区 | 久久精品国产精品亚洲红杏| 欧美经典一区二区| 欧美另类videos死尸| 99精品1区2区| 一片黄亚洲嫩模| 1000部国产精品成人观看| 欧美一二区视频| 欧美丝袜丝交足nylons| jizzjizzjizz欧美| 国产乱码精品一区二区三区av| 夜夜夜精品看看| 亚洲激情男女视频| 亚洲毛片av在线| 一区精品在线播放| 国产精品免费观看视频| 国产精品三级电影| 欧美国产亚洲另类动漫| 26uuu精品一区二区| 337p亚洲精品色噜噜噜| 欧美亚洲综合色| 欧美日韩国产美| 欧美色综合久久| 欧美午夜电影在线播放| 色呦呦日韩精品| 91麻豆视频网站| 91国产免费看| 欧美日本一区二区三区四区| 欧美久久久久久久久久| 欧美一区二区三区播放老司机| 538在线一区二区精品国产| 日韩午夜在线播放| 在线精品视频一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲欧美偷拍三级| 国产精品久久影院| 夜夜嗨av一区二区三区网页| 亚洲国产日日夜夜| 国产精品1区二区.| 欧美日韩色综合| 日韩一级片网址| 2023国产精华国产精品| 一区二区三区在线视频播放| 天堂va蜜桃一区二区三区| 精品一区精品二区高清| 日本高清不卡在线观看| 精品福利一区二区三区| 国产精品美女久久久久久2018| 国产三区在线成人av| 亚洲视频小说图片| 激情综合五月婷婷| 色88888久久久久久影院野外| 日韩一区二区三区视频| 亚洲精品国产视频| 国产麻豆一精品一av一免费| 欧美性做爰猛烈叫床潮| 国产精品免费久久| 国产精品一区二区三区99| 日韩精品一区二区三区老鸭窝| 国产精品国产精品国产专区不片| 国产精品主播直播| 欧美视频自拍偷拍| 日本一区二区高清| 蜜乳av一区二区三区| 欧美探花视频资源| 亚洲男人天堂一区| aaa亚洲精品| 亚洲在线观看免费| 色婷婷久久一区二区三区麻豆| 国产精品午夜在线观看| 99国产精品99久久久久久| 中文字幕综合网| 欧美亚洲丝袜传媒另类| 五月天一区二区三区| 91精品在线一区二区| 亚洲一区精品在线| 在线播放欧美女士性生活| 日韩av在线免费观看不卡| 欧美一区二区在线免费观看| 国产精华液一区二区三区| 亚洲一区二区中文在线| 在线不卡中文字幕| aa级大片欧美| 久久69国产一区二区蜜臀| 国产色一区二区| 亚洲国产精品欧美一二99| 日本二三区不卡| 国产精品亲子伦对白| 国产一区二区三区在线看麻豆| 一区二区免费视频| 国产精品第一页第二页第三页| 欧美欧美欧美欧美首页| 国产成+人+日韩+欧美+亚洲 | 91精品1区2区| 狠狠色狠狠色综合| 亚洲国产日韩av| 国产精品天干天干在观线| 91精品一区二区三区在线观看| 91丝袜美腿高跟国产极品老师| 亚洲第一福利一区| 亚洲色欲色欲www| 久久久久免费观看| 欧美v日韩v国产v| 在线电影国产精品| 在线免费不卡电影| 国产麻豆9l精品三级站| 亚洲mv大片欧洲mv大片精品| 国产精品色哟哟| 国产清纯白嫩初高生在线观看91 | 国产成人福利片| 成人不卡免费av| 日本精品一区二区三区四区的功能| 性做久久久久久久免费看| 欧美激情一区二区三区不卡| 日韩一区二区在线观看| 欧美午夜在线一二页| 91麻豆自制传媒国产之光| 不卡电影免费在线播放一区| 成人永久aaa| 91视频在线看| 日本道色综合久久| 欧美日韩精品系列| 欧美精三区欧美精三区| 欧美一区二区三区在线看| 制服视频三区第一页精品| 欧美探花视频资源| 91精品国产全国免费观看| 3atv在线一区二区三区| 日韩三级精品电影久久久| 欧美大度的电影原声| www日韩大片| 国产精品久久精品日日| 夜夜嗨av一区二区三区中文字幕| 亚洲精品免费在线| 三级影片在线观看欧美日韩一区二区 | 国产黄色精品视频| 91一区二区在线观看| 欧美精选一区二区| 国产日产欧美一区二区视频| 日韩理论在线观看| 亚洲大片精品永久免费| 狠狠色狠狠色综合| 日本丶国产丶欧美色综合| 欧美成人伊人久久综合网| 久久精品一级爱片| 五月婷婷欧美视频| 不卡影院免费观看| 日韩视频永久免费| 亚洲蜜臀av乱码久久精品| 捆绑变态av一区二区三区| 99视频有精品| 26uuu另类欧美| 亚洲国产精品精华液网站| 97久久精品人人澡人人爽| 日韩欧美国产综合一区| 亚洲精品综合在线| 粉嫩av一区二区三区| 91精品国产福利| 亚洲国产视频网站| 色狠狠桃花综合| 国产精品乱码一区二三区小蝌蚪| 麻豆精品精品国产自在97香蕉| 日本高清视频一区二区| 国产精品传媒视频| 国产91精品精华液一区二区三区| 欧美成人猛片aaaaaaa| 日本一道高清亚洲日美韩| 在线不卡中文字幕播放| 亚州成人在线电影| 欧美理论电影在线| 午夜精品123| 欧美一区二区在线免费播放| 亚洲成av人在线观看| 欧美一级夜夜爽| 精品一区二区三区不卡| 日韩免费观看高清完整版|