示例#1
0
文件: srv-qos.c 项目: heidsoft/msa
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;

}
示例#2
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;
}
示例#3
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);
}   
示例#4
0
文件: srv-qos.c 项目: heidsoft/msa
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;
}