Commit a887bf87036ca3112e16a1f69429328021a09f8e
1 parent
1e9f6627
Exists in
master
and in
3 other branches
Fixing unexpected hangs on windows version.
Showing
8 changed files
with
44 additions
and
26 deletions
Show diff stats
.gitignore
locale/pt_BR.po
@@ -5,7 +5,7 @@ msgid "" | @@ -5,7 +5,7 @@ msgid "" | ||
5 | msgstr "" | 5 | msgstr "" |
6 | "Project-Id-Version: pw3270 5.0\n" | 6 | "Project-Id-Version: pw3270 5.0\n" |
7 | "Report-Msgid-Bugs-To: \n" | 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 | "PO-Revision-Date: 2020-05-08 00:52-0300\n" | 9 | "PO-Revision-Date: 2020-05-08 00:52-0300\n" |
10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" | 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" |
11 | "Language-Team: Português <>\n" | 11 | "Language-Team: Português <>\n" |
@@ -265,8 +265,8 @@ msgstr "Não foi possível criar requisição HTTP" | @@ -265,8 +265,8 @@ msgstr "Não foi possível criar requisição HTTP" | ||
265 | msgid "Can't decode CRL" | 265 | msgid "Can't decode CRL" |
266 | msgstr "Não foi possível decodificar arquivo CRL" | 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 | msgid "Can't decode certificate revocation list" | 270 | msgid "Can't decode certificate revocation list" |
271 | msgstr "Não foi possível decodificar a lista de certificados revogados" | 271 | msgstr "Não foi possível decodificar a lista de certificados revogados" |
272 | 272 | ||
@@ -371,7 +371,7 @@ msgstr "Não foi possível iniciar transferência de arquivo." | @@ -371,7 +371,7 @@ msgstr "Não foi possível iniciar transferência de arquivo." | ||
371 | msgid "Can't use winsock version %d.%d" | 371 | msgid "Can't use winsock version %d.%d" |
372 | msgstr "Não posso usar versão winsock %d.%d" | 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 | msgid "Can't verify." | 375 | msgid "Can't verify." |
376 | msgstr "Não foi possível verificar" | 376 | msgstr "Não foi possível verificar" |
377 | 377 | ||
@@ -637,12 +637,12 @@ msgstr "Apagar campos" | @@ -637,12 +637,12 @@ msgstr "Apagar campos" | ||
637 | msgid "Error" | 637 | msgid "Error" |
638 | msgstr "Erro" | 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 | #, c-format | 641 | #, c-format |
642 | msgid "Error \"%s\" reading from local file (rc=%d)" | 642 | msgid "Error \"%s\" reading from local file (rc=%d)" |
643 | msgstr "Erro \"%s\" lendo arquivo local (rc=%d)" | 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 | #, c-format | 646 | #, c-format |
647 | msgid "Error \"%s\" writing to local file (rc=%d)" | 647 | msgid "Error \"%s\" writing to local file (rc=%d)" |
648 | msgstr "Erro \"%s\" gravando arquivo local (rc=%d)" | 648 | msgstr "Erro \"%s\" gravando arquivo local (rc=%d)" |
@@ -1006,8 +1006,8 @@ msgstr "Move o cursor para o primeiro branco após o último não branco no camp | @@ -1006,8 +1006,8 @@ msgstr "Move o cursor para o primeiro branco após o último não branco no camp | ||
1006 | msgid "Move to first unprotected field on screen" | 1006 | msgid "Move to first unprotected field on screen" |
1007 | msgstr "Move para o primeiro campo desprotegido" | 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 | msgid "Network error" | 1011 | msgid "Network error" |
1012 | msgstr "Erro de rede" | 1012 | msgstr "Erro de rede" |
1013 | 1013 | ||
@@ -1282,22 +1282,22 @@ msgstr "Pesquisa não produziu nenhum valor" | @@ -1282,22 +1282,22 @@ msgstr "Pesquisa não produziu nenhum valor" | ||
1282 | msgid "Secure connection was successful." | 1282 | msgid "Secure connection was successful." |
1283 | msgstr "Conexão segura efetuada com sucesso." | 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 | #: src/ssl/windows/curl.c:218 src/ssl/windows/curl.c:242 | 1288 | #: src/ssl/windows/curl.c:218 src/ssl/windows/curl.c:242 |
1298 | #: src/ssl/windows/curl.c:263 src/ssl/windows/curl.c:272 | 1289 | #: src/ssl/windows/curl.c:263 src/ssl/windows/curl.c:272 |
1299 | #: src/ssl/windows/curl.c:300 src/ssl/windows/curl.c:333 | 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 | msgid "Security error" | 1301 | msgid "Security error" |
1302 | msgstr "Erro de segurança" | 1302 | msgstr "Erro de segurança" |
1303 | 1303 | ||
@@ -1781,8 +1781,8 @@ msgstr "Mostrar posição do cursor" | @@ -1781,8 +1781,8 @@ msgstr "Mostrar posição do cursor" | ||
1781 | msgid "Transfer cancelled by host" | 1781 | msgid "Transfer cancelled by host" |
1782 | msgstr "Transferência cancelada pelo host" | 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 | msgid "Transfer cancelled by user" | 1786 | msgid "Transfer cancelled by user" |
1787 | msgstr "Transferência cancelada pelo usuário" | 1787 | msgstr "Transferência cancelada pelo usuário" |
1788 | 1788 |
src/core/connect.c
@@ -115,6 +115,10 @@ | @@ -115,6 +115,10 @@ | ||
115 | } | 115 | } |
116 | 116 | ||
117 | #if defined(HAVE_LIBSSL) | 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 | SSL_ERROR_MESSAGE ssl_error; | 123 | SSL_ERROR_MESSAGE ssl_error; |
120 | memset(&ssl_error,0,sizeof(ssl_error)); | 124 | memset(&ssl_error,0,sizeof(ssl_error)); |
src/core/iocalls.c
@@ -575,6 +575,8 @@ int non_blocking(H3270 *hSession, Boolean on) | @@ -575,6 +575,8 @@ int non_blocking(H3270 *hSession, Boolean on) | ||
575 | 575 | ||
576 | #endif | 576 | #endif |
577 | 577 | ||
578 | + debug("Socket %d is now %s",hSession->connection.sock,(on ? "Non Blocking" : "Blocking")); | ||
579 | + | ||
578 | lib3270_set_poll_state(hSession,hSession->xio.read, on); | 580 | lib3270_set_poll_state(hSession,hSession->xio.read, on); |
579 | lib3270_set_poll_state(hSession,hSession->xio.write, on); | 581 | lib3270_set_poll_state(hSession,hSession->xio.write, on); |
580 | lib3270_set_poll_state(hSession,hSession->xio.except, on); | 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,8 +196,6 @@ static void net_connected(H3270 *hSession, int GNUC_UNUSED(fd), LIB3270_IO_FLAG | ||
196 | hSession->ever_3270 = False; | 196 | hSession->ever_3270 = False; |
197 | 197 | ||
198 | #if defined(HAVE_LIBSSL) | 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 | if(hSession->ssl.enabled) | 199 | if(hSession->ssl.enabled) |
202 | { | 200 | { |
203 | hSession->ssl.host = 1; | 201 | hSession->ssl.host = 1; |
src/core/telnet.c
@@ -482,6 +482,9 @@ LIB3270_EXPORT void lib3270_setup_session(H3270 *hSession) | @@ -482,6 +482,9 @@ LIB3270_EXPORT void lib3270_setup_session(H3270 *hSession) | ||
482 | trace_ds(hSession,"SENT HOSTNAME %s:%d\n", hSession->hostname, hSession->current_port); | 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,19 +190,22 @@ static void sockstart(H3270 *session) | ||
190 | for(rp = result; hSession->connection.sock < 0 && rp != NULL; rp = rp->ai_next) | 190 | for(rp = result; hSession->connection.sock < 0 && rp != NULL; rp = rp->ai_next) |
191 | { | 191 | { |
192 | hSession->connection.sock = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | 192 | hSession->connection.sock = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); |
193 | + | ||
193 | if(hSession->connection.sock < 0) | 194 | if(hSession->connection.sock < 0) |
194 | { | 195 | { |
195 | ((struct resolver *) host)->rc = errno; | 196 | ((struct resolver *) host)->rc = errno; |
196 | ((struct resolver *) host)->message = strerror(errno); | 197 | ((struct resolver *) host)->message = strerror(errno); |
198 | + debug("Socket error %d: %s",((struct resolver *) host)->rc,((struct resolver *) host)->message); | ||
197 | continue; | 199 | continue; |
198 | } | 200 | } |
199 | 201 | ||
200 | // Connected! | 202 | // Connected! |
201 | if(connect(hSession->connection.sock, rp->ai_addr, rp->ai_addrlen)) | 203 | if(connect(hSession->connection.sock, rp->ai_addr, rp->ai_addrlen)) |
202 | { | 204 | { |
203 | - SOCK_CLOSE(hSession); | ||
204 | ((struct resolver *) host)->rc = errno; | 205 | ((struct resolver *) host)->rc = errno; |
205 | ((struct resolver *) host)->message = strerror(errno); | 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 | continue; | 209 | continue; |
207 | } | 210 | } |
208 | 211 | ||
@@ -210,6 +213,8 @@ static void sockstart(H3270 *session) | @@ -210,6 +213,8 @@ static void sockstart(H3270 *session) | ||
210 | 213 | ||
211 | freeaddrinfo(result); | 214 | freeaddrinfo(result); |
212 | 215 | ||
216 | + debug("%s: Connected using socket %d",__FUNCTION__,hSession->connection.sock); | ||
217 | + | ||
213 | return 0; | 218 | return 0; |
214 | 219 | ||
215 | } | 220 | } |
@@ -314,6 +319,7 @@ int net_reconnect(H3270 *hSession, int seconds) | @@ -314,6 +319,7 @@ int net_reconnect(H3270 *hSession, int seconds) | ||
314 | 319 | ||
315 | if(hSession->ssl.enabled) | 320 | if(hSession->ssl.enabled) |
316 | { | 321 | { |
322 | + debug("%s: Enabling SSL ****************************",__FUNCTION__); | ||
317 | hSession->ssl.host = 1; | 323 | hSession->ssl.host = 1; |
318 | if(ssl_init(hSession)) | 324 | if(ssl_init(hSession)) |
319 | return errno = ENOTCONN; | 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,6 +36,10 @@ static void online_group_state_changed(H3270 GNUC_UNUSED(*hSession), void GNUC_U | ||
36 | 36 | ||
37 | int main(int argc, char *argv[]) | 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 | #ifdef LC_ALL | 43 | #ifdef LC_ALL |
40 | setlocale( LC_ALL, "" ); | 44 | setlocale( LC_ALL, "" ); |
41 | #endif | 45 | #endif |