⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proxytrace2any.cc

📁 无线个域网(WPAN)就是在个人周围空间形成的无线网络
💻 CC
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <fcntl.h>#include <sys/stat.h>#include <sys/types.h>#include <tcl.h>#include "proxytrace.h"#include "my-endian.h" #ifdef PC#include <io.h>#endifvoid PrintEntry_Text(FILE *out_file, TEntry *entry, int noURL);void PrintEntry_Squid(FILE *out_file, TEntry *entry, int swap);enum { ifNone = 0, ifDECV1_0, ifDECV1_2 } InputFormat = ifNone;enum { ofNone = 0, ofDECText, ofSquid, ofSquidSwapped } OutputFormat = ofNone;int getInputFormat(char* argv[]) {	if (strncmp("-i", argv[0], 3) != 0)		return ifNone;	if (strncmp("v1.0", argv[1], 5) == 0)		InputFormat = ifDECV1_0;	else	if (strncmp("v1.2", argv[1], 5) == 0)		InputFormat = ifDECV1_2;	else		InputFormat = ifNone;	return InputFormat;}int getOutputFormat(char* argv[]) {	if (strncmp("-o", argv[0], 3) != 0)		return ofNone;	if (strncmp("txt", argv[1], 4) == 0)		OutputFormat = ofDECText;	else	if (strncmp("squid", argv[1], 6) == 0)		OutputFormat = ofSquid;	else	if (strncmp("squidsw", argv[1], 8) == 0)		OutputFormat = ofSquidSwapped;	else		OutputFormat = ofNone;	return OutputFormat;}extern FILE *cf, *sf;extern double initTime;extern double duration;extern double startTime;extern ReqLog* rlog;extern unsigned int num_rlog, sz_rlog;extern Tcl_HashTable cidHash, sidHash, urlHash;double lf_analyze(TEntry& lfe);void sort_url();void sort_rlog();int main (int argc, char* argv[]) {	int    is_little_endian = 0;	TEntry entry;	int      ret;	double   ctime;	// Init tcl	Tcl_Interp *interp = Tcl_CreateInterp();	if (Tcl_Init(interp) == TCL_ERROR) {		printf("%s\n", interp->result);		abort();	}	Tcl_InitHashTable(&cidHash, TCL_ONE_WORD_KEYS);	Tcl_InitHashTable(&sidHash, TCL_ONE_WORD_KEYS);	Tcl_InitHashTable(&urlHash, TCL_ONE_WORD_KEYS);	if ((cf = fopen("reqlog", "w")) == NULL) {		printf("cannot open request log.\n");		exit(1);	}	if ((sf = fopen("pglog", "w")) == NULL) {		printf("cannot open page log.\n");		exit(1);	}	/* parse command line */	if ((argc < 2) || (argc > 4)) {		printf("Usage: %s <trace size> [<time duration>] [<start_time>]\n", argv[0]);		return 1;	}	if (argc >= 3) {		duration = strtod(argv[2], NULL);		if (argc == 4) {			startTime = strtod(argv[3], NULL);			printf("start time = %f\n", startTime);		}	}	sz_rlog = strtoul(argv[1], NULL, 10);	rlog = new ReqLog[sz_rlog];	/* determine endian-ness */	is_little_endian = IsLittleEndian();	/* read trace header */	ReadHeader(stdin, 0);	/* read entries untill EOF */	while (ReadEntry(stdin, &entry)) {		if ( !is_little_endian )			ToOtherEndian(&entry);		// Analyse one log entry		ctime = lf_analyze(entry);		if ((duration > 0) && (ctime > duration))			break;	}	Tcl_DeleteHashTable(&cidHash);	Tcl_DeleteHashTable(&sidHash);	fprintf(stderr, "sort url\n");	sort_url();	fclose(sf);	fprintf(stderr, "sort requests\n");	sort_rlog();	fclose(cf);	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -