int ltdeljjr(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char sqlBuf[1048]; char caMsg[256]; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html\n","lthtml",LT_TYPE_STRING,""); ltMsgFree(ltMsgPk); return 0; } sprintf(sqlBuf,"delete from nasjjr where jjrid in (%s) ", ltMsgGetVar_s(ltMsgPk,"checkbox")); ltDbExecSql(G_DbCon,sqlBuf); _ltPubInfo->_jjrtimelist[atol(ltMsgGetVar_s(ltMsgPk,"checkbox"))].jjrid=0; strcpy(_ltPubInfo->_jjrtimelist[atol(ltMsgGetVar_s(ltMsgPk,"checkbox"))].jjrname,""); strcpy(_ltPubInfo->_jjrtimelist[atol(ltMsgGetVar_s(ltMsgPk,"checkbox"))].jjrdesc,""); strcpy(_ltPubInfo->_jjrtimelist[atol(ltMsgGetVar_s(ltMsgPk,"checkbox"))].jjrtime,""); snprintf(caMsg,255,"%s","delete nasjjr success."); logWrite(ltMsgPk,caMsg,3); ltDbClose(G_DbCon); ltjjrinfolist(confd,ltMsgPk,lt_MMHead); return 0; }
/*初始化服务特征*/ int ltreseturlsort(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char *casrvid; char *caflag; casrvid=ltMsgGetVar_s(ltMsgPk,"srvid"); caflag=ltMsgGetVar_s(ltMsgPk,"flag"); if(atoi(caflag)==1){ char pFile[512]; char caCmdCon[2048]; //初始服务特征 memset(pFile,0,sizeof(pFile)); sprintf(pFile,"/etc/msa/msa/srvlist/srvdefine/%s",casrvid); memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"/bin/rm -rf %s",pFile); system(caCmdCon); //初始IP列表 memset(pFile,0,sizeof(pFile)); sprintf(pFile,"/etc/msa/msa/srvlist/diplist/%s",casrvid); memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"/bin/rm -rf %s",pFile); system(caCmdCon); //初始域名列表 memset(pFile,0,sizeof(pFile)); sprintf(pFile,"/etc/msa/msa/srvlist/urllist/%s",casrvid); memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"/bin/rm -rf %s",pFile); system(caCmdCon); ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; }else{ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,"1"); ltMsgFree(ltMsgPk); return 0; } }
/*加载服务修改页面*/ int ltupdateurlsort(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char *my_id; char sqlBuf[2048]; ltDbHeadPtr dbPtr; dbPtr=lt_dbinit(); ltDbCursor *tempCursor; LT_DBROW tempRow; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL) { ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html\n","lthtml",LT_TYPE_STRING,"db error!"); ltMsgFree(ltMsgPk); return 0; } my_id=ltMsgGetVar_s(ltMsgPk,"my_id"); dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); if(my_id!=NULL){ sprintf(sqlBuf,"select srvid,topsrvid,denytype,srvname,srvdesc,level from nassrv where srvid='%s'",my_id); printf("sqlBuf:%s\n",sqlBuf); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ char str[16]; memset(str,0,sizeof(str)); sprintf(str,"denytype%ssel",tempRow[2]); lt_dbput_rootvars(dbPtr,1,str,"selected");//服务类型 lt_dbput_rootvars(dbPtr,1,"srvname",tempRow[3]); lt_dbput_rootvars(dbPtr,1,"srvdesc",tempRow[4]); memset(str,0,sizeof(str)); sprintf(str,"level%ssel",tempRow[5]); lt_dbput_rootvars(dbPtr,1,str,"selected");//危害级别 lt_dbput_rootvars(dbPtr,1,"rid",tempRow[0]); } ltDbCloseCursor(tempCursor); } } ltMsgPk->msgpktype=1; lt_dbput_html(confd,ltMsgPk,dbPtr->doc,"/app/msa/msa/htmlplt/manager/updateSrvPage.htm",dbPtr->head,0); ltMsgFree(ltMsgPk); ltDbClose(G_DbCon); return 0; }
/* *显示输入的用户名和密码 */ int ErrorTest(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead) { char *name; char *password; char *rePass; char myre[1024]; char caStr[2048]; char sqlBuf[2048]; name=ltMsgGetVar_s(ltMsgPk,"txtName"); if(!name){ name=""; } password=ltMsgGetVar_s(ltMsgPk,"txtPass"); if(!password){ password=""; } rePass=ltMsgGetVar_s(ltMsgPk,"txtRePass"); if(!rePass){ rePass=""; } if(strcmp(password,rePass)!=0){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\r\n", "lthtml",LT_TYPE_STRING,"error!"); ltMsgFree(ltMsgPk); return 0; } sprintf(caStr,"insert into msasusertest values (3,'%s','%s')",name,password); ltDbExecSql(G_DbCon,sqlBuf); //sprintf(caStr,"my name is:%s password:%s",name,password); sprintf(caStr,"%s is:%s password:%s",_ltPubInfo->pubMsgStr[0].conStr,name,password); ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\r\n", "lthtml",LT_TYPE_STRING,caStr); ltMsgFree(ltMsgPk); return 0; }
int ltjjrinfolist(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char sqlBuf[1024]; ltDbHeadPtr dbPtr; ltTablePtr tablePtr; ltDbCursor *tempCursor; LT_DBROW tempRow; char mytime[400]; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html\n","lthtml",LT_TYPE_STRING,""); ltMsgFree(ltMsgPk); return 0; } memset(mytime,0,sizeof(mytime)); // if(checkRight(confd,ltMsgPk,21)==-1){//权限判断 // return -1; // } dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); tablePtr=lt_dbput_table(dbPtr,"infolist"); sprintf(sqlBuf,"select jjrid,jjrname,jjrdesc,jjrtime,jjrtime1 from nasjjr"); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ sprintf(mytime,"%s%s",tempRow[3],tempRow[4]); lt_dbput_recordvars(tablePtr,4, "jjrid",LT_TYPE_STRING,tempRow[0], "jjrname",LT_TYPE_STRING,tempRow[1], "jjrdesc",LT_TYPE_STRING,tempRow[2], "jjrtime",LT_TYPE_STRING,mytime); tempRow= ltDbFetchRow(tempCursor); } ltDbCloseCursor(tempCursor); } lt_dbput_html(confd,ltMsgPk,dbPtr->doc,"/app/msa/msa/htmlplt/manager/jjredit.htm",dbPtr->head,0); ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); ltDbClose(G_DbCon); return 0; }
int ltupdatejjr(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char sqlBuf[1024]; char caMsg[256]; char mytime1[200]; char mytime2[200]; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html\n","lthtml",LT_TYPE_STRING,""); ltMsgFree(ltMsgPk); return 0; } memset(mytime1,0,sizeof(mytime1)); memset(mytime2,0,sizeof(mytime2)); memcpy(mytime1,ltMsgGetVar_s(ltMsgPk,"jjrtime"),198); memcpy(mytime2,ltMsgGetVar_s(ltMsgPk,"jjrtime")+198,198); sprintf(sqlBuf,"update nasjjr set jjrname='%s',jjrdesc='%s',jjrtime='%s',jjrtime1='%s' where jjrid=%s", ltMsgGetVar_s(ltMsgPk,"jjrname"), ltMsgGetVar_s(ltMsgPk,"jjrdesc"), mytime1,mytime2, ltMsgGetVar_s(ltMsgPk,"jjrid")); ltDbExecSql(G_DbCon,sqlBuf); strcpy(_ltPubInfo->_jjrtimelist[atol(ltMsgGetVar_s(ltMsgPk,"jjrid"))].jjrname,ltMsgGetVar_s(ltMsgPk,"jjrname")); strcpy(_ltPubInfo->_jjrtimelist[atol(ltMsgGetVar_s(ltMsgPk,"jjrid"))].jjrdesc,ltMsgGetVar_s(ltMsgPk,"jjrdesc")); strcpy(_ltPubInfo->_jjrtimelist[atol(ltMsgGetVar_s(ltMsgPk,"jjrid"))].jjrtime,ltMsgGetVar_s(ltMsgPk,"jjrtime")); snprintf(caMsg,255,"%s","update nasjjr success."); logWrite(ltMsgPk,caMsg,3); ltDbClose(G_DbCon); ltjjrinfolist(confd,ltMsgPk,lt_MMHead); return 0; }
int showView(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead) { char *caMatching_id; char *cagnmkey; char *casname; char *caRule_id; char *caRule_name; char *caMatching_time; char *caNet_ending_ip; char *caNet_ending_code; char *caNet_ending_mac; char *caDestination_ip; char *caService_type; char *caKeyWord1; char *caKeyWord2; char *caKeyWord3; char *caCustomer_name; char *caCertificate_type; char *caCertificate_code; char *caRule_type; char *cacontenturl; char *caupdateflag; //char myre[1024]; char caStr[2048]; char sqlBuf[2048]; int maxuid; ltDbCursor *tempCursor; LT_DBROW tempRow; caMatching_id=ltMsgGetVar_s(ltMsgPk,"txt_Matching_id"); if(!caMatching_id){ caMatching_id=""; } cagnmkey=ltMsgGetVar_s(ltMsgPk,"txt_gnmkey"); if(!cagnmkey){ cagnmkey=""; } casname=ltMsgGetVar_s(ltMsgPk,"txt_name"); if(!casname){ casname=""; } caRule_id=ltMsgGetVar_s(ltMsgPk,"txt_Rule_id"); if(!caRule_id){ caRule_id=""; } caRule_name=ltMsgGetVar_s(ltMsgPk,"txt_Rule_name"); if(!caRule_name){ caRule_name=""; } caMatching_time=ltMsgGetVar_s(ltMsgPk,"txt_Matching_time"); if(!caMatching_time){ caMatching_time=""; } caNet_ending_ip=ltMsgGetVar_s(ltMsgPk,"txt_Net_ending_ip"); if(!caNet_ending_ip){ caNet_ending_ip=""; } caNet_ending_code=ltMsgGetVar_s(ltMsgPk,"txt_Net_ending_code"); if(!caNet_ending_code){ caNet_ending_code=""; } caNet_ending_mac=ltMsgGetVar_s(ltMsgPk,"txt_Net_ending_mac"); if(!caNet_ending_mac){ caNet_ending_mac=""; } caDestination_ip=ltMsgGetVar_s(ltMsgPk,"txt_Destination_ip"); if(!caDestination_ip){ caDestination_ip=""; } caService_type=ltMsgGetVar_s(ltMsgPk,"txt_Service_type"); if(!caService_type){ caService_type=""; } caKeyWord1=ltMsgGetVar_s(ltMsgPk,"txt_KeyWord1"); if(!caKeyWord1){ caKeyWord1=""; } caKeyWord2=ltMsgGetVar_s(ltMsgPk,"txt_KeyWord2"); if(!caKeyWord2){ caKeyWord2=""; } caKeyWord3=ltMsgGetVar_s(ltMsgPk,"txt_KeyWord3"); if(!caKeyWord3){ caKeyWord3=""; } caCustomer_name=ltMsgGetVar_s(ltMsgPk,"txt_Customer_name"); if(!caCustomer_name){ caCustomer_name=""; } caCertificate_type=ltMsgGetVar_s(ltMsgPk,"txt_Certificate_type"); if(!caCertificate_type){ caCertificate_type=""; } caCertificate_code=ltMsgGetVar_s(ltMsgPk,"txtName"); if(!caCertificate_code){ caCertificate_code=""; } caRule_type=ltMsgGetVar_s(ltMsgPk,"txt_Certificate_code"); if(!caRule_type){ caRule_type=""; } cacontenturl=ltMsgGetVar_s(ltMsgPk,"txt_contenturl"); if(!cacontenturl){ cacontenturl=""; } caupdateflag=ltMsgGetVar_s(ltMsgPk,"txt_updateflag"); if(!caupdateflag){ caupdateflag=""; } maxuid=1; sprintf(sqlBuf,"select max(caMatching_id)+1 from AlertList" ); tempCursor=ltDbOpenCursorS(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ maxuid=atol(tempRow[0]); } ltDbCloseCursor(tempCursor); } memset(caStr,0,sizeof(caStr)); sprintf(sqlBuf,"select * from AlertList" ); tempCursor=ltDbOpenCursorS(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ sprintf(caStr,"%s%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\r\n<br>",caStr,tempRow[0],tempRow[1],tempRow[2],tempRow[3],tempRow[4],tempRow[5],tempRow[6],tempRow[7],tempRow[8],tempRow[9],tempRow[10],tempRow[11],tempRow[12],tempRow[13],tempRow[14],tempRow[15],tempRow[16],tempRow[17],tempRow[18],tempRow[19]); tempRow= ltDbFetchRow(tempCursor); } ltDbCloseCursor(tempCursor); } ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=gb2312\r\n", "lthtml",LT_TYPE_STRING,caStr); ltMsgFree(ltMsgPk); return 0; }
int msaReportWebLineAjaxSubmit(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead) { ltDbCursor *tempCursor; LT_DBROW tempRow; ltDbHeadPtr dbPtr; ltTablePtr tablePtr; char sqlBuf[1024]; char caSdate[32],caEdate[32],caSdate1[32],caSdate2[32]; char *reportname=NULL; char *email=NULL; char *lt_page_content=NULL; char *work=NULL; char caTempDir[256]; char responseDir[256]; char caLabel[256]; char strdayflow[32]; char htmlpage[256]; unsigned long long lMaxBytes=1; unsigned long tmpDir=0; unsigned long fileName=0; long lTime,lTime1,lTime2; int iFd=-1; int srvindex,step; step=0; memset(htmlpage,0,sizeof(htmlpage)); memset(caLabel,0,sizeof(caLabel)); memset(caTempDir,0,sizeof(caTempDir)); memset(responseDir,0,sizeof(responseDir)); char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL) { return 0; } if(ltMsgGetVar_s(ltMsgPk,"sdate")) { sprintf(caSdate,"%s",ltMsgGetVar_s(ltMsgPk,"sdate")); } else { sprintf(caSdate,"%s",""); } if(ltMsgGetVar_s(ltMsgPk,"edate")) { sprintf(caEdate,"%s",ltMsgGetVar_s(ltMsgPk,"edate")); } else { sprintf(caEdate,"%s",""); } if(ltMsgGetVar_s(ltMsgPk,"reportname")) { reportname=ltMsgGetVar_s(ltMsgPk,"reportname"); } if(ltMsgGetVar_s(ltMsgPk,"email")) { email=ltMsgGetVar_s(ltMsgPk,"email"); } if(ltMsgGetVar_s(ltMsgPk,"step")) { step=atoi(ltMsgGetVar_s(ltMsgPk,"step")); } if(ltMsgGetVar_s(ltMsgPk,"work")) { work=ltMsgGetVar_s(ltMsgPk,"work"); } if(ltMsgGetVar_s(ltMsgPk,"filedir")) { fileName=atoll(ltMsgGetVar_s(ltMsgPk,"filedir")); } if(fileName==0) { tmpDir=ltStrGetId(); sprintf(caTempDir,"%s%s/%lu/",_datacenterdir,_webreport,tmpDir); sprintf(responseDir,"%lu",tmpDir); printf("caTempDir:%s\n",caTempDir); if(ltFileIsExist(caTempDir)!=1) { if(mkdir(caTempDir,S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)!=0) { ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; } } } else { sprintf(caTempDir,"%s%s/%lu/",_datacenterdir,_webreport,fileName); sprintf(responseDir,"%lu",fileName); } lTime = time(0); if(!ltStrIsSpaces(caSdate)) { lTime1 = nasCvtLongTime(caSdate,"00:00:00"); } else { lTime1 = 0; } if(!ltStrIsSpaces(caEdate)) { lTime2 = nasCvtLongTime(caEdate,"23:59:59"); } else { lTime2 = 0; } if(lTime1 == 0) { lTime1 = lTime; } if(lTime2 == 0) { lTime2 = lTime; } if(lTime1 > lTime) { lTime1 = lTime; } if(lTime2>lTime) { lTime2=lTime; } char sDate[64],sTime[64]; char caFile1[256]; char caCmd[256]; int fdwrite=0; nasTimeGetDate(caSdate1,lTime); nasCvtStime(time(0),sDate,sTime); sprintf(caFile1,"%sinfo.ini",caTempDir); fdwrite = open(caFile1, O_APPEND | O_WRONLY | O_CREAT, 0644); if(fdwrite == (-1)) { ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; } sprintf(caCmd,"date=%s_%s\n",sDate,sTime); write(fdwrite,caCmd,strlen(caCmd)); sprintf(caCmd,"reportname=%s\n",reportname); write(fdwrite,caCmd,strlen(caCmd)); close(fdwrite); sprintf(caLabel,"/bin/echo '1' > %sproccess.ini",caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/right-top-d.jpg %s",_msahtmldir,_weblineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/right-top.jpg %s",_msahtmldir,_weblineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/banner.jpg %s",_msahtmldir,_weblineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/up-1.jpg %s",_msahtmldir,_weblineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/up-2.jpg %s",_msahtmldir,_weblineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/up-3.jpg %s",_msahtmldir,_weblineplt,caTempDir); system(caLabel); ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,responseDir); nasTimeGetDate(caSdate1,lTime1); nasTimeGetDate(caSdate2,lTime2); if(step==1) { //网址分类排序 sprintf(sqlBuf,"select urlsort,sum(bytes) as abyte from msahttpreport where sdate>='%s' and sdate<='%s' and workflag=%s group by urlsort order by abyte desc ",caSdate1,caSdate2,work); } else if(step==2) { //网址流量排序 sprintf(sqlBuf,"select host,sum(bytes) as abyte,sum(lcount) as acount,sum(ctime) as ctime from msauserhttpreport where sdate>='%s' and sdate<='%s' and workflag=%s group by host order by abyte asc",caSdate1,caSdate2,work); } else if(step==3) { //top30流量人员网址访问 sprintf(sqlBuf,"select host,sum(bytes) as abyte,sum(lcount) as acount,sum(ctime) as ctime from msauserhttpreport where sdate>='%s' and sdate<='%s' and workflag=%s group by host order by abyte asc limit %d offset 0",caSdate1,caSdate2,work,30); } else if(step==4) { //网址访问次数排序 sprintf(sqlBuf,"select host,sum(bytes) as abyte,sum(lcount) as acount,sum(ctime) as ctime from msahttpreport where sdate>='%s' and sdate<='%s' and workflag=%s group by host order by acount desc",caSdate1,caSdate2,work); } else if(step==5) { //网址分类访问次数排序 sprintf(sqlBuf,"select urlsort,sum(bytes) as abyte,sum(lcount) as acount from msahttpreport where sdate>='%s' and sdate<='%s' and workflag=%s group by urlsort order by acount desc ",caSdate1,caSdate2,work); } printf("sql:%s\n",sqlBuf); tempCursor = ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor == NULL) { sprintf(caLabel,"/bin/echo '%s' > %serrmsg.ini","数据库错误,无法生成报告",caTempDir); system(caLabel); ltMsgFree(ltMsgPk); return 0; } srvindex=1; lMaxBytes=1; dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); tablePtr=lt_dbput_table(dbPtr,"list"); tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL) { if(step==1) { if(atoll(tempRow[1])>1024000) { sprintf(strdayflow,"%0.3fM",atoll(tempRow[1])/1024000.00); } else { sprintf(strdayflow,"%0.3fKB",atoll(tempRow[1])/1024.00); } lt_dbput_recordvars(tablePtr,2, "urlsort",LT_TYPE_STRING,_ltPubInfo->ltService[atol(tempRow[0])].srvName, "lbyte",LT_TYPE_STRING,strdayflow ); printf("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n"); } else if(step==2) { if(atoll(tempRow[1])>1024000) { sprintf(strdayflow,"%0.3fM",atoll(tempRow[1])/1024000.00); } else { sprintf(strdayflow,"%0.3fKB",atoll(tempRow[1])/1024.00); } lt_dbput_recordvars(tablePtr,2, "host",LT_TYPE_STRING,tempRow[0], "lbyte",LT_TYPE_STRING,strdayflow ); } else if(step==3) { if(atoll(tempRow[1])>1024000) { sprintf(strdayflow,"%0.3fM",atoll(tempRow[1])/1024000.00); } else { sprintf(strdayflow,"%0.3fK",atoll(tempRow[1])/1024.00); } // if(lMaxBytes<atoll(tempRow[1])){ // lMaxBytes=atoll(tempRow[1]); // } lt_dbput_recordvars(tablePtr,4, "host",LT_TYPE_STRING,tempRow[0], "srvljflow",LT_TYPE_STRING,strdayflow, "srvlcount",LT_TYPE_STRING,tempRow[2], "srvljtime",LT_TYPE_STRING,time2str(atoi(tempRow[3])) ); } else if(step==4) { if(atoll(tempRow[1])>1024000) { sprintf(strdayflow,"%0.3fM",atoll(tempRow[1])/1024000.00); } else { sprintf(strdayflow,"%0.3fK",atoll(tempRow[1])/1024.00); } if(lMaxBytes<atoll(tempRow[1])) { lMaxBytes=atoll(tempRow[1]); } lt_dbput_recordvars(tablePtr,4, "host",LT_TYPE_STRING,tempRow[0], "srvljflow",LT_TYPE_STRING,strdayflow, "srvlcount",LT_TYPE_STRING,tempRow[2], "srvljtime",LT_TYPE_STRING,time2str(atoi(tempRow[3])) ); } else if(step==5) { if(atoll(tempRow[1])>1024000) { sprintf(strdayflow,"%0.3fM",atoll(tempRow[1])/1024000.00); } else { sprintf(strdayflow,"%0.3fK",atoll(tempRow[1])/1024.00); } if(lMaxBytes<atoll(tempRow[1])) { lMaxBytes=atoll(tempRow[1]); } lt_dbput_recordvars(tablePtr,3, "sorname",LT_TYPE_STRING,_ltPubInfo->ltService[atol(tempRow[0])].srvName, "srvljflow",LT_TYPE_STRING,strdayflow, "srvlcount",LT_TYPE_STRING,tempRow[2] ); } if(step==1) { srvindex++; } tempRow=ltDbFetchRow(tempCursor);//移动光标 } ltDbCloseCursor(tempCursor); // if(step==1){//画图 // close(iFd); // sprintf(caLabel,"%s/Scripts/onlinesrv-bar.pl %sdata.ini %ssrvreport.gif %llu ",_msahtmldir,caTempDir,caTempDir,lMaxBytes); //柱状 饼图:onlinesrv1.pl // system(caLabel); // lt_dbput_rootvars(dbPtr,1,"piechart","srvreport.gif" ); // } lt_dbput_rootvars(dbPtr,3,"reportname",reportname,"bdate",caSdate1,"edate",caSdate2); sprintf(htmlpage,"%s%s/webflow%d.htm",_msahtmldir,_weblineplt,step); printf("%s\n",htmlpage); lt_page_content=ltPltFileParse(htmlpage,dbPtr->doc,0); if(lt_page_content==NULL) { printf("11111111111111111111111111\n"); sprintf(caLabel,"/bin/echo '%s' > %serrmsg.ini","无报告数据,无法生成报告",caTempDir); system(caLabel);/*建立目录和正在处理标志*/ ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; } else { printf("22222222222222222222222222\n"); lt_page_content=strstr(lt_page_content,"<!DOCTYPE"); if(step==1) { sprintf(caLabel,"%sindex.htm",caTempDir); } else { sprintf(caLabel,"%spage%d.htm",caTempDir,step); } iFd = open(caLabel,O_WRONLY | O_NDELAY | O_TRUNC | O_CREAT,0644); if(iFd >0) { write(iFd,lt_page_content,strlen(lt_page_content)); } close(iFd); } if(step==5) { sprintf(caLabel,"%s/Scripts/html2mail %s index.htm %sindex.mht report %s",_msahtmldir,caTempDir,caTempDir,email); system(caLabel); } chdir(caTempDir); system("rm -f report.tgz"); system("tar -cvzf report.tgz *"); sprintf(caLabel,"/bin/rm %sproccess.ini",caTempDir); system(caLabel); sprintf(caLabel,"/bin/rm %serrmsg.ini",caTempDir); system(caLabel); ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; }
/*修改服务和特征*/ int ltsaveurlsort(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char sqlBuf[1024]; char *casrvid; char *camatchDirect; char *camatchAgree; char *camatchload; char *camatchportL; char *camatchportT; char *cadescmatch1; char *cadescmatch2; char *cadescmatch3; char *caflag; char *casrvname; char *casrvdesc; char *cadenytype; char *calevel; char caMsg[256]; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,""); ltMsgFree(ltMsgPk); return 0; } casrvid=ltMsgGetVar_s(ltMsgPk,"srvid"); camatchDirect=ltMsgGetVar_s(ltMsgPk,"matchDirect"); camatchAgree=ltMsgGetVar_s(ltMsgPk,"matchAgree"); camatchportL=ltMsgGetVar_s(ltMsgPk,"matchportL"); camatchportT=ltMsgGetVar_s(ltMsgPk,"matchportT"); camatchload=ltMsgGetVar_s(ltMsgPk,"matchload"); cadescmatch1=ltMsgGetVar_s(ltMsgPk,"srvdescmatch1"); cadescmatch2=ltMsgGetVar_s(ltMsgPk,"srvdescmatch2"); cadescmatch3=ltMsgGetVar_s(ltMsgPk,"srvdescmatch3"); casrvname=ltMsgGetVar_s(ltMsgPk,"srvname"); casrvdesc=ltMsgGetVar_s(ltMsgPk,"srvdesc"); cadenytype=ltMsgGetVar_s(ltMsgPk,"denytype"); calevel=ltMsgGetVar_s(ltMsgPk,"level"); caflag=ltMsgGetVar_s(ltMsgPk,"flag"); printf("123casrvid:%s\n",casrvid); //根据传的参数判断 if(atoi(caflag)==0){ //sprintf(sqlBuf,"update nassrv set matchDirect='%s',matchAgree='%s',matchportL='%s',matchportT='%s',matchload='%s',srvdescmatch1='%s',srvdescmatch2='%s',srvdescmatch3='%s' where srvid='%s'",camatchDirect,camatchAgree,camatchportL,camatchportT,camatchload,cadescmatch1,cadescmatch2,cadescmatch3,casrvid); //ltDbExecSql(G_DbCon,sqlBuf); char pFile[512]; if(casrvid==NULL){ sprintf(pFile,"/etc/msa/msa/srvlist/srvdefine/-1"); }else{ sprintf(pFile,"/etc/msa/msa/srvlist/srvdefine/%s",casrvid); } char caCmdCon[2048]; sprintf(caCmdCon,"echo '%s%s%s%s%s%s%s%s' > %s",camatchAgree,camatchDirect,camatchportL,camatchportT,camatchload,cadescmatch1,cadescmatch2,cadescmatch3,pFile); system(caCmdCon); snprintf(caMsg,255,"%s","update nassrv srvType success."); logWrite(ltMsgPk,caMsg,3); }else if(atoi(caflag)==1){ sprintf(sqlBuf,"update nassrv set denytype='%s',srvname='%s',srvdesc='%s',level='%s' where srvid='%s'",cadenytype,casrvname,casrvdesc,calevel,casrvid); ltDbExecSql(G_DbCon,sqlBuf); snprintf(caMsg,255,"%s","update nassrv success."); logWrite(ltMsgPk,caMsg,3); } printf("sqlBuf:%s\n",sqlBuf); ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; }
/*修改IP 域名*/ int msaUpdateType(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char *casrvid; char *cadenytype; char *casrvip; char *casrvarea; char *caflag; char caMsg[256]; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,""); ltMsgFree(ltMsgPk); return 0; } casrvid=ltMsgGetVar_s(ltMsgPk,"srvid");//my_id cadenytype=ltMsgGetVar_s(ltMsgPk,"denytype"); casrvip=ltMsgGetVar_s(ltMsgPk,"srvip"); casrvarea=ltMsgGetVar_s(ltMsgPk,"srvarea"); caflag=ltMsgGetVar_s(ltMsgPk,"flag"); //printf("casrvid:%s\n",casrvid); if(atoi(caflag)==1){ //修改IP char pFile[512]; if(casrvid!=NULL){ sprintf(pFile,"/etc/msa/msa/srvlist/diplist/%s",casrvid); }else{ sprintf(pFile,"/etc/msa/msa/srvlist/diplist/1"); } printf("pFile:%s\n",pFile); char *srvip; char caCmdCon[2048]; srvip=ltMsgGetVar_s(ltMsgPk,"srvip"); sprintf(caCmdCon,"echo '%s' > %s",srvip,pFile); system(caCmdCon); snprintf(caMsg,255,"%s","update nassrv IP success."); logWrite(ltMsgPk,caMsg,3); ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; }else if(atoi(caflag)==2){ //修改域名 char pFile[512]; if(casrvid!=NULL){ sprintf(pFile,"/etc/msa/msa/srvlist/urllist/%s",casrvid); }else{ sprintf(pFile,"/etc/msa/msa/srvlist/urllist/1"); } char *srvarea; char caCmdCon[2048]; srvarea=ltMsgGetVar_s(ltMsgPk,"srvarea"); sprintf(caCmdCon,"echo '%s' > %s",srvarea,pFile); system(caCmdCon); snprintf(caMsg,255,"%s","update nassrv domain success."); logWrite(ltMsgPk,caMsg,3); ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; } ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,"1"); ltMsgFree(ltMsgPk); return 0; }
/*服务分类查询*/ int lturlsortlist(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char strBuf[1024]; ltDbCursor *tempCursor; LT_DBROW tempRow; char caTmpp[512]; long lRowNum,lStartRec,lSumRec,lCount,lNum; int k; char *topsrvid; stralloc strTemp; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,"db error!"); ltMsgFree(ltMsgPk); return 0; } //ltDbClose(G_DbCon); topsrvid=ltMsgGetVar_s(ltMsgPk,"topsrvid");//一级服务 lRowNum=50; /*每页的行数*/ lSumRec=0;/*总行数*/ lCount=0; lStartRec=0; lNum=0; /*该页剩余的行数*/ if(ltMsgGetVar_s(ltMsgPk,"limit")){ lRowNum=atol(ltMsgGetVar_s(ltMsgPk,"limit")); } if(ltMsgGetVar_s(ltMsgPk,"start")){ lStartRec=atol(ltMsgGetVar_s(ltMsgPk,"start")); } if(strcmp(topsrvid,"-1")==0){ sprintf(strBuf,"select count(*) from nassrv"); }else{ sprintf(strBuf,"select count(*) from nassrv where topsrvid=%s",topsrvid); } tempCursor=ltDbOpenCursor(G_DbCon,strBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ lCount=atol(tempRow[0]); } } ltDbCloseCursor(tempCursor); strTemp.s=0; sprintf(caTmpp,"{\"totalCount\":\"%lu\",\"Results\":[",lCount); stralloc_cats(&strTemp,caTmpp); k=0; if(strcmp(topsrvid,"-1")==0){ sprintf(strBuf,"select srvid,topsrvid,denytype,srvname,srvdesc,level from nassrv order by srvid asc limit %lu offset %lu ",lRowNum,lStartRec); }else{ sprintf(strBuf,"select srvid,topsrvid,denytype,srvname,srvdesc,level from nassrv where topsrvid=%s order by srvid asc limit %lu offset %lu ",topsrvid,lRowNum,lStartRec); } printf("%s\n",strBuf); tempCursor=ltDbOpenCursor(G_DbCon,strBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ if(k==0){ sprintf(caTmpp,"{\"srvid\":\"%s\",\"topsrvname\":\"%s\",\"srvname\":\"%s\",\"srvdesc\":\"%s\",\"level\":\"%s\",\"denytype\":\"%s\"}", tempRow[0],_ltPubInfo->topSrvName[atoi(tempRow[1])].srvname,tempRow[3],tempRow[4],tempRow[5],tempRow[2]); stralloc_cats(&strTemp,caTmpp); }else{ sprintf(caTmpp,",{\"srvid\":\"%s\",\"topsrvname\":\"%s\",\"srvname\":\"%s\",\"srvdesc\":\"%s\",\"level\":\"%s\",\"denytype\":\"%s\"}", tempRow[0],_ltPubInfo->topSrvName[atoi(tempRow[1])].srvname,tempRow[3],tempRow[4],tempRow[5],tempRow[2]); stralloc_cats(&strTemp,caTmpp); } tempRow= ltDbFetchRow(tempCursor); k++; } ltDbCloseCursor(tempCursor); } stralloc_cats(&strTemp,"]}"); stralloc_0(&strTemp); ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,strTemp.s); ltDbClose(G_DbCon); ltMsgFree(ltMsgPk); return 0; }
int msasShowAdminLogon(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ ltDbHeadPtr dbPtr; unsigned int sid; char sIp[24]; int i; char strsid[12]; int adminipcount; int ipok; char sqlBuf[1024]; ltDbCursor *tempCursor; LT_DBROW tempRow; sid=0; memset(sIp,0,sizeof(sIp)); ltMsgGetSomeNVar(ltMsgPk,1,"clientip", LT_TYPE_STRING, 19, sIp); dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); adminipcount=0; ipok=0; sprintf(sqlBuf,"select count(*) from msasAdminArea "); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ adminipcount=atol(tempRow[0]); } ltDbCloseCursor(tempCursor); } if(adminipcount==0){ ipok=1; }else{ unsigned int s_ip,e_ip,my_ip; my_ip=ntohl(inet_addr(sIp)); sprintf(sqlBuf,"select ipstart,ipend from msasAdminArea "); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ s_ip=ntohl(inet_addr(tempRow[0])); e_ip=ntohl(inet_addr(tempRow[1])); if( (my_ip >=s_ip) && (my_ip <=e_ip) ){ ipok=1; break; } } ltDbCloseCursor(tempCursor); } } if(ipok==0){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\">Ip Area error!</body></html>"); ltMsgFree(ltMsgPk); return 0; } for(i=0;i<MAX_ADMIN_SESSION;i++){ if(strcmp(_ltPubInfo->admSession[i].lright,"0000000000000000000000000000000000000000000")==0){ if( (time(0)-_ltPubInfo->admSession[i].lasttime) > MAX_ADMIN_TRYTIMEOUT ){ _ltPubInfo->admSession[i].lSip=0; _ltPubInfo->admSession[i].lasttime=0; _ltPubInfo->admSession[i].trytimes=0; _ltPubInfo->admSession[i].lSid=0; sprintf(_ltPubInfo->admSession[i].lright,"%s","0000000000000000000000000000000000000000000"); } }else{ if( (time(0)-_ltPubInfo->admSession[i].lasttime) > MAX_ADMIN_TIMEOUT ){ _ltPubInfo->admSession[i].lSip=0; _ltPubInfo->admSession[i].lasttime=0; _ltPubInfo->admSession[i].trytimes=0; _ltPubInfo->admSession[i].lSid=0; sprintf(_ltPubInfo->admSession[i].lright,"%s","0000000000000000000000000000000000000000000"); } } } for(i=0;i<MAX_ADMIN_SESSION;i++){ if(_ltPubInfo->admSession[i].lSip==ntohl(inet_addr(sIp)) ){ _ltPubInfo->admSession[i].lSip=0; _ltPubInfo->admSession[i].lasttime=0; _ltPubInfo->admSession[i].trytimes=0; _ltPubInfo->admSession[i].lSid=0; sprintf(_ltPubInfo->admSession[i].lright,"%s","0000000000000000000000000000000000000000000"); } } { gdImagePtr im; int white,red; char caTempDir[128]; char caTempFile[128]; void *pJpg; int lSize; sid=time(0)%10000; sprintf(strsid,"%04d",sid); im = gdImageCreate(40,16); red= gdImageColorAllocate(im, 0, 0, 0); white= gdImageColorAllocate(im, 255, 255, 255); gdImageRectangle(im, 0, 0, 40, 16, red); gdImageString(im, gdFontMediumBold, 5, 2, strsid, white); sprintf(caTempDir,"%s/%lu/",_TMPDIR,ltStrGetId()); if(ltFileIsExist(caTempDir)!=1) { if(mkdir(caTempDir,S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)!=0) { return 0; } } sprintf(caTempFile,"%scheck.jpg",caTempDir); pJpg = gdImageJpegPtr( im,&lSize,-1); gdImageDestroy(im); saveJPG(pJpg,lSize, caTempFile); lt_db_setcookie(dbPtr,"strsid", strsid); lt_dbput_rootvars(dbPtr,1,"file1",caTempFile+strlen(_TMPDIR)+1); ltMsgPk->msgpktype=1; lt_dbput_html(confd,ltMsgPk,dbPtr->doc,"/app/msa/msas/htmlplt/index.htm",dbPtr->head,0); } ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; }
int msaalertset(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char *pFile="/etc/msa/msa/alert"; char caCmdCon[128]; char *mailalert,*smsalert; char *diskalert,*memalert,*mail,*telphone; char *newadminalert,*newrulealert,*delrulealert; char *outflowalert,*p2pflowalert; //报警方式 邮件check 短信check //关闭Ping if(ltMsgGetVar_s(ltMsgPk,"mailalert")){ mailalert=ltMsgGetVar_s(ltMsgPk,"mailalert"); }else{ mailalert="no"; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'mailalert=%s' > %s",mailalert,pFile); system(caCmdCon); if(ltMsgGetVar_s(ltMsgPk,"smsalert")){ smsalert=ltMsgGetVar_s(ltMsgPk,"smsalert"); }else{ smsalert="no"; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'smsalert=%s' >> %s",smsalert,pFile); system(caCmdCon); //系统异常报警 if(ltMsgGetVar_s(ltMsgPk,"diskalert")){ diskalert=ltMsgGetVar_s(ltMsgPk,"diskalert"); }else{ diskalert=""; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'diskalert=%s' >> %s",diskalert,pFile); system(caCmdCon); if(ltMsgGetVar_s(ltMsgPk,"mail")){ mail=ltMsgGetVar_s(ltMsgPk,"mail"); }else{ mail=""; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'mail=%s' >> %s",mail,pFile); system(caCmdCon); if(ltMsgGetVar_s(ltMsgPk,"memalert")){ memalert=ltMsgGetVar_s(ltMsgPk,"memalert"); }else{ memalert="no"; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'memalert=%s' >> %s",memalert,pFile); system(caCmdCon); if(ltMsgGetVar_s(ltMsgPk,"telphone")){ telphone=ltMsgGetVar_s(ltMsgPk,"telphone"); }else{ telphone=""; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'telphone=%s' >> %s",telphone,pFile); system(caCmdCon); //关键操作报警 if(ltMsgGetVar_s(ltMsgPk,"newadminalert")){ newadminalert=ltMsgGetVar_s(ltMsgPk,"newadminalert"); }else{ newadminalert="no"; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'newadminalert=%s' >> %s",newadminalert,pFile); system(caCmdCon); if(ltMsgGetVar_s(ltMsgPk,"newrulealert")){ newrulealert=ltMsgGetVar_s(ltMsgPk,"newrulealert"); }else{ newrulealert="no"; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'newrulealert=%s' >> %s",newrulealert,pFile); system(caCmdCon); if(ltMsgGetVar_s(ltMsgPk,"delrulealert")){ delrulealert=ltMsgGetVar_s(ltMsgPk,"delrulealert"); }else{ delrulealert="no"; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'delrulealert=%s' >> %s",delrulealert,pFile); system(caCmdCon); //网络异常报警 if(ltMsgGetVar_s(ltMsgPk,"outflowalert")){ outflowalert=ltMsgGetVar_s(ltMsgPk,"outflowalert"); }else{ outflowalert=""; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'outflowalert=%s' >> %s",outflowalert,pFile); system(caCmdCon); if(ltMsgGetVar_s(ltMsgPk,"p2pflowalert")){ p2pflowalert=ltMsgGetVar_s(ltMsgPk,"p2pflowalert"); }else{ p2pflowalert=""; } memset(caCmdCon,0,sizeof(caCmdCon)); sprintf(caCmdCon,"echo 'p2pflowalert=%s' >> %s",p2pflowalert,pFile); system(caCmdCon); ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >系统安全设置成功!</body></html>"); ltMsgFree(ltMsgPk); return 0; }
/*加载服务分类页面*/ int lturlsort(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ ltDbHeadPtr dbPtr; dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); ltTablePtr tablePtr; tablePtr=lt_dbput_table(dbPtr,"srvlist"); int iii,alltopsrvnum=0; long lCount; char myalltopsrvnum[16]; char mylCount[16]; char myallurl[100]; long allurl=10000000; long lTime = nasCvtLongTime("2011-10-01","00:00:00"); long lTime1=time(0)-lTime; char myallsrvrule[16]; char strBuf[1024]; ltDbCursor *tempCursor; LT_DBROW tempRow; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html\n","lthtml",LT_TYPE_STRING,""); ltMsgFree(ltMsgPk); return 0; } lCount=0; sprintf(strBuf,"select count(*) from nassrv"); tempCursor=ltDbOpenCursor(G_DbCon,strBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ lCount=atol(tempRow[0]); } } ltDbCloseCursor(tempCursor); for(iii=0;iii<MAX_TOP_SRVNUM;iii++){ if(strcmp(_ltPubInfo->topSrvName[iii].srvname,"")!=0){ alltopsrvnum++; lt_dbput_recordvars(tablePtr,2,"topsrvid",LT_TYPE_LONG,iii,"topsrvname",LT_TYPE_STRING,_ltPubInfo->topSrvName[iii].srvname); } } sprintf(myalltopsrvnum,"%d",alltopsrvnum);//组 lt_dbput_rootvars(dbPtr,1,"alltopsrvnum",myalltopsrvnum); sprintf(mylCount,"%ld",lCount);//总服务 lt_dbput_rootvars(dbPtr,1,"allsrvnum",mylCount); sprintf(myallsrvrule,"%ld",lCount*2+27);//特征 lt_dbput_rootvars(dbPtr,1,"allsrvrule",myallsrvrule); sprintf(myallurl,"%ld",allurl+(lTime1)/3600/24*100); lt_dbput_rootvars(dbPtr,1,"allurl",myallurl); lt_dbput_html(confd,ltMsgPk,dbPtr->doc,"/app/msa/msa/htmlplt/manager/nasurlsort.htm",dbPtr->head,0); ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; }
int msaReportUserLineAjaxSubmit(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead) { printf("msaReportUserLineAjaxSubmit.................................\n"); ltDbCursor *tempCursor; LT_DBROW tempRow; ltDbHeadPtr dbPtr; ltTablePtr tablePtr; char sqlBuf[1024]; char caSdate[32],caEdate[32],caSdate1[32],caSdate2[32]; char *reportname=NULL; char *email=NULL; char *step=NULL; long gid=-1,uid=-1; char *lt_page_content=NULL; char caTempDir[256]; char responseDir[256]; char caLabel[256]; char strdayflow[32]; unsigned long long lMaxBytes=1; unsigned long tmpDir=0; unsigned long fileName=0; long lTime,lTime1,lTime2; int iFd=-1; int srvindex; //连接数据库 char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon!=NULL){ printf("db connect ok\n"); }else{ fprintf(stderr,"db connect error\n"); } /***************************ajax参数********************/ if(ltMsgGetVar_s(ltMsgPk,"sdate")){ sprintf(caSdate,"%s",ltMsgGetVar_s(ltMsgPk,"sdate")); }else{ sprintf(caSdate,"%s",""); } printf("caSdate:%s\n",caSdate); if(ltMsgGetVar_s(ltMsgPk,"edate")){ sprintf(caEdate,"%s",ltMsgGetVar_s(ltMsgPk,"edate")); }else{ sprintf(caEdate,"%s",""); } printf("caEdate:%s\n",caEdate); if(ltMsgGetVar_s(ltMsgPk,"reportname")){ reportname=ltMsgGetVar_s(ltMsgPk,"reportname"); } printf("reportname:%s\n",reportname); if(ltMsgGetVar_s(ltMsgPk,"email")){ email=ltMsgGetVar_s(ltMsgPk,"email"); } printf("email:%s\n",email); if(ltMsgGetVar_s(ltMsgPk,"step")){ step=ltMsgGetVar_s(ltMsgPk,"step"); } printf("step:%s\n",step); if(ltMsgGetVar_s(ltMsgPk,"gid")){ gid=atol(ltMsgGetVar_s(ltMsgPk,"gid")); } printf("gid:%ld\n",gid); if(ltMsgGetVar_s(ltMsgPk,"uid")&&atol(ltMsgGetVar_s(ltMsgPk,"uid"))!=0){ uid=atol(ltMsgGetVar_s(ltMsgPk,"uid")); }else{ uid=-1; } printf("uid:%ld\n",uid); if(ltMsgGetVar_s(ltMsgPk,"filedir")){ fileName=atoll(ltMsgGetVar_s(ltMsgPk,"filedir")); }else{ fileName=0; } printf("fileName:%ld\n",fileName); /****************目录生成************************/ if(fileName==0){ tmpDir=ltStrGetId(); sprintf(caTempDir,"%s/%lu/",userreportdatacenterdir,tmpDir); sprintf(responseDir,"%lu",tmpDir); if(ltFileIsExist(caTempDir)!=1){ if(mkdir(caTempDir,S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)!=0) { ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; } } }else{//从第二步开始传进第一步生成的目录 sprintf(caTempDir,"%s/%lu/",userreportdatacenterdir,fileName); sprintf(responseDir,"%lu",fileName); } /***********************日期处理*****************/ lTime = time(0); if(!ltStrIsSpaces(caSdate)){ lTime1 = nasCvtLongTime(caSdate,"00:00:00"); }else{ lTime1 = 0; } if(!ltStrIsSpaces(caEdate)) { lTime2 = nasCvtLongTime(caEdate,"23:59:59"); }else{ lTime2 = 0; } if(lTime1 == 0) { lTime1 = lTime; } if(lTime2 == 0) { lTime2 = lTime; } if(lTime1 > lTime) { lTime1 = lTime; } if(lTime2>lTime){ lTime2=lTime; } /******************************拷贝模板报告文件*************************/ char sDate[64],sTime[64]; char caFile1[256]; char caCmd[256]; int fdwrite=0; nasTimeGetDate(caSdate1,lTime); nasCvtStime(time(0),sDate,sTime); sprintf(caFile1,"%sinfo.ini",caTempDir); fdwrite = open(caFile1, O_APPEND | O_WRONLY | O_CREAT, 0644); if(fdwrite == (-1)) { ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; } sprintf(caCmd,"date=%s_%s\n",sDate,sTime); write(fdwrite,caCmd,strlen(caCmd)); sprintf(caCmd,"reportname=%s\n",reportname); write(fdwrite,caCmd,strlen(caCmd)); close(fdwrite); sprintf(caLabel,"/bin/echo '1' > %sproccess.ini",caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s/right-top-d.jpg %s",userlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s/right-top.jpg %s",userlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s/banner.jpg %s",userlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s/up-1.jpg %s",userlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s/up-2.jpg %s",userlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s/up-3.jpg %s",userlineplt,caTempDir); system(caLabel); ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,responseDir); /*************************数据库操作***************************************/ nasTimeGetDate(caSdate1,lTime1); nasTimeGetDate(caSdate2,lTime2); if(atoi(step)==1){//根据时间段生成服务协议分析流量汇总报表 sprintf(sqlBuf,"select service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 group by service order by service,abyte asc",caSdate1,caSdate2); printf("sqlBufno.1: %s\n",sqlBuf); }else if(atoi(step)==2){ if(uid!=-1&&gid!=-1){ sprintf(sqlBuf,"select c.name,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld and b.userid=%ld group by c.name,service order by c.name",caSdate1,caSdate2,gid,uid); }else if(uid==-1&&gid!=-1){ sprintf(sqlBuf,"select c.name,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld group by c.name,service order by c.name",caSdate1,caSdate2,gid); }else{ sprintf(sqlBuf,"select c.name,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 group by c.name,service order by c.name",caSdate1,caSdate2); } printf("sqlBufno.2: %s\n",sqlBuf); }else if(atoi(step)==3){ if(uid!=-1&&gid!=-1){ sprintf(sqlBuf,"select c.name,b.dispname,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld and b.userid=%ld group by c.name,b.dispname,service order by c.name,b.dispname,abyte asc",caSdate1,caSdate2,gid,uid); }else if(uid==-1&&gid!=-1){ sprintf(sqlBuf,"select c.name,b.dispname,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld group by c.name,b.dispname,service order by c.name,b.dispname,abyte asc",caSdate1,caSdate2,gid); }else{ sprintf(sqlBuf,"select c.name,b.dispname,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 group by c.name,b.dispname,service order by c.name,b.dispname,abyte asc",caSdate1,caSdate2); } printf("sqlBufno.3: %s\n",sqlBuf); }else if(atoi(step)==4){ if(uid!=-1){ sprintf(sqlBuf,"select c.name,b.dispname,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte,onlinetime from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld and b.userid=%ld group by c.name,b.dispname,service,onlinetime order by c.name,b.dispname,onlinetime asc",caSdate1,caSdate2,gid,uid); }else if(uid==-1&&gid!=-1){ sprintf(sqlBuf,"select c.name,b.dispname,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte,onlinetime from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld group by c.name,b.dispname,service,onlinetime order by c.name,b.dispname,onlinetime asc",caSdate1,caSdate2,gid); }else{ sprintf(sqlBuf,"select c.name,b.dispname,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte,onlinetime from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 group by c.name,b.dispname,service,onlinetime order by c.name,b.dispname,onlinetime asc",caSdate1,caSdate2); } printf("sqlBufno.4: %s\n",sqlBuf); }else if(atoi(step)==5){ if(uid!=-1){ sprintf(sqlBuf,"select c.name,b.dispname,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte,onlinetime from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld and b.userid=%ld group by c.name,b.dispname,service,onlinetime order by abyte desc limit 30",caSdate1,caSdate2,gid,uid); }else if(uid==-1&&gid!=-1){ sprintf(sqlBuf,"select c.name,b.dispname,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte,onlinetime from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld group by c.name,b.dispname,service,onlinetime order by abyte,c.name desc limit 30",caSdate1,caSdate2,gid); }else{ sprintf(sqlBuf,"select c.name,b.dispname,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte,onlinetime from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 group by c.name,b.dispname,service,onlinetime order by abyte,c.name desc limit 30",caSdate1,caSdate2); } printf("sqlBufno.5: %s\n",sqlBuf); }else if(atoi(step)==6){ if(uid!=-1){ sprintf(sqlBuf,"select c.name,b.dispname,a.host,d.url,sum(ctime) as arequest from msauserhttpreport a,msauser b,msaGroup c,nasurls d where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and c.id=b.groupid0 and b.userid=a.userid and a.urlsort=d.urlsort and c.id=%ld and b.userid=%ld group by c.name,b.dispname,d.url,a.bytes,host order by c.name,arequest desc limit 30",caSdate1,caSdate2,gid,uid); }else if(uid==-1&&gid!=-1){ sprintf(sqlBuf,"select c.name,b.dispname,a.host,d.url,sum(ctime) as arequest from msauserhttpreport a,msauser b,msaGroup c,nasurls d where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and c.id=b.groupid0 and b.userid=a.userid and a.urlsort=d.urlsort and c.id=%ld group by c.name,b.dispname,d.url,a.bytes,host order by c.name,arequest desc limit 30",caSdate1,caSdate2,gid); }else{ sprintf(sqlBuf,"select c.name,b.dispname,a.host,d.url,sum(ctime) as arequest from msauserhttpreport a,msauser b,msaGroup c,nasurls d where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and c.id=b.groupid0 and b.userid=a.userid and a.urlsort=d.urlsort group by c.name,b.dispname,d.url,a.bytes,host order by c.name,arequest desc limit 30",caSdate1,caSdate2); } printf("sqlBufno.6: %s\n",sqlBuf); }else if(atoi(step)==7){ if(uid!=-1){ sprintf(sqlBuf,"select sdate,c.name,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld and b.userid=%ld group by c.name,service,sdate order by sdate",caSdate1,caSdate2,gid,uid); }else if(uid==-1&&gid!=-1){ sprintf(sqlBuf,"select sdate,c.name,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 and c.id=%ld group by c.name,service,sdate order by sdate",caSdate1,caSdate2,gid); }else{ sprintf(sqlBuf,"select sdate,c.name,service,sum(ctime) as arequest,sum(ubytes+dbytes) as abyte from msasrvreport a,msauser b,msaGroup c where substring(sdate,3,8)>='%s' and substring(sdate,3,8)<='%s' and a.userid=b.userid and c.id=b.groupid0 group by c.name,service,sdate order by sdate",caSdate1,caSdate2); } printf("sqlBufno.7: %s\n",sqlBuf); } tempCursor = ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor == NULL){ sprintf(caLabel,"/bin/echo '%s' > %serrmsg.ini","数据库错误,无法生成报告",caTempDir); system(caLabel); ltMsgFree(ltMsgPk); return 0; } /************图片数据存储文件****************/ if(atoi(step)==1){ sprintf(caLabel,"%sdata.ini",caTempDir); iFd = open(caLabel,O_WRONLY | O_CREAT | O_TRUNC); if(iFd == (-1)){ sprintf(caLabel,"/bin/echo '%s' > %serrmsg.ini","无法建立数据文件",caTempDir); system(caLabel);/*建立目录和正在处理标志*/ ltDbCloseCursor(tempCursor); ltMsgFree(ltMsgPk); return 0; } } /**********************将数据显示的HTML页面*********************************/ srvindex=1; lMaxBytes=1; dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); tablePtr=lt_dbput_table(dbPtr,"list"); tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ /**********************模板化参数****************************************/ if(atoi(step)==1){ /***********流量单位转化*****************/ if(atoll(tempRow[2])>1024000){ sprintf(strdayflow,"%0.3fM",atoll(tempRow[2])/1024000.00); }else{ sprintf(strdayflow,"%0.3fK",atoll(tempRow[2])/1024.00); } sprintf(caLabel,"%d,%lld\r\n",srvindex,atoll(tempRow[2])); write(iFd, caLabel, strlen(caLabel)); if(lMaxBytes<atoll(tempRow[2])){ lMaxBytes=atoll(tempRow[2]); } lt_dbput_recordvars(tablePtr,3, "srvname",LT_TYPE_STRING,_ltPubInfo->topSrvName[atol(tempRow[0])].srvname, "srvljnum",LT_TYPE_STRING,tempRow[1], "srvljflow",LT_TYPE_STRING,strdayflow ); }else if(atoi(step)==2){ /***********流量单位转化*****************/ if(atoll(tempRow[3])>1024000){ sprintf(strdayflow,"%0.3fM",atoll(tempRow[3])/1024000.00); }else{ sprintf(strdayflow,"%0.3fK",atoll(tempRow[3])/1024.00); } if(lMaxBytes<atoll(tempRow[3])){ lMaxBytes=atoll(tempRow[3]); } lt_dbput_recordvars(tablePtr,4, "srvgname",LT_TYPE_STRING,tempRow[0], "srvname",LT_TYPE_STRING,_ltPubInfo->topSrvName[atol(tempRow[1])].srvname, "srvljnum",LT_TYPE_STRING,tempRow[2], "srvljflow",LT_TYPE_STRING,strdayflow ); }else if(atoi(step)==3){ /***********流量单位转化*****************/ if(atoll(tempRow[4])>1024000){ sprintf(strdayflow,"%0.3fM",atoll(tempRow[4])/1024000.00); }else{ sprintf(strdayflow,"%0.3fK",atoll(tempRow[4])/1024.00); } if(lMaxBytes<atoll(tempRow[4])){ lMaxBytes=atoll(tempRow[4]); } lt_dbput_recordvars(tablePtr,5, "srvgname",LT_TYPE_STRING,tempRow[0], "srvuname",LT_TYPE_STRING,tempRow[1], "srvname",LT_TYPE_STRING,_ltPubInfo->topSrvName[atol(tempRow[2])].srvname, "srvljnum",LT_TYPE_STRING,tempRow[3], "srvljflow",LT_TYPE_STRING,strdayflow ); }else if(atoi(step)==4){ /***********流量单位转化*****************/ if(atoll(tempRow[4])>1024000){ sprintf(strdayflow,"%0.3fM",atoll(tempRow[4])/1024000.00); }else{ sprintf(strdayflow,"%0.3fK",atoll(tempRow[4])/1024.00); } if(lMaxBytes<atoll(tempRow[4])){ lMaxBytes=atoll(tempRow[4]); } lt_dbput_recordvars(tablePtr,6, "srvgname",LT_TYPE_STRING,tempRow[0], "srvuname",LT_TYPE_STRING,tempRow[1], "srvname",LT_TYPE_STRING,_ltPubInfo->topSrvName[atol(tempRow[2])].srvname, "srvljnum",LT_TYPE_STRING,tempRow[3], "srvljflow",LT_TYPE_STRING,strdayflow, "srvonlinetime",LT_TYPE_STRING,tempRow[5] ); }else if(atoi(step)==5){ /***********流量单位转化*****************/ if(atoll(tempRow[4])>1024000){ sprintf(strdayflow,"%0.3fM",atoll(tempRow[4])/1024000.00); }else{ sprintf(strdayflow,"%0.3fK",atoll(tempRow[4])/1024.00); } if(lMaxBytes<atoll(tempRow[4])){ lMaxBytes=atoll(tempRow[4]); } lt_dbput_recordvars(tablePtr,6, "srvgname",LT_TYPE_STRING,tempRow[0], "srvuname",LT_TYPE_STRING,tempRow[1], "srvname",LT_TYPE_STRING,_ltPubInfo->topSrvName[atol(tempRow[2])].srvname, "srvljnum",LT_TYPE_STRING,tempRow[3], "srvljflow",LT_TYPE_STRING,strdayflow, "srvonlinetime",LT_TYPE_STRING,tempRow[5] ); }else if(atoi(step)==6){ lt_dbput_recordvars(tablePtr,5, "srvgname",LT_TYPE_STRING,tempRow[0], "srvuname",LT_TYPE_STRING,tempRow[1], "srvnetname",LT_TYPE_STRING,tempRow[2], "srvurlname",LT_TYPE_STRING,tempRow[3], "srvljnum",LT_TYPE_STRING,tempRow[4] ); }else if(atoi(step)==7){ /***********流量单位转化*****************/ if(atoll(tempRow[4])>1024000){ sprintf(strdayflow,"%0.3fM",atoll(tempRow[4])/1024000.00); }else{ sprintf(strdayflow,"%0.3fK",atoll(tempRow[4])/1024.00); } if(lMaxBytes<atoll(tempRow[4])){ lMaxBytes=atoll(tempRow[4]); } lt_dbput_recordvars(tablePtr,5, "srvsdate",LT_TYPE_STRING,tempRow[0], "srvgname",LT_TYPE_STRING,tempRow[1], "srvname",LT_TYPE_STRING,_ltPubInfo->topSrvName[atol(tempRow[2])].srvname, "srvljnum",LT_TYPE_STRING,tempRow[3], "srvljflow",LT_TYPE_STRING,strdayflow ); } if(atoi(step)==1){ srvindex++; } tempRow=ltDbFetchRow(tempCursor);//移动光标 } ltDbCloseCursor(tempCursor); if(atoi(step)==1){//画图 close(iFd); sprintf(caLabel,"/app/msa/msa/htmlplt/Scripts/onlinesrv-bar.pl %sdata.ini %ssrvreport.gif %llu ",caTempDir,caTempDir,lMaxBytes); //柱状 饼图:onlinesrv1.pl system(caLabel); lt_dbput_rootvars(dbPtr,1,"piechart","srvreport.gif" ); } lt_dbput_rootvars(dbPtr,3,"reportname",reportname,"bdate",caSdate1,"edate",caSdate2); if(atoi(step)==1){ lt_page_content=ltPltFileParse("/app/msa/msa/htmlplt/reportplt/userlineplt/userflow.htm",dbPtr->doc,0); }else if(atoi(step)==2){ lt_page_content=ltPltFileParse("/app/msa/msa/htmlplt/reportplt/userlineplt/userflow2.htm",dbPtr->doc,0); }else if(atoi(step)==3){ lt_page_content=ltPltFileParse("/app/msa/msa/htmlplt/reportplt/userlineplt/userflow3.htm",dbPtr->doc,0); }else if(atoi(step)==4){ lt_page_content=ltPltFileParse("/app/msa/msa/htmlplt/reportplt/userlineplt/userflow4.htm",dbPtr->doc,0); }else if(atoi(step)==5){ lt_page_content=ltPltFileParse("/app/msa/msa/htmlplt/reportplt/userlineplt/userflow5.htm",dbPtr->doc,0); }else if(atoi(step)==6){ lt_page_content=ltPltFileParse("/app/msa/msa/htmlplt/reportplt/userlineplt/userflow6.htm",dbPtr->doc,0); }else if(atoi(step)==7){ lt_page_content=ltPltFileParse("/app/msa/msa/htmlplt/reportplt/userlineplt/userflow7.htm",dbPtr->doc,0); } if(lt_page_content==NULL){ sprintf(caLabel,"/bin/echo '%s' > %serrmsg.ini","无报告数据,无法生成报告",caTempDir); system(caLabel);/*建立目录和正在处理标志*/ ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; }else{ lt_page_content=strstr(lt_page_content,"<!DOCTYPE"); if(atoi(step)==1){ sprintf(caLabel,"%sindex.htm",caTempDir); }else if(atoi(step)==2){ sprintf(caLabel,"%spage2.htm",caTempDir); }else if(atoi(step)==3){ sprintf(caLabel,"%spage3.htm",caTempDir); }else if(atoi(step)==4){ sprintf(caLabel,"%spage4.htm",caTempDir); }else if(atoi(step)==5){ sprintf(caLabel,"%spage5.htm",caTempDir); }else if(atoi(step)==6){ sprintf(caLabel,"%spage6.htm",caTempDir); }else{ sprintf(caLabel,"%spage7.htm",caTempDir); } iFd = open(caLabel,O_WRONLY | O_NDELAY | O_TRUNC | O_CREAT,0644); if(iFd >0) { write(iFd,lt_page_content,strlen(lt_page_content)); } close(iFd); } if(atoi(step)==7){ sprintf(caLabel,"/app/msa/msa/htmlplt/Scripts/html2mail %s index.htm %sindex.mht report %s",caTempDir,caTempDir,email); system(caLabel); } chdir(caTempDir); system("rm -f report.tgz"); system("tar -cvzf report.tgz *"); sprintf(caLabel,"/bin/rm %sproccess.ini",caTempDir); system(caLabel); sprintf(caLabel,"/bin/rm %serrmsg.ini",caTempDir); system(caLabel); ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); printf("caTempDir:::::::::%s\n",caTempDir);///datacenter/msa/report/weblinereport/71540000/ printf("responseDir:::::::::%s\n",responseDir);///datacenter/msa/report/weblinereport/71540000/ //把web主线生成的报告备份到手动生成报告列表 //system("cp -r -f /datacenter/msa/report/userlinereport/* /datacenter/msa/report/instantreport/"); return 0; }
/* *注册后查看所有用户 */ int msasTestApp(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char *name; char *password; char *rePass; char myre[1024]; char caStr[2048]; char sqlBuf[2048]; int maxuid; ltDbCursor *tempCursor; LT_DBROW tempRow; name=ltMsgGetVar_s(ltMsgPk,"txtName"); if(!name){ name=""; } password=ltMsgGetVar_s(ltMsgPk,"txtPass"); if(!password){ password=""; } rePass=ltMsgGetVar_s(ltMsgPk,"txtRePass"); if(!rePass){ rePass=""; } if(strcmp(password,rePass)!=0){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\r\n", "lthtml",LT_TYPE_STRING,"error!"); ltMsgFree(ltMsgPk); return 0; } maxuid=1; sprintf(sqlBuf,"select max(uid)+1 from msasusertest" ); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ maxuid=atol(tempRow[0]); } ltDbCloseCursor(tempCursor); } sprintf(sqlBuf,"insert into msasusertest values (%d,'%s','%s')",maxuid,name,password); ltDbExecSql(G_DbCon,sqlBuf); memset(caStr,0,sizeof(caStr)); sprintf(sqlBuf,"select * from msasusertest" ); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); //sprintf("%s%s%s",_ltPubInfo->pubMsgStr[1].conStr,_ltPubInfo->pubMsgStr[2].conStr,_ltPubInfo->pubMsgStr[3].conStr); while(tempRow!=NULL){ sprintf(caStr,"%s%s %s %s\r\n<br>",caStr,tempRow[0],tempRow[1],tempRow[2]); tempRow= ltDbFetchRow(tempCursor); } ltDbCloseCursor(tempCursor); } ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\r\n", "lthtml",LT_TYPE_STRING,caStr); ltMsgFree(ltMsgPk); return 0; }
int lteditqos(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char sqlBuf[1024]; int qosid; char *edittype; ltDbCursor *tempCursor; LT_DBROW tempRow; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,"db error!"); ltMsgFree(ltMsgPk); return 0; } qosid=atol(ltMsgGetVar_s(ltMsgPk,"qosid")); edittype=ltMsgGetVar_s(ltMsgPk,"edittype"); if(qosid==0){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >Error: this qos rule can't be chanage!</body></html>"); ltMsgFree(ltMsgPk); return 0; } if( strcmp(edittype,"setdef")==0){ ltqosdownlink(confd,ltMsgPk,lt_MMHead); return 0; }else if( strcmp(edittype,"Del")==0){ int lCount; lCount=0; sprintf(sqlBuf,"select count(*) from nassrvrule where qosid=%d ",qosid); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ lCount=atol(tempRow[0]); } ltDbCloseCursor(tempCursor); } if(lCount>0){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >警告: 该通道已经应用于规则,不能删除!</body></html>"); ltMsgFree(ltMsgPk); return 0; } lCount=0; sprintf(sqlBuf,"select count(*) from msauserpolicy where ratelimit=%d ",qosid); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ lCount=atol(tempRow[0]); } ltDbCloseCursor(tempCursor); } if(lCount>0){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >警告: 该通道已经应用于批量策略,不能删除!</body></html>"); ltMsgFree(ltMsgPk); return 0; } lCount=0; sprintf(sqlBuf,"select count(*) from msauser where ratelimit=%d ",qosid); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ lCount=atol(tempRow[0]); } ltDbCloseCursor(tempCursor); } if(lCount>0){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >警告: 该通道已经应用于用户,不能删除!</body></html>"); ltMsgFree(ltMsgPk); return 0; } sprintf(sqlBuf,"delete from msaqos where sid=%d ",qosid); ltDbExecSql(G_DbCon,sqlBuf); ltqosdownlink(confd,ltMsgPk,lt_MMHead); return 0; }else if( strcmp(edittype,"APP")==0){ ltqosdownlink(confd,ltMsgPk,lt_MMHead); return 0; } if(_bcKernelHead->banddownlink<1){ ltbandlink(confd,ltMsgPk,lt_MMHead); return 0; } ltqosdownlink(confd,ltMsgPk,lt_MMHead); return 0; }
int ltqosdownlink(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ ltDbHeadPtr dbPtr; ltTablePtr tablePtr; ltDbCursor *tempCursor; LT_DBROW tempRow; char sqlBuf[1024]; char BANDDOWNLINK[24]; char myRate[24]; int mybrate; char tmpDef[64],tempstr[128]; int qosid; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,"db error!"); ltMsgFree(ltMsgPk); return 0; } if(_bcKernelHead->banddownlink<1 ||_bcKernelHead->banduplink<1 ){ char BANDUPLINK[24]; char BANDDOWNLINK[24]; memset(BANDDOWNLINK,0,sizeof(BANDDOWNLINK)); bcCnfGetValue_s("/etc/msa/msa/qos/settings","BANDDOWNLINK",BANDDOWNLINK); memset(BANDUPLINK,0,sizeof(BANDUPLINK)); bcCnfGetValue_s("/etc/msa/msa/qos/settings","BANDUPLINK",BANDUPLINK); if(strlen(BANDUPLINK)>0 && strlen(BANDDOWNLINK)>0 ){ _bcKernelHead->banddownlink=atol(BANDDOWNLINK); _bcKernelHead->banduplink=atol(BANDUPLINK); } if(_bcKernelHead->banddownlink<1 ||_bcKernelHead->banduplink<1 ){ ltbandlink(confd,ltMsgPk,lt_MMHead); return 0; } } qosid=0; if(ltMsgGetVar_s(ltMsgPk,"qosid")!=NULL){ qosid=atol(ltMsgGetVar_s(ltMsgPk,"qosid")); } dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); if(qosid!=0){ sprintf(sqlBuf,"select sid,qosname,qosrated,qosrateu,qosmixu,prio,qosmixd from msaqos where sid=%d",qosid); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ lt_dbput_rootvars(dbPtr,1,"sid",tempRow[0]); lt_dbput_rootvars(dbPtr,1,"qosname",tempRow[1]); lt_dbput_rootvars(dbPtr,1,"qosrated",tempRow[2]); lt_dbput_rootvars(dbPtr,1,"qosrateu",tempRow[3]); lt_dbput_rootvars(dbPtr,1,"qosmixd",tempRow[4]); lt_dbput_rootvars(dbPtr,1,"qosmixu",tempRow[6]); tempRow= ltDbFetchRow(tempCursor); }else{ lt_dbput_rootvars(dbPtr,1,"qosname","NewQos"); lt_dbput_rootvars(dbPtr,1,"qosrated","0"); lt_dbput_rootvars(dbPtr,1,"qosrateu","0"); lt_dbput_rootvars(dbPtr,1,"sid","0" ); lt_dbput_rootvars(dbPtr,1,"qosmixd","0"); lt_dbput_rootvars(dbPtr,1,"qosmixu","0"); } ltDbCloseCursor(tempCursor); }else{ lt_dbput_rootvars(dbPtr,1,"qosname","NewQos"); lt_dbput_rootvars(dbPtr,1,"qosrated","0"); lt_dbput_rootvars(dbPtr,1,"qosrateu","0"); lt_dbput_rootvars(dbPtr,1,"sid","0"); lt_dbput_rootvars(dbPtr,1,"qosmixd","0"); lt_dbput_rootvars(dbPtr,1,"qosmixu","0"); } }else{ lt_dbput_rootvars(dbPtr,1,"qosname","NewQos"); lt_dbput_rootvars(dbPtr,1,"qosrated","0"); lt_dbput_rootvars(dbPtr,1,"qosrateu","0"); lt_dbput_rootvars(dbPtr,1,"sid","0"); lt_dbput_rootvars(dbPtr,1,"qosmixd","0"); lt_dbput_rootvars(dbPtr,1,"qosmixu","0"); } sprintf(BANDDOWNLINK,"%lu",_bcKernelHead->banddownlink); lt_dbput_rootvars(dbPtr,1,"DOWNLINK",BANDDOWNLINK); sprintf(BANDDOWNLINK,"%lu",_bcKernelHead->banduplink); lt_dbput_rootvars(dbPtr,1,"UPLINK",BANDDOWNLINK); tablePtr=lt_dbput_table(dbPtr,"dqoslist"); sprintf(sqlBuf,"select sid,qosname from msaqos where sid>0 "); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ sprintf(tmpDef,"%s",tempRow[1]); lt_dbput_recordvars(tablePtr,2, "dsid",LT_TYPE_STRING,tempRow[0], "dqosname",LT_TYPE_STRING,tmpDef); tempRow= ltDbFetchRow(tempCursor); } ltDbCloseCursor(tempCursor); } mybrate=0; tablePtr=lt_dbput_table(dbPtr,"bqoslist"); sprintf(sqlBuf,"select sid,qosname,qosmixd,qosrated from msaqos where sid>0 and qosmixd>0 "); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ mybrate=mybrate+atol(tempRow[2]); sprintf(myRate,"%d",(int)( (atol(tempRow[2])*100)/_bcKernelHead->banddownlink)); memset(tempstr,0,sizeof(tempstr)); strgb2utf8("保证通道",tempstr,strlen("保证通道")); printf("%s \n",tempstr); lt_dbput_recordvars(tablePtr,5, "bqosname",LT_TYPE_STRING,tempRow[1], "bqosrated",LT_TYPE_STRING,tempRow[2], "brate",LT_TYPE_STRING,myRate, "bqosrateu",LT_TYPE_STRING,tempRow[3], "btype",LT_TYPE_STRING,tempstr); tempRow= ltDbFetchRow(tempCursor); } ltDbCloseCursor(tempCursor); } if( _bcKernelHead->banddownlink>(mybrate+_bcKernelHead->banddowndef/1000)){ sprintf(myRate,"%lu", _bcKernelHead->banddownlink-mybrate ); lt_dbput_rootvars(dbPtr,1,"shareqos",myRate); sprintf(myRate,"%d", (int)(((_bcKernelHead->banddownlink-mybrate)*100)/_bcKernelHead->banddownlink) ); lt_dbput_rootvars(dbPtr,1,"sharerate",myRate); }else{ sprintf(myRate,"%d", _bcKernelHead->banddowndef/1000 ); lt_dbput_rootvars(dbPtr,1,"shareqos",myRate); sprintf(myRate,"%d", (int)(((_bcKernelHead->banddowndef/1000)*100)/_bcKernelHead->banddownlink) ); lt_dbput_rootvars(dbPtr,1,"sharerate",myRate); } tablePtr=lt_dbput_table(dbPtr,"sqoslist"); sprintf(sqlBuf,"select sid,qosname,qosrated,qosrated from msaqos where sid>0 and qosmixd=0"); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ sprintf(myRate,"%d",(int)((atol(tempRow[2])*100)/_bcKernelHead->banddownlink) ); memset(tempstr,0,sizeof(tempstr)); strgb2utf8("竞争通道",tempstr,strlen("竞争通道")); lt_dbput_recordvars(tablePtr,5, "sqosname",LT_TYPE_STRING,tempRow[1], "sqosrated",LT_TYPE_STRING,tempRow[2], "srate",LT_TYPE_STRING,myRate, "sqosrateu",LT_TYPE_STRING,tempRow[3], "stype",LT_TYPE_STRING,tempstr); tempRow= ltDbFetchRow(tempCursor); } ltDbCloseCursor(tempCursor); } /*shangchuang*/ mybrate=0; tablePtr=lt_dbput_table(dbPtr,"upbqoslist"); sprintf(sqlBuf,"select sid,qosname,qosmixu,qosrateu from msaqos where sid>0 and qosmixu>0"); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ mybrate=mybrate+atol(tempRow[2]); sprintf(myRate,"%d",(int)( (atol(tempRow[2])*100)/_bcKernelHead->banduplink) ); memset(tempstr,0,sizeof(tempstr)); strgb2utf8("保证通道",tempstr,strlen("保证通道")); lt_dbput_recordvars(tablePtr,5, "upbqosname",LT_TYPE_STRING,tempRow[1], "upbqosrated",LT_TYPE_STRING,tempRow[2], "upbrate",LT_TYPE_STRING,myRate, "upbqosrateu",LT_TYPE_STRING,tempRow[3], "upbtype",LT_TYPE_STRING,tempstr); tempRow= ltDbFetchRow(tempCursor); } ltDbCloseCursor(tempCursor); } if( _bcKernelHead->banduplink >(mybrate+_bcKernelHead->bandupdef/1000)){ sprintf(myRate,"%lu", _bcKernelHead->banduplink-mybrate ); lt_dbput_rootvars(dbPtr,1,"upshareqos",myRate); sprintf(myRate,"%d", (int)(((_bcKernelHead->banduplink-mybrate)*100)/_bcKernelHead->banduplink) ); lt_dbput_rootvars(dbPtr,1,"upsharerate",myRate); }else{ sprintf(myRate,"%d", _bcKernelHead->bandupdef/1000 ); lt_dbput_rootvars(dbPtr,1,"upshareqos",myRate); sprintf(myRate,"%d", (int)(((_bcKernelHead->bandupdef/1000)*100)/_bcKernelHead->banduplink) ); lt_dbput_rootvars(dbPtr,1,"upsharerate",myRate); } tablePtr=lt_dbput_table(dbPtr,"upsqoslist"); sprintf(sqlBuf,"select sid,qosname,qosrateu,qosrateu from msaqos where sid>0 and qosmixu=0 "); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ sprintf(myRate,"%d",(int)((atol(tempRow[2])*100)/_bcKernelHead->banduplink) ); memset(tempstr,0,sizeof(tempstr)); strgb2utf8("竞争通道",tempstr,strlen("竞争通道")); lt_dbput_recordvars(tablePtr,5, "upsqosname",LT_TYPE_STRING,tempRow[1], "upsqosrated",LT_TYPE_STRING,tempRow[2], "upsrate",LT_TYPE_STRING,myRate, "upsqosrateu",LT_TYPE_STRING,tempRow[3], "upstype",LT_TYPE_STRING,tempstr); tempRow= ltDbFetchRow(tempCursor); } ltDbCloseCursor(tempCursor); } lt_dbput_html(confd,ltMsgPk,dbPtr->doc,"/app/msa/msa/htmlplt/manager/bandconf.html",dbPtr->head,0); ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; }
int ltupdateqos(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char sqlBuf[1024]; char *qosname; char *qosrated; char *prio; char *qosmixd; char *qosrateu; char *qosmixu; long lCount; int qosid; ltDbCursor *tempCursor; LT_DBROW tempRow; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: application/json\n","lthtml",LT_TYPE_STRING,"db error!"); ltMsgFree(ltMsgPk); return 0; } qosid=atol(ltMsgGetVar_s(ltMsgPk,"qosid")); qosname=ltMsgGetVar_s(ltMsgPk,"qosname"); if(qosname==NULL){ qosname=""; } qosrated=ltMsgGetVar_s(ltMsgPk,"qosrated"); if(qosrated==NULL){ qosrated="0"; } prio=ltMsgGetVar_s(ltMsgPk,"prio"); if(prio==NULL){ prio="0"; } qosmixd=ltMsgGetVar_s(ltMsgPk,"qosmixd"); if(qosmixd==NULL){ qosmixd="0"; } qosrateu=ltMsgGetVar_s(ltMsgPk,"qosrateu"); if(qosrateu==NULL){ qosrateu="0"; } qosmixu=ltMsgGetVar_s(ltMsgPk,"qosmixu"); if(qosmixu==NULL){ qosmixu="0"; } if(ltStrIsDigital(qosrated)==0){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >带宽数值不对! </body></html>"); return 0; } if(ltStrIsDigital(qosrateu)==0){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >带宽数值不对! </body></html>"); return 0; } if(atol(qosrated)<2){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >带宽数值太低,必须大于1K! </body></html>"); return 0; } if(atol(qosrateu)<2){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >带宽数值太低,必须大于1K! </body></html>"); return 0; } if(qosid>0){ sprintf(sqlBuf,"update msaqos set qosname='%s',qosrated=%s, qosrateu=%s, qosmixd=%s,qosmixu=%s,prio=%s where sid=%d", qosname,qosrated,qosrateu,qosmixd,qosmixu,prio,qosid); printf("%s \n",sqlBuf); ltDbExecSql(G_DbCon,sqlBuf); ltqosdownlink(confd,ltMsgPk,lt_MMHead); return 0; } qosid=1; while(1){ sprintf(sqlBuf,"select count(*) from msaqos where sid=%d ",qosid); lCount=0; tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ lCount=atol(tempRow[0]); } ltDbCloseCursor(tempCursor); } if(lCount == 0) { break; }else{ qosid++; } if(qosid>998){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=uft-8\n", "lthtml",LT_TYPE_STRING,"<html><body bgcolor=\"#cccccc\" >通道超出系统限制! </body></html>"); return 0; } } sprintf(sqlBuf,"insert into msaqos values (%d,0,'%s',%s,%s,%s,%s,%s)", qosid,qosname,qosrated,qosrateu,qosmixd,qosmixu,prio); printf("sql;%s\n",sqlBuf); ltDbExecSql(G_DbCon,sqlBuf); ltqosdownlink(confd,ltMsgPk,lt_MMHead); return 0; }
int ltaddsch(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ nasschtime _nasschtime[NAS_MAXSCH_NUM]; char sqlBuf[1024]; ltDbCursor *tempCursor; LT_DBROW tempRow; char caMsg[256]; char mytime1[200]; char mytime2[200]; memset(mytime1,0,sizeof(mytime1)); memset(mytime2,0,sizeof(mytime2)); memcpy(mytime1,ltMsgGetVar_s(ltMsgPk,"schtime"),198); memcpy(mytime2,ltMsgGetVar_s(ltMsgPk,"schtime")+198,198); long lCount=0; char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html\n","lthtml",LT_TYPE_STRING,""); ltMsgFree(ltMsgPk); return 0; } memset((void *)_nasschtime,0,sizeof(nasschtime)*NAS_MAXSCH_NUM); sprintf(sqlBuf,"select count(*) from nasschedule"); tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ lCount=atol(tempRow[0]); } ltDbCloseCursor(tempCursor); } if(lCount == 0) { lCount=1; }else{ sprintf(sqlBuf,"select max(schid)+1 from nasschedule"); lCount = 1; tempCursor=ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor!=NULL){ tempRow= ltDbFetchRow(tempCursor); if(tempRow!=NULL){ lCount=atol(tempRow[0]); } ltDbCloseCursor(tempCursor); } } sprintf(sqlBuf,"insert into nasschedule values (%ld,'%s','%s','%s','%s')",lCount, ltMsgGetVar_s(ltMsgPk,"schname"), ltMsgGetVar_s(ltMsgPk,"schdesc"), mytime1,mytime2); ltDbExecSql(G_DbCon,sqlBuf); _ltPubInfo->_schtimelist[lCount].schid=lCount; strcpy(_ltPubInfo->_schtimelist[lCount].schname,ltMsgGetVar_s(ltMsgPk,"schname")); strcpy(_ltPubInfo->_schtimelist[lCount].schdesc,ltMsgGetVar_s(ltMsgPk,"schdesc")); strcpy(_ltPubInfo->_schtimelist[lCount].schtime,ltMsgGetVar_s(ltMsgPk,"schtime")); snprintf(caMsg,255,"%s","add nasschedule success."); logWrite(ltMsgPk,caMsg,3); ltDbClose(G_DbCon); ltschinfolist(confd,ltMsgPk,lt_MMHead); return 0; }
int msaReportFlowLineAjaxSubmit(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead) { ltDbCursor *tempCursor; LT_DBROW tempRow; ltDbHeadPtr dbPtr; ltTablePtr tablePtr; stralloc strTemp; char caSdate[32],caEdate[32],caSdate1[32],caSdate2[32]; char *reportname=NULL; char *email=NULL; char *lt_page_content=NULL; char *gid=NULL; char *work=NULL; char caTempDir[256]; char responseDir[256]; char caLabel[256]; char htmlpage[256]; char sqlBuf[1024]; char strdayflow[32]; char sDate[64],sTime[64]; char caFile1[256]; char caCmd[256]; char atime[64]; char srvName[255]; char caTmpp[2048]; char flow[128]; long lTime,lTime1,lTime2; int iFd,srvindex,gindex,fdwrite,step,jjj; unsigned long long lMaxBytes; unsigned long tmpDir=0; unsigned long fileName=0; step=0; strTemp.s=0; jjj=0; memset(caTempDir,0,sizeof(caTempDir)); memset(responseDir,0,sizeof(responseDir)); memset(caLabel,0,sizeof(caLabel)); memset(htmlpage,0,sizeof(htmlpage)); memset(sqlBuf,0,sizeof(sqlBuf)); memset(atime,0,sizeof(atime)); memset(srvName,0,sizeof(srvName)); memset(caTmpp,0,sizeof(caTmpp)); memset(flow,0,sizeof(flow)); char *dbUser; char *dbPass; char *dbName; dbName=_ltPubInfo->_dbname; dbUser=_ltPubInfo->_dbuser; dbPass=_ltPubInfo->_dbpass; G_DbCon=ltDbConnect(dbUser,dbPass,dbName); if(G_DbCon==NULL){ return 0; } if(ltMsgGetVar_s(ltMsgPk,"sdate")){ sprintf(caSdate,"%s",ltMsgGetVar_s(ltMsgPk,"sdate")); }else{ sprintf(caSdate,"%s",""); } if(ltMsgGetVar_s(ltMsgPk,"edate")){ sprintf(caEdate,"%s",ltMsgGetVar_s(ltMsgPk,"edate")); }else{ sprintf(caEdate,"%s",""); } if(ltMsgGetVar_s(ltMsgPk,"reportname")){ reportname=ltMsgGetVar_s(ltMsgPk,"reportname"); } if(ltMsgGetVar_s(ltMsgPk,"email")){ email=ltMsgGetVar_s(ltMsgPk,"email"); } if(ltMsgGetVar_s(ltMsgPk,"step")){ step=atoi(ltMsgGetVar_s(ltMsgPk,"step")); } if(ltMsgGetVar_s(ltMsgPk,"gid")){ gid=ltMsgGetVar_s(ltMsgPk,"gid"); sprintf(caTmpp,"%s",""); stralloc_cats(&strTemp,caTmpp); int i; for(i=0;i<1000;i++){ if(gid[i]=='1'){ jjj++; if(jjj==1){ sprintf(caTmpp,"%d",i); stralloc_cats(&strTemp,caTmpp); }else{ sprintf(caTmpp,",%d",i); stralloc_cats(&strTemp,caTmpp); } } } stralloc_cats(&strTemp,""); stralloc_0(&strTemp); } if(ltMsgGetVar_s(ltMsgPk,"filedir")){ fileName=atoll(ltMsgGetVar_s(ltMsgPk,"filedir")); } if(ltMsgGetVar_s(ltMsgPk,"work")){ work=ltMsgGetVar_s(ltMsgPk,"work"); } if(fileName==0){ tmpDir=ltStrGetId(); sprintf(caTempDir,"%s%s/%lu/",_datacenterdir,_flowreport,tmpDir); sprintf(responseDir,"%lu",tmpDir); if(ltFileIsExist(caTempDir)!=1) { if(mkdir(caTempDir,S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)!=0) { ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; } } }else{ sprintf(caTempDir,"%s%s/%lu/",_datacenterdir,_flowreport,fileName); sprintf(responseDir,"%lu",fileName); } lTime = time(0); if(!ltStrIsSpaces(caSdate)) { lTime1 = nasCvtLongTime(caSdate,"00:00:00"); }else{ lTime1 = 0; } if(!ltStrIsSpaces(caEdate)) { lTime2 = nasCvtLongTime(caEdate,"23:59:59"); }else { lTime2 = 0; } if(lTime1 == 0) { lTime1 = lTime; } if(lTime2 == 0) { lTime2 = lTime; } if(lTime1 > lTime) { lTime1 = lTime; } if(lTime2>lTime){ lTime2=lTime; } fdwrite=-1; if(step==1){ nasCvtStime(time(0),sDate,sTime); sprintf(caFile1,"%sinfo.ini",caTempDir); fdwrite = open(caFile1, O_APPEND | O_WRONLY | O_CREAT, 0644); if(fdwrite == (-1)) { ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,"0"); ltMsgFree(ltMsgPk); return 0; } sprintf(caCmd,"date=%s_%s\n",sDate,sTime); write(fdwrite,caCmd,strlen(caCmd)); sprintf(caCmd,"reportname=%s\n",reportname); write(fdwrite,caCmd,strlen(caCmd)); close(fdwrite); sprintf(caLabel,"/bin/echo '1' > %sproccess.ini",caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/right-top-d.jpg %s",_msahtmldir,_flowlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/right-top.jpg %s",_msahtmldir,_flowlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/banner.jpg %s",_msahtmldir,_flowlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/up-1.jpg %s",_msahtmldir,_flowlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/up-2.jpg %s",_msahtmldir,_flowlineplt,caTempDir); system(caLabel); sprintf(caLabel,"/bin/cp %s%s/up-3.jpg %s",_msahtmldir,_flowlineplt,caTempDir); system(caLabel); } ltMsgPk->msgpktype=1; lt_TcpResponse(confd,ltMsgPk,2,"lthead",LT_TYPE_STRING,"Content-type: text/html; charset=utf-8\n","lthtml",LT_TYPE_STRING,responseDir); nasTimeGetDate(caSdate1,lTime1); nasTimeGetDate(caSdate2,lTime2); if(step==1){ //服务流量报告 sprintf(sqlBuf,"select service,sum(onlinetime) as acount,sum(bytes) as abyte from msasrvreport where sdate>='%s' and sdate<='%s' and workflag=%s group by service order by abyte desc ",caSdate1,caSdate2,work); }else if(step==2){ //部门流量排序 sprintf(sqlBuf,"select c.name,sum(bytes) as abyte from msasrvreport a,msauser b ,msagroup c where sdate>='%s' and sdate<='%s' and a.userid=b.userid and b.groupid0=c.id and c.id in(%s) and workflag=%s group by c.name order by abyte desc",caSdate1,caSdate2,strTemp.s,work); }else if(step==3){ //人员流量排序 sprintf(sqlBuf,"select b.dispname,sum(bytes) as abyte from msasrvreport a,msauser b ,msagroup c where sdate>='%s' and sdate<='%s' and a.userid=b.userid and b.groupid0=c.id and c.id in(%s) and workflag=%s group by b.dispname order by abyte desc",caSdate1,caSdate2,strTemp.s,work); }else if(step==4){ //网站流量排序 sprintf(sqlBuf,"select host,sum(bytes) as abyte from msauserhttpreport where sdate >= '%s' and sdate <= '%s' group by host order by abyte desc",caSdate1,caSdate2); }else{ //目的地址流量排序 sprintf(sqlBuf,"select dip,sum(bytes) as abyte from msaDipReport where sdate >= '%s' and sdate <= '%s' group by dip order by abyte desc ",caSdate1,caSdate2); } printf("sql: %s\n",sqlBuf); tempCursor = ltDbOpenCursor(G_DbCon,sqlBuf); if(tempCursor == NULL){ sprintf(caLabel,"/bin/echo '%s' > %serrmsg.ini","数据库错误,无法生成报告",caTempDir); system(caLabel); ltMsgFree(ltMsgPk); return 0; } iFd=-1; if(step==1){ sprintf(caLabel,"%sdata.ini",caTempDir); iFd = open(caLabel,O_WRONLY | O_CREAT | O_TRUNC); if(iFd == (-1)){ sprintf(caLabel,"/bin/echo '%s' > %serrmsg.ini","无法建立数据文件",caTempDir); system(caLabel); ltDbCloseCursor(tempCursor); ltMsgFree(ltMsgPk); return 0; } } srvindex=1; lMaxBytes=1; gindex=0; dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); tablePtr=lt_dbput_table(dbPtr,"list"); tempRow= ltDbFetchRow(tempCursor); while(tempRow!=NULL){ if(step==1){ //服务流量报告 if(atoll(tempRow[2])>1024000){ sprintf(strdayflow,"%0.3fM",atoll(tempRow[2])/1024000.00); }else{ sprintf(strdayflow,"%0.3fK",atoll(tempRow[2])/1024.00); } sprintf(caLabel,"%d,%lld\r\n",srvindex,atoll(tempRow[2])); write(iFd, caLabel, strlen(caLabel)); if(lMaxBytes<atoll(tempRow[2])){ lMaxBytes=atoll(tempRow[2]); } sprintf(srvName,"No%d:%s",srvindex,_ltPubInfo->topSrvName[atol(tempRow[0])].srvname); lt_dbput_recordvars(tablePtr,3, "srvname",LT_TYPE_STRING,srvName, "srvljtime",LT_TYPE_STRING,tempRow[1], "srvljflow",LT_TYPE_STRING,strdayflow ); }else if(step==2){ //部门流量排序 if(atoll(tempRow[1])>1024000){ sprintf(flow,"%0.3fM",atoll(tempRow[1])/1024000.00); }else{ sprintf(flow,"%0.3fKB",atoll(tempRow[1])/1024.00); } lt_dbput_recordvars(tablePtr,2, "groupname",LT_TYPE_STRING,tempRow[0], "lbyte",LT_TYPE_STRING,flow ); }else if(step==3){ //人员流量排序 if(atoll(tempRow[1])>1024000){ sprintf(flow,"%0.3fM",atoll(tempRow[1])/1024000.00); }else{ sprintf(flow,"%0.3fKB",atoll(tempRow[1])/1024.00); } lt_dbput_recordvars(tablePtr,2, "uname",LT_TYPE_STRING,tempRow[0], "lbyte",LT_TYPE_STRING,flow ); }else if(step==4){ //网站流量排序 if(atoll(tempRow[1])>1024000){ sprintf(flow,"%0.3fM",atoll(tempRow[1])/1024000.00); }else{ sprintf(flow,"%0.3fKB",atoll(tempRow[1])/1024.00); } lt_dbput_recordvars(tablePtr,2, "host",LT_TYPE_STRING,tempRow[0], "lbyte",LT_TYPE_STRING,flow ); }else{ //目的地址流量排序 if(atoll(tempRow[1])>1024000){ sprintf(flow,"%0.3fM",atoll(tempRow[1])/1024000.00); }else{ sprintf(flow,"%0.3fKB",atoll(tempRow[1])/1024.00); } lt_dbput_recordvars(tablePtr,2, "dip",LT_TYPE_STRING,tempRow[0], "lbyte",LT_TYPE_STRING,flow ); } if(step==1){ srvindex++; } tempRow=ltDbFetchRow(tempCursor); } ltDbCloseCursor(tempCursor); if(step==1){ //画图 close(iFd); sprintf(caLabel,"%s/Scripts/onlinesrv-bar.pl %sdata.ini %ssrvreport.gif %llu ",_msahtmldir,caTempDir,caTempDir,lMaxBytes); //柱状 饼图:onlinesrv1.pl system(caLabel); lt_dbput_rootvars(dbPtr,1,"piechart","srvreport.gif" ); } lt_dbput_rootvars(dbPtr,3,"reportname",reportname,"bdate",caSdate1,"edate",caSdate2); sprintf(htmlpage,"%s%s/flow%d.htm",_msahtmldir,_flowlineplt,step); printf("%s",htmlpage); lt_page_content=ltPltFileParse(htmlpage,dbPtr->doc,0); if(lt_page_content==NULL){ sprintf(caLabel,"/bin/echo '%s' > %serrmsg.ini","无报告数据,无法生成报告",caTempDir); system(caLabel); ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; }else{ lt_page_content=strstr(lt_page_content,"<!DOCTYPE"); if(step==1){ sprintf(caLabel,"%sindex.htm",caTempDir); }else{ sprintf(caLabel,"%spage%d.htm",caTempDir,step); } iFd = open(caLabel,O_WRONLY | O_NDELAY | O_TRUNC | O_CREAT,0644); if(iFd >0) { write(iFd,lt_page_content,strlen(lt_page_content)); } close(iFd); } if(step==5){ sprintf(caLabel,"%s/Scripts/html2mail %s index.htm %sindex.mht report %s",_msahtmldir,caTempDir,caTempDir,email); system(caLabel); } chdir(caTempDir); system("rm -f report.tgz"); system("tar -cvzf report.tgz *"); sprintf(caLabel,"/bin/rm %sproccess.ini",caTempDir); system(caLabel); sprintf(caLabel,"/bin/rm %serrmsg.ini",caTempDir); system(caLabel); ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; }