Commit 1156680fc0a4713a9a83159705da2f16c6803ed7

Authored by perry.werneck@gmail.com
1 parent 829568e6

Compilando em windows

@@ -31,6 +31,10 @@ @@ -31,6 +31,10 @@
31 */ 31 */
32 32
33 /* glue for missing Xt code */ 33 /* glue for missing Xt code */
  34 +#if defined(_WIN32)
  35 + #include <winsock2.h>
  36 + #include <windows.h>
  37 +#endif // WIN32
34 38
35 #include "globals.h" 39 #include "globals.h"
36 #include "api.h" 40 #include "api.h"
@@ -219,9 +223,9 @@ static unsigned long DefaultAddTimeOut(unsigned long interval_ms, H3270 *session @@ -219,9 +223,9 @@ static unsigned long DefaultAddTimeOut(unsigned long interval_ms, H3270 *session
219 prev->next = t_new; 223 prev->next = t_new;
220 } 224 }
221 225
222 - Trace("Timeout added: %p",t_new); 226 + trace("Timeout added: %p",t_new);
223 227
224 - return (unsigned long)t_new; 228 + return (unsigned long) t_new;
225 } 229 }
226 230
227 static void DefaultRemoveTimeOut(unsigned long timer) 231 static void DefaultRemoveTimeOut(unsigned long timer)
@@ -874,6 +878,9 @@ void RemoveTimeOut(unsigned long timer) @@ -874,6 +878,9 @@ void RemoveTimeOut(unsigned long timer)
874 unsigned long AddInput(int source, H3270 *session, void (*fn)(H3270 *session)) 878 unsigned long AddInput(int source, H3270 *session, void (*fn)(H3270 *session))
875 { 879 {
876 CHECK_SESSION_HANDLE(session); 880 CHECK_SESSION_HANDLE(session);
  881 +
  882 + trace("Adding input %d",source);
  883 +
877 if(callbacks->AddInput) 884 if(callbacks->AddInput)
878 return callbacks->AddInput(source,session,fn); 885 return callbacks->AddInput(source,session,fn);
879 return 0; 886 return 0;
@@ -575,8 +575,8 @@ static int do_connect(H3270 *hSession, const char *n) @@ -575,8 +575,8 @@ static int do_connect(H3270 *hSession, const char *n)
575 /* Prepare Xt for I/O. */ 575 /* Prepare Xt for I/O. */
576 // x_add_input(hSession); 576 // x_add_input(hSession);
577 #ifdef _WIN32 577 #ifdef _WIN32
578 - hSession->ns_exception_id = AddExcept(hSession->sockEvent, hSession, net_exception);  
579 - hSession->ns_read_id = AddInput(hSession->sockEvent, hSession, net_input); 578 + hSession->ns_exception_id = AddExcept((int) hSession->sockEvent, hSession, net_exception);
  579 + hSession->ns_read_id = AddInput((int) hSession->sockEvent, hSession, net_input);
580 #else 580 #else
581 hSession->ns_exception_id = AddExcept(hSession->sock, hSession, net_exception); 581 hSession->ns_exception_id = AddExcept(hSession->sock, hSession, net_exception);
582 hSession->ns_read_id = AddInput(hSession->sock, hSession, net_input); 582 hSession->ns_read_id = AddInput(hSession->sock, hSession, net_input);
@@ -35,6 +35,10 @@ @@ -35,6 +35,10 @@
35 * proxy.c 35 * proxy.c
36 * This module implements various kinds of proxies. 36 * This module implements various kinds of proxies.
37 */ 37 */
  38 +#ifdef _WIN32
  39 + #include <winsock2.h>
  40 + #include <windows.h>
  41 +#endif // _WIN32
38 42
39 #include "globals.h" 43 #include "globals.h"
40 #if !defined(PR3287) /*[*/ 44 #if !defined(PR3287) /*[*/
@@ -46,10 +50,9 @@ @@ -46,10 +50,9 @@
46 #include <stdlib.h> 50 #include <stdlib.h>
47 #endif 51 #endif
48 52
49 -#if defined(_WIN32) /*[*/  
50 -#include <winsock2.h>  
51 -#include <ws2tcpip.h>  
52 -#else /*][*/ 53 +#if defined(_WIN32)
  54 + #include <ws2tcpip.h>
  55 +#else
53 56
54 #include <malloc.h> 57 #include <malloc.h>
55 #include <sys/socket.h> 58 #include <sys/socket.h>
@@ -35,23 +35,22 @@ @@ -35,23 +35,22 @@
35 * Hostname resolution. 35 * Hostname resolution.
36 */ 36 */
37 37
38 -#include "globals.h"  
39 -  
40 -#if defined(W3N4) || defined(W3N46) /*[*/  
41 - #error Deprecated  
42 -#endif /*]*/  
43 -  
44 #ifdef WIN32 38 #ifdef WIN32
45 39
46 - /* Compiling for WinXP or later: Expose getaddrinfo()/freeaddrinfo(). */ 40 + // Compiling for WinXP or later: Expose getaddrinfo()/freeaddrinfo().
47 #undef _WIN32_WINNT 41 #undef _WIN32_WINNT
48 #define _WIN32_WINNT 0x0501 42 #define _WIN32_WINNT 0x0501
49 43
50 #include <winsock2.h> 44 #include <winsock2.h>
  45 + #include <windows.h>
51 #include <ws2tcpip.h> 46 #include <ws2tcpip.h>
52 47
  48 + #include "globals.h"
  49 +
53 #else 50 #else
54 51
  52 + #include "globals.h"
  53 +
55 #include <sys/socket.h> 54 #include <sys/socket.h>
56 #include <netinet/in.h> 55 #include <netinet/in.h>
57 #include <netdb.h> 56 #include <netdb.h>
@@ -473,9 +473,13 @@ static int connect_sock(H3270 *hSession, int sockfd, const struct sockaddr *addr @@ -473,9 +473,13 @@ static int connect_sock(H3270 *hSession, int sockfd, const struct sockaddr *addr
473 { 473 {
474 struct connect_parm p = { sizeof(struct connect_parm), sockfd, addr, addrlen, -1 }; 474 struct connect_parm p = { sizeof(struct connect_parm), sockfd, addr, addrlen, -1 };
475 475
  476 +#ifdef _WIN32
  477 + do_connect_sock(hSession,&p);
  478 +#else
476 trace("%s: Connect begin sock=%d",__FUNCTION__,p.sockfd); 479 trace("%s: Connect begin sock=%d",__FUNCTION__,p.sockfd);
477 lib3270_call_thread((int (*)(H3270 *, void *)) do_connect_sock,hSession,&p); 480 lib3270_call_thread((int (*)(H3270 *, void *)) do_connect_sock,hSession,&p);
478 trace("%s: Connect ends, rc=%d",__FUNCTION__,p.err); 481 trace("%s: Connect ends, rc=%d",__FUNCTION__,p.err);
  482 +#endif // _WIN32
479 483
480 return p.err; 484 return p.err;
481 } 485 }
@@ -683,7 +687,6 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo @@ -683,7 +687,6 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo
683 687
684 /* all done */ 688 /* all done */
685 #if defined(_WIN32) 689 #if defined(_WIN32)
686 -  
687 if(session->sockEvent == NULL) 690 if(session->sockEvent == NULL)
688 { 691 {
689 char ename[256]; 692 char ename[256];
@@ -712,8 +715,12 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo @@ -712,8 +715,12 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo
712 _exit(1); 715 _exit(1);
713 } 716 }
714 717
  718 + trace("Socket: %d Event: %ld",session->sock,session->sockEvent);
  719 +
715 #endif // WIN32 720 #endif // WIN32
716 721
  722 + non_blocking(session,1);
  723 +
717 return 0; 724 return 0;
718 } 725 }
719 #undef close_fail 726 #undef close_fail
@@ -956,9 +963,9 @@ void net_input(H3270 *session) @@ -956,9 +963,9 @@ void net_input(H3270 *session)
956 963
957 CHECK_SESSION_HANDLE(session); 964 CHECK_SESSION_HANDLE(session);
958 965
959 -// #if defined(_WIN32) 966 +//#if defined(_WIN32)
960 // for (;;) 967 // for (;;)
961 -// #endif 968 +//#endif
962 { 969 {
963 if (session->sock < 0) 970 if (session->sock < 0)
964 return; 971 return;
@@ -1008,9 +1015,8 @@ void net_input(H3270 *session) @@ -1008,9 +1015,8 @@ void net_input(H3270 *session)
1008 if (nr < 0) 1015 if (nr < 0)
1009 { 1016 {
1010 if (socket_errno() == SE_EWOULDBLOCK) 1017 if (socket_errno() == SE_EWOULDBLOCK)
1011 - {  
1012 return; 1018 return;
1013 - } 1019 +
1014 #if defined(HAVE_LIBSSL) /*[*/ 1020 #if defined(HAVE_LIBSSL) /*[*/
1015 if(session->ssl_con != NULL) 1021 if(session->ssl_con != NULL)
1016 { 1022 {
@@ -1064,7 +1070,6 @@ void net_input(H3270 *session) @@ -1064,7 +1070,6 @@ void net_input(H3270 *session)
1064 } 1070 }
1065 1071
1066 /* Process the data. */ 1072 /* Process the data. */
1067 -  
1068 if (HALF_CONNECTED) 1073 if (HALF_CONNECTED)
1069 { 1074 {
1070 if (non_blocking(session,False) < 0) 1075 if (non_blocking(session,False) < 0)
@@ -3209,6 +3214,8 @@ static int non_blocking(H3270 *session, Boolean on) @@ -3209,6 +3214,8 @@ static int non_blocking(H3270 *session, Boolean on)
3209 3214
3210 #endif // FIONBIO 3215 #endif // FIONBIO
3211 3216
  3217 + trace("Socket %d is %s",session->sock, on ? "non-blocking" : "blocking");
  3218 +
3212 return 0; 3219 return 0;
3213 } 3220 }
3214 3221
@@ -35,18 +35,19 @@ @@ -35,18 +35,19 @@
35 * Utility functions for x3270/c3270/s3270/tcl3270 35 * Utility functions for x3270/c3270/s3270/tcl3270
36 */ 36 */
37 37
  38 +#if defined(_WIN32)
  39 + #include <winsock2.h>
  40 + #include <windows.h>
  41 +#endif // _WIN32
  42 +
38 #include "globals.h" 43 #include "globals.h"
39 44
40 #if defined(_WIN32) 45 #if defined(_WIN32)
41 46
42 - #include <windows.h>  
43 #include "winversc.h" 47 #include "winversc.h"
44 -  
45 - #include <winsock2.h>  
46 #include <ws2tcpip.h> 48 #include <ws2tcpip.h>
47 #include <stdio.h> 49 #include <stdio.h>
48 #include <errno.h> 50 #include <errno.h>
49 -  
50 #include "w3miscc.h" 51 #include "w3miscc.h"
51 52
52 #else 53 #else
@@ -98,11 +98,11 @@ void x_except_on(H3270 *h) @@ -98,11 +98,11 @@ void x_except_on(H3270 *h)
98 RemoveInput(h->ns_read_id); 98 RemoveInput(h->ns_read_id);
99 99
100 #ifdef WIN32 100 #ifdef WIN32
101 - h->ns_exception_id = AddExcept(h->sockEvent, h, net_exception); 101 + h->ns_exception_id = AddExcept((int) h->sockEvent, h, net_exception);
102 h->excepting = True; 102 h->excepting = True;
103 103
104 if(h->reading) 104 if(h->reading)
105 - h->ns_read_id = AddInput(h->sockEvent, h, net_input); 105 + h->ns_read_id = AddInput( (int) h->sockEvent, h, net_input);
106 #else 106 #else
107 h->ns_exception_id = AddExcept(h->sock, h, net_exception); 107 h->ns_exception_id = AddExcept(h->sock, h, net_exception);
108 h->excepting = True; 108 h->excepting = True;