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

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

?? xtunnelsauthentication.cpp

?? xtunnel nat/fw traversal source code
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/*	File:       XTunnelsDatabaseAccess.cp	Contains:   The X-Tunnels server's database name/IP validation routines.	Copyright:  (c) 2003 by Xten Networks, Inc., all rights reserved.*/#if DEBUG#include <iostream>#endif //DEBUG#include <sstream>#include <vector>#include <map>#include <algorithm>#include <stdio.h>#include <limits.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include <errno.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>//#include <sys/types.h>#include <netinet/in.h>#if VS_TARGET_OS_OPENBSD// -- need a fully qualified path for the makefile built version#include </usr/local/pgsql/include/libpq-fe.h>#else#include <libpq-fe.h> #endif // VS_TARGET_OS_OPENBSD#include "restart.h"#include "uiciname.h"#include "XTunnelsCVsDES.h"#include "XTunnelsCVsAES.h"#include "XTunnelsProtocol.h"#include "XTunnelsFamilyData.h"#include "XTunnelsChildData.h"#include "XTunnelsParentData.h"#include "XTunnelsXCipher.h"#if DEBUGusing std::cout;using std::endl;#endif //DEBUGusing std::istrstream;using std::ostrstream;using std::ostream;using std::vector;using std::map;using std::pair;using namespace XTunnels;namespace {// filename containing runtime optionsconst char* g_szConfigFileName = "xtunnels.cfg";// server runtime optionsconst char* g_szConfigFileLineListenPort = "listenport=";const char* g_szConfigFileLineMaxClients = "maxclients=";// X-Cipher optionsconst char* g_szConfigFileLineXCipherEnabled = "xcipherenabled=";const char* g_szConfigFileLineXCipherGlobal = "xcipherglobal=";const char* g_szConfigFileLineXCipherHost = "xcipherhost=";const char* g_szConfigFileLineXCipherPassword = "xcipherpassword=";// PostgreSQL connection string optionsconst char* g_szConfigFileLineDBHost = "host=";const char* g_szConfigFileLineDBPort = "port=";const char* g_szConfigFileLineDBUsername = "user=";const char* g_szConfigFileLineDBPassword = "password=";const char* g_szConfigFileLineDBName = "dbname=";char g_szDBHost[EMaxSmallBufferSize] = { 0 };char g_szDBPort[EMaxSmallBufferSize] = { 0 };char g_szDBUsername[EMaxSmallBufferSize] = { 0 };char g_szDBPassword[EMaxSmallBufferSize] = { 0 };char g_szDBName[EMaxSmallBufferSize] = { 0 };// how to connect to a PostgreSQL serverPGconn* g_pDBConnection = NULL;// we cache rules from database at startup and on updatetypedef struct   {   char* m_szHost;   int m_iRuleType;   in_addr_t m_ulFromIP;   in_addr_t m_ulToIP;   } THostRule;vector<THostRule> g_cHostSourceRules;vector<THostRule> g_cHostDestinationRules;// keep track of data size by validated destinationtypedef struct   {   unsigned long m_ulIncomingTraffic;   unsigned long m_ulOutgoingTraffic;   } TDestinationTraffic;//map<unsigned long, unsigned long> g_cDestinationIPs;map<unsigned long, TDestinationTraffic> g_cDestinationIPs;int GetPeerFromSocket(int inAttemptingSocket, struct sockaddr_in* outAttempter, char outName[MAX_CANON])	{	socklen_t len = sizeof(struct sockaddr_in);	int retval = 0;	while ( ((retval = getpeername(inAttemptingSocket, (struct sockaddr *)outAttempter, &len)) == -1) && (errno == EINTR) )		{		}	if (-1 == retval)		{#if DEBUG		cout << "X-Tunnels: GetPeerFromSocket failed to get connector's socket IP" << endl;#endif //DEBUG		return 1;		}			if (outName)		addr2name(outAttempter->sin_addr, outName, MAX_CANON);		return 0;	}bool IsIPInRange(in_addr_t tAddr, in_addr_t tMinAddr, in_addr_t tMaxAddr)   {   if (ntohl(tAddr) < ntohl(tMinAddr))      {#if DEBUG      cout << "IsIPInRange: " << ntohl(tAddr) << " < " << ntohl(tMinAddr) << " -- returning false!" << endl;#endif //DEBUG      return false;      }   if (ntohl(tAddr) > ntohl(tMaxAddr))      {#if DEBUG      cout << "IsIPInRange: " << ntohl(tAddr) << " > " << ntohl(tMaxAddr) << " -- returning false!" << endl;#endif //DEBUG      return false;      }#if DEBUG   cout << "IsIPInRange: " << ntohl(tMinAddr) << " < "  << ntohl(tAddr) << " < " << ntohl(tMaxAddr) << " -- returning true!" << endl;#endif //DEBUG   return true;   }bool VerifyConnectingIPIsRejected(struct in_addr tAddr, const char* szHost)   {   for (vector<THostRule>::const_iterator iter = g_cHostSourceRules.begin(); iter != g_cHostSourceRules.end(); ++iter)      {      if (strcmp(iter->m_szHost, szHost))         continue;               switch (iter->m_iRuleType)         {         case ERuleDenyConnection:            if (IsIPInRange(tAddr.s_addr, iter->m_ulFromIP, iter->m_ulToIP))               return true;            break;         default:            break;         }      }      	return false;   }   bool VerifyConnectingIPIsPermitted(struct in_addr tAddr, const char* szHost, bool bAnonymously)	{#if DEBUG   struct in_addr tFromAddr;   struct in_addr tToAddr;#endif //DEBUG   /* we're going to load rules for all hosts as a set   if (!LoadRulesIfNeeded(szHost))      {      return false;      }      */      	bool bOnlyRuleExists = false;   for (vector<THostRule>::const_iterator iter = g_cHostSourceRules.begin(); iter != g_cHostSourceRules.end(); ++iter)      {      if (strcmp(iter->m_szHost, szHost))         continue;               switch (iter->m_iRuleType)         {         case ERuleAcceptConnection:            bOnlyRuleExists = true;            if (bAnonymously)               break;#if DEBUG/*		      cout << "X-Tunnels: VerifyConnectingIPIsPermitted checking ERuleAcceptConnection:" << endl;		      cout << "connecting in_addr: " << ntohl(tAddr.s_addr) << " (" << inet_ntoa(tAddr) << ") " << endl;		      tFromAddr.s_addr = iter->m_ulFromIP;		      cout << "   minimum in_addr: " << ntohl(iter->m_ulFromIP) << " (" << inet_ntoa(tFromAddr) << ") " << endl;		      tToAddr.s_addr = iter->m_ulToIP;		      cout << "   maximum in_addr: " << ntohl(iter->m_ulToIP) << " (" << inet_ntoa(tToAddr) << ") " << endl;*/#endif //DEBUG            if (IsIPInRange(tAddr.s_addr, iter->m_ulFromIP, iter->m_ulToIP))               {#if DEBUG		         cout << "   connecting was in range -- returning true!" << endl;#endif //DEBUG               return true;               }#if DEBUG		      cout << "   connecting was not in range -- looking for more rules" << endl;#endif //DEBUG            break;         case ERuleAcceptAnonymousConnection:            if (!bAnonymously)               break;#if DEBUG		      cout << "X-Tunnels: VerifyConnectingIPIsPermitted checking ERuleAcceptAnonymousConnection:" << endl;		      cout << "connecting in_addr: " << ntohl(tAddr.s_addr) << " (" << inet_ntoa(tAddr) << ") " << endl;		      tFromAddr.s_addr = iter->m_ulFromIP;		      cout << "   minimum in_addr: " << ntohl(iter->m_ulFromIP) << " (" << inet_ntoa(tFromAddr) << ") " << endl;		      tToAddr.s_addr = iter->m_ulToIP;		      cout << "   maximum in_addr: " << ntohl(iter->m_ulToIP) << " (" << inet_ntoa(tToAddr) << ") " << endl;#endif //DEBUG            if (IsIPInRange(tAddr.s_addr, iter->m_ulFromIP, iter->m_ulToIP))               {#if DEBUG		         cout << "   connecting was in range -- returning true!" << endl;#endif //DEBUG               return true;               }#if DEBUG		      cout << "   connecting was not in range -- looking for more rules" << endl;#endif //DEBUG            break;         case ERuleDenyConnection:#if DEBUG		      cout << "X-Tunnels: VerifyConnectingIPIsPermitted checking ERuleDenyConnection:" << endl;		      cout << "connecting in_addr: " << ntohl(tAddr.s_addr) << " (" << inet_ntoa(tAddr) << ") " << endl;		      tFromAddr.s_addr = iter->m_ulFromIP;		      cout << "   minimum in_addr: " << ntohl(iter->m_ulFromIP) << " (" << inet_ntoa(tFromAddr) << ") " << endl;		      tToAddr.s_addr = iter->m_ulToIP;		      cout << "   maximum in_addr: " << ntohl(iter->m_ulToIP) << " (" << inet_ntoa(tToAddr) << ") " << endl;#endif //DEBUG            if (IsIPInRange(tAddr.s_addr, iter->m_ulFromIP, iter->m_ulToIP))               {#if DEBUG		         cout << "   connecting was in range -- returning false!" << endl;#endif //DEBUG               return false;               }#if DEBUG		      cout << "   connecting was not in range -- looking for more rules" << endl;#endif //DEBUG            break;         //case ERuleOnlyTransmitTo:         default:            // not applicable#if DEBUG		      cout << "X-Tunnels: VerifyConnectingIPIsPermitted unknown rule type " << iter->m_iRuleType << endl;#endif //DEBUG            break;         }      }   bool bAcceptWithoutRule = !bAnonymously && !bOnlyRuleExists;   // if we didn't see any only rules, accept anything.   // if we did, exclude all others#if DEBUG   cout << "X-Tunnels: VerifyConnectingIPIsPermitted found no applicable rules, returning " << (bAcceptWithoutRule ? "true!" : "false!") << endl;#endif //DEBUG	return bAcceptWithoutRule;	}} // end anonymous namespacenamespace XTunnels {unsigned long GetUniqueDestinations()   {   return g_cDestinationIPs.size();   }   void GetDestinationsTraffic(unsigned long ulCount, TDestinationInfo* pInfo)   {   memset(pInfo, 0, ulCount * sizeof(TDestinationInfo));   if (!ulCount)      return;	ulCount--; // we'll fill in array from the end	//for (map<unsigned long,unsigned long>::const_iterator pIter = g_cDestinationIPs.begin(); pIter != g_cDestinationIPs.end(); ++pIter)	for (map<unsigned long,TDestinationTraffic>::const_iterator pIter = g_cDestinationIPs.begin(); pIter != g_cDestinationIPs.end(); ++pIter)	   {	   pInfo[ulCount].m_ulIPAddress = pIter->first;	   pInfo[ulCount].m_ulIncomingTraffic = pIter->second.m_ulIncomingTraffic;	   pInfo[ulCount].m_ulOutgoingTraffic = pIter->second.m_ulOutgoingTraffic;	   if (!ulCount)	      return;	   ulCount--;	   }   }bool LogDestinationIPIncomingTraffic(unsigned long ulDestinationIP, unsigned long ulPacketSize)   {	// always true if no active database   if (!g_pDBConnection)      return true;	//map<unsigned long, unsigned long>::iterator pIter = g_cDestinationIPs.find(ulDestinationIP);	map<unsigned long, TDestinationTraffic>::iterator pIter = g_cDestinationIPs.find(ulDestinationIP);	if (pIter != g_cDestinationIPs.end())      {      pIter->second.m_ulIncomingTraffic += ulPacketSize;      return true;      }	   //pair<unsigned long, unsigned long> cNewEntry(ulDestinationIP, ulPacketSize);   TDestinationTraffic tTraffic;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品av| 综合激情成人伊人| 亚洲色大成网站www久久九九| 亚洲一区免费观看| 国产大陆亚洲精品国产| 欧美色倩网站大全免费| 国产精品乱码人人做人人爱 | 狠狠色综合播放一区二区| 色婷婷综合久久久久中文一区二区 | 不卡电影一区二区三区| 日韩午夜在线影院| 亚洲丶国产丶欧美一区二区三区| 大桥未久av一区二区三区中文| 欧美成人精品福利| 日产国产高清一区二区三区| 欧美中文字幕一区| 亚洲综合色在线| av影院午夜一区| 亚洲欧洲一区二区在线播放| 国产酒店精品激情| 久久久国际精品| 国产一区二区三区四区五区美女 | 91在线高清观看| 国产精品区一区二区三| 国产一区二区不卡在线| 日韩久久久精品| 精品亚洲国内自在自线福利| 91精品国产欧美日韩| 日韩国产精品久久久久久亚洲| 欧美视频中文字幕| 亚洲18色成人| 欧美一三区三区四区免费在线看 | 爽爽淫人综合网网站| 欧美日韩一区三区| 亚洲一区二区精品视频| 欧美日韩一区二区三区视频| 亚洲制服丝袜一区| 欧美日韩中文字幕一区| 五月天丁香久久| 日韩午夜在线观看视频| 韩国三级中文字幕hd久久精品| 久久综合精品国产一区二区三区| 国产在线精品一区二区三区不卡| 精品剧情v国产在线观看在线| 捆绑紧缚一区二区三区视频| 久久这里只有精品视频网| 国产一区二区精品久久91| 日本一区二区三区电影| 91麻豆产精品久久久久久| 婷婷开心久久网| 久久久不卡网国产精品二区| 国产盗摄一区二区| 一区二区三区国产豹纹内裤在线| 在线观看区一区二| 麻豆视频一区二区| 国产精品久久久久久久久免费樱桃| 91亚洲精华国产精华精华液| 午夜视频一区二区| 精品电影一区二区| 色婷婷久久久久swag精品| 日韩精品成人一区二区在线| 久久久国产精品不卡| 色爱区综合激月婷婷| 日本一区中文字幕| 亚洲国产激情av| 91精品国产福利| 不卡视频免费播放| 免费国产亚洲视频| 亚洲欧洲精品一区二区三区 | 亚洲精品久久久蜜桃| 91麻豆精品国产91| 成人精品视频一区| 日韩**一区毛片| 亚洲人妖av一区二区| 日韩精品一区二区在线| 一本到不卡免费一区二区| 精品在线一区二区三区| 亚洲一区在线观看网站| 欧美国产综合色视频| 欧美一级高清片| 日本韩国欧美国产| 国产成人亚洲精品青草天美| 天堂在线一区二区| 亚洲男人天堂av| 国产日韩欧美综合一区| 91麻豆精品国产91久久久使用方法| av亚洲产国偷v产偷v自拍| 激情图片小说一区| 青青草国产精品97视觉盛宴| 亚洲精品高清在线观看| 国产欧美日韩麻豆91| 精品剧情在线观看| 欧美一区二区三区电影| 欧美午夜理伦三级在线观看| 成人aa视频在线观看| 国产成人一级电影| 国产福利91精品一区二区三区| 蜜桃av一区二区三区电影| 亚洲亚洲精品在线观看| 一区二区三区欧美激情| 中文字幕日韩一区| 国产精品久久毛片av大全日韩| 26uuu亚洲婷婷狠狠天堂| 欧美一区国产二区| 制服丝袜在线91| 欧美精品在线观看播放| 欧美日本一区二区三区| 欧美日韩在线直播| 欧美精品日韩综合在线| 欧美绝品在线观看成人午夜影视| 一本一道久久a久久精品综合蜜臀| 大白屁股一区二区视频| 成人福利在线看| 不卡的av在线播放| 成人高清免费观看| 91视频xxxx| 色av一区二区| 这里只有精品99re| 日韩欧美中文一区| 久久先锋影音av| 国产欧美一区二区在线| 国产精品污污网站在线观看| 国产精品美女视频| 亚洲综合一二三区| 日韩精品午夜视频| 激情五月播播久久久精品| 国产一区二区精品久久91| 成人一区二区三区视频| 99精品视频在线播放观看| 在线精品视频一区二区| 国产精品18久久久久久久网站| 粉嫩嫩av羞羞动漫久久久| 91丨porny丨在线| 欧美日韩免费电影| 精品国产乱码久久久久久1区2区| 国产偷国产偷亚洲高清人白洁| 国产精品色在线观看| 亚洲制服丝袜一区| 国产在线视频精品一区| 91在线小视频| 欧美一区二区三区喷汁尤物| 国产午夜精品在线观看| 亚洲欧美日本韩国| 日韩av中文字幕一区二区三区| 国产成人鲁色资源国产91色综| 一本到不卡精品视频在线观看| 91精品久久久久久蜜臀| 国产精品美女久久福利网站| 爽好久久久欧美精品| 成人视屏免费看| 欧美精品成人一区二区三区四区| 337p粉嫩大胆色噜噜噜噜亚洲| 1024精品合集| 久久se这里有精品| 99久久精品免费看国产免费软件| 欧美一区永久视频免费观看| 亚洲欧洲色图综合| 激情综合五月天| 欧美色成人综合| 欧美激情中文字幕一区二区| 五月激情综合色| 91首页免费视频| 久久久电影一区二区三区| 日韩av电影免费观看高清完整版 | 成人性生交大片免费看中文网站| 欧美亚洲综合久久| 中文字幕欧美激情一区| 日韩av二区在线播放| 在线区一区二视频| 国产精品视频在线看| 久久精品99国产精品日本| 色噜噜偷拍精品综合在线| 国产无遮挡一区二区三区毛片日本| 偷拍日韩校园综合在线| 色偷偷一区二区三区| 久久久久久久网| 美女爽到高潮91| 欧美裸体一区二区三区| 一区二区三区久久久| 不卡大黄网站免费看| 久久久久亚洲蜜桃| 免费在线看成人av| 欧美人伦禁忌dvd放荡欲情| 亚洲精品视频免费看| 99国产欧美久久久精品| 久久久电影一区二区三区| 激情综合色播激情啊| 欧美一区二区私人影院日本| 亚洲一二三四区| 欧美在线小视频| 亚洲综合在线第一页| 在线观看日产精品| 一区二区三区在线视频观看58| 一本色道久久综合亚洲精品按摩| 成人欧美一区二区三区黑人麻豆| 成人综合日日夜夜| 国产精品美女一区二区三区| www.成人网.com| 日韩毛片一二三区| 91捆绑美女网站|