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

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

?? internet.cpp

?? 著名的防火墻源代碼
?? CPP
字號:
//=============================================================================================
/*
	文件:		Internet.cpp

	說明:
	---------------------------------------------------
		網絡數據傳輸操作,用來完成用戶注冊信息的上載和
	網絡命令的下載。
	---------------------------------------------------

	工程:		Xfilter 個人防火墻
	作者:		朱雁輝,朱雁冰
	創建日期:	2001/08/26
	網址:		http://www.xfilt.com
	電子郵件:	xstudio@xfilt.com
	版權所有 (c) 2001-2002 X 工作室

	警告:
	---------------------------------------------------
		本電腦程序受著作權法的保護。未經授權,不能使用
	和修改本軟件全部或部分源代碼。凡擅自復制、盜用或散
	布此程序或部分程序或者有其它任何越權行為,將遭到民
	事賠償及刑事的處罰,并將依法以最高刑罰進行追訴。
	
		凡通過合法途徑購買本軟件源代碼的用戶被默認授權
	可以在自己的程序中使用本軟件的部分代碼,但作者不對
	代碼產生的任何后果負責。
	
		使用了本軟件代碼的程序只能以可執行文件形式發布,
	未經特別許可,不能將含有本軟件源代碼的源程序以任何
	形式發布。
	---------------------------------------------------	
*/
//=============================================================================================

#include "stdafx.h"

#include "..\guires.h"
#include "..\Property.h"		// in the header #include "internet.h"
#include "..\Register.h"

const TCHAR szHeaders[] =
	_T("Accept: text/*\r\nUser-Agent: XFILTER\r\n");

extern CAclFile		m_AclFile;
extern CPropertyApp theApp;

CHttpRequest::CHttpRequest()
{
	m_pUrlRequest[0]		= '\0';
	m_DownloadThread		= NULL;
	m_UploadThread			= NULL;
	m_IsUploaded			= TRUE;
	lCommandId				= NULL;
	m_IsConnecting			= FALSE;
}

CHttpRequest::~CHttpRequest()
{
	Close();
}

int CHttpRequest::ConnectUrl(TCHAR *sUrl, TCHAR *sReturn, long *lVersion, int *Count)
{
	ODS(_T("XFILTER.EXE: GetFromUrl Begin... "));
	
	if(sUrl == NULL)
		return XERR_INVALID_PARAMETER;

	CString			strServerName;
	CString			strObject;
	INTERNET_PORT	nPort;
	DWORD			dwServiceType;

	if (!AfxParseURL(sUrl, dwServiceType, strServerName, strObject, nPort) ||
		dwServiceType != INTERNET_SERVICE_HTTP)
	{
		ODS(_T("XFILTER.EXE: Internet Invalid Url ..."));
		return XERR_INTERNET_URL_ERROR;
	}

	CInternetSession	session(GUI_APP_CLASS_NAME);
	CHttpConnection		*pServer	= NULL;
	CHttpFile			*pFile		= NULL;
	int					iRet		= XERR_SUCCESS;

	m_IsConnecting = TRUE;

	try
	{
		pServer = session.GetHttpConnection(strServerName, nPort);
		pFile	= pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET, strObject);

		pFile->AddRequestHeaders(szHeaders);
		pFile->SendRequest();

		DWORD	dwRet;
		pFile->QueryInfoStatusCode(dwRet);

		if (dwRet >= 400 && dwRet <= 499)
		{
			ODS(_T("XFILTER.EXE: Internet Request Error ..."));
			iRet = XERR_INTERNET_REQUEST_ERROR;
		}
		else if(dwRet >= 500 && dwRet <= 599)
		{
			ODS(_T("XFILTER.EXE: Internet Server Error ..."));
			iRet = XERR_INTERNET_SERVER_ERROR;
		}
		else if(sReturn != NULL)
		{
			pFile->ReadString(sReturn, MAX_NET_COMMAND_LENTH - 1);
			ODS(sReturn);

			CString tmpStr	= sReturn;
			long lVer		= atol(tmpStr.Left(MAX_NET_COMMAND_VERSION_LENTH));

			if(lVer > *lVersion)
			{
				*lVersion = lVer;
				int		i = 1;

				while (i < MAX_NET_COMMAND
					&& pFile->ReadString((sReturn + MAX_NET_COMMAND_LENTH * i), MAX_NET_COMMAND_LENTH - 1))
				{
					ODS(sReturn + i * MAX_NET_COMMAND_LENTH);
					i ++;
				}
				*Count = i;
			}
		}
		else
		{
			CString sRet;
			pFile->ReadString(sRet);
			if(sRet.GetAt(0) != '1')
				iRet = XERR_INTERNET_REG_ERROR;

			ODS2(_T("XFILTER.EXE: Internet User Register Return Value "),sRet);
		}

		pFile->Close();
		pServer->Close();
	}
	catch(CInternetException* pEx)
	{

#if _DEBUG
		TCHAR sError[1024];
		pEx->GetErrorMessage(sError, 1024);
		ODS(sError);
#endif
		pEx->Delete();
		iRet = XERR_INTERNET_CONNECT_ERROR;
	}

	if (pFile != NULL)
		delete pFile;
	if (pServer != NULL)
		delete pServer;
	session.Close();

	m_IsConnecting = FALSE;

	ODS(_T("XFILTER.EXE: GetFromUrl End... "));
	return iRet;
}

void CHttpRequest::Close()
{
	if(lCommandId != NULL)
	{
		delete lCommandId;
		lCommandId = NULL;
	}

	if(m_UploadThread != NULL)
	{
		TerminateThread(m_UploadThread, 0);
		m_UploadThread = NULL;
	}

	if(m_DownloadThread != NULL)
	{
		TerminateThread(m_DownloadThread, 0);
		m_DownloadThread = NULL;
	}

	ODS(_T("XFILTER.EXE: Internet Close free lCommandId and exit thread..."));
}

BOOL CHttpRequest::IsConnected()
{
	ODS(_T("XFILTER.EXE: Internet Check Connected..."));

    RASCONN			lpRasConn ;
	RASCONNSTATUS	rasStatus;     
	DWORD			cbBuf = 0;     
	DWORD			cConn = 0;     
	DWORD			dwRet = 0; 
	cbBuf				= sizeof(RASCONN);
	lpRasConn.dwSize	= sizeof(RASCONN );
	dwRet = RasEnumConnections(&lpRasConn, &cbBuf, &cConn );
	if ( dwRet != 0 )   
		return FALSE;
	else
	{
		rasStatus.dwSize = sizeof(RASCONNSTATUS);
		RasGetConnectStatus(lpRasConn.hrasconn,&rasStatus);
		if (rasStatus.rasconnstate==RASCS_Connected)
			return TRUE;
		else
			return FALSE;
	}
	return TRUE;
}

BOOL CHttpRequest::UserReg()
{
	CRegister dlgReg;

	int iRet = dlgReg.DoModal();

	if(iRet == IDCANCEL)
		return FALSE;
	
	m_UserInfo.iStatus = REG_STATUS_REGISTERING;

	return theApp.m_Install.SaveReg(REG_INFO_ITEM, (BYTE*)&m_UserInfo, sizeof(XUSER_INFO));
}

BOOL CHttpRequest::InitRegister()
{
	if(m_AclFile.mAclHeader.sSignature[0] == '\0' || m_AclFile.mAclHeader.sWebURL[0] == '\0')
		return FALSE;

	theApp.m_Install.ReadReg(REG_INFO_ITEM, (BYTE*)&m_UserInfo, sizeof(XUSER_INFO));

	if(m_UserInfo.iStatus == REG_STATUS_NO_REGISTER)
	{
		theApp.SetAutoStart();

		if(!UserReg())
			return FALSE;

		m_IsUploaded = PreUpload();
	}
	else if(m_UserInfo.iStatus == REG_STATUS_REGISTERING 
		|| m_UserInfo.iStatus == REG_STATUS_INFO_CHANGED)
		m_IsUploaded = PreUpload();

	return TRUE;
}

BOOL CHttpRequest::PreUpload()
{
	DWORD		dwThreadId;
	DWORD		dwFlags;

	if(!InternetGetConnectedState(&dwFlags, 0))
		return FALSE;

	SetRegisterUrl();
	m_UploadThread = ::CreateThread(NULL, 0, UploadUserInfo, 0, 0, &dwThreadId);

	return TRUE;
}

void CHttpRequest::SetRegisterUrl()
{
	CString		tmpStr;

	tmpStr.Format(
		_T("%s?sEmail=%s&sName=%s&bGender=%u&sQQ=%s&sInc=%s&sBirthday=%s&bDegree=%u&bMetier=%u&sDuty=%s&sZip=%s&bSalary=%u&sAddress=%s&iProductId=%u&sPassword=%s")
		, m_AclFile.mAclHeader.sUserRegisterURL
		, m_UserInfo.sEmail
		, m_UserInfo.sName
		, m_UserInfo.bGender 
		, m_UserInfo.sQQ 
		, m_UserInfo.sInc
		, m_UserInfo.tBirthday.Format("%Y-%m-%d")
		, m_UserInfo.bDegree 
		, m_UserInfo.bMetier
		, m_UserInfo.sDuty 
		, m_UserInfo.sZip  
		, m_UserInfo.bSalary 
		, m_UserInfo.sAddress
		, m_AclFile.mAclHeader.uiSerial
		, m_UserInfo.sPassword 
		);

	_tcscpy(m_pUrlRequest, tmpStr);

	ODS(tmpStr);
}

BOOL CHttpRequest::InitNetCommand()
{
	if(m_AclFile.mAclHeader.sSignature[0] == '\0' 
		|| m_AclFile.mAclHeader.sCommandURL[0] == '\0')
		return FALSE;

	DWORD		dwThreadId;
	theApp.m_Install.ReadReg(REG_NET_COMMAND_HEADER_ITEM, (BYTE*)&m_CommandHeader, sizeof(XNET_COMMAND_HEADER));
	
	if(m_AclFile.mAclHeader.bUpdateInterval > 100)
		return TRUE;

	if(m_AclFile.mAclHeader.bUpdateInterval == 0 
		|| m_CommandHeader.tCheckTime == 0
		|| (CTime::GetCurrentTime() - m_CommandHeader.tCheckTime) 
		>= ACL_MAX_TIME * m_AclFile.mAclHeader.bUpdateInterval) 
	{
		m_DownloadThread = ::CreateThread(NULL, 0, DownloadCommandFile, 0, 0, &dwThreadId);
	}

	return TRUE;
}

DWORD WINAPI DownloadCommandFile(LPVOID pVoid)
{
	if(m_AclFile.mAclHeader.sCommandURL[0] == '\0')
		return 0;
	
	BOOL			IsSuccess	= FALSE;
	BOOL			IsAclChange = FALSE;
	int				iCount		= 0;
	int				tmpCount	= 0;
	TCHAR			sCommand[MAX_NET_COMMAND][MAX_NET_COMMAND_LENTH];

	if(theApp.m_DownloadCommand.m_CommandHeader.lCount > 0)
	{
		theApp.m_DownloadCommand.lCommandId = new long[theApp.m_DownloadCommand.m_CommandHeader.lCount];
		theApp.m_Install.ReadReg(REG_NET_COMMAND_ITEM
			, (BYTE*)theApp.m_DownloadCommand.lCommandId, sizeof(long) * theApp.m_DownloadCommand.m_CommandHeader.lCount);
	}

	while(!IsSuccess)
	{
		if(++iCount > 3)
			break;

		if(theApp.m_DownloadCommand.ConnectUrl(m_AclFile.mAclHeader.sCommandURL
			, (TCHAR*)sCommand, &theApp.m_DownloadCommand.m_CommandHeader.lVersion,&tmpCount) != XERR_SUCCESS)
		{
			Sleep(180000);
			continue;
		}

		if(tmpCount <= 1)
			break;

		CString		tmpStr;
		long		tmpLong;

		for(int i = 1; i < tmpCount; i++)
		{
			tmpStr	= sCommand[i];
			tmpLong = atol(tmpStr.Left(MAX_NET_COMMAND_VERSION_LENTH));

			for(int j = 0; j < theApp.m_DownloadCommand.m_CommandHeader.lCount; j++)
			{
				if(tmpLong == theApp.m_DownloadCommand.lCommandId [j])
					break;
			}

			if(j < theApp.m_DownloadCommand.m_CommandHeader.lCount)
				continue;

			long *pLong = NULL;

			if(theApp.m_DownloadCommand.m_CommandHeader.lCount > 0)
			{
				pLong = new long[theApp.m_DownloadCommand.m_CommandHeader.lCount];
				memcpy(pLong, theApp.m_DownloadCommand.lCommandId, sizeof(long) * theApp.m_DownloadCommand.m_CommandHeader.lCount);
				free(theApp.m_DownloadCommand.lCommandId);
			}

			theApp.m_DownloadCommand.lCommandId = new long[theApp.m_DownloadCommand.m_CommandHeader.lCount + 1];

			if(theApp.m_DownloadCommand.m_CommandHeader.lCount > 0)
			{
				memcpy(theApp.m_DownloadCommand.lCommandId, pLong, sizeof(long) * theApp.m_DownloadCommand.m_CommandHeader.lCount);
				free(pLong);
			}

			theApp.m_DownloadCommand.lCommandId[theApp.m_DownloadCommand.m_CommandHeader.lCount] = tmpLong;
			theApp.m_DownloadCommand.m_CommandHeader.lCount ++;

			int iCommand	= atoi(tmpStr.Mid(MAX_NET_COMMAND_VERSION_LENTH + 1
								, MAX_NET_COMMAND_COMMAND_LENTH));
			CString sMessage= tmpStr.Mid(MAX_NET_COMMAND_VERSION_LENTH 
								+ MAX_NET_COMMAND_COMMAND_LENTH + 2);

			sMessage.Replace(13, '\0');
			sMessage.Replace(10, '\0');

			if(sMessage.GetAt(0) == '\0')
				break;
			
			BYTE bInterval;

			switch(iCommand)
			{
			case NET_COMMAND_CHANGE_WEB_STATION_URL:
				if(sMessage.CompareNoCase(m_AclFile.mAclHeader.sWebURL) == 0)
					break;
				_tcscpy(m_AclFile.mAclHeader.sWebURL, sMessage);
				IsAclChange = TRUE;
				break;

			case NET_COMMAND_CHANGE_NET_COMMAND_URL:
				if(sMessage.CompareNoCase(m_AclFile.mAclHeader.sCommandURL) == 0)
					break;
				_tcscpy(m_AclFile.mAclHeader.sCommandURL, sMessage);
				IsAclChange = TRUE;
				break;

			case NET_COMMAND_CHANGE_USER_REGISTER_URL:
				if(sMessage.CompareNoCase(m_AclFile.mAclHeader.sUserRegisterURL) == 0)
					break;
				_tcscpy(m_AclFile.mAclHeader.sUserRegisterURL, sMessage);
				IsAclChange = TRUE;
				break;

			case NET_COMMAND_CHANGE_EMAIL_ADDRESS:	
				if(sMessage.CompareNoCase(m_AclFile.mAclHeader.sEmail) == 0)
					break;
				_tcscpy(m_AclFile.mAclHeader.sEmail, sMessage);
				IsAclChange = TRUE;
				break;

			case NET_COMMAND_CHANGE_UPDATE_INTERVAL_DAYS:
				bInterval	= BYTE(atoi(sMessage));
				if(bInterval== m_AclFile.mAclHeader.bUpdateInterval)
					break;
				m_AclFile.mAclHeader.bUpdateInterval = bInterval;
				IsAclChange	= TRUE;
				break;

			case NET_COMMAND_CHANGE_POST_MESSAGE:
				_tcscpy(theApp.m_sMessage[i], sMessage);
				::SendMessage(theApp.m_pMainWnd->m_hWnd, WM_NET_MESSAGE, i, NULL);
				break;

			default:
				break;
			}
		}

		theApp.m_DownloadCommand.m_CommandHeader.tCheckTime = CTime::GetCurrentTime();

		theApp.m_Install.SaveReg(REG_NET_COMMAND_HEADER_ITEM, 
			(BYTE*)&theApp.m_DownloadCommand.m_CommandHeader, sizeof(XNET_COMMAND_HEADER));

		theApp.m_Install.SaveReg(REG_NET_COMMAND_ITEM, (BYTE*)theApp.m_DownloadCommand.lCommandId
			, sizeof(long) * theApp.m_DownloadCommand.m_CommandHeader.lCount);

		if(IsAclChange)
			m_AclFile.SaveAcl();

		IsSuccess = TRUE;

		break;
	}

	if(theApp.m_DownloadCommand.lCommandId != NULL)
	{
		delete theApp.m_DownloadCommand.lCommandId;
		theApp.m_DownloadCommand.lCommandId = NULL;
	}

	return 0;
}

DWORD WINAPI UploadUserInfo(LPVOID pVoid)
{
	if(theApp.m_RegisterRequest.m_pUrlRequest[0] == '\0')
		return 0;

	BOOL	IsUploaded	= FALSE;
	BOOL	IsSaved		= FALSE;
	int		iCount		= 0;

	while(!IsUploaded || !IsSaved)
	{
		if(++iCount > 3)
			break;

		if(!IsUploaded && theApp.m_RegisterRequest.ConnectUrl(
			theApp.m_RegisterRequest.m_pUrlRequest
			) == XERR_SUCCESS)
		{
			theApp.m_RegisterRequest.m_UserInfo.iStatus = REG_STATUS_REGISTERED;
			IsUploaded = TRUE;
		}

		if(theApp.m_Install.SaveReg(REG_INFO_ITEM, (BYTE*)&theApp.m_RegisterRequest.m_UserInfo, sizeof(XUSER_INFO)))
		{
			IsSaved = TRUE;
			break;
		}
		
		Sleep(180000);
	}

	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费三区一区二区| 在线电影一区二区三区| 国产成人av影院| 在线观看免费一区| 婷婷久久综合九色综合伊人色| 日韩欧美在线网站| 国产乱妇无码大片在线观看| 日韩av一区二区在线影视| 91丨porny丨中文| 精品亚洲成a人| 国产suv精品一区二区三区| 国产精品一区二区x88av| 成人av第一页| 91精品在线免费观看| 久久在线观看免费| 国产丝袜美腿一区二区三区| 精品福利一区二区三区免费视频| 日韩免费一区二区| 日韩欧美一区二区在线视频| wwww国产精品欧美| 亚洲特黄一级片| 久久国产精品免费| 在线观看日韩一区| 久久精品视频在线看| 一区二区久久久久| 国产激情一区二区三区桃花岛亚洲| 成人18精品视频| 91精品在线观看入口| 中文字幕不卡在线| 亚洲bt欧美bt精品777| 国产精品白丝jk黑袜喷水| 欧美亚洲日本国产| 亚洲自拍偷拍综合| 成人性视频网站| www亚洲一区| 男人的j进女人的j一区| 欧美三日本三级三级在线播放| 国产蜜臀av在线一区二区三区| 狠狠久久亚洲欧美| 久久这里只有精品6| 精品午夜久久福利影院| 日韩欧美国产综合| 蜜臀va亚洲va欧美va天堂 | 亚洲欧洲99久久| 国产99精品视频| 精品理论电影在线| 精品在线观看视频| 欧美成人精品二区三区99精品| 天天射综合影视| 精品国产亚洲在线| 高清国产午夜精品久久久久久| 高清久久久久久| 久久久久久久久久久黄色| 国产99久久久国产精品| 亚洲三级视频在线观看| 欧美日韩mp4| 国产精品中文字幕日韩精品 | 日韩精品亚洲专区| 国产日韩欧美精品电影三级在线| caoporn国产精品| 美女在线观看视频一区二区| 日韩一区欧美一区| 欧美美女bb生活片| 国产乱码字幕精品高清av | 国产99久久久精品| 精品福利视频一区二区三区| 亚洲一区二区三区中文字幕在线 | 欧美日韩精品电影| 亚洲精品在线观看网站| 亚洲国产美国国产综合一区二区| 精品视频一区二区不卡| 精品亚洲porn| 精品一区二区国语对白| 亚洲高清不卡在线观看| 欧美一级二级三级乱码| 不卡欧美aaaaa| 国产精品一卡二| 美女视频黄免费的久久| 午夜激情久久久| 亚洲大片精品永久免费| 亚洲午夜久久久久久久久电影网| 欧美成人精品高清在线播放| 在线播放视频一区| 欧美性一二三区| 色综合久久中文综合久久97| 国产a视频精品免费观看| 国内精品伊人久久久久av一坑| 亚洲成人av在线电影| 亚洲日本中文字幕区| 亚洲摸摸操操av| 亚洲一区二区三区小说| 亚洲国产精品久久久久秋霞影院| 国产精品精品国产色婷婷| 久久精品视频一区| 久久久国产精品不卡| 国产日韩欧美亚洲| 亚洲视频精选在线| 亚洲国产精品一区二区尤物区| 亚洲成人精品一区| 国产精品夜夜嗨| 欧美视频一区二| 欧美在线小视频| 69p69国产精品| 久久久午夜精品理论片中文字幕| 国产免费久久精品| 亚洲激情校园春色| 久久se这里有精品| 在线日韩国产精品| 欧美成人三级在线| 久久久国产精品不卡| 洋洋成人永久网站入口| 日韩av不卡一区二区| 不卡一区二区中文字幕| 日韩精品中文字幕在线一区| 亚洲欧洲在线观看av| 国产一区二区视频在线| 欧美日韩mp4| 亚洲区小说区图片区qvod| 理论片日本一区| 5月丁香婷婷综合| 亚洲宅男天堂在线观看无病毒| 经典三级一区二区| 26uuu国产一区二区三区| 丝袜美腿亚洲一区| 欧美色视频一区| 亚洲精品国产精品乱码不99| 国产一区二区免费看| 久久精品亚洲国产奇米99| 老鸭窝一区二区久久精品| 日韩一区二区影院| 午夜av一区二区| 欧美一区二视频| 日本不卡高清视频| 日韩欧美综合在线| 视频一区二区中文字幕| 69精品人人人人| 蜜臀久久99精品久久久久宅男| 欧美一区二区免费观在线| 久久精品国产999大香线蕉| 日韩免费在线观看| 国产精品18久久久久久久久 | 538在线一区二区精品国产| 亚洲成在人线免费| 日韩一区二区三区电影| 韩国毛片一区二区三区| 中文字幕高清一区| 欧美专区亚洲专区| 韩国女主播一区二区三区| 国产精品久久毛片a| 欧洲一区在线观看| 国产专区综合网| 亚洲香肠在线观看| 国产女主播在线一区二区| 色播五月激情综合网| 天天爽夜夜爽夜夜爽精品视频| 精品国产露脸精彩对白 | 欧美成人a在线| 欧美日韩中文字幕一区二区| 久久99精品国产.久久久久| 亚洲视频在线观看三级| 精品国产乱码久久久久久图片| a4yy欧美一区二区三区| 香蕉影视欧美成人| 一区二区三区四区不卡视频| 久久久欧美精品sm网站| 在线成人免费视频| 在线观看www91| 99re成人精品视频| 成人高清视频免费观看| 成人在线综合网站| 国产精品12区| 国产大陆精品国产| 国产剧情一区在线| 国产成人午夜精品5599| 国产精品影音先锋| 精品一区二区三区免费观看| 五月天丁香久久| 视频一区二区国产| 亚洲成人一区在线| 日一区二区三区| 国产资源精品在线观看| 国产福利视频一区二区三区| 狠狠色狠狠色综合| 国产成人精品免费一区二区| 99精品欧美一区二区三区综合在线| 国产成人8x视频一区二区 | 欧美午夜理伦三级在线观看| 一本一道波多野结衣一区二区| 在线影院国内精品| 欧美电视剧免费全集观看| 国产精品私人自拍| 亚洲欧美日韩成人高清在线一区| 18欧美亚洲精品| 日韩精品五月天| 国产 日韩 欧美大片| 91精彩视频在线| 26uuu国产一区二区三区 | 国产福利不卡视频| 在线观看日韩国产| 26uuu精品一区二区三区四区在线|