int DFNParser_GetPrivateProfileInt(LPCTSTR lpAppName,  // section name
  LPCTSTR lpKeyName,  // key name
  INT nDefault,       // return value if key name not found
  LPCTSTR lpFileName  // initialization file name
)
{
	char cKey[255]={0};
	sprintf(cKey,"%s_%s",lpAppName,lpKeyName);

	return DFN_GetPrivateProfileInt(lpFileName,cKey,nDefault,"oscmd.ini" );

}
Exemple #2
0
BOOL TRAFFIC_MONITOR(char *server, int port, char *community, int ifindex, 
					 int timeout, int retrydelay, CString strMonitorID, 
					 char *custpath, char *szReturn)
{
	int s;
	struct sockaddr_in serv;

	int		i = 0, ret = 0;
	int		count = 1;
	struct	snval *ptmp = NULL;
	struct	snval *ptmpnext = NULL;

	long	ifOperStatus = 0;
	Gauge	ifSpeed = 0;
	Counter ifInOctets = 0, ifOutOctets = 0;
	Counter ifInErrors = 0, ifOutErrors = 0;

	if((ret = MakeSocket(server, port, s, serv)) < 0)
	{
		if(ret == -1)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Traffic_1%>"));
		else if(ret == -2)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Traffic_2%>"));
		else
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Traffic_3%>"));

		return FALSE;
	}

	struct oid *poid = NULL, *ptmpoid = NULL;
	oid ifInOctets_oid = {{0x2b, 6, 1, 2, 1, 2, 2, 1, 10}, 9};
	oid ifOutOctets_oid = {{0x2b, 6, 1, 2, 1, 2, 2, 1, 16}, 9};
	ifInOctets_oid.id[ifInOctets_oid.len++] = ifindex;
	poid = ptmpoid = &ifInOctets_oid;
	ifOutOctets_oid.id[ifOutOctets_oid.len++] = ifindex;
	ptmpoid->next = &ifOutOctets_oid;
	ptmpoid = ptmpoid->next;

	struct snval *psnval = NULL;
	if((ret = SN_VALUES(s, serv, community, 1, poid, &psnval)) < 0)
	{
		if(ret == -1)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_4%>"));//<%IDS_Dynamo_4%>
		else if(ret == -2)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_5%>"));//<%IDS_Dynamo_5%>
		else if(ret == -3)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_6%>"));//<%IDS_Dynamo_6%>
		else if(ret == -4)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_7%>"));//<%IDS_Dynamo_7%>
		else if(ret == -5)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_8%>"));//<%IDS_Dynamo_8%>
		else if(ret == -6)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_9%>"));//<%IDS_Dynamo_9%>
		else if(ret == -7)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_10%>"));//<%IDS_Dynamo_10%>
		else if(ret == -8)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_11%>"));//<%IDS_Dynamo_11%>
		else
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_Dynamo_12%>"));//<%IDS_Dynamo_12%>

		goto w;
	}

	ptmp = psnval;
	ptmpnext = NULL;
	while(ptmp)
	{
		switch(count)
		{
		case 1:
			switch(ptmp->sv_type)
			{
			case ASN1_INT:
			case ASN1_COUNTER:
			case ASN1_GAUGE:
			case ASN1_TIMETICKS:
			case ASN1_COUNTER64:
			case ASN1_UINTEGER32:
				ifInOctets = ptmp->sv_val.sv_int;
				break;
			default:
				ifInOctets = 0;
				break;
			}
			break;
		case 2:
			switch(ptmp->sv_type)
			{
			case ASN1_INT:
			case ASN1_COUNTER:
			case ASN1_GAUGE:
			case ASN1_TIMETICKS:
			case ASN1_COUNTER64:
			case ASN1_UINTEGER32:
				ifOutOctets = ptmp->sv_val.sv_int;
				break;
			default:
				ifOutOctets = 0;
				break;
			}
			break;
		}
		count ++;
		ptmp = ptmp->next;
	}

	// computer the traffic 
	{
	char ciniFile[256] = {0}, 
		 cinifile[256] = {0};
	char cifIndex[256] = {0};
	sprintf(cinifile, "snmp_%s_%s.ini", server, strMonitorID);
	sprintf(ciniFile, "%s\\%s", custpath, cinifile);
	sprintf(cifIndex, "ifIndex_%ld", ifindex);

	long	ifTime = 0;
	Counter inOctets = 0, outOctets = 0;

	CTime curTime = CTime::GetCurrentTime();

	ifTime = DFN_GetPrivateProfileInt(cifIndex, "ifTime", -99, ciniFile);
	inOctets = DFN_GetPrivateProfileInt(cifIndex, "ifInOctets", -99, ciniFile);
	outOctets = DFN_GetPrivateProfileInt(cifIndex, "ifOutOctets", -99, ciniFile);

	if(ifTime == -99 || inOctets == -99 || outOctets == -99)
	{
		CString strSection = _T("");
		strSection.Format("ifIndex_%ld", ifindex);

		curTime = CTime::GetCurrentTime();
		CString strMsg = _T("");
		strMsg.Format("%ld", curTime.GetTime());
		::DFN_WritePrivateProfileString((LPCTSTR)strSection, "ifTime", (LPCTSTR)strMsg, ciniFile);

		strMsg.Format("%ld", ifInOctets);
		::DFN_WritePrivateProfileString((LPCTSTR)strSection, "ifInOctets", (LPCTSTR)strMsg, ciniFile);
		strMsg.Format("%ld", ifOutOctets);
		::DFN_WritePrivateProfileString((LPCTSTR)strSection, "ifOutOctets", (LPCTSTR)strMsg, ciniFile);
		WriteLogFile(strMonitorID, "读配置文件失败");
	}
	else
	{
		float ifInOctetsRate = 0.0, ifOutOctetsRate = 0.0;
		Counter	InOctets = 0, OutOctets = 0;

		CTime bTime(ifTime);
		curTime = CTime::GetCurrentTime();
		CTimeSpan spanTime = curTime - bTime;
		long lInterval = spanTime.GetTotalSeconds();
		
		if(lInterval == 0) lInterval = 1;
		if(lInterval <= 12 * 60 * 60 && lInterval >= 0)
		{
			InOctets = (unsigned int)(ifInOctets - inOctets < 0 ? (COUNTER_MAX - inOctets + ifInOctets) : (ifInOctets - inOctets));
			//ifInOctetsRate = (float)InOctets / lInterval;
			//k
			ifInOctetsRate = (float)InOctets / lInterval/1024;

			OutOctets = (unsigned int)(ifOutOctets - outOctets < 0 ? (COUNTER_MAX - outOctets + ifOutOctets) : (ifOutOctets - outOctets));
			// wang peng /1024 =k
            //Edit By Kevin.Yang PM: 14:55 2004.10.21
            //Reason: 根据张鹏所提供的资料目前Cisio的MIF库中单位为KB,因此在
            //得到的数据后不再需要除以1024
			ifOutOctetsRate = (float)OutOctets / lInterval /1024;
			//ifOutOctetsRate = (float)OutOctets / lInterval;

			sprintf(szReturn, 
					"ifIndex=%ld$ifInOctetsRate=%.2f$ifOutOctetsRate=%.2f$",
					ifindex, 
					ifInOctetsRate * 8, 
					ifOutOctetsRate * 8);
		}
		else
		{
			CString strLog;
			strLog.Format("时间总秒数%d", lInterval);
//			WriteLogFile(strMonitorID, strLog);		
		}
//		WriteLogFile(strMonitorID, szReturn);
		//if(strlen(szReturn) == 0)
		//{
		//	printf("%d年%d月%d日 %d时%d分%d秒 \n%d年%d月%d日 %d时%d分%d秒 \n",
		//		curTime.GetYear(), curTime.GetMonth(), curTime.GetDay(), 
		//		curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond(),
		//		bTime.GetYear(), bTime.GetMonth(), bTime.GetDay(),
		//		bTime.GetHour(), bTime.GetMinute(), bTime.GetSecond());
		//}
		char buff[256] = {0};
		memset(buff, 0, 256);
		ltoa(curTime.GetTime(), buff, 10);
		DFN_WritePrivateProfileString(cifIndex, "ifTime", buff, ciniFile);
		memset(buff, 0, 256);
		ltoa(ifInOctets, buff, 10);
		DFN_WritePrivateProfileString(cifIndex, "ifInOctets", buff, ciniFile);
		memset(buff, 0, 256);
		ltoa(ifOutOctets, buff, 10);
		DFN_WritePrivateProfileString(cifIndex, "ifOutOctets", buff, ciniFile);
	}
	}

w:	ptmp = psnval;
	if(ptmp) ptmpnext = ptmp->next;
	while(ptmp)
	{
		free(ptmp);
		ptmp = ptmpnext;
		if(ptmp) ptmpnext = ptmp->next;
	}

	return !ret;
}
Exemple #3
0
BOOL CTRONETHERSTATUS_MONITOR(char *server, int port, char *community, CString strIndex, 
			int rdelay, int timeout, int ngid, int nmid, char *cpath, char *szReturn)
{
	int		s;
	struct	sockaddr_in serv;

	int		i = 0, j = 0, ret = 0;
	int		count = 1;
	struct	snval *ptmp = NULL;
	struct	snval *ptmpnext = NULL;

	u_int	_64Octets = 0, _65to127Octets = 0;
	u_int	_Curr64Octets = 0, _Curr65to127Octets = 0;

	if((ret = MakeSocket(server, port, s, serv)) < 0)
	{
		if(ret == -1)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_1%>"));//<%IDS_CheckPoint_1%>
		else if(ret == -2)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_2%>"));//<%IDS_CheckPoint_2%>
		else
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_3%>"));//<%IDS_CheckPoint_3%>

		return FALSE;
	}

	long index_id[32];
	int	 index_id_c = 0;
	while(1)
	{
		i = strIndex.Find('.', 0);
		if(i > 0)
			index_id[index_id_c++] = atoi(strIndex);
		else if(i < 0 && strIndex.GetLength() > 0)
		{
			index_id[index_id_c++] = atoi(strIndex);
			break;
		}
		else
			break;

		strIndex.Delete(0, i + 1);
	}

	for(i = 0;i < index_id_c;i ++)
	{
		etherStatsPkts64Octets.id[etherStatsPkts64Octets.len++] = index_id[i];
		etherStatsPkts65to127Octets.id[etherStatsPkts65to127Octets.len ++] = index_id[i];
	}

	struct oid *poid = NULL, *ptmpoid = NULL;
	poid = ptmpoid = &etherStatsPkts64Octets;
	ptmpoid->next = &etherStatsPkts65to127Octets;
	ptmpoid = ptmpoid->next;

	struct snval *psnval = NULL;
	if((ret = SN_VALUES(s, serv, community, 1, poid, &psnval)) < 0)
	{
		if(ret == -1)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_4%>"));//<%IDS_CheckPoint_4%>
		else if(ret == -2)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_5%>"));//<%IDS_CheckPoint_5%>
		else if(ret == -3)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_6%>"));//<%IDS_CheckPoint_6%>
		else if(ret == -4)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_7%>"));//<%IDS_CheckPoint_7%>
		else if(ret == -5)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_8%>"));//<%IDS_CheckPoint_8%>
		else if(ret == -6)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_9%>"));//<%IDS_CheckPoint_9%>
		else if(ret == -7)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_10%>"));//<%IDS_CheckPoint_10%>
		else if(ret == -8)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_11%>"));//<%IDS_CheckPoint_11%>
		else
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CheckPoint_12%>"));//<%IDS_CheckPoint_12%>

		goto w;
	}

	_Curr64Octets = psnval->sv_val.sv_int;
	_Curr65to127Octets = psnval->next->sv_val.sv_int;

	{
	char ciniFile[256] = {0}, 
		 cinifile[256] = {0};
	char cifIndex[256] = {0};
	sprintf(cinifile, "ctron_%s_%d_%d.ini", server, ngid, nmid);
	sprintf(ciniFile, "%s\\%s", cpath, cinifile);
	sprintf(cifIndex, "ifIndex_%s", strIndex);

	long	ifTime = 0;
	CTime	curTime = CTime::GetCurrentTime();

	ifTime = DFN_GetPrivateProfileInt(cifIndex, "ifTime", 0, ciniFile);
	_64Octets = DFN_GetPrivateProfileInt(cifIndex, "_64Octets", 0, ciniFile);
	_65to127Octets = DFN_GetPrivateProfileInt(cifIndex, "_65to127Octets", 0, ciniFile);

	if(ifTime == 0 && _64Octets == 0 && _65to127Octets == 0)
	{
		CString strSection = _T("");
		strSection.Format("ifIndex_%s", strIndex);

		CString strMsg = _T("");
		strMsg.Format("%ld", curTime.GetTime());
		::DFN_WritePrivateProfileString((LPCTSTR)strSection, "ifTime", (LPCTSTR)strMsg, ciniFile);

		strMsg.Format("%ld", _Curr64Octets);
		::DFN_WritePrivateProfileString((LPCTSTR)strSection, "_64Octets", (LPCTSTR)strMsg, ciniFile);

		strMsg.Format("%ld", _Curr65to127Octets);
		::DFN_WritePrivateProfileString((LPCTSTR)strSection, "_65to127Octets", (LPCTSTR)strMsg, ciniFile);
	}
	else
	{
		float	_Rate64Octets = 0.0, _Rate65to127Octets = 0.0;
		Counter	_Delta64Octets = 0, _Delta65to127Octets = 0;

		CTime bTime(ifTime);
		CTimeSpan spanTime = curTime - bTime;
		long lInterval = spanTime.GetTotalSeconds();
		
		if(lInterval == 0) lInterval = 1;
		if(lInterval <= 12 * 60 * 60 && lInterval > 0)
		{
			_Delta64Octets = (unsigned int)(_Curr64Octets - _64Octets < 0 ? (COUNTER_MAX - _64Octets + _Curr64Octets) : (_Curr64Octets - _64Octets));
			_Rate64Octets = (float)_Delta64Octets / lInterval;

			_Delta65to127Octets = (unsigned int)(_Curr65to127Octets - _65to127Octets < 0 ? (COUNTER_MAX - _65to127Octets + _Curr65to127Octets) : (_Curr65to127Octets - _65to127Octets));
			_Rate65to127Octets = (float)_Delta65to127Octets / lInterval;

			sprintf(szReturn, "_Rate64Octets=%.2f$_Rate65to127Octets=%.2f$",
					_Rate64Octets, _Rate65to127Octets);
		}

		char buff[256] = {0};
		memset(buff, 0, 256);
		ltoa(curTime.GetTime(), buff, 10);
		DFN_WritePrivateProfileString(cifIndex, "ifTime", buff, ciniFile);
		memset(buff, 0, 256);
		ltoa(_Curr64Octets, buff, 10);
		DFN_WritePrivateProfileString(cifIndex, "_64Octets", buff, ciniFile);
		memset(buff, 0, 256);
		ltoa(_Curr65to127Octets, buff, 10);
		DFN_WritePrivateProfileString(cifIndex, "_65to127Octets", buff, ciniFile);
	}
	}

w:	ptmp = psnval;
	if(ptmp) ptmpnext = ptmp->next;
	while(ptmp)
	{
		free(ptmp);
		ptmp = ptmpnext;
		if(ptmp) ptmpnext = ptmp->next;
	}

	return !ret;
}
Exemple #4
0
bool AIXERRPT_TEL_VALUE(char *server, int port, char *uid, char *pwd, 
						char *pserver, int pport, char *puid, char *ppwd, 
						char *lprom, char *pprom, char *prom, char *inifile, 
						int ngid, char* strmid, char *custpath, char *szReturn)
{

	int		ret = 0;
	int		hSocket = 0;
	bool	bResult = TRUE;
	char	buffer[256] = {0};
	char	mbuffer[256] = {0};
	char	mdate[256] = {0};
	char	datebuff[64] = {0};
	char	curdate[64] = {0};
	//char	szIniFile[256] = {0};
	char	szTmpIniFile[256] = {0};
	int		isChinese = 0;

	//puts("ok");
	/*************************************
	 * For Reason Of Prompt
	 */
	int		c = 0;
	char	*ca = prom, *cb = NULL;
	char	arprompt[PR_NUM][256];
	memset(arprompt, 0, sizeof(arprompt));

	LPGDATA pgd=new GDATA;
	memset(pgd,0,sizeof(GDATA));


	while(cb = strchr(ca, 0x20))
	{
		if(ca == cb) 
		{
			ca ++;
			continue;
		}

		strncpy(arprompt[c++], ca, cb - ca);
		ca = cb + 1;
	}

	strcpy(arprompt[c++], ca);
	/***********************************/

	hSocket = telnet_init(server, port, pserver, pport, puid, ppwd);
	if(hSocket <= 0)
	{
		if(hSocket == -1)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_1%>"));//<%IDS_MQ_1%>"连接失败:域名解析"
		else if(hSocket == -2)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_2%>"));//<%IDS_MQ_2%>"连接失败:通信初始化"
		else if(hSocket == -3)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_3%>"));//<%IDS_MQ_3%>"连接失败:连接超时"
		else if(hSocket == -4)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_4%>"));//<%IDS_MQ_4%>"代理服务器连接失败"
		else if(hSocket == -5)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_5%>"));//<%IDS_MQ_5%>"代理服务器错误"
		else 
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_6%>"));//<%IDS_MQ_6%>"连接失败:未知错误"

		bResult = FALSE;
		goto err;
	}

	Tel_Param param;
	if((ret = telnet_connect(hSocket, uid, pwd, lprom, pprom, arprompt,pgd,&param)) < 0)
	{
		if(ret == -1)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_7%>"));//<%IDS_MQ_7%>"登录失败:读数据超时"
		else if(ret == -2)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_8%>"));//<%IDS_MQ_8%>"登录失败:读数据错误"
		else if(ret == -3)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_9%>"));//<%IDS_MQ_9%>"登录失败:查找提示符"
		else if(ret == -4)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_10%>"));//<%IDS_MQ_10%>"登录失败:查找登录提示符"
		else if(ret == -5)
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_11%>"));//<%IDS_MQ_11%>"登录失败:查找密码提示符"
		else 
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_MQ_12%>"));//<%IDS_MQ_12%>"登录失败:未知错误"

		bResult = FALSE;
		goto err;
	}

	if(DFNParser_GetPrivateProfileString("errorlog", "command", "", buffer, sizeof(buffer), inifile) <= 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>"));
		bResult = FALSE;
		goto err;
	}

	if(DFNParser_GetPrivateProfileString("errorlog", "matchline", "", mbuffer, sizeof(mbuffer), inifile) <= 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>"));
		bResult = FALSE;
		goto err;
	}

	if(DFNParser_GetPrivateProfileString("date", "command", "", mdate, sizeof(mdate), inifile) <= 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>"));
		bResult = FALSE;
		goto err;
	}
	
	isChinese = DFNParser_GetPrivateProfileInt("date", "isChinese", 0, inifile);

	if((ret = telnet_command(hSocket, mdate,pgd,&param)) < 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
		bResult = FALSE;
		goto err;
	}

	if(isChinese)
	{
		char	week[64] = {0};
		int		years = 0, months = 0, days = 0, 
				hours = 0, minutes = 0, seconds = 0;

		if(sscanf(pgd->databuffer, "公元%d年%d月%d日 %s %d时%d分%d秒", 
				&years, &months, &days, week, &hours, &minutes, &seconds) != 7)
		{
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
			bResult = FALSE;
			goto err;
		}

		sprintf(curdate, "%2.2d%2.2d%2.2d%2.2d%2.2d", months, days, hours, minutes, years % 100);
	}
	else
	{
		char	week[16] = {0};
		char	month[16] = {0}; 
		int		day = 0;
		int		hours = 0, mins = 0, secs = 0;
		char	div[16] = {0};
		int		year = 0;
		if(sscanf(pgd->databuffer, "%s %s %d %d:%d:%d %s %d", week, month, &day, &hours, &mins, &secs, div, &year) != 8)
		{
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
			bResult = FALSE;
			goto err;
		}

		if(convert_date(month, day, hours, mins, year, curdate))
		{
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
			bResult = FALSE;
			goto err;
		}
	}

	sprintf(szTmpIniFile, "logfile.ini");
	DFN_GetPrivateProfileString(strmid, "lastdate", "", datebuff, sizeof(datebuff), szTmpIniFile);
	
	if(!*datebuff) strncpy(datebuff, curdate, 10);

	if(ca = strchr(buffer, '<')) 
	{
		strncpy(ca, datebuff, 10);
		*(ca + 10) = 0;
	}

	memset(pgd->databuffer, 0, BUF_SIZE);
	pgd->datalen = 0;
    printf("Error Report Command is :%s\n", buffer);
	if((ret = telnet_command(hSocket, buffer,pgd)) < 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
		bResult = FALSE;
		goto err;
	}

	if(ret == 0 || !strstr(pgd->databuffer, mbuffer))
	{
		char tmp [256] = {0};
		
		//ofstream fout("aixerr.log",ios::app);
		//int i = GetConfirms(strmid);
		//fout << itoa(i, tmp, 10) <<"\r\n"; 
		//fout << flush; 
		//fout.close();

		if(GetConfirms(strmid) > 0)
			DFN_WritePrivateProfileString(strmid, "needconfirm", _ltoa(FALSE, tmp, 10), szTmpIniFile);

		BOOL bChange = DFN_GetPrivateProfileInt(strmid, "needconfirm", FALSE, szTmpIniFile);
		if (!bChange)
		{
			sprintf(szReturn, "status=0$" ); //0: 未改变 1:改变
		}
		else
		{
			sprintf(szReturn, "status=1$" );
		}		
	}
	else
	{
		sprintf(szReturn, "status=1$" );

		FILE *fp = NULL;
		char szErrptLogFile[256] = {0};
		sprintf(szErrptLogFile, "%s\\data\\TmpIniFile\\logfile_%s.log", FuncGetInstallRootPath(), strmid);
		if(fp = fopen(szErrptLogFile, "a+"))
		{
			fprintf(fp, "%s", pgd->databuffer);
			fclose(fp);
		}

		char tmp [256] = {0};
        printf("Track record\n");
		DFN_WritePrivateProfileString(strmid, "needconfirm", _ltoa(TRUE, tmp, 10), szTmpIniFile);
	}
	DFN_WritePrivateProfileString(strmid, "lastdate", curdate, szTmpIniFile);
err:
	shutdown(hSocket, 0x02);
	closesocket(hSocket);
	delete pgd;
	return bResult;
}
Exemple #5
0
BOOL AIXERRPT_SSH_VALUE(char *server, int port, char *uid, char *pwd, 
						char *inifile, int ngid, char* strmid, char *custpath, char *privatekeyfile,
						char *szReturn)
{
	int		ret = 0;
	char	buffer[256] = {0};
	char	mbuffer[256] = {0};
	char	mdate[256] = {0};
	char	datebuff[64] = {0};
	char	curdate[64] = {0};
	char	szTmpIniFile[256] = {0};
	int		isChinese = 0;
	CString	strResult = _T("");

	if(DFNParser_GetPrivateProfileString("errorlog", "command", "", buffer, sizeof(buffer), inifile) <= 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>"));
		return FALSE;
	}

	if(DFNParser_GetPrivateProfileString("errorlog", "matchline", "", mbuffer, sizeof(mbuffer), inifile) <= 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>"));
		return FALSE;
	}

	if(DFNParser_GetPrivateProfileString("date", "command", "", mdate, sizeof(mdate), inifile) <= 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_02%>"));
		return FALSE;
	}

	isChinese = DFNParser_GetPrivateProfileInt("date", "isChinese", 0, inifile);

	if((ret = ssh_command(server,port, uid, pwd, mdate, privatekeyfile, strResult)) < 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
		return FALSE;
	}

	if(isChinese)
	{
		char	week[64] = {0};
		int		years = 0, months = 0, days = 0, 
				hours = 0, minutes = 0, seconds = 0;

		if(sscanf(strResult, "公元%d年%d月%d日 %s %d时%d分%d秒", 
				&years, &months, &days, week, &hours, &minutes, &seconds) != 7)
		{
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
			return FALSE;
		}

		sprintf(curdate, "%2.2d%2.2d%2.2d%2.2d%2.2d", months, days, hours, minutes, years % 100);
	}
	else
	{
		char	week[16] = {0};
		char	month[16] = {0}; 
		int		day = 0;
		int		hours = 0, mins = 0, secs = 0;
		char	div[16] = {0};
		int		year = 0;
		if(sscanf(strResult, "%s %s %d %d:%d:%d %s %d", week, month, &day, &hours, &mins, &secs, div, &year) != 8)
		{
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
			return FALSE;
		}

		if(convert_date(month, day, hours, mins, year, curdate))
		{
			sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
			return FALSE;
		}
	}

    sprintf(szTmpIniFile, "logfile.ini");
	DFN_GetPrivateProfileString(strmid, "lastdate",  "", datebuff, sizeof(datebuff), szTmpIniFile);
	
	if(!*datebuff) strncpy(datebuff, curdate, 10);

	char *ca = NULL;
	if(ca = strchr(buffer, '<')) 
	{
		strncpy(ca, datebuff, 10);
		*(ca + 10) = 0;
	}

	strResult = _T("");
	if((ret = ssh_command(server, port, uid, pwd, buffer, privatekeyfile, strResult)) < 0)
	{
		sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_LOGFILE_01%>"));
		return FALSE;
	}

	if(ret == 0 || !strstr(strResult, mbuffer))
	{
		char tmp [256] = {0};
		if(GetConfirms(strmid) > 0)
			DFN_WritePrivateProfileString(strmid, "needconfirm", _ltoa(FALSE, tmp, 10), szTmpIniFile);

		BOOL bChange = DFN_GetPrivateProfileInt(strmid, "needconfirm", FALSE, szTmpIniFile);
		if (!bChange)
		{
			//sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_AIXErrpt_01%>"));
			sprintf(szReturn, "status=0$" ); //0: 未改变 1:改变
		}
		else
		{
			//sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_AIXErrpt_02%>"));
			sprintf(szReturn, "status=1$" ); //0: 未改变 1:改变
		}
	}
	else
	{
		//sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_AIXErrpt_02%>"));
		sprintf(szReturn, "status=1$" ); //0: 未改变 1:改变
	
		FILE *fp = NULL;
		char szErrptLogFile[256] = {0};
        sprintf(szErrptLogFile, "%s\\data\\TmpIniFile\\logfile_%s.log", FuncGetInstallRootPath(), strmid);

		if(fp = fopen(szErrptLogFile, "a+"))
		{
			fprintf(fp, "%s", strResult);
			fclose(fp);
		}
		char tmp [256] = {0};
		DFN_WritePrivateProfileString(strmid, "needconfirm", _ltoa(TRUE, tmp, 10), szTmpIniFile);
	}
	DFN_WritePrivateProfileString(strmid, "lastdate", curdate, szTmpIniFile);
	return TRUE;
}
Exemple #6
0
BOOL CISCOCONFIG_MONITOR62(char *server, int port, char *pwd, char *enpwd,
                           char *pwdprompt, char *prompt, char *enpwdprompt,
                           char *enprompt, char *encmd, char *monitorid,
                           char *proxy_server, int proxy_port, char *proxy_uid,
                           char *proxy_pwd, char *custpath, char *szReturn)
{
    int		ret = 0;
    int		hSocket = 0;
    char runcmd[64] = {0};

    printf("Server:%s\nPort:%d\n", server, port);
    hSocket = telnet_init(server, port, proxy_server, proxy_port, proxy_uid, proxy_pwd);
    if(hSocket <= 0)
    {
        if(hSocket == -1)
            sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_1%>"));//<%IDS_CiscoLog_1%>
        else if(hSocket == -2)
            sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_2%>"));//<%IDS_CiscoLog_2%>
        else if(hSocket == -3)
            sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_3%>"));//<%IDS_CiscoLog_3%>
        else if(hSocket == -4)
            sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_4%>"));//<%IDS_CiscoLog_4%>
        else if(hSocket == -5)
            sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_5%>"));//<%IDS_CiscoLog_5%>
        else
            sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_6%>"));//<%IDS_CiscoLog_6%>

        return FALSE;
    }

    LPGDATA pgd=new GDATA;
    memset(pgd,0,sizeof(GDATA));

    printf("Connect Cisio network set\n");
    if((ret = cisco_connect(hSocket, pwd, pwdprompt, prompt,pgd)) < 0)
    {
        sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_7%>"));//<%IDS_CiscoLog_7%>
        delete pgd;
        return FALSE;
    }

    strncpy(runcmd, "enable\r\n", 8);
    send(hSocket, runcmd, strlen(runcmd), 0);
    printf("Login Cisio Config\n");
    if((ret = cisco_connect(hSocket, enpwd, enpwdprompt, enprompt,pgd)) < 0)
    {
        sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_8%>"));//<%IDS_CiscoLog_8%>
        delete pgd;
        return FALSE;
    }
    printf("Execute command\n");
    if((ret = cisco_command(hSocket, encmd, enprompt,pgd)) < 0)
    {
        sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_9%>"));//<%IDS_CiscoLog_9%>
        delete pgd;
        return FALSE;
    }

    int index = 0;
    char prebuffer[MAX_READ_SIZE] = {0};
    CString strBuffer(pgd->databuffer);

    index = strBuffer.Find("show running-config\r\n", 0);
    if(index >= 0)
        strBuffer.Delete(0, index + 21);

    if(!strBuffer.Right(strlen(enprompt)).Compare(enprompt))
    {
        index = strBuffer.ReverseFind('\r');
        if(index >= 0)
            strBuffer = strBuffer.Left(index);
    }

    FILE *cisco_fp = NULL;
    char prefile[256] = {0};

    sprintf(prefile, "%s\\cisco_config_%s", custpath, monitorid);
    if((_access(prefile, 0x04)) == -1)
    {
        if((cisco_fp = fopen(prefile, "w")) == NULL)
        {
            sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_10%>"));//<%IDS_CiscoLog_10%>
            delete pgd;
            return FALSE;
        }

        sprintf(szReturn,"status=%s$", FuncGetStringFromIDS("<%IDS_CiscoLog_11%>"));//<%IDS_CiscoLog_11%>
        int i = fwrite(strBuffer, sizeof(char), strBuffer.GetLength(), cisco_fp);
        fclose(cisco_fp);
        delete pgd;
        return TRUE;
    }

    if((cisco_fp = fopen(prefile, "r")) == NULL)
    {
        sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_12%>"));//<%IDS_CiscoLog_12%>
        delete pgd;
        return FALSE;
    }

    int j = fread(prebuffer, sizeof(char), sizeof(prebuffer), cisco_fp);
    fclose(cisco_fp);
    prebuffer[j] = 0;
    int m = strlen(prebuffer);
    int n = strBuffer.GetLength();
    if(!strBuffer.Compare(prebuffer))
    {
        char buffer [256] = {0};
        char tmp [256] = {0};
#if _DEBUG
        sprintf(buffer, "%s\\temp\\Cisio_logfile_%s.ini", FuncGetInstallRootPath(), server);
#else
        sprintf(buffer, "%s\\MonitorManager\\temp\\logfile.ini", FuncGetInstallRootPath());
#endif
        BOOL bChange = DFN_GetPrivateProfileInt(monitorid, "needconfirm", FALSE, buffer);
        if (!bChange)
        {
            sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_CiscoLog_13%>"));//<%IDS_CiscoLog_13%>
            delete pgd;
            return TRUE;
        }
        else
        {
            sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_CiscoLog_14%>"));//<%IDS_CiscoLog_14%>
            delete pgd;
            return TRUE;
        }
    }
    else
    {
        sprintf(szReturn, "status=%s$", FuncGetStringFromIDS("<%IDS_CiscoLog_14%>"));//<%IDS_CiscoLog_14%>
        if((cisco_fp = fopen(prefile, "w")) == NULL)
        {
            sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_CiscoLog_15%>"));//<%IDS_CiscoLog_15%>
            delete pgd;
            return FALSE;
        }

        int k = fwrite(strBuffer, sizeof(char), strBuffer.GetLength(), cisco_fp);
        fclose(cisco_fp);

        char buffer [256] = {0};
        char tmp [256] = {0};
#if _DEBUG
        sprintf(buffer, "%s\\temp\\Cisio_logfile_%s.ini", FuncGetInstallRootPath(), server);
#else
        sprintf(buffer, "%s\\MonitorManager\\temp\\logfile.ini", FuncGetInstallRootPath());
#endif
        DFN_WritePrivateProfileString(monitorid, "needconfirm", _ltoa(TRUE, tmp, 10), buffer);

        delete pgd;
        return TRUE;
    }
}