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

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

?? stresstest.cpp

?? PHP v6.0 For Linux 運(yùn)行環(huán)境:Win9X/ WinME/ WinNT/ Win2K/ WinXP
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/* * ======================================================================= * * File: stress .c                                                         * * stress tester for isapi dll's                                           * * based on cgiwrap                                                        * * ======================================================================= * **/#define WIN32_LEAN_AND_MEAN#include <afx.h>#include <afxtempl.h>#include <winbase.h>#include <winerror.h>#include <httpext.h>#include <stdio.h>#include <stdlib.h>#include "getopt.h"// These are things that go out in the Response Header//#define HTTP_VER     "HTTP/1.0"#define SERVER_VERSION "Http-Srv-Beta2/1.0"//// Simple wrappers for the heap APIS//#define xmalloc(s) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (s))#define xfree(s)   HeapFree(GetProcessHeap(), 0, (s))//// The mandatory exports from the ISAPI DLL//DWORD numThreads = 1;DWORD iterations = 1;HANDLE StartNow;// quick and dirty environmenttypedef CMapStringToString TEnvironment;TEnvironment IsapiEnvironment;typedef struct _TResults {	LONG ok;	LONG bad;} TResults;CStringArray IsapiFileList;  // list of filenamesCStringArray TestNames;      // --TEST--CStringArray IsapiGetData;   // --GET--CStringArray IsapiPostData;  // --POST--CStringArray IsapiMatchData; // --EXPECT--CArray<TResults, TResults> Results;typedef struct _TIsapiContext {	HANDLE in;	HANDLE out;	DWORD tid;	TEnvironment env;	HANDLE waitEvent;} TIsapiContext;//// Prototypes of the functions this sample implements//extern "C" {HINSTANCE hDll;typedef BOOL (WINAPI *VersionProc)(HSE_VERSION_INFO *) ;typedef DWORD (WINAPI *HttpExtProc)(EXTENSION_CONTROL_BLOCK *);typedef BOOL (WINAPI *TerminateProc) (DWORD);BOOL WINAPI FillExtensionControlBlock(EXTENSION_CONTROL_BLOCK *, TIsapiContext *) ;BOOL WINAPI GetServerVariable(HCONN, LPSTR, LPVOID, LPDWORD );BOOL WINAPI ReadClient(HCONN, LPVOID, LPDWORD);BOOL WINAPI WriteClient(HCONN, LPVOID, LPDWORD, DWORD);BOOL WINAPI ServerSupportFunction(HCONN, DWORD, LPVOID, LPDWORD, LPDWORD);VersionProc IsapiGetExtensionVersion;HttpExtProc IsapiHttpExtensionProc;TerminateProc TerminateExtensionProc;HSE_VERSION_INFO version_info;}char * MakeDateStr(VOID);char * GetEnv(char *);DWORD CALLBACK IsapiThread(void *);int stress_main(const char *filename, 				const char *arg, 				const char *postfile, 				const char *matchdata);BOOL bUseTestFiles = FALSE;char temppath[MAX_PATH];void stripcrlf(char *line){	DWORD l = strlen(line)-1;	if (line[l]==10 || line[l]==13) line[l]=0;	l = strlen(line)-1;	if (line[l]==10 || line[l]==13) line[l]=0;}#define COMPARE_BUF_SIZE	1024BOOL CompareFiles(const char*f1, const char*f2){	FILE *fp1, *fp2;	bool retval;	char buf1[COMPARE_BUF_SIZE], buf2[COMPARE_BUF_SIZE];	int length1, length2;	if ((fp1=fopen(f1, "r"))==NULL) {		return FALSE;	}	if ((fp2=fopen(f2, "r"))==NULL) {		fclose(fp1);		return FALSE;	}	retval = TRUE; // success oriented	while (true) {		length1 = fread(buf1, 1, sizeof(buf1), fp1);		length2 = fread(buf2, 1, sizeof(buf2), fp2);		// check for end of file		if (feof(fp1)) {			if (!feof(fp2)) {				retval = FALSE;			}			break;		} else if (feof(fp2)) {			if (!feof(fp1)) {				retval = FALSE;			}			break;		}		// compare data		if (length1!=length2			|| memcmp(buf1, buf2, length1)!=0) {			retval = FALSE;			break;		}	}	fclose(fp1);	fclose(fp2);	return retval;}BOOL CompareStringWithFile(const char *filename, const char *str, unsigned int str_length){	FILE *fp;	bool retval;	char buf[COMPARE_BUF_SIZE];	unsigned int offset=0, readbytes;	fprintf(stderr, "test %s\n",filename);	if ((fp=fopen(filename, "rb"))==NULL) {		fprintf(stderr, "Error opening %s\n",filename);		return FALSE;	}	retval = TRUE; // success oriented	while (true) {		readbytes = fread(buf, 1, sizeof(buf), fp);		// check for end of file		if (offset+readbytes > str_length			|| memcmp(buf, str+offset, readbytes)!=NULL) {			fprintf(stderr, "File missmatch %s\n",filename);			retval = FALSE;			break;		}		if (feof(fp)) {			if (!retval) fprintf(stderr, "File zero length %s\n",filename);			break;		}	}	fclose(fp);	return retval;}BOOL ReadGlobalEnvironment(const char *environment){	if (environment) {	FILE *fp = fopen(environment, "r");	DWORD i=0;	if (fp) {		char line[2048];		while (fgets(line, sizeof(line)-1, fp)) {			// file.php arg1 arg2 etc.			char *p = strchr(line, '=');			if (p) {				*p=0;				IsapiEnvironment[line]=p+1;			}		}		fclose(fp);		return IsapiEnvironment.GetCount() > 0;	}	}	return FALSE;}BOOL ReadFileList(const char *filelist){	FILE *fp = fopen(filelist, "r");	if (!fp) {		printf("Unable to open %s\r\n", filelist);	}	char line[2048];	int i=0;	while (fgets(line, sizeof(line)-1, fp)) {		// file.php arg1 arg2 etc.		stripcrlf(line);		if (strlen(line)>3) {			char *p = strchr(line, ' ');			if (p) {				*p = 0;				// get file				IsapiFileList.Add(line);				IsapiGetData.Add(p+1);			} else {				// just a filename is all				IsapiFileList.Add(line);				IsapiGetData.Add("");			}		}		// future use		IsapiPostData.Add("");		IsapiMatchData.Add("");		TestNames.Add("");		i++;	}	Results.SetSize(TestNames.GetSize());	fclose(fp);	return IsapiFileList.GetSize() > 0;}void DoThreads() {	if (IsapiFileList.GetSize() == 0) {		printf("No Files to test\n");		return;	}	printf("Starting Threads...\n");	// loop creating threads	DWORD tid;	HANDLE *threads = new HANDLE[numThreads];	DWORD i;	for (i=0; i< numThreads; i++) {		threads[i]=CreateThread(NULL, 0, IsapiThread, NULL, CREATE_SUSPENDED, &tid);	}	for (i=0; i< numThreads; i++) {		if (threads[i]) ResumeThread(threads[i]);	}	// wait for threads to finish	WaitForMultipleObjects(numThreads, threads, TRUE, INFINITE);	for (i=0; i< numThreads; i++) {		CloseHandle(threads[i]);	}	delete threads;}void DoFileList(const char *filelist, const char *environment){	// read config files	if (!ReadFileList(filelist)) {		printf("No Files to test!\r\n");		return;	}	ReadGlobalEnvironment(environment);	DoThreads();}/** * ParseTestFile * parse a single phpt file and add it to the arrays */BOOL ParseTestFile(const char *path, const char *fn){	// parse the test file	char filename[MAX_PATH];	_snprintf(filename, sizeof(filename)-1, "%s\\%s", path, fn);	char line[1024];	memset(line, 0, sizeof(line));	CString cTest, cSkipIf, cPost, cGet, cFile, cExpect;	printf("Reading %s\r\n", filename);	enum state {none, test, skipif, post, get, file, expect} parsestate = none;	FILE *fp = fopen(filename, "rb");	char *tn = _tempnam(temppath,"pht.");	char *en = _tempnam(temppath,"exp.");	FILE *ft = fopen(tn, "wb+");	FILE *fe = fopen(en, "wb+");	if (fp && ft && fe) {		while (fgets(line, sizeof(line)-1, fp)) {			if (line[0]=='-') {				if (_strnicmp(line, "--TEST--", 8)==0) {					parsestate = test;					continue;				} else if (_strnicmp(line, "--SKIPIF--", 10)==0) {					parsestate = skipif;					continue;				} else if (_strnicmp(line, "--POST--", 8)==0) {					parsestate = post;					continue;				} else if (_strnicmp(line, "--GET--", 7)==0) {					parsestate = get;					continue;				} else if (_strnicmp(line, "--FILE--", 8)==0) {					parsestate = file;					continue;				} else if (_strnicmp(line, "--EXPECT--", 10)==0) {					parsestate = expect;					continue;				}			}			switch (parsestate) {			case test:				stripcrlf(line);				cTest = line;				break;			case skipif:				cSkipIf += line;				break;			case post:				cPost += line;				break;			case get:				cGet += line;				break;			case file:				fputs(line, ft);				break;			case expect:				fputs(line, fe);				break;			}		}				fclose(fp);		fclose(ft);		fclose(fe);		if (!cTest.IsEmpty()) {			IsapiFileList.Add(tn);			TestNames.Add(cTest);			IsapiGetData.Add(cGet);			IsapiPostData.Add(cPost);			IsapiMatchData.Add(en);			free(tn);			free(en);			return TRUE;		}	}	free(tn);	free(en);	return FALSE;}/** * GetTestFiles * Recurse through the path and subdirectories, parse each phpt file */BOOL GetTestFiles(const char *path){	// find all files .phpt under testpath\tests	char FindPath[MAX_PATH];	WIN32_FIND_DATA fd;	memset(&fd, 0, sizeof(WIN32_FIND_DATA));	_snprintf(FindPath, sizeof(FindPath)-1, "%s\\*.*", path);	HANDLE fh = FindFirstFile(FindPath, &fd);	if (fh != INVALID_HANDLE_VALUE) {		do {			if ((fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&				!strchr(fd.cFileName, '.')) {				// subdirectory, recurse into it				char NewFindPath[MAX_PATH];				_snprintf(NewFindPath, sizeof(NewFindPath)-1, "%s\\%s", path, fd.cFileName);				GetTestFiles(NewFindPath);			} else if (strstr(fd.cFileName, ".phpt")) {				// got test file, parse it now				if (ParseTestFile(path, fd.cFileName)) {					printf("Test File Added: %s\\%s\r\n", path, fd.cFileName);				}			}			memset(&fd, 0, sizeof(WIN32_FIND_DATA));		} while (FindNextFile(fh, &fd) != 0);		FindClose(fh);	}	return IsapiFileList.GetSize() > 0;}void DeleteTempFiles(const char *mask){	char FindPath[MAX_PATH];	WIN32_FIND_DATA fd;	memset(&fd, 0, sizeof(WIN32_FIND_DATA));	_snprintf(FindPath, sizeof(FindPath)-1, "%s\\%s", temppath, mask);	HANDLE fh = FindFirstFile(FindPath, &fd);	if (fh != INVALID_HANDLE_VALUE) {		do {			char NewFindPath[MAX_PATH];			_snprintf(NewFindPath, sizeof(NewFindPath)-1, "%s\\%s", temppath, fd.cFileName);			DeleteFile(NewFindPath);			memset(&fd, 0, sizeof(WIN32_FIND_DATA));		} while (FindNextFile(fh, &fd) != 0);		FindClose(fh);	}}void DoTestFiles(const char *filelist, const char *environment){	if (!GetTestFiles(filelist)) {		printf("No Files to test!\r\n");		return;	}	Results.SetSize(IsapiFileList.GetSize());	ReadGlobalEnvironment(environment);	DoThreads();	printf("\r\nRESULTS:\r\n");	// show results:	DWORD r = Results.GetSize();	for (DWORD i=0; i< r; i++) {		TResults result = Results.GetAt(i);		printf("%s\r\nOK: %d FAILED: %d\r\n", TestNames.GetAt(i), result.ok, result.bad);	}	// delete temp files	printf("Deleting Temp Files\r\n");	DeleteTempFiles("exp.*");	DeleteTempFiles("pht.*");	printf("Done\r\n");}#define OPTSTRING "m:f:d:h:t:i:"static void _usage(char *argv0){	char *prog;	prog = strrchr(argv0, '/');	if (prog) {		prog++;	} else {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国在线观看| 国产精品一区二区久激情瑜伽| 色婷婷国产精品综合在线观看| 国产精品视频yy9299一区| 成人免费av网站| 一区二区三区免费在线观看| 欧美网站大全在线观看| 午夜精品福利一区二区三区av | 波多野结衣中文一区| 国产精品久久久久久久第一福利| 91在线porny国产在线看| 亚洲视频综合在线| 欧美高清激情brazzers| 国内精品写真在线观看| 亚洲欧洲精品一区二区精品久久久 | 日韩一区二区不卡| 久久99九九99精品| 亚洲国产成人一区二区三区| 欧美亚洲国产一区二区三区va | 国产伦精品一区二区三区视频青涩 | 日本午夜一区二区| 久久久久久久久久看片| 色噜噜夜夜夜综合网| 日本不卡高清视频| 国产精品女主播av| 4438成人网| bt欧美亚洲午夜电影天堂| 亚洲bt欧美bt精品| 国产欧美综合在线观看第十页| 在线精品观看国产| 国产精品影视天天线| 亚洲国产另类av| 日本一区二区高清| 欧美日韩电影在线播放| 成人免费毛片app| 婷婷综合在线观看| 亚洲欧洲成人自拍| 精品国产免费人成电影在线观看四季| caoporen国产精品视频| 精品一区精品二区高清| 亚洲尤物视频在线| 国产精品欧美一区喷水| 日韩视频免费观看高清在线视频| 波多野洁衣一区| 极品少妇xxxx偷拍精品少妇| 亚洲一区成人在线| 国产精品卡一卡二卡三| 精品久久久三级丝袜| 欧美丝袜自拍制服另类| 99精品黄色片免费大全| 国产另类ts人妖一区二区| 日韩国产成人精品| 一区二区三区在线高清| 国产精品入口麻豆九色| 26uuu精品一区二区三区四区在线| 欧美日韩一级大片网址| 91视频在线看| 不卡的av中国片| 国产露脸91国语对白| 蜜臀av性久久久久av蜜臀妖精| 亚洲午夜精品久久久久久久久| 亚洲视频一区二区在线观看| 国产午夜三级一区二区三| 欧美tk—视频vk| 欧美一区二区三区影视| 欧美精品久久久久久久久老牛影院| 色综合久久久久综合99| 北条麻妃一区二区三区| 国产成人av一区二区三区在线| 激情小说欧美图片| 激情五月婷婷综合网| 精品一区二区三区在线播放视频| 日韩高清在线一区| 免费观看久久久4p| 美女一区二区视频| 久久疯狂做爰流白浆xx| 国产一区在线看| 国内精品免费**视频| 国产在线一区观看| 国产精品小仙女| 国产精华液一区二区三区| 国产成人av一区二区三区在线观看| 国产精品亚洲专一区二区三区| 国产福利一区二区三区视频| 国产a级毛片一区| www.色综合.com| 色综合久久久久综合体| 欧美日韩在线播放一区| 91精品免费观看| 欧美精品一区二区三区蜜臀| 国产亚洲一本大道中文在线| 国产女同性恋一区二区| 亚洲视频一区二区免费在线观看 | 久久久亚洲午夜电影| 国产丝袜欧美中文另类| 国产精品久久影院| 一区二区三区不卡视频在线观看| 亚洲国产精品影院| 久久精品国产亚洲aⅴ| 国产精品911| 91免费版在线| 欧美精品乱码久久久久久| www一区二区| 婷婷国产在线综合| 青青草国产成人99久久| 国产成人8x视频一区二区| 91在线视频播放地址| 欧美剧情片在线观看| 久久久久99精品一区| 一区二区三区在线观看网站| 老司机精品视频导航| av中文一区二区三区| 欧美日韩大陆一区二区| 国产夜色精品一区二区av| 伊人色综合久久天天| 久草热8精品视频在线观看| 成人a免费在线看| 日韩一区二区在线播放| 国产精品嫩草99a| 五月天婷婷综合| 国产mv日韩mv欧美| 91麻豆精品国产自产在线| 亚洲国产成人私人影院tom| 天天操天天干天天综合网| 国产大陆亚洲精品国产| 欧美色大人视频| 欧美国产乱子伦| 麻豆91在线播放| 91亚洲精品久久久蜜桃| 精品少妇一区二区三区在线视频| 亚洲乱码中文字幕综合| 国产一区二区三区免费| 5566中文字幕一区二区电影| 日韩美女视频一区二区 | 国产91丝袜在线播放0| 欧美丰满一区二区免费视频| 亚洲欧洲性图库| 国产毛片精品一区| 91精品国产高清一区二区三区| 亚洲婷婷在线视频| 国产91富婆露脸刺激对白| 欧美一区二区三区四区五区 | 99国产精品国产精品久久| 精品国产一区a| 日韩和欧美一区二区三区| av午夜一区麻豆| 日本一区二区三级电影在线观看| 麻豆精品视频在线| 在线播放中文一区| 亚洲国产成人精品视频| 一本久道久久综合中文字幕| 中文字幕一区二区三区色视频 | **欧美大码日韩| 国产成人av电影在线| 久久在线观看免费| 精品中文av资源站在线观看| 欧美一区二区三区色| 天天射综合影视| 91精品在线麻豆| 午夜精品一区二区三区三上悠亚| 色成人在线视频| 一区二区三区在线不卡| 欧洲视频一区二区| 九九九精品视频| 日韩欧美你懂的| 久久精品72免费观看| 日韩精品一区二区三区蜜臀 | 国产一区二区不卡| 精品国产三级电影在线观看| 久久 天天综合| 久久久久高清精品| 成人天堂资源www在线| 中文字幕日韩av资源站| 91美女蜜桃在线| 亚洲午夜羞羞片| 91精品久久久久久久99蜜桃| 六月丁香婷婷色狠狠久久| 欧美mv日韩mv| 国产精品白丝av| 日韩理论片网站| 欧美性大战久久| 蜜臀精品久久久久久蜜臀| 欧美一区二区久久久| 国产美女在线精品| 国产精品国产三级国产普通话蜜臀| av在线一区二区| 亚洲成人动漫在线免费观看| 欧美一区二区三区在线观看| 精品一区二区三区欧美| 国产精品视频你懂的| 欧美性猛交xxxx黑人交| 免费观看成人鲁鲁鲁鲁鲁视频| 国产午夜精品久久久久久免费视| 99久久精品情趣| 日韩精品三区四区| 久久精品一级爱片| 在线观看视频91| 精品在线你懂的| 亚洲欧美激情在线| 日韩一区二区在线播放|