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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? smblib-util.c

?? 代理服務(wù)器 squid-2.6.STABLE16
?? C
字號(hào):
/* UNIX SMBlib NetBIOS implementation *  * Version 1.0 * SMBlib Utility Routines *  * Copyright (C) Richard Sharpe 1996 *  *//* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. *  * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. *  * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include "smblib-priv.h"#include "smblib.h"#include "rfcnb.h"#include "rfcnb-priv.h"#include "rfcnb-util.h"#include <stdlib.h>#include <string.h>#include <unistd.h>const char *SMB_Prots[] ={"PC NETWORK PROGRAM 1.0",    "MICROSOFT NETWORKS 1.03",    "MICROSOFT NETWORKS 3.0",    "DOS LANMAN1.0",    "LANMAN1.0",    "DOS LM1.2X002",    "LM1.2X002",    "DOS LANMAN2.1",    "LANMAN2.1",    "Samba",    "NT LM 0.12",    "NT LANMAN 1.0",    NULL};int SMB_Types[] ={SMB_P_Core,    SMB_P_CorePlus,    SMB_P_DOSLanMan1,    SMB_P_DOSLanMan1,    SMB_P_LanMan1,    SMB_P_DOSLanMan2,    SMB_P_LanMan2,    SMB_P_LanMan2_1,    SMB_P_LanMan2_1,    SMB_P_NT1,    SMB_P_NT1,    SMB_P_NT1,    -1};/* Figure out what protocol was accepted, given the list of dialect strings *//* We offered, and the index back from the server. We allow for a user      *//* supplied list, and assume that it is a subset of our list                */static intSMB_Figure_Protocol(const char *dialects[], int prot_index){    int i;    if (dialects == SMB_Prots) {	/* The jobs is easy, just index into table */	return (SMB_Types[prot_index]);    } else {			/* Search through SMB_Prots looking for a match */	for (i = 0; SMB_Prots[i] != NULL; i++) {	    if (strcmp(dialects[prot_index], SMB_Prots[i]) == 0) {	/* A match */		return (SMB_Types[i]);	    }	}	/* If we got here, then we are in trouble, because the protocol was not */	/* One we understand ...                                                */	return (SMB_P_Unknown);    }}/* Negotiate the protocol we will use from the list passed in Prots       *//* we return the index of the accepted protocol in NegProt, -1 indicates  *//* none acceptible, and our return value is 0 if ok, <0 if problems       */intSMB_Negotiate(SMB_Handle_Type Con_Handle, const char *Prots[]){    struct RFCNB_Pkt *pkt;    int prots_len, i, pkt_len, prot, alloc_len;    char *p;    /* Figure out how long the prot list will be and allocate space for it */    prots_len = 0;    for (i = 0; Prots[i] != NULL; i++) {	prots_len = prots_len + strlen(Prots[i]) + 2;	/* Account for null etc */    }    /* The -1 accounts for the one byte smb_buf we have because some systems */    /* don't like char msg_buf[]                                             */    pkt_len = SMB_negp_len + prots_len;    /* Make sure that the pkt len is long enough for the max response ...   */    /* Which is a problem, because the encryption key len eec may be long   */    if (pkt_len < (SMB_hdr_wct_offset + (19 * 2) + 40)) {	alloc_len = SMB_hdr_wct_offset + (19 * 2) + 40;    } else {	alloc_len = pkt_len;    }    pkt = (struct RFCNB_Pkt *) RFCNB_Alloc_Pkt(alloc_len);    if (pkt == NULL) {	SMBlib_errno = SMBlibE_NoSpace;	return (SMBlibE_BAD);    }    /* Now plug in the bits we need */    memset(SMB_Hdr(pkt), 0, SMB_negp_len);    SIVAL(SMB_Hdr(pkt), SMB_hdr_idf_offset, SMB_DEF_IDF);	/* Plunk in IDF */    *(SMB_Hdr(pkt) + SMB_hdr_com_offset) = SMBnegprot;    SSVAL(SMB_Hdr(pkt), SMB_hdr_pid_offset, Con_Handle->pid);    SSVAL(SMB_Hdr(pkt), SMB_hdr_tid_offset, 0);    SSVAL(SMB_Hdr(pkt), SMB_hdr_mid_offset, Con_Handle->mid);    SSVAL(SMB_Hdr(pkt), SMB_hdr_uid_offset, Con_Handle->uid);    *(SMB_Hdr(pkt) + SMB_hdr_wct_offset) = 0;    SSVAL(SMB_Hdr(pkt), SMB_negp_bcc_offset, prots_len);    /* Now copy the prot strings in with the right stuff */    p = (char *) (SMB_Hdr(pkt) + SMB_negp_buf_offset);    for (i = 0; Prots[i] != NULL; i++) {	*p = SMBdialectID;	strcpy(p + 1, Prots[i]);	p = p + strlen(Prots[i]) + 2;	/* Adjust len of p for null plus dialectID */    }    /* Now send the packet and sit back ... */    if (RFCNB_Send(Con_Handle->Trans_Connect, pkt, pkt_len) < 0) {#ifdef DEBUG	fprintf(stderr, "Error sending negotiate protocol\n");#endif	RFCNB_Free_Pkt(pkt);	SMBlib_errno = -SMBlibE_SendFailed;	/* Failed, check lower layer errno */	return (SMBlibE_BAD);    }    /* Now get the response ... */    if (RFCNB_Recv(Con_Handle->Trans_Connect, pkt, alloc_len) < 0) {#ifdef DEBUG	fprintf(stderr, "Error receiving response to negotiate\n");#endif	RFCNB_Free_Pkt(pkt);	SMBlib_errno = -SMBlibE_RecvFailed;	/* Failed, check lower layer errno */	return (SMBlibE_BAD);    }    if (CVAL(SMB_Hdr(pkt), SMB_hdr_rcls_offset) != SMBC_SUCCESS) {	/* Process error */#ifdef DEBUG	fprintf(stderr, "SMB_Negotiate failed with errorclass = %i, Error Code = %i\n",	    CVAL(SMB_Hdr(pkt), SMB_hdr_rcls_offset),	    SVAL(SMB_Hdr(pkt), SMB_hdr_err_offset));#endif	SMBlib_SMB_Error = IVAL(SMB_Hdr(pkt), SMB_hdr_rcls_offset);	RFCNB_Free_Pkt(pkt);	SMBlib_errno = SMBlibE_Remote;	return (SMBlibE_BAD);    }    if (SVAL(SMB_Hdr(pkt), SMB_negrCP_idx_offset) == 0xFFFF) {#ifdef DEBUG	fprintf(stderr, "None of our protocols was accepted ... ");#endif	RFCNB_Free_Pkt(pkt);	SMBlib_errno = SMBlibE_NegNoProt;	return (SMBlibE_BAD);    }    /* Now, unpack the info from the response, if any and evaluate the proto */    /* selected. We must make sure it is one we like ...                     */    Con_Handle->prot_IDX = prot = SVAL(SMB_Hdr(pkt), SMB_negrCP_idx_offset);    Con_Handle->protocol = SMB_Figure_Protocol(Prots, prot);    if (Con_Handle->protocol == SMB_P_Unknown) {	/* No good ... */	RFCNB_Free_Pkt(pkt);	SMBlib_errno = SMBlibE_ProtUnknown;	return (SMBlibE_BAD);    }    switch (CVAL(SMB_Hdr(pkt), SMB_hdr_wct_offset)) {    case 0x01:			/* No more info ... */	break;    case 13:			/* Up to and including LanMan 2.1 */	Con_Handle->Security = SVAL(SMB_Hdr(pkt), SMB_negrLM_sec_offset);	Con_Handle->encrypt_passwords = ((Con_Handle->Security & SMB_sec_encrypt_mask) != 0x00);	Con_Handle->Security = Con_Handle->Security & SMB_sec_user_mask;	Con_Handle->max_xmit = SVAL(SMB_Hdr(pkt), SMB_negrLM_mbs_offset);	Con_Handle->MaxMPX = SVAL(SMB_Hdr(pkt), SMB_negrLM_mmc_offset);	Con_Handle->MaxVC = SVAL(SMB_Hdr(pkt), SMB_negrLM_mnv_offset);	Con_Handle->Raw_Support = SVAL(SMB_Hdr(pkt), SMB_negrLM_rm_offset);	Con_Handle->SessionKey = IVAL(SMB_Hdr(pkt), SMB_negrLM_sk_offset);	Con_Handle->SvrTZ = SVAL(SMB_Hdr(pkt), SMB_negrLM_stz_offset);	Con_Handle->Encrypt_Key_Len = SVAL(SMB_Hdr(pkt), SMB_negrLM_ekl_offset);	p = (SMB_Hdr(pkt) + SMB_negrLM_buf_offset);	memcpy(Con_Handle->Encrypt_Key, p, 8);	p = (SMB_Hdr(pkt) + SMB_negrLM_buf_offset + Con_Handle->Encrypt_Key_Len);	strncpy(p, Con_Handle->Svr_PDom, sizeof(Con_Handle->Svr_PDom) - 1);	break;    case 17:			/* NT LM 0.12 and LN LM 1.0 */	Con_Handle->Security = SVAL(SMB_Hdr(pkt), SMB_negrNTLM_sec_offset);	Con_Handle->encrypt_passwords = ((Con_Handle->Security & SMB_sec_encrypt_mask) != 0x00);	Con_Handle->Security = Con_Handle->Security & SMB_sec_user_mask;	Con_Handle->max_xmit = IVAL(SMB_Hdr(pkt), SMB_negrNTLM_mbs_offset);	Con_Handle->MaxMPX = SVAL(SMB_Hdr(pkt), SMB_negrNTLM_mmc_offset);	Con_Handle->MaxVC = SVAL(SMB_Hdr(pkt), SMB_negrNTLM_mnv_offset);	Con_Handle->MaxRaw = IVAL(SMB_Hdr(pkt), SMB_negrNTLM_mrs_offset);	Con_Handle->SessionKey = IVAL(SMB_Hdr(pkt), SMB_negrNTLM_sk_offset);	Con_Handle->SvrTZ = SVAL(SMB_Hdr(pkt), SMB_negrNTLM_stz_offset);	Con_Handle->Encrypt_Key_Len = CVAL(SMB_Hdr(pkt), SMB_negrNTLM_ekl_offset);	p = (SMB_Hdr(pkt) + SMB_negrNTLM_buf_offset);	memcpy(Con_Handle->Encrypt_Key, p, 8);	p = (SMB_Hdr(pkt) + SMB_negrNTLM_buf_offset + Con_Handle->Encrypt_Key_Len);	strncpy(p, Con_Handle->Svr_PDom, sizeof(Con_Handle->Svr_PDom) - 1);	break;    default:#ifdef DEBUG	fprintf(stderr, "Unknown NegProt response format ... Ignored\n");	fprintf(stderr, "  wct = %i\n", CVAL(SMB_Hdr(pkt), SMB_hdr_wct_offset));#endif	break;    }#ifdef DEBUG    fprintf(stderr, "Protocol selected is: %i:%s\n", prot, Prots[prot]);#endif    RFCNB_Free_Pkt(pkt);    return (0);}/* Get our hostname */voidSMB_Get_My_Name(char *name, int len){    if (gethostname(name, len) < 0) {	/* Error getting name */	strncpy(name, "unknown", len);	/* Should check the error */#ifdef DEBUG	fprintf(stderr, "gethostname in SMB_Get_My_Name returned error:");	perror("");#endif    }    /* only keep the portion up to the first "." */}/* Send a TCON to the remote server ...               */SMB_Tree_HandleSMB_TreeConnect(SMB_Handle_Type Con_Handle,    SMB_Tree_Handle Tree_Handle,    char *path,    char *password,    const char *device){    struct RFCNB_Pkt *pkt;    int param_len, pkt_len;    char *p;    SMB_Tree_Handle tree;    /* Figure out how much space is needed for path, password, dev ... */    if ((path == NULL) | (password == NULL) | (device == NULL)) {#ifdef DEBUG	fprintf(stderr, "Bad parameter passed to SMB_TreeConnect\n");#endif	SMBlib_errno = SMBlibE_BadParam;	return (NULL);    }    /* The + 2 is because of the \0 and the marker ...                    */    param_len = strlen(path) + 2 + strlen(password) + 2 + strlen(device) + 2;    /* The -1 accounts for the one byte smb_buf we have because some systems */    /* don't like char msg_buf[]                                             */    pkt_len = SMB_tcon_len + param_len;    pkt = (struct RFCNB_Pkt *) RFCNB_Alloc_Pkt(pkt_len);    if (pkt == NULL) {	SMBlib_errno = SMBlibE_NoSpace;	return (NULL);		/* Should handle the error */    }    /* Now allocate a tree for this to go into ... */    if (Tree_Handle == NULL) {	tree = (SMB_Tree_Handle) malloc(sizeof(struct SMB_Tree_Structure));	if (tree == NULL) {	    RFCNB_Free_Pkt(pkt);	    SMBlib_errno = SMBlibE_NoSpace;	    return (NULL);	}    } else {	tree = Tree_Handle;    }    tree->next = tree->prev = NULL;    tree->con = Con_Handle;    strncpy(tree->path, path, sizeof(tree->path));    strncpy(tree->device_type, device, sizeof(tree->device_type));    /* Now plug in the values ... */    memset(SMB_Hdr(pkt), 0, SMB_tcon_len);    SIVAL(SMB_Hdr(pkt), SMB_hdr_idf_offset, SMB_DEF_IDF);	/* Plunk in IDF */    *(SMB_Hdr(pkt) + SMB_hdr_com_offset) = SMBtcon;    SSVAL(SMB_Hdr(pkt), SMB_hdr_pid_offset, Con_Handle->pid);    SSVAL(SMB_Hdr(pkt), SMB_hdr_tid_offset, 0);    SSVAL(SMB_Hdr(pkt), SMB_hdr_mid_offset, Con_Handle->mid);    SSVAL(SMB_Hdr(pkt), SMB_hdr_uid_offset, Con_Handle->uid);    *(SMB_Hdr(pkt) + SMB_hdr_wct_offset) = 0;    SSVAL(SMB_Hdr(pkt), SMB_tcon_bcc_offset, param_len);    /* Now copy the param strings in with the right stuff */    p = (char *) (SMB_Hdr(pkt) + SMB_tcon_buf_offset);    *p = SMBasciiID;    strcpy(p + 1, path);    p = p + strlen(path) + 2;    *p = SMBasciiID;    strcpy(p + 1, password);    p = p + strlen(password) + 2;    *p = SMBasciiID;    strcpy(p + 1, device);    /* Now send the packet and sit back ... */    if (RFCNB_Send(Con_Handle->Trans_Connect, pkt, pkt_len) < 0) {#ifdef DEBUG	fprintf(stderr, "Error sending TCon request\n");#endif	if (Tree_Handle == NULL)	    free(tree);	RFCNB_Free_Pkt(pkt);	SMBlib_errno = -SMBlibE_SendFailed;	return (NULL);    }    /* Now get the response ... */    if (RFCNB_Recv(Con_Handle->Trans_Connect, pkt, pkt_len) < 0) {#ifdef DEBUG	fprintf(stderr, "Error receiving response to TCon\n");#endif	if (Tree_Handle == NULL)	    free(tree);	RFCNB_Free_Pkt(pkt);	SMBlib_errno = -SMBlibE_RecvFailed;	return (NULL);    }    /* Check out the response type ... */    if (CVAL(SMB_Hdr(pkt), SMB_hdr_rcls_offset) != SMBC_SUCCESS) {	/* Process error */#ifdef DEBUG	fprintf(stderr, "SMB_TCon failed with errorclass = %i, Error Code = %i\n",	    CVAL(SMB_Hdr(pkt), SMB_hdr_rcls_offset),	    SVAL(SMB_Hdr(pkt), SMB_hdr_err_offset));#endif	if (Tree_Handle == NULL)	    free(tree);	SMBlib_SMB_Error = IVAL(SMB_Hdr(pkt), SMB_hdr_rcls_offset);	RFCNB_Free_Pkt(pkt);	SMBlib_errno = SMBlibE_Remote;	return (NULL);    }    tree->tid = SVAL(SMB_Hdr(pkt), SMB_tconr_tid_offset);    tree->mbs = SVAL(SMB_Hdr(pkt), SMB_tconr_mbs_offset);#ifdef DEBUG    fprintf(stderr, "TConn succeeded, with TID=%i, Max Xmit=%i\n",	tree->tid, tree->mbs);#endif    /* Now link the Tree to the Server Structure ... */    if (Con_Handle->first_tree == NULL) {	Con_Handle->first_tree = tree;	Con_Handle->last_tree = tree;    } else {	Con_Handle->last_tree->next = tree;	tree->prev = Con_Handle->last_tree;	Con_Handle->last_tree = tree;    }    RFCNB_Free_Pkt(pkt);    return (tree);}/* Pick up the last LMBlib error ... */intSMB_Get_Last_Error(){    return (SMBlib_errno);}/* Pick up the last error returned in an SMB packet          *//* We will need macros to extract error class and error code */intSMB_Get_Last_SMB_Err(){    return (SMBlib_SMB_Error);}/* Pick up the error message associated with an error from SMBlib  *//* Keep this table in sync with the message codes in smblib-common.h */static const char *SMBlib_Error_Messages[] ={    "Request completed sucessfully.",    "Server returned a non-zero SMB Error Class and Code.",    "A lower layer protocol error occurred.",    "Function not yet implemented.",    "The protocol negotiated does not support the request.",    "No space available for operation.",    "One or more bad parameters passed.",    "None of the protocols we offered were accepted.",    "The attempt to send an SMB request failed. See protocol error info.",    "The attempt to get an SMB response failed. See protocol error info.",    "The logon request failed, but you were logged in as guest.",    "The attempt to call the remote server failed. See protocol error info.",    "The protocol dialect specified in a NegProt and accepted by the server is unknown.",  /* This next one simplifies error handling */    "No such error code.",    NULL};voidSMB_Get_Error_Msg(int msg, char *msgbuf, int len){    if (msg >= 0) {	strncpy(msgbuf,	    SMBlib_Error_Messages[msg > SMBlibE_NoSuchMsg ? SMBlibE_NoSuchMsg : msg],	    len - 1);	msgbuf[len - 1] = 0;	/* Make sure it is a string */    } else {			/* Add the lower layer message ... */	char prot_msg[1024];	msg = -msg;		/* Make it positive */	strncpy(msgbuf,	    SMBlib_Error_Messages[msg > SMBlibE_NoSuchMsg ? SMBlibE_NoSuchMsg : msg],	    len - 1);	msgbuf[len - 1] = 0;	/* make sure it is a string */	if (strlen(msgbuf) < len) {	/* If there is space, put rest in */	    strncat(msgbuf, "\n\t", len - strlen(msgbuf));	    RFCNB_Get_Error(prot_msg, sizeof(prot_msg) - 1);	    strncat(msgbuf, prot_msg, len - strlen(msgbuf));	}    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区在线看| 在线观看成人免费视频| 亚洲男人的天堂av| 日韩一级免费一区| 91久久精品一区二区三| 国产一区二区成人久久免费影院| 国产人成亚洲第一网站在线播放| av电影一区二区| 国产黄色91视频| 国产精品99久久久久久久vr| 毛片基地黄久久久久久天堂| 亚洲一区二区三区影院| 日韩一区在线免费观看| 亚洲国产高清aⅴ视频| 国产亚洲va综合人人澡精品 | 在线区一区二视频| av在线不卡电影| bt欧美亚洲午夜电影天堂| 国产呦精品一区二区三区网站| 久久精品国产色蜜蜜麻豆| 人人狠狠综合久久亚洲| 亚洲色图在线播放| 中文字幕亚洲精品在线观看| 26uuu亚洲综合色| 国产亲近乱来精品视频| 国产精品网站在线| 国产精品美女久久久久aⅴ| 欧美国产综合色视频| 日本一区二区三区dvd视频在线| 久久久久久久国产精品影院| 久久在线免费观看| 国产精品免费av| 亚洲精品乱码久久久久| 天使萌一区二区三区免费观看| 亚洲欧美日韩国产综合| 国产精品午夜久久| 国产精品区一区二区三| 国产精品欧美一区二区三区| 一区二区三区四区乱视频| 亚洲午夜视频在线观看| 蜜桃视频在线观看一区| 国产精品一二三在| 99久久久无码国产精品| 欧美乱熟臀69xxxxxx| 久久免费美女视频| 国产精品久久久久久久久免费丝袜| 专区另类欧美日韩| 视频一区二区三区入口| 粉嫩av一区二区三区粉嫩| av中文字幕一区| 91国偷自产一区二区开放时间 | 日本韩国欧美在线| 777xxx欧美| 国产无遮挡一区二区三区毛片日本| 亚洲欧美经典视频| 九色综合国产一区二区三区| 91在线精品一区二区| 欧日韩精品视频| 欧美一卡2卡三卡4卡5免费| 久久精品综合网| 亚洲国产成人91porn| 成人激情图片网| 欧美xxxx在线观看| 一区二区三区四区在线免费观看 | 国产精品女同一区二区三区| 亚洲电影在线播放| 成人av电影在线观看| 日韩免费高清av| 亚洲r级在线视频| 91亚洲国产成人精品一区二区三 | 经典三级一区二区| 91福利区一区二区三区| 国产精品婷婷午夜在线观看| 日韩av一级片| 欧美三级中文字| 亚洲免费av网站| 成人毛片视频在线观看| 2023国产精品自拍| 久久66热偷产精品| 一本一道波多野结衣一区二区| 精品伦理精品一区| 青青青伊人色综合久久| 欧美中文字幕不卡| 亚洲欧美日韩国产另类专区| 成人一道本在线| 久久久www免费人成精品| 久久国产精品第一页| 在线成人高清不卡| 一级日本不卡的影视| 99v久久综合狠狠综合久久| 欧美在线999| 亚洲午夜在线观看视频在线| 日本精品裸体写真集在线观看| 亚洲人成人一区二区在线观看| av色综合久久天堂av综合| 欧美激情一区三区| av日韩在线网站| 亚洲欧美日韩在线| 91蜜桃视频在线| 一区二区日韩电影| 欧美视频精品在线| 无吗不卡中文字幕| 在线观看成人免费视频| 中文字幕一区在线观看视频| 色哟哟一区二区三区| 亚洲精品日产精品乱码不卡| 91国偷自产一区二区使用方法| 一区二区三国产精华液| 5566中文字幕一区二区电影| 日本中文字幕一区二区视频| 日韩视频一区二区三区在线播放 | 久久久久99精品一区| 精品亚洲porn| 日韩视频中午一区| 国产**成人网毛片九色| 亚洲女厕所小便bbb| 欧美久久一区二区| 亚洲第一主播视频| 欧美一区二区三区影视| 久久精品国产一区二区三区免费看| 亚洲精品一区二区三区蜜桃下载 | 狠狠色综合日日| 中文乱码免费一区二区| 欧美亚洲综合色| 国模冰冰炮一区二区| 亚洲欧美日韩一区二区三区在线观看| 欧美日本国产视频| 日韩中文字幕av电影| 久久综合资源网| 日本二三区不卡| 国内精品免费在线观看| 亚洲精品中文字幕在线观看| 制服丝袜中文字幕亚洲| heyzo一本久久综合| 日韩精品电影在线| 国产精品毛片久久久久久久| 欧美一区二区私人影院日本| www.色综合.com| 日本va欧美va瓶| 一区二区三区 在线观看视频| 精品久久久久久久久久久久包黑料| 99久久久免费精品国产一区二区| 美女国产一区二区| 亚洲黄一区二区三区| 亚洲国产高清不卡| 欧美精品一区二区精品网| 欧美一级黄色片| 日韩欧美一级特黄在线播放| 5858s免费视频成人| 4hu四虎永久在线影院成人| 欧美色爱综合网| 欧美精品vⅰdeose4hd| 欧美精品第1页| 欧美一区二区久久| 日韩欧美中文字幕公布| 欧美一级日韩免费不卡| 日韩精品一区国产麻豆| 精品久久久久久久久久久久包黑料 | 日韩在线卡一卡二| 午夜精品久久一牛影视| 日韩电影网1区2区| 免费观看久久久4p| 国产成人在线视频网站| 大胆亚洲人体视频| 91免费版在线看| 欧美日产在线观看| 日韩欧美中文字幕一区| 欧美国产综合色视频| 一区二区三区欧美久久| 亚洲成人久久影院| 精品午夜一区二区三区在线观看| 国产一区在线观看视频| 97se狠狠狠综合亚洲狠狠| 欧美日本免费一区二区三区| 欧美zozo另类异族| 亚洲国产精品99久久久久久久久| 亚洲欧美另类久久久精品 | 欧美xxxx老人做受| 国产精品你懂的在线欣赏| 亚洲综合激情小说| 蜜桃av噜噜一区| 99v久久综合狠狠综合久久| 欧美日韩国产一区二区三区地区| 日韩精品一区二区三区蜜臀| 国产精品乱码人人做人人爱| 亚洲国产欧美在线人成| 极品少妇一区二区三区精品视频 | 亚洲三级理论片| 日本不卡一区二区三区高清视频| 韩国精品一区二区| 色视频成人在线观看免| 精品国产乱码久久久久久久| 一区二区高清免费观看影视大全| 蜜臂av日日欢夜夜爽一区| 成人免费观看视频| 日韩一区二区免费视频| 成人免费在线视频| 国产一区二区精品久久99| 欧美日韩国产综合久久| 中文字幕在线一区二区三区|