From eca5759d981d92b3dd345dfc145796384d4b7c02 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期二, 28 三月 2017 11:28:51 +0800
Subject: [PATCH]
---
ProxyServer/proxyserver.c | 374 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 233 insertions(+), 141 deletions(-)
diff --git a/ProxyServer/proxyserver.c b/ProxyServer/proxyserver.c
index bf2718f..6420895 100644
--- a/ProxyServer/proxyserver.c
+++ b/ProxyServer/proxyserver.c
@@ -7,6 +7,14 @@
#include<dirent.h>
#include"proxyserver.h"
+#include <syslog.h>
+
+
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+
int RequestChannel;
char* gAnalyzerIP;
char* gUser;
@@ -15,7 +23,6 @@
int gMySock[16];
int threadIdx=0;
char byte_array[2600];
-char buff[102400];
int gGettingStep=0;
char uri[300];
time_t StartTm,EndTm;
@@ -28,8 +35,8 @@
int ZipSerFileNum=0;
int ZipCountidx;
char NetInfo[128];
-char EventString[5000 * 1024];
-EVENT_LOG myEventLogs[1000 * 1024];
+char EventString[1 * 1024 * 1024];
+EVENT_LOG myEventLogs[2000];
int EventCount=0;
int EventCountInSearchRange=0;
@@ -70,7 +77,8 @@
}
char* GetDeviceInfo(char* AnalyserIP)
{
- memset(EventString,0,100000);
+ char buff[102400];
+ memset(EventString,0,sizeof(EventString));
gAnalyzerIP = AnalyserIP;
if(AnalyserIP==NULL || AnalyserIP[0]==0) return "Param Error";
@@ -94,7 +102,7 @@
length = sprintf(byte_array,"GET /PSIA/System/deviceInfo HTTP/1.1\r\nContent-Type: text/xml\r\nHost: %s\r\nContent-Length: 0\r\nConnection: Keep-Alive\r\n\r\n",AnalyserIP);
write(GSocket,byte_array,length);
// printf("%s",byte_array);
- memset(EventString,0,100000);
+ memset(EventString,0,sizeof(EventString));
while(1){
memset(buff,0,sizeof(buff));
length=read(GSocket,&buff,sizeof(buff));
@@ -164,21 +172,21 @@
return ret;
}
-char* GetAnalyserAll() //9.鏌ヨ璁惧 鍙傛暟锛氭棤 杩斿洖锛氬垎鏋愬櫒鐨勫悕绉板拰ip
+char* GetAnalyserAll() //9.閺屻儴顕楃拋鎯ь槵 閸欏倹鏆熼敍姘¥ 鏉╂柨娲栭敍姘瀻閺嬫劕娅掗惃鍕倳缁夋澘鎷癷p
{
- memset(EventString,0,100000);
+ memset(EventString,0,sizeof(EventString));
int ret = Read_MysqlData();
if(ret==0) return EventString;
else return "fail";
}
-char* GetAnalyserNet(void) //5.鑾峰彇褰撳墠杞彂鍣ㄧ殑ip 鍙傛暟锛氭棤銆傝繑鍥烇細褰撳墠鐨刬p鍦板潃瀛愮綉鎺╃爜鍜岀綉鍏�
+char* GetAnalyserNet(void) //5.閼惧嘲褰囪ぐ鎾冲鏉烆剙褰傞崳銊ф畱ip 閸欏倹鏆熼敍姘¥閵嗗倽绻戦崶鐑囩窗瑜版挸澧犻惃鍒琾閸︽澘娼冪�涙劗缍夐幒鈺冪垳閸滃瞼缍夐崗?
{
memset(NetInfo,0,128);
/// function
return NetInfo;
}
-int SetAnalyserNet(char* NetInfo) //6.鎵嬪姩璁剧疆杞彂鍣ㄧ殑ip 鍙傛暟锛歩p锛屽瓙缃戞帺鐮侊紝榛樿缃戝叧 銆� 杩斿洖锛氫慨鏀圭姸鎬�(鎴愬姛鎴栬�呭け璐�)
+int SetAnalyserNet(char* NetInfo) //6.閹靛濮╃拋鍓х枂鏉烆剙褰傞崳銊ф畱ip 閸欏倹鏆熼敍姝﹑閿涘苯鐡欑純鎴炲负閻緤绱濇妯款吇缂冩垵鍙� 閵�?鏉╂柨娲栭敍姘叏閺�鍦Ц閹�?閹存劕濮涢幋鏍偓鍛亼鐠�?
{
int ret=0;
/// function
@@ -215,6 +223,8 @@
//// 杈撳嚭锛�0锛堟垚鍔燂級, -1(鍒濆鍖栧け璐�),-2(杩炴帴澶辫触)
int RealEventStart(char* AnalyserIP,char* user,char* pass)
{
+ char buff[10240];
+
gAnalyzerIP = AnalyserIP;
gUser = user;
gPass = pass;
@@ -358,6 +368,7 @@
{
int eidx = (int)arg;
int length;
+ char buff[10240];
puts("Step.2 ========>Equipment Thread is strarted......");
@@ -416,7 +427,7 @@
char* GetRealEvent(char* AnalyserIP) //3.鏌ョ湅瀹炴椂鐩戞帶 鍙傛暟锛氬垎鏋愬櫒IP銆傝繑鍥烇細淇¢亾鍙峰強鍏跺搴旂殑瑙嗛娴佸湴鍧�
{
int Idx=FindIdx(AnalyserIP);
- memset(EventString,0,100000);
+ memset(EventString,0,sizeof(EventString));
if(Idx>=0 && Idx<16 && RealAlarmEventNum[Idx]>0){
for (int i=0;i<RealAlarmEventNum[Idx];i++)
{
@@ -457,6 +468,8 @@
//// 杈撳嚭锛氭煡璇㈢粨鏋溿�傦紙鍖呮嫭淇¢亾鍙凤紝鎶ヨ鏃堕棿锛屾挱鏀惧湴鍧�锛岀瓑銆傦級
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)
{
+ openlog("proxyserver", LOG_CONS | LOG_PID, 0);
+
char* result;
MyTime mstart_time;
mstart_time.Year=s_year;
@@ -479,6 +492,7 @@
char* GetMp4Info(char* AnalyserIP,char* user,char* pass,int Channel,char* path)
{
char Pathbuffer[100] = {0};
+ char buff[102400];
RequestChannel = Channel;
gAnalyzerIP = AnalyserIP;
@@ -607,7 +621,15 @@
}
-
+void DownloadSerFile(const char* uri)
+{
+ return;
+ char buff[1024];
+ sprintf(buff, "cd " ZIP_HOME "/tmpZip/;" " curl -u supervisor:supervisor 'http://%s%s' -O" , gAnalyzerIP, uri);
+ int ret = system(buff);
+ printf("DownloadSerFile, ret=%d, %s\n", ret, buff);
+
+}
//// 鏌ヨ鎶ヨ璁板綍
@@ -615,6 +637,18 @@
//// 杈撳嚭锛氭煡璇㈢粨鏋溿�傦紙鍖呮嫭淇¢亾鍙凤紝鎶ヨ鏃堕棿锛屾挱鏀惧湴鍧�锛岀瓑銆傦級
char* GetSearchMetaInfo(char* AnalyserIP,char* user,char* pass,int Channel,lpMyTime StartTm,lpMyTime EndTm)
{
+ char buff[102400];
+ //reset
+ memset(ZipSerFileName, 0, sizeof(ZipSerFileName));
+ ZipSerFileNum=0;
+ ZipCountidx;
+ EventCount = 0;
+ EventCountInSearchRange = 0;
+ RequestChannel = -1;
+ memset(myEventLogs, 0, sizeof(myEventLogs));
+ memset(EventString, 0, sizeof(EventString));
+ memset(byte_array, 0, sizeof(byte_array));
+
RequestChannel = Channel;
gAnalyzerIP = AnalyserIP;
gUser = user;
@@ -623,8 +657,8 @@
if(AnalyserIP==NULL || AnalyserIP[0]==0) return "-1";
// if(gGettingStep>0) return -2;
- chmod(ZIP_HOME,0777);
- //delete_file(ZIP_HOME "/tmp/tmp.zip");
+ //chmod(ZIP_HOME,0777);
+ //delete_file(ZIP_HOME "/tmp.zip");
//delete_file(ZIP_HOME "/tmpZip/*");
struct tm ttm;
@@ -632,20 +666,20 @@
int length;
char* httpUri;
char sss[24],eee[24];
- chmod("/home",0777);//#todo ZIP_HOME
+ chmod(ZIP_HOME,0777);
const char* folderr;
const char* filename1;
- folderr="/home/tmpZip";
- filename1="/home/tmp.zip";
+ folderr=ZIP_HOME "/tmpZip";
+ filename1=ZIP_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(stat(folderr,&sb)==0 && S_ISDIR(sb.st_mode))
+ // {
+ delete_folder(ZIP_HOME "/tmpZip");
+ // }
+ //if (doesFileExist(filename1))
+ // {
+ delete_file(ZIP_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";
@@ -670,7 +704,7 @@
SearchEndTm -= 8 * 60 * 60;
#ifdef DBG_LOG
- printf("stm=%d,etm=%d\n",(int)SearchStartTm,(int)SearchEndTm);
+ syslog(LOG_USER | LOG_INFO, "SearchStartTm=%d,SearchEndTm=%d\n",(int)SearchStartTm,(int)SearchEndTm);
#endif
//for (StepTm=SearchEndTm; StepTm>SearchStartTm; StepTm-=1*3600)
@@ -680,7 +714,7 @@
struct sockaddr_in servaddr;
int strlen1=sizeof(servaddr);
if((GSocket=socket(PF_INET,SOCK_STREAM,0))<0){
- perror("socket fail2");
+ syslog(LOG_USER | LOG_INFO, "socket fail2");
return "-3";
}
memset(&servaddr,0,strlen1);
@@ -689,7 +723,7 @@
servaddr.sin_port=htons(80);
if(connect(GSocket,(struct sockaddr*)&servaddr,strlen1)<0){
- printf("Equipment connect fail-%s:%d\n",gAnalyzerIP,80);
+ syslog(LOG_USER | LOG_INFO, "Equipment connect fail-%s:%d\n",gAnalyzerIP,80);
close(GSocket);
return "-4";
}
@@ -706,120 +740,154 @@
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";
eee[23]=0;
#ifdef DBG_LOG
- printf("sss=%s, eee=%s\n", sss, eee);
+ syslog(LOG_USER | LOG_INFO, "SearchStartTm=%s, SearchEndTm=%s\n", sss, eee);
#endif
RequestMetaFiles(gAnalyzerIP,httpUri,sss,eee);
write(GSocket,byte_array,strlen(byte_array));
+
- //鐢ㄤ互涓嬫柟娉曞皢socket璁剧疆涓洪潪闃诲鏂瑰紡
-// int flags = fcntl(GSocket, F_GETFL, 0);
-// fcntl(GSocket, F_SETFL, flags | O_NONBLOCK);
- while(1){
- memset(buff,0,sizeof(buff));
- length=read(GSocket,&buff,sizeof(buff));
+ //#test
+ {
+ length=read(GSocket,&buff,sizeof(buff));
+
+ //#test
+ //{
+ // FILE * pFile = fopen ("pro.txt","rb");
+ // length = fread ( buff, 1, sizeof(buff), pFile );
+ // fclose(pFile);
+ // bMetadataSaving = 0;
+ //}
+
if(length<=0)
{
close(GSocket);
- break;
+ syslog(LOG_USER | LOG_INFO, "length<=0");
}
if(memorycmp((unsigned char*)buff,length, "WWW-Authenticate:",17)>0)
{
// analyse reception
MakeAuthorizedPacketSimp111(buff,length,"GET",httpUri,sss,eee);
write(GSocket,byte_array,strlen(byte_array));
- continue;
}
- if(bMetadataSaving==1){
- memoryband[bandCount] = (unsigned char*)malloc(length);
- memcpy(memoryband[bandCount], buff, length);
- bandsize[bandCount] = length;
- if(bandCount<99) bandCount++;
- int eidx = stringcmp((char*)buff,"</urn:strings></urn:ViqStrings></urn:ViqStringsList>",52);
- if(eidx >=0){
- bMetadataSaving = 0;
- int SSize=0;
- for (int i=0;i<bandCount;i++) SSize+=bandsize[i];
- char *tmpp = (char*)malloc(SSize);
- int xx=0;
- for (int i=0;i<bandCount;i++)
- {
- memcpy(&tmpp[xx],memoryband[i],bandsize[i]);
- xx=bandsize[i];
- free(memoryband[i]);
- }
- memcpy(buff,tmpp,SSize);
- free(tmpp);
- goto lpp123;
- printf("**********Special*******************************ZipSerFileNum = %d",ZipSerFileNum);
- }
+
+ //FILE * pFile = fopen ("pro.txt","rb");
+ //length = fread ( buff, 1, sizeof(buff), pFile );
+
+ xmlParserCtxtPtr ctxt;
+ char chars[5000];
+ xmlDocPtr doc; /* the resulting document tree */
+ int res,totalres=0;
+
+ char* pBuff = buff;
+ while ((res = read(GSocket,chars,sizeof(chars))) > 0)
+ {
+ memcpy(pBuff, chars, res);
+ pBuff+=res;
+ totalres+=res;
}
- else{
- int sidx = stringcmp((char*)buff,"<urn:ViqStringsList urn:version=",32);
- if(sidx >=0){
- bMetadataSaving = 1;
- bandCount = 0;
- memoryband[bandCount] = (unsigned char*)malloc(length-sidx);
- memcpy(memoryband[bandCount], &buff[sidx], length-sidx);
- bandsize[bandCount] = length-sidx;
- if(bandCount<99) bandCount++;
- int eidx = stringcmp((char*)buff,"</urn:strings></urn:ViqStrings></urn:ViqStringsList>",52);
- if(eidx >=0 && sidx<eidx){
- free(memoryband[0]);
- bandCount = 0;
- bMetadataSaving = 0;
- buff[eidx]=0;
- int ptr=0;
- ////// analyze buffer
-lpp123: sidx = stringcmp((char*)&buff[ptr],"http://changeit:80/media",24);
- if(sidx >=0){//http://changeit:80/media/metadata/0/2016/8/25/1/2/s_5b4103706a6411e6855e574ec330e01d_20160825_013633_93003.zip
- int zipidx =-1;zipidx = stringcmp((char*)&buff[ptr],".zip",4);
- int seridx =-1;seridx = stringcmp((char*)&buff[ptr],".ser",4);
- int kkk=-1;
- if(zipidx>=0){
- if(seridx>=0){
- if(zipidx<seridx) kkk = zipidx;
- else kkk = seridx;
- }
- else kkk = zipidx;
- }
- else{
- if(seridx>=0) kkk = seridx;
- }
- if(kkk>=0 && kkk>sidx+18)
- {
- //涓嬭浇metadata
- char pathbuf[250] ;
- strncpy(pathbuf,(char*)&buff[ptr+sidx+18],kkk-sidx-18+4);
- pathbuf[kkk-sidx-18+4]=0;
- int i;
- for (i=0;i<ZipSerFileNum;i++)
- {
- if(strcmp(pathbuf,ZipSerFileName[i])==0) break;
- }
- if(i>=ZipSerFileNum){
- strcpy(ZipSerFileName[ZipSerFileNum],pathbuf);
- if(ZipSerFileNum<1000-1) ZipSerFileNum++;
- }
- ptr=ptr+kkk+4;
- goto lpp123;
- }
- }
- }
- }
+ *pBuff='\0';
+
+
+ //res = fread ( chars, 1, sizeof(chars), pFile );
+ char* urnbegin=strstr(buff, "<urn:");
+
+ //ctxt = xmlCreatePushParserCtxt(NULL, NULL, urnbegin, totalres-(urnbegin-buff), NULL);
+ //if (ctxt == NULL) {
+ // fprintf(stderr, "Failed to create parser context !\n");
+ //}
+ //
+ //xmlParseChunk(ctxt, urnbegin, totalres-(urnbegin-buff), 1);
+
+ //while ((res = fread ( chars, 1, sizeof(chars), pFile )) > 0) { // fread(chars, 4)
+ //while ((res = read(GSocket,chars,sizeof(chars))) > 0) {
+ // xmlParseChunk(ctxt, chars, res, 0);
+ //}
+
+ //doc = ctxt->myDoc;
+ doc = xmlParseDoc(urnbegin);
+ //res = ctxt->wellFormed;
+ //xmlFreeParserCtxt(ctxt);
+
+ //if (!res) {
+ // fprintf(stderr, "Failed to parse %s\n", "pro.txt");
+ //}
+
+ /* Create xpath evaluation context */
+ xmlXPathContextPtr xpathCtx = xmlXPathNewContext(doc);
+ if(xpathCtx == NULL) {
+ fprintf(stderr,"Error: unable to create new XPath context\n");
+ xmlFreeDoc(doc);
+ return(-1);
}
- }// while end
+
+ //xmlNode * root_element = xmlDocGetRootElement(doc);
+ //{
+ // xmlNode *cur_node = NULL;
+ //
+ // for (cur_node = root_element; cur_node; cur_node = cur_node->next) {
+ // if (cur_node->type == XML_ELEMENT_NODE) {
+ // syslog(LOG_USER | LOG_INFO, "node type: Element, name: %s %s\n", cur_node->ns->prefix,cur_node->ns->href );
+ // }
+ // }
+ //}
+
+ if(xmlXPathRegisterNs(xpathCtx, "urn", "urn:videoiq-com") != 0) {
+ fprintf(stderr,"Error: unable to register NS with prefix=\"\" and href=\"\"\n");
+ return(-1);
+ }
+
+ xmlXPathObjectPtr xpathObj = xmlXPathEvalExpression("//urn:strings", xpathCtx);
+ if(xpathObj == NULL) {
+ fprintf(stderr,"Error: unable to evaluate xpath expression \"%s\"\n", "urn:strings");
+ xmlXPathFreeContext(xpathCtx);
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+
+ ZipSerFileNum=0;
+ xmlNodeSetPtr nodes = xpathObj->nodesetval;
+ for(int i = 0; i<nodes->nodeNr; i++)
+ {
+ const char* uri=xmlNodeGetContent(nodes->nodeTab[i]);
+ strcpy(ZipSerFileName[ZipSerFileNum], uri+18);
+ ZipSerFileNum++;
+ syslog(LOG_USER | LOG_INFO, "%s\n", uri+18);
+ }
+
+ syslog(LOG_USER | LOG_INFO, "ser parse finished\n");
+
+
+ xmlFreeDoc(doc);
+
+
+ //fclose(pFile);
+ close(GSocket);
+
+
+ }
+
+
}//for
//////// get
+ syslog(LOG_USER | LOG_INFO, "ZipSerFileNum=%d\n", ZipSerFileNum);
+
for(ZipCountidx = 0; ZipCountidx<ZipSerFileNum; ZipCountidx++)
{
- if(stringcmp((char*)ZipSerFileName[ZipCountidx],".ser",4)>=0) continue;
+ syslog(LOG_USER | LOG_INFO, "ZipSerFileName[%d]=%s\n", ZipCountidx, (char*)ZipSerFileName[ZipCountidx]);
+
+ if(stringcmp((char*)ZipSerFileName[ZipCountidx],".ser",4)>=0)
+ {
+ DownloadSerFile(ZipSerFileName[ZipCountidx]);
+ continue;
+ }
+
zclock_sleep(200);
// printf(" ==== Search loop function execution =================%d,%d \n",(int)StepTm,(int)SearchStartTm);
struct sockaddr_in servaddr;
int strlen1=sizeof(servaddr);
if((GSocket=socket(PF_INET,SOCK_STREAM,0))<0){
- perror("socket fail2");
+ syslog(LOG_USER | LOG_INFO, "socket fail2");
return "-3";
}
memset(&servaddr,0,strlen1);
@@ -828,13 +896,13 @@
servaddr.sin_port=htons(80);
if(connect(GSocket,(struct sockaddr*)&servaddr,strlen1)<0){
- printf("Equipment connect fail-%s:%d\n",gAnalyzerIP,80);
+ syslog(LOG_USER | LOG_INFO, "Equipment connect fail-%s:%d\n",gAnalyzerIP,80);
close(GSocket);
return "-4";
}
httpUri = ZipSerFileName[ZipCountidx];//"/media/metadata/0/2016/8/25/1/2/s_5b4103706a6411e6855e574ec330e01d_20160825_013633_93003.zip";
- RequestZipSerFiles(gAnalyzerIP,httpUri);
+ RequestZipSerFiles(gAnalyzerIP, httpUri);
write(GSocket,byte_array,strlen(byte_array));
// printf("==========================================================================================================================>>>>>>>>\n");
// printf("%s",byte_array);
@@ -872,7 +940,10 @@
bZipFileSaving = 0;
close(GSocket);
//Convert Zip file to Ser file
- system("unzip -o " ZIP_HOME "/tmp.zip -d " ZIP_HOME "/tmpZip");
+ int ret=system("unzip -o " ZIP_HOME "/tmp.zip -d " ZIP_HOME "/tmpZip");
+#ifdef DBG_LOG
+ syslog(LOG_USER | LOG_INFO, "unzip1 ret=%d\n", ret);
+#endif
}
}
else{
@@ -894,7 +965,10 @@
bZipFileSaving = 0;
close(GSocket);
//Convert Zip file to Ser file
- system("unzip -o " ZIP_HOME "/tmp.zip -d " ZIP_HOME "/tmpZip");
+ int ret=system("unzip -o " ZIP_HOME "/tmp.zip -d " ZIP_HOME "/tmpZip");
+#ifdef DBG_LOG
+ syslog(LOG_USER | LOG_INFO, "unzip0 ret=%d\n", ret);
+#endif
}
}
}
@@ -906,7 +980,7 @@
char stringpath[1024];
unsigned char p_save_buf[6144000];
- for(i=0;i<num;i++)
+ for(int i=0;i<num;i++)
{
if(filename[i].name[0]=='.') continue;
memset(stringpath,0,1024);
@@ -922,13 +996,13 @@
memset(EventString,0,sizeof(EventString));
//for(i=0;i<1000;i++)
#ifdef DBG_LOG
- printf("EventCount===========================%d\n",EventCount);
- printf("EventCountInSearchRange==============%d\n",EventCountInSearchRange);
+ syslog(LOG_USER | LOG_INFO, "EventCount===========================%d\n",EventCount);
+ syslog(LOG_USER | LOG_INFO, "EventCountInSearchRange==============%d\n",EventCountInSearchRange);
#endif
strcat(EventString,"[");
- for (i=0;i<EventCount;i++)
+ for (int i=0;i<EventCount;i++)
{
#ifndef DBG_LOG
if (! myEventLogs[i].InSearchRange)
@@ -965,12 +1039,6 @@
}
strcat(EventString,"]");
-
- //reset
- //EventCount = 0;//#todo
- //EventCountInSearchRange = 0;
- //RequestChannel = -1;
- //memset(&myEventLogs, 0, sizeof(myEventLogs));
return EventString;
//return "333333333333333333333333333333333333333333333333333333333333333333789";
@@ -980,6 +1048,7 @@
//// 杈撳嚭锛�0锛堟垚鍔燂級, -1(鍒濆鍖栧け璐�),-2(杩炴帴澶辫触)
int RestartCommand(char* AnalyserIP,char* user,char* pass)
{
+ char buff[10240];
gAnalyzerIP = AnalyserIP;
gUser = user;
gPass = pass;
@@ -991,7 +1060,7 @@
struct sockaddr_in servaddr;
int strlen1=sizeof(servaddr);
if((GSocket=socket(PF_INET,SOCK_STREAM,0))<0){
- perror("socket fail2");
+ syslog(LOG_USER | LOG_INFO, "socket fail2");
return -1;
}
memset(&servaddr,0,strlen1);
@@ -1000,7 +1069,7 @@
servaddr.sin_port=htons(80);
if(connect(GSocket,(struct sockaddr*)&servaddr,strlen1)<0){
- printf("Equipment connect fail-%s:%d\n",gAnalyzerIP,80);
+ syslog(LOG_USER | LOG_INFO, "Equipment connect fail-%s:%d\n",gAnalyzerIP,80);
close(GSocket);
return -2;
}
@@ -1029,10 +1098,14 @@
}
close(GSocket);
- if (bbbb==0) return -1;
+ if (bbbb==0)
+ {
+ syslog(LOG_USER | LOG_INFO, "bbbb==0");
+ return -1;
+ }
// zclock_sleep(200);
if((GSocket=socket(PF_INET,SOCK_STREAM,0))<0){
- perror("socket fail2");
+ syslog(LOG_USER | LOG_INFO, "socket fail2");
return -1;
}
memset(&servaddr,0,strlen1);
@@ -1041,7 +1114,7 @@
servaddr.sin_port=htons(80);
if(connect(GSocket,(struct sockaddr*)&servaddr,strlen1)<0){
- printf("Equipment connect fail-%s:%d\n",gAnalyzerIP,80);
+ syslog(LOG_USER | LOG_INFO, "Equipment connect fail-%s:%d\n",gAnalyzerIP,80);
close(GSocket);
return -2;
}
@@ -1063,9 +1136,13 @@
void RequestMetaFiles(char* AnaylyIP,char* httpUri,char* Tm1,char* Tm2)
{
+#ifdef DBG_LOG
+ syslog(LOG_USER | LOG_INFO, "RequestMetaFiles, httpUri=%s\n", httpUri);
+#endif
+
char byte_arrayxxx[1600];
int lengthxxx = 0;
- memset(byte_array,0,1600);
+ memset(byte_array,0,sizeof(byte_array));
UrnStringToBytes(byte_arrayxxx,&lengthxxx,Tm1,Tm2);// xml
int iidx =0,llen=0;;
@@ -1075,11 +1152,14 @@
llen = sprintf(&byte_array[iidx],"Host: %s:%d\r\n",AnaylyIP,80); iidx+=llen;
llen = sprintf(&byte_array[iidx],"%s","Connection: Keep_Alive\r\n\r\n"); iidx+=llen;
strncpy(&byte_array[iidx],byte_arrayxxx,lengthxxx); iidx+=lengthxxx;
-
}
void RequestZipSerFiles(char* AnaylyIP,char* httpUri)
{
- memset(byte_array,0,1600);
+#ifdef DBG_LOG
+ syslog(LOG_USER | LOG_INFO, "RequestZipSerFiles, httpUri=%s\n", httpUri);
+#endif
+
+ memset(byte_array,0,sizeof(byte_array));
int iidx =0,llen=0;;
llen = sprintf(byte_array,"GET %s %s",httpUri,"HTTP/1.1\r\n"); iidx+=llen;
@@ -1675,7 +1755,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<200-1){///repair //#todo 12.7
+ if(somewhat && EventCount<2000-1){///repair //#todo 12.7
sprintf(myEventLogs[EventCount].Camera,"%d",RequestChannel+1);
int i;
for (i=0;i<EventCount;i++)
@@ -1978,14 +2058,20 @@
char cmd[30];
memset(cmd,0,30);
sprintf(cmd,"rm -f %s",path);
- system(cmd);
+ int ret = system(cmd);
+#ifdef DBG_LOG
+ syslog(LOG_USER | LOG_INFO, "delete_file, ret=%d, %s\n", ret, path);
+#endif
}
void delete_folder(const char *path)
{
char cmd[30];
memset(cmd,0,30);
sprintf(cmd,"rm -r %s",path);
- system(cmd);
+ int ret = system(cmd);
+#ifdef DBG_LOG
+ syslog(LOG_USER | LOG_INFO, "delete_folder, ret=%d, %s\n", ret, path);
+#endif
}
int doesFileExist(const char *filename)
{
@@ -2502,6 +2588,12 @@
return output;
}
-
+void zclock_sleep (int msecs)
+{
+ struct timespec t;
+ t.tv_sec = msecs / 1000;
+ t.tv_nsec = (msecs % 1000) * 1000000;
+ nanosleep (&t, NULL);
+}
--
Gitblit v1.8.0