Commit a887bf87036ca3112e16a1f69429328021a09f8e

Authored by Perry Werneck
1 parent 1e9f6627

Fixing unexpected hangs on windows version.

.gitignore
... ... @@ -60,3 +60,4 @@ certs
60 60 confdefs.h
61 61 conftest.*
62 62 mstest.*
  63 +*.cscope_file_list
... ...
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-04 14:53-0300\n"
  8 +"POT-Creation-Date: 2020-07-09 20:22-0300\n"
9 9 "PO-Revision-Date: 2020-05-08 00:52-0300\n"
10 10 "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n"
11 11 "Language-Team: Português <>\n"
... ... @@ -265,8 +265,8 @@ msgstr &quot;Não foi possível criar requisição HTTP&quot;
265 265 msgid "Can't decode CRL"
266 266 msgstr "Não foi possível decodificar arquivo CRL"
267 267  
268   -#: src/ssl/windows/ldap.c:259 src/ssl/windows/http.c:74
269   -#: src/ssl/windows/curl.c:264
  268 +#: src/ssl/windows/curl.c:264 src/ssl/windows/http.c:74
  269 +#: src/ssl/windows/ldap.c:259
270 270 msgid "Can't decode certificate revocation list"
271 271 msgstr "Não foi possível decodificar a lista de certificados revogados"
272 272  
... ... @@ -371,7 +371,7 @@ msgstr &quot;Não foi possível iniciar transferência de arquivo.&quot;
371 371 msgid "Can't use winsock version %d.%d"
372 372 msgstr "Não posso usar versão winsock %d.%d"
373 373  
374   -#: src/ssl/negotiate.c:370 src/ssl/crl.c:165
  374 +#: src/ssl/crl.c:165 src/ssl/negotiate.c:370
375 375 msgid "Can't verify."
376 376 msgstr "Não foi possível verificar"
377 377  
... ... @@ -637,12 +637,12 @@ msgstr &quot;Apagar campos&quot;
637 637 msgid "Error"
638 638 msgstr "Erro"
639 639  
640   -#: src/core/ft/ft_dft.c:454 src/core/ft/ft_cut.c:423
  640 +#: src/core/ft/ft_cut.c:423 src/core/ft/ft_dft.c:454
641 641 #, c-format
642 642 msgid "Error \"%s\" reading from local file (rc=%d)"
643 643 msgstr "Erro \"%s\" lendo arquivo local (rc=%d)"
644 644  
645   -#: src/core/ft/ft_dft.c:332 src/core/ft/ft_cut.c:528
  645 +#: src/core/ft/ft_cut.c:528 src/core/ft/ft_dft.c:332
646 646 #, c-format
647 647 msgid "Error \"%s\" writing to local file (rc=%d)"
648 648 msgstr "Erro \"%s\" gravando arquivo local (rc=%d)"
... ... @@ -1006,8 +1006,8 @@ msgstr &quot;Move o cursor para o primeiro branco após o último não branco no camp
1006 1006 msgid "Move to first unprotected field on screen"
1007 1007 msgstr "Move para o primeiro campo desprotegido"
1008 1008  
1009   -#: src/core/telnet.c:320 src/core/windows/event_dispatcher.c:149
1010   -#: src/core/windows/connect.c:78
  1009 +#: src/core/telnet.c:320 src/core/windows/connect.c:78
  1010 +#: src/core/windows/event_dispatcher.c:149
1011 1011 msgid "Network error"
1012 1012 msgstr "Erro de rede"
1013 1013  
... ... @@ -1282,22 +1282,22 @@ msgstr &quot;Pesquisa não produziu nenhum valor&quot;
1282 1282 msgid "Secure connection was successful."
1283 1283 msgstr "Conexão segura efetuada com sucesso."
1284 1284  
1285   -#: src/ssl/negotiate.c:107 src/ssl/negotiate.c:241 src/ssl/negotiate.c:275
1286   -#: src/ssl/negotiate.c:369 src/ssl/negotiate.c:391 src/ssl/negotiate.c:412
1287   -#: src/ssl/crl.c:164 src/ssl/windows/ldap.c:108 src/ssl/windows/ldap.c:122
1288   -#: src/ssl/windows/ldap.c:151 src/ssl/windows/ldap.c:165
1289   -#: src/ssl/windows/ldap.c:180 src/ssl/windows/ldap.c:210
1290   -#: src/ssl/windows/ldap.c:222 src/ssl/windows/ldap.c:234
1291   -#: src/ssl/windows/ldap.c:258 src/ssl/windows/init.c:91
1292   -#: src/ssl/windows/init.c:112 src/ssl/windows/init.c:138
1293   -#: src/ssl/windows/init.c:149 src/ssl/windows/http.c:57
1294   -#: src/ssl/windows/http.c:73 src/ssl/windows/getcrl.c:57
1295   -#: src/ssl/windows/getcrl.c:74 src/ssl/windows/getcrl.c:86
1296   -#: src/ssl/windows/getcrl.c:118 src/ssl/windows/curl.c:188
  1285 +#: src/ssl/crl.c:164 src/ssl/negotiate.c:107 src/ssl/negotiate.c:241
  1286 +#: src/ssl/negotiate.c:275 src/ssl/negotiate.c:369 src/ssl/negotiate.c:391
  1287 +#: src/ssl/negotiate.c:412 src/ssl/windows/curl.c:188
1297 1288 #: src/ssl/windows/curl.c:218 src/ssl/windows/curl.c:242
1298 1289 #: src/ssl/windows/curl.c:263 src/ssl/windows/curl.c:272
1299 1290 #: src/ssl/windows/curl.c:300 src/ssl/windows/curl.c:333
1300   -#: src/ssl/windows/curl.c:369
  1291 +#: src/ssl/windows/curl.c:369 src/ssl/windows/getcrl.c:57
  1292 +#: src/ssl/windows/getcrl.c:74 src/ssl/windows/getcrl.c:86
  1293 +#: src/ssl/windows/getcrl.c:118 src/ssl/windows/http.c:57
  1294 +#: src/ssl/windows/http.c:73 src/ssl/windows/init.c:91
  1295 +#: src/ssl/windows/init.c:112 src/ssl/windows/init.c:138
  1296 +#: src/ssl/windows/init.c:149 src/ssl/windows/ldap.c:108
  1297 +#: src/ssl/windows/ldap.c:122 src/ssl/windows/ldap.c:151
  1298 +#: src/ssl/windows/ldap.c:165 src/ssl/windows/ldap.c:180
  1299 +#: src/ssl/windows/ldap.c:210 src/ssl/windows/ldap.c:222
  1300 +#: src/ssl/windows/ldap.c:234 src/ssl/windows/ldap.c:258
1301 1301 msgid "Security error"
1302 1302 msgstr "Erro de segurança"
1303 1303  
... ... @@ -1781,8 +1781,8 @@ msgstr &quot;Mostrar posição do cursor&quot;
1781 1781 msgid "Transfer cancelled by host"
1782 1782 msgstr "Transferência cancelada pelo host"
1783 1783  
1784   -#: src/core/ft/ft_dft.c:230 src/core/ft/ft_dft.c:373 src/core/ft/ft_cut.c:400
1785   -#: src/core/ft/ft_cut.c:495
  1784 +#: src/core/ft/ft_cut.c:400 src/core/ft/ft_cut.c:495 src/core/ft/ft_dft.c:230
  1785 +#: src/core/ft/ft_dft.c:373
1786 1786 msgid "Transfer cancelled by user"
1787 1787 msgstr "Transferência cancelada pelo usuário"
1788 1788  
... ...
src/core/connect.c
... ... @@ -115,6 +115,10 @@
115 115 }
116 116  
117 117 #if defined(HAVE_LIBSSL)
  118 + debug("%s: TLS/SSL is %s",__FUNCTION__,hSession->ssl.enabled ? "ENABLED" : "DISABLED")
  119 + trace_dsn(hSession,"TLS/SSL is %s\n", hSession->ssl.enabled ? "enabled" : "disabled" );
  120 +
  121 + if(hSession->ssl.enabled)
118 122 {
119 123 SSL_ERROR_MESSAGE ssl_error;
120 124 memset(&ssl_error,0,sizeof(ssl_error));
... ...
src/core/iocalls.c
... ... @@ -575,6 +575,8 @@ int non_blocking(H3270 *hSession, Boolean on)
575 575  
576 576 #endif
577 577  
  578 + debug("Socket %d is now %s",hSession->connection.sock,(on ? "Non Blocking" : "Blocking"));
  579 +
578 580 lib3270_set_poll_state(hSession,hSession->xio.read, on);
579 581 lib3270_set_poll_state(hSession,hSession->xio.write, on);
580 582 lib3270_set_poll_state(hSession,hSession->xio.except, on);
... ...
src/core/linux/connect.c
... ... @@ -196,8 +196,6 @@ static void net_connected(H3270 *hSession, int GNUC_UNUSED(fd), LIB3270_IO_FLAG
196 196 hSession->ever_3270 = False;
197 197  
198 198 #if defined(HAVE_LIBSSL)
199   - debug("%s: TLS/SSL is %s",__FUNCTION__,hSession->ssl.enabled ? "ENABLED" : "DISABLED")
200   - trace_dsn(hSession,"TLS/SSL is %s\n", hSession->ssl.enabled ? "enabled" : "disabled" );
201 199 if(hSession->ssl.enabled)
202 200 {
203 201 hSession->ssl.host = 1;
... ...
src/core/telnet.c
... ... @@ -482,6 +482,9 @@ LIB3270_EXPORT void lib3270_setup_session(H3270 *hSession)
482 482 trace_ds(hSession,"SENT HOSTNAME %s:%d\n", hSession->hostname, hSession->current_port);
483 483 }
484 484 */
  485 +
  486 + non_blocking(hSession,True);
  487 +
485 488 }
486 489  
487 490 /**
... ...
src/core/windows/connect.c
... ... @@ -190,19 +190,22 @@ static void sockstart(H3270 *session)
190 190 for(rp = result; hSession->connection.sock < 0 && rp != NULL; rp = rp->ai_next)
191 191 {
192 192 hSession->connection.sock = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
  193 +
193 194 if(hSession->connection.sock < 0)
194 195 {
195 196 ((struct resolver *) host)->rc = errno;
196 197 ((struct resolver *) host)->message = strerror(errno);
  198 + debug("Socket error %d: %s",((struct resolver *) host)->rc,((struct resolver *) host)->message);
197 199 continue;
198 200 }
199 201  
200 202 // Connected!
201 203 if(connect(hSession->connection.sock, rp->ai_addr, rp->ai_addrlen))
202 204 {
203   - SOCK_CLOSE(hSession);
204 205 ((struct resolver *) host)->rc = errno;
205 206 ((struct resolver *) host)->message = strerror(errno);
  207 + debug("Connection error %d: %s",((struct resolver *) host)->rc,((struct resolver *) host)->message);
  208 + SOCK_CLOSE(hSession);
206 209 continue;
207 210 }
208 211  
... ... @@ -210,6 +213,8 @@ static void sockstart(H3270 *session)
210 213  
211 214 freeaddrinfo(result);
212 215  
  216 + debug("%s: Connected using socket %d",__FUNCTION__,hSession->connection.sock);
  217 +
213 218 return 0;
214 219  
215 220 }
... ... @@ -314,6 +319,7 @@ int net_reconnect(H3270 *hSession, int seconds)
314 319  
315 320 if(hSession->ssl.enabled)
316 321 {
  322 + debug("%s: Enabling SSL ****************************",__FUNCTION__);
317 323 hSession->ssl.host = 1;
318 324 if(ssl_init(hSession))
319 325 return errno = ENOTCONN;
... ...
src/testprogram/testprogram.c
... ... @@ -36,6 +36,10 @@ static void online_group_state_changed(H3270 GNUC_UNUSED(*hSession), void GNUC_U
36 36  
37 37 int main(int argc, char *argv[])
38 38 {
  39 +#ifdef _WIN32
  40 + printf("Process %s running on pid %u\n",argv[0],(unsigned int) GetCurrentProcessId());
  41 +#endif // _WIN32
  42 +
39 43 #ifdef LC_ALL
40 44 setlocale( LC_ALL, "" );
41 45 #endif
... ...