Ir para conteúdo
  • Cadastre-se

Waldir Paim

Moderadores
  • Total de ítens

    610
  • Registro em

  • Última visita

  • Days Won

    4

Tudo que Waldir Paim postou

  1. @Daniel Simoes Essa alteração é para finalizar corretamente a biblioteca XMLSec. O patch segue a mesma sequencia de chamada de funções do exemplo oficial, no link: https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c. Conforme exemplo, as primeiras funções chamadas são xmlSecDSigCtxDestroy() e xmlFreeDoc(): https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c#L204 https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c#L208 e a send_file() por sua vez é chamada aqui: https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c#L113 após ela, são chamadas xmlSecCryptoShutdown(), xmlSecCryptoAppShutdown(), xmlSecShutdown(), xsltCleanupGlobals() e xmlCleanupParser(): https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c#L118 https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c#L121 https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c#L124 https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c#L129 https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c#L131 Apensar do exemplo ter a chamada a função xsltFreeSecurityPrefs(), preferi não declará-la no patch pois não tenho certeza se o ACBr instancia alguma variável do tipo xsltSecurityPrefsPtr. De qualquer forma, a linha que contém a chamada a essa função, é: https://github.com/lsh123/xmlsec/blob/master/examples/sign1.c#L128
  2. @matheusd Fizemos alguns testes e estudamos o código fonte da RandScreen. Ela é realmente lenta pois gera uma imagem do desktop e disso ela gera a randomização. _randPoll RandPoll, realmente é muito mais eficiente e segundo respostas no forum oficial da lib é o mais indicado para essa situação. Fizemos uma implementação que ficou bem próxima da que você propôs e nos nossos testes mostraram que o processo ficou bem mais rápido. @Daniel Simoes Aproveitamos o embalo e fizemos também a correção na finalização da XMLSec que possuía um pequeno bug, pois finalizava alguns métodos fora da ordem. Se puder analisar ambas units, se precisar de mais algum ajuste estamos a disposição para qualquer duvida. Segue anexo: ACBrDFeOpenSSL.pas ssl_openssl_lib.pas
  3. @matheusd Fizemos uma pergunta no forum oficial da openssl e estamos aguardando a resposta deles. Assim que recebermos uma resposta lá conseguimos colaborar de forma segura.
  4. @matheusd Ainda estamos testando e não definimos a melhor solução, mas acredito que podemos juntos encontrar uma solução seja tecnicamente aceitável e compatível com a versão atual da lib. Estamos até verificando a possibilidade de atualizar a reader da lib para uma versão mais nova.
  5. @Daniel Simoes Pedi ajuda ao parceiro nosso e acredito que podemos contribuir para solução descrita no tópico. Chegamos num consenso que o parâmetro não deve ser removido e sim substituído por outro mais eficiente. Ainda estamos testando mas o mais promissor até agora foi: Vamos continuar nos testes e assim que possível poderemos propor um patch para ajudar na solução da lentidão descrita no método randScreen().
  6. @guilhermeinfo1 Use essa configuração BAUD=2400 DATA=8 PARITY=N STOP=1
  7. Remoção de avisos adicionados recentemente nas units em anexo. ACBrBancoCaixa.pas ACBrBancoCaixaSICOB.pas
  8. @Andrade. Pode testar com essa versão? Fiz mais alguns ajustes. ACBrDevice.pas
  9. Segue unit com problema da comunicação da porta paralela resolvida. ACBrDevice.pas
  10. @Daniel Simoes Fiz alguns testes e consegui identificar 02 probleminha nessa atualização do modo RAW. 1 - Erro na impressão usando porta paralela. Apresentada erro na impressão pois está selecionado modo RAW e não dtFile como deveria. Fiz um ajuste para selecionar dtFile quando for porta paralela. 2 - Não chega ser um erro mas não localiza a impressora quando ela está na rede. Fiz o ajuste para permitir identificar nome da impressora em rede em modo RAW. Segue anexo. ACBrDevice.pas
  11. Segue remoção de remoção de avisos adicionados recentemente. ACBrDevice.pas ACBrTEFDCliSiTef.pas Atualização na unit. ACBrTEFDCliSiTef.pas. A variavel TemParcelas : Boolean não está mais em uso e foi mantida suas atribuições. ACBrTEFDCliSiTef.pas
  12. @raosistemas Se precisar de ajuda para consumir a api acredito que possamos te ajudar.
  13. @marcio.santos Qual Delphi você usa? Tem como resolver isso usando ClassHelper http://docwiki.embarcadero.com/RADStudio/XE8/en/Class_and_Record_Helpers_(Delphi) http://www.devmedia.com.br/novidades-da-linguagem-delphi-usando-class-helpers/12160
  14. @doidopb Eu uso o mesmo valor sempre nos dois.
  15. @doidopb Da uma lida na documentação: http://synapse.ararat.cz/doc/help/blcksock.TBlockSocket.html#SetSendTimeout
  16. @doidopb Isso mesmo, ali você poe o seu timeout. Não se esqueça de liberar no firewall do seu sistema operacional host o protocolo ICMP. Segue link de alguns exemplos : http://wiki.locaweb.com.br/pt-br/Firewall_-_Liberando_pings
  17. @doidopb Use a classe TPingSend da synapse. Segue função que utilizo: Declare na uses a unit pingsend function PingHost(const AHost: string; ATimeoutPing: integer; ASocksTimeout: integer): Boolean; var VPing: TPingSend; begin Result := False; if (AHost = '') then Exit; VPing := TPingSend.Create; try VPing.Sock.CloseSocket; VPing.Sock.Purge; VPing.Sock.SetTimeout(ASocksTimeout); VPing.Sock.SetSendTimeout(ASocksTimeout); VPing.Sock.SetRecvTimeout(ASocksTimeout); VPing.Timeout := ATimeoutPing; try Result := VPing.Ping(AHost); if Result then Result := (VPing.ReplyError = IE_NoError); except Result := False; end; VPing.Sock.CloseSocket; finally VPing.Free; end; end;
  18. @Juliomar Marchetti Entrei no perfil de ambos, e acredito tratar-se de outro assunto. Mas muito obrigado pelo retorno.
  19. @EMBarbosa Nesse últimos commits na classe TACBrECFClass foi adicionado essa atribuição Mas meu Delphi passou a reclamar com esse hint: Você poderia fazer um ajuste pra gente? Nesse treco: Fim := True ; <<<==== remove essa atribuição aqui, ela já foi atribuida lá em cima não precisa aqui novamente. if not FimLeitura then begin Fim := False ; try fpRespostaComando := fpRespostaComando + { Le conteudo da porta } fpDevice.LeString(100) ; LenResp := Length( fpRespostaComando ) ; if LenResp <> fsBytesRec then begin // ECF está respondendo, portanto está trabalhando // TempoLimite := IncSecond(now, TimeOut); fsBytesRec := LenResp ; end ; except sleep(10) ; end ; FimLeitura := VerificaFimLeitura(fpRespostaComando, TempoLimite) ; end else if AguardaImpressao then begin Fim := VerificaFimImpressao( TempoLimite ) ; if not Fim then sleep(200) ; end ; {$IFNDEF NOGUI} if fpDevice.ProcessMessages then Application.ProcessMessages; {$ENDIF} until Fim ; Dessa forma acredito melhorar sua atribuição anterior:
  20. @carlos_sa Pra mim esse versão caiu como uma luva, pelo jeito pra você foi igual a um sapato, e sendo assim cada um deve saber onde o sapato aperta.
  21. @Vagner Brentan Como instalou o seu ACBr? Pode tentar instalar manualmente? Fiz inúmeros testes aqui e não consigo simular a sua situação, só tem um detalhe eu faço a instalação manual e acredito que esse deveria tentar esse por caminho.
  22. @Vagner Brentan Você pode anexar o demo que apresenta erro ai, estou disposto a te ajudar e solucionar esse "mistério" que está ocorrendo ai na sua maquina ou podemos tentar resolver passo a passo se preferir. De inicio você pode fazer? Abra seu projeto, vá em Projects e execute um Build All Projetcs. O Delphi vai te apresentar o nome da primeira unit que ele não conseguir compilar. Anexe aqui o log apresentado para conseguir te ajudar com o próximo passo.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.