int ltbandlink(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ ltDbHeadPtr dbPtr; char BANDUPLINK[24]; char BANDDOWNLINK[24]; char BANDUPDEF[24]; char BANDDOWNDEF[24]; char *pFile="/etc/msa/msa/qos/settings"; dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); memset(BANDUPLINK,0,sizeof(BANDUPLINK)); bcCnfGetValue_s(pFile,"BANDUPLINK",BANDUPLINK); lt_dbput_rootvars(dbPtr,1,"BANDUPLINK",BANDUPLINK ); memset(BANDDOWNLINK,0,sizeof(BANDDOWNLINK)); bcCnfGetValue_s(pFile,"BANDDOWNLINK",BANDDOWNLINK); lt_dbput_rootvars(dbPtr,1,"BANDDOWNLINK",BANDDOWNLINK ); if(ltStrIsDigital(BANDDOWNLINK)==0){ _bcKernelHead->banddownlink=atol(BANDDOWNLINK); } if(ltStrIsDigital(BANDUPLINK)==0){ _bcKernelHead->banduplink=atol(BANDUPLINK); } memset(BANDUPDEF,0,sizeof(BANDUPDEF)); bcCnfGetValue_s(pFile,"BANDUPDEF",BANDUPDEF); lt_dbput_rootvars(dbPtr,1,"BANDUPDEF",BANDUPDEF ); memset(BANDDOWNDEF,0,sizeof(BANDDOWNDEF)); bcCnfGetValue_s(pFile,"BANDDOWNDEF",BANDDOWNDEF); lt_dbput_rootvars(dbPtr,1,"BANDDOWNDEF",BANDDOWNDEF ); if(ltStrIsDigital(BANDDOWNDEF)==0){ _bcKernelHead->banddowndef=atol(BANDDOWNDEF)*1000; } if(ltStrIsDigital(BANDUPDEF)==0){ _bcKernelHead->bandupdef=atol(BANDUPDEF)*1000; } lt_dbput_html(confd,ltMsgPk,dbPtr->doc,"/app/msa/msa/htmlplt/manager/bandlink.htm",dbPtr->head,0); ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; }
//报警参数配置 int msaalertLink(int confd,ltMsgHead *ltMsgPk,lt_shmHead *lt_MMHead){ char mailalert[24],smsalert[24]; char diskalert[24],memalert[24],mail[64],telphone[64]; char newadminalert[24],newrulealert[24],delrulealert[24]; char outflowalert[24],p2pflowalert[24]; char *pFile="/etc/msa/msa/alert"; ltDbHeadPtr dbPtr; dbPtr=lt_dbinit(); lt_db_htmlpage(dbPtr,"utf-8"); //报警方式 memset(mailalert,0,sizeof(mailalert)); bcCnfGetValue_s(pFile,"mailalert",mailalert); if(strcmp(mailalert,"yes")==0){ lt_dbput_rootvars(dbPtr,1,"mailalert","checked"); }else{ lt_dbput_rootvars(dbPtr,1,"mailalert",""); } memset(mail,0,sizeof(mail)); bcCnfGetValue_s(pFile,"mail",mail); lt_dbput_rootvars(dbPtr,1,"mail",mail); memset(smsalert,0,sizeof(smsalert)); bcCnfGetValue_s(pFile,"smsalert",smsalert); if(strcmp(smsalert,"yes")==0){ lt_dbput_rootvars(dbPtr,1,"smsalert","checked"); }else{ lt_dbput_rootvars(dbPtr,1,"smsalert",""); } memset(telphone,0,sizeof(telphone)); bcCnfGetValue_s(pFile,"telphone",telphone); lt_dbput_rootvars(dbPtr,1,"telphone",telphone); //系统异常报警 memset(diskalert,0,sizeof(diskalert)); bcCnfGetValue_s(pFile,"diskalert",diskalert); lt_dbput_rootvars(dbPtr,1,"diskalert",diskalert); memset(memalert,0,sizeof(memalert)); bcCnfGetValue_s(pFile,"memalert",memalert); lt_dbput_rootvars(dbPtr,1,"memalert",memalert); //关键操作报警 memset(newadminalert,0,sizeof(newadminalert)); bcCnfGetValue_s(pFile,"newadminalert",newadminalert); if(strcmp(newadminalert,"yes")==0){ lt_dbput_rootvars(dbPtr,1,"newadminalert","checked"); }else{ lt_dbput_rootvars(dbPtr,1,"newadminalert",""); } memset(newrulealert,0,sizeof(newrulealert)); bcCnfGetValue_s(pFile,"newrulealert",newrulealert); if(strcmp(newrulealert,"yes")==0){ lt_dbput_rootvars(dbPtr,1,"newrulealert","checked"); }else{ lt_dbput_rootvars(dbPtr,1,"newrulealert",""); } memset(delrulealert,0,sizeof(delrulealert)); bcCnfGetValue_s(pFile,"delrulealert",delrulealert); if(strcmp(delrulealert,"yes")==0){ lt_dbput_rootvars(dbPtr,1,"delrulealert","checked"); }else{ lt_dbput_rootvars(dbPtr,1,"delrulealert",""); } //网络异常报警 memset(outflowalert,0,sizeof(outflowalert)); bcCnfGetValue_s(pFile,"outflowalert",outflowalert); lt_dbput_rootvars(dbPtr,1,"outflowalert",outflowalert); memset(p2pflowalert,0,sizeof(p2pflowalert)); bcCnfGetValue_s(pFile,"p2pflowalert",p2pflowalert); lt_dbput_rootvars(dbPtr,1,"p2pflowalert",p2pflowalert); lt_dbput_html(confd,ltMsgPk,dbPtr->doc,"/app/msa/msa/htmlplt/rule/sysalertset.htm",dbPtr->head,0); ltMsgFree(ltMsgPk); lt_dbfree(dbPtr); return 0; }
main(int argc,char *argv[]) { struct stat buf; char *pTemp; char *pathInfo; int pathInfoLen; char *pathInfo1; int pathInfoLen1; /*系统根路径*/ char rootPath[256]; /*系统当前路径*/ char curPath[256]; /*系统的父路径*/ char parPath[256]; char *p; int iReturn; int iRead,l; int lenTemp; ltCgiConfInfo sCgiConf; /* 配置信息 */ char fileTemp[256]; char confPath[256]; /*得到各个路径*/ pathInfo1 = getenv("PATH_TRANSLATED"); pathInfo=getenv("PATH_INFO"); if(pathInfo1 == NULL || pathInfo == NULL) { printf("Content-type:text/html\n\n"); printf("Internal server error: 页面不存在 \n"); exit(0); } pathInfoLen=strlen(pathInfo); pathInfoLen1=strlen(pathInfo1); memset(curPath,0,sizeof(curPath)); p=strrchr(pathInfo1,'/'); if(p==NULL){ printf("Content-type:text/html\n\n"); printf("Internal server error: 页面路径不对 \n"); exit(0); } if( (p-pathInfo1+1)>sizeof(curPath) ){ printf("Content-type:text/html\n\n"); printf("Internal server error: 页面路径太长 \n"); exit(0); } strncpy(curPath,pathInfo1,p-pathInfo1+1); memset(rootPath,0,sizeof(rootPath)); strncpy(rootPath,pathInfo1,pathInfoLen1-pathInfoLen+1); memset(parPath,0,sizeof(parPath)); p=strchr(pathInfo+1,'/'); if(p==NULL){ strncpy(parPath,rootPath,strlen(rootPath)); }else{ strncpy(parPath,pathInfo1, pathInfoLen1- (pathInfoLen-(p -pathInfo)) +1); } /*得到配置信息*/ /* 读配置文件 */ memset((char *)&sCgiConf,0,sizeof(ltCgiConfInfo)); sprintf(sCgiConf.upLoadPath,"/tmp/upload/"); sCgiConf.lTimeOut = 60; sCgiConf.lMaxMsgPkg = 0; memset(fileTemp,0,sizeof(fileTemp)); memset(confPath,0,sizeof(confPath)); /*当前路径的配置信息*/ sprintf(fileTemp,"%s%s",curPath,"xp.ini"); if( ltFileIsExist(fileTemp)==1){ if( bcCnfGetValue_s(fileTemp,"xpcnf",confPath) ){ //读取xml配置信息 if( ltGetCgiValue(confPath,&sCgiConf)!=0){ printf("Content-type:text/html\n\n"); printf("Internal server error: 服务器配置错误,配置文件错误\n"); exit(0); } } else{ printf("Content-type:text/html\n\n"); printf("Internal server error: 服务器配置错误,找不到连接信息\n"); exit(0); } }else{ printf("Content-type:text/html\n\n"); printf("Internal server error: 服务器配置错误,找不到连接信息\n"); exit(0); } /* 显示配置信息 */ /* printf("Content-type:text/plain\n\n"); printf("curPath:%s\n",curPath); printf("rootPath:%s\n",rootPath); printf("pathinfo:%s\n",pathInfo); printf("parPath:%s\n",parPath); printf("msgcode:%d\n",sCgiConf.lMsgCode); printf("SERVERIP:%s\n",sCgiConf.ipAddr); */ //printf("Content-type:text/plain\n\n"); //printf("pathinfo:%s\n",pathInfo1); lt_SetMaxTcpBuf(sCgiConf.lMaxMsgPkg); ltCgiQQDo(&sCgiConf,pathInfo1); exit(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; }