a.id_local,
								a.te_locais_secundarios,
								c.sg_local
						FROM 	usuarios a, 
								locais c
						WHERE 	a.nm_usuario_acesso = '". trim(DeCrypt($key,$iv,$_POST['nm_acesso'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)) ."' AND 
								a.id_local = c.id_local AND 
								a.te_senha = ";
								//SHA1('". trim(DeCrypt($key,$iv,$_POST['te_senha'],$v_cs_cipher,$v_cs_compress)) ."')";

//GravaTESTES('QRY_USUARIO='.$qry_usuario);

		// Solução temporária, até total convergência para versões 4.0.2 ou maior de MySQL 
		// Anderson Peterle - Dataprev/ES - 04/09/2006
		$v_AUTH_SHA1 	 = " SHA1('". trim(DeCrypt($key,$iv,$_POST['te_senha'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)) ."')";
		$v_AUTH_PASSWORD = "******". trim(DeCrypt($key,$iv,$_POST['te_senha'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)) ."')";	
	
		// Para MySQL 4.0.2 ou maior	
		// Anderson Peterle - Dataprev/ES - 04/09/2006
		$query = $qry_usuario . $v_AUTH_SHA1; 
//GravaTESTES('QUERY = '.$query);		
		$result_qry_usuario = mysql_query($query);
		if (mysql_num_rows($result_qry_usuario)<=0)
			{
			// Para MySQL até 4.0	
			// Anderson Peterle - Dataprev/ES - 04/09/2006		
			$query = $qry_usuario . $v_AUTH_PASSWORD;
			$result_qry_usuario = mysql_query($query);
			}
		
		if (mysql_num_rows($result_qry_usuario)>0)
	$query = "	UPDATE 	computadores 
				SET		te_mem_ram_desc          = '" . DeCrypt($key,$iv,$_POST['te_mem_ram_desc']			,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						qt_mem_ram               = '" . DeCrypt($key,$iv,$_POST['qt_mem_ram']				,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_bios_desc             = '" . DeCrypt($key,$iv,$_POST['te_bios_desc']				,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_bios_data             = '" . DeCrypt($key,$iv,$_POST['te_bios_data']				,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_bios_fabricante       = '" . DeCrypt($key,$iv,$_POST['te_bios_fabricante']		,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_placa_mae_desc        = '" . DeCrypt($key,$iv,$_POST['te_placa_mae_desc']		,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_placa_mae_fabricante  = '" . DeCrypt($key,$iv,$_POST['te_placa_mae_fabricante']	,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						qt_placa_video_mem       = '" . DeCrypt($key,$iv,$_POST['qt_placa_video_mem']		,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						qt_placa_video_cores     = '" . DeCrypt($key,$iv,$_POST['qt_placa_video_cores']		,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_placa_video_desc      = '" . DeCrypt($key,$iv,$_POST['te_placa_video_desc']		,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_placa_video_resolucao = '" . DeCrypt($key,$iv,$_POST['te_placa_video_resolucao']	,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_placa_som_desc        = '" . DeCrypt($key,$iv,$_POST['te_placa_som_desc']		,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_teclado_desc          = '" . DeCrypt($key,$iv,$_POST['te_teclado_desc']			,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_mouse_desc            = '" . DeCrypt($key,$iv,$_POST['te_mouse_desc']			,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
						te_modem_desc            = '" . DeCrypt($key,$iv,$_POST['te_modem_desc']			,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "'
				WHERE 	te_node_address    		 = '" . $te_node_address . "' and id_so = '" . $arrSO['id_so'] . "'";
//GravaTESTES('Query: '.$query);				
	$result = mysql_query($query);		
		
	echo '<?xml version="1.0" encoding="iso-8859-1" ?><STATUS>OK</STATUS>';	
	}
else
	echo '<?xml version="1.0" encoding="iso-8859-1" ?><STATUS>Chave (TE_NODE_ADDRESS + ID_SO) Inválida</STATUS>';

// Função para montagem do texto de componentes acrescentados
function TrataAlteracoes($arrTiposComponentes, $arrHardwareSelecionado,$arrDescricoesColunasComputadores)
	{
	$strAlteracoes  = '';
	$arrOperacoes 	   = array('REM','ACR'); 
	$strAlteracoes = '';
Example #3
0
function autentica_agente($p_CipherKey, $p_IV, $p_cs_cipher, $p_cs_compress, $p_PaddingKey = '')
{
    /*
    GravaTESTES('###########################################');		
    GravaTESTES('Script Chamador:  '.$_SERVER['REQUEST_URI']);		
    GravaTESTES('1:  '.$_SERVER['HTTP_USER_AGENT']);	
    GravaTESTES('11: '.strtoupper(DeCrypt($p_CipherKey,$p_IV,$_SERVER['HTTP_USER_AGENT'],$p_cs_cipher, $p_cs_compress,$p_PaddingKey)));
    GravaTESTES('2:  '.$_SERVER['PHP_AUTH_USER']);	
    GravaTESTES('22: '.strtoupper(DeCrypt($p_CipherKey,$p_IV,$_SERVER['PHP_AUTH_USER'],$p_cs_cipher, $p_cs_compress,$p_PaddingKey)));	
    GravaTESTES('3:  '.$_SERVER['PHP_AUTH_PW']);		
    GravaTESTES('33: '.strtoupper(DeCrypt($p_CipherKey,$p_IV,$_SERVER['PHP_AUTH_PW'],$p_cs_cipher, $p_cs_compress,$p_PaddingKey)));			
    GravaTESTES('###########################################');			
    */
    if (strtoupper(DeCrypt($p_CipherKey, $p_IV, $_SERVER['HTTP_USER_AGENT'], $p_cs_cipher, $p_cs_compress, $p_PaddingKey)) != 'AGENTE_CACIC' || strtoupper(DeCrypt($p_CipherKey, $p_IV, $_SERVER['PHP_AUTH_USER'], $p_cs_cipher, $p_cs_compress, $p_PaddingKey)) != 'USER_CACIC' || strtoupper(DeCrypt($p_CipherKey, $p_IV, $_SERVER['PHP_AUTH_PW'], $p_cs_cipher, $p_cs_compress, $p_PaddingKey)) != 'PW_CACIC') {
        echo 'Acesso não autorizado.';
        exit;
    }
}
if (count($HTTP_GET_VARS)>0)
	{
	GravaTESTES('srCACIC_getConfig.Valores GET Recebidos:');
	foreach($HTTP_GET_VARS as $i => $v) 
		GravaTESTES('srCACIC_getConfig: GET => '.$i.' => '.$v.' => '.DeCrypt($key,$iv,$v,$v_cs_cipher,$v_cs_compress,$strPaddingKey));
	GravaTESTES('');	
	}
*/

conecta_bd_cacic();			

// Autenticação da Estação Visitada
$te_node_address   	= trim( DeCrypt($key,$iv,$_POST['te_node_address'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey) ); 
$te_so             	= trim( DeCrypt($key,$iv,$_POST['te_so']		     ,$v_cs_cipher,$v_cs_compress,$strPaddingKey) ); 
$te_palavra_chave  	= trim( DeCrypt($key,$iv,$_POST['te_palavra_chave'],$v_cs_cipher,$v_cs_compress,$strPaddingKey) ); 


/*
GravaTESTES('srCACIC_getConfig.te_node_address:'.$te_node_address);
GravaTESTES('srCACIC_getConfig.te_so:'.$te_so);
GravaTESTES('srCACIC_getConfig.te_palavra_chave:'.$te_palavra_chave);
*/

// ATENÇÃO: Apenas retornará um ARRAY contendo "id_so" e "te_so".
$arrSO = inclui_computador_caso_nao_exista(	$te_node_address, 
											'',
											$te_so,
											'', 
											'', 
											'',
// Essas variáveis conterão os indicadores de criptografia e compactação
$v_cs_cipher	= (trim($_REQUEST['cs_cipher'])   <> ''?trim($_REQUEST['cs_cipher'])   : '4');

// Definição do nível de compressão (Default = 1 => mínimo)
//$v_compress_level = 1;
$v_compress_level = 0;  // Mantido em 0(zero) para desabilitar a Compressão/Decompressão 
						// Há necessidade de testes para Análise de Viabilidade Técnica 

$retorno_xml_header  = '<?xml version="1.0" encoding="iso-8859-1" ?>';
$retorno_xml_values	 = '<STATUS>OK</STATUS><CS_OPERACAO>'.trim($_REQUEST['cs_operacao']).'</CS_OPERACAO>';

if (trim($_REQUEST['cs_operacao']) == 'TestaCrypt')
	{
//echo 'Meio 1...<br>';	
	$retorno_xml_values .= '<CipheredTextRecepted>'.trim($_REQUEST['te_CipheredText']).'</CipheredTextRecepted>';	
//echo 'Meio 2... KEY='.$key.' IV='.$iv.'<br>';		
	$retorno_xml_values .= '<cs_Cipher>'.$v_cs_cipher.'</cs_Cipher>';				
//echo 'Meio 3...<br>';		
	$retorno_xml_values .= '<IVServer>'.$iv.'</IVServer>';		
//echo 'Meio 4...<br>';		
	$retorno_xml_values .= '<CipherKeyServer>'.$key.'</CipherKeyServer>';			
//echo 'Meio 5...<br>';		
	$v_UnCipheredText = trim(@DeCrypt($key,$iv,$_REQUEST['te_CipheredText'],$v_cs_cipher,$v_cs_compress));
	$retorno_xml_values .= '<UnCipheredText>'.$v_UnCipheredText.'</UnCipheredText>';		
//echo 'Meio 6...<br>';		
	}	
$retorno_xml = $retorno_xml_header . $retorno_xml_values;  
//echo 'Fim...<br>';
echo $retorno_xml;	  
?>
		if ($strValues <> '')
			{
			$queryINS  = "INSERT INTO softwares_inventariados_estacoes 
					   			  (te_node_address,
								   id_so,
								   id_software_inventariado)											
					      VALUES 	  ".$strValues;					                  
			$resultINS = mysql_query($queryINS);												
			}
		}
	

	// =====================
	// VARIÁVEIS DE AMBIENTE
	// =====================
	$te_variaveis_ambiente = DeCrypt($key,$iv,$_POST['te_variaveis_ambiente'],$v_cs_cipher,$v_cs_compress,$strPaddingKey);		
	
	while (substr(trim($te_variaveis_ambiente),0,1)=='=')	
		$te_variaveis_ambiente = substr(trim($te_variaveis_ambiente),1);

	if ($te_variaveis_ambiente <> '')
		{
		$queryDEL  = "DELETE FROM variaveis_ambiente_estacoes 
					  WHERE 	te_node_address = '".$te_node_address."' AND
							    id_so = '".$arrSO['id_so']."'";					                  
		$resultDEL = mysql_query($queryDEL);									

		$v_array_te_variaveis_ambiente = explode('#',$te_variaveis_ambiente);			
		$strTripaHash    = '';
		$arrHashsNomes   = array();
		$arrHashsValores  = array();		
	$v_te_serv_updates 				 = $v_dados_rede['te_serv_updates'];
	$v_te_web_manager_address 		 = $v_dados_rede['v_te_web_manager_address'];
	$v_te_path_serv_updates			 = $v_dados_rede['te_path_serv_updates'];
	$v_nm_usuario_login_serv_updates = $v_dados_rede['nm_usuario_login_serv_updates'];	
	$v_te_senha_login_serv_updates	 = $v_dados_rede['te_senha_login_serv_updates'];		
	$v_nu_porta_serv_updates	 	 = $v_dados_rede['nu_porta_serv_updates'];				

	$te_node_address 				 = DeCrypt($key,$iv,$_POST['te_node_address']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey); // Endereço MAC (MAC Address) 
	$id_so_new         				 = DeCrypt($key,$iv,$_POST['id_so']					,$v_cs_cipher,$v_cs_compress,$strPaddingKey); // Antigo Identificador de S.O. (Old O.S. ID) 
	$te_so           				 = DeCrypt($key,$iv,$_POST['te_so']					,$v_cs_cipher,$v_cs_compress,$strPaddingKey); // Novo Identificador de S.O. (New O.S. Id)
	$te_nome_computador				 = DeCrypt($key,$iv,$_POST['te_nome_computador']	,$v_cs_cipher,$v_cs_compress,$strPaddingKey); // Nome do Computador (Computer Name)
	$te_workgroup 					 = DeCrypt($key,$iv,$_POST['te_workgroup']			,$v_cs_cipher,$v_cs_compress,$strPaddingKey); // Nome do Grupo de Trabalho (WorkGroup Name)
	$te_versao_cacic				 = DeCrypt($key,$iv,$_POST['te_versao_cacic']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey); // Versão do Agente Principal (Version of Principal Agent)
	$te_versao_gercols				 = DeCrypt($key,$iv,$_POST['te_versao_gercols']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey); // Versão do Agente Gerente de Coletas Ger_Cols (Version of PickUp Manager)
	$te_palavra_chave				 = DeCrypt($key,$iv,$_POST['te_palavra_chave']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey); // Palavra-Chave para Acesso ao Agente Principal (Keyword to Access to Principal Agent)
	$te_tripa_perfis    			 = DeCrypt($key,$iv,$_POST['te_tripa_perfis']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey); // Lista com Resultados de Sistemas Monitorados Pesquisados na Estação (Results of Search of Station´s Monitored Systems)


	/* Todas as vezes em que é feita a recuperação das configurações por um agente, é incluído 
	 o computador deste agente no BD, caso ainda não esteja inserido. */
	// ATENÇÃO: Retornará um ARRAY contendo "id_so" e "te_so".
	$arrSO = inclui_computador_caso_nao_exista(	$te_node_address, 
												$id_so_new,
												$te_so,
												$id_ip_rede, 
												$v_id_ip_estacao, 
												$te_nome_computador,
												$te_workgroup);									
											
	/* Atualizo a data/hora da última vez em que o agente foi executado. */
	/* Atualizo as versões dos agentes principais. */	
	}
	
$boolAgenteLinux 	= (trim(DeCrypt($key,$iv,$_POST['AgenteLinux'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)) <> ''?true:false);

autentica_agente($key,$iv,$v_cs_cipher,$v_cs_compress,$strPaddingKey);

$v_dados_rede = getDadosRede();

$te_node_address 	= DeCrypt($key,$iv,$_POST['te_node_address']	,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$id_so_new         	= DeCrypt($key,$iv,$_POST['id_so']				,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$te_so           	= DeCrypt($key,$iv,$_POST['te_so']				,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$id_ip_rede     	= DeCrypt($key,$iv,$_POST['id_ip_rede']			,$v_cs_cipher,$v_cs_compress,$strPaddingKey);
$te_ip 				= DeCrypt($key,$iv,$_POST['te_ip']				,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$te_nome_computador	= DeCrypt($key,$iv,$_POST['te_nome_computador']	,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$te_workgroup 		= DeCrypt($key,$iv,$_POST['te_workgroup']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$id_usuario 		= DeCrypt($key,$iv,$_POST['id_usuario']			,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 

/* Todas as vezes em que é feita a recuperação das configurações por um agente, é incluído 
 o computador deste agente no BD, caso ainda não esteja inserido. */
if ($te_node_address <> '')
	{
	$arrSO = inclui_computador_caso_nao_exista(	$te_node_address, 
												$id_so_new, 
												$te_so,
												$id_ip_rede, 
												$te_ip, 
												$te_nome_computador,
												$te_workgroup);
	}

$te_node_address = DeCrypt($key, $iv, $_POST['te_node_address'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$id_so_new = DeCrypt($key, $iv, $_POST['id_so'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_so = DeCrypt($key, $iv, $_POST['te_so'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_nome_computador = DeCrypt($key, $iv, $_POST['te_nome_computador'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_ip = DeCrypt($key, $iv, $_POST['te_ip'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_nome_host = DeCrypt($key, $iv, $_POST['te_nome_host'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$id_ip_rede = DeCrypt($key, $iv, $_POST['id_ip_rede'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_workgroup = DeCrypt($key, $iv, $_POST['te_workgroup'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
/* Todas as vezes em que é feita a recuperação das configurações por um agente, é incluído 
 o computador deste agente no BD, caso ainda não esteja inserido. */
if ($te_node_address != '') {
    $arrSO = inclui_computador_caso_nao_exista($te_node_address, $id_so_new, $te_so, $id_ip_rede, $te_ip, $te_nome_computador, $te_workgroup);
    // Tiro os escapes que o post automaticamente coloca.
    //$xmlSource=stripslashes(DeCrypt($key,$iv,$_POST['unidades'],$v_cs_cipher,$v_cs_compress));
    //$strTripaDados=stripslashes(DeCrypt($key,$iv,$_POST['unidades'],$v_cs_cipher,$v_cs_compress));
    $strTripaDados = DeCrypt($key, $iv, $_POST['UnidadesDiscos'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
    //First we define a number of variables to store the data from each element
    /*
    $te_node_address='';
    $id_so='';
    */
    /* COMENTADO A PARTIR DAQUI POR OCASIAO DA RETIRADA DO TRATAMENTO POR XML - 25/01/2008 - Anderson Peterle	
    	$te_letra='';
    	$id_tipo_unid_disco='';
    	$cs_sist_arq='';
    	$nu_serial='';
    	$nu_capacidade='';
    	$nu_espaco_livre='';
    	$te_unc='';
    	
    	
if ($_POST['padding_key'])
	{
	// Valores específicos para trabalho com o PyCACIC - 04 de abril de 2008 - Rogério Lino - Dataprev/ES
	$strPaddingKey 	= $_POST['padding_key']; // A versão inicial do agente em Python exige esse complemento na chave...
	}

autentica_agente($key,$iv,$v_cs_cipher,$v_cs_compress, $strPaddingKey);

$te_node_address 			= DeCrypt($key,$iv,$_POST['te_node_address']	 ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$id_so_new         			= DeCrypt($key,$iv,$_POST['id_so']				 ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$te_so           			= DeCrypt($key,$iv,$_POST['te_so']				 ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$te_ip           			= DeCrypt($key,$iv,$_POST['te_ip']				 ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$id_ip_rede     			= DeCrypt($key,$iv,$_POST['id_ip_rede']			 ,$v_cs_cipher,$v_cs_compress,$strPaddingKey);
$te_nome_computador			= DeCrypt($key,$iv,$_POST['te_nome_computador']	 ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$te_workgroup 				= DeCrypt($key,$iv,$_POST['te_workgroup']		 ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
$v_tripa_monitorados 		= DeCrypt($key,$iv,$_POST['te_tripa_monitorados'],$v_cs_cipher,$v_cs_compress,$strPaddingKey);


/* Todas as vezes em que é feita a recuperação das configurações por um agente, é incluído 
 o computador deste agente no BD, caso ainda não esteja inserido. */
if ($te_node_address <> '')
	{ 
	$arrSO = inclui_computador_caso_nao_exista(	$te_node_address, 
												$id_so_new, 
												$te_so,
												$id_ip_rede, 
												$te_ip, 
												$te_nome_computador, 
												$te_workgroup);										

	$v_tripa_nao_achados = ''; //Conterá os registros não encontrados na base
	// Verifico se o computador em questão já foi inserido anteriormente, e se não foi, insiro.
	$query = "SELECT count(*) as num_registros
			  FROM officescan
											WHERE te_node_address = '" . $te_node_address . "'
											AND id_so = '" . $arrSO['id_so'] . "'";
	$result = mysql_query($query);
	if (mysql_result($result, 0, "num_registros") == 0) 
		{
						$query = "INSERT INTO officescan
																(te_node_address, id_so)
																VALUES ('" . $te_node_address . "', '" . $arrSO['id_so'] . "'  )";
						$result = mysql_query($query);
		} 
	
	$query = "UPDATE officescan 
			  SET 	nu_versao_engine 	= '" . DeCrypt($key,$iv,$_POST['nu_versao_engine']	,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
					nu_versao_pattern   = '" . DeCrypt($key,$iv,$_POST['nu_versao_pattern']	,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
					dt_hr_coleta        = NOW(),
					dt_hr_instalacao    = '" . DeCrypt($key,$iv,$_POST['dt_hr_instalacao']	,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
					te_servidor         = '" . DeCrypt($key,$iv,$_POST['te_servidor']		,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "',
					in_ativo            = '" . DeCrypt($key,$iv,$_POST['in_ativo']			,$v_cs_cipher,$v_cs_compress, $strPaddingKey) . "' 
			  WHERE te_node_address 	= '" . $te_node_address . "' and
					id_so           	= '" . $arrSO['id_so'] . "'";
	$result = mysql_query($query);
	
	echo '<?xml version="1.0" encoding="iso-8859-1" ?><STATUS>OK</STATUS>';
	}
else
	echo '<?xml version="1.0" encoding="iso-8859-1" ?><STATUS>Chave (TE_NODE_ADDRESS + ID_SO) Inválida</STATUS>';	

?>
											  te_locais_secundarios,
											  te_emails_contato','nm_usuario_acesso = "'.$nm_usuario_cli.'" AND
							        		  te_senha = PASSWORD("'.$te_senha_cli.'")');
		if ($arrUsuarios['id_usuario']<>'')			
			{			
			$boolIdLocal = stripos2(trim($arrUsuarios['te_locais_secundarios']),$arrComputadores['id_local'],false);

			// Caso o usuario tenha como local primario o local do computador ou
			// Caso o usuario seja do nivel "Administracao" ou
			// Caso o usuario tenha como local secundario o local do computador.
			if ($arrUsuarios['id_local'] == $arrComputadores['id_local'] ||$arrUsuarios['id_grupo_usuarios'] == '2' || $boolIdLocal)
				{								
				$id_sessao	  			   = DeCrypt($key,$iv,$_POST['id_sessao'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); 							
				$id_usuario_cli 	   		= $arrUsuarios['id_usuario'];
				$te_motivo_conexao 		   = DeCrypt($key,$iv,$_POST['te_motivo_conexao'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); 																			
				$te_documento_referencial  = DeCrypt($key,$iv,$_POST['te_documento_referencial'],$v_cs_cipher,$v_cs_compress,$strPaddingKey);

				$dt_hr_autenticacao	 	   = date('Y-m-d H:i:s');	
				//GravaTESTES('AuthClient: dt_hr_autenticacao => '.$dt_hr_autenticacao); 																		
				$dt_hr_inicio_sessao	   = date('d-m-Y') . ' às ' . date('H:i') . 'h';
				//GravaTESTES('AuthClient: dt_hr_inicio_sessao => '.$dt_hr_inicio_sessao); 																		
				// Identifico o SO da máquina visitante
				$arrIdSO = getValores('so','id_so','trim(te_so) = "'.trim($te_so_cli).'"');
				
				$id_so_cli = $arrIdSO['id_so'];
				//GravaTESTES('AuthClient: id_so_cli => '.$id_so_cli); 														
				
				if ($id_so_cli == '')
					$id_so_cli = insereNovoSO($te_so_cli);

				$query_SESSAO = "INSERT INTO srcacic_conexoes 
				$query_SESSAO = "UPDATE srcacic_sessoes_logs 
								 SET	dt_hr_ultimo_contato = '".date('Y-m-d H:i:s')."'
								 WHERE  id_sessao = ".$id_sessao." and
								        id_usuario_cli = ".$id_usuario_cli;		
									
				GravaTESTES('SetSession: POST[id_sessao] => '.$_POST['id_sessao']);						 				 						 
				GravaTESTES('SetSession: id_sessao => '.$id_sessao);						 				 						 		
				GravaTESTES('SetSession: query_SESSAO => '.$query_SESSAO);						 				 						 		
		
				$result_SESSAO = mysql_query($query_SESSAO);			
			
				}
			}
		else
			{
			$te_log = DeCrypt($key,$iv,$_POST['te_log']	,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 
		
			$query_SESSAO = "UPDATE srcacic_sessoes 
							 SET	te_log = '".$te_log."'
							 WHERE  id_sessao = ".$id_sessao;		
									
			GravaTESTES('SetSession: POST[id_sessao] => '.$_POST['id_sessao']);						 				 						 
			GravaTESTES('SetSession: id_sessao => '.$id_sessao);						 				 						 		
			GravaTESTES('SetSession: query_SESSAO => '.$query_SESSAO);						 				 						 		
		
			$result_SESSAO = mysql_query($query_SESSAO);			
			
			}
		
		$retorno_xml_values .= '<OK>'.EnCrypt($key,$iv,'OK',$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).'</OK>';		
		}
        else {
	     $query = "INSERT INTO patrimonio ( te_node_address, id_so, dt_hr_alteracao,
	                                   id_unid_organizacional_nivel1a,
	                                   id_unid_organizacional_nivel2,
	                                   te_localizacao_complementar,
	                                   te_info_patrimonio1,
	                                   te_info_patrimonio2,
	                                   te_info_patrimonio3,
	                                   te_info_patrimonio4,
	                                   te_info_patrimonio5,
	                                   te_info_patrimonio6 )
			 VALUES ( '" . $te_node_address . "', 
			          '" . $arrSO['id_so'] . "', NOW(),
			          '" . DeCrypt($key,$iv,$_POST['id_unid_organizacional_nivel1a'],$v_cs_cipher,$v_cs_compress,$strPaddingKey) . "',
			          '" . DeCrypt($key,$iv,$_POST['id_unid_organizacional_nivel2']	,$v_cs_cipher,$v_cs_compress,$strPaddingKey) . "', 
			          '" . DeCrypt($key,$iv,$_POST['te_localizacao_complementar']	,$v_cs_cipher,$v_cs_compress,$strPaddingKey) . "', 
			          '" . DeCrypt($key,$iv,$_POST['te_info_patrimonio1']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey) . "', 
			          '" . DeCrypt($key,$iv,$_POST['te_info_patrimonio2']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey) . "', 
			          '" . DeCrypt($key,$iv,$_POST['te_info_patrimonio3']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey) . "', 
			          '" . DeCrypt($key,$iv,$_POST['te_info_patrimonio4']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey) . "',
			          '" . DeCrypt($key,$iv,$_POST['te_info_patrimonio5']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey) . "',
			          '" . DeCrypt($key,$iv,$_POST['te_info_patrimonio6']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey) . "')";
	}
			          
	$result = mysql_query($query);
	echo '<?xml version="1.0" encoding="iso-8859-1" ?><STATUS>OK</STATUS>';
	}
else
	echo '<?xml version="1.0" encoding="iso-8859-1" ?><STATUS>Chave (TE_NODE_ADDRESS + ID_SO) Inválida</STATUS>';		
?>
	
	// O computador já existe. 
	// Ele é criado durante a obtenção das configurações, no script get_config.php.
	$query = "	UPDATE 	computadores
				SET		te_ip              	= '" . $te_ip . "',
				te_nome_computador 	= '" . $te_nome_computador . "',
				te_mascara         	= '" . DeCrypt($key,$iv,$_POST['te_mascara']			,$v_cs_cipher, $v_cs_compress,$strPaddingKey) . "',
				id_ip_rede         	= '" . $id_ip_rede . "',
				te_gateway         	= '" . DeCrypt($key,$iv,$_POST['te_gateway']			,$v_cs_cipher, $v_cs_compress,$strPaddingKey) . "',
				te_serv_dhcp       	= '" . DeCrypt($key,$iv,$_POST['te_serv_dhcp']			,$v_cs_cipher, $v_cs_compress,$strPaddingKey) . "',
				te_nome_host       	= '" . DeCrypt($key,$iv,$_POST['te_nome_host']			,$v_cs_cipher, $v_cs_compress,$strPaddingKey) . "',
				te_dominio_windows 	= '" . $v_te_workgroup . "',
				te_dominio_dns     	= '" . DeCrypt($key,$iv,$_POST['te_dominio_dns']		,$v_cs_cipher, $v_cs_compress,$strPaddingKey) . "',
				te_dns_primario    	= '" . DeCrypt($key,$iv,$_POST['te_dns_primario']		,$v_cs_cipher, $v_cs_compress,$strPaddingKey) . "',
				te_dns_secundario  	= '" . DeCrypt($key,$iv,$_POST['te_dns_secundario']		,$v_cs_cipher, $v_cs_compress,$strPaddingKey) . "',
				te_wins_primario   	= '" . DeCrypt($key,$iv,$_POST['te_wins_primario']		,$v_cs_cipher, $v_cs_compress,$strPaddingKey) . "',
				te_wins_secundario 	= '" . DeCrypt($key,$iv,$_POST['te_wins_secundario']	,$v_cs_cipher, $v_cs_compress,$strPaddingKey) .  "',
				te_workgroup 	   	= '" . $v_te_workgroup .  "',
				te_origem_mac	 	= '" . DeCrypt($key,$iv,$_POST['te_origem_mac']			,$v_cs_cipher, $v_cs_compress,$strPaddingKey) .  "'
				WHERE 	te_node_address  	= '" . $te_node_address . "' and
				id_so              	= '" . $arrSO['id_so'] . "'";
//GravaTESTES($query);																					
//				te_dominio_windows 	= '" . DeCrypt($key,$iv,$_POST['te_dominio_windows']	,$v_cs_cipher, $v_cs_compress) . "',
	$result = mysql_query($query);
	
	echo '<?xml version="1.0" encoding="iso-8859-1" ?><STATUS>OK</STATUS>';
	}
else
	echo '<?xml version="1.0" encoding="iso-8859-1" ?><STATUS>Chave (TE_NODE_ADDRESS + ID_SO) Inválida</STATUS>';					

?>
	$query_INSERT = "INSERT INTO srcacic_transfs (	dt_systemtime,
													nu_duracao,
													te_path_origem,
													te_path_destino,
													nm_arquivo,
													nu_tamanho_arquivo,
													cs_status,
													cs_operacao,
													id_conexao)
					 VALUES						  '".DeCrypt($key,$iv,$_POST['dt_systemtime'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)."',
												   ".DeCrypt($key,$iv,$_POST['nu_duracao'],$v_cs_cipher,$v_cs_compress,$strPaddingKey).",
												  '".DeCrypt($key,$iv,$_POST['te_path_origem'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)."',								
												  '".DeCrypt($key,$iv,$_POST['te_path_destino'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)."',																
												  '".DeCrypt($key,$iv,$_POST['nm_arquivo'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)."',																
												   ".DeCrypt($key,$iv,$_POST['nu_tamanho_arquivo'],$v_cs_cipher,$v_cs_compress,$strPaddingKey).",
												  '".DeCrypt($key,$iv,$_POST['cs_status'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)."',																								
												  '".DeCrypt($key,$iv,$_POST['cs_operacao'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)."',"
												  . $id_conexao;
	$result_INSERT = mysql_query($query_INSERT);
	$retorno_xml_values .= '<OK>'.EnCrypt($key,$iv,'OK',$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).'</OK>';		
	}

if ($retorno_xml_values <> '')
	$retorno_xml_values = '<STATUS>'.EnCrypt($key,$iv,'OK',$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).'</STATUS>'.$retorno_xml_values;
else
	$retorno_xml_values = '<STATUS>'.EnCrypt($key,$iv,'SetTransf ERRO! '.ldap_error($ldap),$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).'</STATUS>';

$retorno_xml = $retorno_xml_header . $retorno_xml_values; 
echo $retorno_xml;	
?>
if ($_POST['padding_key']) {
    // Valores específicos para trabalho com o PyCACIC - 04 de abril de 2008 - Rogério Lino - Dataprev/ES
    $strPaddingKey = $_POST['padding_key'];
    // A versão inicial do agente em Python exige esse complemento na chave...
}
autentica_agente($key, $iv, $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_node_address = DeCrypt($key, $iv, $_POST['te_node_address'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$id_so_new = DeCrypt($key, $iv, $_POST['id_so'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_so = DeCrypt($key, $iv, $_POST['te_so'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_ip = DeCrypt($key, $iv, $_POST['te_ip'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$id_ip_rede = DeCrypt($key, $iv, $_POST['id_ip_rede'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_nome_computador = DeCrypt($key, $iv, $_POST['te_nome_computador'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
$te_workgroup = DeCrypt($key, $iv, $_POST['te_workgroup'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
if ($te_node_address != '') {
    $arrSO = inclui_computador_caso_nao_exista($te_node_address, $id_so_new, $te_so, $id_ip_rede, $te_ip, $te_nome_computador, $te_workgroup);
    $strTripaDados = DeCrypt($key, $iv, $_POST['CompartilhamentosLocais'], $v_cs_cipher, $v_cs_compress, $strPaddingKey);
    // Deleto todos os compartilhamentos desse computador, antes de inserir os atualizados.
    $query = "DELETE FROM compartilhamentos \r\n\t\t\t\t\t\t\t\t\t\t\tWHERE te_node_address = '" . $te_node_address . "'\r\n\t\t\t\t\t\t\t\t\t\t\tAND id_so = " . $arrSO['id_so'];
    conecta_bd_cacic();
    mysql_query($query);
    $arrCompartilhamentosLocais = explode('<REG>', $strTripaDados);
    $strValues = '';
    // Agora insiro todos os compartilhamentos.
    for ($intIndice = 0; $intIndice < count($arrCompartilhamentosLocais); $intIndice++) {
        /*
        ATENÇÂO: O agente envia as informações serializadas com o seguinte conteúdo:
                nm_compartilhamento + '<FIELD>' +
                nm_dir_compart      + '<FIELD>' +
        cs_tipo_compart     + '<FIELD>' +
        te_comentario       + '<FIELD>' +
        in_senha_leitura    + '<FIELD>' +
	Foi identificada uma alteração na configuração de software do seguinte computador:\n
	Nome...............: ". mysql_result( $result, 0, "te_nome_computador" ) ." 
	Endereço TCP/IP....: ". mysql_result( $result, 0, "te_ip" ) . "
	Rede...............: ". mysql_result( $result, 0, "id_ip_rede" ) ."
	Sistema Operacional: ". mysql_result( $result, 0, "te_desc_so" ) ."
	Grupo...........: ". mysql_result( $result, 0, "te_workgroup" ) ." (". mysql_result( $result, 0, "te_dominio_windows" ) ." )\n
	Os Softwares abaixo foram instalados:\n".$nome_instalados."
	Os Softwares abaixo foram desinstalados:\n".$nome_deletado;
					   
		echo $corpo_mail;
		$destinatarios = "*****@*****.**";
		// Manda mail para os administradores.	
		mail("$destinatarios", "Alteracao de Software Detectada", "$corpo_mail", "From: cacic@{$_SERVER['SERVER_NAME']}");
		//}
	}						   
$v_tripa_variaveis_coletadas = DeCrypt($key,$iv,$_POST['te_variaveis_ambiente'],$_POST['cs_cipher']);	
while (substr(trim($v_tripa_variaveis_coletadas),0,1)=='=')	
	{
	$v_tripa_variaveis_coletadas = substr(trim($v_tripa_variaveis_coletadas),1);
	}

if ($v_tripa_variaveis_coletadas<>'')
	{
	$queryDEL = "DELETE FROM variaveis_ambiente_estacoes 
				 WHERE 	te_node_address = '".$te_node_address."' AND
						id_so = '".$id_so."'";					                  
	$result = mysql_query($queryDEL);									
	
	$v_array_te_variaveis_coletadas = explode('#',$v_tripa_variaveis_coletadas);	

	$query_var = "SELECT *
	{
	// Valores específicos para trabalho com o PyCACIC - 04 de abril de 2008 - Rogério Lino - Dataprev/ES
	$strPaddingKey 	= $_POST['padding_key']; // A versão inicial do agente em Python exige esse complemento na chave...
	}

autentica_agente($key,$iv,$v_cs_cipher,$v_cs_compress, $strPaddingKey);

$v_dados_rede = getDadosRede();

$te_node_address 	= DeCrypt($key,$iv,$_POST['te_node_address']	,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$id_so_new         	= DeCrypt($key,$iv,$_POST['id_so']				,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$te_so           	= DeCrypt($key,$iv,$_POST['te_so']				,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$id_ip_rede     	= DeCrypt($key,$iv,$_POST['id_ip_rede']			,$v_cs_cipher,$v_cs_compress, $strPaddingKey);
$te_ip 				= DeCrypt($key,$iv,$_POST['te_ip']				,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$te_nome_computador	= DeCrypt($key,$iv,$_POST['te_nome_computador']	,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$te_workgroup 		= DeCrypt($key,$iv,$_POST['te_workgroup']		,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 

/* Todas as vezes em que é feita a recuperação das configurações por um agente, é incluído 
 o computador deste agente no BD, caso ainda não esteja inserido. */
if ($te_node_address <> '')
	{
	$arrSO = inclui_computador_caso_nao_exista(	$te_node_address, 
												$id_so_new, 
												$te_so,
												$id_ip_rede, 
												$te_ip, 
												$te_nome_computador,
												$te_workgroup);
	}

			$te_mensagem   	= DeCrypt($key,$iv,$_POST['te_mensagem']	,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 														
			$cs_origem   	= DeCrypt($key,$iv,$_POST['cs_origem']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey); 																	
			
			$query_CHAT = "INSERT INTO srcacic_chats(id_conexao,dt_hr_mensagem,te_mensagem,cs_origem)
			 					  VALUES (".$id_conexao.",'".date('Y-m-d H:i:s')."','".$te_mensagem."','".$cs_origem."')";
			$result_CHAT = mysql_query($query_CHAT);			
			}
		else
			{
			// Verifico se o registro de conexao eh valido
			// Neste caso, testo se o valor que chega refere-se a "0" criptografado com uma determinada chave...
			if ($_POST['id_conexao'] <> 'pibWRa7Dc7gciUJjHEB4Ww==')
				{
				$arr_id_usuario_cli = explode('<REG>',DeCrypt($key,$iv,$_POST['id_usuario_cli']	,$v_cs_cipher,$v_cs_compress,$strPaddingKey));
				$arr_id_conexao		= explode('<REG>',DeCrypt($key,$iv,$_POST['id_conexao']		,$v_cs_cipher,$v_cs_compress,$strPaddingKey));		
				$arr_te_so_cli 	   	= explode('<REG>',DeCrypt($key,$iv,$_POST['te_so_cli']	 	,$v_cs_cipher,$v_cs_compress,$strPaddingKey));
				
				for ($i=0; $i < count($arr_id_usuario_cli); $i++)
					{
					$te_so_cli 		= $arr_te_so_cli[$i]; 								
					$id_conexao		= $arr_id_conexao[$i]; 											
					$arr_id_so_cli	= getValores('so','id_so','trim(te_so)="'.trim($te_so_cli).'"');

					/*
					E se o tecnico utilizar um notebook externo ao parque computacional da corporacao?
					Nao insiro a maquina do visitante...
					*/
					$query_SESSAO = "UPDATE srcacic_conexoes 
									 SET	dt_hr_ultimo_contato = '".date('Y-m-d H:i:s')."'							 		
									 WHERE  id_sessao  = ".$id_sessao ." and
											id_conexao = ".$id_conexao;