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