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

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

?? smblib.c

?? 代理服務(wù)器 squid-2.6.STABLE16
?? C
字號:
/* UNIX SMBlib NetBIOS implementation *  * Version 1.0 * SMBlib 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 "config.h"#include <ctype.h>#include <string.h>int SMBlib_errno;int SMBlib_SMB_Error;#define SMBLIB_ERRNO#define uchar unsigned char#include "smblib-priv.h"#include "rfcnb.h"#include "smbencrypt.h"#include <signal.h>/* #define DEBUG */SMB_State_Types SMBlib_State;/* Initialize the SMBlib package     */intSMB_Init(){    SMBlib_State = SMB_State_Started;    signal(SIGPIPE, SIG_IGN);	/* Ignore these ... *//* If SMBLIB_Instrument is defines, turn on the instrumentation stuff */#ifdef SMBLIB_INSTRUMENT    SMBlib_Instrument_Init();#endif    return 0;}intSMB_Term(){#ifdef SMBLIB_INSTRUMENT    SMBlib_Instrument_Term();	/* Clean up and print results */#endif    return 0;}/* SMB_Create: Create a connection structure and return for later use *//* We have other helper routines to set variables                     */SMB_Handle_TypeSMB_Create_Con_Handle(){    SMBlib_errno = SMBlibE_NotImpl;    return (NULL);}intSMBlib_Set_Sock_NoDelay(SMB_Handle_Type Con_Handle, BOOL yn){    if (RFCNB_Set_Sock_NoDelay(Con_Handle->Trans_Connect, yn) < 0) {#ifdef DEBUG#endif	fprintf(stderr, "Setting no-delay on TCP socket failed ...\n");    }    return (0);}/* SMB_Connect_Server: Connect to a server, but don't negotiate protocol *//* or anything else ...                                                  */SMB_Handle_TypeSMB_Connect_Server(SMB_Handle_Type Con_Handle,    char *server, char *NTdomain){    SMB_Handle_Type con;    char called[80], calling[80], *address;    int i;    /* Get a connection structure if one does not exist */    con = Con_Handle;    if (Con_Handle == NULL) {	if ((con = (struct SMB_Connect_Def *) malloc(sizeof(struct SMB_Connect_Def))) == NULL) {	    SMBlib_errno = SMBlibE_NoSpace;	    return NULL;	}    }    /* Init some things ... */    strcpy(con->service, "");    strcpy(con->username, "");    strcpy(con->password, "");    strcpy(con->sock_options, "");    strcpy(con->address, "");    strcpy(con->desthost, server);    strcpy(con->PDomain, NTdomain);    strcpy(con->OSName, SMBLIB_DEFAULT_OSNAME);    strcpy(con->LMType, SMBLIB_DEFAULT_LMTYPE);    con->first_tree = con->last_tree = NULL;    /* ugh. This is horribly broken. *//*   SMB_Get_My_Name(con -> myname, sizeof(con -> myname)); */    /* hacked by Kinkie */    i = gethostname(con->myname, sizeof(con->myname));    if (i == -1) {	strcpy(con->myname, "unknown");    } else {	if (NULL != (address = strchr(con->myname, '.'))) {	    *address = '\0';	/* truncate at first '.' */	}    }    con->port = 0;		/* No port selected */    /* Get some things we need for the SMB Header */    con->pid = getpid();    con->mid = con->pid;	/* This will do for now ... */    con->uid = 0;		/* Until we have done a logon, no uid ... */    con->gid = getgid();    /* Now connect to the remote end, but first upper case the name of the     * service we are going to call, sine some servers want it in uppercase */    for (i = 0; i < strlen(server); i++)	called[i] = xtoupper(server[i]);    called[strlen(server)] = 0;	/* Make it a string */    for (i = 0; i < strlen(con->myname); i++)	calling[i] = xtoupper(con->myname[i]);    calling[strlen(con->myname)] = 0;	/* Make it a string */    if (strcmp(con->address, "") == 0)	address = con->desthost;    else	address = con->address;    con->Trans_Connect = RFCNB_Call(called,	calling,	address,		/* Protocol specific */	con->port);    /* Did we get one? */    if (con->Trans_Connect == NULL) {	if (Con_Handle == NULL) {	    Con_Handle = NULL;	    free(con);	}	SMBlib_errno = -SMBlibE_CallFailed;	return NULL;    }    return (con);}/* SMB_Connect: Connect to the indicated server                       *//* If Con_Handle == NULL then create a handle and connect, otherwise  *//* use the handle passed                                              */char *SMB_Prots_Restrict[] ={"PC NETWORK PROGRAM 1.0",    NULL};SMB_Handle_TypeSMB_Connect(SMB_Handle_Type Con_Handle,    SMB_Tree_Handle * tree,    char *service,    char *username,    char *password){    SMB_Handle_Type con;    char *host, *address;    char temp[80], called[80], calling[80];    int i;    /* Get a connection structure if one does not exist */    con = Con_Handle;    if (Con_Handle == NULL) {	if ((con = (struct SMB_Connect_Def *) malloc(sizeof(struct SMB_Connect_Def))) == NULL) {	    SMBlib_errno = SMBlibE_NoSpace;	    return NULL;	}    }    /* Init some things ... */    strcpy(con->service, service);    strcpy(con->username, username);    strcpy(con->password, password);    strcpy(con->sock_options, "");    strcpy(con->address, "");    strcpy(con->PDomain, SMBLIB_DEFAULT_DOMAIN);    strcpy(con->OSName, SMBLIB_DEFAULT_OSNAME);    strcpy(con->LMType, SMBLIB_DEFAULT_LMTYPE);    con->first_tree = con->last_tree = NULL;    SMB_Get_My_Name(con->myname, sizeof(con->myname));    con->port = 0;		/* No port selected */    /* Get some things we need for the SMB Header */    con->pid = getpid();    con->mid = con->pid;	/* This will do for now ... */    con->uid = 0;		/* Until we have done a logon, no uid */    con->gid = getgid();    /* Now figure out the host portion of the service */    strcpy(temp, service);    host = (char *) strtok(temp, "/\\");	/* Separate host name portion */    strcpy(con->desthost, host);    /* Now connect to the remote end, but first upper case the name of the     * service we are going to call, sine some servers want it in uppercase */    for (i = 0; i < strlen(host); i++)	called[i] = xtoupper(host[i]);    called[strlen(host)] = 0;	/* Make it a string */    for (i = 0; i < strlen(con->myname); i++)	calling[i] = xtoupper(con->myname[i]);    calling[strlen(con->myname)] = 0;	/* Make it a string */    if (strcmp(con->address, "") == 0)	address = con->desthost;    else	address = con->address;    con->Trans_Connect = RFCNB_Call(called,	calling,	address,		/* Protocol specific */	con->port);    /* Did we get one? */    if (con->Trans_Connect == NULL) {	if (Con_Handle == NULL) {	    free(con);	    Con_Handle = NULL;	}	SMBlib_errno = -SMBlibE_CallFailed;	return NULL;    }    /* Now, negotiate the protocol */    if (SMB_Negotiate(con, SMB_Prots_Restrict) < 0) {	/* Hmmm what should we do here ... We have a connection, but could not	 * negotiate ...                                                      */	return NULL;    }    /* Now connect to the service ... */    if ((*tree = SMB_TreeConnect(con, NULL, service, password, "A:")) == NULL) {	return NULL;    }    return (con);}/* Logon to the server. That is, do a session setup if we can. We do not do *//* Unicode yet!                                                             */intSMB_Logon_Server(SMB_Handle_Type Con_Handle, char *UserName,    char *PassWord, char *UserDomain, int precrypted){    struct RFCNB_Pkt *pkt;    int param_len, pkt_len, pass_len;    char *p, pword[128];    /* First we need a packet etc ... but we need to know what protocol has  */    /* been negotiated to figure out if we can do it and what SMB format to  */    /* use ...                                                               */    if (Con_Handle->protocol < SMB_P_LanMan1) {	SMBlib_errno = SMBlibE_ProtLow;	return (SMBlibE_BAD);    }    if (precrypted) {	pass_len = 24;	memcpy(pword, PassWord, 24);    } else {	strcpy(pword, PassWord);	if (Con_Handle->encrypt_passwords) {	    pass_len = 24;	    SMBencrypt((uchar *) PassWord, (uchar *) Con_Handle->Encrypt_Key, (uchar *) pword);	} else	    pass_len = strlen(pword);    }    /* Now build the correct structure */    if (Con_Handle->protocol < SMB_P_NT1) {	param_len = strlen(UserName) + 1 + pass_len + 1 +	    strlen(UserDomain) + 1 +	    strlen(Con_Handle->OSName) + 1;	pkt_len = SMB_ssetpLM_len + param_len;	pkt = (struct RFCNB_Pkt *) RFCNB_Alloc_Pkt(pkt_len);	if (pkt == NULL) {	    SMBlib_errno = SMBlibE_NoSpace;	    fprintf(stderr, "SMB_Logon_server: Couldn't allocate packet\n");	    return (SMBlibE_BAD);	/* Should handle the error */	}	memset(SMB_Hdr(pkt), 0, SMB_ssetpLM_len);	SIVAL(SMB_Hdr(pkt), SMB_hdr_idf_offset, SMB_DEF_IDF);	/* Plunk in IDF */	*(SMB_Hdr(pkt) + SMB_hdr_com_offset) = SMBsesssetupX;	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) = 10;	*(SMB_Hdr(pkt) + SMB_hdr_axc_offset) = 0xFF;	/* No extra command */	SSVAL(SMB_Hdr(pkt), SMB_hdr_axo_offset, 0);	SSVAL(SMB_Hdr(pkt), SMB_ssetpLM_mbs_offset, SMBLIB_MAX_XMIT);	SSVAL(SMB_Hdr(pkt), SMB_ssetpLM_mmc_offset, 2);	SSVAL(SMB_Hdr(pkt), SMB_ssetpLM_vcn_offset, Con_Handle->pid);	SIVAL(SMB_Hdr(pkt), SMB_ssetpLM_snk_offset, 0);	SSVAL(SMB_Hdr(pkt), SMB_ssetpLM_pwl_offset, pass_len + 1);	SIVAL(SMB_Hdr(pkt), SMB_ssetpLM_res_offset, 0);	SSVAL(SMB_Hdr(pkt), SMB_ssetpLM_bcc_offset, param_len);	/* Now copy the param strings in with the right stuff */	p = (char *) (SMB_Hdr(pkt) + SMB_ssetpLM_buf_offset);	/* Copy  in password, then the rest. Password has a null at end */	memcpy(p, pword, pass_len);	p = p + pass_len + 1;	strcpy(p, UserName);	p = p + strlen(UserName);	*p = 0;	p = p + 1;	strcpy(p, UserDomain);	p = p + strlen(UserDomain);	*p = 0;	p = p + 1;	strcpy(p, Con_Handle->OSName);	p = p + strlen(Con_Handle->OSName);	*p = 0;    } else {	/* We don't admit to UNICODE support ... */	param_len = strlen(UserName) + 1 + pass_len +	    strlen(UserDomain) + 1 +	    strlen(Con_Handle->OSName) + 1 +	    strlen(Con_Handle->LMType) + 1;	pkt_len = SMB_ssetpNTLM_len + param_len;	pkt = (struct RFCNB_Pkt *) RFCNB_Alloc_Pkt(pkt_len);	if (pkt == NULL) {	    SMBlib_errno = SMBlibE_NoSpace;	    fprintf(stderr, "SMB_Logon_server: Couldn't allocate packet\n");	    return (-1);	/* Should handle the error */	}	memset(SMB_Hdr(pkt), 0, SMB_ssetpNTLM_len);	SIVAL(SMB_Hdr(pkt), SMB_hdr_idf_offset, SMB_DEF_IDF);	/* Plunk in IDF */	*(SMB_Hdr(pkt) + SMB_hdr_com_offset) = SMBsesssetupX;	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) = 13;	*(SMB_Hdr(pkt) + SMB_hdr_axc_offset) = 0xFF;	/* No extra command */	SSVAL(SMB_Hdr(pkt), SMB_hdr_axo_offset, 0);	SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_mbs_offset, SMBLIB_MAX_XMIT);	SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_mmc_offset, 0);	SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_vcn_offset, 1); /* Thanks Tridge! */	SIVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_snk_offset, 0);	SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_cipl_offset, pass_len);	SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_cspl_offset, 0);	SIVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_res_offset, 0);	SIVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_cap_offset, 0);	SSVAL(SMB_Hdr(pkt), SMB_ssetpNTLM_bcc_offset, param_len);	/* Now copy the param strings in with the right stuff */	p = (char *) (SMB_Hdr(pkt) + SMB_ssetpNTLM_buf_offset);	/* Copy  in password, then the rest. Password has no null at end */	memcpy(p, pword, pass_len);	p = p + pass_len;	strcpy(p, UserName);	p = p + strlen(UserName);	*p = 0;	p = p + 1;	strcpy(p, UserDomain);	p = p + strlen(UserDomain);	*p = 0;	p = p + 1;	strcpy(p, Con_Handle->OSName);	p = p + strlen(Con_Handle->OSName);	*p = 0;	p = p + 1;	strcpy(p, Con_Handle->LMType);	p = p + strlen(Con_Handle->LMType);	*p = 0;    }    /* Now send it and get a response */    if (RFCNB_Send(Con_Handle->Trans_Connect, pkt, pkt_len) < 0) {#ifdef DEBUG	fprintf(stderr, "Error sending SessSetupX request\n");#endif	RFCNB_Free_Pkt(pkt);	SMBlib_errno = SMBlibE_SendFailed;	return (SMBlibE_BAD);    }    /* Now get the response ... */    if (RFCNB_Recv(Con_Handle->Trans_Connect, pkt, pkt_len) < 0) {#ifdef DEBUG	fprintf(stderr, "Error receiving response to SessSetupAndX\n");#endif	RFCNB_Free_Pkt(pkt);	SMBlib_errno = SMBlibE_RecvFailed;	return (SMBlibE_BAD);    }    /* Check out the response type ... */    if (CVAL(SMB_Hdr(pkt), SMB_hdr_rcls_offset) != SMBC_SUCCESS) {	/* Process error */#ifdef DEBUG	fprintf(stderr, "SMB_SessSetupAndX 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);    }/** @@@ mdz: check for guest login { **/    if (SVAL(SMB_Hdr(pkt), SMB_ssetpr_act_offset) & 0x1) {	/* do we allow guest login? NO! */	return (SMBlibE_BAD);    }/** @@@ mdz: } **/#ifdef DEBUG    fprintf(stderr, "SessSetupAndX response. Action = %i\n",	SVAL(SMB_Hdr(pkt), SMB_ssetpr_act_offset));#endif    /* Now pick up the UID for future reference ... */    Con_Handle->uid = SVAL(SMB_Hdr(pkt), SMB_hdr_uid_offset);    RFCNB_Free_Pkt(pkt);    return (0);}/* Disconnect from the server, and disconnect all tree connects */intSMB_Discon(SMB_Handle_Type Con_Handle, BOOL KeepHandle){    /* We just disconnect the connection for now ... */    if (Con_Handle != NULL)	RFCNB_Hangup(Con_Handle->Trans_Connect);    if (!KeepHandle)	free(Con_Handle);    return (0);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱人伦偷精品视频不卡| 欧美精品乱码久久久久久| 中文字幕久久午夜不卡| 国产成人精品免费视频网站| 亚洲国产激情av| 91尤物视频在线观看| 亚洲愉拍自拍另类高清精品| 91麻豆精品国产91久久久使用方法| 视频一区二区三区中文字幕| 欧美tickling网站挠脚心| 国产一区二区三区精品视频| 国产精品理伦片| 日本高清成人免费播放| 日韩高清不卡在线| 精品国产123| 成人久久久精品乱码一区二区三区| 亚洲视频 欧洲视频| 欧美日本免费一区二区三区| 久久精品国产成人一区二区三区| 欧美国产日韩亚洲一区| 91成人免费电影| 久久不见久久见中文字幕免费| 国产欧美精品日韩区二区麻豆天美| 一本高清dvd不卡在线观看| 日韩精品亚洲一区二区三区免费| 久久你懂得1024| 色噜噜狠狠色综合欧洲selulu| 日本女优在线视频一区二区| 国产亚洲成年网址在线观看| 色综合色综合色综合色综合色综合| 日韩高清电影一区| 国产精品污网站| 欧美人伦禁忌dvd放荡欲情| 国产在线精品国自产拍免费| 亚洲欧美区自拍先锋| 日韩视频永久免费| av动漫一区二区| 琪琪久久久久日韩精品| 国产精品三级久久久久三级| 欧美精品xxxxbbbb| 风流少妇一区二区| 婷婷开心久久网| 国产精品色在线| 日韩亚洲欧美综合| 99国产精品国产精品久久| 玖玖九九国产精品| 国产成人亚洲综合a∨婷婷| 一区二区三区欧美视频| 精品理论电影在线| 欧美主播一区二区三区美女| 国产在线精品一区二区| 亚洲香肠在线观看| 国产欧美日韩精品一区| 欧美一个色资源| 色综合视频在线观看| 国产传媒一区在线| 日本一不卡视频| 亚洲欧美日韩国产综合| 国产亚洲一区二区三区四区| 91麻豆精品久久久久蜜臀| 一本久道久久综合中文字幕| 国产乱码精品一区二区三| 爽好多水快深点欧美视频| 亚洲欧美综合网| 久久久国产午夜精品| 欧美美女网站色| 91丨porny丨国产| 国产精品一二三四区| 日韩中文字幕91| 曰韩精品一区二区| 国产精品色呦呦| 久久日韩精品一区二区五区| 欧美精品99久久久**| 91丨porny丨在线| 丁香激情综合五月| 国产在线精品一区二区夜色| 天堂午夜影视日韩欧美一区二区| 亚洲欧洲av在线| 日本一区二区三区四区 | 久久精品免视看| 在线成人免费视频| 欧美在线观看一二区| 92国产精品观看| 不卡视频一二三| 丁香婷婷综合色啪| 国产精品99精品久久免费| 久久精品国产亚洲5555| 日韩影院精彩在线| 亚洲成人动漫精品| 亚洲一区二区三区影院| 亚洲免费观看高清在线观看| 成人欧美一区二区三区视频网页| 欧美激情一区二区三区四区 | 久久99国产精品久久| 天天色天天操综合| 亚洲bt欧美bt精品| 亚洲宅男天堂在线观看无病毒| 1区2区3区欧美| 亚洲欧洲国产日韩| 亚洲同性同志一二三专区| 色婷婷激情综合| 99精品视频在线免费观看| 成人av在线播放网站| 成人免费看片app下载| 国产一区在线精品| 免费一区二区视频| 美脚の诱脚舐め脚责91| 奇米888四色在线精品| 日韩av不卡在线观看| 午夜精品久久久久久久久| 欧美日韩国产综合久久| 精品视频在线免费观看| 欧美人妖巨大在线| 欧美一区二区视频观看视频 | 国产日韩欧美精品综合| 国产午夜三级一区二区三| 国产视频在线观看一区二区三区| 国产亚洲精品超碰| 国产精品麻豆视频| 亚洲美腿欧美偷拍| 亚州成人在线电影| 日av在线不卡| 韩国v欧美v亚洲v日本v| 国产精品亚洲人在线观看| 成人毛片视频在线观看| 色吧成人激情小说| 欧美日韩一区二区三区四区五区| 欧美美女直播网站| 精品免费视频一区二区| 欧美激情一区在线观看| 亚洲欧美日韩国产另类专区| 亚洲第一激情av| 青青草国产成人av片免费| 国产麻豆成人精品| 972aa.com艺术欧美| 欧美日韩黄色影视| 精品黑人一区二区三区久久 | 五月天国产精品| 麻豆精品国产传媒mv男同| 国产精品白丝jk白祙喷水网站| 不卡的av在线| 欧美亚洲动漫精品| 精品国产一区二区三区不卡 | 久久99久久久久久久久久久| 国产精品一级二级三级| 色婷婷av一区二区三区软件| 欧美精品1区2区| 久久久久久电影| 亚洲欧美日韩国产手机在线 | 国产三级精品三级在线专区| 亚洲人成亚洲人成在线观看图片| 午夜影院久久久| 91精品欧美福利在线观看| 久久久国产精华| 亚洲亚洲精品在线观看| 狠狠色2019综合网| 97久久超碰精品国产| 日韩一级免费观看| 最新国产精品久久精品| 婷婷亚洲久悠悠色悠在线播放 | aaa欧美日韩| 欧美久久久久久蜜桃| 国产欧美一区二区精品婷婷| 亚洲一区免费视频| 国产一区二区精品久久91| 欧美亚洲国产一卡| 国产亚洲欧洲一区高清在线观看| 一区二区在线观看免费 | 精品一区二区三区不卡 | 欧美日韩免费一区二区三区视频| 精品第一国产综合精品aⅴ| 亚洲婷婷在线视频| 久久99精品一区二区三区 | 日韩精品一区二区三区视频 | 91香蕉国产在线观看软件| 日韩一级精品视频在线观看| 日韩一区在线看| 久久99国产乱子伦精品免费| 91成人免费电影| 国产视频视频一区| 日韩不卡在线观看日韩不卡视频| 99久久婷婷国产综合精品电影| 日韩一级成人av| 亚洲午夜私人影院| 国产v综合v亚洲欧| 欧美一区二区成人| 亚洲欧美日本韩国| 高清国产一区二区三区| 日韩精品一区二区三区视频| 亚洲专区一二三| 成a人片亚洲日本久久| 精品国产髙清在线看国产毛片| 亚洲一区二区精品久久av| 播五月开心婷婷综合| 精品日韩一区二区| 亚洲va国产va欧美va观看| 99精品视频在线观看| 久久久国产精品麻豆| 久久电影网电视剧免费观看| 欧美日韩在线综合|