From 9508e0b4d0069478a41f1d9f2f76d5776900fb64 Mon Sep 17 00:00:00 2001 From: anderson.peterle@previdencia.gov.br Date: Fri, 20 Jun 2008 15:54:13 +0000 Subject: [PATCH] Acrescentado o comando "Registry" para comunicacao entre o Gerente WEB e agente principal no MS-Windows (cacic2.exe) --- main.pas | 71 ++++++++++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 25 deletions(-) diff --git a/main.pas b/main.pas index 3378710..48ea3bd 100755 --- a/main.pas +++ b/main.pas @@ -2071,30 +2071,49 @@ begin // ********************************************************************************************************** // Esta procedure tratará os comandos e suas ações, enviados em um pacote XML na requisição, conforme abaixo: // ********************************************************************************************************** - // Execute -> Comando que forçará a execução do Gerente de Coletas (Sugestão: Configurar coletas forçadas no Gerente WEB e executar esse comando) - // Requisição: Tag - // Respostas: AResponseinfo.ContentText := AResponseinfo.ContentText + 'OK' + // Execute -> Comando que forçará a execução do Gerente de Coletas (Sugestão: Configurar coletas forçadas no Gerente WEB e executar esse comando) + // Requisição: Tag + // Respostas: AResponseinfo.ContentText := AResponseinfo.ContentText + 'OK' // - // Ask -> Comando que perguntará sobre a existência de um determinado arquivo na estação. - // Requisição: Tag : Nome do arquivo a pesquisar no repositório local - // Tag : Hash referente ao arquivo a ser pesquisado no repositório local - // Respostas: AResponseinfo.ContentText := AResponseinfo.ContentText + 'OK'; - // AResponseinfo.ContentText := AResponseinfo.ContentText + 'Tenho' ou - // AResponseinfo.ContentText := AResponseinfo.ContentText + 'NaoTenho' ou - // AResponseinfo.ContentText := AResponseinfo.ContentText + 'Baixando' ou - // AResponseinfo.ContentText := AResponseinfo.ContentText + 'Ocupado'. + // Ask -> Comando que perguntará sobre a existência de um determinado arquivo na estação. + // Requisição: Tag : Nome do arquivo a pesquisar no repositório local + // Tag : Hash referente ao arquivo a ser pesquisado no repositório local + // Respostas: AResponseinfo.ContentText := AResponseinfo.ContentText + 'OK'; + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'Tenho' ou + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'NaoTenho' ou + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'Baixando' ou + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'Ocupado'. // // - // Erase -> Comando que provocará a exclusão de determinado arquivo. - // Deverá ser acompanhado das tags e - // Requisição: Tag : Nome do arquivo a ser excluído do repositório local - // Tag : Hash referente ao arquivo a ser excluído do repositório local - // Respostas: AResponseinfo.ContentText := AResponseinfo.ContentText + 'OK'; + // Erase -> Comando que provocará a exclusão de determinado arquivo. + // Deverá ser acompanhado das tags e + // Requisição: Tag : Nome do arquivo a ser excluído do repositório local + // Tag : Hash referente ao arquivo a ser excluído do repositório local + // Respostas: AResponseinfo.ContentText := AResponseinfo.ContentText + 'OK'; + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'AcaoExecutada' ou + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'ArquivoNaoEncontrado' ou + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'EscritaNaoPermitida'; // + // Registry -> Comando que provocará ação no Registry de estações com MS-Windows. + // Deverá ser acompanhado das tags , , e + // Requisição: Tag : Caminho no Registry + // Tag : Ação para execução + // SAVE => Salva o valor contido na tag de acordo com condição contida na tag + // ERASE => Apaga a chave de acordo com condição contida na tag + // Tag : Condiçção para execução da ação + // EQUAL => Se o valor contido na tag for IGUAL ao valor encontrado na chave + // DIFFER => Se o valor contido na tag for DIFERENTE ao valor encontrado na chave + // NONE => Nenhuma condição, permitindo a execução da ação de forma incondicional + // Tag : Valor a ser utilizado na ação + // Respostas: AResponseinfo.ContentText := AResponseinfo.ContentText + 'OK'; + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'AcaoExecutada' ou + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'ChaveNaoEncontrada' ou + // AResponseinfo.ContentText := AResponseinfo.ContentText + 'EscritaNaoPermitida'; // - // Exit -> Comando para finalização do agente principal (bandeja) + // Exit -> Comando para finalização do agente principal (bandeja) // Palavra Chave definida por Ger_Cols, enviada e armazenada no BD. A autenticação da comunicação é baseada na verificação deste valor. + // A geração da palavra chave dar-se-á a cada contato do Ger_Cols com o módulo Gerente WEB // te_palavra_chave -> // Tratamento da requisição http... @@ -2111,10 +2130,11 @@ begin strCmd := XML_RetornaValor('cmd',strXML); // As ações terão seus valores - if (strCmd = 'Execute') or - (strCmd = 'Ask') or - (strCmd = 'Erase') or - (strCmd = 'Exit') then + if (strCmd = 'Execute') or + (strCmd = 'Ask') or + (strCmd = 'Erase') or + (strCmd = 'Registry') or + (strCmd = 'Exit') then AResponseinfo.ContentText := 'OK' else AResponseinfo.ContentText := 'COMANDO NÃO PERMITIDO!'; @@ -2122,15 +2142,16 @@ begin else AResponseinfo.ContentText := 'ACESSO NÃO PERMITIDO!'; - if (strCmd = 'Execute') then + if (strCmd = 'Execute') then ExecutaCacic(nil) - else if (strCmd = 'Ask') then + else if (strCmd = 'Ask') then Begin strFileName := XML_RetornaValor('FileName',strXML); strFileHash := XML_RetornaValor('FileHash',strXML); End - else if (strCmd = 'Erase') then - else if (strCmd = 'Exit') then + else if (strCmd = 'Erase') then + else if (strCmd = 'Registry') then + else if (strCmd = 'Exit') then Finaliza; end; -- libgit2 0.21.2