Commit 97ccf2f87b40bad414d15cfaa41618778332ac94
Exists in
master
and in
3 other branches
Refactoring ssl methods to use a more modular structure.
Merge branch 'develop' into network_module
Showing
24 changed files
with
562 additions
and
492 deletions
Show diff stats
Makefile.in
locale/pt_BR.po
... | ... | @@ -5,7 +5,7 @@ msgid "" |
5 | 5 | msgstr "" |
6 | 6 | "Project-Id-Version: pw3270 5.0\n" |
7 | 7 | "Report-Msgid-Bugs-To: \n" |
8 | -"POT-Creation-Date: 2020-07-27 18:09-0300\n" | |
8 | +"POT-Creation-Date: 2020-07-31 13:59-0300\n" | |
9 | 9 | "PO-Revision-Date: 2020-07-27 18:12-0300\n" |
10 | 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" |
11 | 11 | "Language-Team: Português <>\n" |
... | ... | @@ -30,7 +30,7 @@ msgstr "%dx%d é negativa ou zero" |
30 | 30 | msgid "%dx%d screen size is bigger than the maximum size" |
31 | 31 | msgstr "Tela %dx%d é maior que o tamanho máximo" |
32 | 32 | |
33 | -#: src/core/iocalls.c:554 src/core/iocalls.c:571 src/core/linux/connect.c:80 | |
33 | +#: src/core/iocalls.c:508 src/core/iocalls.c:525 | |
34 | 34 | #, c-format |
35 | 35 | msgid "%s" |
36 | 36 | msgstr "%s" |
... | ... | @@ -62,7 +62,7 @@ msgstr "" |
62 | 62 | "%s\n" |
63 | 63 | "O erro windows foi \"%s\" (%u)" |
64 | 64 | |
65 | -#: src/core/linux/connect.c:86 | |
65 | +#: src/core/windows/connect.c:86 | |
66 | 66 | #, c-format |
67 | 67 | msgid "%s (rc=%d)" |
68 | 68 | msgstr "%s (rc=%d)" |
... | ... | @@ -101,7 +101,7 @@ msgstr "%s: Tabulação vertical não é suportada" |
101 | 101 | msgid "3270-style backspace" |
102 | 102 | msgstr "Backspace no estilo 3270" |
103 | 103 | |
104 | -#: src/ssl/state.c:278 | |
104 | +#: src/ssl/state.c:279 | |
105 | 105 | msgid "" |
106 | 106 | "A CA certificate is invalid. Either it is not a CA or its extensions are not " |
107 | 107 | "consistent with the supplied purpose." |
... | ... | @@ -145,7 +145,7 @@ msgstr "" |
145 | 145 | "Um erro ocorreu na transferência de arquivos, pode ser um erro nos dados " |
146 | 146 | "sendo transferidos ou um erro de sistema não identificado." |
147 | 147 | |
148 | -#: src/ssl/state.c:226 | |
148 | +#: src/ssl/state.c:227 | |
149 | 149 | msgid "An error occurred trying to allocate memory. This should never happen." |
150 | 150 | msgstr "" |
151 | 151 | "Ocorreu um erro ao tentar alocar memória. Isso nunca deveria acontecer." |
... | ... | @@ -158,11 +158,11 @@ msgstr "Um parametro de ENVIO/RECEBIMENTO inválido foi enviado para o host." |
158 | 158 | msgid "Attn" |
159 | 159 | msgstr "Attn" |
160 | 160 | |
161 | -#: src/ssl/state.c:333 | |
161 | +#: src/ssl/state.c:334 | |
162 | 162 | msgid "Authority and issuer serial number mismatch" |
163 | 163 | msgstr "Divergência nos números de série da autoridade e emissor " |
164 | 164 | |
165 | -#: src/ssl/state.c:325 | |
165 | +#: src/ssl/state.c:326 | |
166 | 166 | msgid "Authority and subject key identifier mismatch" |
167 | 167 | msgstr "Authority and subject key identifier mismatch" |
168 | 168 | |
... | ... | @@ -204,6 +204,10 @@ msgstr "Back space" |
204 | 204 | msgid "Backspaces the cursor until it hits the front of a word" |
205 | 205 | msgstr "Volta o cursor até que atinga o início de uma palavra" |
206 | 206 | |
207 | +#: src/core/windows/connect.c:137 | |
208 | +msgid "Bad winsock version" | |
209 | +msgstr "Versão winsock inválida" | |
210 | + | |
207 | 211 | #: src/core/toggles/table.c:265 |
208 | 212 | msgid "Beep on errors" |
209 | 213 | msgstr "Emitir som nos erros" |
... | ... | @@ -224,7 +228,7 @@ msgstr "Negrito" |
224 | 228 | msgid "Break" |
225 | 229 | msgstr "Break" |
226 | 230 | |
227 | -#: src/core/telnet.c:1652 | |
231 | +#: src/core/telnet.c:1667 | |
228 | 232 | msgid "Broken pipe" |
229 | 233 | msgstr "Conexão interrompida" |
230 | 234 | |
... | ... | @@ -244,16 +248,16 @@ msgstr "Disco CMS apenas para leitura, transferência cancelada" |
244 | 248 | msgid "CMS file not found: file transfer canceled" |
245 | 249 | msgstr "Arquivo CMS não encontrado, transferência cancelada" |
246 | 250 | |
247 | -#: src/ssl/state.c:149 | |
251 | +#: src/ssl/state.c:150 | |
248 | 252 | msgid "CRL signature failure" |
249 | 253 | msgstr "Erro na assinatura CRL" |
250 | 254 | |
251 | -#: src/core/toggles/init.c:89 src/core/linux/connect.c:209 | |
255 | +#: src/core/toggles/init.c:89 src/core/windows/connect.c:313 | |
252 | 256 | #, c-format |
253 | 257 | msgid "Can't %s network keep-alive" |
254 | 258 | msgstr "Não foi possível %s opção \"keep-alive\"" |
255 | 259 | |
256 | -#: src/ssl/linux/ldap.c:157 | |
260 | +#: src/ssl/windows/ldap.c:181 | |
257 | 261 | msgid "Can't bind to LDAP server" |
258 | 262 | msgstr "Não foi possível conectar ao servidor LDAP" |
259 | 263 | |
... | ... | @@ -262,21 +266,32 @@ msgstr "Não foi possível conectar ao servidor LDAP" |
262 | 266 | msgid "Can't connect to %s:%s" |
263 | 267 | msgstr "Não foi possível conectar a %s:%s" |
264 | 268 | |
265 | -#: src/ssl/linux/getcrl.c:97 | |
266 | -msgid "Can't decode CRL" | |
267 | -msgstr "Não foi possível decodificar arquivo CRL" | |
269 | +#: src/core/windows/http.c:113 | |
270 | +msgid "Can't connect to HTTP server." | |
271 | +msgstr "Não foi possível conectar ao servidor HTTP" | |
272 | + | |
273 | +#: src/core/windows/http.c:125 | |
274 | +msgid "Can't create HTTP request." | |
275 | +msgstr "Não foi possível criar requisição HTTP" | |
268 | 276 | |
269 | -#: src/ssl/linux/url.c:131 src/ssl/linux/ldap.c:229 | |
277 | +#: src/ssl/windows/curl.c:264 src/ssl/windows/http.c:80 | |
278 | +#: src/ssl/windows/ldap.c:259 | |
270 | 279 | msgid "Can't decode certificate revocation list" |
271 | 280 | msgstr "Não foi possível decodificar a lista de certificados revogados" |
272 | 281 | |
273 | -#: src/ssl/linux/url.c:109 | |
274 | -msgid "Can't decode certificate revocation list got from LDAP server" | |
282 | +#: src/ssl/windows/curl.c:370 | |
283 | +#, fuzzy | |
284 | +msgid "Can't decode certificate revocation list got from LDAP Search" | |
275 | 285 | msgstr "" |
276 | 286 | "Não foi possível decodificar a lista de certificados revogados fornecida " |
277 | 287 | "pelo servidor LDAP" |
278 | 288 | |
279 | -#: src/ssl/linux/ldap.c:193 src/ssl/linux/ldap.c:205 | |
289 | +#: src/ssl/windows/curl.c:334 | |
290 | +msgid "Can't find certificate revocation list in LDAP response" | |
291 | +msgstr "" | |
292 | +"Não foi possível encontrar a lista de certificados revogados na pesquisa LDAP" | |
293 | + | |
294 | +#: src/ssl/windows/ldap.c:223 src/ssl/windows/ldap.c:235 | |
280 | 295 | msgid "Can't get LDAP attribute" |
281 | 296 | msgstr "Não foi possível obter o atributo LDAP" |
282 | 297 | |
... | ... | @@ -284,11 +299,11 @@ msgstr "Não foi possível obter o atributo LDAP" |
284 | 299 | msgid "Can't get file size" |
285 | 300 | msgstr "Não foi possível obter o tamanho do arquivo" |
286 | 301 | |
287 | -#: src/ssl/linux/ldap.c:135 | |
302 | +#: src/ssl/windows/ldap.c:152 | |
288 | 303 | msgid "Can't initialize LDAP" |
289 | 304 | msgstr "Erro ao inicializar LDAP" |
290 | 305 | |
291 | -#: src/core/linux/curl.c:181 | |
306 | +#: src/ssl/windows/curl.c:190 | |
292 | 307 | msgid "Can't initialize curl operation" |
293 | 308 | msgstr "Erro ao inicializar operação CURL" |
294 | 309 | |
... | ... | @@ -296,31 +311,59 @@ msgstr "Erro ao inicializar operação CURL" |
296 | 311 | msgid "Can't load" |
297 | 312 | msgstr "Não foi possível carregar" |
298 | 313 | |
299 | -#: src/ssl/linux/getcrl.c:57 src/ssl/linux/getcrl.c:79 | |
300 | -msgid "Can't open CRL File" | |
301 | -msgstr "Não foi possível abrir arquivo CRL" | |
314 | +#: src/ssl/windows/init.c:162 | |
315 | +#, c-format | |
316 | +msgid "Can't load \"%s\": %s" | |
317 | +msgstr "Não foi possível carregar \"%s\": %s" | |
318 | + | |
319 | +#: src/ssl/windows/init.c:121 | |
320 | +#, c-format | |
321 | +msgid "Can't open \"%s\" (The Windows error code was %ld)\n" | |
322 | +msgstr "Não foi possível abrir \"%s\" (O código de erro windows foi %ld)\n" | |
323 | + | |
324 | +#: src/ssl/windows/init.c:134 | |
325 | +#, c-format | |
326 | +msgid "Can't open \"%s\": %s" | |
327 | +msgstr "Não foi possível abrir %s: %s" | |
328 | + | |
329 | +#: src/core/windows/http.c:101 | |
330 | +msgid "Can't open HTTP session" | |
331 | +msgstr "Não foi possível abrir sessão HTTP" | |
302 | 332 | |
303 | 333 | #: src/core/session.c:192 |
304 | 334 | msgid "Can't print" |
305 | 335 | msgstr "Não é possível imprimir" |
306 | 336 | |
337 | +#: src/ssl/windows/init.c:149 | |
338 | +#, c-format | |
339 | +msgid "Can't read \"%s\": %s" | |
340 | +msgstr "Não foi possível ler \"%s\": %s" | |
341 | + | |
342 | +#: src/core/windows/http.c:180 | |
343 | +msgid "Can't read HTTP response size." | |
344 | +msgstr "Não posso obter tamanho da resposta HTTP" | |
345 | + | |
307 | 346 | #: src/core/session.c:199 |
308 | 347 | msgid "Can't save" |
309 | 348 | msgstr "Não é possível salvar" |
310 | 349 | |
311 | -#: src/ssl/linux/ldap.c:182 | |
350 | +#: src/ssl/windows/ldap.c:211 | |
312 | 351 | msgid "Can't search LDAP server" |
313 | 352 | msgstr "Não foi possível conectar ao servidor LDAP" |
314 | 353 | |
315 | -#: src/ssl/linux/ldap.c:146 | |
354 | +#: src/core/windows/http.c:139 | |
355 | +msgid "Can't send HTTP request." | |
356 | +msgstr "Não posso enviar requisição HTTP" | |
357 | + | |
358 | +#: src/ssl/windows/ldap.c:166 | |
316 | 359 | msgid "Can't set LDAP protocol version" |
317 | 360 | msgstr "Não é possível setar a versão do protocolo LDAP" |
318 | 361 | |
319 | -#: src/core/iocalls.c:570 | |
362 | +#: src/core/iocalls.c:524 | |
320 | 363 | msgid "Can't set socket to blocking mode." |
321 | 364 | msgstr "Não foi possível mudar o socket para o modo blocante." |
322 | 365 | |
323 | -#: src/core/iocalls.c:570 | |
366 | +#: src/core/iocalls.c:524 | |
324 | 367 | msgid "Can't set socket to non blocking mode" |
325 | 368 | msgstr "Não foi possível setar o socket para o modo não blocante." |
326 | 369 | |
... | ... | @@ -328,6 +371,11 @@ msgstr "Não foi possível setar o socket para o modo não blocante." |
328 | 371 | msgid "Can't start file transfer." |
329 | 372 | msgstr "Não foi possível iniciar transferência de arquivo." |
330 | 373 | |
374 | +#: src/core/windows/connect.c:138 | |
375 | +#, c-format | |
376 | +msgid "Can't use winsock version %d.%d" | |
377 | +msgstr "Não posso usar versão winsock %d.%d" | |
378 | + | |
331 | 379 | #: src/ssl/crl.c:167 |
332 | 380 | msgid "Can't verify" |
333 | 381 | msgstr "Não foi possível verificar" |
... | ... | @@ -340,7 +388,7 @@ msgstr "Não foi possível verificar" |
340 | 388 | msgid "Cancelled by user" |
341 | 389 | msgstr "Cancelado pelo usuário" |
342 | 390 | |
343 | -#: src/core/telnet.c:1073 | |
391 | +#: src/core/telnet.c:1088 | |
344 | 392 | msgid "Cannot connect to specified LU" |
345 | 393 | msgstr "Não foi possível conectar na LU pedida" |
346 | 394 | |
... | ... | @@ -350,10 +398,22 @@ msgstr "" |
350 | 398 | "Não foi possível criar uma nova estrutura de controle SSL para a conexão " |
351 | 399 | "atual." |
352 | 400 | |
353 | -#: src/ssl/linux/init.c:91 | |
401 | +#: src/ssl/windows/init.c:91 | |
354 | 402 | msgid "Cant initialize the SSL context." |
355 | 403 | msgstr "Erro ao inicializar contexto de segurança" |
356 | 404 | |
405 | +#: src/ssl/windows/init.c:157 | |
406 | +msgid "Cant load custom certificate file." | |
407 | +msgstr "Não foi possível ler arquivo de certificado personalizado" | |
408 | + | |
409 | +#: src/ssl/windows/init.c:116 | |
410 | +msgid "Cant open custom certificate directory." | |
411 | +msgstr "Não foi possível abrir o diretório de certificados personalizados" | |
412 | + | |
413 | +#: src/ssl/windows/init.c:144 | |
414 | +msgid "Cant read custom certificate file." | |
415 | +msgstr "Não foi possível ler certificado personalizado" | |
416 | + | |
357 | 417 | #: src/ssl/negotiate.c:247 |
358 | 418 | msgid "" |
359 | 419 | "Cant set the file descriptor for the input/output facility for the TLS/SSL " |
... | ... | @@ -362,27 +422,37 @@ msgstr "" |
362 | 422 | "Não foi possível definir o descritor de arquivo para a conexão TLS/SSL " |
363 | 423 | "(encriptada)." |
364 | 424 | |
365 | -#: src/ssl/state.c:165 | |
425 | +#: src/ssl/windows/http.c:58 | |
426 | +#, fuzzy | |
427 | +msgid "Can´t get CRL" | |
428 | +msgstr "Não foi possível decodificar arquivo CRL" | |
429 | + | |
430 | +#: src/ssl/windows/getcrl.c:58 src/ssl/windows/getcrl.c:76 | |
431 | +#, fuzzy | |
432 | +msgid "Can´t open CRL file" | |
433 | +msgstr "Não foi possível abrir arquivo CRL" | |
434 | + | |
435 | +#: src/ssl/state.c:166 | |
366 | 436 | msgid "Certificate has expired" |
367 | 437 | msgstr "O certificado expirou" |
368 | 438 | |
369 | -#: src/ssl/state.c:157 | |
439 | +#: src/ssl/state.c:158 | |
370 | 440 | msgid "Certificate is not yet valid" |
371 | 441 | msgstr "O certificado ainda não é válido" |
372 | 442 | |
373 | -#: src/ssl/state.c:301 | |
443 | +#: src/ssl/state.c:302 | |
374 | 444 | msgid "Certificate not trusted" |
375 | 445 | msgstr "O certificado não é confiável" |
376 | 446 | |
377 | -#: src/ssl/state.c:309 | |
447 | +#: src/ssl/state.c:310 | |
378 | 448 | msgid "Certificate rejected" |
379 | 449 | msgstr "Certificado rejeitado" |
380 | 450 | |
381 | -#: src/ssl/state.c:269 | |
451 | +#: src/ssl/state.c:270 | |
382 | 452 | msgid "Certificate revoked" |
383 | 453 | msgstr "Certificado revogado" |
384 | 454 | |
385 | -#: src/ssl/state.c:141 | |
455 | +#: src/ssl/state.c:142 | |
386 | 456 | msgid "Certificate signature failure" |
387 | 457 | msgstr "Falha na assinatura do certificado" |
388 | 458 | |
... | ... | @@ -410,12 +480,12 @@ msgstr "Comando incompleto, transferência cancelada" |
410 | 480 | msgid "Connect on startup" |
411 | 481 | msgstr "Conectar ao iniciar" |
412 | 482 | |
413 | -#: src/core/iocalls.c:538 src/core/linux/connect.c:195 | |
414 | -#: src/core/linux/connect.c:213 | |
483 | +#: src/core/iocalls.c:492 src/core/windows/connect.c:317 | |
484 | +#: src/core/windows/connect.c:333 | |
415 | 485 | msgid "Connection error" |
416 | 486 | msgstr "Erro de conexão" |
417 | 487 | |
418 | -#: src/core/telnet.c:1656 | |
488 | +#: src/core/telnet.c:1671 | |
419 | 489 | msgid "Connection reset by peer" |
420 | 490 | msgstr "Conexão foi cancelada pelo servidor" |
421 | 491 | |
... | ... | @@ -423,7 +493,7 @@ msgstr "Conexão foi cancelada pelo servidor" |
423 | 493 | msgid "Connection state" |
424 | 494 | msgstr "Estado da conexão" |
425 | 495 | |
426 | -#: src/core/session.c:253 src/ssl/notify.c:152 | |
496 | +#: src/ssl/notify.c:154 | |
427 | 497 | msgid "Continue" |
428 | 498 | msgstr "Continuar" |
429 | 499 | |
... | ... | @@ -501,7 +571,7 @@ msgstr "Apaga palavra" |
501 | 571 | msgid "Description of the current security state" |
502 | 572 | msgstr "Descrição do estado de segurança atual" |
503 | 573 | |
504 | -#: src/core/telnet.c:1327 | |
574 | +#: src/core/telnet.c:1342 | |
505 | 575 | msgid "Device type rejected" |
506 | 576 | msgstr "Tipo de dispositivo rejeitado" |
507 | 577 | |
... | ... | @@ -529,10 +599,14 @@ msgstr "Descer" |
529 | 599 | msgid "Dup" |
530 | 600 | msgstr "Dup" |
531 | 601 | |
532 | -#: src/core/telnet.c:865 | |
602 | +#: src/core/telnet.c:880 | |
533 | 603 | msgid "EOR received when not in 3270 mode, ignored." |
534 | 604 | msgstr "EOR recebido fora do modo 3270, ignorado." |
535 | 605 | |
606 | +#: src/core/windows/http.c:164 | |
607 | +msgid "Empty response from HTTP server." | |
608 | +msgstr "Recebi resposta vazia do servidor HTTP" | |
609 | + | |
536 | 610 | #: src/core/toggles/table.c:305 |
537 | 611 | msgid "Enable network in/out trace" |
538 | 612 | msgstr "Habilitar trace de entrada/saída de rede" |
... | ... | @@ -585,28 +659,34 @@ msgstr "Apagar campos" |
585 | 659 | msgid "Error" |
586 | 660 | msgstr "Erro" |
587 | 661 | |
588 | -#: src/core/ft/ft_dft.c:454 src/core/ft/ft_cut.c:423 | |
662 | +#: src/core/ft/ft_cut.c:423 src/core/ft/ft_dft.c:454 | |
589 | 663 | #, c-format |
590 | 664 | msgid "Error \"%s\" reading from local file (rc=%d)" |
591 | 665 | msgstr "Erro \"%s\" lendo arquivo local (rc=%d)" |
592 | 666 | |
593 | -#: src/core/ft/ft_dft.c:332 src/core/ft/ft_cut.c:528 | |
667 | +#: src/core/ft/ft_cut.c:528 src/core/ft/ft_dft.c:332 | |
594 | 668 | #, c-format |
595 | 669 | msgid "Error \"%s\" writing to local file (rc=%d)" |
596 | 670 | msgstr "Erro \"%s\" gravando arquivo local (rc=%d)" |
597 | 671 | |
598 | -#: src/ssl/linux/url.c:69 | |
599 | -msgid "Error getting certificate revocation list" | |
600 | -msgstr "Erro ao obter a lista de certificados revogados" | |
601 | - | |
602 | 672 | #: src/core/ft/ftmessages.c:45 |
603 | 673 | msgid "Error in file transfer: file transfer canceled" |
604 | 674 | msgstr "Erro na transferência do arquivo, transferência cancelada" |
605 | 675 | |
676 | +#: src/ssl/windows/curl.c:189 src/ssl/windows/curl.c:227 | |
677 | +#: src/ssl/windows/curl.c:243 | |
678 | +#, fuzzy | |
679 | +msgid "Error loading certificate revocation list" | |
680 | +msgstr "Erro ao obter a lista de certificados revogados" | |
681 | + | |
606 | 682 | #: src/core/ft/ftmessages.c:87 |
607 | 683 | msgid "Error reading file from host: file transfer canceled" |
608 | 684 | msgstr "Erro ao ler arquivo do host: Transferência cancelada" |
609 | 685 | |
686 | +#: src/core/windows/http.c:151 | |
687 | +msgid "Error receiving HTTP response." | |
688 | +msgstr "Erro recebendo resposta HTTP" | |
689 | + | |
610 | 690 | #: src/core/ft/ftmessages.c:145 |
611 | 691 | msgid "Error while reading or writing to host disk: file transfer canceled" |
612 | 692 | msgstr "Erro ao ler ou gravar no host: Transferência cancelada" |
... | ... | @@ -643,23 +723,23 @@ msgstr "Transferência de arquivos já está ativa nesta sessão." |
643 | 723 | msgid "First field" |
644 | 724 | msgstr "Primeiro campo" |
645 | 725 | |
646 | -#: src/ssl/state.c:209 | |
726 | +#: src/ssl/state.c:210 | |
647 | 727 | msgid "Format error in CRL's lastUpdate field" |
648 | 728 | msgstr "Erro de formato no campo \"lastUpdate\" do CRL" |
649 | 729 | |
650 | -#: src/ssl/state.c:217 | |
730 | +#: src/ssl/state.c:218 | |
651 | 731 | msgid "Format error in CRL's nextUpdate field" |
652 | 732 | msgstr "Erro de formato no campo \"nextUpdate\" do CRL" |
653 | 733 | |
654 | -#: src/ssl/state.c:201 | |
734 | +#: src/ssl/state.c:202 | |
655 | 735 | msgid "Format error in certificate's notAfter field" |
656 | 736 | msgstr "Erro de formato no campo \"notAfter\" do certificado" |
657 | 737 | |
658 | -#: src/ssl/state.c:193 | |
738 | +#: src/ssl/state.c:194 | |
659 | 739 | msgid "Format error in certificate's notBefore field" |
660 | 740 | msgstr "Erro de formato no campo \"notBefore\" do certificado" |
661 | 741 | |
662 | -#: src/core/properties/boolean.c:175 | |
742 | +#: src/core/properties/boolean.c:178 | |
663 | 743 | msgid "Formatted screen" |
664 | 744 | msgstr "Tela formatada" |
665 | 745 | |
... | ... | @@ -667,12 +747,11 @@ msgstr "Tela formatada" |
667 | 747 | msgid "Full Screen" |
668 | 748 | msgstr "Tela cheia" |
669 | 749 | |
670 | -#: src/ssl/linux/url.c:87 | |
671 | -msgid "Got a bad formatted certificate revocation list from LDAP server" | |
672 | -msgstr "" | |
673 | -"Obtive lista de certificados revogados com formato inválido do servidor LDAP" | |
750 | +#: src/ssl/windows/curl.c:273 | |
751 | +msgid "Got an invalid certificate revocation list from server" | |
752 | +msgstr "Servidor enviou uma lista de certificados revogados inválida" | |
674 | 753 | |
675 | -#: src/core/properties/boolean.c:154 | |
754 | +#: src/core/properties/boolean.c:157 | |
676 | 755 | msgid "Has selected area" |
677 | 756 | msgstr "Tem área selecionada" |
678 | 757 | |
... | ... | @@ -684,7 +763,7 @@ msgstr "Página de código do host" |
684 | 763 | msgid "Host disconnected, transfer cancelled" |
685 | 764 | msgstr "Servidor desconectou, transferência cancelada" |
686 | 765 | |
687 | -#: src/core/telnet.c:1385 | |
766 | +#: src/core/telnet.c:1400 | |
688 | 767 | msgid "Host illegally added function(s)" |
689 | 768 | msgstr "Host illegally added function(s)" |
690 | 769 | |
... | ... | @@ -692,11 +771,11 @@ msgstr "Host illegally added function(s)" |
692 | 771 | msgid "Host program error code xxxxxxxxxx: file transfer canceled" |
693 | 772 | msgstr "Erro código xxxxxxxxxx no aplicativo do host: Transferência cancelada" |
694 | 773 | |
695 | -#: src/core/telnet.c:1310 | |
774 | +#: src/core/telnet.c:1325 | |
696 | 775 | msgid "Host rejected device type or request type" |
697 | 776 | msgstr "Servidor rejeitou o tipo de dispositivo ou requisição" |
698 | 777 | |
699 | -#: src/core/telnet.c:1323 | |
778 | +#: src/core/telnet.c:1338 | |
700 | 779 | msgid "Host rejected resource(s)" |
701 | 780 | msgstr "Servidor rejeitou recurso(s)" |
702 | 781 | |
... | ... | @@ -821,7 +900,7 @@ msgstr "Inserção" |
821 | 900 | msgid "Internal error" |
822 | 901 | msgstr "Erro interno" |
823 | 902 | |
824 | -#: src/ssl/state.c:277 | |
903 | +#: src/ssl/state.c:278 | |
825 | 904 | msgid "Invalid CA certificate" |
826 | 905 | msgstr "Certificado CA inválido" |
827 | 906 | |
... | ... | @@ -850,23 +929,23 @@ msgstr "Opção xxxxxxxx inválida: Transferência cancelada" |
850 | 929 | msgid "Invalid oversize" |
851 | 930 | msgstr "Valor inválido para 'oversize'" |
852 | 931 | |
853 | -#: src/core/properties/boolean.c:75 | |
932 | +#: src/core/properties/boolean.c:78 | |
854 | 933 | msgid "Is connection secure" |
855 | 934 | msgstr "A conexão é segura ?" |
856 | 935 | |
857 | -#: src/core/properties/boolean.c:168 | |
936 | +#: src/core/properties/boolean.c:171 | |
858 | 937 | msgid "Is starting (no first screen)?" |
859 | 938 | msgstr "Está iniciando (não recebeu a primeira tela)?" |
860 | 939 | |
861 | -#: src/core/properties/boolean.c:68 | |
940 | +#: src/core/properties/boolean.c:71 | |
862 | 941 | msgid "Is terminal connected" |
863 | 942 | msgstr "O terminal está conectado" |
864 | 943 | |
865 | -#: src/core/properties/boolean.c:147 | |
944 | +#: src/core/properties/boolean.c:150 | |
866 | 945 | msgid "Is terminal in the INITIAL_E state?" |
867 | 946 | msgstr "O terminal está no estad INITIAL_E?" |
868 | 947 | |
869 | -#: src/core/properties/boolean.c:61 | |
948 | +#: src/core/properties/boolean.c:64 | |
870 | 949 | msgid "Is terminal ready" |
871 | 950 | msgstr "O terminal está pronto" |
872 | 951 | |
... | ... | @@ -874,7 +953,7 @@ msgstr "O terminal está pronto" |
874 | 953 | msgid "Keep selected" |
875 | 954 | msgstr "Manter selecionado" |
876 | 955 | |
877 | -#: src/ssl/state.c:341 | |
956 | +#: src/ssl/state.c:342 | |
878 | 957 | msgid "Key usage does not include certificate signing" |
879 | 958 | msgstr "Uso da chave não permite assinatura de certificados" |
880 | 959 | |
... | ... | @@ -894,7 +973,7 @@ msgstr "Última mensagem de programa" |
894 | 973 | msgid "Left" |
895 | 974 | msgstr "Esquerda" |
896 | 975 | |
897 | -#: src/core/properties/boolean.c:182 | |
976 | +#: src/core/properties/boolean.c:185 | |
898 | 977 | msgid "Lock keyboard on operator error" |
899 | 978 | msgstr "Bloqueia teclado em caso de erro do operador" |
900 | 979 | |
... | ... | @@ -967,8 +1046,8 @@ msgstr "Move para o próximo campo desprotegido" |
967 | 1046 | msgid "Move to the previous unprotected field on screen" |
968 | 1047 | msgstr "Move para o campo desprotegido anterior" |
969 | 1048 | |
970 | -#: src/core/telnet.c:320 src/core/linux/event_dispatcher.c:143 | |
971 | -#: src/core/linux/connect.c:78 | |
1049 | +#: src/core/telnet.c:320 src/core/windows/connect.c:78 | |
1050 | +#: src/core/windows/event_dispatcher.c:149 | |
972 | 1051 | msgid "Network error" |
973 | 1052 | msgstr "Erro de rede" |
974 | 1053 | |
... | ... | @@ -976,6 +1055,10 @@ msgstr "Erro de rede" |
976 | 1055 | msgid "Network keep alive" |
977 | 1056 | msgstr "Manter rede ativa" |
978 | 1057 | |
1058 | +#: src/core/windows/connect.c:125 src/core/windows/connect.c:136 | |
1059 | +msgid "Network startup error" | |
1060 | +msgstr "Erro ao iniciar a rede" | |
1061 | + | |
979 | 1062 | #: src/core/actions/table.c:214 |
980 | 1063 | msgid "New line" |
981 | 1064 | msgstr "Nova linha" |
... | ... | @@ -988,15 +1071,19 @@ msgstr "Próximo campo" |
988 | 1071 | msgid "Next word" |
989 | 1072 | msgstr "Próxima palavra" |
990 | 1073 | |
991 | -#: src/ssl/linux/ldap.c:101 | |
1074 | +#: src/ssl/windows/ldap.c:109 | |
992 | 1075 | msgid "No DN of the entry at which to start the search on the URL" |
993 | 1076 | msgstr "URL de pesquisa não contem o DN a pesquisar" |
994 | 1077 | |
995 | -#: src/ssl/linux/ldap.c:114 | |
1078 | +#: src/ssl/windows/ldap.c:123 | |
996 | 1079 | msgid "No LDAP attribute on the URL" |
997 | 1080 | msgstr "URL de pesquisa não definiu o atributo LDAP" |
998 | 1081 | |
999 | -#: src/ssl/state.c:262 | |
1082 | +#: src/ssl/windows/curl.c:301 | |
1083 | +msgid "No attribute in LDAP search URL" | |
1084 | +msgstr "Nenhum atributo na URL de pesquisa LDAP" | |
1085 | + | |
1086 | +#: src/ssl/state.c:263 | |
1000 | 1087 | msgid "" |
1001 | 1088 | "No signatures could be verified because the chain contains only one " |
1002 | 1089 | "certificate and it is not self signed." |
... | ... | @@ -1008,11 +1095,11 @@ msgstr "" |
1008 | 1095 | msgid "No transfer in progress" |
1009 | 1096 | msgstr "Nenhuma transferência em andamento" |
1010 | 1097 | |
1011 | -#: src/core/properties/boolean.c:91 | |
1098 | +#: src/core/properties/boolean.c:94 | |
1012 | 1099 | msgid "Non zero if the host is AS400." |
1013 | 1100 | msgstr "Diferente de zero se o host é AS400" |
1014 | 1101 | |
1015 | -#: src/core/properties/boolean.c:83 | |
1102 | +#: src/core/properties/boolean.c:86 | |
1016 | 1103 | msgid "Non zero if the host is TSO." |
1017 | 1104 | msgstr "Diferente de zero se o host é TSO" |
1018 | 1105 | |
... | ... | @@ -1034,7 +1121,7 @@ msgstr "Outro (TSO)" |
1034 | 1121 | msgid "Other (VM/CMS)" |
1035 | 1122 | msgstr "Outro (VM/CMS)" |
1036 | 1123 | |
1037 | -#: src/ssl/state.c:225 | |
1124 | +#: src/ssl/state.c:226 | |
1038 | 1125 | msgid "Out of memory" |
1039 | 1126 | msgstr "Memória insuficiente" |
1040 | 1127 | |
... | ... | @@ -1059,7 +1146,7 @@ msgstr "Colar próximo" |
1059 | 1146 | msgid "Paste with left margin" |
1060 | 1147 | msgstr "Colar com margem esquerda" |
1061 | 1148 | |
1062 | -#: src/ssl/state.c:285 | |
1149 | +#: src/ssl/state.c:286 | |
1063 | 1150 | msgid "Path length constraint exceeded" |
1064 | 1151 | msgstr "Path length constraint exceeded" |
1065 | 1152 | |
... | ... | @@ -1215,11 +1302,7 @@ msgstr "" |
1215 | 1302 | msgid "SSL Connect failed" |
1216 | 1303 | msgstr "Conexão SSL falhou" |
1217 | 1304 | |
1218 | -#: src/core/telnet.c:653 | |
1219 | -msgid "SSL Error" | |
1220 | -msgstr "Erro SSL" | |
1221 | - | |
1222 | -#: src/core/telnet.c:653 | |
1305 | +#: src/core/telnet.c:647 | |
1223 | 1306 | msgid "SSL Read error" |
1224 | 1307 | msgstr "Erro de leitura SSL" |
1225 | 1308 | |
... | ... | @@ -1231,7 +1314,7 @@ msgstr "Negociação SSL falhou" |
1231 | 1314 | msgid "SSL negotiation has failed" |
1232 | 1315 | msgstr "Negociação de segurança falhou" |
1233 | 1316 | |
1234 | -#: src/core/telnet.c:1642 | |
1317 | +#: src/core/telnet.c:1657 | |
1235 | 1318 | #, c-format |
1236 | 1319 | msgid "" |
1237 | 1320 | "SSL_write:\n" |
... | ... | @@ -1248,11 +1331,11 @@ msgstr "Tamanho do buffer de tela em bytes" |
1248 | 1331 | msgid "Screen oversize if larger than the chosen model" |
1249 | 1332 | msgstr "\"oversize\" maior que o modelo escolhido" |
1250 | 1333 | |
1251 | -#: src/ssl/linux/ldap.c:194 | |
1334 | +#: src/ssl/windows/ldap.c:224 | |
1252 | 1335 | msgid "Search did not produce any attributes." |
1253 | 1336 | msgstr "Pesquisa não produziu nenhum atributo" |
1254 | 1337 | |
1255 | -#: src/ssl/linux/ldap.c:206 | |
1338 | +#: src/ssl/windows/ldap.c:236 | |
1256 | 1339 | msgid "Search did not produce any values." |
1257 | 1340 | msgstr "Pesquisa não produziu nenhum valor" |
1258 | 1341 | |
... | ... | @@ -1260,10 +1343,15 @@ msgstr "Pesquisa não produziu nenhum valor" |
1260 | 1343 | msgid "Secure connection was successful." |
1261 | 1344 | msgstr "Conexão segura efetuada com sucesso." |
1262 | 1345 | |
1263 | -#: src/ssl/linux/ldap.c:100 src/ssl/linux/ldap.c:113 src/ssl/linux/ldap.c:134 | |
1264 | -#: src/ssl/linux/ldap.c:145 src/ssl/linux/ldap.c:156 src/ssl/linux/ldap.c:181 | |
1265 | -#: src/ssl/linux/ldap.c:192 src/ssl/linux/ldap.c:204 src/ssl/linux/ldap.c:228 | |
1266 | -#: src/ssl/linux/getcrl.c:125 | |
1346 | +#: src/ssl/windows/curl.c:188 src/ssl/windows/curl.c:218 | |
1347 | +#: src/ssl/windows/curl.c:242 src/ssl/windows/curl.c:263 | |
1348 | +#: src/ssl/windows/curl.c:272 src/ssl/windows/curl.c:300 | |
1349 | +#: src/ssl/windows/curl.c:333 src/ssl/windows/curl.c:369 | |
1350 | +#: src/ssl/windows/ldap.c:108 src/ssl/windows/ldap.c:122 | |
1351 | +#: src/ssl/windows/ldap.c:151 src/ssl/windows/ldap.c:165 | |
1352 | +#: src/ssl/windows/ldap.c:180 src/ssl/windows/ldap.c:210 | |
1353 | +#: src/ssl/windows/ldap.c:222 src/ssl/windows/ldap.c:234 | |
1354 | +#: src/ssl/windows/ldap.c:258 | |
1267 | 1355 | msgid "Security error" |
1268 | 1356 | msgstr "Erro de segurança" |
1269 | 1357 | |
... | ... | @@ -1303,7 +1391,7 @@ msgstr "Seleciona a direita" |
1303 | 1391 | msgid "Select word" |
1304 | 1392 | msgstr "Seleciona palavra" |
1305 | 1393 | |
1306 | -#: src/core/linux/event_dispatcher.c:144 | |
1394 | +#: src/core/windows/event_dispatcher.c:150 | |
1307 | 1395 | msgid "Select() failed when processing for events." |
1308 | 1396 | msgstr "Select() falhou ao processar eventos." |
1309 | 1397 | |
... | ... | @@ -1323,11 +1411,11 @@ msgstr "Move seleção para a direita" |
1323 | 1411 | msgid "Selection up" |
1324 | 1412 | msgstr "Sobe a seleção" |
1325 | 1413 | |
1326 | -#: src/ssl/state.c:233 | |
1414 | +#: src/ssl/state.c:234 | |
1327 | 1415 | msgid "Self signed certificate" |
1328 | 1416 | msgstr "Certificado auto assinado" |
1329 | 1417 | |
1330 | -#: src/ssl/state.c:245 | |
1418 | +#: src/ssl/state.c:246 | |
1331 | 1419 | msgid "Self signed certificate in certificate chain" |
1332 | 1420 | msgstr "Certificado auto assinado na cadeia de certificados" |
1333 | 1421 | |
... | ... | @@ -1367,15 +1455,15 @@ msgstr "Show timer when processing" |
1367 | 1455 | msgid "Smart paste" |
1368 | 1456 | msgstr "Colar inteligente" |
1369 | 1457 | |
1370 | -#: src/core/iocalls.c:552 src/core/iocalls.c:569 | |
1458 | +#: src/core/iocalls.c:506 src/core/iocalls.c:523 | |
1371 | 1459 | msgid "Socket error" |
1372 | 1460 | msgstr "Erro no socket" |
1373 | 1461 | |
1374 | -#: src/core/telnet.c:679 | |
1462 | +#: src/core/telnet.c:694 | |
1375 | 1463 | msgid "Socket read error" |
1376 | 1464 | msgstr "Erro ao ler dados da rede" |
1377 | 1465 | |
1378 | -#: src/core/telnet.c:1663 | |
1466 | +#: src/core/telnet.c:1678 | |
1379 | 1467 | msgid "Socket write error" |
1380 | 1468 | msgstr "Erro ao enviar dados para a rede" |
1381 | 1469 | |
... | ... | @@ -1383,15 +1471,15 @@ msgstr "Erro ao enviar dados para a rede" |
1383 | 1471 | msgid "Sound" |
1384 | 1472 | msgstr "Som" |
1385 | 1473 | |
1386 | -#: src/core/properties/boolean.c:126 | |
1474 | +#: src/core/properties/boolean.c:129 | |
1387 | 1475 | msgid "State is 3270, TN3270e or SSCP" |
1388 | 1476 | msgstr "Estado do terminal é 3270, TN3270e or SSCP" |
1389 | 1477 | |
1390 | -#: src/core/properties/boolean.c:161 | |
1478 | +#: src/core/properties/boolean.c:164 | |
1391 | 1479 | msgid "Still have text to paste" |
1392 | 1480 | msgstr "Ainda existe texto para colar" |
1393 | 1481 | |
1394 | -#: src/ssl/state.c:317 | |
1482 | +#: src/ssl/state.c:318 | |
1395 | 1483 | msgid "Subject issuer mismatch" |
1396 | 1484 | msgstr "Divergência na identidade do emissor" |
1397 | 1485 | |
... | ... | @@ -1403,7 +1491,7 @@ msgstr "Sys Req" |
1403 | 1491 | msgid "Sys Request" |
1404 | 1492 | msgstr "Sys Request" |
1405 | 1493 | |
1406 | -#: src/core/telnet.c:1146 | |
1494 | +#: src/core/telnet.c:1161 | |
1407 | 1495 | msgid "TLS negotiation failure" |
1408 | 1496 | msgstr "Negociação TLS falhou" |
1409 | 1497 | |
... | ... | @@ -1433,23 +1521,23 @@ msgstr "" |
1433 | 1521 | "has been reached, or the maximum number of data blocks per file (16060) has " |
1434 | 1522 | "been reached." |
1435 | 1523 | |
1436 | -#: src/ssl/state.c:185 | |
1524 | +#: src/ssl/state.c:186 | |
1437 | 1525 | msgid "The CRL has expired." |
1438 | 1526 | msgstr "A lista de certificados revogados expirou." |
1439 | 1527 | |
1440 | -#: src/ssl/state.c:173 | |
1528 | +#: src/ssl/state.c:174 | |
1441 | 1529 | msgid "The CRL is not yet valid." |
1442 | 1530 | msgstr "A lista de certificados revogados ainda não é válida." |
1443 | 1531 | |
1444 | -#: src/ssl/state.c:210 | |
1532 | +#: src/ssl/state.c:211 | |
1445 | 1533 | msgid "The CRL lastUpdate field contains an invalid time." |
1446 | 1534 | msgstr "Campo \"lastUpdate\" do CRL contem horário inválido." |
1447 | 1535 | |
1448 | -#: src/ssl/state.c:218 | |
1536 | +#: src/ssl/state.c:219 | |
1449 | 1537 | msgid "The CRL nextUpdate field contains an invalid time." |
1450 | 1538 | msgstr "Campo \"nextUpdate\" contem horário inválido." |
1451 | 1539 | |
1452 | -#: src/ssl/state.c:126 | |
1540 | +#: src/ssl/state.c:127 | |
1453 | 1541 | msgid "" |
1454 | 1542 | "The CRL signature could not be decrypted: this means that the actual " |
1455 | 1543 | "signature value could not be determined rather than it not matching the " |
... | ... | @@ -1459,15 +1547,15 @@ msgstr "" |
1459 | 1547 | "signature value could not be determined rather than it not matching the " |
1460 | 1548 | "expected value. Unused." |
1461 | 1549 | |
1462 | -#: src/ssl/state.c:186 | |
1550 | +#: src/ssl/state.c:187 | |
1463 | 1551 | msgid "The Certificate revocation list (CRL) has expired." |
1464 | 1552 | msgstr "A lista de revogação de certificados (CRL) está expirada." |
1465 | 1553 | |
1466 | -#: src/ssl/state.c:174 | |
1554 | +#: src/ssl/state.c:175 | |
1467 | 1555 | msgid "The Certificate revocation list (CRL) is not yet valid." |
1468 | 1556 | msgstr "A lista de revogação de certificados (CRL) ainda não é válida." |
1469 | 1557 | |
1470 | -#: src/ssl/state.c:110 | |
1558 | +#: src/ssl/state.c:111 | |
1471 | 1559 | msgid "" |
1472 | 1560 | "The Certificate revocation list (CRL) of a certificate could not be found." |
1473 | 1561 | msgstr "" |
... | ... | @@ -1483,23 +1571,23 @@ msgstr "O certificado SSL deste servidor não é confiável" |
1483 | 1571 | msgid "The SSL error message was \"%s\" (%d)" |
1484 | 1572 | msgstr "A mensagem de erro SSL foi \"%s\" (%d)" |
1485 | 1573 | |
1486 | -#: src/ssl/linux/ldap.c:102 src/ssl/linux/ldap.c:115 | |
1574 | +#: src/ssl/windows/ldap.c:110 src/ssl/windows/ldap.c:124 | |
1487 | 1575 | msgid "The URL argument should be in the format ldap://[HOST]/[DN]?attribute" |
1488 | 1576 | msgstr "A URL deve ser no formato ldap://[HOST]/[DN]?attribute" |
1489 | 1577 | |
1490 | -#: src/ssl/linux/getcrl.c:58 | |
1578 | +#: src/ssl/windows/getcrl.c:59 | |
1491 | 1579 | msgid "The URL for the CRL is undefined or empty" |
1492 | 1580 | msgstr "A URL para o CRL não está definida ou vazia" |
1493 | 1581 | |
1494 | -#: src/ssl/linux/getcrl.c:131 | |
1582 | +#: src/ssl/windows/getcrl.c:128 | |
1495 | 1583 | msgid "The URL scheme is unknown" |
1496 | 1584 | msgstr "O tipo de URL é desconhecido" |
1497 | 1585 | |
1498 | -#: src/ssl/state.c:286 | |
1586 | +#: src/ssl/state.c:287 | |
1499 | 1587 | msgid "The basicConstraints pathlength parameter has been exceeded." |
1500 | 1588 | msgstr "The basicConstraints pathlength parameter has been exceeded." |
1501 | 1589 | |
1502 | -#: src/ssl/state.c:246 | |
1590 | +#: src/ssl/state.c:247 | |
1503 | 1591 | msgid "" |
1504 | 1592 | "The certificate chain could be built up using the untrusted certificates but " |
1505 | 1593 | "the root could not be found locally." |
... | ... | @@ -1507,11 +1595,11 @@ msgstr "" |
1507 | 1595 | "The certificate chain could be built up using the untrusted certificates but " |
1508 | 1596 | "the root could not be found locally." |
1509 | 1597 | |
1510 | -#: src/ssl/state.c:270 | |
1598 | +#: src/ssl/state.c:271 | |
1511 | 1599 | msgid "The certificate has been revoked." |
1512 | 1600 | msgstr "O certificado foi revogado." |
1513 | 1601 | |
1514 | -#: src/ssl/state.c:166 | |
1602 | +#: src/ssl/state.c:167 | |
1515 | 1603 | msgid "" |
1516 | 1604 | "The certificate has expired: that is the notAfter date is before the current " |
1517 | 1605 | "time." |
... | ... | @@ -1519,7 +1607,7 @@ msgstr "" |
1519 | 1607 | "The certificate has expired: that is the notAfter date is before the current " |
1520 | 1608 | "time." |
1521 | 1609 | |
1522 | -#: src/ssl/state.c:158 | |
1610 | +#: src/ssl/state.c:159 | |
1523 | 1611 | msgid "" |
1524 | 1612 | "The certificate is not yet valid: the notBefore date is after the current " |
1525 | 1613 | "time." |
... | ... | @@ -1527,15 +1615,15 @@ msgstr "" |
1527 | 1615 | "The certificate is not yet valid: the notBefore date is after the current " |
1528 | 1616 | "time." |
1529 | 1617 | |
1530 | -#: src/ssl/state.c:202 | |
1618 | +#: src/ssl/state.c:203 | |
1531 | 1619 | msgid "The certificate notAfter field contains an invalid time." |
1532 | 1620 | msgstr "The certificate notAfter field contains an invalid time." |
1533 | 1621 | |
1534 | -#: src/ssl/state.c:194 | |
1622 | +#: src/ssl/state.c:195 | |
1535 | 1623 | msgid "The certificate notBefore field contains an invalid time." |
1536 | 1624 | msgstr "The certificate notBefore field contains an invalid time." |
1537 | 1625 | |
1538 | -#: src/ssl/state.c:118 | |
1626 | +#: src/ssl/state.c:119 | |
1539 | 1627 | msgid "" |
1540 | 1628 | "The certificate signature could not be decrypted. This means that the actual " |
1541 | 1629 | "signature value could not be determined rather than it not matching the " |
... | ... | @@ -1549,7 +1637,7 @@ msgstr "" |
1549 | 1637 | msgid "The color type" |
1550 | 1638 | msgstr "O tipo de cor" |
1551 | 1639 | |
1552 | -#: src/ssl/state.c:373 src/ssl/state.c:401 src/ssl/state.c:428 | |
1640 | +#: src/ssl/state.c:374 src/ssl/state.c:402 src/ssl/state.c:429 | |
1553 | 1641 | msgid "The connection is insecure" |
1554 | 1642 | msgstr "A conexão não é segura" |
1555 | 1643 | |
... | ... | @@ -1557,7 +1645,7 @@ msgstr "A conexão não é segura" |
1557 | 1645 | msgid "The connection is secure and the host identity was confirmed." |
1558 | 1646 | msgstr "A conexão é segura e a identidade do servidor foi confirmada." |
1559 | 1647 | |
1560 | -#: src/ssl/state.c:334 | |
1648 | +#: src/ssl/state.c:335 | |
1561 | 1649 | msgid "" |
1562 | 1650 | "The current candidate issuer certificate was rejected because its issuer " |
1563 | 1651 | "name and serial number was present and did not match the authority key " |
... | ... | @@ -1569,7 +1657,7 @@ msgstr "" |
1569 | 1657 | "identifier of the current certificate. Only displayed when the -" |
1570 | 1658 | "issuer_checks option is set." |
1571 | 1659 | |
1572 | -#: src/ssl/state.c:342 | |
1660 | +#: src/ssl/state.c:343 | |
1573 | 1661 | msgid "" |
1574 | 1662 | "The current candidate issuer certificate was rejected because its keyUsage " |
1575 | 1663 | "extension does not permit certificate signing." |
... | ... | @@ -1577,7 +1665,7 @@ msgstr "" |
1577 | 1665 | "The current candidate issuer certificate was rejected because its keyUsage " |
1578 | 1666 | "extension does not permit certificate signing." |
1579 | 1667 | |
1580 | -#: src/ssl/state.c:326 | |
1668 | +#: src/ssl/state.c:327 | |
1581 | 1669 | msgid "" |
1582 | 1670 | "The current candidate issuer certificate was rejected because its subject " |
1583 | 1671 | "key identifier was present and did not match the authority key identifier " |
... | ... | @@ -1587,7 +1675,7 @@ msgstr "" |
1587 | 1675 | "key identifier was present and did not match the authority key identifier " |
1588 | 1676 | "current certificate. Only displayed when the -issuer_checks option is set." |
1589 | 1677 | |
1590 | -#: src/ssl/state.c:318 | |
1678 | +#: src/ssl/state.c:319 | |
1591 | 1679 | msgid "" |
1592 | 1680 | "The current candidate issuer certificate was rejected because its subject " |
1593 | 1681 | "name did not match the issuer name of the current certificate. Only " |
... | ... | @@ -1632,7 +1720,7 @@ msgid "" |
1632 | 1720 | "operation." |
1633 | 1721 | msgstr "O host detectou um erro no arquivo durante a operação de recebimento." |
1634 | 1722 | |
1635 | -#: src/ssl/state.c:254 | |
1723 | +#: src/ssl/state.c:255 | |
1636 | 1724 | msgid "" |
1637 | 1725 | "The issuer certificate could not be found: this occurs if the issuer " |
1638 | 1726 | "certificate of an untrusted certificate cannot be found." |
... | ... | @@ -1677,7 +1765,7 @@ msgstr "Os valores do 'oversize' são muito grandes." |
1677 | 1765 | msgid "The oversize width is too small." |
1678 | 1766 | msgstr "A largura do 'oversize' é muito pequena." |
1679 | 1767 | |
1680 | -#: src/ssl/state.c:234 | |
1768 | +#: src/ssl/state.c:235 | |
1681 | 1769 | msgid "" |
1682 | 1770 | "The passed certificate is self signed and the same certificate cannot be " |
1683 | 1771 | "found in the list of trusted certificates." |
... | ... | @@ -1685,7 +1773,7 @@ msgstr "" |
1685 | 1773 | "The passed certificate is self signed and the same certificate cannot be " |
1686 | 1774 | "found in the list of trusted certificates." |
1687 | 1775 | |
1688 | -#: src/ssl/state.c:134 | |
1776 | +#: src/ssl/state.c:135 | |
1689 | 1777 | msgid "" |
1690 | 1778 | "The public key in the certificate SubjectPublicKeyInfo could not be read." |
1691 | 1779 | msgstr "" |
... | ... | @@ -1695,12 +1783,12 @@ msgstr "" |
1695 | 1783 | msgid "The remote file name is invalid." |
1696 | 1784 | msgstr "O nome do arquivo remoto não é válido." |
1697 | 1785 | |
1698 | -#: src/ssl/state.c:310 | |
1786 | +#: src/ssl/state.c:311 | |
1699 | 1787 | msgid "The root CA is marked to reject the specified purpose." |
1700 | 1788 | msgstr "" |
1701 | 1789 | "O certificado raiz está marcado para rejeitar a finalidade especificada." |
1702 | 1790 | |
1703 | -#: src/ssl/state.c:302 | |
1791 | +#: src/ssl/state.c:303 | |
1704 | 1792 | msgid "The root CA is not marked as trusted for the specified purpose." |
1705 | 1793 | msgstr "" |
1706 | 1794 | "O Certificado raiz não está marcado como confiável para os fins " |
... | ... | @@ -1718,11 +1806,11 @@ msgstr "" |
1718 | 1806 | msgid "The security state" |
1719 | 1807 | msgstr "O estado da segurança" |
1720 | 1808 | |
1721 | -#: src/ssl/state.c:142 src/ssl/state.c:150 | |
1809 | +#: src/ssl/state.c:143 src/ssl/state.c:151 | |
1722 | 1810 | msgid "The signature of the certificate is invalid." |
1723 | 1811 | msgstr "A assinatura do certificado não é válida." |
1724 | 1812 | |
1725 | -#: src/ssl/state.c:294 | |
1813 | +#: src/ssl/state.c:295 | |
1726 | 1814 | msgid "The supplied certificate cannot be used for the specified purpose." |
1727 | 1815 | msgstr "" |
1728 | 1816 | "O certificado fornecido não pode ser utilizado para a finalidade " |
... | ... | @@ -1789,8 +1877,8 @@ msgstr "Mostrar posição do cursor" |
1789 | 1877 | msgid "Transfer cancelled by host" |
1790 | 1878 | msgstr "Transferência cancelada pelo host" |
1791 | 1879 | |
1792 | -#: src/core/ft/ft_dft.c:230 src/core/ft/ft_dft.c:373 src/core/ft/ft_cut.c:400 | |
1793 | -#: src/core/ft/ft_cut.c:495 | |
1880 | +#: src/core/ft/ft_cut.c:400 src/core/ft/ft_cut.c:495 src/core/ft/ft_dft.c:230 | |
1881 | +#: src/core/ft/ft_dft.c:373 | |
1794 | 1882 | msgid "Transfer cancelled by user" |
1795 | 1883 | msgstr "Transferência cancelada pelo usuário" |
1796 | 1884 | |
... | ... | @@ -1822,24 +1910,29 @@ msgstr "URL do host atual" |
1822 | 1910 | msgid "Uknown DFT Open type from host" |
1823 | 1911 | msgstr "Host enviou código de abertura DFT desconhecido" |
1824 | 1912 | |
1825 | -#: src/ssl/state.c:133 | |
1913 | +#: src/ssl/windows/getcrl.c:92 | |
1914 | +#, fuzzy | |
1915 | +msgid "Unable to decode CRL" | |
1916 | +msgstr "Não foi possível decodificar arquivo CRL" | |
1917 | + | |
1918 | +#: src/ssl/state.c:134 | |
1826 | 1919 | msgid "Unable to decode issuer public key" |
1827 | 1920 | msgstr "Não é possível decodificar chave pública do emissor" |
1828 | 1921 | |
1829 | -#: src/ssl/state.c:125 | |
1922 | +#: src/ssl/state.c:126 | |
1830 | 1923 | msgid "Unable to decrypt CRL's signature" |
1831 | 1924 | msgstr "" |
1832 | 1925 | "Não foi possível decriptar assinatura da lista de certificados revogados" |
1833 | 1926 | |
1834 | -#: src/ssl/state.c:117 | |
1927 | +#: src/ssl/state.c:118 | |
1835 | 1928 | msgid "Unable to decrypt certificate's signature" |
1836 | 1929 | msgstr "Incapaz de decifrar a assinatura do certificado" |
1837 | 1930 | |
1838 | -#: src/ssl/state.c:109 | |
1931 | +#: src/ssl/state.c:110 | |
1839 | 1932 | msgid "Unable to get certificate CRL." |
1840 | 1933 | msgstr "Incapaz de obter o CRL de um certificado." |
1841 | 1934 | |
1842 | -#: src/core/linux/connect.c:79 | |
1935 | +#: src/core/windows/connect.c:79 | |
1843 | 1936 | msgid "Unable to get connection state." |
1844 | 1937 | msgstr "Não foi possível obter o estado da conexão." |
1845 | 1938 | |
... | ... | @@ -1847,7 +1940,7 @@ msgstr "Não foi possível obter o estado da conexão." |
1847 | 1940 | msgid "Unable to get issuer certificate" |
1848 | 1941 | msgstr "Não foi possível obter emissor do certificado" |
1849 | 1942 | |
1850 | -#: src/ssl/state.c:253 | |
1943 | +#: src/ssl/state.c:254 | |
1851 | 1944 | msgid "Unable to get local issuer certificate" |
1852 | 1945 | msgstr "Unable to get local issuer certificate" |
1853 | 1946 | |
... | ... | @@ -1855,6 +1948,11 @@ msgstr "Unable to get local issuer certificate" |
1855 | 1948 | msgid "Unable to load from file" |
1856 | 1949 | msgstr "Não foi possível ler do arquivo" |
1857 | 1950 | |
1951 | +#: src/ssl/windows/getcrl.c:77 | |
1952 | +#, fuzzy | |
1953 | +msgid "Unable to open the defined CRL file" | |
1954 | +msgstr "Unable to get certificate CRL" | |
1955 | + | |
1858 | 1956 | #: src/core/paste.c:399 |
1859 | 1957 | msgid "Unable to paste text" |
1860 | 1958 | msgstr "Incapaz de colar texto" |
... | ... | @@ -1871,7 +1969,7 @@ msgstr "Incapaz de salvar" |
1871 | 1969 | msgid "Unable to send file-transfer request" |
1872 | 1970 | msgstr "Não foi possível enviar a requisição de transferência de arquivo" |
1873 | 1971 | |
1874 | -#: src/ssl/state.c:261 | |
1972 | +#: src/ssl/state.c:262 | |
1875 | 1973 | msgid "Unable to verify the first certificate" |
1876 | 1974 | msgstr "Não foi possível verificar o primeiro certificado" |
1877 | 1975 | |
... | ... | @@ -1887,7 +1985,7 @@ msgstr "Erro inesperado" |
1887 | 1985 | msgid "Unexpected error on SSL initialization" |
1888 | 1986 | msgstr "Erro inesperado na inicialização do sistema de segurança" |
1889 | 1987 | |
1890 | -#: src/ssl/linux/getcrl.c:128 | |
1988 | +#: src/ssl/windows/getcrl.c:127 | |
1891 | 1989 | msgid "Unexpected or invalid CRL URL" |
1892 | 1990 | msgstr "URL do CRL é inesperada ou inválida" |
1893 | 1991 | |
... | ... | @@ -1895,7 +1993,7 @@ msgstr "URL do CRL é inesperada ou inválida" |
1895 | 1993 | msgid "Unexpected or invalid TLS/SSL verify result" |
1896 | 1994 | msgstr "O resultado da verificação TLS/SSL foi inesperado" |
1897 | 1995 | |
1898 | -#: src/ssl/state.c:404 | |
1996 | +#: src/ssl/state.c:405 | |
1899 | 1997 | msgid "Unexpected or unknown security status" |
1900 | 1998 | msgstr "Estado de segurança inesperado ou desconhecido." |
1901 | 1999 | |
... | ... | @@ -1935,7 +2033,7 @@ msgstr "Atraso no desbloqueio" |
1935 | 2033 | msgid "Unsupported RPQ term" |
1936 | 2034 | msgstr "Unsupported RPQ term" |
1937 | 2035 | |
1938 | -#: src/ssl/state.c:293 | |
2036 | +#: src/ssl/state.c:294 | |
1939 | 2037 | msgid "Unsupported certificate purpose" |
1940 | 2038 | msgstr "Finalidade do certificado não é suportada" |
1941 | 2039 | |
... | ... | @@ -1955,6 +2053,10 @@ msgstr "Usar teclas +/- para navegar por campos" |
1955 | 2053 | msgid "Use the keys +/- from keypad to select editable fields" |
1956 | 2054 | msgstr "Use the keys +/- from keypad to select editable fields" |
1957 | 2055 | |
2056 | +#: src/core/windows/connect.c:126 | |
2057 | +msgid "WSAStartup failed" | |
2058 | +msgstr "WSAStartup falhou" | |
2059 | + | |
1958 | 2060 | #: src/core/ft/ft.c:537 |
1959 | 2061 | msgid "Waiting for GET response" |
1960 | 2062 | msgstr "Aguardando resposta do pedido de download" |
... | ... | @@ -1963,10 +2065,15 @@ msgstr "Aguardando resposta do pedido de download" |
1963 | 2065 | msgid "Waiting for PUT response" |
1964 | 2066 | msgstr "Aguardando resposta do pedido de upload" |
1965 | 2067 | |
1966 | -#: src/core/telnet.c:864 | |
2068 | +#: src/core/telnet.c:879 | |
1967 | 2069 | msgid "Warning" |
1968 | 2070 | msgstr "Alerta" |
1969 | 2071 | |
2072 | +#: src/core/windows/util.c:131 src/core/windows/util.c:180 | |
2073 | +#, c-format | |
2074 | +msgid "Windows error %d" | |
2075 | +msgstr "Erro windows foi %d" | |
2076 | + | |
1970 | 2077 | #: src/ssl/notify.c:104 |
1971 | 2078 | #, c-format |
1972 | 2079 | msgid "Windows error was \"%s\" (%u)" |
... | ... | @@ -2051,7 +2158,7 @@ msgstr "" |
2051 | 2158 | msgid "You specified an option that is invalid." |
2052 | 2159 | msgstr "Você especificou uma opção inválida." |
2053 | 2160 | |
2054 | -#: src/ssl/notify.c:150 | |
2161 | +#: src/ssl/notify.c:152 | |
2055 | 2162 | msgid "Your connection is not safe" |
2056 | 2163 | msgstr "A conexão não é segura" |
2057 | 2164 | |
... | ... | @@ -2063,19 +2170,19 @@ msgstr "_Desconectar" |
2063 | 2170 | msgid "_Reconnect" |
2064 | 2171 | msgstr "_Reconectar" |
2065 | 2172 | |
2066 | -#: src/core/toggles/init.c:89 src/core/linux/connect.c:209 | |
2173 | +#: src/core/toggles/init.c:89 src/core/windows/connect.c:313 | |
2067 | 2174 | msgid "disable" |
2068 | 2175 | msgstr "desabilitar" |
2069 | 2176 | |
2070 | -#: src/core/toggles/init.c:89 src/core/linux/connect.c:209 | |
2177 | +#: src/core/toggles/init.c:89 src/core/windows/connect.c:313 | |
2071 | 2178 | msgid "enable" |
2072 | 2179 | msgstr "habilitar" |
2073 | 2180 | |
2074 | -#: src/core/iocalls.c:553 | |
2181 | +#: src/core/iocalls.c:507 | |
2075 | 2182 | msgid "fcntl() error when getting socket state." |
2076 | 2183 | msgstr "erro fcntl() ao obter estado do socket." |
2077 | 2184 | |
2078 | -#: src/core/iocalls.c:539 | |
2185 | +#: src/core/iocalls.c:493 | |
2079 | 2186 | msgid "ioctlsocket(FIONBIO) failed." |
2080 | 2187 | msgstr "ioctlsocket(FIONBIO) failed." |
2081 | 2188 | |
... | ... | @@ -2087,11 +2194,11 @@ msgstr "Revisão da lib3270" |
2087 | 2194 | msgid "lib3270 version" |
2088 | 2195 | msgstr "Versão da lib3270" |
2089 | 2196 | |
2090 | -#: src/core/properties/boolean.c:189 | |
2197 | +#: src/core/properties/boolean.c:192 | |
2091 | 2198 | msgid "numeric lock" |
2092 | 2199 | msgstr "numeric lock" |
2093 | 2200 | |
2094 | -#: src/core/linux/connect.c:196 | |
2201 | +#: src/core/windows/connect.c:334 | |
2095 | 2202 | msgid "setsockopt(SO_OOBINLINE) has failed" |
2096 | 2203 | msgstr "setsockopt(SO_OOBINLINE) has failed" |
2097 | 2204 | |
... | ... | @@ -2296,9 +2403,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2296 | 2403 | #~ msgid "Background" |
2297 | 2404 | #~ msgstr "Fundo" |
2298 | 2405 | |
2299 | -#~ msgid "Bad winsock version" | |
2300 | -#~ msgstr "Versão winsock inválida" | |
2301 | - | |
2302 | 2406 | #~ msgid "Black" |
2303 | 2407 | #~ msgstr "Preto" |
2304 | 2408 | |
... | ... | @@ -2344,35 +2448,21 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2344 | 2448 | #~ msgid "Can't connect to %s" |
2345 | 2449 | #~ msgstr "Não foi possível conectar a %s" |
2346 | 2450 | |
2347 | -#~ msgid "Can't connect to HTTP server." | |
2348 | -#~ msgstr "Não foi possível conectar ao servidor HTTP" | |
2349 | - | |
2350 | 2451 | #~ msgid "Can't convert line %lu from %s to %s" |
2351 | 2452 | #~ msgstr "Não foi possível converter a linha %lu de %s para %s" |
2352 | 2453 | |
2353 | -#~ msgid "Can't create HTTP request." | |
2354 | -#~ msgstr "Não foi possível criar requisição HTTP" | |
2355 | - | |
2356 | 2454 | #~ msgid "Can't cut rectangular regions" |
2357 | 2455 | #~ msgstr "Recortar não permitido em seleção retangular" |
2358 | 2456 | |
2359 | 2457 | #~ msgid "Can't determine value for environment variable \"%s\" " |
2360 | 2458 | #~ msgstr "Não consigo determinar o valor da variável de ambiente \"%s\" " |
2361 | 2459 | |
2362 | -#~ msgid "Can't find certificate revocation list in LDAP response" | |
2363 | -#~ msgstr "" | |
2364 | -#~ "Não foi possível encontrar a lista de certificados revogados na pesquisa " | |
2365 | -#~ "LDAP" | |
2366 | - | |
2367 | 2460 | #~ msgid "Can't get DBUS object name" |
2368 | 2461 | #~ msgstr "Não foi possível obter o nome do objeto DBUS" |
2369 | 2462 | |
2370 | 2463 | #~ msgid "Can't get screen contents" |
2371 | 2464 | #~ msgstr "Não foi possível obter o conteúdo da tela" |
2372 | 2465 | |
2373 | -#~ msgid "Can't load \"%s\": %s" | |
2374 | -#~ msgstr "Não foi possível carregar \"%s\": %s" | |
2375 | - | |
2376 | 2466 | #~ msgid "Can't load %s" |
2377 | 2467 | #~ msgstr "Não foi possível carregar %s" |
2378 | 2468 | |
... | ... | @@ -2385,15 +2475,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2385 | 2475 | #~ msgid "Can't load plugin %s" |
2386 | 2476 | #~ msgstr "Não foi possível carregar plugin %s" |
2387 | 2477 | |
2388 | -#~ msgid "Can't open \"%s\" (The Windows error code was %ld)\n" | |
2389 | -#~ msgstr "Não foi possível abrir \"%s\" (O código de erro windows foi %ld)\n" | |
2390 | - | |
2391 | -#~ msgid "Can't open \"%s\": %s" | |
2392 | -#~ msgstr "Não foi possível abrir %s: %s" | |
2393 | - | |
2394 | -#~ msgid "Can't open HTTP session" | |
2395 | -#~ msgstr "Não foi possível abrir sessão HTTP" | |
2396 | - | |
2397 | 2478 | #~ msgid "Can't open file" |
2398 | 2479 | #~ msgstr "Não foi possível abrir arquivo" |
2399 | 2480 | |
... | ... | @@ -2421,12 +2502,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2421 | 2502 | #~ msgid "Can't paste text" |
2422 | 2503 | #~ msgstr "Não é possível colar texto" |
2423 | 2504 | |
2424 | -#~ msgid "Can't read \"%s\": %s" | |
2425 | -#~ msgstr "Não foi possível ler \"%s\": %s" | |
2426 | - | |
2427 | -#~ msgid "Can't read HTTP response size." | |
2428 | -#~ msgstr "Não posso obter tamanho da resposta HTTP" | |
2429 | - | |
2430 | 2505 | #~ msgid "Can't recognize \"%s\" as a valid host type" |
2431 | 2506 | #~ msgstr "Não reconheço \"%s\" como um tipo de host válido" |
2432 | 2507 | |
... | ... | @@ -2460,9 +2535,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2460 | 2535 | #~ msgid "Can't save trace data to file %s" |
2461 | 2536 | #~ msgstr "Não foi possível salvar trace no arquivo %s" |
2462 | 2537 | |
2463 | -#~ msgid "Can't send HTTP request." | |
2464 | -#~ msgstr "Não posso enviar requisição HTTP" | |
2465 | - | |
2466 | 2538 | #~ msgid "Can't set callback table" |
2467 | 2539 | #~ msgstr "Não foi possível setar a tabela de retornos" |
2468 | 2540 | |
... | ... | @@ -2481,9 +2553,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2481 | 2553 | #~ msgid "Can't start upload." |
2482 | 2554 | #~ msgstr "Não foi possível iniciar upload." |
2483 | 2555 | |
2484 | -#~ msgid "Can't use winsock version %d.%d" | |
2485 | -#~ msgstr "Não posso usar versão winsock %d.%d" | |
2486 | - | |
2487 | 2556 | #~ msgid "Cancel" |
2488 | 2557 | #~ msgstr "_Cancelar" |
2489 | 2558 | |
... | ... | @@ -2505,15 +2574,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2505 | 2574 | #~ msgid "Cannot parse %s \"%s\", entry %d" |
2506 | 2575 | #~ msgstr "Impossível interpretar %s \"%s\", entrada %d" |
2507 | 2576 | |
2508 | -#~ msgid "Cant load custom certificate file." | |
2509 | -#~ msgstr "Não foi possível ler arquivo de certificado personalizado" | |
2510 | - | |
2511 | -#~ msgid "Cant open custom certificate directory." | |
2512 | -#~ msgstr "Não foi possível abrir o diretório de certificados personalizados" | |
2513 | - | |
2514 | -#~ msgid "Cant read custom certificate file." | |
2515 | -#~ msgstr "Não foi possível ler certificado personalizado" | |
2516 | - | |
2517 | 2577 | #~ msgid "" |
2518 | 2578 | #~ "Cant set default locations for trusted CA certificates to\n" |
2519 | 2579 | #~ "%s" |
... | ... | @@ -2667,9 +2727,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2667 | 2727 | #~ msgid "Empty port name" |
2668 | 2728 | #~ msgstr "Porta em branco" |
2669 | 2729 | |
2670 | -#~ msgid "Empty response from HTTP server." | |
2671 | -#~ msgstr "Recebi resposta vazia do servidor HTTP" | |
2672 | - | |
2673 | 2730 | #~ msgid "" |
2674 | 2731 | #~ "Erase\n" |
2675 | 2732 | #~ "Input" |
... | ... | @@ -2701,9 +2758,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2701 | 2758 | #~ msgid "Error loading CRL" |
2702 | 2759 | #~ msgstr "Erro lendo CRL" |
2703 | 2760 | |
2704 | -#~ msgid "Error receiving HTTP response." | |
2705 | -#~ msgstr "Erro recebendo resposta HTTP" | |
2706 | - | |
2707 | 2761 | #~ msgid "Error resolving %s: %s" |
2708 | 2762 | #~ msgstr "Erro ao resolver %s: %s" |
2709 | 2763 | |
... | ... | @@ -2789,12 +2843,14 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2789 | 2843 | #~ msgid "Get transfer queue from file" |
2790 | 2844 | #~ msgstr "Obtêm a fila de arquivos a transferir de um arquivo" |
2791 | 2845 | |
2846 | +#~ msgid "Got a bad formatted certificate revocation list from LDAP server" | |
2847 | +#~ msgstr "" | |
2848 | +#~ "Obtive lista de certificados revogados com formato inválido do servidor " | |
2849 | +#~ "LDAP" | |
2850 | + | |
2792 | 2851 | #~ msgid "Got an invalid CRL from server" |
2793 | 2852 | #~ msgstr "Obtive um CRL inválido do servidor" |
2794 | 2853 | |
2795 | -#~ msgid "Got an invalid certificate revocation list from server" | |
2796 | -#~ msgstr "Servidor enviou uma lista de certificados revogados inválida" | |
2797 | - | |
2798 | 2854 | #~ msgid "Gray" |
2799 | 2855 | #~ msgstr "Cinza" |
2800 | 2856 | |
... | ... | @@ -2993,15 +3049,9 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
2993 | 3049 | #~ msgid "Network data" |
2994 | 3050 | #~ msgstr "Tráfego de rede" |
2995 | 3051 | |
2996 | -#~ msgid "Network startup error" | |
2997 | -#~ msgstr "Erro ao iniciar a rede" | |
2998 | - | |
2999 | 3052 | #~ msgid "No active transfer" |
3000 | 3053 | #~ msgstr "Nenhuma transferência ativa" |
3001 | 3054 | |
3002 | -#~ msgid "No attribute in LDAP search URL" | |
3003 | -#~ msgstr "Nenhum atributo na URL de pesquisa LDAP" | |
3004 | - | |
3005 | 3055 | #~ msgid "No transfer" |
3006 | 3056 | #~ msgstr "Nenhuma transferência" |
3007 | 3057 | |
... | ... | @@ -3397,6 +3447,9 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
3397 | 3447 | #~ msgid "SOCKS5 proxy: %s/%u: %s" |
3398 | 3448 | #~ msgstr "SOCKS5 proxy: %s/%u: %s" |
3399 | 3449 | |
3450 | +#~ msgid "SSL Error" | |
3451 | +#~ msgstr "Erro SSL" | |
3452 | + | |
3400 | 3453 | #~ msgid "SSL init failed!" |
3401 | 3454 | #~ msgstr "Inicialização SSL falhou" |
3402 | 3455 | |
... | ... | @@ -3846,9 +3899,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
3846 | 3899 | #~ msgid "Unable to find selected hostname." |
3847 | 3900 | #~ msgstr "Não consegui encontrar o host selecionado." |
3848 | 3901 | |
3849 | -#~ msgid "Unable to get certificate CRL" | |
3850 | -#~ msgstr "Unable to get certificate CRL" | |
3851 | - | |
3852 | 3902 | #~ msgid "Unable to paste formatted data" |
3853 | 3903 | #~ msgstr "Incapaz de colar texto formatado" |
3854 | 3904 | |
... | ... | @@ -3932,9 +3982,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
3932 | 3982 | #~ msgid "WSAEventSelect failed" |
3933 | 3983 | #~ msgstr "WSAEventSelect falhou" |
3934 | 3984 | |
3935 | -#~ msgid "WSAStartup failed" | |
3936 | -#~ msgstr "WSAStartup falhou" | |
3937 | - | |
3938 | 3985 | #~ msgid "WaitForMultipleObjects() failed when processing for events." |
3939 | 3986 | #~ msgstr "WaitForMultipleObjects() falhou ao processar eventos" |
3940 | 3987 | |
... | ... | @@ -3953,9 +4000,6 @@ msgstr "setsockopt(SO_OOBINLINE) has failed" |
3953 | 4000 | #~ msgid "Windows Western languages (CP1252)" |
3954 | 4001 | #~ msgstr "Windows ocidental (CP1252)" |
3955 | 4002 | |
3956 | -#~ msgid "Windows error %d" | |
3957 | -#~ msgstr "Erro windows foi %d" | |
3958 | - | |
3959 | 4003 | #~ msgid "X" |
3960 | 4004 | #~ msgstr "X" |
3961 | 4005 | ... | ... |
src/core/connect.c
... | ... | @@ -156,7 +156,7 @@ |
156 | 156 | if(hSession->ssl.host && rc) { |
157 | 157 | |
158 | 158 | // SSL is required and TLS/SSL has failed, abort. |
159 | - lib3270_popup(hSession,state.popup,0); | |
159 | + lib3270_popup(hSession,(const LIB3270_POPUP *) state.popup,0); | |
160 | 160 | lib3270_disconnect(hSession); |
161 | 161 | return rc; |
162 | 162 | ... | ... |
src/core/ctlr.c
... | ... | @@ -2696,101 +2696,3 @@ enum dbcs_state ctlr_dbcs_state(int baddr) |
2696 | 2696 | return dbcs? ea_buf[baddr].db: DBCS_NONE; |
2697 | 2697 | } |
2698 | 2698 | #endif /*]*/ |
2699 | - | |
2700 | -/* | |
2701 | - * Transaction timing. The time between sending an interrupt (PF, PA, Enter, | |
2702 | - * Clear) and the host unlocking the keyboard is indicated on the status line | |
2703 | - * to an accuracy of 0.1 seconds. If we don't repaint the screen before we see | |
2704 | - * the unlock, the time should be fairly accurate. | |
2705 | - */ | |
2706 | -//static struct timeval t_start; | |
2707 | -// static Boolean ticking = False; | |
2708 | -//static Boolean mticking = False; | |
2709 | -//static void * tick_id; | |
2710 | -//static struct timeval t_want; | |
2711 | - | |
2712 | -/* | |
2713 | -/// @brief Return the difference in milliseconds between two timevals. | |
2714 | -static long delta_msec(struct timeval *t1, struct timeval *t0) | |
2715 | -{ | |
2716 | - return (t1->tv_sec - t0->tv_sec) * 1000 + | |
2717 | - (t1->tv_usec - t0->tv_usec + 500) / 1000; | |
2718 | -} | |
2719 | - | |
2720 | -static int keep_ticking(H3270 *hSession) | |
2721 | -{ | |
2722 | - struct timeval t1; | |
2723 | - long msec; | |
2724 | - | |
2725 | - do | |
2726 | - { | |
2727 | - (void) gettimeofday(&t1, (struct timezone *) 0); | |
2728 | - hSession->t_want.tv_sec++; | |
2729 | - msec = delta_msec(&hSession->t_want, &t1); | |
2730 | - } while (msec <= 0); | |
2731 | - | |
2732 | - status_timing(hSession,&hSession->t_start, &t1); | |
2733 | - | |
2734 | - return 1; | |
2735 | -} | |
2736 | -*/ | |
2737 | - | |
2738 | -/* | |
2739 | -void ticking_start(H3270 *hSession, Boolean anyway) | |
2740 | -{ | |
2741 | - CHECK_SESSION_HANDLE(hSession); | |
2742 | - | |
2743 | - if(hSession->cbk.set_timer) | |
2744 | - { | |
2745 | - if(lib3270_get_toggle(hSession,LIB3270_TOGGLE_SHOW_TIMING) || anyway) | |
2746 | - hSession->cbk.set_timer(hSession,1); | |
2747 | - } | |
2748 | - else | |
2749 | - { | |
2750 | - (void) gettimeofday(&hSession->t_start, (struct timezone *) 0); | |
2751 | - | |
2752 | - hSession->mticking = 1; | |
2753 | - | |
2754 | - if (!lib3270_get_toggle(hSession,LIB3270_TOGGLE_SHOW_TIMING) && !anyway) | |
2755 | - return; | |
2756 | - | |
2757 | - status_untiming(hSession); | |
2758 | - | |
2759 | - if (hSession->ticking) | |
2760 | - RemoveTimer(hSession, hSession->tick_id); | |
2761 | - | |
2762 | - hSession->ticking = 1; | |
2763 | - hSession->tick_id = AddTimer(1000, hSession, keep_ticking); | |
2764 | - hSession->t_want = hSession->t_start; | |
2765 | - } | |
2766 | - | |
2767 | -} | |
2768 | -*/ | |
2769 | - | |
2770 | -/* | |
2771 | -static void ticking_stop(H3270 *hSession) | |
2772 | -{ | |
2773 | - CHECK_SESSION_HANDLE(hSession); | |
2774 | - | |
2775 | - if(hSession->cbk.set_timer) | |
2776 | - { | |
2777 | - hSession->cbk.set_timer(hSession,0); | |
2778 | - } | |
2779 | - else | |
2780 | - { | |
2781 | - struct timeval t1; | |
2782 | - | |
2783 | - (void) gettimeofday(&t1, (struct timezone *) 0); | |
2784 | - if (hSession->mticking) | |
2785 | - hSession->mticking = 0; | |
2786 | - else | |
2787 | - return; | |
2788 | - | |
2789 | - if (!hSession->ticking) | |
2790 | - return; | |
2791 | - RemoveTimer(hSession, hSession->tick_id); | |
2792 | - hSession->ticking = 0; | |
2793 | - status_timing(hSession,&hSession->t_start, &t1); | |
2794 | - } | |
2795 | -} | |
2796 | -*/ | ... | ... |
src/core/host.c
... | ... | @@ -65,7 +65,7 @@ |
65 | 65 | /** |
66 | 66 | * @brief Called from timer to attempt an automatic reconnection. |
67 | 67 | */ |
68 | -static int check_for_auto_reconnect(H3270 *hSession) | |
68 | +static int check_for_auto_reconnect(H3270 *hSession, void GNUC_UNUSED(*userdata)) | |
69 | 69 | { |
70 | 70 | |
71 | 71 | if(hSession->auto_reconnect_inprogress) |
... | ... | @@ -95,7 +95,7 @@ int lib3270_activate_auto_reconnect(H3270 *hSession, unsigned long msec) |
95 | 95 | return EBUSY; |
96 | 96 | |
97 | 97 | hSession->auto_reconnect_inprogress = 1; |
98 | - (void) AddTimer(msec, hSession, check_for_auto_reconnect); | |
98 | + (void) AddTimer(msec, hSession, check_for_auto_reconnect, NULL); | |
99 | 99 | |
100 | 100 | return 0; |
101 | 101 | } |
... | ... | @@ -238,11 +238,11 @@ void lib3270_st_changed(H3270 *hSession, LIB3270_STATE tx, int mode) |
238 | 238 | { |
239 | 239 | struct lib3270_linked_list_node * node; |
240 | 240 | |
241 | - debug("%s(%s,%d)",__FUNCTION__,lib3270_connection_state_get_name(tx),mode); | |
241 | + debug("%s(%s,%d)",__FUNCTION__,lib3270_state_get_name(tx),mode); | |
242 | 242 | trace_dsn( |
243 | 243 | hSession, |
244 | 244 | "Notifying state %s with mode %d.\n", |
245 | - lib3270_connection_state_get_name(tx), | |
245 | + lib3270_state_get_name(tx), | |
246 | 246 | mode |
247 | 247 | ); |
248 | 248 | ... | ... |
src/core/iocalls.c
... | ... | @@ -63,7 +63,7 @@ |
63 | 63 | |
64 | 64 | // Timeout calls |
65 | 65 | static void internal_remove_timer(H3270 *session, void *timer); |
66 | - static void * internal_add_timer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)); | |
66 | + static void * internal_add_timer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session, void *userdata), void *userdata); | |
67 | 67 | |
68 | 68 | static void * internal_add_poll(H3270 *session, int fd, LIB3270_IO_FLAG flag, void(*proc)(H3270 *, int, LIB3270_IO_FLAG, void *), void *userdata ); |
69 | 69 | static void internal_remove_poll(H3270 *session, void *id); |
... | ... | @@ -78,7 +78,7 @@ |
78 | 78 | |
79 | 79 | /*---[ Active callbacks ]-----------------------------------------------------------------------------------*/ |
80 | 80 | |
81 | - static void * (*add_timer)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)) | |
81 | + static void * (*add_timer)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session, void *userdata), void *userdata) | |
82 | 82 | = internal_add_timer; |
83 | 83 | |
84 | 84 | static void (*remove_timer)(H3270 *session, void *timer) |
... | ... | @@ -128,7 +128,7 @@ static void ms_ts(unsigned long long *u) |
128 | 128 | } |
129 | 129 | #endif |
130 | 130 | |
131 | -static void * internal_add_timer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)) | |
131 | +static void * internal_add_timer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session, void *userdata), void *userdata) | |
132 | 132 | { |
133 | 133 | timeout_t *t_new; |
134 | 134 | timeout_t *t; |
... | ... | @@ -139,6 +139,7 @@ static void * internal_add_timer(H3270 *session, unsigned long interval_ms, int |
139 | 139 | t_new = (timeout_t *) lib3270_malloc(sizeof(timeout_t)); |
140 | 140 | |
141 | 141 | t_new->proc = proc; |
142 | + t_new->userdata = userdata; | |
142 | 143 | t_new->in_play = False; |
143 | 144 | |
144 | 145 | #if defined(_WIN32) |
... | ... | @@ -207,28 +208,6 @@ static void internal_remove_timer(H3270 *session, void * timer) |
207 | 208 | if(!st->in_play) |
208 | 209 | lib3270_linked_list_delete_node(&session->timeouts,timer); |
209 | 210 | |
210 | - /* | |
211 | - timeout_t *t; | |
212 | - timeout_t *prev = TN; | |
213 | - | |
214 | - | |
215 | - if (st->in_play) | |
216 | - return; | |
217 | - | |
218 | - for (t = session->timeouts; t != TN; t = t->next) | |
219 | - { | |
220 | - if (t == st) | |
221 | - { | |
222 | - if (prev != TN) | |
223 | - prev->next = t->next; | |
224 | - else | |
225 | - session->timeouts = t->next; | |
226 | - lib3270_free(t); | |
227 | - return; | |
228 | - } | |
229 | - prev = t; | |
230 | - } | |
231 | - */ | |
232 | 211 | } |
233 | 212 | |
234 | 213 | /* I/O events. */ |
... | ... | @@ -250,35 +229,7 @@ static void * internal_add_poll(H3270 *session, int fd, LIB3270_IO_FLAG flag, vo |
250 | 229 | static void internal_remove_poll(H3270 *session, void *id) |
251 | 230 | { |
252 | 231 | lib3270_linked_list_delete_node(&session->input.list,id); |
253 | - | |
254 | 232 | session->input.changed = 1; |
255 | - | |
256 | - /* | |
257 | - input_t *ip; | |
258 | - input_t *prev = (input_t *)NULL; | |
259 | - | |
260 | - for (ip = session->inputs; ip != (input_t *) NULL; ip = (input_t *) ip->next) | |
261 | - { | |
262 | - if (ip == (input_t *)id) | |
263 | - break; | |
264 | - | |
265 | - prev = ip; | |
266 | - } | |
267 | - | |
268 | - if (ip == (input_t *)NULL) | |
269 | - { | |
270 | - lib3270_write_log(session,"lib3270","Invalid call to (%s): Input %p wasnt found in the list",__FUNCTION__,id); | |
271 | - return; | |
272 | - } | |
273 | - | |
274 | - if (prev != (input_t *)NULL) | |
275 | - prev->next = ip->next; | |
276 | - else | |
277 | - session->inputs = (input_t *) ip->next; | |
278 | - | |
279 | - lib3270_free(ip); | |
280 | - session->inputs_changed = 1; | |
281 | - */ | |
282 | 233 | } |
283 | 234 | |
284 | 235 | static void internal_set_poll_state(H3270 *session, void *id, int enabled) |
... | ... | @@ -371,11 +322,14 @@ static void internal_ring_bell(H3270 GNUC_UNUSED(*session)) |
371 | 322 | |
372 | 323 | /* External entry points */ |
373 | 324 | |
374 | -void * AddTimer(unsigned long interval_ms, H3270 *session, int (*proc)(H3270 *session)) | |
325 | +void * AddTimer(unsigned long interval_ms, H3270 *session, int (*proc)(H3270 *session, void *userdata), void *userdata) | |
375 | 326 | { |
376 | - void *timer; | |
377 | - CHECK_SESSION_HANDLE(session); | |
378 | - timer = add_timer(session,interval_ms,proc); | |
327 | + void *timer = add_timer( | |
328 | + session, | |
329 | + interval_ms ? interval_ms : 100, // Prevents a zero-value timer. | |
330 | + proc, | |
331 | + userdata | |
332 | + ); | |
379 | 333 | trace("Timeout %p created with %ld ms",timer,interval_ms); |
380 | 334 | return timer; |
381 | 335 | } |
... | ... | @@ -425,7 +379,7 @@ void remove_input_calls(H3270 *session) |
425 | 379 | } |
426 | 380 | } |
427 | 381 | |
428 | -LIB3270_EXPORT void lib3270_register_timer_handlers(void * (*add)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)), void (*rm)(H3270 *session, void *timer)) | |
382 | +LIB3270_EXPORT void lib3270_register_timer_handlers(void * (*add)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session,void *userdata), void *userdata), void (*rm)(H3270 *session, void *timer)) | |
429 | 383 | { |
430 | 384 | if(add) |
431 | 385 | add_timer = add; | ... | ... |
src/core/keyboard/kybd.c
... | ... | @@ -1009,7 +1009,7 @@ LIB3270_EXPORT int lib3270_clear_operator_error(H3270 *hSession) |
1009 | 1009 | /** |
1010 | 1010 | * @brief Deferred keyboard unlock. |
1011 | 1011 | */ |
1012 | -static int defer_unlock(H3270 *hSession) | |
1012 | +static int defer_unlock(H3270 *hSession, void GNUC_UNUSED(*userdata)) | |
1013 | 1013 | { |
1014 | 1014 | lib3270_kybdlock_clear(hSession,KL_DEFERRED_UNLOCK); |
1015 | 1015 | status_reset(hSession); |
... | ... | @@ -1067,12 +1067,12 @@ void do_reset(H3270 *hSession, Boolean explicit) |
1067 | 1067 | |
1068 | 1068 | if(hSession->unlock_delay_ms) |
1069 | 1069 | { |
1070 | - hSession->unlock_id = AddTimer(hSession->unlock_delay_ms, hSession, defer_unlock); | |
1070 | + hSession->unlock_id = AddTimer(hSession->unlock_delay_ms, hSession, defer_unlock, NULL); | |
1071 | 1071 | } |
1072 | 1072 | else |
1073 | 1073 | { |
1074 | 1074 | hSession->unlock_id = 0; |
1075 | - defer_unlock(hSession); | |
1075 | + defer_unlock(hSession, NULL); | |
1076 | 1076 | } |
1077 | 1077 | |
1078 | 1078 | } | ... | ... |
src/core/linux/connect.c
... | ... | @@ -321,6 +321,15 @@ |
321 | 321 | |
322 | 322 | if(seconds) |
323 | 323 | { |
324 | + int rc = lib3270_wait_for_cstate(hSession,LIB3270_CONNECTED_TN3270E,seconds); | |
325 | + if(rc) | |
326 | + { | |
327 | + lib3270_disconnect(hSession); | |
328 | + lib3270_write_log(hSession,"connect", "%s: %s",__FUNCTION__,strerror(ETIMEDOUT)); | |
329 | + return errno = rc; | |
330 | + } | |
331 | + | |
332 | + /* | |
324 | 333 | time_t end = time(0)+seconds; |
325 | 334 | |
326 | 335 | while(time(0) < end) |
... | ... | @@ -358,6 +367,7 @@ |
358 | 367 | lib3270_write_log(hSession,"connect", "%s: %s",__FUNCTION__,strerror(ETIMEDOUT)); |
359 | 368 | |
360 | 369 | return errno = ETIMEDOUT; |
370 | + */ | |
361 | 371 | } |
362 | 372 | |
363 | 373 | return 0; | ... | ... |
src/core/linux/event_dispatcher.c
... | ... | @@ -188,11 +188,13 @@ retry: |
188 | 188 | if (t->tv.tv_sec < now.tv_sec ||(t->tv.tv_sec == now.tv_sec && t->tv.tv_usec < now.tv_usec)) |
189 | 189 | { |
190 | 190 | t->in_play = True; |
191 | - (*t->proc)(hSession); | |
192 | - processed_any = True; | |
193 | 191 | |
192 | + (*t->proc)(hSession,t->userdata); | |
194 | 193 | lib3270_linked_list_delete_node(&hSession->timeouts,t); |
195 | 194 | |
195 | + processed_any = True; | |
196 | + | |
197 | + | |
196 | 198 | } |
197 | 199 | else |
198 | 200 | { | ... | ... |
src/core/properties/boolean.c
... | ... | @@ -45,12 +45,19 @@ |
45 | 45 | return hSession->starting != 0; |
46 | 46 | } |
47 | 47 | |
48 | - void lib3270_disable_crl_download(H3270 *hSession) | |
49 | - { | |
50 | 48 | #if defined(HAVE_LIBSSLx) && defined(SSL_ENABLE_CRL_CHECK) |
51 | - hSession->ssl.crl.download = 0; | |
52 | -#endif // SSL_ENABLE_CRL_CHECK | |
49 | + LIB3270_EXPORT int lib3270_ssl_set_crl_download(H3270 *hSession, int enabled) | |
50 | + { | |
51 | + FAIL_IF_ONLINE(hSession); | |
52 | + hSession->ssl.crl.download = enabled ? 1 : 0; | |
53 | + return 0; | |
54 | + } | |
55 | +#else | |
56 | + LIB3270_EXPORT int lib3270_ssl_set_crl_download(H3270 GNUC_UNUSED(*hSession), int GNUC_UNUSED(enabled)) | |
57 | + { | |
58 | + return errno = ENOTSUP; | |
53 | 59 | } |
60 | +#endif // HAVE_LIBSSL && SSL_ENABLE_CRL_CHECK | |
54 | 61 | |
55 | 62 | const LIB3270_INT_PROPERTY * lib3270_get_boolean_properties_list(void) |
56 | 63 | { | ... | ... |
src/core/telnet.c
... | ... | @@ -1865,24 +1865,48 @@ const char * lib3270_connection_state_get_name(const LIB3270_CSTATE cstate) |
1865 | 1865 | { |
1866 | 1866 | static const char *state_names[] = |
1867 | 1867 | { |
1868 | - "unconnected", | |
1869 | - "connecting", | |
1870 | - "pending", | |
1871 | - "connected initial", | |
1872 | - "TN3270 NVT", | |
1873 | - "TN3270 3270", | |
1874 | - "TN3270E", | |
1875 | - "TN3270E NVT", | |
1876 | - "TN3270E SSCP-LU", | |
1877 | - "TN3270E 3270" | |
1868 | + N_("Unconnected"), | |
1869 | + N_("Resolving"), | |
1870 | + N_("Pending"), | |
1871 | + N_("Connected initial"), | |
1872 | + N_("TN3270 NVT"), | |
1873 | + N_("TN3270 3270"), | |
1874 | + N_("TN3270E"), | |
1875 | + N_("TN3270E NVT"), | |
1876 | + N_("TN3270E SSCP-LU"), | |
1877 | + N_("TN3270E 3270") | |
1878 | 1878 | }; |
1879 | 1879 | |
1880 | 1880 | if(cstate > (sizeof(state_names)/sizeof(state_names[0]))) |
1881 | - return "unknown"; | |
1881 | + return _("Unknown"); | |
1882 | 1882 | |
1883 | - return state_names[cstate]; | |
1883 | + return dgettext(GETTEXT_PACKAGE,state_names[cstate]); | |
1884 | 1884 | } |
1885 | 1885 | |
1886 | +LIB3270_EXPORT const char * lib3270_state_get_name(const LIB3270_STATE state) | |
1887 | +{ | |
1888 | + static const char *state_names[] = | |
1889 | + { | |
1890 | + N_("Resolving"), | |
1891 | + N_("Connecting"), | |
1892 | + N_("Half connect"), | |
1893 | + N_("Connect"), | |
1894 | + N_("3270 Mode"), | |
1895 | + N_("Line mode"), | |
1896 | + N_("Remodel"), | |
1897 | + N_("Printer"), | |
1898 | + N_("Exiting"), | |
1899 | + N_("Charset"), | |
1900 | + }; | |
1901 | + | |
1902 | + if(state > (sizeof(state_names)/sizeof(state_names[0]))) | |
1903 | + return _("Unknown"); | |
1904 | + | |
1905 | + return dgettext(GETTEXT_PACKAGE,state_names[state]); | |
1906 | + | |
1907 | +} | |
1908 | + | |
1909 | + | |
1886 | 1910 | /** |
1887 | 1911 | * Check for switches between NVT, SSCP-LU and 3270 modes. |
1888 | 1912 | * | ... | ... |
src/core/wait.c
... | ... | @@ -31,9 +31,16 @@ |
31 | 31 | #include <lib3270/log.h> |
32 | 32 | #include <lib3270/trace.h> |
33 | 33 | #include "kybdc.h" |
34 | +#include "utilc.h" | |
34 | 35 | |
35 | 36 | /*---[ Implement ]------------------------------------------------------------------------------------------*/ |
36 | 37 | |
38 | +static int timer_expired(H3270 GNUC_UNUSED(*hSession), void *userdata) | |
39 | +{ | |
40 | + *((int *) userdata) = 1; | |
41 | + return 0; | |
42 | +} | |
43 | + | |
37 | 44 | LIB3270_EXPORT int lib3270_wait_for_update(H3270 GNUC_UNUSED(*hSession), int GNUC_UNUSED(seconds)) |
38 | 45 | { |
39 | 46 | return errno = ENOTSUP; |
... | ... | @@ -41,57 +48,90 @@ LIB3270_EXPORT int lib3270_wait_for_update(H3270 GNUC_UNUSED(*hSession), int GNU |
41 | 48 | |
42 | 49 | LIB3270_EXPORT int lib3270_wait_for_ready(H3270 *hSession, int seconds) |
43 | 50 | { |
44 | - time_t end = time(0)+seconds; | |
45 | - | |
46 | - if(lib3270_is_disconnected(hSession)) | |
47 | - return errno = ENOTCONN; | |
51 | + FAIL_IF_NOT_ONLINE(hSession); | |
48 | 52 | |
49 | - lib3270_main_iterate(hSession,0); | |
53 | + debug("%s",__FUNCTION__); | |
54 | + debug("Session lock state is %d",lib3270_get_lock_status(hSession)); | |
50 | 55 | |
51 | - // Keyboard is locked by operator error, fails! | |
52 | - if(hSession->kybdlock && KYBDLOCK_IS_OERR(hSession)) | |
53 | - return errno = EPERM; | |
56 | + int rc = 0; | |
57 | + int timeout = 0; | |
58 | + void * timer = AddTimer(seconds * 1000, hSession, timer_expired, &timeout); | |
54 | 59 | |
55 | - do | |
60 | + while(!rc) | |
56 | 61 | { |
57 | - if(!lib3270_get_lock_status(hSession)) | |
58 | - return 0; | |
62 | + if(timeout) { | |
63 | + // Timeout! The timer was destroyed. | |
64 | + debug("%s exits with ETIMEDOUT",__FUNCTION__); | |
65 | + return errno = ETIMEDOUT; | |
66 | + } | |
67 | + | |
68 | + if(lib3270_get_lock_status(hSession) == LIB3270_MESSAGE_NONE) | |
69 | + { | |
70 | + // Is unlocked, break. | |
71 | + | |
72 | + break; | |
73 | + } | |
59 | 74 | |
60 | 75 | if(lib3270_is_disconnected(hSession)) |
61 | - return errno = ENOTCONN; | |
76 | + { | |
77 | + rc = errno = ENOTCONN; | |
78 | + break; | |
79 | + } | |
62 | 80 | |
63 | - lib3270_main_iterate(hSession,1); | |
81 | + if(hSession->kybdlock && KYBDLOCK_IS_OERR(hSession)) | |
82 | + { | |
83 | + rc = errno = EPERM; | |
84 | + break; | |
85 | + } | |
64 | 86 | |
87 | + debug("%s: Waiting",__FUNCTION__); | |
88 | + lib3270_main_iterate(hSession,1); | |
65 | 89 | } |
66 | - while(time(0) < end); | |
90 | + RemoveTimer(hSession,timer); | |
91 | + | |
92 | + debug("%s exits with rc=%d",__FUNCTION__,rc); | |
93 | + return rc; | |
67 | 94 | |
68 | - return errno = ETIMEDOUT; | |
69 | 95 | } |
70 | 96 | |
71 | 97 | int lib3270_wait_for_string(H3270 *hSession, const char *key, int seconds) |
72 | 98 | { |
73 | - time_t end = time(0)+seconds; | |
74 | - | |
75 | 99 | FAIL_IF_NOT_ONLINE(hSession); |
76 | 100 | |
77 | - lib3270_main_iterate(hSession,0); | |
101 | + int rc = 0; | |
102 | + int timeout = 0; | |
103 | + void * timer = AddTimer(seconds * 1000, hSession, timer_expired, &timeout); | |
78 | 104 | |
79 | - do | |
105 | + while(!rc) | |
80 | 106 | { |
107 | + if(timeout) { | |
108 | + // Timeout! The timer was destroyed. | |
109 | + return errno = ETIMEDOUT; | |
110 | + } | |
111 | + | |
81 | 112 | // Keyboard is locked by operator error, fails! |
82 | 113 | if(hSession->kybdlock && KYBDLOCK_IS_OERR(hSession)) |
83 | - return errno = EPERM; | |
114 | + { | |
115 | + rc = errno = EPERM; | |
116 | + break; | |
117 | + } | |
84 | 118 | |
85 | 119 | if(!lib3270_is_connected(hSession)) |
86 | - return errno = ENOTCONN; | |
120 | + { | |
121 | + rc = errno = ENOTCONN; | |
122 | + break; | |
123 | + } | |
87 | 124 | |
88 | 125 | char * contents = lib3270_get_string_at_address(hSession, 0, -1, 0); |
89 | 126 | if(!contents) |
90 | - return errno; | |
127 | + { | |
128 | + rc = errno; | |
129 | + break; | |
130 | + } | |
91 | 131 | |
92 | 132 | if(strstr(contents,key)) { |
93 | 133 | lib3270_free(contents); |
94 | - return 0; | |
134 | + break; | |
95 | 135 | } |
96 | 136 | |
97 | 137 | lib3270_free(contents); |
... | ... | @@ -99,44 +139,58 @@ int lib3270_wait_for_string(H3270 *hSession, const char *key, int seconds) |
99 | 139 | lib3270_main_iterate(hSession,1); |
100 | 140 | |
101 | 141 | } |
102 | - while(time(0) < end); | |
142 | + RemoveTimer(hSession,timer); | |
143 | + | |
144 | + return rc; | |
103 | 145 | |
104 | - return errno = ETIMEDOUT; | |
105 | 146 | } |
106 | 147 | |
107 | 148 | int lib3270_wait_for_string_at_address(H3270 *hSession, int baddr, const char *key, int seconds) |
108 | 149 | { |
109 | - time_t end = time(0)+seconds; | |
110 | - | |
111 | 150 | FAIL_IF_NOT_ONLINE(hSession); |
112 | 151 | |
113 | - lib3270_main_iterate(hSession,0); | |
114 | - | |
115 | 152 | if(baddr < 0) |
116 | 153 | baddr = lib3270_get_cursor_address(hSession); |
117 | 154 | |
118 | - do | |
155 | + int rc = 0; | |
156 | + int timeout = 0; | |
157 | + void * timer = AddTimer(seconds * 1000, hSession, timer_expired, &timeout); | |
158 | + | |
159 | + while(!rc) | |
119 | 160 | { |
161 | + if(timeout) { | |
162 | + // Timeout! The timer was destroyed. | |
163 | + return errno = ETIMEDOUT; | |
164 | + } | |
165 | + | |
120 | 166 | // Keyboard is locked by operator error, fails! |
121 | 167 | if(hSession->kybdlock && KYBDLOCK_IS_OERR(hSession)) |
122 | - return errno = EPERM; | |
168 | + { | |
169 | + rc = errno = EPERM; | |
170 | + break; | |
171 | + } | |
123 | 172 | |
124 | 173 | if(!lib3270_is_connected(hSession)) |
125 | - return errno = ENOTCONN; | |
174 | + { | |
175 | + rc = errno = ENOTCONN; | |
176 | + break; | |
177 | + } | |
126 | 178 | |
127 | 179 | if(lib3270_cmp_string_at_address(hSession, baddr, key, 0) == 0) |
128 | - return 0; | |
180 | + { | |
181 | + break; | |
182 | + } | |
129 | 183 | |
130 | 184 | lib3270_main_iterate(hSession,1); |
131 | 185 | |
132 | 186 | } |
133 | - while(time(0) < end); | |
187 | + RemoveTimer(hSession,timer); | |
134 | 188 | |
135 | - return errno = ETIMEDOUT; | |
189 | + return rc; | |
136 | 190 | |
137 | 191 | } |
138 | 192 | |
139 | -int lib3270_wait_for_string_at(H3270 *hSession, unsigned int row, unsigned int col, const char *key, int seconds) | |
193 | +LIB3270_EXPORT int lib3270_wait_for_string_at(H3270 *hSession, unsigned int row, unsigned int col, const char *key, int seconds) | |
140 | 194 | { |
141 | 195 | int baddr = lib3270_translate_to_address(hSession,row,col); |
142 | 196 | if(baddr < 0) |
... | ... | @@ -144,3 +198,37 @@ int lib3270_wait_for_string_at(H3270 *hSession, unsigned int row, unsigned int c |
144 | 198 | |
145 | 199 | return lib3270_wait_for_string_at_address(hSession,baddr,key,seconds); |
146 | 200 | } |
201 | + | |
202 | +LIB3270_EXPORT int lib3270_wait_for_cstate(H3270 *hSession, LIB3270_CSTATE cstate, int seconds) | |
203 | +{ | |
204 | + | |
205 | + int rc = -1; | |
206 | + int timeout = 0; | |
207 | + void * timer = AddTimer(seconds * 1000, hSession, timer_expired, &timeout); | |
208 | + | |
209 | + while(rc == -1) | |
210 | + { | |
211 | + if(timeout) { | |
212 | + // Timeout! The timer was destroyed. | |
213 | + return errno = ETIMEDOUT; | |
214 | + } | |
215 | + | |
216 | + if(hSession->connection.state == LIB3270_NOT_CONNECTED) | |
217 | + { | |
218 | + rc = ENOTCONN; | |
219 | + break; | |
220 | + } | |
221 | + | |
222 | + if(!hSession->starting && hSession->connection.state == cstate) | |
223 | + { | |
224 | + rc = 0; | |
225 | + break; | |
226 | + } | |
227 | + | |
228 | + lib3270_main_iterate(hSession,1); | |
229 | + | |
230 | + } | |
231 | + RemoveTimer(hSession,timer); | |
232 | + | |
233 | + return errno = rc; | |
234 | +} | ... | ... |
src/core/windows/connect.c
... | ... | @@ -262,7 +262,7 @@ int net_reconnect(H3270 *hSession, int seconds) |
262 | 262 | iconv_t hConv = iconv_open("UTF-8",lib3270_win32_local_charset()); |
263 | 263 | if(iconv( |
264 | 264 | hConv, |
265 | - (ICONV_CONST char *) &host.message, | |
265 | + (ICONV_CONST char **) &host.message, | |
266 | 266 | &in, |
267 | 267 | &ptr,&out |
268 | 268 | ) == ((size_t) -1)) |
... | ... | @@ -345,6 +345,18 @@ int net_reconnect(H3270 *hSession, int seconds) |
345 | 345 | |
346 | 346 | if(seconds) |
347 | 347 | { |
348 | + int rc = lib3270_wait_for_cstate(hSession,LIB3270_CONNECTED_TN3270E,seconds); | |
349 | + if(rc) | |
350 | + { | |
351 | + lib3270_disconnect(hSession); | |
352 | + lib3270_write_log(hSession,"connect", "%s: %s",__FUNCTION__,strerror(rc)); | |
353 | + return errno = rc; | |
354 | + } | |
355 | + } | |
356 | + | |
357 | + /* | |
358 | + if(seconds) | |
359 | + { | |
348 | 360 | time_t end = time(0)+seconds; |
349 | 361 | |
350 | 362 | while(time(0) < end) |
... | ... | @@ -380,6 +392,7 @@ int net_reconnect(H3270 *hSession, int seconds) |
380 | 392 | lib3270_write_log(hSession,"connect", "%s: %s",__FUNCTION__,strerror(ETIMEDOUT)); |
381 | 393 | return errno = ETIMEDOUT; |
382 | 394 | } |
395 | + */ | |
383 | 396 | |
384 | 397 | return 0; |
385 | 398 | ... | ... |
src/core/windows/event_dispatcher.c
src/include/internals.h
src/include/lib3270.h
... | ... | @@ -686,6 +686,8 @@ |
686 | 686 | |
687 | 687 | LIB3270_EXPORT const char * lib3270_connection_state_get_name(const LIB3270_CSTATE cstate); |
688 | 688 | |
689 | + LIB3270_EXPORT const char * lib3270_state_get_name(const LIB3270_STATE state); | |
690 | + | |
689 | 691 | /** |
690 | 692 | * @brief Pretend that a sequence of keys was entered at the keyboard. |
691 | 693 | * |
... | ... | @@ -970,7 +972,7 @@ |
970 | 972 | { |
971 | 973 | unsigned short sz; |
972 | 974 | |
973 | - void * (*AddTimer)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)); | |
975 | + void * (*AddTimer)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session, void *userdata), void *userdata); | |
974 | 976 | void (*RemoveTimer)(H3270 *session, void *timer); |
975 | 977 | |
976 | 978 | void * (*add_poll)(H3270 *session, int fd, LIB3270_IO_FLAG flag, void(*proc)(H3270 *, int, LIB3270_IO_FLAG, void *), void *userdata); |
... | ... | @@ -1001,7 +1003,7 @@ |
1001 | 1003 | * @param rm Callback for removing a timeout |
1002 | 1004 | * |
1003 | 1005 | */ |
1004 | - LIB3270_EXPORT void lib3270_register_timer_handlers(void * (*add)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)), void (*rm)(H3270 *session, void *timer)); | |
1006 | + LIB3270_EXPORT void lib3270_register_timer_handlers(void * (*add)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session, void *userdata), void *userdata), void (*rm)(H3270 *session, void *timer)); | |
1005 | 1007 | |
1006 | 1008 | LIB3270_EXPORT void lib3270_register_fd_handlers(void * (*add)(H3270 *session, int fd, LIB3270_IO_FLAG flag, void(*proc)(H3270 *, int, LIB3270_IO_FLAG, void *), void *userdata), void (*rm)(H3270 *, void *id)); |
1007 | 1009 | |
... | ... | @@ -1111,7 +1113,7 @@ |
1111 | 1113 | LIB3270_EXPORT int lib3270_wait_for_update(H3270 *hSession, int seconds); |
1112 | 1114 | |
1113 | 1115 | /** |
1114 | - * Wait "N" seconds for "ready" state. | |
1116 | + * @brief Wait "N" seconds for "ready" state. | |
1115 | 1117 | * |
1116 | 1118 | * @param seconds Number of seconds to wait. |
1117 | 1119 | * |
... | ... | @@ -1121,6 +1123,20 @@ |
1121 | 1123 | LIB3270_EXPORT int lib3270_wait_for_ready(H3270 *hSession, int seconds); |
1122 | 1124 | |
1123 | 1125 | /** |
1126 | + * @brief Wait "N" seconds for online state. | |
1127 | + * | |
1128 | + * @param seconds Number of seconds to wait. | |
1129 | + * | |
1130 | + * @return 0 if ok, errno code if not. | |
1131 | + * | |
1132 | + * @retval ETIMEDOUT Timeout waiting. | |
1133 | + * @retval ENOTCONN Not connected to host. | |
1134 | + * @retval 0 Session is online and in required state. | |
1135 | + * | |
1136 | + */ | |
1137 | + LIB3270_EXPORT int lib3270_wait_for_cstate(H3270 *hSession, LIB3270_CSTATE cstate, int seconds); | |
1138 | + | |
1139 | + /** | |
1124 | 1140 | * "beep" to notify user. |
1125 | 1141 | * |
1126 | 1142 | * If available play a sound signal do alert user. | ... | ... |
src/include/lib3270/properties.h
... | ... | @@ -216,9 +216,14 @@ |
216 | 216 | * @brief Disable automatic download of the CRL. |
217 | 217 | * |
218 | 218 | * @param hSession Session handle. |
219 | + * @param Value Non zero to enable automatic download of CRL. | |
219 | 220 | * |
221 | + * @return 0 if ok or error code if not (Sets errno). | |
222 | + * | |
223 | + * @retval 0 Success, the property was set. | |
224 | + * @retval ENOTSUP No SSL/TLS support. | |
220 | 225 | */ |
221 | - LIB3270_EXPORT void lib3270_disable_crl_download(H3270 *hSession); | |
226 | + LIB3270_EXPORT int lib3270_ssl_set_crl_download(H3270 *hSession, int enabled); | |
222 | 227 | |
223 | 228 | /** |
224 | 229 | * @brief Get lib3270 version info. | ... | ... |
src/include/utilc.h
... | ... | @@ -17,49 +17,20 @@ |
17 | 17 | * @brief Global declarations for util.c. |
18 | 18 | */ |
19 | 19 | |
20 | -LIB3270_INTERNAL char *ctl_see(int c); | |
20 | +LIB3270_INTERNAL char * ctl_see(int c); | |
21 | 21 | |
22 | - /* | |
23 | -LIB3270_INTERNAL void add_resource(const char *name, const char *value); | |
24 | -LIB3270_INTERNAL const char *get_message(const char *key); | |
25 | -LIB3270_INTERNAL const char *get_fresource(H3270 *hSession, const char *fmt, ...) LIB3270_GNUC_FORMAT(2, 3); | |
26 | -LIB3270_INTERNAL const char *get_resource(H3270 *hSession, const char *name); | |
27 | -LIB3270_INTERNAL int split_dbcs_resource(const char *value, char sep, char **part1, char **part2); | |
28 | -LIB3270_INTERNAL int split_dresource(char **st, char **left, char **right); | |
29 | -LIB3270_INTERNAL int split_lresource(char **st, char **value); | |
30 | -LIB3270_INTERNAL char *strip_whitespace(const char *s); | |
31 | -*/ | |
32 | - | |
33 | -LIB3270_INTERNAL char *xs_buffer(const char *fmt, ...) LIB3270_GNUC_FORMAT(1, 2); | |
34 | -LIB3270_INTERNAL void xs_error(const char *fmt, ...) LIB3270_GNUC_FORMAT(1, 2); | |
35 | -LIB3270_INTERNAL void xs_warning(const char *fmt, ...) LIB3270_GNUC_FORMAT(1, 2); | |
22 | +LIB3270_INTERNAL char * xs_buffer(const char *fmt, ...) LIB3270_GNUC_FORMAT(1, 2); | |
23 | +LIB3270_INTERNAL void xs_error(const char *fmt, ...) LIB3270_GNUC_FORMAT(1, 2); | |
24 | +LIB3270_INTERNAL void xs_warning(const char *fmt, ...) LIB3270_GNUC_FORMAT(1, 2); | |
36 | 25 | |
37 | 26 | LIB3270_INTERNAL void * AddInput(int, H3270 *session, void (*fn)(H3270 *session)); |
38 | 27 | LIB3270_INTERNAL void * AddOutput(int, H3270 *session, void (*fn)(H3270 *session)); |
39 | 28 | LIB3270_INTERNAL void * AddExcept(int, H3270 *session, void (*fn)(H3270 *session)); |
40 | 29 | |
41 | 30 | LIB3270_INTERNAL void RemoveSource(H3270 *session, void *cookie); |
42 | -LIB3270_INTERNAL void * AddTimer(unsigned long msec, H3270 *session, int (*fn)(H3270 *session)); | |
31 | +LIB3270_INTERNAL void * AddTimer(unsigned long msec, H3270 *session, int (*fn)(H3270 *session, void *userdata), void *userdata); | |
43 | 32 | LIB3270_INTERNAL void RemoveTimer(H3270 *session, void *cookie); |
44 | 33 | |
45 | -// LIB3270_INTERNAL const char * KeysymToString(KeySym k); | |
46 | - | |
47 | -// LIB3270_INTERNAL int read_resource_file(const char *filename, Boolean fatal); | |
48 | -// LIB3270_INTERNAL Boolean split_hier(char *label, char **base, char ***parents); | |
49 | - | |
50 | -/* | |
51 | -typedef struct { | |
52 | - char *buf; | |
53 | - int alloc_len; | |
54 | - int cur_len; | |
55 | -} rpf_t; | |
56 | - | |
57 | -LIB3270_INTERNAL void rpf_init(rpf_t *r); | |
58 | -LIB3270_INTERNAL void rpf_reset(rpf_t *r); | |
59 | -LIB3270_INTERNAL void rpf(rpf_t *r, char *fmt, ...) LIB3270_GNUC_FORMAT(2, 3); | |
60 | -LIB3270_INTERNAL void rpf_free(rpf_t *r); | |
61 | -*/ | |
62 | - | |
63 | 34 | /** |
64 | 35 | * @brief "unescape" text (Replaces %value for corresponding character). |
65 | 36 | * |
... | ... | @@ -71,7 +42,7 @@ LIB3270_INTERNAL void rpf_free(rpf_t *r); |
71 | 42 | LIB3270_INTERNAL char * lib3270_unescape(const char *text); |
72 | 43 | |
73 | 44 | /** |
74 | - * @brief Compare strings ignoring non alfanumeric chars. | |
45 | + * @brief Compare strings ignoring non alphanumeric chars. | |
75 | 46 | * |
76 | 47 | * @param s1 First string. |
77 | 48 | * @param s2 Second string. | ... | ... |
src/network_modules/openssl/private.h
src/ssl/linux/private.h
... | ... | @@ -52,7 +52,7 @@ |
52 | 52 | |
53 | 53 | #endif // HAVE_LDAP |
54 | 54 | |
55 | - #if defined (HAVE_LIBSSL) && defined(HAVE_LIBCURL) | |
55 | + #if defined (HAVE_LIBSSLx) && defined(HAVE_LIBCURL) | |
56 | 56 | |
57 | 57 | /// @brief Use libcurl to get CRL. |
58 | 58 | LIB3270_INTERNAL X509_CRL * get_crl_using_url(H3270 *hSession, SSL_ERROR_MESSAGE * message, const char *consturl); | ... | ... |
src/ssl/negotiate.c
src/ssl/notify.c
src/ssl/properties.c
... | ... | @@ -41,15 +41,19 @@ |
41 | 41 | * @return Non zero if the host URL has SSL scheme. |
42 | 42 | * |
43 | 43 | */ |
44 | +#ifdef HAVE_LIBSSLx | |
44 | 45 | LIB3270_EXPORT int lib3270_get_secure_host(const H3270 *hSession) |
45 | 46 | { |
46 | -#ifdef HAVE_LIBSSL | |
47 | 47 | return hSession->ssl.enabled ? 1 : 0; |
48 | +} | |
48 | 49 | #else |
50 | +LIB3270_EXPORT int lib3270_get_secure_host(const H3270 GNUC_UNUSED(*hSession)) | |
51 | +{ | |
52 | + errno = ENOTSUP; | |
49 | 53 | return 0; |
54 | +} | |
50 | 55 | #endif // HAVE_LIBSSL |
51 | 56 | |
52 | -} | |
53 | 57 | |
54 | 58 | #if defined(HAVE_LIBSSL) && defined(SSL_ENABLE_CRL_CHECK) |
55 | 59 | LIB3270_EXPORT char * lib3270_get_ssl_crl_text(const H3270 *hSession) |
... | ... | @@ -89,7 +93,7 @@ LIB3270_EXPORT char * lib3270_get_ssl_crl_text(const H3270 GNUC_UNUSED(*hSession |
89 | 93 | |
90 | 94 | LIB3270_EXPORT char * lib3270_get_ssl_peer_certificate_text(const H3270 *hSession) |
91 | 95 | { |
92 | -#ifdef HAVE_LIBSSL | |
96 | +#ifdef HAVE_LIBSSLx | |
93 | 97 | if(hSession->ssl.con) |
94 | 98 | { |
95 | 99 | X509 * peer = SSL_get_peer_certificate(hSession->ssl.con); | ... | ... |
src/testprogram/testprogram.c
... | ... | @@ -154,16 +154,45 @@ int main(int argc, char *argv[]) |
154 | 154 | |
155 | 155 | const void * online_listener = lib3270_register_action_group_listener(h,LIB3270_ACTION_GROUP_ONLINE,online_group_state_changed,NULL); |
156 | 156 | |
157 | - rc = lib3270_reconnect(h,120); | |
157 | + rc = lib3270_reconnect(h,0); | |
158 | 158 | printf("\n\nConnect exits with rc=%d (%s)\n\n",rc,strerror(rc)); |
159 | 159 | |
160 | 160 | if(!rc) |
161 | 161 | { |
162 | + rc = lib3270_wait_for_cstate(h,LIB3270_CONNECTED_TN3270E, 60); | |
163 | + printf("\n\nWait for LIB3270_CONNECTED_TN3270E exits with rc=%d (%s)\n\n",rc,strerror(rc)); | |
164 | + } | |
165 | + | |
166 | + if(!rc) | |
167 | + { | |
168 | + rc = lib3270_wait_for_ready(h,60); | |
169 | + printf("\n\nWait for ready exits with rc=%d (%s)\n\n",rc,strerror(rc)); | |
170 | + } | |
171 | + | |
172 | + if(!rc) | |
173 | + { | |
174 | + | |
162 | 175 | printf("\n\nWaiting starts %u\n",(unsigned int) time(NULL)); |
163 | - lib3270_wait_for_ready(h,10); | |
164 | - printf("Waiting ends %u\n\n",(unsigned int) time(NULL)); | |
165 | 176 | |
166 | - /* | |
177 | + { | |
178 | + // Performance checks | |
179 | + size_t f; | |
180 | + time_t start = time(0); | |
181 | + for(f=0;f < 1000; f++) { | |
182 | + lib3270_wait_for_ready(h,10); | |
183 | + } | |
184 | + | |
185 | + time_t tm = (time(0) - start); | |
186 | + printf("\n\nTime for 1000 iterations of wait_for_ready was %d\n",(int) tm); | |
187 | + | |
188 | + if(tm > 1) { | |
189 | + exit(-1); | |
190 | + } | |
191 | + | |
192 | + } | |
193 | + | |
194 | + printf("\n\nWaiting ends %u\n\n",(unsigned int) time(NULL)); | |
195 | + | |
167 | 196 | lib3270_enter(h); |
168 | 197 | lib3270_wait(h,5); |
169 | 198 | |
... | ... | @@ -185,7 +214,6 @@ int main(int argc, char *argv[]) |
185 | 214 | if(text) |
186 | 215 | printf("Screen:\n[%s]\n",text); |
187 | 216 | } |
188 | - */ | |
189 | 217 | |
190 | 218 | lib3270_disconnect(h); |
191 | 219 | ... | ... |