Exemplo n.º 1
0
Result<ExitCode> SelfTest::Run(const Settings& settings) const
{	
	auto statisticResult = GetStatistic(settings);
	if (statisticResult.HasError())
	{
		return statisticResult.GetError();
	}

	auto statistic = statisticResult.GetResultValue();
	if (statistic.IsService())
	{	
		if (!statistic.HasAdministrativePrivileges())
		{
			return EXIT_CODE_NO_ADMIN;
		}

		if (!statistic.HasSeAssignPrimaryTokenPrivilege())
		{
			return EXIT_CODE_NO_ASSIGN_PRIMARY_TOKEN_PRIV;
		}

		if (!statistic.HasSeTcbPrivilegePrivilege())
		{
			return EXIT_CODE_NO_TCB_PRIV;
		}
	}
	
	return Is64OS() ? EXIT_CODE_READY_FOR_64 : EXIT_CODE_READY_FOR_32;
}
Exemplo n.º 2
0
void
hnStatus::SendChanges( netMetaPacketOutput * packet )
{
	if ( m_changedStatistics )
	{
		netClientStatistics stats;
		
		for ( int i = 0; i < MAX_STATISTICS; i++ )
			stats.statistic[i] = GetStatistic(i);
		
		packet->ClientStatistics(stats);
		
		m_changedStatistics = false;
	}
	if ( m_changedHitPoints )
	{
		netClientHitPoints hp;

		hp.hitPoints = m_hitPoints;
		hp.maxHitPoints = m_hitPointMax;

		packet->ClientHitPoints(hp);
		
		m_changedHitPoints = false;
	}
	if ( m_changedSpellPoints )
	{
		netClientSpellPoints sp;

		sp.spellPoints = m_spellPoints;
		sp.maxSpellPoints = m_spellPointMax;

		packet->ClientSpellPoints(sp);
		
		m_changedSpellPoints = false;
	}
	if ( m_changedExperiencePoints )
	{
		netClientExperience ep;

		ep.experiencePoints = m_experiencePoints;
		ep.level = m_level;

		packet->ClientExperience(ep);

		m_changedExperiencePoints = false;
	}
}