From ba44a2cd99d617986a8bbb0d4ab96bc0a27e6322 Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期四, 08 十二月 2016 09:44:05 +0800
Subject: [PATCH] proxyserver 12.7

---
 ProxyServer/proxyserver.h |   56 ++--
 ProxyServer/proxyserver.c |  591 +++++++++++++++++++----------------------------------
 2 files changed, 242 insertions(+), 405 deletions(-)

diff --git a/ProxyServer/proxyserver18.c b/ProxyServer/proxyserver.c
similarity index 85%
rename from ProxyServer/proxyserver18.c
rename to ProxyServer/proxyserver.c
index b98fceb..ee599c3 100644
--- a/ProxyServer/proxyserver18.c
+++ b/ProxyServer/proxyserver.c
@@ -5,8 +5,8 @@
  *      Author: JKM
  */
 
-#include<dirent.h>  
-#include"proxyserver.h"
+#include <dirent.h>  
+#include "proxyserver.h"
 int RequestChannel;
 char* gAnalyzerIP;
 char* gUser;
@@ -28,10 +28,9 @@
 int ZipSerFileNum=0;
 int ZipCountidx;
 char NetInfo[128];
-char EventString[5000 * 1024];
-EVENT_LOG myEventLogs[1000 * 1024];
+char EventString[100000];
+EVENT_LOG myEventLogs[200];
 int EventCount=0;
-int EventCountInSearchRange=0;
 
 int FindIdx(char* IP);
 int FindEmpty();
@@ -44,15 +43,12 @@
 #define fileread_buf 128
 AlarmInfo RealAlarmEvent[16][1000];
 
-//#define DBG_LOG
-#define ZIP_HOME "/tmp"
-
 /////////////////////////////////////////////////
 char* strnncat(char*s1,char*s2,int n)
 {
 	int len = strlen(s1);
-int i;
-	for(i=0;i<n;i++)
+
+	for(int i=0;i<n;i++)
 	{
 		s1[len+i]=s2[i];
 	}
@@ -124,53 +120,8 @@
 	}
 	return EventString;
 }
-int InsertAnalyser(char *AnalyserName,char* AnalyserIP,char* AnalyserPort,char* ServerIP,char* ServerPort,char* user,char* pass,char* resol,char* commType)
-{
-	int ret=0;
-	ret=Check_MysqlData(AnalyserName,AnalyserIP,AnalyserPort,ServerIP,ServerPort,user, pass, resol, commType);	
-	if(ret !=9)
-	   return InsertMysqlData(AnalyserName,AnalyserIP,AnalyserPort,ServerIP,ServerPort,user, pass, resol, commType);	
-	else
-	  return 0;
-}
-int DeleteAnalyser(char* AnalyserIP)																									//8.鍒犻櫎璁惧   鍙傛暟锛氳澶噄p	杩斿洖锛氭垚鍔熸垨澶辫触鐨勬彁绀恒��
-{
-	int ret=0;
-	MYSQL *conn;	
-	char *server="localhost";
-	char *user="root";
-	char *password="123";
-	char *database="opentutorials";
-	char query[255];
-	if(!(conn=mysql_init((MYSQL*)NULL))){
-		printf("init fail\n");
-		return -1;
-	}
-	if(!mysql_real_connect(conn,server,user,password,NULL,3306,NULL,0)){
-		printf("connect error.\n");
-		return -1;
-	}
-	if(mysql_select_db(conn,database)!=0){
-		mysql_close(conn);
-		printf("select_db_fail.\n");
-		return -1;
-	}
-	sprintf(query, "delete from tbl_deviceinfo where equipmentip='%s';",AnalyserIP);
-	if(mysql_query(conn,query)){
-		printf("query fail\n");
-		return -1;
-	}	
-	mysql_close(conn);
-	return ret;
- 
-}
-char* GetAnalyserAll()																												//9.鏌ヨ璁惧   鍙傛暟锛氭棤		杩斿洖锛氬垎鏋愬櫒鐨勫悕绉板拰ip
-{
-	memset(EventString,0,100000);
-	int ret = Read_MysqlData();
-	if(ret==0)	return 	EventString;
-	else  return "fail";	
-}
+
+
 char* GetAnalyserNet(void)																												//5.鑾峰彇褰撳墠杞彂鍣ㄧ殑ip		鍙傛暟锛氭棤銆傝繑鍥烇細褰撳墠鐨刬p鍦板潃瀛愮綉鎺╃爜鍜岀綉鍏�
 {
 	memset(NetInfo,0,128);
@@ -418,8 +369,7 @@
 	int Idx=FindIdx(AnalyserIP);
 	memset(EventString,0,100000);
 	if(Idx>=0 && Idx<16 && RealAlarmEventNum[Idx]>0){		
-		int i;
-		for ( i=0;i<RealAlarmEventNum[Idx];i++)
+		for (int i=0;i<RealAlarmEventNum[Idx];i++)
 		{
 			strcat(EventString,RealAlarmEvent[Idx][i].channelId);
 			strcat(EventString,"\n");
@@ -477,6 +427,141 @@
 	return result;
 	
 }
+char* GetMp4Info(char* AnalyserIP,char* user,char* pass,int Channel,char* path)	
+{
+	char Pathbuffer[100] = {0};
+	
+	RequestChannel = Channel;
+	gAnalyzerIP = AnalyserIP;
+	gUser = user;
+	gPass = pass;
+	bMetadataSaving = 0;
+	if(AnalyserIP==NULL || AnalyserIP[0]==0) return "-1";
+	int length;
+	int bMp4FileSaving=0;	
+	int Mp4FileAppendingSiz=0;
+	int Mp4FileSiz;
+	int file;
+	char* result;
+	
+	char* httpUri = path;	
+	int iidx =0,llen=0;
+	llen = sprintf(byte_array,"GET %s %s",httpUri,"HTTP/1.1\r\n"); iidx+=llen;
+	llen = sprintf(&byte_array[iidx],"Pragma: no-cache\r\n"); iidx+=llen;
+	//	llen = sprintf(&byte_array[iidx],"Host: %s\r\n",Equipments[EquipIdx].ip); iidx+=llen;
+	llen = sprintf(&byte_array[iidx],"Host: %s:80\r\n",gAnalyzerIP); iidx+=llen;
+	llen = sprintf(&byte_array[iidx],"%s","Connection: Keep_Alive\r\n\r\n"); iidx+=llen;
+
+	struct sockaddr_in servaddr;
+	int strlen1=sizeof(servaddr);
+	if((GSocket=socket(PF_INET,SOCK_STREAM,0))<0){
+		perror("socket fail2");
+		return "-3";
+	}
+	memset(&servaddr,0,strlen1);
+	servaddr.sin_family=AF_INET;
+	inet_pton(AF_INET,gAnalyzerIP,&servaddr.sin_addr);
+	servaddr.sin_port=htons(80);
+
+	if(connect(GSocket,(struct sockaddr*)&servaddr,strlen1)<0){
+		printf("Equipment connect fail-%s:%d\n",gAnalyzerIP,80);
+		close(GSocket);
+		return "-4";
+	}
+	//printf("byte_array==%s",byte_array);
+	write(GSocket,byte_array,iidx);
+	
+	while(1){
+		memset(buff,0,sizeof(buff));
+		length=read(GSocket,&buff,sizeof(buff));
+		//printf("buff==%s",buff);	 
+		if(length<=0)
+		{
+			close(GSocket);
+			break;
+		}
+		if(memorycmp((unsigned char*)buff,length, "WWW-Authenticate:",17)>0)
+		{
+			// analyse reception
+			//printf("===================================");
+			MakeAuthorizedPacketSimp(buff,length,"GET",httpUri);
+			write(GSocket,byte_array,strlen(byte_array));
+			continue;
+		}	
+		if(httpUri[0]!=0){			
+			printf("**************************************flag======%d\n",bMp4FileSaving);	
+			if(bMp4FileSaving==1){
+                
+				if((file = open(Pathbuffer, O_RDWR, S_IREAD|S_IWRITE)) <0){
+					printf("open file fail===2!\n");
+					result="File open error(2)!";
+					close(GSocket);
+					return result;
+				}
+				lseek(file,0,SEEK_END);
+				write(file,&buff[0], length);//CString m_data				
+				Mp4FileAppendingSiz += length;
+				if (Mp4FileAppendingSiz>=Mp4FileSiz+8)
+				{
+					int sidx = memorycmp((unsigned char*)buff,length, "moov",4);
+					Mp4FileSiz+=buff[sidx-4]*256*256*256+buff[sidx-3]*256*256+buff[sidx-2]*256+buff[sidx-1]; //movie box size
+					printf("**************************************Mp4FileSiz======%d\n",Mp4FileSiz);	
+
+				}
+				if (Mp4FileAppendingSiz>=Mp4FileSiz)
+				{
+					close(file);
+					bMp4FileSaving = false;
+					break;
+				}
+				
+			}
+			else
+			{
+				int sidx = memorycmp((unsigned char*)buff,length, "ftypmp42",8);
+					
+				if(sidx>=0){
+					bMp4FileSaving= 1;
+					Mp4FileAppendingSiz = length-sidx+4;
+			printf("**************************************Mp4FileAppendingSiz======%d\n",Mp4FileAppendingSiz);	
+							
+					if(length>36){
+						//printf("****************************************");		
+						
+						Mp4FileSiz = 24 + buff[sidx+20]*256*256*256+buff[sidx+21]*256*256+buff[sidx+22]*256+buff[sidx+23];// file_type box size + Media databox size
+			printf("**************************************Mp4FileSiz======%d\n",Mp4FileSiz);	
+						int count=0,i;
+						for(i=0;i<strlen(httpUri);i++){
+							if(httpUri[i]=='/') {
+								count++;
+								if(count>=9) break;
+							}
+						}	
+						
+						sprintf(Pathbuffer,"/tmp/%s",/*RequestChannel*/&httpUri[i+1]); iidx+=llen;
+
+						if((file = open(Pathbuffer,O_CREAT|O_RDWR,S_IREAD|S_IWRITE)) <0){
+							printf("open file fail===1!\n");
+							result="File open error(1)!";
+							close(GSocket);
+							return result;
+						}
+						write(file,&buff[sidx-4], length-sidx+4);
+					}
+				}
+			}
+		}
+		
+	}
+	close(GSocket);
+	return "ok";
+}
+
+
+
+
+
+
 //// 鏌ヨ鎶ヨ璁板綍
 //// 杈撳叆锛氬垎鏋愬櫒IP锛屽紑濮嬫椂闂达紝缁撴潫鏃堕棿锛屼俊閬撳彿,鐢ㄦ埛锛屽瘑鐮�
 //// 杈撳嚭锛氭煡璇㈢粨鏋溿�傦紙鍖呮嫭淇¢亾鍙凤紝鎶ヨ鏃堕棿锛屾挱鏀惧湴鍧�锛岀瓑銆傦級
@@ -487,48 +572,40 @@
 	gUser = user;
 	gPass = pass;
 	bMetadataSaving = 0;
-	int i;
 	if(AnalyserIP==NULL || AnalyserIP[0]==0) return "-1";
 //	if(gGettingStep>0) return -2;
-
-chmod(ZIP_HOME,0777);
-//delete_file(ZIP_HOME "/tmp/tmp.zip");
-delete_file(ZIP_HOME "/tmpZip/*");
     
 	struct tm ttm;
 	time_t StepTm;
 	int length;
 	char* httpUri;
 	char sss[24],eee[24];
-	
+	chmod("/home",0777);
+	const char* folderr;
+	const char* filename1;
+	folderr="/home/tmpZip";
+	filename1="/home/tmp.zip";
+	struct stat sb;
+	if(stat(folderr,&sb)==0 && S_ISDIR(sb.st_mode))	
+		{
+			delete_folder("/home/tmpZip");
+		}
+	if (doesFileExist(filename1))
+		{
+			delete_file("/home/tmp.zip");	
+		}	
 	if(RequestChannel==0) httpUri= "/PSIA/VIQ/Event/metadata/0/files";
 	if(RequestChannel==1) httpUri= "/PSIA/VIQ/Event/metadata/1/files";
 	if(RequestChannel==2) httpUri= "/PSIA/VIQ/Event/metadata/2/files";
 	if(RequestChannel==3) httpUri= "/PSIA/VIQ/Event/metadata/3/files";
-	
-	ttm.tm_year=StartTm->Year - 1900;
-	ttm.tm_mon=StartTm->Month - 1;
-	ttm.tm_mday=StartTm->Day;
-	ttm.tm_hour=StartTm->Hour;
-	ttm.tm_min=StartTm->Min;
-	ttm.tm_sec=StartTm->Sec;
+	ttm.tm_year=StartTm->Year;ttm.tm_mon=StartTm->Month;ttm.tm_mday=StartTm->Day;ttm.tm_hour=StartTm->Hour;ttm.tm_min=StartTm->Min;ttm.tm_sec=StartTm->Sec;
 	time_t SearchStartTm = mktime(&ttm);
-	SearchStartTm -= 8 * 60 * 60;
-	
-	ttm.tm_year=EndTm->Year - 1900;
-	ttm.tm_mon=EndTm->Month - 1;
-	ttm.tm_mday=EndTm->Day;
-	ttm.tm_hour=EndTm->Hour;
-	ttm.tm_min=EndTm->Min;
-	ttm.tm_sec=EndTm->Sec;
+	ttm.tm_year=EndTm->Year;ttm.tm_mon=EndTm->Month;ttm.tm_mday=EndTm->Day;ttm.tm_hour=EndTm->Hour;ttm.tm_min=EndTm->Min;ttm.tm_sec=EndTm->Sec;
 	time_t SearchEndTm = mktime(&ttm);
-	SearchEndTm -= 8 * 60 * 60;
 	
-#ifdef DBG_LOG
 	printf("stm=%d,etm=%d\n",(int)SearchStartTm,(int)SearchEndTm);
-#endif
 
-	//for (StepTm=SearchEndTm; StepTm>SearchStartTm; StepTm-=1*3600)
+	for (StepTm=SearchEndTm;StepTm>SearchStartTm;StepTm-=2*3600)
 	{
 		zclock_sleep(200);
 //		printf(" ==== Search loop function execution  =================%d,%d \n",(int)StepTm,(int)SearchStartTm);
@@ -548,21 +625,14 @@
 			close(GSocket);
 			return "-4";
 		}
-		time_t ttt=SearchStartTm;
+		time_t ttt=StepTm-2*3600;
 		struct tm *t;
-		//ttt-=4*60*60;
 		t = localtime(&ttt);
-		sprintf(sss,"%d-%02d-%02dT%02d:%02d:%02d.000",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);// = "2016-08-26T07:31:00.000";
+		sprintf(sss,"%d-%02d-%02dT%02d:%02d:%02d.000",t->tm_year+2000-100,t->tm_mon,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);// = "2016-08-26T07:31:00.000";
 		sss[23]=0;
-		
-		ttt=SearchEndTm;
-		//ttt+=4*60*60;
-		t = localtime(&ttt);
-		sprintf(eee,"%d-%02d-%02dT%02d:%02d:%02d.000",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);// = "2016-08-26T07:31:00.000";
+		t = localtime(&StepTm);
+		sprintf(eee,"%d-%02d-%02dT%02d:%02d:%02d.000",t->tm_year+2000-100,t->tm_mon,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);// = "2016-08-26T07:31:00.000";
 		eee[23]=0;
-		
-		printf("sss=%s, eee=%s\n", sss, eee);
-
 		RequestMetaFiles(gAnalyzerIP,httpUri,sss,eee);
 		write(GSocket,byte_array,strlen(byte_array));
 		
@@ -593,10 +663,10 @@
 				if(eidx >=0){
 					bMetadataSaving = 0;
 					int SSize=0;
-					for (i=0;i<bandCount;i++) SSize+=bandsize[i];
+					for (int i=0;i<bandCount;i++) SSize+=bandsize[i];
 					char *tmpp = (char*)malloc(SSize);
 					int xx=0;
-					for (i=0;i<bandCount;i++)
+					for (int i=0;i<bandCount;i++)
 					{
 						memcpy(&tmpp[xx],memoryband[i],bandsize[i]);
 						xx=bandsize[i];
@@ -664,11 +734,6 @@
 			}
  		}// while end
 	}//for 
-	
-	
-	
-	
-	
 	//////// get
 	for(ZipCountidx = 0; ZipCountidx<ZipSerFileNum; ZipCountidx++)
 	{
@@ -697,7 +762,8 @@
 		write(GSocket,byte_array,strlen(byte_array));
 //		printf("==========================================================================================================================>>>>>>>>\n");
 //		printf("%s",byte_array);
-		chmod(ZIP_HOME,0777);	
+		
+		
 		while(1){
 			length=read(GSocket,&buff,sizeof(buff)-1);	   
 			if(length<=0)
@@ -721,7 +787,7 @@
 			if(bZipFileSaving==1){
 				//涓嬭浇Zip filesave
 				int file;
-				if((file = open(ZIP_HOME "/tmp.zip", O_RDWR, S_IREAD|S_IWRITE)) <0)
+				if((file = open("/home/tmp.zip", O_RDWR, S_IREAD|S_IWRITE)) <0)
 					printf("open file fail!\n");
 				lseek(file,0,SEEK_END);
 				write(file,&buff[0], length);//CString m_data
@@ -732,18 +798,17 @@
 					bZipFileSaving = 0;
 					close(GSocket);
 					//Convert Zip file to Ser file
-					system("unzip -o " ZIP_HOME "/tmp.zip -d " ZIP_HOME "/tmpZip");
+					system("unzip -o /home/tmp.zip -d /home/tmpZip");
 				}
 			}
 			else{
 				int sidx = stringcmp((char*)buff,"PK",2);
 				if(sidx >=0){//涓嬭浇Zip filesave
-					delete_file(ZIP_HOME "/tmp.zip");
-					//delete_file(ZIP_HOME "/tmpZip/*");
+					delete_file("/home/tmp.zip");				
 					//涓嬭浇Zip filesave
 					bZipFileSaving = 1;
 					int file;
-					if((file = open(ZIP_HOME "/tmp.zip",O_CREAT|O_RDWR,S_IREAD|S_IWRITE)) <0)
+					if((file = open("/home/tmp.zip",O_CREAT|O_RDWR,S_IREAD|S_IWRITE)) <0)
 						printf("open file fail!\n");
 					write(file,&buff[sidx], length-sidx);//CString m_data
 					close(file);
@@ -754,15 +819,15 @@
 						bZipFileSaving = 0;
 						close(GSocket);
 						//Convert Zip file to Ser file
-						system("unzip -o " ZIP_HOME "/tmp.zip -d " ZIP_HOME "/tmpZip");
+						system("unzip -o /home/tmp.zip -d /home/tmpZip");
 					}
 				}
 			}
 		}//while
 	}//for
-	int res=0,num=0; //寰楅暱搴�  
+	int   i,res=0,num=0; //寰楅暱搴�  
 	filenames filename[100];
-	num = GetFileNameInFolder(ZIP_HOME "/tmpZip",filename);
+	num = GetFileNameInFolder("/home/tmpZip",filename);
 	char stringpath[1024];
 	unsigned char p_save_buf[6144000];
 	
@@ -770,68 +835,37 @@
 	{   
 		if(filename[i].name[0]=='.') continue;
 		memset(stringpath,0,1024);
-		memcpy(stringpath, ZIP_HOME "/tmpZip/",13);
+		memcpy(stringpath,"/home/tmpZip/",13);
 		strcat(stringpath,filename[i].name);
 		int handle;
 		if((handle = open(stringpath, O_RDWR, S_IREAD|S_IWRITE)) <0)
 			printf("open file fail!\n");
 		res = read(handle,p_save_buf,6144000);//CString m_data
 		close(handle);
-		AnalySerFile((char*)p_save_buf,res,SearchStartTm,SearchEndTm);//#todo
+		AnalySerFile((char*)p_save_buf,res);
 	}   
-	memset(EventString,0,sizeof(EventString));
+	memset(EventString,0,100000);
 	//for(i=0;i<1000;i++)
-#ifdef DBG_LOG
-	printf("EventCount===========================%d\n",EventCount);
-	printf("EventCountInSearchRange==============%d\n",EventCountInSearchRange);
-#endif
-	
-	strcat(EventString,"[");
-	
-	for (i=0;i<EventCount;i++)
+	printf("EventCount===========================%d\n",EventCount);	
+	for (int i=0;i<EventCount;i++)
 	{
-#ifndef DBG_LOG
-		if (! myEventLogs[i].InSearchRange)
-			continue;
-#endif
-		
-		strcat(EventString,"{");
-		strcat(EventString,"\"datetime\":\"");
 		strcat(EventString,myEventLogs[i].Date);
-		strcat(EventString," ");
+		strcat(EventString,"\n");
 		strcat(EventString,myEventLogs[i].Time);
-		strcat(EventString,"\",\"path\":\"");
+		strcat(EventString,"\n");
+		strcat(EventString,myEventLogs[i].Duration);
+		strcat(EventString,"\n");
 		strcat(EventString,myEventLogs[i].clipUrl);
-		strcat(EventString,"\"}");
-		if (i < EventCount - 1)
-			strcat(EventString,",");
-		
-		//strcat(EventString,myEventLogs[i].Date);
-		//strcat(EventString,"\n");
-		//strcat(EventString,myEventLogs[i].Time);
-		//strcat(EventString,"\n");
-		//strcat(EventString,myEventLogs[i].Duration);
-		//strcat(EventString,"\n");
-		//strcat(EventString,myEventLogs[i].clipUrl);
-		//strcat(EventString,"\n");
-		//strcat(EventString,myEventLogs[i].Region);
-		//strcat(EventString,"\n");
-		//strcat(EventString,myEventLogs[i].Rule);
-		//strcat(EventString,"\n");
-		//strcat(EventString,myEventLogs[i].DebugMessageS);
-		//strcat(EventString,"\n");
-		//strcat(EventString,myEventLogs[i].DebugMessageE);
-		//strcat(EventString,"\n");
+		strcat(EventString,"\n");
+		strcat(EventString,myEventLogs[i].Region);
+		strcat(EventString,"\n");
+		strcat(EventString,myEventLogs[i].Rule);
+		strcat(EventString,"\n");
+		strcat(EventString,myEventLogs[i].DebugMessageS);
+		strcat(EventString,"\n");
+		strcat(EventString,myEventLogs[i].DebugMessageE);
+		strcat(EventString,"\n");
 	}
-	
-	strcat(EventString,"]");
-	
-	//reset
-	EventCount = 0;//#todo
-	EventCountInSearchRange = 0;
-	RequestChannel = -1;
-	//memset(&myEventLogs, 0, sizeof(myEventLogs));
-
 	return EventString;
 	//return "333333333333333333333333333333333333333333333333333333333333333333789";
 }
@@ -1235,8 +1269,7 @@
 }
 int FindIdx(char* IP)
 {
-	int i;
-	for (i=0;i<16;i++)
+	for (int i=0;i<16;i++)
 	{
 		if(strcmp(sessions[i].IP,IP)==0) return i;
 	}
@@ -1244,8 +1277,7 @@
 }
 int FindEmpty()
 {
-int i;
-	for (i=0;i<16;i++)
+	for (int i=0;i<16;i++)
 	{
 		if(sessions[i].IP[0]==0) return i;
 	}
@@ -1325,12 +1357,11 @@
 	}
 	return n;
 }
-void AnalySerFile(char* p_save_buf,int res, int SearchStartTm, int SearchEndTm)
+void AnalySerFile(char* p_save_buf,int res)
 {
 	int ParagraphIdx;
 	bool somewhat;
 first:
-
 	somewhat=false;
 	memset(myEventLogs[EventCount].DebugMessageS,0,200);
 	memset(myEventLogs[EventCount].DebugMessageE,0,200);
@@ -1370,37 +1401,6 @@
 		if(sidx>=0 && p_save_buf[sidx+7]==0x08){
 			int flen = (unsigned char)p_save_buf[sidx+7+1]*256+(unsigned char)p_save_buf[sidx+7+2];
 			memcpy(myEventLogs[EventCount].clipUrl,&p_save_buf[sidx+7+3],flen);
-			
-			//#todo
-			
-			{
-				const char* dtInUrlPos = strrchr(myEventLogs[EventCount].clipUrl, '/');
-				//printf("%s\n", dtInUrlPos);
-				struct tm dtInUrl;
-				memset(&dtInUrl, 0, sizeof(dtInUrl));
-				sscanf(dtInUrlPos, "/%d_%d_%d-%d_%d_%d.", 
-					&dtInUrl.tm_year, &dtInUrl.tm_mon, &dtInUrl.tm_mday, &dtInUrl.tm_hour, &dtInUrl.tm_min, &dtInUrl.tm_sec);
-				dtInUrl.tm_year-=1900;
-				dtInUrl.tm_mon--;
-				time_t tt = mktime(&dtInUrl);
-				
-				if(tt<SearchStartTm||tt>SearchEndTm)
-				{
-					myEventLogs[EventCount].InSearchRange = 0;
-#ifdef DBG_LOG
-					sprintf(myEventLogs[EventCount].clipUrl,"%s ER %d",myEventLogs[EventCount].clipUrl, tt);
-#endif
-				}
-				else
-				{
-					myEventLogs[EventCount].InSearchRange = 1;
-#ifdef DBG_LOG
-					sprintf(myEventLogs[EventCount].clipUrl,"%s OK %d",myEventLogs[EventCount].clipUrl, tt);
-#endif
-					EventCountInSearchRange++;
-				}
-			}
-			
 		}
 		sidx = memorycmp((unsigned char*)p_save_buf,ParagraphIdx, "debugMessage",12);
 		if(sidx>=0 && p_save_buf[sidx+12]==0x08){
@@ -1501,31 +1501,14 @@
 							sscanf(tmpTime,"%d:%d:%d",&hh2,&Mm2,&ss2);
 
 							struct tm ttm;
-							ttm.tm_year = yy-1900;
-							ttm.tm_mon=mm - 1;
-							ttm.tm_mday = dd;
-							ttm.tm_hour=hh;
-							ttm.tm_min=Mm;
-							ttm.tm_sec=ss;
+							ttm.tm_year = yy-2000+100;ttm.tm_mon=mm;ttm.tm_mday = dd;ttm.tm_hour=hh;ttm.tm_min=Mm;ttm.tm_sec=ss;
 							time_t StartTm = mktime(&ttm);
-
-							ttm.tm_year = yy2-1900;
-							ttm.tm_mon=mm2 - 1;
-							ttm.tm_mday = dd2;
-							ttm.tm_hour=hh2;
-							ttm.tm_min=Mm2;
-							ttm.tm_sec=ss2;
+							ttm.tm_year = yy2-2000+100;ttm.tm_mon=mm2;ttm.tm_mday = dd2;ttm.tm_hour=hh2;ttm.tm_min=Mm2;ttm.tm_sec=ss2;
 							time_t EndTm = mktime(&ttm);
 
 							int dur = EndTm-StartTm;
 							sprintf(myEventLogs[i].Duration,"%d 绉�",dur);
 							memcpy(myEventLogs[i].DebugMessageE,tmpdeg,msglen);
-							
-							//calc offset datetime
-							StartTm+=8*60*60;
-							struct tm* toffset = localtime(&StartTm);
-							sprintf(myEventLogs[i].Date, "%d/%d/%d", toffset->tm_year+1900, toffset->tm_mon+1, toffset->tm_mday);
-							sprintf(myEventLogs[i].Time, "%d:%d:%d", toffset->tm_hour, toffset->tm_min, toffset->tm_sec);
 						}
 					}
 				}
@@ -1537,7 +1520,7 @@
 	if((myEventLogs[EventCount].DebugMessageE[0]!=0|| myEventLogs[EventCount].DebugMessageS[0]!=0) && myEventLogs[EventCount].Rule[0]==0 && myEventLogs[EventCount].Region[0]==0){
 		memcpy(ttmp,(unsigned char*)p_save_buf,5000);
 	}
-	if(somewhat && EventCount<1000-1){
+	if(somewhat && EventCount<200-1){///repair
 		sprintf(myEventLogs[EventCount].Camera,"%d",RequestChannel+1);
 		int i;
 		for (i=0;i<EventCount;i++)
@@ -1842,7 +1825,21 @@
 	sprintf(cmd,"rm -f %s",path);
 	system(cmd);
 }
-  
+void delete_folder(const char *path)
+{
+	char cmd[30];
+	memset(cmd,0,30);
+	sprintf(cmd,"rm -r %s",path);
+	system(cmd);	
+}
+int doesFileExist(const char *filename)
+{
+	struct stat st;
+	int result=stat(filename,&st);
+	if (result==0)
+	 return 1;
+	 else return 0;
+ }  
 int GetFileNameInFolder(char* dirname,lpfilenames lpfilename)
 {  
 	int num=0;
@@ -1970,166 +1967,8 @@
   outb(DATA,PortNum);
 }
 
-int Read_MysqlData(){
-	int ret=0;
-	MYSQL *conn;
-	MYSQL_RES *res;
-	MYSQL_ROW row;
-	char *server="localhost";
-	char *user="root";
-	char *password="123";
-	char *database="opentutorials";
-	puts("Step.0 ========>MySQL is getting......");
-	if(!(conn=mysql_init((MYSQL*)NULL))){
-		printf("init fail\n");
-		return -1;
-	}
-	if(!mysql_real_connect(conn,server,user,password,NULL,3306,NULL,0)){
-		printf("connect error.\n");
-		return -1;
-	}
-	if(mysql_select_db(conn,database)!=0){
-		mysql_close(conn);
-		printf("select_db_fail.\n");
-		return -1;
-	}
-	if(mysql_query(conn,"select * from tbl_deviceinfo")){
-		printf("query fail\n");
-		return -1;
-	}
-	res=mysql_store_result(conn);	
-	while((row=mysql_fetch_row(res))!=NULL){
-		strcat(EventString,row[1]);	strcat(EventString,":");
-		strcat(EventString,row[2]); strcat(EventString,":");
-		strcat(EventString,row[3]);	strcat(EventString,":");
-		strcat(EventString,row[4]);	strcat(EventString,":");
-		strcat(EventString,row[5]);	strcat(EventString,":");
-		strcat(EventString,row[6]);	strcat(EventString,":");
-		strcat(EventString,row[7]);	strcat(EventString,":");
-		strcat(EventString,row[8]);	strcat(EventString,":");
-		strcat(EventString,row[9]);	strcat(EventString,":");
-		strcat(EventString,row[10]);strcat(EventString,"\n");
-	}
-	mysql_close(conn);
-	return ret;
 
-}
-int UpdateMysqData(int key)
-{
-	int ret=0;
-	MYSQL *conn;	
-	char *server="localhost";
-	char *user="root";
-	char *password="123";
-	char *database="opentutorials";
-	char query[255];
-	puts("Step.0 ========>MySQL is getting......");
-	if(!(conn=mysql_init((MYSQL*)NULL))){
-		printf("init fail\n");
-		exit(1);
-	}
-	if(!mysql_real_connect(conn,server,user,password,NULL,3306,NULL,0)){
-		printf("connect error.\n");
-		exit(1);
-	}
-	if(mysql_select_db(conn,database)!=0){
-		mysql_close(conn);
-		printf("select_db_fail.\n");
-		exit(1);
-	}
-	sprintf(query,"UPDATE tbl_deviceinfo SET reboot=0 where id=%d",key);	
-	if(mysql_query(conn,query)){
-		printf("query fail\n");
-		exit(1);
-	}	
-	mysql_close(conn);
-	return ret;
 
-}
-int Check_MysqlData(char *AnalyserName,char* AnalyserIP,char* AnalyserPort,char* ServerIP,char* ServerPort,char* user,char* pass,char* resol,char* commType){
-	int ret=0;
-	MYSQL *conn;
-	MYSQL_RES *res;
-	MYSQL_ROW row;
-	char *server="localhost";
-	char *user1="root";
-	char *password="123";
-	char *database="opentutorials";
-    puts("Step.0 ========>MySQL is getting......");
-	if(!(conn=mysql_init((MYSQL*)NULL))){
-		printf("init fail\n");
-		exit(1);
-	}
-	if(!mysql_real_connect(conn,server,user1,password,NULL,3306,NULL,0)){
-		printf("connect error.\n");
-		exit(1);
-	}
-	if(mysql_select_db(conn,database)!=0){
-		mysql_close(conn);
-		printf("select_db_fail.\n");
-		exit(1);
-	}
-	if(mysql_query(conn,"select * from tbl_deviceinfo")){
-		printf("query fail\n");
-		exit(1);
-	}
-	res=mysql_store_result(conn);   
-	while((row=mysql_fetch_row(res))!=NULL){
-		ret=0;	
-//	   printf("====%s:%s",row[0],row[11]);	   //sprintf(equipments[NUM].m_id,"%d",row[0]);
-	   if(strcmp(AnalyserName,row[10]) ==0) ret = 1; 
-	   if(strcmp(AnalyserIP,row[1]) ==0) ret =ret+1; 
-	   if(strcmp(AnalyserPort,row[2]) ==0) ret =ret+1; 
-	   if(strcmp(ServerIP,row[3]) ==0) ret =ret+1; 
-	   if(strcmp(ServerPort,row[4]) ==0) ret =ret+1; 
-	   if(strcmp(user,row[6]) ==0) ret =ret+1; 	 
-	   if(strcmp(pass,row[5]) ==0) ret =ret+1; 	 
-	   if(strcmp(resol,row[7]) ==0) ret =ret+1;
-	   if(strcmp(commType,row[8]) ==0) ret =ret+1;
-	   if(ret==9) break;	
-	}
-	mysql_close(conn);
-	return ret;	
-}
-int InsertMysqlData(char *AnalyserName,char* AnalyserIP,char* AnalyserPort,char* ServerIP,char* ServerPort,char* username,char* pass,char* resol,char* commType)
-{
-	int ret=0;
-	MYSQL *conn;	
-	char *server="localhost";
-	char *user="root";
-	char *password="123";
-	char *database="opentutorials";
-	char query[255];
-	struct tm *t;
-	char time_info[20]={0,};
-	time_t timer;
-	timer=time(NULL);
-	t=localtime(&timer);
-	sprintf(time_info, "%d-%d-%d %d:%d:%d",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
-	
-	if(!(conn=mysql_init((MYSQL*)NULL))){
-		printf("init fail\n");
-		return -1;
-	}
-	if(!mysql_real_connect(conn,server,user,password,NULL,3306,NULL,0)){
-		printf("connect error.\n");
-		return -1;
-	}
-	if(mysql_select_db(conn,database)!=0){
-		mysql_close(conn);
-		printf("select_db_fail.\n");
-		return -1;
-	}	
-	sprintf(query, "INSERT INTO tbl_deviceinfo(equipmentip,equipmentport,serverip,serverport,password,username,analysis,comtype,redate,comment,reboot)VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s','%s',0);",AnalyserIP, AnalyserPort, ServerIP, ServerPort,pass,username, resol, commType,time_info,AnalyserName);//?????????????
-	printf("query=%s",query);
-	if(mysql_query(conn,query)){
-		printf("query fail\n");
-		return -1;
-	}	
-	mysql_close(conn);
-	return ret;
-
-}
 //=====================================MD5 Function Definition============================================
 void MD5Init (MD5_CTX *context)    /* context */
 {
diff --git a/ProxyServer/proxyserver.h b/ProxyServer/proxyserver.h
index 7d3a242..0799edf 100644
--- a/ProxyServer/proxyserver.h
+++ b/ProxyServer/proxyserver.h
@@ -1,25 +1,25 @@
-#include<sys/socket.h>
-#include<sys/types.h>
-#include<netinet/in.h>
-#include<netdb.h>
-#include<stdio.h>
-#include<string.h>
-#include<stdlib.h>
-#include<unistd.h>
-#include<errno.h>
-#include<arpa/inet.h>
-#include<time.h>
-#include<signal.h>
-#include<pthread.h>
-#include<sys/time.h>
-#include<stdbool.h>
-#include<fcntl.h>
-#include<sys/stat.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <netdb.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <arpa/inet.h>
+#include <time.h>
+#include <signal.h>
+#include <pthread.h>
+#include <sys/time.h>
+#include <stdbool.h>
+#include <fcntl.h>
+#include <sys/stat.h>
 #define _DELETE_FILE
-#include<dirent.h>
-#include<limits.h>
-#include<sys/io.h>
-#include<signal.h>
+#include <dirent.h>
+#include <limits.h>
+#include <sys/io.h>
+#include <signal.h>
 int RealAlarmEventNum[16];
 typedef struct{
 	int Year;
@@ -61,7 +61,6 @@
 {
 	bool mp4downed;
 	bool Ack;
-	bool InSearchRange;
 	char Date[15];
 	char Time[15];
 	char Rule[20];
@@ -110,9 +109,10 @@
 	char IP[32];
 }SESSION;
 
-
+int doesFileExist(const char *filename);
 void delete_file(const char *path);
-void AnalySerFile(char* p_save_buf,int res, int SearchStartTm, int SearchEndTm);
+void delete_folder(const char *path);
+void AnalySerFile(char* p_save_buf,int res);
 int GetFileNameInFolder(char* dirname,lpfilenames lpfilename);
 int net_test(char* serverIP,char* port);
 void GPIOinit(void);
@@ -127,7 +127,7 @@
 void AurhorizationResponseBytesReatart(char* byte_array_out,int * byte_array_length_out,char *Myuri, char *nonce,char *cnonce,char *response);
 int Read_MysqlData();
 int UpdateMysqData(int key);
-int InsertMysqlData(char *AnalyserName,char* AnalyserIP,char* AnalyserPort,char* ServerIP,char* ServerPort,char* username,char* pass,char* resol,char* commType);
+
 
 
 
@@ -140,11 +140,9 @@
 char* GetPHPSearchMetaInfo(char* AnalyserIP,char* user,char* pass,int Channel,int s_year,int s_month,int s_day,int s_hour,int s_minute,int s_sec,int e_year,int e_month,int e_day,int e_hour,int e_minute,int e_sec);	//potection function
 char* GetSearchMetaInfo(char* AnalyserIP,char* user,char* pass,int Channel,lpMyTime StartTm,lpMyTime EndTm);	//4.鏌ヨ璁板綍				鍙傛暟锛氬垎鏋愬櫒IP锛屽紑濮嬫椂闂达紝缁撴潫鏃堕棿锛屼俊閬撳彿銆傝繑鍥烇細鏌ヨ缁撴灉銆傦紙鍖呮嫭淇¢亾鍙凤紝鎶ヨ鏃堕棿锛屾挱鏀惧湴鍧�锛岀瓑銆傦級
 char* GetAnalyserNet(void);																												//5.鑾峰彇褰撳墠杞彂鍣ㄧ殑ip		鍙傛暟锛氭棤銆傝繑鍥烇細褰撳墠鐨刬p鍦板潃瀛愮綉鎺╃爜鍜岀綉鍏�
-int SetAnalyserNet(char* NetInfo);	
+int SetAnalyserNet(char* NetInfo);
+char* GetMp4Info(char* AnalyserIP,char* user,char* pass,int Channel,char* path)	;	
 
-char* GetAnalyserAll();																													//9.鏌ヨ璁惧   鍙傛暟锛氭棤		杩斿洖锛氬垎鏋愬櫒鐨勫悕绉板拰ip
-int DeleteAnalyser(char* AnalyserIP);																									//8.鍒犻櫎璁惧   鍙傛暟锛氳澶噄p	杩斿洖锛氭垚鍔熸垨澶辫触鐨勬彁绀恒��
-int InsertAnalyser(char *AnalyserName,char* AnalyserIP,char* AnalyserPort,char* ServerIP,char* ServerPort,char* user,char* pass,char* resol,char* commType);//																	7.娣诲姞璁惧   鍙傛暟锛氳澶囧睘鎬с�傝繑鍥烇細鎴愬姛杩斿洖瀵瑰簲鐨勮棰戞祦鍦板潃锛屽け璐ヨ繑鍥炰竴涓彁绀恒��
 char* GetDeviceInfo(char* AnalyserIP);
 int Check_MysqlData(char *AnalyserName,char* AnalyserIP,char* AnalyserPort,char* ServerIP,char* ServerPort,char* user,char* pass,char* resol,char* commType);
 //

--
Gitblit v1.8.0