コード例 #1
0
ファイル: ErrHost.cpp プロジェクト: u9330028/GIT_SW_PJ
/////////////////////////////////////////////////////////////////////////////
//	장애정보설정
/////////////////////////////////////////////////////////////////////////////
void CProfile::ErrSub(DERRINFO* DErrInfo, char* MainSec, char* SubSec)
{
	int		i = 0;
	char	SUB_SECT[81];
	HERRINFO	MAIN;
	DERRINFO	ERR;

	memcpy(&ERR.Remark[0], &DErrInfo->Remark[0], sizeof(ERR.Remark) - 1);
	ERR.Remark[sizeof(ERR.Remark)-1] = NULL;					// V05-01-04-#06:codesonar 오류지적

	i = 0;
	MAIN.Loop		= GetPInt(MainSec, Main[i++].name, 0, _ERRHOST_INI);
	MAIN.Count		= GetPInt(MainSec, Main[i++].name, 0, _ERRHOST_INI);

	sprintf(SUB_SECT, "%s %d", SubSec, MAIN.Count);

	i = 0;
	PutPStr(SUB_SECT, ErrName[i++].name, ERR.Remark, sizeof(ERR.Remark), _ERRHOST_INI);

	MAIN.Count++;												// 위치정보
	if (MAIN.Count >= ErrHost_MaxNumber) 
	{
		MAIN.Loop = 1;											// 환영
		PutPInt(MainSec, Main[0].name, MAIN.Loop,	_ERRHOST_INI);
		MAIN.Count = 0;
	}

	PutPInt(MainSec, Main[1].name, MAIN.Count,	_ERRHOST_INI);
}
コード例 #2
0
ファイル: ErrHost.cpp プロジェクト: u9330028/GIT_SW_PJ
/////////////////////////////////////////////////////////////////////////////
//	현재장애정보
/////////////////////////////////////////////////////////////////////////////
int CProfile::GetCrtErrSub(DERRINFO* DErrInfo, char* MainSec, char* SubSec)
{
	int		i = 0, ii = 0;
	char	SUB_SECT[81];
	HERRINFO	MAIN;
	DERRINFO	ERR;

	i = 0;
	MAIN.Loop	= GetPInt(MainSec, Main[i++].name, 0, _ERRHOST_INI);
	MAIN.Count	= GetPInt(MainSec, Main[i++].name, 0, _ERRHOST_INI);
	
	if (MAIN.Loop || MAIN.Count)								// 장애 있슴
	{
		if (MAIN.Count == 0)
			MAIN.Count = ErrHost_MaxNumber - 1;
		else MAIN.Count = MAIN.Count - 1;

		sprintf(SUB_SECT, "%s %d", SubSec, MAIN.Count);

		i = 0;
		GetPStr(SUB_SECT, ErrName[i++].name, '?', ERR.Remark, sizeof(ERR.Remark), _ERRHOST_INI);
		return 1;
	}
	else return 0;
}
コード例 #3
0
ファイル: ErrHost.cpp プロジェクト: u9330028/GIT_SW_PJ
/////////////////////////////////////////////////////////////////////////////
//	전체장애정보
/////////////////////////////////////////////////////////////////////////////
int CProfile::GetAllErrSub(DERRINFO* DErrInfo, char* MainSec, char* SubSec)
{
	int		i = 0, ii = 0;
	char	SUB_SECT[81];
	HERRINFO	MAIN;
	DERRINFO	ERR;

	i = 0;
	MAIN.Loop	= GetPInt(MainSec, Main[i++].name, 0, _ERRHOST_INI);
	MAIN.Count	= GetPInt(MainSec, Main[i++].name, 0, _ERRHOST_INI);
	
	if (MAIN.Loop || MAIN.Count)								// 장애 있슴
	{
		if (MAIN.Count)
		{
			for (int j = (MAIN.Count - 1); j >= 0; j--)			// 최근순서부터
			{
				sprintf(SUB_SECT, "%s %d", SubSec, j);

				i = 0;
				GetPStr(SUB_SECT, ErrName[i++].name, '?', ERR.Remark, sizeof(ERR.Remark), _ERRHOST_INI);

				memcpy(&DErrInfo[ii++], &ERR, sizeof(DERRINFO));
			}
		}

		if (MAIN.Loop)
		{
			for (int j = (ErrHost_MaxNumber - 1); j >= MAIN.Count; j--) 
			{
				sprintf(SUB_SECT, "%s %d", SubSec, j);

				i = 0;
				GetPStr(SUB_SECT, ErrName[i++].name, '?', ERR.Remark, sizeof(ERR.Remark), _ERRHOST_INI);

				memcpy(&DErrInfo[ii++], &ERR, sizeof(DERRINFO));
			}
			return ErrHost_MaxNumber;
		}
		else return MAIN.Count;
	}
	else return 0;
}
コード例 #4
0
  CppDiffieHellman::CppDiffieHellman(const QByteArray &data, bool seed)
  {
    _dh_params.AccessGroupParameters().Initialize(GetPInt(), GetQInt(), GetGInt());

    _public_key = QByteArray(_dh_params.PublicKeyLength(), 0);
    CppRandom rng(data);

    if(data.isEmpty() || seed) {
      _private_key = QByteArray(_dh_params.PrivateKeyLength(), 0);
      _dh_params.GenerateKeyPair(*rng.GetHandle(),
          reinterpret_cast<byte *>(_private_key.data()),
          reinterpret_cast<byte *>(_public_key.data()));
    } else {
      _private_key = data;
      // This DOES NOT use the rng
      _dh_params.GeneratePublicKey(*rng.GetHandle(), 
          reinterpret_cast<byte *>(_private_key.data()),
          reinterpret_cast<byte *>(_public_key.data()));
    }
  }