Commit 27ea9b9d2cf7f5a518e4e0e721effd6e980bad97
1 parent
3b0f426b
Exists in
master
Agente Windows/srCACICsrv/srCACICcli: Reposicionamento de metodo publico, coment…
…arios, obtencao de parametro de TimeOut para conexoes e pequenas correcoes. git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/agente-windows@829 fecfc0c7-e812-0410-ae72-849f08638ee7
Showing
24 changed files
with
642 additions
and
320 deletions
Show diff stats
col_hard/col_hard.dpr
@@ -736,7 +736,7 @@ begin | @@ -736,7 +736,7 @@ begin | ||
736 | 736 | ||
737 | v_te_mem_ram_desc := v_te_mem_ram_desc + 'Slot '+ inttostr(i) + ': ' | 737 | v_te_mem_ram_desc := v_te_mem_ram_desc + 'Slot '+ inttostr(i) + ': ' |
738 | + v_SMBIOS.MemoryDevice[i].Manufacturer + ' ' | 738 | + v_SMBIOS.MemoryDevice[i].Manufacturer + ' ' |
739 | - + inttostr(v_SMBIOS.MemoryDevice[i].Size) + 'Mb ' | 739 | + + inttostr(v_SMBIOS.MemoryDevice[i].Size) + 'MB ' |
740 | + '(' + v_te_mem_ram_tipo +')'; | 740 | + '(' + v_te_mem_ram_tipo +')'; |
741 | end; | 741 | end; |
742 | end | 742 | end |
@@ -749,7 +749,7 @@ begin | @@ -749,7 +749,7 @@ begin | ||
749 | v_te_mem_ram_desc := v_te_mem_ram_desc + ' - '; | 749 | v_te_mem_ram_desc := v_te_mem_ram_desc + ' - '; |
750 | v_te_mem_ram_desc := v_te_mem_ram_desc + 'Slot '+ inttostr(i) + ': ' | 750 | v_te_mem_ram_desc := v_te_mem_ram_desc + 'Slot '+ inttostr(i) + ': ' |
751 | + v_SMBIOS.MemoryDevice[i].Manufacturer + ' ' | 751 | + v_SMBIOS.MemoryDevice[i].Manufacturer + ' ' |
752 | - + inttostr(v_SMBIOS.MemoryModule[i].Size) + 'Mb ' | 752 | + + inttostr(v_SMBIOS.MemoryModule[i].Size) + 'MB ' |
753 | + '(' + v_te_mem_ram_tipo +')'; | 753 | + '(' + v_te_mem_ram_tipo +')'; |
754 | end; | 754 | end; |
755 | end; | 755 | end; |
@@ -787,7 +787,7 @@ begin | @@ -787,7 +787,7 @@ begin | ||
787 | 787 | ||
788 | if (trim(v_te_placa_video_desc)='') then v_te_placa_video_desc := v_DISPLAY.Adapter; | 788 | if (trim(v_te_placa_video_desc)='') then v_te_placa_video_desc := v_DISPLAY.Adapter; |
789 | v_qt_placa_video_cores := IntToStr(v_DISPLAY.ColorDepth); | 789 | v_qt_placa_video_cores := IntToStr(v_DISPLAY.ColorDepth); |
790 | - v_qt_placa_video_mem := IntToStr(v_DISPLAY.Memory div 1048576 ) + 'Mb'; | 790 | + v_qt_placa_video_mem := IntToStr(v_DISPLAY.Memory div 1048576 ) + 'MB'; |
791 | v_te_placa_video_resolucao := IntToStr(v_DISPLAY.HorzRes) + 'x' + IntToStr(v_DISPLAY.VertRes); | 791 | v_te_placa_video_resolucao := IntToStr(v_DISPLAY.HorzRes) + 'x' + IntToStr(v_DISPLAY.VertRes); |
792 | 792 | ||
793 | v_DISPLAY.Free; | 793 | v_DISPLAY.Free; |
srcacic/VNCViewer/AuthDialog.h
@@ -36,10 +36,10 @@ public: | @@ -36,10 +36,10 @@ public: | ||
36 | virtual ~AuthDialog(); | 36 | virtual ~AuthDialog(); |
37 | int DoDialog(); | 37 | int DoDialog(); |
38 | 38 | ||
39 | - TCHAR m_user[32]; | ||
40 | - TCHAR m_passwd[32]; | ||
41 | - TCHAR m_doc_ref[128]; | ||
42 | - TCHAR m_motivo[5120]; | 39 | + TCHAR m_user[32]; // Usuário técnico a ser autenticado no gerente web |
40 | + TCHAR m_passwd[32]; // Senha | ||
41 | + TCHAR m_doc_ref[128]; // Documento de Referência apresentado pelo técnico. | ||
42 | + TCHAR m_motivo[5120]; // Motivo da conexão. | ||
43 | 43 | ||
44 | TCHAR m_domain[128]; | 44 | TCHAR m_domain[128]; |
45 | 45 |
srcacic/VNCViewer/CACIC_Crypt.cpp
srcacic/VNCViewer/CACIC_Crypt.h
1 | -/* | ||
2 | - * Classe para criptografia de dados | 1 | +/** |
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe para criptografia de dados. | ||
3 | */ | 5 | */ |
4 | 6 | ||
5 | #ifndef _CACIC_CRYPT_ | 7 | #ifndef _CACIC_CRYPT_ |
@@ -16,17 +18,37 @@ class CACIC_Crypt { | @@ -16,17 +18,37 @@ class CACIC_Crypt { | ||
16 | 18 | ||
17 | public: | 19 | public: |
18 | 20 | ||
21 | + /** | ||
22 | + * Remove da String de entrada os caracteres colocados pela URLEncode, | ||
23 | + * tira do Base64 e depois decodifica usando o Rijndael. | ||
24 | + * @param entrada String a ser decodificada. | ||
25 | + * @return string String decodificada. | ||
26 | + */ | ||
19 | static string decodifica(const char* entrada); | 27 | static string decodifica(const char* entrada); |
28 | + | ||
29 | + /** | ||
30 | + * Codifica a String passada com o algoritmo Rijndael e coloca no Base64. | ||
31 | + * @param entrada String a ser codificada. | ||
32 | + * @return string String codificada. | ||
33 | + */ | ||
20 | static string codifica(const char* entrada); | 34 | static string codifica(const char* entrada); |
21 | 35 | ||
22 | private: | 36 | private: |
23 | 37 | ||
24 | - static const unsigned int SRCACIC_BLOCK_SIZE; // tamanho padrao do bloco | ||
25 | - static const unsigned int SRCACIC_KEY_SIZE; // tamanho padrao da chave | ||
26 | - static const char SRCACIC_KEY[17]; // chave de en/dec | ||
27 | - static const char SRCACIC_IV[17]; // vetor de inicializacao | ||
28 | - | ||
29 | - virtual void ccrypt() = 0; // Truque para tornar a classe abstrata. | 38 | + /** Tamanho padrão do bloco. */ |
39 | + static const unsigned int SRCACIC_BLOCK_SIZE; | ||
40 | + /** Tamanho padrão da chave. */ | ||
41 | + static const unsigned int SRCACIC_KEY_SIZE; | ||
42 | + /** Chave de codificação. */ | ||
43 | + static const char SRCACIC_KEY[17]; | ||
44 | + /** Vetor de inicialização. */ | ||
45 | + static const char SRCACIC_IV[17]; | ||
46 | + | ||
47 | + /** | ||
48 | + * Este método virtual puro é um truque para que a classe | ||
49 | + * se torne abstrata e não possa ser instanciada. | ||
50 | + */ | ||
51 | + virtual void ccrypt() = 0; | ||
30 | }; | 52 | }; |
31 | 53 | ||
32 | #endif | 54 | #endif |
srcacic/VNCViewer/CACIC_Utils.cpp
1 | #include "CACIC_Utils.h" | 1 | #include "CACIC_Utils.h" |
2 | 2 | ||
3 | -// troca os caracteres da string | ||
4 | -// origem ori_str new_str | ||
5 | void CACIC_Utils::replaceAll(string &str, string key, string newkey) | 3 | void CACIC_Utils::replaceAll(string &str, string key, string newkey) |
6 | { | 4 | { |
7 | int found = str.find(key, 0); | 5 | int found = str.find(key, 0); |
@@ -13,7 +11,6 @@ void CACIC_Utils::replaceAll(string &str, string key, string newkey) | @@ -13,7 +11,6 @@ void CACIC_Utils::replaceAll(string &str, string key, string newkey) | ||
13 | } | 11 | } |
14 | } | 12 | } |
15 | 13 | ||
16 | -// substitui alguns caracteres especiais antes da encriptacao | ||
17 | void CACIC_Utils::simpleUrlEncode(string &decoded) | 14 | void CACIC_Utils::simpleUrlEncode(string &decoded) |
18 | { | 15 | { |
19 | replaceAll(decoded, "+", "<MAIS>"); | 16 | replaceAll(decoded, "+", "<MAIS>"); |
@@ -32,7 +29,6 @@ void CACIC_Utils::simpleUrlDecode(string &encoded) | @@ -32,7 +29,6 @@ void CACIC_Utils::simpleUrlDecode(string &encoded) | ||
32 | replaceAll(encoded, "<BarrInv>", "\\"); | 29 | replaceAll(encoded, "<BarrInv>", "\\"); |
33 | } | 30 | } |
34 | 31 | ||
35 | -// Fetches the MAC address and prints it | ||
36 | string CACIC_Utils::getMACAddress() { | 32 | string CACIC_Utils::getMACAddress() { |
37 | 33 | ||
38 | IP_ADAPTER_INFO AdapterInfo[16]; // Allocate information for up to 16 NICs | 34 | IP_ADAPTER_INFO AdapterInfo[16]; // Allocate information for up to 16 NICs |
@@ -44,7 +40,6 @@ string CACIC_Utils::getMACAddress() { | @@ -44,7 +40,6 @@ string CACIC_Utils::getMACAddress() { | ||
44 | assert(dwStatus == ERROR_SUCCESS); // Verify return value is valid, no buffer overflow | 40 | assert(dwStatus == ERROR_SUCCESS); // Verify return value is valid, no buffer overflow |
45 | 41 | ||
46 | PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info | 42 | PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info |
47 | - // TODO: e se houve mais de uma placa de rede, qual mac deve ir? | ||
48 | //do { | 43 | //do { |
49 | // PrintMACaddress(pAdapterInfo->Address); // Print MAC address | 44 | // PrintMACaddress(pAdapterInfo->Address); // Print MAC address |
50 | // pAdapterInfo = pAdapterInfo->Next; // Progress through linked list | 45 | // pAdapterInfo = pAdapterInfo->Next; // Progress through linked list |
@@ -62,8 +57,6 @@ string CACIC_Utils::getMACAddress() { | @@ -62,8 +57,6 @@ string CACIC_Utils::getMACAddress() { | ||
62 | 57 | ||
63 | } | 58 | } |
64 | 59 | ||
65 | -// TODO: Lembrete, quero melhorar o código: | ||
66 | -// http://www.codeguru.com/cpp/w-p/system/systeminformation/article.php/c8973__2/ | ||
67 | string CACIC_Utils::getSOID() { | 60 | string CACIC_Utils::getSOID() { |
68 | OSVERSIONINFO osver; | 61 | OSVERSIONINFO osver; |
69 | ZeroMemory(&osver, sizeof(OSVERSIONINFO)); | 62 | ZeroMemory(&osver, sizeof(OSVERSIONINFO)); |
srcacic/VNCViewer/CACIC_Utils.h
1 | #ifndef _CACIC_UTILS_ | 1 | #ifndef _CACIC_UTILS_ |
2 | #define _CACIC_UTILS_ | 2 | #define _CACIC_UTILS_ |
3 | 3 | ||
4 | +/** | ||
5 | + * Copyright (C) 2009 DATAPREV-ES | ||
6 | + * @author Vinicius Avellar Moreira | ||
7 | + * Classe com alguns métodos utilitários. | ||
8 | + */ | ||
9 | + | ||
4 | #include "stdhdrs.h" | 10 | #include "stdhdrs.h" |
5 | 11 | ||
6 | #include <Iphlpapi.h> | 12 | #include <Iphlpapi.h> |
@@ -17,17 +23,49 @@ class CACIC_Utils { | @@ -17,17 +23,49 @@ class CACIC_Utils { | ||
17 | 23 | ||
18 | public: | 24 | public: |
19 | 25 | ||
26 | + /** | ||
27 | + * Troca caracteres específicos de uma string. | ||
28 | + * @param str String a ser modificada. | ||
29 | + * @param key String com o caractere ou conjunto de caracteres que serão substituídos. | ||
30 | + * @param newKey String com o caractere ou conjunto de caracteres que irão substituir. | ||
31 | + */ | ||
20 | static void replaceAll(string &str, string key, string newkey); | 32 | static void replaceAll(string &str, string key, string newkey); |
21 | 33 | ||
34 | + /** | ||
35 | + * Mesma função do urlEncode, porém os caracteres serão substituídos | ||
36 | + * por tags específicas, e não pelo código. | ||
37 | + * @param entrada String que será codificada. | ||
38 | + */ | ||
22 | static void simpleUrlEncode(string &entrada); | 39 | static void simpleUrlEncode(string &entrada); |
40 | + | ||
41 | + /** | ||
42 | + * Faz o inverso do simpleUrlEncode, trocando as tags específicas pelos | ||
43 | + * respectivos caracteres. | ||
44 | + * @param entrada String que será codificada. | ||
45 | + */ | ||
23 | static void simpleUrlDecode(string &entrada); | 46 | static void simpleUrlDecode(string &entrada); |
24 | 47 | ||
48 | + /** | ||
49 | + * Obtém o MAC Address da placa de rede.<br /> | ||
50 | + * TODO: Quando houver mais de uma placa de rede no pc, verificar qual | ||
51 | + * está se comunicando com o servidor para enviar o MAC certo. | ||
52 | + */ | ||
25 | static string getMACAddress(); | 53 | static string getMACAddress(); |
54 | + | ||
55 | + /** | ||
56 | + * Obtém a identificação do sistema operacional.<br /> | ||
57 | + * Artigo sobre SOID:<br /> | ||
58 | + * http://www.codeguru.com/cpp/w-p/system/systeminformation/article.php/c8973__2/ | ||
59 | + */ | ||
26 | static string getSOID(); | 60 | static string getSOID(); |
27 | 61 | ||
28 | private: | 62 | private: |
29 | 63 | ||
30 | - virtual void cutils() = 0; // Truque para tornar a classe abstrata. | 64 | + /** |
65 | + * Este método virtual puro é um truque para que a classe | ||
66 | + * se torne abstrata e não possa ser instanciada. | ||
67 | + */ | ||
68 | + virtual void cutils() = 0; | ||
31 | 69 | ||
32 | }; | 70 | }; |
33 | 71 |
srcacic/VNCViewer/Res/vncviewer.rc
@@ -312,7 +312,7 @@ BEGIN | @@ -312,7 +312,7 @@ BEGIN | ||
312 | RTEXT "Usuário:",IDC_STATIC,76,24,39,10 | 312 | RTEXT "Usuário:",IDC_STATIC,76,24,39,10 |
313 | RTEXT "Senha:",IDC_STATIC,80,41,35,8 | 313 | RTEXT "Senha:",IDC_STATIC,80,41,35,8 |
314 | LTEXT "Doc. Referência:",IDC_DOC_REF,61,58,55,8 | 314 | LTEXT "Doc. Referência:",IDC_DOC_REF,61,58,55,8 |
315 | - LTEXT "Motivo do suporte: (tamanho máximo 5120 caracteres)",IDC_MOTIVO_SUPORTE,7,70,179,8 | 315 | + LTEXT "Motivo do Suporte: (tamanho máximo 5120 caracteres)",IDC_MOTIVO_SUPORTE,7,70,179,8 |
316 | CONTROL 156,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_SUNKEN,7,21,50,45 | 316 | CONTROL 156,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_SUNKEN,7,21,50,45 |
317 | LTEXT "Por favor, digite seu nome de usuário e senha no gerente web.",IDC_STATIC,7,7,203,11 | 317 | LTEXT "Por favor, digite seu nome de usuário e senha no gerente web.",IDC_STATIC,7,7,203,11 |
318 | LTEXT "",IDC_CHAR_COUNT,7,136,43,8,0,WS_EX_TRANSPARENT | 318 | LTEXT "",IDC_CHAR_COUNT,7,136,43,8,0,WS_EX_TRANSPARENT |
@@ -535,8 +535,8 @@ IDB_VNC32 BITMAP "vnc32.BMP" | @@ -535,8 +535,8 @@ IDB_VNC32 BITMAP "vnc32.BMP" | ||
535 | // | 535 | // |
536 | 536 | ||
537 | VS_VERSION_INFO VERSIONINFO | 537 | VS_VERSION_INFO VERSIONINFO |
538 | - FILEVERSION 2,5,0,800 | ||
539 | - PRODUCTVERSION 2,5,0,800 | 538 | + FILEVERSION 2,5,0,804 |
539 | + PRODUCTVERSION 2,5,0,804 | ||
540 | FILEFLAGSMASK 0x37L | 540 | FILEFLAGSMASK 0x37L |
541 | #ifdef _DEBUG | 541 | #ifdef _DEBUG |
542 | FILEFLAGS 0x25L | 542 | FILEFLAGS 0x25L |
@@ -553,11 +553,11 @@ BEGIN | @@ -553,11 +553,11 @@ BEGIN | ||
553 | BEGIN | 553 | BEGIN |
554 | VALUE "CompanyName", "Dataprev - Unidade Regional Espírito Santo" | 554 | VALUE "CompanyName", "Dataprev - Unidade Regional Espírito Santo" |
555 | VALUE "FileDescription", "Visualizador do Suporte Remoto Seguro do Sistema CACIC" | 555 | VALUE "FileDescription", "Visualizador do Suporte Remoto Seguro do Sistema CACIC" |
556 | - VALUE "FileVersion", "2, 5, 0, 800" | 556 | + VALUE "FileVersion", "2, 5, 0, 804" |
557 | VALUE "InternalName", "srCACICcli" | 557 | VALUE "InternalName", "srCACICcli" |
558 | VALUE "LegalCopyright", "Copyright © 2008 DATAPREV" | 558 | VALUE "LegalCopyright", "Copyright © 2008 DATAPREV" |
559 | VALUE "LegalTrademarks", "srCACIC" | 559 | VALUE "LegalTrademarks", "srCACIC" |
560 | - VALUE "ProductVersion", "2, 5, 0, 800" | 560 | + VALUE "ProductVersion", "2, 5, 0, 804" |
561 | END | 561 | END |
562 | END | 562 | END |
563 | BLOCK "VarFileInfo" | 563 | BLOCK "VarFileInfo" |
srcacic/WinVNC/WinVNC/CACIC_Auth.cpp
1 | +/** | ||
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe singleton responsável pela autenticação no gerente web. | ||
5 | + */ | ||
6 | + | ||
1 | #include "CACIC_Auth.h" | 7 | #include "CACIC_Auth.h" |
2 | 8 | ||
3 | const string CACIC_Auth::GET_CONFIG_SCRIPT = "srcacic_get_config.php"; | 9 | const string CACIC_Auth::GET_CONFIG_SCRIPT = "srcacic_get_config.php"; |
4 | const string CACIC_Auth::SET_SESSION_SCRIPT = "srcacic_set_session.php"; | 10 | const string CACIC_Auth::SET_SESSION_SCRIPT = "srcacic_set_session.php"; |
5 | const string CACIC_Auth::AUTH_CLIENT_SCRIPT = "srcacic_auth_client.php"; | 11 | const string CACIC_Auth::AUTH_CLIENT_SCRIPT = "srcacic_auth_client.php"; |
6 | const unsigned int CACIC_Auth::TAMANHO_RESPOSTA = 1025; | 12 | const unsigned int CACIC_Auth::TAMANHO_RESPOSTA = 1025; |
13 | +const string CACIC_Auth::AGUARDE_FILENAME = "aguarde_srCACIC.txt"; | ||
14 | +const string CACIC_Auth::COOKIE_FILENAME = "cacic_ck.txt"; | ||
15 | +const UINT CACIC_Auth::TEMPO_IDLE = 5; | ||
7 | 16 | ||
8 | -CACIC_Auth::CACIC_Auth() {} | ||
9 | - | ||
10 | -CACIC_Auth::~CACIC_Auth() {} | ||
11 | - | ||
12 | -// autentica a sessão no servidor web de acordo com os parametros passados | ||
13 | bool CACIC_Auth::autentica() | 17 | bool CACIC_Auth::autentica() |
14 | { | 18 | { |
15 | - string post = getPostComum(); | ||
16 | - | ||
17 | vnclog.Print(LL_SRLOG, VNCLOG("Autenticando o usuário no gerente web.\n")); | 19 | vnclog.Print(LL_SRLOG, VNCLOG("Autenticando o usuário no gerente web.\n")); |
18 | 20 | ||
21 | + string post = getPostComum(); | ||
22 | + | ||
19 | string config_script = m_scriptsPath; | 23 | string config_script = m_scriptsPath; |
20 | config_script += GET_CONFIG_SCRIPT; | 24 | config_script += GET_CONFIG_SCRIPT; |
21 | 25 | ||
@@ -25,65 +29,71 @@ bool CACIC_Auth::autentica() | @@ -25,65 +29,71 @@ bool CACIC_Auth::autentica() | ||
25 | vector<Dominio> listaDominios; | 29 | vector<Dominio> listaDominios; |
26 | if (!verificaAuthChave(resposta, listaDominios)) return false; | 30 | if (!verificaAuthChave(resposta, listaDominios)) return false; |
27 | 31 | ||
28 | - vncPassDlg::EAuthCode authStat; | ||
29 | - if (listaDominios.at(0).id == "0") { | ||
30 | - authStat = vncPassDlg::SEM_AUTENTICACAO; | 32 | + if (!autenticaUsuario(listaDominios)) return false; |
33 | + | ||
34 | + vnclog.Print(LL_SRLOG, VNCLOG("Autenticação OK!\n")); | ||
35 | + | ||
36 | + return true; | ||
37 | +} | ||
38 | + | ||
39 | +bool CACIC_Auth::autenticaUsuario(vector<Dominio> &listaDominios) | ||
40 | +{ | ||
41 | + string post; | ||
42 | + char resposta[TAMANHO_RESPOSTA]; | ||
43 | + | ||
44 | + vncPassDlg passDlg(listaDominios); | ||
45 | + | ||
46 | + if (listaDominios.at(0).id.compare("0") == 0) { | ||
47 | + passDlg.m_authStat = vncPassDlg::SEM_AUTENTICACAO; | ||
31 | } else { | 48 | } else { |
32 | - authStat = vncPassDlg::ESPERANDO_AUTENTICACAO; | 49 | + passDlg.m_authStat = vncPassDlg::ESPERANDO_AUTENTICACAO; |
33 | } | 50 | } |
34 | 51 | ||
35 | // apresenta o dialogo de autenticação | 52 | // apresenta o dialogo de autenticação |
36 | - vncPassDlg passDlg(listaDominios); | ||
37 | do | 53 | do |
38 | { | 54 | { |
39 | - if (!passDlg.DoDialog(authStat, "")) return 0; | ||
40 | - | ||
41 | - string nm_nome_acesso_autenticacao; | ||
42 | - nm_nome_acesso_autenticacao = CACIC_Crypt::codifica(passDlg.m_usuario); | ||
43 | - | ||
44 | - string te_senha_acesso_autenticacao; | ||
45 | - te_senha_acesso_autenticacao = CACIC_Crypt::codifica(passDlg.m_senha); | ||
46 | - | ||
47 | - string id_servidor_autenticacao; | ||
48 | - id_servidor_autenticacao = CACIC_Crypt::codifica(passDlg.m_dominio); | ||
49 | - | 55 | + if (!passDlg.DoDialog()) return false; |
56 | + | ||
57 | + post.clear(); | ||
58 | + post = getPostComum(); | ||
59 | + | ||
50 | post += "&nm_nome_acesso_autenticacao="; | 60 | post += "&nm_nome_acesso_autenticacao="; |
51 | - post += nm_nome_acesso_autenticacao; | 61 | + post += CACIC_Crypt::codifica(passDlg.m_usuario); |
52 | post += "&te_senha_acesso_autenticacao="; | 62 | post += "&te_senha_acesso_autenticacao="; |
53 | - post += te_senha_acesso_autenticacao; | 63 | + post += CACIC_Crypt::codifica(passDlg.m_senha); |
54 | post += "&id_servidor_autenticacao="; | 64 | post += "&id_servidor_autenticacao="; |
55 | - post += id_servidor_autenticacao; | 65 | + post += CACIC_Crypt::codifica(passDlg.m_dominio); |
56 | 66 | ||
57 | vnclog.Print(LL_SRLOG, post.data()); | 67 | vnclog.Print(LL_SRLOG, post.data()); |
58 | 68 | ||
59 | - string session_script = m_scriptsPath.c_str(); | 69 | + string session_script = m_scriptsPath; |
60 | session_script.append(SET_SESSION_SCRIPT); | 70 | session_script.append(SET_SESSION_SCRIPT); |
61 | 71 | ||
62 | CACIC_Con::sendHtppPost(m_servidorWeb, session_script, post, resposta, TAMANHO_RESPOSTA); | 72 | CACIC_Con::sendHtppPost(m_servidorWeb, session_script, post, resposta, TAMANHO_RESPOSTA); |
63 | 73 | ||
64 | if(verificaAuthDominio(resposta)) { | 74 | if(verificaAuthDominio(resposta)) { |
65 | - authStat = vncPassDlg::AUTENTICADO; | 75 | + passDlg.m_authStat = vncPassDlg::AUTENTICADO; |
66 | } else { | 76 | } else { |
67 | - authStat = vncPassDlg::FALHA_AUTENTICACAO; | 77 | + passDlg.m_authStat = vncPassDlg::FALHA_AUTENTICACAO; |
68 | } | 78 | } |
69 | } | 79 | } |
70 | - while (authStat != vncPassDlg::AUTENTICADO); | 80 | + while (passDlg.m_authStat != vncPassDlg::AUTENTICADO); |
71 | 81 | ||
72 | if (passDlg.m_authStat != vncPassDlg::SEM_AUTENTICACAO) | 82 | if (passDlg.m_authStat != vncPassDlg::SEM_AUTENTICACAO) |
73 | { | 83 | { |
74 | string msginfo = "Usuário Autenticado: "; | 84 | string msginfo = "Usuário Autenticado: "; |
75 | msginfo += m_usuario; | 85 | msginfo += m_usuario; |
76 | - if (!passDlg.DoDialog(vncPassDlg::AUTENTICADO, msginfo)) return 0; | 86 | + passDlg.m_authStat = vncPassDlg::AUTENTICADO; |
87 | + passDlg.m_msgInfo = msginfo; | ||
88 | + if (!passDlg.DoDialog()) return false; | ||
77 | } | 89 | } |
78 | 90 | ||
79 | - vnclog.Print(LL_SRLOG, VNCLOG("Autenticação OK!\n")); | ||
80 | - | ||
81 | return true; | 91 | return true; |
82 | } | 92 | } |
83 | 93 | ||
84 | -// autentica o técnico que irá realizar o suporte remoto | ||
85 | bool CACIC_Auth::validaTecnico(char nm_usuario_cli[], char te_senha_cli[], char te_node_address_cli[], | 94 | bool CACIC_Auth::validaTecnico(char nm_usuario_cli[], char te_senha_cli[], char te_node_address_cli[], |
86 | - char te_documento_referencial[], char te_motivo_conexao[], char te_so_cli[], vncClientId vncCID) | 95 | + char te_documento_referencial[], char te_motivo_conexao[], char te_so_cli[], |
96 | + const vncClientId vncCID, const char peerName[]) | ||
87 | { | 97 | { |
88 | string post = getPostComum(); | 98 | string post = getPostComum(); |
89 | 99 | ||
@@ -110,7 +120,7 @@ bool CACIC_Auth::validaTecnico(char nm_usuario_cli[], char te_senha_cli[], char | @@ -110,7 +120,7 @@ bool CACIC_Auth::validaTecnico(char nm_usuario_cli[], char te_senha_cli[], char | ||
110 | CACIC_Con::sendHtppPost(m_servidorWeb, auth_client_script, post, resposta, TAMANHO_RESPOSTA); | 120 | CACIC_Con::sendHtppPost(m_servidorWeb, auth_client_script, post, resposta, TAMANHO_RESPOSTA); |
111 | 121 | ||
112 | if (!verificaAuthTecnico(resposta, te_node_address_cli, te_documento_referencial, | 122 | if (!verificaAuthTecnico(resposta, te_node_address_cli, te_documento_referencial, |
113 | - te_motivo_conexao, te_so_cli, vncCID)) | 123 | + te_motivo_conexao, te_so_cli, vncCID, peerName)) |
114 | { | 124 | { |
115 | return false; | 125 | return false; |
116 | } | 126 | } |
@@ -118,35 +128,33 @@ bool CACIC_Auth::validaTecnico(char nm_usuario_cli[], char te_senha_cli[], char | @@ -118,35 +128,33 @@ bool CACIC_Auth::validaTecnico(char nm_usuario_cli[], char te_senha_cli[], char | ||
118 | return true; | 128 | return true; |
119 | } | 129 | } |
120 | 130 | ||
121 | -// Verifica o status da chave passada ao agente. | ||
122 | bool CACIC_Auth::verificaAuthChave(char resposta[], vector<Dominio> &listaDominios) | 131 | bool CACIC_Auth::verificaAuthChave(char resposta[], vector<Dominio> &listaDominios) |
123 | { | 132 | { |
124 | try | 133 | try |
125 | { | 134 | { |
126 | if (!verificaStatus(resposta)) throw SRCException("Falha na verificação da chave!"); | 135 | if (!verificaStatus(resposta)) throw SRCException("Falha na verificação da chave!"); |
127 | 136 | ||
128 | - // pega o conteudo da tag de resposta <DOMINIOS>..</DOMINIOS> | ||
129 | string dominios; | 137 | string dominios; |
130 | dominios = CACIC_Utils::leTag(resposta, "SERVIDORES_AUTENTICACAO"); | 138 | dominios = CACIC_Utils::leTag(resposta, "SERVIDORES_AUTENTICACAO"); |
131 | 139 | ||
132 | string dominios_dec; | 140 | string dominios_dec; |
133 | dominios_dec = CACIC_Crypt::decodifica(dominios.c_str()); | 141 | dominios_dec = CACIC_Crypt::decodifica(dominios.c_str()); |
134 | 142 | ||
135 | - char* id_dominio = strtok((char*)dominios_dec.data(), ";"); | 143 | + char* dominios_dec_str = (char*)malloc(sizeof(char)*(dominios_dec.length() + 1)); |
144 | + string::traits_type::copy(dominios_dec_str, dominios_dec.c_str(), dominios_dec.length() + 1); | ||
145 | + char* id_dominio = strtok(dominios_dec_str, ";"); | ||
136 | char* nm_dominio = strtok(NULL, ";"); | 146 | char* nm_dominio = strtok(NULL, ";"); |
137 | 147 | ||
138 | - // pega a lista de dominios e decodifica, adicionando-a no vetor | ||
139 | - while (id_dominio != NULL && nm_dominio != NULL) | 148 | + while (id_dominio != NULL) |
140 | { | 149 | { |
141 | - Dominio novoDominio; | ||
142 | - novoDominio.id = id_dominio; | ||
143 | - novoDominio.nome = nm_dominio; | 150 | + listaDominios.push_back(Dominio(id_dominio, nm_dominio)); |
144 | 151 | ||
145 | - listaDominios.push_back(novoDominio); | ||
146 | - | ||
147 | - id_dominio = strtok (NULL, ";"); | ||
148 | - nm_dominio = strtok (NULL, ";"); | 152 | + id_dominio = strtok(NULL, ";"); |
153 | + nm_dominio = strtok(NULL, ";"); | ||
149 | } | 154 | } |
155 | + delete dominios_dec_str; | ||
156 | + delete id_dominio; | ||
157 | + delete nm_dominio; | ||
150 | 158 | ||
151 | if (listaDominios.empty()) throw SRCException("A lista de domínios está vazia."); | 159 | if (listaDominios.empty()) throw SRCException("A lista de domínios está vazia."); |
152 | 160 | ||
@@ -160,38 +168,24 @@ bool CACIC_Auth::verificaAuthChave(char resposta[], vector<Dominio> &listaDomini | @@ -160,38 +168,24 @@ bool CACIC_Auth::verificaAuthChave(char resposta[], vector<Dominio> &listaDomini | ||
160 | } | 168 | } |
161 | } | 169 | } |
162 | 170 | ||
163 | -// verifica a resposta referente a antenticacao do host | ||
164 | bool CACIC_Auth::verificaAuthDominio(char resposta[]) | 171 | bool CACIC_Auth::verificaAuthDominio(char resposta[]) |
165 | { | 172 | { |
166 | try | 173 | try |
167 | { | 174 | { |
168 | - if (!verificaStatus(resposta)) throw SRCException("Falha na autenticação do usuário."); | 175 | + if (!verificaStatus(resposta)) return false;//throw SRCException("Falha na autenticação do usuário."); |
169 | 176 | ||
170 | - // pega o conteudo da tag de resposta <NM_COMPLETO>..</NM_COMPLETO> | ||
171 | string nm_completo; | 177 | string nm_completo; |
172 | nm_completo = CACIC_Utils::leTag(resposta, "NM_COMPLETO"); | 178 | nm_completo = CACIC_Utils::leTag(resposta, "NM_COMPLETO"); |
173 | 179 | ||
174 | - // decodifica e compara a resposta | ||
175 | string nome_dec; | 180 | string nome_dec; |
176 | nome_dec.append(CACIC_Crypt::decodifica(nm_completo.c_str())); | 181 | nome_dec.append(CACIC_Crypt::decodifica(nm_completo.c_str())); |
177 | 182 | ||
178 | - // pega o conteudo da tag de resposta <ID_SESSAO>..</ID_SESSAO> | ||
179 | string id_sessao; | 183 | string id_sessao; |
180 | id_sessao = CACIC_Utils::leTag(resposta, "ID_SESSAO"); | 184 | id_sessao = CACIC_Utils::leTag(resposta, "ID_SESSAO"); |
181 | 185 | ||
182 | - string nu_timeout_srcacic; | ||
183 | - nu_timeout_srcacic = CACIC_Utils::leTag(resposta, "NU_TIMEOUT_SRCACIC"); | ||
184 | - | ||
185 | - string nu_timeout_srcacic_dec; | ||
186 | - nu_timeout_srcacic_dec = CACIC_Crypt::decodifica(nu_timeout_srcacic.c_str()); | ||
187 | - | ||
188 | m_usuario = nome_dec; | 186 | m_usuario = nome_dec; |
189 | m_idSessao = id_sessao; | 187 | m_idSessao = id_sessao; |
190 | 188 | ||
191 | - /*stringstream timeoutBuffer(nu_timeout_srcacic_dec); | ||
192 | - timeoutBuffer >> this->nuTimeout; | ||
193 | - m_server->SetAutoIdleDisconnectTimeout(this->nuTimeout);*/ | ||
194 | - | ||
195 | return true; | 189 | return true; |
196 | } | 190 | } |
197 | catch(SRCException ex) | 191 | catch(SRCException ex) |
@@ -202,16 +196,14 @@ bool CACIC_Auth::verificaAuthDominio(char resposta[]) | @@ -202,16 +196,14 @@ bool CACIC_Auth::verificaAuthDominio(char resposta[]) | ||
202 | } | 196 | } |
203 | } | 197 | } |
204 | 198 | ||
205 | -// verifica a resposta referente a antenticacao do técnico | ||
206 | bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[], char te_documento_referencial[], | 199 | bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[], char te_documento_referencial[], |
207 | - char te_motivo_conexao[], char te_so_cli[], vncClientId vncCID) | 200 | + char te_motivo_conexao[], char te_so_cli[], const vncClientId vncCID, const char peerName[]) |
208 | { | 201 | { |
209 | try | 202 | try |
210 | { | 203 | { |
211 | - // pega o conteudo da tag de resposta <STATUS>..</STATUS> | ||
212 | string status; | 204 | string status; |
213 | status = CACIC_Utils::leTag(resposta, "STATUS"); | 205 | status = CACIC_Utils::leTag(resposta, "STATUS"); |
214 | - // decodifica e compara a resposta | 206 | + |
215 | string status_dec; | 207 | string status_dec; |
216 | status_dec = CACIC_Crypt::decodifica(status.c_str()); | 208 | status_dec = CACIC_Crypt::decodifica(status.c_str()); |
217 | 209 | ||
@@ -219,19 +211,18 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | @@ -219,19 +211,18 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | ||
219 | // para poder pegar a resposta de erro que vem na tag STATUS | 211 | // para poder pegar a resposta de erro que vem na tag STATUS |
220 | if (status_dec.compare("OK") != 0) throw SRCException(status_dec.c_str()); | 212 | if (status_dec.compare("OK") != 0) throw SRCException(status_dec.c_str()); |
221 | 213 | ||
222 | - // pega o conteudo da tag de resposta <ID_USUARIO_CLI>..</ID_USUARIO_CLI> | ||
223 | string id_usuario_cli; | 214 | string id_usuario_cli; |
224 | id_usuario_cli = CACIC_Utils::leTag(resposta, "ID_USUARIO_CLI"); | 215 | id_usuario_cli = CACIC_Utils::leTag(resposta, "ID_USUARIO_CLI"); |
225 | 216 | ||
226 | - // pega o conteudo da tag de resposta <ID_CONEXAO>..</ID_CONEXAO> | ||
227 | string id_conexao; | 217 | string id_conexao; |
228 | id_conexao = CACIC_Utils::leTag(resposta, "ID_CONEXAO"); | 218 | id_conexao = CACIC_Utils::leTag(resposta, "ID_CONEXAO"); |
229 | 219 | ||
230 | - // pega o conteudo da tag de resposta <NM_COMPLETO>..</NM_COMPLETO> | ||
231 | string nm_usuario_completo; | 220 | string nm_usuario_completo; |
232 | nm_usuario_completo = CACIC_Utils::leTag(resposta, "NM_USUARIO_COMPLETO"); | 221 | nm_usuario_completo = CACIC_Utils::leTag(resposta, "NM_USUARIO_COMPLETO"); |
233 | 222 | ||
234 | - // decodifica e compara a resposta | 223 | + string dt_hr_inicio_sessao; |
224 | + dt_hr_inicio_sessao = CACIC_Utils::leTag(resposta, "DT_HR_INICIO_SESSAO"); | ||
225 | + | ||
235 | string nm_usuario_completo_dec; | 226 | string nm_usuario_completo_dec; |
236 | nm_usuario_completo_dec.append(CACIC_Crypt::decodifica(nm_usuario_completo.c_str())); | 227 | nm_usuario_completo_dec.append(CACIC_Crypt::decodifica(nm_usuario_completo.c_str())); |
237 | 228 | ||
@@ -241,11 +232,6 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | @@ -241,11 +232,6 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | ||
241 | string te_motivo_conexao_dec; | 232 | string te_motivo_conexao_dec; |
242 | te_motivo_conexao_dec.append(CACIC_Crypt::decodifica(te_motivo_conexao)); | 233 | te_motivo_conexao_dec.append(CACIC_Crypt::decodifica(te_motivo_conexao)); |
243 | 234 | ||
244 | - // pega o conteudo da tag de resposta <DT_HR_INICIO_SESSAO>..</DT_HR_INICIO_SESSAO> | ||
245 | - string dt_hr_inicio_sessao; | ||
246 | - dt_hr_inicio_sessao = CACIC_Utils::leTag(resposta, "DT_HR_INICIO_SESSAO"); | ||
247 | - | ||
248 | - // decodifica e compara a resposta | ||
249 | string dt_hr_inicio_sessao_dec; | 235 | string dt_hr_inicio_sessao_dec; |
250 | dt_hr_inicio_sessao_dec.append(CACIC_Crypt::decodifica(dt_hr_inicio_sessao.c_str())); | 236 | dt_hr_inicio_sessao_dec.append(CACIC_Crypt::decodifica(dt_hr_inicio_sessao.c_str())); |
251 | 237 | ||
@@ -260,6 +246,7 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | @@ -260,6 +246,7 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | ||
260 | novoCliente.te_motivo_conexao = te_motivo_conexao_dec; | 246 | novoCliente.te_motivo_conexao = te_motivo_conexao_dec; |
261 | novoCliente.te_so_visitante = te_so_cli; | 247 | novoCliente.te_so_visitante = te_so_cli; |
262 | novoCliente.dt_hr_inicio_sessao = dt_hr_inicio_sessao_dec; | 248 | novoCliente.dt_hr_inicio_sessao = dt_hr_inicio_sessao_dec; |
249 | + novoCliente.peerName = peerName; | ||
263 | 250 | ||
264 | // adiciona o novo usuario a lista de usuarios visitantes | 251 | // adiciona o novo usuario a lista de usuarios visitantes |
265 | m_listaClientes.push_back(novoCliente); | 252 | m_listaClientes.push_back(novoCliente); |
@@ -268,6 +255,8 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | @@ -268,6 +255,8 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | ||
268 | 255 | ||
269 | m_infoDlg.m_nomeVisitante = m_novoCliente.nm_usuario_completo; | 256 | m_infoDlg.m_nomeVisitante = m_novoCliente.nm_usuario_completo; |
270 | m_infoDlg.m_dataInicio = m_novoCliente.dt_hr_inicio_sessao; | 257 | m_infoDlg.m_dataInicio = m_novoCliente.dt_hr_inicio_sessao; |
258 | + m_infoDlg.m_ip = m_novoCliente.peerName; | ||
259 | + m_infoDlg.m_documentoReferencia = m_novoCliente.te_documento_referencial; | ||
271 | 260 | ||
272 | return true; | 261 | return true; |
273 | } | 262 | } |
@@ -282,19 +271,19 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | @@ -282,19 +271,19 @@ bool CACIC_Auth::verificaAuthTecnico(char resposta[], char te_node_address_cli[] | ||
282 | 271 | ||
283 | void CACIC_Auth::atualizaSessao() | 272 | void CACIC_Auth::atualizaSessao() |
284 | { | 273 | { |
285 | - // Verifica se a palavra chave foi trocada enquanto em execução. | 274 | + // Verifica, antes de atualizar a sessão, se a palavra |
275 | + // chave foi trocada enquanto o servidor estava aberto. | ||
286 | FILE *pFile; | 276 | FILE *pFile; |
287 | - string filePath = m_tempPath + COOKIE_FILENAME; | 277 | + string filePath = m_tempPath + CACIC_Auth::COOKIE_FILENAME; |
288 | pFile = fopen(filePath.data(), "r"); | 278 | pFile = fopen(filePath.data(), "r"); |
289 | char newKey[256]; | 279 | char newKey[256]; |
290 | 280 | ||
291 | - // testa se o arquivo foi aberto com sucesso | ||
292 | if(pFile != NULL) | 281 | if(pFile != NULL) |
293 | { | 282 | { |
294 | if (fgets(newKey, 256, pFile)) | 283 | if (fgets(newKey, 256, pFile)) |
295 | m_palavraChave = newKey; | 284 | m_palavraChave = newKey; |
296 | 285 | ||
297 | - fclose(pFile); // libera o ponteiro para o arquivo | 286 | + fclose(pFile); |
298 | remove(filePath.data()); | 287 | remove(filePath.data()); |
299 | } | 288 | } |
300 | 289 | ||
@@ -316,25 +305,25 @@ void CACIC_Auth::atualizaSessao() | @@ -316,25 +305,25 @@ void CACIC_Auth::atualizaSessao() | ||
316 | } | 305 | } |
317 | else | 306 | else |
318 | { | 307 | { |
319 | - string listaidusu = "&id_usuario_visitante="; | ||
320 | - string listaidcon = "&id_conexao="; | ||
321 | - string listanode = "&te_node_address_visitante="; | ||
322 | - string listaidso = "&te_so_visitante="; | 308 | + string listaIDUsuario = "&id_usuario_visitante="; |
309 | + string listaIDConexao = "&id_conexao="; | ||
310 | + string listaNodeAddress = "&te_node_address_visitante="; | ||
311 | + string listaID_SO = "&te_so_visitante="; | ||
323 | for (int i = 0; i < m_listaClientes.size(); i++) | 312 | for (int i = 0; i < m_listaClientes.size(); i++) |
324 | { | 313 | { |
325 | - listaidusu += m_listaClientes[i].id_usuario_visitante; | ||
326 | - if (i < m_listaClientes.size() - 1) listaidusu += "<REG>"; | ||
327 | - listaidcon += m_listaClientes[i].id_conexao; | ||
328 | - if (i < m_listaClientes.size() - 1) listaidcon += "<REG>"; | ||
329 | - listanode += m_listaClientes[i].te_node_address_visitante; | ||
330 | - if (i < m_listaClientes.size() - 1) listanode += "<REG>"; | ||
331 | - listaidso += m_listaClientes[i].te_so_visitante; | ||
332 | - if (i < m_listaClientes.size() - 1) listaidso += "<REG>"; | 314 | + listaIDUsuario += m_listaClientes[i].id_usuario_visitante; |
315 | + if (i < m_listaClientes.size() - 1) listaIDUsuario += "<REG>"; | ||
316 | + listaIDConexao += m_listaClientes[i].id_conexao; | ||
317 | + if (i < m_listaClientes.size() - 1) listaIDConexao += "<REG>"; | ||
318 | + listaNodeAddress += m_listaClientes[i].te_node_address_visitante; | ||
319 | + if (i < m_listaClientes.size() - 1) listaNodeAddress += "<REG>"; | ||
320 | + listaID_SO += m_listaClientes[i].te_so_visitante; | ||
321 | + if (i < m_listaClientes.size() - 1) listaID_SO += "<REG>"; | ||
333 | } | 322 | } |
334 | - post += listaidusu; | ||
335 | - post += listaidcon; | ||
336 | - post += listanode; | ||
337 | - post += listaidso; | 323 | + post += listaIDUsuario; |
324 | + post += listaIDConexao; | ||
325 | + post += listaNodeAddress; | ||
326 | + post += listaID_SO; | ||
338 | } | 327 | } |
339 | 328 | ||
340 | string session_script = m_scriptsPath.c_str(); | 329 | string session_script = m_scriptsPath.c_str(); |
@@ -346,8 +335,23 @@ void CACIC_Auth::atualizaSessao() | @@ -346,8 +335,23 @@ void CACIC_Auth::atualizaSessao() | ||
346 | if (!verificaStatus(resposta)) | 335 | if (!verificaStatus(resposta)) |
347 | { | 336 | { |
348 | MessageBox(NULL, "Ocorreu um erro ao atualizar a sessão! O programa será fechado.", "Erro!", MB_OK | MB_ICONERROR); | 337 | MessageBox(NULL, "Ocorreu um erro ao atualizar a sessão! O programa será fechado.", "Erro!", MB_OK | MB_ICONERROR); |
349 | - ExitProcess(0); | ||
350 | - return; | 338 | + finalizaServidor(); |
339 | + } | ||
340 | + | ||
341 | + // verifica se o servidor está sem receber conexão por | ||
342 | + // mais tempo que o limite, caso esteja, o processo é finalizado. | ||
343 | + if (m_listaClientes.empty()) | ||
344 | + { | ||
345 | + m_idleTime--; | ||
346 | + if (m_idleTime <= 0) | ||
347 | + { | ||
348 | + vnclog.Print(LL_SRLOG, "Fechando o servidor por atingir o tempo máximo de idle."); | ||
349 | + finalizaServidor(); | ||
350 | + } | ||
351 | + } | ||
352 | + else | ||
353 | + { | ||
354 | + m_idleTime = TEMPO_IDLE; | ||
351 | } | 355 | } |
352 | } | 356 | } |
353 | 357 | ||
@@ -373,7 +377,6 @@ void CACIC_Auth::sendChatText(char te_mensagem[], char cs_origem[]) | @@ -373,7 +377,6 @@ void CACIC_Auth::sendChatText(char te_mensagem[], char cs_origem[]) | ||
373 | CACIC_Con::sendHtppPost(m_servidorWeb, session_script, post, resposta, TAMANHO_RESPOSTA); | 377 | CACIC_Con::sendHtppPost(m_servidorWeb, session_script, post, resposta, TAMANHO_RESPOSTA); |
374 | } | 378 | } |
375 | 379 | ||
376 | -// remove o cliente com id vncid da lista de usuarios visitantes | ||
377 | void CACIC_Auth::removeCliente(vncClientId vncCID) | 380 | void CACIC_Auth::removeCliente(vncClientId vncCID) |
378 | { | 381 | { |
379 | // Atualiza a sessão antes de remover o cliente. | 382 | // Atualiza a sessão antes de remover o cliente. |
@@ -394,16 +397,6 @@ void CACIC_Auth::removeCliente(vncClientId vncCID) | @@ -394,16 +397,6 @@ void CACIC_Auth::removeCliente(vncClientId vncCID) | ||
394 | m_novoCliente = novoCliente; | 397 | m_novoCliente = novoCliente; |
395 | } | 398 | } |
396 | 399 | ||
397 | -CACIC_Auth* CACIC_Auth::getInstance() | ||
398 | -{ | ||
399 | - if (!m_instance) | ||
400 | - { | ||
401 | - m_instance = new CACIC_Auth(); | ||
402 | - } | ||
403 | - return m_instance; | ||
404 | -} | ||
405 | - | ||
406 | -// pega os parametros comuns a todos os posts enviados | ||
407 | string CACIC_Auth::getPostComum() | 400 | string CACIC_Auth::getPostComum() |
408 | { | 401 | { |
409 | string post = ""; | 402 | string post = ""; |
@@ -417,24 +410,31 @@ string CACIC_Auth::getPostComum() | @@ -417,24 +410,31 @@ string CACIC_Auth::getPostComum() | ||
417 | return post; | 410 | return post; |
418 | } | 411 | } |
419 | 412 | ||
420 | -// verifica se a resposta enviada na tag status esta ok | ||
421 | bool CACIC_Auth::verificaStatus(char resposta[]) | 413 | bool CACIC_Auth::verificaStatus(char resposta[]) |
422 | { | 414 | { |
423 | - // pega o conteudo da tag de resposta <STATUS>..</STATUS> | ||
424 | string status; | 415 | string status; |
425 | status = CACIC_Utils::leTag(resposta, "STATUS"); | 416 | status = CACIC_Utils::leTag(resposta, "STATUS"); |
426 | 417 | ||
427 | - // decodifica e compara a resposta | ||
428 | string status_dec; | 418 | string status_dec; |
429 | status_dec = CACIC_Crypt::decodifica(status.c_str()); | 419 | status_dec = CACIC_Crypt::decodifica(status.c_str()); |
430 | 420 | ||
431 | - if (status_dec.compare("OK") != 0) | ||
432 | - { | ||
433 | - string errorMsg = "Falha na autenticação do usuário no domínio.\n"; | ||
434 | - errorMsg += status_dec; | ||
435 | - vnclog.Print(LL_SRLOG, VNCLOG(errorMsg.c_str())); | ||
436 | - return false; | ||
437 | - } | 421 | + if (status_dec.compare("OK") != 0) return false; |
438 | 422 | ||
439 | return true; | 423 | return true; |
440 | } | 424 | } |
425 | + | ||
426 | +void CACIC_Auth::finalizaServidor() | ||
427 | +{ | ||
428 | + static HANDLE hShutdownEvent; | ||
429 | + hShutdownEvent = OpenEvent(EVENT_ALL_ACCESS, FALSE, "Global\\SessionEventUltra"); | ||
430 | + SetEvent(hShutdownEvent); | ||
431 | + CloseHandle(hShutdownEvent); | ||
432 | + HWND hservwnd; | ||
433 | + // UVNC Default: WinVNC Tray Icon | ||
434 | + hservwnd = FindWindow("srCACICsrv Tray Icon", NULL); | ||
435 | + if (hservwnd != NULL) | ||
436 | + { | ||
437 | + PostMessage(hservwnd, WM_COMMAND, 40002, 0); | ||
438 | + PostMessage(hservwnd, WM_CLOSE, 0, 0); | ||
439 | + } | ||
440 | +} |
srcacic/WinVNC/WinVNC/CACIC_Auth.h
1 | +/** | ||
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe singleton responsável pela autenticação no gerente web. | ||
5 | + */ | ||
6 | + | ||
1 | #ifndef _CACIC_AUTH_ | 7 | #ifndef _CACIC_AUTH_ |
2 | #define _CACIC_AUTH_ | 8 | #define _CACIC_AUTH_ |
3 | 9 | ||
@@ -21,12 +27,12 @@ using namespace std; | @@ -21,12 +27,12 @@ using namespace std; | ||
21 | 27 | ||
22 | #include "vncClient.h" | 28 | #include "vncClient.h" |
23 | 29 | ||
24 | -#define AGUARDE_FILENAME "aguarde_srCACIC.txt"; | ||
25 | -#define COOKIE_FILENAME "cacic_ck.txt"; | ||
26 | - | ||
27 | -// struct referente a um usuario remoto | 30 | +/** |
31 | + * Struct referente a um usuário cliente. | ||
32 | + */ | ||
28 | struct ClienteSRC { | 33 | struct ClienteSRC { |
29 | vncClientId vncCID; | 34 | vncClientId vncCID; |
35 | + string peerName; | ||
30 | string id_usuario_visitante; | 36 | string id_usuario_visitante; |
31 | string id_usuario_cli; | 37 | string id_usuario_cli; |
32 | string id_conexao; | 38 | string id_conexao; |
@@ -44,15 +50,37 @@ class CACIC_Auth { | @@ -44,15 +50,37 @@ class CACIC_Auth { | ||
44 | 50 | ||
45 | public: | 51 | public: |
46 | 52 | ||
47 | - // lista de usuarios remotos | 53 | + /** |
54 | + * Nome do arquivo temporário de trava. | ||
55 | + * Utilizado para que o cacic impeça a execução de coletas com o suporte ativo. | ||
56 | + */ | ||
57 | + static const string AGUARDE_FILENAME; | ||
58 | + | ||
59 | + /** | ||
60 | + * Tempo máximo que o servidor pode ficar aberto sem conexões. (mins) | ||
61 | + */ | ||
62 | + static const UINT TEMPO_IDLE; | ||
63 | + | ||
64 | + /** Lista de usuários cliente. */ | ||
48 | vector<ClienteSRC> m_listaClientes; | 65 | vector<ClienteSRC> m_listaClientes; |
49 | 66 | ||
67 | + /** Último usuário cliente conectado. */ | ||
50 | ClienteSRC m_novoCliente; | 68 | ClienteSRC m_novoCliente; |
51 | 69 | ||
70 | + /** | ||
71 | + * Janela com informações sobre o cliente conectado. | ||
72 | + * Exibida enquanto há suporte em andamento. | ||
73 | + */ | ||
52 | supInfoDlg m_infoDlg; | 74 | supInfoDlg m_infoDlg; |
53 | 75 | ||
54 | - static CACIC_Auth* getInstance(); | 76 | + /** Singleton. */ |
77 | + static CACIC_Auth* getInstance() | ||
78 | + { | ||
79 | + if (!m_instance) m_instance = new CACIC_Auth(); | ||
80 | + return m_instance; | ||
81 | + } | ||
55 | 82 | ||
83 | + /* MÉTODOS DE ENCAPSULAMENTO --> */ | ||
56 | void setServidorWeb(string newServidorWeb) {m_servidorWeb = newServidorWeb;} | 84 | void setServidorWeb(string newServidorWeb) {m_servidorWeb = newServidorWeb;} |
57 | string getServidorWeb() {return m_servidorWeb;} | 85 | string getServidorWeb() {return m_servidorWeb;} |
58 | void setScriptsPath(string newScriptsPath) {m_scriptsPath = newScriptsPath;} | 86 | void setScriptsPath(string newScriptsPath) {m_scriptsPath = newScriptsPath;} |
@@ -62,48 +90,154 @@ public: | @@ -62,48 +90,154 @@ public: | ||
62 | void setPalavraChave(char* newPalavraChave) {m_palavraChave = newPalavraChave;} | 90 | void setPalavraChave(char* newPalavraChave) {m_palavraChave = newPalavraChave;} |
63 | void setPorta(UINT newPorta) {m_porta = newPorta;} | 91 | void setPorta(UINT newPorta) {m_porta = newPorta;} |
64 | UINT getPorta() {return m_porta;} | 92 | UINT getPorta() {return m_porta;} |
65 | - | 93 | + void setTimeout(UINT newNuTimeout) {m_nuTimeout = newNuTimeout;} |
94 | + UINT getTimeout() {return m_nuTimeout;} | ||
95 | + /* <-- MÉTODOS DE ENCAPSULAMENTO */ | ||
96 | + | ||
97 | + /** | ||
98 | + * Retorna os valores padrão de post, usados na | ||
99 | + * comunicação com o gerente web. | ||
100 | + * te_so, te_node_address, te_palavra_chave | ||
101 | + * @return String com o post padrão formatado. | ||
102 | + */ | ||
66 | string getPostComum(); | 103 | string getPostComum(); |
67 | 104 | ||
105 | + /** | ||
106 | + * Remove o usuário cliente da lista. | ||
107 | + * @param vncCID ID do cliente VNC, utilizado para | ||
108 | + * diferenciar os clientes, caso haja mais de um. | ||
109 | + */ | ||
68 | void removeCliente(vncClientId vncCID); | 110 | void removeCliente(vncClientId vncCID); |
69 | 111 | ||
112 | + /** | ||
113 | + * Faz a comunicação com o gerente web para validar a palavra chave | ||
114 | + * e criar uma nova sessão para o suporte remoto. | ||
115 | + * @return bool Status da autenticação. | ||
116 | + */ | ||
70 | bool autentica(); | 117 | bool autentica(); |
118 | + | ||
119 | + /** | ||
120 | + * Se comunica com o gerente web para validar o usuário cliente. | ||
121 | + * Se o usuário for válido, ele cria uma nova sessão de conexão. | ||
122 | + * @param nm_usuario_cli String codificada contendo o nome de usuário. | ||
123 | + * @param te_senha_cli String codificada contendo a senha do usuário. | ||
124 | + * @param te_node_address_cli String codificada contendo o MAC address do cliente. | ||
125 | + * @param te_documento_referencial String codificada contendo o Documento de Referência do suporte remoto. | ||
126 | + * @param te_motivo_conexao String codificada contendo o motivo do suporte remoto. | ||
127 | + * @param te_so_cli String codificada contendo a identificação do SO do cliente. | ||
128 | + * @param vncCID ID do cliente VNC. | ||
129 | + * @param peerName String contendo o endereço ip do cliente. | ||
130 | + */ | ||
71 | bool validaTecnico(char nm_usuario_cli[], char te_senha_cli[], char te_node_address_cli[], | 131 | bool validaTecnico(char nm_usuario_cli[], char te_senha_cli[], char te_node_address_cli[], |
72 | - char te_documento_referencial[], char te_motivo_conexao[], char te_so_cli[], vncClientId vncCID); | 132 | + char te_documento_referencial[], char te_motivo_conexao[], char te_so_cli[], |
133 | + const vncClientId vncCID, const char peerName[]); | ||
134 | + | ||
135 | + /** | ||
136 | + * Se comunica com o gerente web para atualizar a sessão de suporte. | ||
137 | + */ | ||
73 | void atualizaSessao(); | 138 | void atualizaSessao(); |
139 | + | ||
140 | + /** | ||
141 | + * Envia o log do chat para o gerente web durante o suporte remoto. | ||
142 | + * @param te_mensagem Mensagem recebida/enviada. | ||
143 | + * @param cs_origem Origem da mensagem, cliente/servidor. | ||
144 | + */ | ||
74 | void sendChatText(char te_mensagem[], char cs_origem[]); | 145 | void sendChatText(char te_mensagem[], char cs_origem[]); |
75 | 146 | ||
147 | + /** Fecha o servidor. */ | ||
148 | + void finalizaServidor(); | ||
149 | + | ||
76 | private: | 150 | private: |
77 | 151 | ||
152 | + /** Singleton. */ | ||
78 | static CACIC_Auth* m_instance; | 153 | static CACIC_Auth* m_instance; |
79 | 154 | ||
80 | - CACIC_Auth(); | ||
81 | - virtual ~CACIC_Auth(); | ||
82 | - | ||
83 | - string m_servidorWeb; // endereco do servidor web | ||
84 | - string m_scriptsPath; // caminho dos scripts | ||
85 | - string m_tempPath; // caminho completo para a pasta temp do cacic | 155 | + CACIC_Auth() { |
156 | + m_idleTime = TEMPO_IDLE; | ||
157 | + } | ||
86 | 158 | ||
87 | - string m_usuario; // usuario host do suporte | ||
88 | - string m_idSessao; // id da sessao iniciada pelo usuario host | ||
89 | - UINT m_nuTimeout; // valor do idle timeout | 159 | + virtual ~CACIC_Auth() {} |
90 | 160 | ||
91 | - string m_soVersion; // versao do sistema operacional do host | ||
92 | - string m_nodeAdress; // mac address do host | ||
93 | - string m_palavraChave; // palavra chave do cacic no momento da ativação do suporte remoto | 161 | + /** Endereço do servidor web. */ |
162 | + string m_servidorWeb; | ||
163 | + /** Caminho dos scripts no servidor web. */ | ||
164 | + string m_scriptsPath; | ||
165 | + /** Caminho estático para a pasta temp do cacic. */ | ||
166 | + string m_tempPath; | ||
94 | 167 | ||
95 | - UINT m_porta; | 168 | + /** Usuário host do suporte. */ |
169 | + string m_usuario; | ||
170 | + /** ID da sessão iniciada pelo usuário host. */ | ||
171 | + string m_idSessao; | ||
96 | 172 | ||
97 | - static const string GET_CONFIG_SCRIPT; // caminho para o script de configurações | ||
98 | - static const string SET_SESSION_SCRIPT; // caminho para o script de sessões | ||
99 | - static const string AUTH_CLIENT_SCRIPT; // caminho para o script de autenticação | ||
100 | - static const unsigned int TAMANHO_RESPOSTA; // tamanho maximo aceito pela resposta xml | 173 | + /** Versão do sistema operacional do host. */ |
174 | + string m_soVersion; | ||
175 | + /** MAC Address do host. */ | ||
176 | + string m_nodeAdress; | ||
177 | + /** Palavra chave. Utilizada na comunicação com o gerente web. */ | ||
178 | + string m_palavraChave; | ||
101 | 179 | ||
180 | + /** Porta de escuta. */ | ||
181 | + UINT m_porta; | ||
182 | + /** Tempo limite que o srcacic pode ficar ocioso antes de fechar-se. */ | ||
183 | + UINT m_nuTimeout; | ||
184 | + /** Tempo que o servidor está ocioso */ | ||
185 | + UINT m_idleTime; | ||
186 | + | ||
187 | + /** Nome do script de configurações do gerente web. */ | ||
188 | + static const string GET_CONFIG_SCRIPT; | ||
189 | + /** Nome do script de sessões do gerente web. */ | ||
190 | + static const string SET_SESSION_SCRIPT; | ||
191 | + /** Nome do script de autenticação do gerente web. */ | ||
192 | + static const string AUTH_CLIENT_SCRIPT; | ||
193 | + /** Tamanho padrão da resposta recebida pela requisição http. */ | ||
194 | + static const unsigned int TAMANHO_RESPOSTA; | ||
195 | + /** Nome do arquivo temporário de atualização da palavra chave. */ | ||
196 | + static const string COOKIE_FILENAME; | ||
197 | + | ||
198 | + /** | ||
199 | + * Apresenta o diálogo de login do usuário host e | ||
200 | + * valida os dados no gerente web. | ||
201 | + * @param listaDominios Lista de domínios obtida na autenticação. | ||
202 | + */ | ||
203 | + bool autenticaUsuario(vector<Dominio> &listaDominios); | ||
204 | + | ||
205 | + /** | ||
206 | + * Verifica a autenticação da chave no gerente web. | ||
207 | + * @param resposta Resposta XML gerada na comunicação com o gerente web. | ||
208 | + * @param listaDominios Lista de domínios obtida na autenticação. | ||
209 | + */ | ||
102 | bool verificaAuthChave(char resposta[], vector<Dominio> &listaDominios); | 210 | bool verificaAuthChave(char resposta[], vector<Dominio> &listaDominios); |
211 | + | ||
212 | + /** | ||
213 | + * Verifica se a resposta da autenticação do usuário host foi positiva. | ||
214 | + * @param resposta Resposta XML gerada na comunicação com o gerente web. | ||
215 | + */ | ||
103 | bool verificaAuthDominio(char resposta[]); | 216 | bool verificaAuthDominio(char resposta[]); |
104 | - bool verificaAuthTecnico(char resposta[], char te_node_address_cli[], char te_documento_referencial[], | ||
105 | - char te_motivo_conexao[], char te_so_cli[], vncClientId vncCID); | ||
106 | 217 | ||
218 | + /** | ||
219 | + * Verifica se a resposta da autenticação do técnico foi positiva, | ||
220 | + * armazena o novo cliente na lista e exibe a tela de informações do suporte. | ||
221 | + * @param nm_usuario_cli String codificada contendo o nome de usuário. | ||
222 | + * @param te_senha_cli String codificada contendo a senha do usuário. | ||
223 | + * @param te_node_address_cli String codificada contendo o MAC address do cliente. | ||
224 | + * @param te_documento_referencial String codificada contendo o Documento de Referência do suporte remoto. | ||
225 | + * @param te_motivo_conexao String codificada contendo o motivo do suporte remoto. | ||
226 | + * @param te_so_cli String codificada contendo a identificação do SO do cliente. | ||
227 | + * @param vncCID ID do cliente VNC. | ||
228 | + * @param peerName String contendo o endereço ip do cliente. | ||
229 | + */ | ||
230 | + bool verificaAuthTecnico(char resposta[], char te_node_address_cli[], char te_documento_referencial[], | ||
231 | + char te_motivo_conexao[], char te_so_cli[], | ||
232 | + const vncClientId vncCID, const char peerName[]); | ||
233 | + | ||
234 | + /** | ||
235 | + * Verifica o valor de retorno STATUS que é enviado pelo gerente web | ||
236 | + * após cada comunicação para confirmar a operação. | ||
237 | + * <b>Valores retornados:</b><br /> | ||
238 | + * OK: A operação teve êxito.<br />ERRO: A operação falhou. | ||
239 | + * @param resposta Resposta XML gerada na comunicação com o gerente web. | ||
240 | + */ | ||
107 | bool verificaStatus(char resposta[]); | 241 | bool verificaStatus(char resposta[]); |
108 | }; | 242 | }; |
109 | 243 |
srcacic/WinVNC/WinVNC/CACIC_Con.cpp
1 | -// Declaração da classe CACIC_Con | 1 | +/** |
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe para envio de requisições html ao gerente web. | ||
5 | + * API das funções wininet: | ||
6 | + * http://msdn.microsoft.com/en-us/library/aa385473(VS.85).aspx | ||
7 | + */ | ||
2 | 8 | ||
3 | #include "CACIC_Con.h" | 9 | #include "CACIC_Con.h" |
4 | 10 | ||
5 | -CACIC_Con::CACIC_Con() {} | 11 | +const TCHAR CACIC_Con::DEFAULT_HEADER[] = "Content-Type: application/x-www-form-urlencoded"; |
6 | 12 | ||
7 | -CACIC_Con::~CACIC_Con() | ||
8 | -{ | ||
9 | - if(m_hSession != NULL) InternetCloseHandle(m_hSession); | ||
10 | - if(m_hConnect != NULL) InternetCloseHandle(m_hConnect); | ||
11 | - if(m_hRequest != NULL) InternetCloseHandle(m_hRequest); | ||
12 | -} | ||
13 | - | ||
14 | -// conecta ao gerente web | ||
15 | void CACIC_Con::conecta() | 13 | void CACIC_Con::conecta() |
16 | { | 14 | { |
17 | m_hSession = InternetOpen("CACIC_Con", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); | 15 | m_hSession = InternetOpen("CACIC_Con", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); |
@@ -32,7 +30,6 @@ void CACIC_Con::conecta() | @@ -32,7 +30,6 @@ void CACIC_Con::conecta() | ||
32 | } | 30 | } |
33 | } | 31 | } |
34 | 32 | ||
35 | -// envia os parametros ao script | ||
36 | void CACIC_Con::sendRequest(LPCTSTR metodo, LPCTSTR script, TCHAR frmdata[]) | 33 | void CACIC_Con::sendRequest(LPCTSTR metodo, LPCTSTR script, TCHAR frmdata[]) |
37 | { | 34 | { |
38 | m_hRequest = HttpOpenRequest(m_hConnect, metodo, script, NULL, NULL, NULL, 0, 1); | 35 | m_hRequest = HttpOpenRequest(m_hConnect, metodo, script, NULL, NULL, NULL, 0, 1); |
@@ -43,10 +40,11 @@ void CACIC_Con::sendRequest(LPCTSTR metodo, LPCTSTR script, TCHAR frmdata[]) | @@ -43,10 +40,11 @@ void CACIC_Con::sendRequest(LPCTSTR metodo, LPCTSTR script, TCHAR frmdata[]) | ||
43 | return; | 40 | return; |
44 | } | 41 | } |
45 | 42 | ||
46 | - HttpSendRequest(m_hRequest, hdrs, strlen(hdrs), frmdata, strlen(frmdata)); | 43 | + HttpSendRequest(m_hRequest, CACIC_Con::DEFAULT_HEADER, |
44 | + strlen(CACIC_Con::DEFAULT_HEADER), | ||
45 | + frmdata, strlen(frmdata)); | ||
47 | } | 46 | } |
48 | 47 | ||
49 | -// pega a resposta da ultima solicitacao e armazena no buffer | ||
50 | bool CACIC_Con::getResponse(char buff[], unsigned long sz) | 48 | bool CACIC_Con::getResponse(char buff[], unsigned long sz) |
51 | { | 49 | { |
52 | if(!m_hRequest) | 50 | if(!m_hRequest) |
srcacic/WinVNC/WinVNC/CACIC_Con.h
1 | -// Classe para conexao do vnc com o gerente web do Cacic. | ||
2 | -// API das funcoes da classe wininet.h: | ||
3 | -// http://msdn.microsoft.com/en-us/library/aa385473(VS.85).aspx | 1 | +/** |
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe para envio de requisições html ao gerente web. | ||
5 | + * API das funções wininet: | ||
6 | + * http://msdn.microsoft.com/en-us/library/aa385473(VS.85).aspx | ||
7 | + */ | ||
4 | 8 | ||
5 | #ifndef _CACIC_CON_ | 9 | #ifndef _CACIC_CON_ |
6 | #define _CACIC_CON_ | 10 | #define _CACIC_CON_ |
@@ -17,32 +21,82 @@ using namespace std; | @@ -17,32 +21,82 @@ using namespace std; | ||
17 | #define HTTP_POST "POST" | 21 | #define HTTP_POST "POST" |
18 | #define HTTP_GET "GET" | 22 | #define HTTP_GET "GET" |
19 | 23 | ||
20 | -static const TCHAR hdrs[] = "Content-Type: application/x-www-form-urlencoded"; | ||
21 | - | ||
22 | class CACIC_Con { | 24 | class CACIC_Con { |
23 | 25 | ||
24 | private: | 26 | private: |
25 | 27 | ||
26 | - HINTERNET m_hSession; // handle da sessao | ||
27 | - HINTERNET m_hConnect; // handle da conexao | ||
28 | - HINTERNET m_hRequest; // handle da resposta da requisicao | 28 | + /** Header padrão das requisições. */ |
29 | + static const TCHAR DEFAULT_HEADER[]; | ||
30 | + | ||
31 | + /** Handler da sessão. */ | ||
32 | + HINTERNET m_hSession; | ||
33 | + /** Handler da conexao. */ | ||
34 | + HINTERNET m_hConnect; | ||
35 | + /** Handler da resposta da requisição. */ | ||
36 | + HINTERNET m_hRequest; | ||
29 | 37 | ||
38 | + /** Número de bytes lidos na última requisição. */ | ||
30 | unsigned long m_lBytesRead; | 39 | unsigned long m_lBytesRead; |
40 | + /** Nome do servidor que sofrerá a ação. */ | ||
31 | LPCSTR m_server; | 41 | LPCSTR m_server; |
32 | 42 | ||
33 | public: | 43 | public: |
34 | 44 | ||
35 | - CACIC_Con(); | ||
36 | - virtual ~CACIC_Con(); | ||
37 | - | 45 | + CACIC_Con() {} |
46 | + | ||
47 | + /** | ||
48 | + * Destrutor da classe. | ||
49 | + * Libera os handlers que estiverem abertos. | ||
50 | + */ | ||
51 | + virtual ~CACIC_Con() | ||
52 | + { | ||
53 | + if(m_hSession != NULL) InternetCloseHandle(m_hSession); | ||
54 | + if(m_hConnect != NULL) InternetCloseHandle(m_hConnect); | ||
55 | + if(m_hRequest != NULL) InternetCloseHandle(m_hRequest); | ||
56 | + } | ||
57 | + | ||
58 | + /** | ||
59 | + * Altera o servidor. | ||
60 | + * @param server String com o nome do servidor. | ||
61 | + */ | ||
38 | void setServer(LPCSTR server){m_server = server;} | 62 | void setServer(LPCSTR server){m_server = server;} |
63 | + | ||
64 | + /** | ||
65 | + * Retorna o nome do servidor. | ||
66 | + * @return String com o nome do servidor. | ||
67 | + */ | ||
39 | LPCSTR getServer(){return m_server;} | 68 | LPCSTR getServer(){return m_server;} |
40 | 69 | ||
41 | - void conecta(); // conecta ao servidor | ||
42 | - // envia uma requisicao ao script atraves de POST/GET | 70 | + /** |
71 | + * Efetua a conexão com o servidor. | ||
72 | + */ | ||
73 | + void conecta(); | ||
74 | + | ||
75 | + /** | ||
76 | + * Envia uma requisição ao servidor. | ||
77 | + * @param metodo String com o tipo da requisição. (GET/POST) | ||
78 | + * @param script String com o nome do script que será acessado. | ||
79 | + * @param frmdata String com os dados que irão ser passados como parâmetro ao script. | ||
80 | + */ | ||
43 | void sendRequest(LPCTSTR metodo, LPCTSTR script, TCHAR frmdata[]); | 81 | void sendRequest(LPCTSTR metodo, LPCTSTR script, TCHAR frmdata[]); |
44 | - bool getResponse(char buff[], unsigned long sz); // recebe a resposta da execucao do script | ||
45 | 82 | ||
83 | + /** | ||
84 | + * Retorna a resposta gerada pelo servidor que recebeu a requisição. | ||
85 | + * @param buff Buffer para armazenar o resultado da requisição. | ||
86 | + * @param sz Tamanho do buffer. | ||
87 | + * @return bool Boleano com o estado da requisição. | ||
88 | + */ | ||
89 | + bool getResponse(char buff[], unsigned long sz); | ||
90 | + | ||
91 | + /** | ||
92 | + * Método estático que faz uma requisição ao servidor passado e | ||
93 | + * já retorna a resposta através do buffer "resposta". | ||
94 | + * @param servidor String com o nome do servidor. | ||
95 | + * @param script String com o nome do script. | ||
96 | + * @param post String com os parãmetros a serem passados ao script. | ||
97 | + * @param resposta Buffer de resposta da requisição. | ||
98 | + * @param sz Tamanho da resposta. | ||
99 | + */ | ||
46 | static void sendHtppPost(const string &servidor, const string &script, string &post, | 100 | static void sendHtppPost(const string &servidor, const string &script, string &post, |
47 | char resposta[], unsigned long sz); | 101 | char resposta[], unsigned long sz); |
48 | 102 |
srcacic/WinVNC/WinVNC/CACIC_Crypt.cpp
1 | -/* | ||
2 | - * Classe para criptografia de dados | 1 | +/** |
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe para criptografia de dados. | ||
3 | */ | 5 | */ |
4 | 6 | ||
5 | #include "CACIC_Crypt.h" | 7 | #include "CACIC_Crypt.h" |
@@ -9,7 +11,6 @@ const unsigned int CACIC_Crypt::SRCACIC_KEY_SIZE = 16; | @@ -9,7 +11,6 @@ const unsigned int CACIC_Crypt::SRCACIC_KEY_SIZE = 16; | ||
9 | const char CACIC_Crypt::SRCACIC_KEY[17] = "CacicBrasil"; | 11 | const char CACIC_Crypt::SRCACIC_KEY[17] = "CacicBrasil"; |
10 | const char CACIC_Crypt::SRCACIC_IV[17] = "abcdefghijklmnop"; | 12 | const char CACIC_Crypt::SRCACIC_IV[17] = "abcdefghijklmnop"; |
11 | 13 | ||
12 | -// Tira do base64 e desencripta. | ||
13 | string CACIC_Crypt::decodifica(const char* entrada) | 14 | string CACIC_Crypt::decodifica(const char* entrada) |
14 | { | 15 | { |
15 | string decode_base64; | 16 | string decode_base64; |
@@ -34,7 +35,6 @@ string CACIC_Crypt::decodifica(const char* entrada) | @@ -34,7 +35,6 @@ string CACIC_Crypt::decodifica(const char* entrada) | ||
34 | return out; | 35 | return out; |
35 | } | 36 | } |
36 | 37 | ||
37 | -// Encripta e coloca no base64. | ||
38 | string CACIC_Crypt::codifica(const char* entrada) | 38 | string CACIC_Crypt::codifica(const char* entrada) |
39 | { | 39 | { |
40 | unsigned int entrada_len = strlen(entrada); | 40 | unsigned int entrada_len = strlen(entrada); |
srcacic/WinVNC/WinVNC/CACIC_Crypt.h
1 | -/* | ||
2 | - * Classe para criptografia de dados | 1 | +/** |
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe para criptografia de dados. | ||
3 | */ | 5 | */ |
4 | 6 | ||
5 | #ifndef _CACIC_CRYPT_ | 7 | #ifndef _CACIC_CRYPT_ |
@@ -16,17 +18,37 @@ class CACIC_Crypt { | @@ -16,17 +18,37 @@ class CACIC_Crypt { | ||
16 | 18 | ||
17 | public: | 19 | public: |
18 | 20 | ||
21 | + /** | ||
22 | + * Remove da String de entrada os caracteres colocados pela URLEncode, | ||
23 | + * tira do Base64 e depois decodifica usando o Rijndael. | ||
24 | + * @param entrada String a ser decodificada. | ||
25 | + * @return string String decodificada. | ||
26 | + */ | ||
19 | static string decodifica(const char* entrada); | 27 | static string decodifica(const char* entrada); |
28 | + | ||
29 | + /** | ||
30 | + * Codifica a String passada com o algoritmo Rijndael e coloca no Base64. | ||
31 | + * @param entrada String a ser codificada. | ||
32 | + * @return string String codificada. | ||
33 | + */ | ||
20 | static string codifica(const char* entrada); | 34 | static string codifica(const char* entrada); |
21 | 35 | ||
22 | private: | 36 | private: |
23 | 37 | ||
24 | - static const unsigned int SRCACIC_BLOCK_SIZE; // tamanho padrao do bloco | ||
25 | - static const unsigned int SRCACIC_KEY_SIZE; // tamanho padrao da chave | ||
26 | - static const char SRCACIC_KEY[17]; // chave de en/dec | ||
27 | - static const char SRCACIC_IV[17]; // vetor de inicializacao | ||
28 | - | ||
29 | - virtual void ccrypt() = 0; // Truque para tornar a classe abstrata. | 38 | + /** Tamanho padrão do bloco. */ |
39 | + static const unsigned int SRCACIC_BLOCK_SIZE; | ||
40 | + /** Tamanho padrão da chave. */ | ||
41 | + static const unsigned int SRCACIC_KEY_SIZE; | ||
42 | + /** Chave de codificação. */ | ||
43 | + static const char SRCACIC_KEY[17]; | ||
44 | + /** Vetor de inicialização. */ | ||
45 | + static const char SRCACIC_IV[17]; | ||
46 | + | ||
47 | + /** | ||
48 | + * Este método virtual puro é um truque para que a classe | ||
49 | + * se torne abstrata e não possa ser instanciada. | ||
50 | + */ | ||
51 | + virtual void ccrypt() = 0; | ||
30 | }; | 52 | }; |
31 | 53 | ||
32 | #endif | 54 | #endif |
srcacic/WinVNC/WinVNC/CACIC_Exception.h
1 | +/** | ||
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe para lidar com as mensagens de erro. | ||
5 | + */ | ||
6 | + | ||
1 | #ifndef _CACIC_EXCEPTION_ | 7 | #ifndef _CACIC_EXCEPTION_ |
2 | #define _CACIC_EXCEPTION_ | 8 | #define _CACIC_EXCEPTION_ |
3 | 9 | ||
4 | #include <windows.h> | 10 | #include <windows.h> |
5 | 11 | ||
6 | -// exceção padrao do srCACIC | ||
7 | class SRCException { | 12 | class SRCException { |
13 | + | ||
8 | private: | 14 | private: |
15 | + | ||
16 | + /** Mensagem de erro. */ | ||
9 | string m_err; | 17 | string m_err; |
18 | + | ||
10 | public: | 19 | public: |
20 | + | ||
21 | + /** | ||
22 | + * Construtor da classe. | ||
23 | + * @param err String com a mensagem de erro. | ||
24 | + */ | ||
11 | SRCException(string err) { | 25 | SRCException(string err) { |
12 | m_err = err; | 26 | m_err = err; |
13 | } | 27 | } |
28 | + | ||
29 | + /** | ||
30 | + * Retorna a mensagem de erro armazenada. | ||
31 | + * @return string String com a mensagem de erro. | ||
32 | + */ | ||
14 | string getMessage() { | 33 | string getMessage() { |
15 | return m_err; | 34 | return m_err; |
16 | } | 35 | } |
36 | + | ||
17 | }; | 37 | }; |
18 | 38 | ||
19 | -#endif | ||
20 | \ No newline at end of file | 39 | \ No newline at end of file |
40 | +#endif |
srcacic/WinVNC/WinVNC/CACIC_Utils.cpp
1 | +/** | ||
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe com alguns métodos utilitários. | ||
5 | + */ | ||
6 | + | ||
1 | #include "CACIC_Utils.h" | 7 | #include "CACIC_Utils.h" |
2 | 8 | ||
3 | -// método bruto para ler | ||
4 | -// uma tag do arquivo xml de resposta | 9 | +const string CACIC_Utils::F_SANS_SERIF = "Microsoft Sans Serif"; |
10 | + | ||
5 | string CACIC_Utils::leTag(char xml[], char tagname[]) | 11 | string CACIC_Utils::leTag(char xml[], char tagname[]) |
6 | { | 12 | { |
7 | char* tag; | 13 | char* tag; |
@@ -28,8 +34,6 @@ string CACIC_Utils::leTag(char xml[], char tagname[]) | @@ -28,8 +34,6 @@ string CACIC_Utils::leTag(char xml[], char tagname[]) | ||
28 | return content; | 34 | return content; |
29 | } | 35 | } |
30 | 36 | ||
31 | -// troca os caracteres da string | ||
32 | -// origem ori_str new_str | ||
33 | void CACIC_Utils::replaceAll(string &str, string key, string newkey) | 37 | void CACIC_Utils::replaceAll(string &str, string key, string newkey) |
34 | { | 38 | { |
35 | int found = str.find(key, 0); | 39 | int found = str.find(key, 0); |
@@ -95,7 +99,6 @@ void CACIC_Utils::urlDecode(string &encoded) | @@ -95,7 +99,6 @@ void CACIC_Utils::urlDecode(string &encoded) | ||
95 | encoded.swap(buff.str()); | 99 | encoded.swap(buff.str()); |
96 | } | 100 | } |
97 | 101 | ||
98 | -// substitui alguns caracteres especiais antes da encriptacao | ||
99 | void CACIC_Utils::simpleUrlEncode(string &decoded) | 102 | void CACIC_Utils::simpleUrlEncode(string &decoded) |
100 | { | 103 | { |
101 | replaceAll(decoded, "+", "<MAIS>"); | 104 | replaceAll(decoded, "+", "<MAIS>"); |
@@ -145,7 +148,7 @@ void CACIC_Utils::changeFont(HWND dlgHandle, int dlgItem, int fontSize, string f | @@ -145,7 +148,7 @@ void CACIC_Utils::changeFont(HWND dlgHandle, int dlgItem, int fontSize, string f | ||
145 | LOGFONT lfFont; | 148 | LOGFONT lfFont; |
146 | 149 | ||
147 | memset(&lfFont, 0x00, sizeof(lfFont)); | 150 | memset(&lfFont, 0x00, sizeof(lfFont)); |
148 | - memcpy(lfFont.lfFaceName, fontName.data(), 16); | 151 | + memcpy(lfFont.lfFaceName, fontName.c_str(), fontName.size()); |
149 | 152 | ||
150 | lfFont.lfHeight = fontSize; | 153 | lfFont.lfHeight = fontSize; |
151 | lfFont.lfWeight = (fontIsBold == true) ? FW_BOLD : FW_NORMAL; | 154 | lfFont.lfWeight = (fontIsBold == true) ? FW_BOLD : FW_NORMAL; |
srcacic/WinVNC/WinVNC/CACIC_Utils.h
1 | +/** | ||
2 | + * Copyright (C) 2009 DATAPREV-ES | ||
3 | + * @author Vinicius Avellar Moreira | ||
4 | + * Classe com alguns métodos utilitários. | ||
5 | + */ | ||
6 | + | ||
1 | #ifndef _CACIC_UTILS_ | 7 | #ifndef _CACIC_UTILS_ |
2 | #define _CACIC_UTILS_ | 8 | #define _CACIC_UTILS_ |
3 | 9 | ||
@@ -12,26 +18,85 @@ class CACIC_Utils { | @@ -12,26 +18,85 @@ class CACIC_Utils { | ||
12 | 18 | ||
13 | public: | 19 | public: |
14 | 20 | ||
21 | + /** Fonte padrão usado nos diálogos. */ | ||
22 | + static const string F_SANS_SERIF; | ||
23 | + | ||
24 | + /** | ||
25 | + * Método bruto para ler uma tag específica de um arquivo xml. | ||
26 | + * @param xml String no formato de arquivo xml. | ||
27 | + * @param tagname String com o nome da tag a ser pesquisada. | ||
28 | + * @return String com o conteúdo da tag pesquisada. | ||
29 | + * @trows CACIC_Exception caso a tag não seja encontrada. | ||
30 | + */ | ||
15 | static string leTag(char xml[], char tagname[]); | 31 | static string leTag(char xml[], char tagname[]); |
16 | 32 | ||
33 | + /** | ||
34 | + * Troca caracteres específicos de uma string. | ||
35 | + * @param str String a ser modificada. | ||
36 | + * @param key String com o caractere ou conjunto de caracteres que serão substituídos. | ||
37 | + * @param newKey String com o caractere ou conjunto de caracteres que irão substituir. | ||
38 | + */ | ||
17 | static void replaceAll(string &str, string key, string newkey); | 39 | static void replaceAll(string &str, string key, string newkey); |
18 | 40 | ||
41 | + /** | ||
42 | + * Codifica a string, removendo os caracteres especiais por %código dos mesmos. | ||
43 | + * @param decoded String que será codificada. | ||
44 | + */ | ||
19 | static void urlEncode(string &decoded); | 45 | static void urlEncode(string &decoded); |
46 | + | ||
47 | + /** | ||
48 | + * Decodifica a string, retornando os códigos dos caracteres pelos próprios caracteres. | ||
49 | + * @param encoded String que será decodificada. | ||
50 | + */ | ||
20 | static void urlDecode(string &encoded); | 51 | static void urlDecode(string &encoded); |
21 | 52 | ||
53 | + /** | ||
54 | + * Mesma função do urlEncode, porém os caracteres serão substituídos | ||
55 | + * por tags específicas, e não pelo código. | ||
56 | + * @param entrada String que será codificada. | ||
57 | + */ | ||
22 | static void simpleUrlEncode(string &entrada); | 58 | static void simpleUrlEncode(string &entrada); |
59 | + | ||
60 | + /** | ||
61 | + * Faz o inverso do simpleUrlEncode, trocando as tags específicas pelos | ||
62 | + * respectivos caracteres. | ||
63 | + * @param entrada String que será codificada. | ||
64 | + */ | ||
23 | static void simpleUrlDecode(string &entrada); | 65 | static void simpleUrlDecode(string &entrada); |
24 | 66 | ||
67 | + /** | ||
68 | + * Transforma o byte em codigo ascii, retornando o char correspondente. | ||
69 | + * @param first Primeiro hexa do caractere. | ||
70 | + * @param second Segundo hexa do caractere. | ||
71 | + * @return Char correspondente ao código ascci encontrado. | ||
72 | + */ | ||
25 | static char hexToAscii(char first, char second); | 73 | static char hexToAscii(char first, char second); |
74 | + | ||
75 | + /** | ||
76 | + * Retira os espaços em branco do começo e fim da string. | ||
77 | + * @param str String a ser modificada. | ||
78 | + */ | ||
26 | static void trim(string &str); | 79 | static void trim(string &str); |
27 | 80 | ||
81 | + /** | ||
82 | + * Método para alterar a fonte de um determinado elemento de um diálogo. | ||
83 | + * @param dlgHandle Handler do diálogo. | ||
84 | + * @param dlgItem Item do diálogo que terá a fonte trocada. | ||
85 | + * @param fontSize Tamanho da fonte. | ||
86 | + * @param fontName Nome da fonte. | ||
87 | + * @param fontIsBold Define o peso da fonte: true = bold, false = normal. | ||
88 | + */ | ||
28 | static void changeFont(HWND dlgHandle, int dlgItem, | 89 | static void changeFont(HWND dlgHandle, int dlgItem, |
29 | int fontSize, string fontName, | 90 | int fontSize, string fontName, |
30 | bool fontIsBold = false); | 91 | bool fontIsBold = false); |
31 | 92 | ||
32 | private: | 93 | private: |
33 | 94 | ||
34 | - virtual void cutils() = 0; // Truque para tornar a classe abstrata. | 95 | + /** |
96 | + * Este método virtual puro é um truque para que a classe | ||
97 | + * se torne abstrata e não possa ser instanciada. | ||
98 | + */ | ||
99 | + virtual void cutils() = 0; | ||
35 | 100 | ||
36 | }; | 101 | }; |
37 | 102 |
srcacic/WinVNC/WinVNC/resource.h
@@ -144,10 +144,11 @@ | @@ -144,10 +144,11 @@ | ||
144 | #define IDC_ATENCAO_STATIC 1147 | 144 | #define IDC_ATENCAO_STATIC 1147 |
145 | #define IDC_ATENCAO 1147 | 145 | #define IDC_ATENCAO 1147 |
146 | #define IDC_SRCACIC_IMG 1148 | 146 | #define IDC_SRCACIC_IMG 1148 |
147 | -#define IDC_EDIT3 1150 | ||
148 | #define IDC_INFO_NOME 1152 | 147 | #define IDC_INFO_NOME 1152 |
149 | #define IDC_INFO_IP 1153 | 148 | #define IDC_INFO_IP 1153 |
150 | #define IDC_INFO_INICIO 1154 | 149 | #define IDC_INFO_INICIO 1154 |
150 | +#define IDC_STATIC_INFO_REF 1155 | ||
151 | +#define IDC_INFO_REFERENCIA 1156 | ||
151 | #define IDC_FINGER 9000 | 152 | #define IDC_FINGER 9000 |
152 | #define IDC_GAMMAGRAY 9001 | 153 | #define IDC_GAMMAGRAY 9001 |
153 | #define IDC_STATIC_SPLIT 9002 | 154 | #define IDC_STATIC_SPLIT 9002 |
@@ -229,7 +230,7 @@ | @@ -229,7 +230,7 @@ | ||
229 | #ifndef APSTUDIO_READONLY_SYMBOLS | 230 | #ifndef APSTUDIO_READONLY_SYMBOLS |
230 | #define _APS_NEXT_RESOURCE_VALUE 164 | 231 | #define _APS_NEXT_RESOURCE_VALUE 164 |
231 | #define _APS_NEXT_COMMAND_VALUE 40019 | 232 | #define _APS_NEXT_COMMAND_VALUE 40019 |
232 | -#define _APS_NEXT_CONTROL_VALUE 1155 | 233 | +#define _APS_NEXT_CONTROL_VALUE 1157 |
233 | #define _APS_NEXT_SYMED_VALUE 101 | 234 | #define _APS_NEXT_SYMED_VALUE 101 |
234 | #endif | 235 | #endif |
235 | #endif | 236 | #endif |
srcacic/WinVNC/WinVNC/supInfoDlg.cpp
@@ -89,8 +89,9 @@ BOOL CALLBACK supInfoDlg::supInfoDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | @@ -89,8 +89,9 @@ BOOL CALLBACK supInfoDlg::supInfoDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | ||
89 | SetDlgItemText(hwnd, IDC_INFO_NOME, (LPSTR) _this->m_nomeVisitante.data()); | 89 | SetDlgItemText(hwnd, IDC_INFO_NOME, (LPSTR) _this->m_nomeVisitante.data()); |
90 | SetDlgItemText(hwnd, IDC_INFO_IP, (LPSTR) _this->m_ip.data()); | 90 | SetDlgItemText(hwnd, IDC_INFO_IP, (LPSTR) _this->m_ip.data()); |
91 | SetDlgItemText(hwnd, IDC_INFO_INICIO, (LPSTR) _this->m_dataInicio.data()); | 91 | SetDlgItemText(hwnd, IDC_INFO_INICIO, (LPSTR) _this->m_dataInicio.data()); |
92 | + SetDlgItemText(hwnd, IDC_INFO_REFERENCIA, (LPSTR) _this->m_documentoReferencia.data()); | ||
92 | 93 | ||
93 | - changeFont(hwnd, IDC_ATENCAO_STATIC); | 94 | + CACIC_Utils::changeFont(hwnd, IDC_ATENCAO_STATIC, 16, CACIC_Utils::F_SANS_SERIF, true); |
94 | 95 | ||
95 | /*WINDOWPLACEMENT wndpl; | 96 | /*WINDOWPLACEMENT wndpl; |
96 | GetWindowPlacement(hwnd, &wndpl); | 97 | GetWindowPlacement(hwnd, &wndpl); |
@@ -149,24 +150,3 @@ BOOL CALLBACK supInfoDlg::supInfoDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | @@ -149,24 +150,3 @@ BOOL CALLBACK supInfoDlg::supInfoDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | ||
149 | 150 | ||
150 | return FALSE; | 151 | return FALSE; |
151 | } | 152 | } |
152 | - | ||
153 | -void supInfoDlg::changeFont(HWND hwndDlg, int dlgItem) | ||
154 | -{ | ||
155 | - HFONT hFont ; | ||
156 | - LOGFONT lfFont; | ||
157 | - | ||
158 | - memset(&lfFont, 0x00, sizeof(lfFont)); | ||
159 | - memcpy(lfFont.lfFaceName, TEXT("Microsoft Sans Serif"), 16); | ||
160 | - | ||
161 | - lfFont.lfHeight = 16; | ||
162 | - lfFont.lfWeight = FW_BOLD; | ||
163 | - lfFont.lfCharSet = ANSI_CHARSET; | ||
164 | - lfFont.lfOutPrecision = OUT_DEFAULT_PRECIS; | ||
165 | - lfFont.lfClipPrecision = CLIP_DEFAULT_PRECIS; | ||
166 | - lfFont.lfQuality = DEFAULT_QUALITY; | ||
167 | - | ||
168 | - // Create the font from the LOGFONT structure passed. | ||
169 | - hFont = CreateFontIndirect (&lfFont); | ||
170 | - | ||
171 | - SendMessage( GetDlgItem(hwndDlg, dlgItem), WM_SETFONT, (int)hFont, MAKELONG( TRUE, 0 ) ); | ||
172 | -} |
srcacic/WinVNC/WinVNC/supInfoDlg.h
@@ -10,6 +10,8 @@ | @@ -10,6 +10,8 @@ | ||
10 | #include <string> | 10 | #include <string> |
11 | using namespace std; | 11 | using namespace std; |
12 | 12 | ||
13 | +#include "CACIC_Utils.h" | ||
14 | + | ||
13 | #pragma once | 15 | #pragma once |
14 | 16 | ||
15 | class supInfoDlg { | 17 | class supInfoDlg { |
@@ -24,13 +26,13 @@ public: | @@ -24,13 +26,13 @@ public: | ||
24 | string m_nomeVisitante; | 26 | string m_nomeVisitante; |
25 | string m_ip; | 27 | string m_ip; |
26 | string m_dataInicio; | 28 | string m_dataInicio; |
29 | + string m_documentoReferencia; | ||
27 | 30 | ||
28 | private: | 31 | private: |
29 | HANDLE m_hInfoDlgThread; | 32 | HANDLE m_hInfoDlgThread; |
30 | 33 | ||
31 | static LRESULT CALLBACK supInfoDlg::showDialog(LPVOID lpParameter); | 34 | static LRESULT CALLBACK supInfoDlg::showDialog(LPVOID lpParameter); |
32 | static BOOL CALLBACK supInfoDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); | 35 | static BOOL CALLBACK supInfoDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); |
33 | - static void changeFont(HWND hwndDlg, int dlgItem); | ||
34 | }; | 36 | }; |
35 | 37 | ||
36 | #endif | 38 | #endif |
srcacic/WinVNC/WinVNC/vncPassDlg.cpp
@@ -8,22 +8,19 @@ vncPassDlg::vncPassDlg(vector<Dominio> &listaDominios) { | @@ -8,22 +8,19 @@ vncPassDlg::vncPassDlg(vector<Dominio> &listaDominios) { | ||
8 | m_listaDominios = listaDominios; | 8 | m_listaDominios = listaDominios; |
9 | m_authStat = vncPassDlg::ESPERANDO_AUTENTICACAO; | 9 | m_authStat = vncPassDlg::ESPERANDO_AUTENTICACAO; |
10 | 10 | ||
11 | - memset(m_usuario, 0, 32); | ||
12 | - memset(m_senha, 0, 32); | ||
13 | - memset(m_dominio, 0, 16); | 11 | + memset(m_usuario, 0, 33); |
12 | + memset(m_senha, 0, 33); | ||
13 | + memset(m_dominio, 0, 17); | ||
14 | } | 14 | } |
15 | 15 | ||
16 | vncPassDlg::~vncPassDlg() { | 16 | vncPassDlg::~vncPassDlg() { |
17 | - memset(m_usuario, 0, 32); | ||
18 | - memset(m_senha, 0, 32); | ||
19 | - memset(m_dominio, 0, 16); | 17 | + memset(m_usuario, 0, 33); |
18 | + memset(m_senha, 0, 33); | ||
19 | + memset(m_dominio, 0, 17); | ||
20 | } | 20 | } |
21 | 21 | ||
22 | -BOOL vncPassDlg::DoDialog(EAuthCode authStat, string msgInfo) | 22 | +BOOL vncPassDlg::DoDialog() |
23 | { | 23 | { |
24 | - m_authStat = authStat; | ||
25 | - m_msgInfo = msgInfo; | ||
26 | - | ||
27 | BOOL retVal; | 24 | BOOL retVal; |
28 | if (m_authStat == vncPassDlg::SEM_AUTENTICACAO) | 25 | if (m_authStat == vncPassDlg::SEM_AUTENTICACAO) |
29 | { | 26 | { |
@@ -71,9 +68,9 @@ BOOL CALLBACK vncPassDlg::vncAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | @@ -71,9 +68,9 @@ BOOL CALLBACK vncPassDlg::vncAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | ||
71 | 68 | ||
72 | vrsBkColor = CreateSolidBrush(RGB(238, 215, 184)); | 69 | vrsBkColor = CreateSolidBrush(RGB(238, 215, 184)); |
73 | 70 | ||
74 | - changeFont(hwnd, IDC_ATT_MSG); | 71 | + CACIC_Utils::changeFont(hwnd, IDC_ATT_MSG, 13, CACIC_Utils::F_SANS_SERIF, true); |
75 | 72 | ||
76 | - SendMessage (hwnd, EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG (8, 8)); | 73 | + //SendMessage (hwnd, EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG (8, 8)); |
77 | 74 | ||
78 | // Limitando o tamanho dos campos para 32 caracteres. | 75 | // Limitando o tamanho dos campos para 32 caracteres. |
79 | SendMessage(GetDlgItem(hwnd, IDC_USER_EDIT), EM_LIMITTEXT, WPARAM(32), 0); | 76 | SendMessage(GetDlgItem(hwnd, IDC_USER_EDIT), EM_LIMITTEXT, WPARAM(32), 0); |
@@ -101,7 +98,7 @@ BOOL CALLBACK vncPassDlg::vncAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | @@ -101,7 +98,7 @@ BOOL CALLBACK vncPassDlg::vncAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | ||
101 | SetDlgItemText(hwnd, IDC_USER_EDIT, _this->m_usuario); | 98 | SetDlgItemText(hwnd, IDC_USER_EDIT, _this->m_usuario); |
102 | SetDlgItemText(hwnd, IDC_PASS_EDIT, _this->m_senha); | 99 | SetDlgItemText(hwnd, IDC_PASS_EDIT, _this->m_senha); |
103 | 100 | ||
104 | - SetDlgItemText(hwnd, IDC_MSG, (LPSTR) "Falha na autenticação!"); | 101 | + SetDlgItemText(hwnd, IDC_MSG, (LPSTR) "Falha na Autenticação!"); |
105 | } | 102 | } |
106 | else if (_this->m_authStat == vncPassDlg::AUTENTICADO) | 103 | else if (_this->m_authStat == vncPassDlg::AUTENTICADO) |
107 | { | 104 | { |
@@ -142,15 +139,15 @@ BOOL CALLBACK vncPassDlg::vncAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | @@ -142,15 +139,15 @@ BOOL CALLBACK vncPassDlg::vncAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LP | ||
142 | HWND hDominios = GetDlgItem(hwnd, IDC_DOMAIN_CB); | 139 | HWND hDominios = GetDlgItem(hwnd, IDC_DOMAIN_CB); |
143 | _this->m_indiceDominio = SendMessage(hDominios, CB_GETCURSEL, 0, 0); | 140 | _this->m_indiceDominio = SendMessage(hDominios, CB_GETCURSEL, 0, 0); |
144 | 141 | ||
145 | - memset(_this->m_usuario, 0, 32); | ||
146 | - memset(_this->m_senha, 0, 32); | ||
147 | - memset(_this->m_dominio, 0, 16); | 142 | + memset(_this->m_usuario, 0, 33); |
143 | + memset(_this->m_senha, 0, 33); | ||
144 | + memset(_this->m_dominio, 0, 17); | ||
148 | 145 | ||
149 | GetDlgItemText(hwnd, IDC_USER_EDIT, _this->m_usuario, 32); | 146 | GetDlgItemText(hwnd, IDC_USER_EDIT, _this->m_usuario, 32); |
150 | GetDlgItemText(hwnd, IDC_PASS_EDIT, _this->m_senha, 32); | 147 | GetDlgItemText(hwnd, IDC_PASS_EDIT, _this->m_senha, 32); |
151 | strcpy(_this->m_dominio, _this->m_listaDominios.at(_this->m_indiceDominio).id.c_str()); | 148 | strcpy(_this->m_dominio, _this->m_listaDominios.at(_this->m_indiceDominio).id.c_str()); |
152 | 149 | ||
153 | - if (_this->m_usuario[0] == '\0' || _this->m_senha[0] == '\0' || _this->m_dominio[0] == '\0') | 150 | + if (_this->m_usuario[0] == 0 || _this->m_senha[0] == 0 || _this->m_dominio[0] == 0) |
154 | { | 151 | { |
155 | MessageBox(hwnd, "Os campos devem ser preenchidos!", "Erro!", MB_ICONERROR | MB_OK); | 152 | MessageBox(hwnd, "Os campos devem ser preenchidos!", "Erro!", MB_ICONERROR | MB_OK); |
156 | return FALSE; | 153 | return FALSE; |
@@ -228,7 +225,7 @@ BOOL CALLBACK vncPassDlg::vncNoAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, | @@ -228,7 +225,7 @@ BOOL CALLBACK vncPassDlg::vncNoAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, | ||
228 | 225 | ||
229 | vrsBkColor = CreateSolidBrush(RGB(238, 215, 184)); | 226 | vrsBkColor = CreateSolidBrush(RGB(238, 215, 184)); |
230 | 227 | ||
231 | - changeFont(hwnd, IDC_ATT_MSG); | 228 | + CACIC_Utils::changeFont(hwnd, IDC_ATT_MSG, 13, CACIC_Utils::F_SANS_SERIF, true); |
232 | 229 | ||
233 | SendMessage (hwnd, EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG (8, 8)); | 230 | SendMessage (hwnd, EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG (8, 8)); |
234 | 231 | ||
@@ -246,11 +243,11 @@ BOOL CALLBACK vncPassDlg::vncNoAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, | @@ -246,11 +243,11 @@ BOOL CALLBACK vncPassDlg::vncNoAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, | ||
246 | { | 243 | { |
247 | int ulen = GetWindowTextLength(GetDlgItem(hwnd, IDC_USER_EDIT)); | 244 | int ulen = GetWindowTextLength(GetDlgItem(hwnd, IDC_USER_EDIT)); |
248 | 245 | ||
249 | - memset(_this->m_usuario, '\0', 32); | 246 | + memset(_this->m_usuario, 0, 33); |
250 | 247 | ||
251 | GetDlgItemText(hwnd, IDC_USER_EDIT, _this->m_usuario, 32); | 248 | GetDlgItemText(hwnd, IDC_USER_EDIT, _this->m_usuario, 32); |
252 | 249 | ||
253 | - if (_this->m_usuario[0] == '\0') | 250 | + if (_this->m_usuario[0] == 0) |
254 | { | 251 | { |
255 | MessageBox(hwnd, "O campo deve ser preenchido.", "Erro!", MB_ICONERROR | MB_OK); | 252 | MessageBox(hwnd, "O campo deve ser preenchido.", "Erro!", MB_ICONERROR | MB_OK); |
256 | return FALSE; | 253 | return FALSE; |
@@ -297,24 +294,3 @@ BOOL CALLBACK vncPassDlg::vncNoAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, | @@ -297,24 +294,3 @@ BOOL CALLBACK vncPassDlg::vncNoAuthDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, | ||
297 | 294 | ||
298 | return FALSE; | 295 | return FALSE; |
299 | } | 296 | } |
300 | - | ||
301 | -void vncPassDlg::changeFont(HWND hwndDlg, int dlgItem) | ||
302 | -{ | ||
303 | - HFONT hFont ; | ||
304 | - LOGFONT lfFont; | ||
305 | - | ||
306 | - memset(&lfFont, 0x00, sizeof(lfFont)); | ||
307 | - memcpy(lfFont.lfFaceName, TEXT("Microsoft Sans Serif"), 24); | ||
308 | - | ||
309 | - lfFont.lfHeight = 13; | ||
310 | - lfFont.lfWeight = FW_BOLD; | ||
311 | - lfFont.lfCharSet = ANSI_CHARSET; | ||
312 | - lfFont.lfOutPrecision = OUT_DEFAULT_PRECIS; | ||
313 | - lfFont.lfClipPrecision = CLIP_DEFAULT_PRECIS; | ||
314 | - lfFont.lfQuality = DEFAULT_QUALITY; | ||
315 | - | ||
316 | - // Create the font from the LOGFONT structure passed. | ||
317 | - hFont = CreateFontIndirect (&lfFont); | ||
318 | - | ||
319 | - SendMessage( GetDlgItem(hwndDlg, dlgItem), WM_SETFONT, (int)hFont, MAKELONG( TRUE, 0 ) ); | ||
320 | -} |
srcacic/WinVNC/WinVNC/vncPassDlg.h
@@ -7,20 +7,29 @@ | @@ -7,20 +7,29 @@ | ||
7 | 7 | ||
8 | #include "stdhdrs.h" | 8 | #include "stdhdrs.h" |
9 | #include "resource.h" | 9 | #include "resource.h" |
10 | + | ||
10 | #include "vncPasswd.h" | 11 | #include "vncPasswd.h" |
12 | + | ||
11 | #include <vector> | 13 | #include <vector> |
12 | using namespace std; | 14 | using namespace std; |
13 | #include <string> | 15 | #include <string> |
14 | using namespace std; | 16 | using namespace std; |
15 | 17 | ||
18 | +#include "CACIC_Utils.h" | ||
19 | + | ||
16 | //extern int MAX_VNC_CLIENTS; | 20 | //extern int MAX_VNC_CLIENTS; |
17 | 21 | ||
18 | #define ATT_MSG "ATENÇÃO: Esta autenticação, que precede a abertura de sessão para suporte remoto, atribui ao usuário a total responsabilidade por todo e qualquer tipo de dano lógico à estação que porventura seja causado por acesso externo indevido." | 22 | #define ATT_MSG "ATENÇÃO: Esta autenticação, que precede a abertura de sessão para suporte remoto, atribui ao usuário a total responsabilidade por todo e qualquer tipo de dano lógico à estação que porventura seja causado por acesso externo indevido." |
19 | 23 | ||
20 | #pragma once | 24 | #pragma once |
21 | 25 | ||
22 | -// struct referente a um domínio | 26 | +/** |
27 | + * Struct referente a um domínio de autenticação. | ||
28 | + */ | ||
23 | struct Dominio { | 29 | struct Dominio { |
30 | + Dominio(string p_id, string p_nome) : id(p_id), nome(p_nome) {} | ||
31 | + Dominio() : id(""), nome("") {} | ||
32 | + | ||
24 | string id; | 33 | string id; |
25 | string nome; | 34 | string nome; |
26 | }; | 35 | }; |
@@ -36,22 +45,20 @@ public: | @@ -36,22 +45,20 @@ public: | ||
36 | vncPassDlg(vector<Dominio> &listaDominios); | 45 | vncPassDlg(vector<Dominio> &listaDominios); |
37 | virtual ~vncPassDlg(); | 46 | virtual ~vncPassDlg(); |
38 | 47 | ||
39 | - char m_usuario[32]; // nome de usuário | ||
40 | - char m_senha[32]; // senha de usuário | ||
41 | - char m_dominio[16]; // id do domínio selecionado | 48 | + char m_usuario[33]; // nome de usuário |
49 | + char m_senha[33]; // senha de usuário | ||
50 | + char m_dominio[17]; // id do domínio selecionado | ||
42 | 51 | ||
43 | vector<Dominio> m_listaDominios; | 52 | vector<Dominio> m_listaDominios; |
44 | 53 | ||
45 | EAuthCode m_authStat; | 54 | EAuthCode m_authStat; |
55 | + string m_msgInfo; | ||
46 | 56 | ||
47 | - BOOL DoDialog(EAuthCode authStat, string msgInfo); | 57 | + BOOL DoDialog(); |
48 | 58 | ||
49 | private: | 59 | private: |
50 | static BOOL CALLBACK vncAuthDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); | 60 | static BOOL CALLBACK vncAuthDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); |
51 | static BOOL CALLBACK vncNoAuthDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); | 61 | static BOOL CALLBACK vncNoAuthDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); |
52 | - static void changeFont(HWND hwndDlg, int dlgItem); | ||
53 | - | ||
54 | - string m_msgInfo; | ||
55 | 62 | ||
56 | UINT m_indiceDominio; // índice selecionado no combobox de domínios | 63 | UINT m_indiceDominio; // índice selecionado no combobox de domínios |
57 | }; | 64 | }; |
srcacic/WinVNC/WinVNC/vncclient.cpp
@@ -643,7 +643,8 @@ vncClientThread::InitAuthenticate() | @@ -643,7 +643,8 @@ vncClientThread::InitAuthenticate() | ||
643 | // verifica o técnico que está querendo logar e o adiciona na lista. | 643 | // verifica o técnico que está querendo logar e o adiciona na lista. |
644 | if (!CACIC_Auth::getInstance()->validaTecnico(nm_usuario_cli, te_senha_cli, | 644 | if (!CACIC_Auth::getInstance()->validaTecnico(nm_usuario_cli, te_senha_cli, |
645 | te_node_address_cli, te_documento_referencial, | 645 | te_node_address_cli, te_documento_referencial, |
646 | - te_motivo_conexao, te_so_cli, m_client->GetClientId())) | 646 | + te_motivo_conexao, te_so_cli, |
647 | + m_client->GetClientId(), m_socket->GetPeerName())) | ||
647 | { | 648 | { |
648 | auth_ok = FALSE; | 649 | auth_ok = FALSE; |
649 | } | 650 | } |
srcacic/WinVNC/WinVNC/winvnc.cpp
@@ -269,8 +269,8 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, | @@ -269,8 +269,8 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, | ||
269 | CACIC_Auth::getInstance()->setTempPath(cmdln[5]); | 269 | CACIC_Auth::getInstance()->setTempPath(cmdln[5]); |
270 | 270 | ||
271 | // Cria o arquivo temporário de travamento do CACIC | 271 | // Cria o arquivo temporário de travamento do CACIC |
272 | - string filePath = cmdln[5]; | ||
273 | - filePath += AGUARDE_FILENAME; | 272 | + string filePath = string(cmdln[5]); |
273 | + filePath += CACIC_Auth::AGUARDE_FILENAME; | ||
274 | pFile = fopen(filePath.data(), "w+"); | 274 | pFile = fopen(filePath.data(), "w+"); |
275 | vnclog.Print(LL_SRLOG, VNCLOG("Criando arquivo temporário: aguarde_SRCACIC.txt!\n")); | 275 | vnclog.Print(LL_SRLOG, VNCLOG("Criando arquivo temporário: aguarde_SRCACIC.txt!\n")); |
276 | 276 | ||
@@ -290,6 +290,10 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, | @@ -290,6 +290,10 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, | ||
290 | stringstream portBuffer(cmdln[6]); | 290 | stringstream portBuffer(cmdln[6]); |
291 | portBuffer >> porta; | 291 | portBuffer >> porta; |
292 | CACIC_Auth::getInstance()->setPorta(porta); | 292 | CACIC_Auth::getInstance()->setPorta(porta); |
293 | + UINT timeout; | ||
294 | + stringstream timeoutBuffer(cmdln[7]); | ||
295 | + timeoutBuffer >> timeout; | ||
296 | + CACIC_Auth::getInstance()->setTimeout(timeout); | ||
293 | 297 | ||
294 | if (CACIC_Auth::getInstance()->autentica()) { | 298 | if (CACIC_Auth::getInstance()->autentica()) { |
295 | iniciaTimer(); | 299 | iniciaTimer(); |
@@ -524,6 +528,7 @@ int WinVNCAppMain() | @@ -524,6 +528,7 @@ int WinVNCAppMain() | ||
524 | // Set the name and port number | 528 | // Set the name and port number |
525 | server.SetName(szAppName); | 529 | server.SetName(szAppName); |
526 | server.SetPort(CACIC_Auth::getInstance()->getPorta()); | 530 | server.SetPort(CACIC_Auth::getInstance()->getPorta()); |
531 | + server.SetAutoIdleDisconnectTimeout(CACIC_Auth::getInstance()->getTimeout()); | ||
527 | server.SockConnect(TRUE); | 532 | server.SockConnect(TRUE); |
528 | vnclog.Print(LL_STATE, VNCLOG("Servidor inicializado com sucesso!\n")); | 533 | vnclog.Print(LL_STATE, VNCLOG("Servidor inicializado com sucesso!\n")); |
529 | //uninstall driver before cont | 534 | //uninstall driver before cont |
@@ -531,10 +536,6 @@ int WinVNCAppMain() | @@ -531,10 +536,6 @@ int WinVNCAppMain() | ||
531 | // sf@2007 - Set Application0 special mode | 536 | // sf@2007 - Set Application0 special mode |
532 | server.RunningFromExternalService(fRunningFromExternalService); | 537 | server.RunningFromExternalService(fRunningFromExternalService); |
533 | 538 | ||
534 | - // colocando uma referência do servidor na classe CACIC_Auth | ||
535 | - // para facilitar o acesso e a mudança de propriedades posteriormente. | ||
536 | - //CACIC_Auth::getInstance()->m_server = &server; | ||
537 | - | ||
538 | // sf@2007 - New impersonation thread stuff for tray icon & menu | 539 | // sf@2007 - New impersonation thread stuff for tray icon & menu |
539 | // Subscribe to shutdown event | 540 | // Subscribe to shutdown event |
540 | hShutdownEvent = OpenEvent(EVENT_ALL_ACCESS, FALSE, "Global\\SessionEventUltra"); | 541 | hShutdownEvent = OpenEvent(EVENT_ALL_ACCESS, FALSE, "Global\\SessionEventUltra"); |
srcacic/WinVNC/WinVNC/winvnc.rc
@@ -95,35 +95,37 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIB | @@ -95,35 +95,37 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIB | ||
95 | CAPTION "Aceitar conexão?" | 95 | CAPTION "Aceitar conexão?" |
96 | FONT 8, "MS Shell Dlg", 0, 0, 0x0 | 96 | FONT 8, "MS Shell Dlg", 0, 0, 0x0 |
97 | BEGIN | 97 | BEGIN |
98 | - DEFPUSHBUTTON "&Aceitar",IDACCEPT,7,142,53,21 | 98 | + DEFPUSHBUTTON "&Aceitar",IDACCEPT,7,142,57,21 |
99 | PUSHBUTTON "&Rejeitar",IDREJECT,178,142,53,21 | 99 | PUSHBUTTON "&Rejeitar",IDREJECT,178,142,53,21 |
100 | CTEXT "srCACICsrv recebeu uma tentativa de conexão de:",IDC_STATIC_TEXT1,7,3,224,16,SS_CENTERIMAGE | 100 | CTEXT "srCACICsrv recebeu uma tentativa de conexão de:",IDC_STATIC_TEXT1,7,3,224,16,SS_CENTERIMAGE |
101 | LTEXT "<desconhecido>",IDC_ACCEPT_IP,69,28,162,10,SS_CENTERIMAGE | 101 | LTEXT "<desconhecido>",IDC_ACCEPT_IP,69,28,162,10,SS_CENTERIMAGE |
102 | CTEXT "Você deseja aceitar a conexão?",IDC_STATIC_TEXT,7,126,224,16,SS_CENTERIMAGE | 102 | CTEXT "Você deseja aceitar a conexão?",IDC_STATIC_TEXT,7,126,224,16,SS_CENTERIMAGE |
103 | - CTEXT "Rejeitar:",IDC_ACCEPT_TIMEOUT,60,142,118,21,SS_CENTERIMAGE | 103 | + CTEXT "Rejeitar:",IDC_ACCEPT_TIMEOUT,64,142,114,21,SS_CENTERIMAGE |
104 | LTEXT "<desconhecido>",IDC_UVIS_NAME,69,17,162,8 | 104 | LTEXT "<desconhecido>",IDC_UVIS_NAME,69,17,162,8 |
105 | EDITTEXT IDC_MOTIVO_SUPORTE,7,64,224,62,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | ES_WANTRETURN | 105 | EDITTEXT IDC_MOTIVO_SUPORTE,7,64,224,62,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | ES_WANTRETURN |
106 | LTEXT "Motivo do Suporte:",IDC_STATIC,7,54,62,8 | 106 | LTEXT "Motivo do Suporte:",IDC_STATIC,7,54,62,8 |
107 | LTEXT "Endereço IP:",IDC_STATIC,7,29,42,8 | 107 | LTEXT "Endereço IP:",IDC_STATIC,7,29,42,8 |
108 | - LTEXT "Nome do Técnico:",IDC_STATIC,7,17,53,8 | ||
109 | - LTEXT "Doc. Referência:",IDC_STATIC,7,41,55,8 | 108 | + LTEXT "Nome do Técnico:",IDC_STATIC,7,17,57,8 |
109 | + LTEXT "Doc. Referência:",IDC_STATIC,7,41,57,8 | ||
110 | EDITTEXT IDC_DOC_REF,68,41,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | 110 | EDITTEXT IDC_DOC_REF,68,41,163,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER |
111 | END | 111 | END |
112 | 112 | ||
113 | -IDD_INFO_DLG DIALOGEX 0, 0, 261, 51 | 113 | +IDD_INFO_DLG DIALOGEX 0, 0, 261, 62 |
114 | STYLE DS_SYSMODAL | DS_SETFONT | DS_FIXEDSYS | WS_POPUP | 114 | STYLE DS_SYSMODAL | DS_SETFONT | DS_FIXEDSYS | WS_POPUP |
115 | EXSTYLE WS_EX_PALETTEWINDOW | WS_EX_DLGMODALFRAME | WS_EX_NOPARENTNOTIFY | WS_EX_ACCEPTFILES | WS_EX_TRANSPARENT | WS_EX_MDICHILD | 115 | EXSTYLE WS_EX_PALETTEWINDOW | WS_EX_DLGMODALFRAME | WS_EX_NOPARENTNOTIFY | WS_EX_ACCEPTFILES | WS_EX_TRANSPARENT | WS_EX_MDICHILD |
116 | FONT 8, "MS Shell Dlg", 400, 0, 0x0 | 116 | FONT 8, "MS Shell Dlg", 400, 0, 0x0 |
117 | BEGIN | 117 | BEGIN |
118 | CTEXT "ESTAÇÃO DE TRABALHO EM SUPORTE REMOTO",IDC_AVISO_SUPORTE,54,12,205,11 | 118 | CTEXT "ESTAÇÃO DE TRABALHO EM SUPORTE REMOTO",IDC_AVISO_SUPORTE,54,12,205,11 |
119 | CTEXT "ATENÇÃO",IDC_ATENCAO_STATIC,54,2,205,10 | 119 | CTEXT "ATENÇÃO",IDC_ATENCAO_STATIC,54,2,205,10 |
120 | - CONTROL 163,IDC_SRCACIC_IMG,"Static",SS_BITMAP,0,2,51,47 | ||
121 | LTEXT "Nome:",IDC_STATIC,54,22,24,8 | 120 | LTEXT "Nome:",IDC_STATIC,54,22,24,8 |
122 | LTEXT "IP:",IDC_STATIC,54,32,10,8 | 121 | LTEXT "IP:",IDC_STATIC,54,32,10,8 |
123 | - LTEXT "Início:",IDC_STATIC,54,41,20,8 | 122 | + LTEXT "Início:",IDC_STATIC,54,42,20,8 |
124 | LTEXT "",IDC_INFO_NOME,78,23,181,8,0,WS_EX_TRANSPARENT | 123 | LTEXT "",IDC_INFO_NOME,78,23,181,8,0,WS_EX_TRANSPARENT |
125 | LTEXT "",IDC_INFO_IP,78,32,181,8,0,WS_EX_TRANSPARENT | 124 | LTEXT "",IDC_INFO_IP,78,32,181,8,0,WS_EX_TRANSPARENT |
126 | LTEXT "",IDC_INFO_INICIO,78,41,181,8,0,WS_EX_TRANSPARENT | 125 | LTEXT "",IDC_INFO_INICIO,78,41,181,8,0,WS_EX_TRANSPARENT |
126 | + LTEXT "Doc. Referência:",IDC_STATIC_INFO_REF,54,51,57,8 | ||
127 | + LTEXT "",IDC_INFO_REFERENCIA,111,51,148,8 | ||
128 | + CONTROL 163,IDC_SRCACIC_IMG,"Static",SS_BITMAP,0,0,54,62 | ||
127 | END | 129 | END |
128 | 130 | ||
129 | 131 | ||
@@ -189,7 +191,7 @@ BEGIN | @@ -189,7 +191,7 @@ BEGIN | ||
189 | BEGIN | 191 | BEGIN |
190 | LEFTMARGIN, 7 | 192 | LEFTMARGIN, 7 |
191 | RIGHTMARGIN, 231 | 193 | RIGHTMARGIN, 231 |
192 | - VERTGUIDE, 60 | 194 | + VERTGUIDE, 64 |
193 | VERTGUIDE, 69 | 195 | VERTGUIDE, 69 |
194 | VERTGUIDE, 178 | 196 | VERTGUIDE, 178 |
195 | TOPMARGIN, 7 | 197 | TOPMARGIN, 7 |
@@ -203,8 +205,9 @@ BEGIN | @@ -203,8 +205,9 @@ BEGIN | ||
203 | BEGIN | 205 | BEGIN |
204 | VERTGUIDE, 54 | 206 | VERTGUIDE, 54 |
205 | VERTGUIDE, 78 | 207 | VERTGUIDE, 78 |
208 | + VERTGUIDE, 111 | ||
206 | VERTGUIDE, 259 | 209 | VERTGUIDE, 259 |
207 | - BOTTOMMARGIN, 49 | 210 | + BOTTOMMARGIN, 60 |
208 | HORZGUIDE, 2 | 211 | HORZGUIDE, 2 |
209 | HORZGUIDE, 10 | 212 | HORZGUIDE, 10 |
210 | HORZGUIDE, 49 | 213 | HORZGUIDE, 49 |
@@ -219,8 +222,8 @@ END | @@ -219,8 +222,8 @@ END | ||
219 | // | 222 | // |
220 | 223 | ||
221 | VS_VERSION_INFO VERSIONINFO | 224 | VS_VERSION_INFO VERSIONINFO |
222 | - FILEVERSION 2,5,0,800 | ||
223 | - PRODUCTVERSION 2,5,0,800 | 225 | + FILEVERSION 2,5,0,804 |
226 | + PRODUCTVERSION 2,5,0,804 | ||
224 | FILEFLAGSMASK 0x37L | 227 | FILEFLAGSMASK 0x37L |
225 | #ifdef _DEBUG | 228 | #ifdef _DEBUG |
226 | FILEFLAGS 0x25L | 229 | FILEFLAGS 0x25L |
@@ -237,11 +240,11 @@ BEGIN | @@ -237,11 +240,11 @@ BEGIN | ||
237 | BEGIN | 240 | BEGIN |
238 | VALUE "CompanyName", "Dataprev - Unidade Regional Espírito Santo" | 241 | VALUE "CompanyName", "Dataprev - Unidade Regional Espírito Santo" |
239 | VALUE "FileDescription", "Módulo Suporte Remoto Seguro do Sistema CACIC" | 242 | VALUE "FileDescription", "Módulo Suporte Remoto Seguro do Sistema CACIC" |
240 | - VALUE "FileVersion", "2, 5, 0, 800" | 243 | + VALUE "FileVersion", "2, 5, 0, 804" |
241 | VALUE "InternalName", "srCACICsrv" | 244 | VALUE "InternalName", "srCACICsrv" |
242 | VALUE "LegalCopyright", "Copyright © 2008 DATAPREV" | 245 | VALUE "LegalCopyright", "Copyright © 2008 DATAPREV" |
243 | VALUE "LegalTrademarks", "srCACIC" | 246 | VALUE "LegalTrademarks", "srCACIC" |
244 | - VALUE "ProductVersion", "2, 5, 0, 800" | 247 | + VALUE "ProductVersion", "2, 5, 0, 804" |
245 | END | 248 | END |
246 | END | 249 | END |
247 | BLOCK "VarFileInfo" | 250 | BLOCK "VarFileInfo" |
@@ -390,7 +393,7 @@ BEGIN | @@ -390,7 +393,7 @@ BEGIN | ||
390 | DEFPUSHBUTTON "OK",ID_POK,55,130,50,13 | 393 | DEFPUSHBUTTON "OK",ID_POK,55,130,50,13 |
391 | PUSHBUTTON "Cancelar",ID_PCANCELAR,117,130,50,13 | 394 | PUSHBUTTON "Cancelar",ID_PCANCELAR,117,130,50,13 |
392 | COMBOBOX IDC_DOMAIN_CB,84,59,83,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP | 395 | COMBOBOX IDC_DOMAIN_CB,84,59,83,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP |
393 | - CTEXT "v2.5.0.800",IDC_AUTHDLG_VERSION,187,145,36,8,SS_CENTERIMAGE,WS_EX_STATICEDGE | 396 | + CTEXT "v2.5.0.804",IDC_AUTHDLG_VERSION,187,145,36,8,SS_CENTERIMAGE,WS_EX_STATICEDGE |
394 | CTEXT "Por favor, preencha as informações solicitadas abaixo, para a autenticação de seu usuário.",IDC_AUTH_INFO,3,38,216,18 | 397 | CTEXT "Por favor, preencha as informações solicitadas abaixo, para a autenticação de seu usuário.",IDC_AUTH_INFO,3,38,216,18 |
395 | EDITTEXT IDC_MSG,3,111,216,17,ES_CENTER | ES_MULTILINE | ES_READONLY | NOT WS_BORDER | 398 | EDITTEXT IDC_MSG,3,111,216,17,ES_CENTER | ES_MULTILINE | ES_READONLY | NOT WS_BORDER |
396 | CTEXT "ATENÇÃO: Esta autenticação, que precede a abertura de sessão para suporte remoto, atribui ao usuário a total responsabilidade por todo e qualquer tipo de dano lógico à estação que porventura seja causado por acesso externo indevido.",IDC_ATT_MSG,3,3,216,33 | 399 | CTEXT "ATENÇÃO: Esta autenticação, que precede a abertura de sessão para suporte remoto, atribui ao usuário a total responsabilidade por todo e qualquer tipo de dano lógico à estação que porventura seja causado por acesso externo indevido.",IDC_ATT_MSG,3,3,216,33 |
@@ -406,7 +409,7 @@ BEGIN | @@ -406,7 +409,7 @@ BEGIN | ||
406 | EDITTEXT IDC_USER_EDIT,69,58,83,12,ES_AUTOHSCROLL | 409 | EDITTEXT IDC_USER_EDIT,69,58,83,12,ES_AUTOHSCROLL |
407 | DEFPUSHBUTTON "OK",ID_POK,45,76,45,13 | 410 | DEFPUSHBUTTON "OK",ID_POK,45,76,45,13 |
408 | PUSHBUTTON "Cancelar",ID_PCANCELAR,102,76,45,13 | 411 | PUSHBUTTON "Cancelar",ID_PCANCELAR,102,76,45,13 |
409 | - CTEXT "v2.5.0.800",IDC_AUTHDLG_VERSION,159,90,36,8,SS_CENTERIMAGE,WS_EX_STATICEDGE | 412 | + CTEXT "v2.5.0.804",IDC_AUTHDLG_VERSION,159,90,36,8,SS_CENTERIMAGE,WS_EX_STATICEDGE |
410 | CTEXT "Por favor, digite seu nome no campo abaixo.",IDC_AUTH_INFO,3,46,188,10 | 413 | CTEXT "Por favor, digite seu nome no campo abaixo.",IDC_AUTH_INFO,3,46,188,10 |
411 | CTEXT "ATENÇÃO: Esta autenticação, que precede a abertura de sessão para suporte remoto, atribui ao usuário a total responsabilidade por todo e qualquer tipo de dano lógico à estação que porventura seja causado por acesso externo indevido.",IDC_ATT_MSG,3,3,188,40 | 414 | CTEXT "ATENÇÃO: Esta autenticação, que precede a abertura de sessão para suporte remoto, atribui ao usuário a total responsabilidade por todo e qualquer tipo de dano lógico à estação que porventura seja causado por acesso externo indevido.",IDC_ATT_MSG,3,3,188,40 |
412 | END | 415 | END |