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

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

?? mainwin.cpp

?? spring+hibenate+struts開發
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
				IPMSG_FILE_MTIME, FileTime2UnixTime(&dat->ftLastWriteTime),
				IPMSG_FILE_CREATETIME, FileTime2UnixTime(&dat->ftCreationTime));
	else
		len = wsprintf(obj->header, "0000:.:0:%x:", ipmsg_attr);

	obj->header[wsprintf(obj->header, "%04x", len)] = ':';

	return	len;
}

/*
	僼傽僀儖憲庴怣
*/
BOOL TMainWin::SendDirFile(SendFileObj *obj)
{
	BOOL	find = FALSE;

	if (obj->status == FS_OPENINFO)
	{
		char	buf[MAX_BUF];
		if (obj->dirCnt == 0)
			strncpyz(buf, obj->fileInfo->Fname(), MAX_PATH);
		else if (MakePath(buf, obj->path, *obj->fdata.cAlternateFileName ? obj->fdata.cAlternateFileName : obj->fdata.cFileName) >= MAX_PATH)
			return	FALSE;
		strncpyz(obj->path, buf, MAX_PATH);
		obj->dirCnt++;
		obj->status = FS_FIRSTINFO;
	}

	if (obj->status == FS_FIRSTINFO || obj->status == FS_NEXTINFO)
	{
		if (obj->status == FS_FIRSTINFO)
		{
			char	buf[MAX_BUF];
			MakePath(buf, obj->path, "*");
			find = (obj->hDir[obj->dirCnt -1] = ::FindFirstFile(buf, &obj->fdata)) == INVALID_HANDLE_VALUE ? FALSE : TRUE;
		}
		else find = ::FindNextFile(obj->hDir[obj->dirCnt -1], &obj->fdata);

		while (find && (strcmp(obj->fdata.cFileName, ".") == 0 || strcmp(obj->fdata.cFileName, "..") == 0))
			find = ::FindNextFile(obj->hDir[obj->dirCnt -1], &obj->fdata);
		obj->status = FS_MAKEINFO;
	}

	if (obj->status == FS_DIRFILESTART || obj->status == FS_MAKEINFO)
	{
		if (obj->status == FS_DIRFILESTART)
			find = TRUE;
		if (find && (obj->dirCnt > 0 || obj->isDir == FALSE) && (obj->fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0)
		{
			char	buf[MAX_BUF];
			int		len = obj->isDir ? MakePath(buf, obj->path, *obj->fdata.cAlternateFileName ? obj->fdata.cAlternateFileName : obj->fdata.cFileName) : wsprintf(buf, "%s", obj->fileInfo->Fname());
			BOOL	modifyCheck = (cfg->fileTransOpt & FT_STRICTDATE) && *(_int64 *)&obj->fdata.ftLastWriteTime > *(_int64 *)&obj->attachTime;
			if (len >= MAX_PATH || modifyCheck || OpenSendFile(buf, obj) == FALSE)
			{
				len = strlen(obj->fdata.cFileName);
				strncpyz(obj->fdata.cFileName + len, " (Can't open)", MAX_PATH - len);
				obj->fdata.nFileSizeHigh = obj->fdata.nFileSizeLow = 0;
			}
		}
		if (find == FALSE && obj->isDir)
			GetFileInfomation(obj->path, &obj->fdata);

		obj->headerOffset = 0;
		obj->headerLen = MakeDirHeader(obj, find);
		if (find == FALSE)
		{
			if (--obj->dirCnt >= 0 && obj->isDir)
			{
				::FindClose(obj->hDir[obj->dirCnt]);
				if (PathToDir(obj->path, obj->path) != TRUE && obj->dirCnt > 0)
					return	FALSE;
			}
			if (obj->dirCnt <= 0)
				obj->dirCnt--;	// 廔椆
		}
		obj->status = FS_TRANSINFO;
	}

	if (obj->status == FS_TRANSINFO)
	{
		int	size = ::send(obj->conInfo->sd, obj->header + obj->headerOffset, obj->headerLen - obj->headerOffset, 0);
		if (size < 0)
			return	FALSE;
		else {
			if ((obj->headerOffset += size) < obj->headerLen)
				return	TRUE;
			obj->status = obj->dirCnt < 0 ? FS_COMPLETE : find == FALSE ? FS_NEXTINFO : (obj->fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? FS_OPENINFO : FS_TRANSFILE;
		}
	}

	if (obj->status == FS_TRANSFILE)
	{
		if (obj->mapAddr && SendFile(obj) != TRUE)
		{
			CloseSendFile(obj);
			return	FALSE;
		}
		else if (obj->mapAddr == NULL || obj->status == FS_ENDFILE)
		{
			CloseSendFile(obj);
			obj->status = obj->isDir ? FS_NEXTINFO : FS_MAKEINFO;
		}
	}
	return	TRUE;
}

/*
	僼傽僀儖憲庴怣
*/
BOOL TMainWin::SendFile(SendFileObj *obj)
{
	if (obj == NULL || obj->hFile == INVALID_HANDLE_VALUE)
		return	FALSE;

	int		size = 0;
	_int64	remain = obj->fileSize - obj->offset;
	int		transMax = cfg->TransMax - (int)(obj->offset % cfg->TransMax);

	if (remain > 0 && (size = ::send(obj->conInfo->sd, obj->mapAddr + (obj->offset % cfg->ViewMax), (int)(remain > transMax ? transMax : remain), 0)) < 0)
		return	FALSE;

	obj->offset += size;

	if (obj->offset == obj->fileSize)
		obj->status = obj->command == IPMSG_GETDIRFILES ? FS_ENDFILE : FS_COMPLETE;
	else if ((obj->offset % cfg->ViewMax) == 0)	// 嵞儅僢僾偺昁梫
	{
		::UnmapViewOfFile(obj->mapAddr);
		remain = obj->fileSize - obj->offset;
		obj->mapAddr = (char *)::MapViewOfFile(obj->hMap, FILE_MAP_READ, (int)(obj->offset >> 32), (int)obj->offset, (int)(remain > cfg->ViewMax ? cfg->ViewMax : remain));
	}

	obj->conInfo->lastTick = ::GetTickCount();

	return	TRUE;
}

BOOL TMainWin::EndSendFile(SendFileObj *obj)
{
	if (obj == NULL)
		return	FALSE;

	if (obj->hThread)
	{
		HANDLE	hThread = obj->hThread;
		obj->hThread = 0;	// 拞抐偺崌恾
		::WaitForSingleObject(hThread, INFINITE);
		::CloseHandle(hThread);
	}
	if (::closesocket(obj->conInfo->sd) != 0)
		obj->status = FS_ERROR;	// error 埖偄偵偡傞

	CloseSendFile(obj);

	if (obj->isDir)
		free(obj->hDir);

	shareMng->EndHostShare(obj->packetNo, &obj->host->hostSub, obj->fileInfo, obj->status == FS_COMPLETE ? TRUE : FALSE);
	sendFileList.DelObj(obj);
	delete obj->conInfo;
	delete obj;
	return	TRUE;
}

/*
	Entry Packet庴怣張棟
*/
void TMainWin::MsgBrEntry(MsgBuf *msg)
{
	AddrObj *obj = (AddrObj *)ansList->GetObj(FREE_LIST);
	if (obj) {
		obj->addr = msg->hostSub.addr;
		obj->portNo = msg->hostSub.portNo;
		ansList->PutObj(USED_LIST, obj);
	}
	if (obj == NULL || SetAnswerQueue(obj) != TRUE)
		msgMng->Send(&msg->hostSub, IPMSG_ANSENTRY|HostStatus(), GetNickNameEx(), cfg->GroupNameStr);

	AddHost(&msg->hostSub, msg->command, msg->msgBuf, msg->msgBuf + msg->exOffset);
}

BOOL TMainWin::SetAnswerQueue(AddrObj *obj)
{
	if (ansTimerID)
		return	TRUE;

	int		hostCnt = hosts.HostCnt(), spawn;

	if (hostCnt < 50 || ((msgMng->GetLocalHost()->addr ^ obj->addr) << 8) == 0)
		spawn = 1023 & rand();
	else if (hostCnt < 300)
		spawn = 2047 & rand();
	else
		spawn = 4095 & rand();

	if ((ansTimerID = ::SetTimer(hWnd, IPMSG_ANS_TIMER, spawn, NULL)) == 0)
		return	FALSE;

	return	TRUE;
}

void TMainWin::ExecuteAnsQueue(void)
{
	AddrObj *obj;

	while ((obj = (AddrObj *)ansList->GetObj(USED_LIST)) != NULL) {
		msgMng->Send(obj->addr, obj->portNo, IPMSG_ANSENTRY|HostStatus(), GetNickNameEx(), cfg->GroupNameStr);
		ansList->PutObj(FREE_LIST, obj);
	}
}

/*
	Exit Packet庴怣張棟
*/
void TMainWin::MsgBrExit(MsgBuf *msg)
{
	Host *host = cfg->priorityHosts.GetHostByName(&msg->hostSub);
	if (host != NULL)
		host->updateTime = Time();
	DelHost(&msg->hostSub);

	for (ShareInfo *info=shareMng->Top(),*next; info; info = next)
	{
		next = shareMng->Next(info);
		shareMng->EndHostShare(info->packetNo, &msg->hostSub);
	}
}

/*
	AnsEntry Packet庴怣張棟
*/
void TMainWin::MsgAnsEntry(MsgBuf *msg)
{
	AddHost(&msg->hostSub, msg->command, msg->msgBuf, msg->msgBuf + msg->exOffset);
}

/*
	Absence Packet庴怣張棟
*/
void TMainWin::MsgBrAbsence(MsgBuf *msg)
{
	AddHost(&msg->hostSub, msg->command, msg->msgBuf, msg->msgBuf + msg->exOffset);
}

/*
	Send Packet庴怣張棟
*/
void TMainWin::MsgSendMsg(MsgBuf *msg)
{
	TRecvDlg	*recvDlg;

	if (TRecvDlg::GetCreateCnt() >= cfg->RecvMax)
		return;

	for (recvDlg = (TRecvDlg *)recvList.TopObj(); recvDlg != NULL; recvDlg = (TRecvDlg *)recvList.NextObj(recvDlg))
		if (recvDlg->IsSamePacket(msg))
			break;

	if (recvDlg != NULL || IsLastPacket(msg))
	{
		if ((msg->command & IPMSG_SENDCHECKOPT) != 0 && (msg->command & (IPMSG_BROADCASTOPT | IPMSG_AUTORETOPT)) == 0)
			msgMng->Send(&msg->hostSub, IPMSG_RECVMSG, msg->packetNo);
		return;
	}

	if ((msg->command & IPMSG_BROADCASTOPT) == 0 && (msg->command & IPMSG_AUTORETOPT) == 0)
	{
		if ((msg->command & IPMSG_SENDCHECKOPT) != 0)
			msgMng->Send(&msg->hostSub, IPMSG_RECVMSG, msg->packetNo);

		if (cfg->AbsenceCheck && *cfg->AbsenceStr[cfg->AbsenceChoice])
			msgMng->Send(&msg->hostSub, IPMSG_SENDMSG|IPMSG_AUTORETOPT, cfg->AbsenceStr[cfg->AbsenceChoice]);
		if ((msg->command & IPMSG_NOADDLISTOPT) == 0 && hosts.GetHostByAddr(&msg->hostSub) == NULL)
			BroadcastEntrySub(&msg->hostSub, IPMSG_BR_ENTRY);
	}
	RecvDlgOpen(msg);
}

/*
	Recv Packet庴怣張棟
*/
void TMainWin::MsgRecvMsg(MsgBuf *msg)
{
	MsgInfoSub(msg);
}

/*
	Read Packet庴怣張棟
*/
void TMainWin::MsgReadMsg(MsgBuf *msg)
{
	MsgInfoSub(msg);
}

/*
	HostList 憲弌壜擻栤崌偣 Packet庴怣張棟
*/
void TMainWin::MsgBrIsGetList(MsgBuf *msg)
{
	if (cfg->AllowSendList
		&& (entryStartTime + ((ULONG)cfg->ListGetMSec / 1000) < (ULONG)Time())
			&& (cfg->ListGet == FALSE || (IPMSG_RETRYOPT & msg->command)))
		msgMng->Send(&msg->hostSub, IPMSG_OKGETLIST);
}

/*
	HostList 憲弌壜擻捠抦 Packet庴怣張棟
*/
void TMainWin::MsgOkGetList(MsgBuf *msg)
{
	if (entryStartTime != IPMSG_GETLIST_FINISH)
		msgMng->Send(&msg->hostSub, IPMSG_GETLIST);
}

/*
	HostList 憲弌梫媮 Packet庴怣張棟
*/
void TMainWin::MsgGetList(MsgBuf *msg)
{
	if (cfg->AllowSendList)
		SendHostList(msg);
}

/*
	HostList 憲弌 Packet庴怣張棟
*/
void TMainWin::MsgAnsList(MsgBuf *msg)
{
	if (entryStartTime != IPMSG_GETLIST_FINISH)
		AddHostList(msg);
}

/*
	Version Information 梫媮 Packet庴怣張棟
*/
void TMainWin::MsgGetInfo(MsgBuf *msg)
{
	char	buf[MAX_LISTBUF];

	wsprintf(buf, WIN32EDITION_MSGSTR, GetVerionStr());
	msgMng->Send(&msg->hostSub, IPMSG_SENDINFO, buf);
}

/*
	Version Information 捠抦 Packet庴怣張棟
*/
void TMainWin::MsgSendInfo(MsgBuf *msg)
{
	MsgInfoSub(msg);
}

/*
	Public Key 梫媮 Packet庴怣張棟
*/
void TMainWin::MsgGetPubKey(MsgBuf *msg)
{
	int		capa = strtoul(msg->msgBuf, 0, 16);

	if ((capa &= (cfg->pubKey.Capa()|cfg->smallPubKey.Capa())) == 0)
		return;

	PubKey	*pubKey = (capa & IPMSG_RSA_1024) ? &cfg->pubKey : &cfg->smallPubKey;

	char	buf[MAX_BUF];
	wsprintf(buf, "%X:%X-", cfg->pubKey.Capa()|cfg->smallPubKey.Capa(), pubKey->Exponent());
	bin2hexstr_bigendian(pubKey->Key(), pubKey->KeyLen(), buf + strlen(buf));
	msgMng->Send(&msg->hostSub, IPMSG_ANSPUBKEY, buf);
}

/*
	Public Key 憲怣 Packet庴怣張棟
*/
void TMainWin::MsgAnsPubKey(MsgBuf *msg)
{
	if (cfg->pubKey.Key() == NULL && cfg->smallPubKey.Key() == NULL)
		return;

	BYTE	key[MAX_BUF];
	int		key_len, e, capa;
	char	*capa_hex, *e_hex, *key_hex, *p;

	if ((capa_hex = separate_token(msg->msgBuf, ':', &p)) == NULL)
		return;
	if ((e_hex = separate_token(NULL, '-', &p)) == NULL)
		return;
	if ((key_hex = separate_token(NULL, ':', &p)) == NULL)
		return;

	capa = strtoul(capa_hex, 0, 16);
	e = strtoul(e_hex, 0, 16);
	hexstr2bin_bigendian(key_hex, key, sizeof(key), &key_len);

	for (TSendDlg *sendDlg = (TSendDlg *)sendList.TopObj(); sendDlg != NULL; sendDlg = (TSendDlg *)sendList.NextObj(sendDlg))
		if (sendDlg->SendPubKeyNotify(&msg->hostSub, key, key_len, e, capa))
			break;
}

/*
	Information 捠抦張棟
*/
void TMainWin::MsgInfoSub(MsgBuf *msg)
{
	int		cmd = GET_MODE(msg->command);

	if (cmd == IPMSG_READMSG)
	{
		if (GET_OPT(msg->command) & IPMSG_READCHECKOPT)
			msgMng->Send(&msg->hostSub, IPMSG_ANSREADMSG, msg->packetNo);
	}
	else {
		long	packet_no = (cmd == IPMSG_RECVMSG || cmd == IPMSG_ANSREADMSG) ? atol(msg->msgBuf) : 0;

		if (cmd == IPMSG_ANSREADMSG) {
			for (TRecvDlg *recvDlg = (TRecvDlg *)recvList.TopObj(); recvDlg != NULL; recvDlg = (TRecvDlg *)recvList.NextObj(recvDlg))
				if (recvDlg->SendFinishNotify(&msg->hostSub, packet_no))
					break;
			return;
		}
		for (TSendDlg *sendDlg = (TSendDlg *)sendList.TopObj(); sendDlg != NULL; sendDlg = (TSendDlg *)sendList.NextObj(sendDlg))
			if (sendDlg->SendFinishNotify(&msg->hostSub, packet_no))
				break;
		if (sendDlg == NULL)
			return;
	}
	if (IsLastPacket(msg))		//廳暋僠僃僢僋
		return;

	char	title[MAX_LISTBUF], *msg_text = msg->msgBuf;
	int		show_mode = cfg->MsgMinimize ? SW_MINIMIZE : SW_SHOW;
	MakeListString(cfg, &msg->hostSub, &hosts, title);
	separate_token(title, '(');

	switch (cmd)
	{
	case IPMSG_READMSG:
		if (cfg->OpenCheck == FALSE)
			return;
		{
			char	*str = Ctime(), *p;
			str = separate_token(str, ' ', &p);
			str = separate_token(NULL, 0, &p);
			*strrchr(str, ':') = 0;
			wsprintf(msg_text, "%s\r\n(%s)", OPENFIN_MSGSTR, str);
		}
		break;

	case IPMSG_SENDINFO:
	case IPMSG_SENDABSENCEINFO:
		show_mode = SW_SHOW;
		break;

	default:
		return;
	}

	if (cmd == IPMSG_SENDABSENCEINFO) {	//彨棃揑偵偼 TMsgDlg偱張棟
		static int msg_cnt = 0;	// TMsgDlg 壔偟偨屻偼 TMsgDlg::createCnt 偵堏峴
		if (msg_cnt >= cfg->RecvMax)
			return;
		msg_cnt++;
		MessageBox(msg_text, title);
		msg_cnt--;
	}
	else {
		if (TMsgDlg::GetCreateCnt() >= cfg->RecvMax * 4)
			return;
		TMsgDlg	*msgDlg = new TMsgDlg(IsNewShell() ? this : 0);
		msgDlg->Create(msg_text, title, show_mode);
		if (cmd == IPMSG_SENDINFO || cmd == IPMSG_SENDABSENCEINFO)
			ActiveDlg(msgDlg);
		msgList.AddObj(msgDlg);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色老汉一区二区三区| 色综合一个色综合| 国产主播一区二区| 97精品超碰一区二区三区| 91麻豆自制传媒国产之光| 91成人免费网站| 精品日韩av一区二区| 亚洲人成在线观看一区二区| 日韩成人一区二区三区在线观看| 国产一区二区h| 欧美视频你懂的| 久久久精品国产99久久精品芒果 | 亚洲国产精品ⅴa在线观看| 亚洲色图欧洲色图| 美腿丝袜亚洲综合| 一本色道亚洲精品aⅴ| 精品国产免费一区二区三区四区 | 国产精品77777| 国产精品久久久久久福利一牛影视| 亚洲另类中文字| 成人深夜在线观看| 精品国产成人在线影院| 亚洲宅男天堂在线观看无病毒| 三级精品在线观看| 成人午夜精品一区二区三区| 欧美一区永久视频免费观看| 欧美国产成人精品| 另类小说图片综合网| 日韩专区中文字幕一区二区| 国产99久久久久久免费看农村| 日韩欧美高清dvd碟片| 午夜av电影一区| 91麻豆精品国产91久久久使用方法| 亚洲精品免费播放| 91福利在线观看| 亚洲h动漫在线| 日韩久久免费av| 国产精品一二三四| 欧美国产精品中文字幕| 国产精品夜夜爽| 中文一区在线播放| 91极品视觉盛宴| 免费成人性网站| 久久精品人人做人人综合 | 欧美一区二区三区的| 热久久免费视频| 久久人人超碰精品| 99re66热这里只有精品3直播| 一区二区高清视频在线观看| 欧美一区二区三区免费| 国产一区二区三区四区五区美女| 国产午夜久久久久| 欧美色综合久久| 成人禁用看黄a在线| 亚洲第一激情av| 国产精品电影一区二区三区| 欧美一区二区三区视频在线观看| 成人午夜精品一区二区三区| 日本一区中文字幕| 亚洲欧洲中文日韩久久av乱码| 欧美一区二区三区公司| 在线观看一区二区视频| 国产ts人妖一区二区| 青草国产精品久久久久久| 亚洲免费av在线| 欧美激情在线一区二区| 3751色影院一区二区三区| 成人免费av在线| 精品无人码麻豆乱码1区2区| 亚洲成a人v欧美综合天堂 | www.99精品| 国产精品白丝jk白祙喷水网站| 亚洲精品欧美激情| 国产精品久久久久影院老司| 69成人精品免费视频| 91麻豆福利精品推荐| 亚洲激情欧美激情| 亚洲视频在线观看三级| 亚洲青青青在线视频| 亚洲视频在线一区观看| 亚洲精品成人少妇| 亚洲成人自拍偷拍| 亚洲福利一二三区| 日本一不卡视频| 国产又粗又猛又爽又黄91精品| 国产在线视频一区二区| 国内精品伊人久久久久av影院| 久久福利资源站| 国产99久久久久久免费看农村| 成人精品国产福利| 色噜噜久久综合| 欧美成人精品二区三区99精品| www国产精品av| 国产精品热久久久久夜色精品三区| 亚洲国产精品av| 日韩va亚洲va欧美va久久| 久久国产精品99精品国产| 大胆欧美人体老妇| 精品视频1区2区3区| 国产午夜精品在线观看| 亚洲高清不卡在线观看| 成人美女在线视频| 欧美美女一区二区在线观看| 国产三级精品三级在线专区| 亚洲成av人片在线| 成人18精品视频| 国产亚洲精品aa午夜观看| 亚洲自拍偷拍麻豆| 成人高清av在线| 久久免费午夜影院| 久久se精品一区精品二区| 色久优优欧美色久优优| 欧美经典一区二区| 久久精品国产久精国产爱| 在线观看成人小视频| 亚洲欧洲99久久| 成人v精品蜜桃久久一区| 国产视频亚洲色图| 国产乱国产乱300精品| 精品少妇一区二区三区日产乱码 | 欧美亚男人的天堂| 亚洲精品国产精品乱码不99| a美女胸又www黄视频久久| 欧美极品美女视频| www..com久久爱| 中文字幕亚洲成人| 欧美视频一区二区三区| 天天综合色天天综合色h| 91精品黄色片免费大全| 久久99九九99精品| 中文一区在线播放| 色菇凉天天综合网| 亚洲一区二区三区影院| 欧美一级搡bbbb搡bbbb| 久久精品国产一区二区| 国产亚洲欧美色| 91浏览器打开| 五月综合激情网| 久久综合999| 成人黄色小视频在线观看| 最新欧美精品一区二区三区| 欧美日韩综合在线| 日本三级韩国三级欧美三级| 精品久久一二三区| 色久综合一二码| 国产一区二区三区四区五区美女| 亚洲免费大片在线观看| xfplay精品久久| 欧美日韩国产片| aa级大片欧美| 国产成人亚洲综合a∨婷婷图片| 亚洲欧美视频在线观看视频| 久久久www成人免费毛片麻豆| 欧美欧美午夜aⅴ在线观看| 丰满亚洲少妇av| 男男成人高潮片免费网站| 亚洲精品视频在线看| 国产精品久久久久久久蜜臀| 日韩免费成人网| 欧美疯狂性受xxxxx喷水图片| 欧美一区二区三区不卡| 欧美自拍偷拍午夜视频| 成人av电影在线| 成人午夜碰碰视频| 99久久精品国产一区二区三区| 麻豆精品久久精品色综合| 丝袜国产日韩另类美女| 日韩高清一级片| 免费在线视频一区| 久久精品国产精品亚洲综合| 精品在线免费视频| 国产91精品精华液一区二区三区 | 欧美刺激脚交jootjob| 精品久久久久久最新网址| 欧美一区二区播放| 国产亚洲欧美激情| 一区二区三区四区乱视频| 亚洲国产乱码最新视频| 日韩成人免费电影| 国产成人欧美日韩在线电影| 成人精品小蝌蚪| 99re这里只有精品视频首页| 欧美性受xxxx| 精品国产精品一区二区夜夜嗨| 久久精品人人做人人综合 | 99视频精品免费视频| 欧美日韩三级一区| 久久精品免费在线观看| 亚洲色图视频免费播放| 另类欧美日韩国产在线| 91精品国产综合久久久蜜臀粉嫩 | 国产精品一区二区久久精品爱涩| 99re8在线精品视频免费播放| 欧美日韩日日夜夜| 国产精品麻豆视频| 国产在线视视频有精品| 在线观看欧美黄色| 国产午夜精品美女毛片视频| 性欧美大战久久久久久久久| 粉嫩av亚洲一区二区图片|