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

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

?? mainwin.cpp

?? IPmessage局域網(wǎng)信息
?? CPP
?? 第 1 頁 / 共 5 頁
字號:

	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 = MakePath(buf, obj->path, *obj->fdata.cAlternateFileName ? obj->fdata.cAlternateFileName : obj->fdata.cFileName);
			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;

	if (remain > 0 && (size = ::send(obj->conInfo->sd, obj->mapAddr + (obj->offset % cfg->ViewMax), remain > cfg->TransMax ? cfg->TransMax : (int)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 == TRUE && *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->smallPubKey.Capa()) == 0)
		return;

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

	char	buf[MAX_BUF];
	wsprintf(buf, "%X:%X-", 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, *p;
	int		show_mode = cfg->MsgMinimize ? SW_MINIMIZE : SW_SHOW;
	MakeListString(cfg, &msg->hostSub, &hosts, title);
	separate_token(title, '(', &p);

	switch (cmd)
	{
	case IPMSG_READMSG:
		if (cfg->OpenCheck == FALSE)
			return;
		{
			char	*str = Ctime();
			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);
	}
}

/*
	晄嵼捠抦 Information 梫媮 Packet庴怣張棟
*/
void TMainWin::MsgGetAbsenceInfo(MsgBuf *msg)
{
	msgMng->Send(&msg->hostSub, IPMSG_SENDABSENCEINFO, cfg->AbsenceCheck ? cfg->AbsenceStr[cfg->AbsenceChoice] : NOTABSENCE_MSGSTR);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久亚洲国产美女国产盗摄| 色综合天天在线| 国产乱码字幕精品高清av| 日本道色综合久久| 亚洲免费观看高清完整| 国产不卡视频在线观看| 久久精品这里都是精品| 在线中文字幕一区| 精品一区二区三区免费播放| 亚洲一区二区三区中文字幕 | 99riav一区二区三区| 日韩一区二区在线观看视频 | 亚洲狠狠爱一区二区三区| 成人免费看视频| 国产亚洲婷婷免费| 高清不卡一区二区| 精品久久久久久久人人人人传媒 | 亚洲国产精品一区二区www在线| 一本到一区二区三区| 亚洲欧美激情插 | 国产精品一区二区在线观看不卡 | 伊人性伊人情综合网| 欧美午夜不卡在线观看免费| 精品伊人久久久久7777人| 中文字幕精品一区二区精品绿巨人 | 99re热视频精品| 午夜精品久久久久久久99樱桃| 日韩天堂在线观看| 欧美美女一区二区| 国产精品超碰97尤物18| 欧美二区乱c少妇| 欧美视频在线观看一区| 日本道色综合久久| 欧美视频中文一区二区三区在线观看| 成人精品免费看| 99re66热这里只有精品3直播 | 亚洲激情六月丁香| 国产日韩影视精品| 日韩免费高清av| 91精品国产综合久久久蜜臀粉嫩 | 久久综合av免费| 777午夜精品视频在线播放| 色综合久久综合网| 成人精品视频一区二区三区| 国内精品写真在线观看| 久久国产精品无码网站| 蜜臀av性久久久久蜜臀aⅴ | 久久亚洲精品小早川怜子| 日韩欧美黄色影院| 97精品国产露脸对白| 日本中文字幕一区二区有限公司| 国产在线播放一区| 欧美日韩国产天堂| 日本一区二区三区dvd视频在线| 亚洲品质自拍视频| 国产乱人伦精品一区二区在线观看| 99精品久久99久久久久| 久久免费电影网| 日本欧美一区二区三区| 欧日韩精品视频| 国产精品毛片久久久久久久| 久久99国内精品| 3atv一区二区三区| 亚洲夂夂婷婷色拍ww47| 91在线观看视频| 国产免费成人在线视频| 国产乱码精品一区二区三| 精品国产乱码久久久久久图片| 日欧美一区二区| 欧美日韩一区三区| 亚洲电影你懂得| 一区二区成人在线| 国产suv精品一区二区三区| 777午夜精品免费视频| 欧美一区二区观看视频| 久久久欧美精品sm网站| 夜夜嗨av一区二区三区中文字幕| 激情综合一区二区三区| 欧美色男人天堂| 亚洲男人天堂av| 91网上在线视频| 国产精品的网站| 国产91丝袜在线播放九色| 国产午夜精品在线观看| 美女一区二区久久| 日韩精品自拍偷拍| 视频一区欧美日韩| 91精品免费在线观看| 亚洲一区二区av电影| 欧美日韩在线播放三区四区| 亚洲一级电影视频| 欧美亚洲高清一区| 午夜影院在线观看欧美| 欧美午夜片在线看| 久久99久久99精品免视看婷婷| 欧美性受xxxx黑人xyx| 亚洲精品国产一区二区三区四区在线 | 日韩极品在线观看| 欧美久久久久久久久中文字幕| 久久国产视频网| 亚洲乱码国产乱码精品精小说| 欧美日韩一本到| 国产99精品国产| 天天操天天色综合| 国产精品美女久久久久久久久| 一区二区三区在线免费视频| 成人免费视频视频在线观看免费| 久久久噜噜噜久久中文字幕色伊伊 | 欧美片网站yy| 偷拍一区二区三区四区| 欧美三级蜜桃2在线观看| 日韩精品高清不卡| 精品福利一二区| 国产91在线观看| 一区二区三区精密机械公司| 欧美日韩精品一区二区在线播放| 青青草原综合久久大伊人精品 | 欧美sm极限捆绑bd| 国产毛片精品国产一区二区三区| 国产精品久久一卡二卡| 在线一区二区三区四区五区| 男人的j进女人的j一区| 国产欧美一区二区精品性色超碰| 91啪在线观看| 乱一区二区av| 亚洲精品乱码久久久久久日本蜜臀| 欧美精品在线视频| 一本色道久久综合狠狠躁的推荐| 亚洲成人黄色小说| 欧美极品少妇xxxxⅹ高跟鞋| 欧美伊人久久大香线蕉综合69 | 91在线视频网址| 免费在线欧美视频| 一区二区三区免费| 欧美国产综合色视频| 日韩限制级电影在线观看| 91视频在线看| 国产在线不卡一区| 偷拍与自拍一区| 一区二区三区日韩欧美| 亚洲国产成人在线| 久久久精品tv| 26uuu亚洲婷婷狠狠天堂| 欧美乱妇20p| 欧美高清视频一二三区| 91亚洲精品久久久蜜桃| 不卡一区二区三区四区| 国产成人亚洲精品青草天美| 九九九久久久精品| 久久99久久99精品免视看婷婷| 亚洲18色成人| 日韩黄色免费网站| 久久精品久久综合| 免费亚洲电影在线| 久久国产精品99精品国产| 另类成人小视频在线| 免费在线观看视频一区| 久久99久久99小草精品免视看| 老司机精品视频线观看86| 极品少妇xxxx精品少妇| 国产精品一卡二卡| av不卡免费在线观看| 色哟哟一区二区在线观看| 欧美人伦禁忌dvd放荡欲情| 欧美一区二区三区成人| 欧美xxxxxxxx| 亚洲男同性恋视频| 免费精品99久久国产综合精品| 国产精品99精品久久免费| 色婷婷国产精品久久包臀| 欧美一区二区三区在线观看| 国产免费观看久久| 日本女优在线视频一区二区| 精久久久久久久久久久| 色综合天天做天天爱| 精品国产区一区| 亚洲国产aⅴ天堂久久| 国产a精品视频| 69堂精品视频| 亚洲精品一二三区| 国产一区二区91| 欧美日韩成人综合在线一区二区| 久久女同精品一区二区| 一区二区三区高清| www.日韩精品| 国产婷婷色一区二区三区四区| 亚洲h动漫在线| 欧美色图在线观看| 亚洲柠檬福利资源导航| aaa欧美日韩| 国产精品久久久久影院老司| 国产一区二区免费视频| 日韩欧美不卡在线观看视频| 亚洲第四色夜色| 欧美日韩综合不卡| 亚洲国产毛片aaaaa无费看 | 欧美电影免费观看高清完整版在 | 亚洲一区在线视频观看| 91欧美一区二区| 亚洲免费电影在线|