Commit 675df0cd347896cddb4381948ca43f42e9d538f6

Authored by perry.werneck@gmail.com
1 parent 07b37115

Processo de conexao instavel em windows, tentando mudar para select para ver se melhora

src/include/lib3270.h
... ... @@ -657,26 +657,18 @@
657 657 void * (*AddTimeOut)(unsigned long interval_ms, H3270 *session, void (*proc)(H3270 *session));
658 658 void (*RemoveTimeOut)(void *timer);
659 659  
660   -#ifdef WIN32
661   - void * (*AddInput)(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
662   - void * (*AddOutput)(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
663   -#else
664 660 void * (*AddInput)(int source, H3270 *session, void (*fn)(H3270 *session));
665 661 void * (*AddOutput)(int source, H3270 *session, void (*fn)(H3270 *session));
666   -#endif // WIN32
  662 +
667 663 void (*RemoveSource)(void *id);
668 664  
669   -#ifdef WIN32
670   - void * (*AddExcept)(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
671   -#else
672 665 void * (*AddExcept)(int source, H3270 *session, void (*fn)(H3270 *session));
673   -#endif
674 666  
675   - int (*callthread)(int(*callback)(H3270 *, void *), H3270 *session, void *parm);
  667 + int (*callthread)(int(*callback)(H3270 *, void *), H3270 *session, void *parm);
676 668  
677   - int (*Wait)(H3270 *hSession, int seconds);
678   - int (*event_dispatcher)(H3270 *hSession, int wait);
679   - void (*ring_bell)(H3270 *);
  669 + int (*Wait)(H3270 *hSession, int seconds);
  670 + int (*event_dispatcher)(H3270 *hSession, int wait);
  671 + void (*ring_bell)(H3270 *);
680 672  
681 673 };
682 674  
... ...
src/include/lib3270/session.h
... ... @@ -76,14 +76,11 @@
76 76  
77 77 struct _h3270
78 78 {
79   - unsigned short sz; /**< Struct size */
  79 + unsigned short sz; /**< Struct size */
80 80  
81 81 // Connection info
82   - int sock; /**< Network socket */
83   - #ifdef _WIN32
84   - HANDLE sockEvent; /**< Event semaphore */
85   - #endif // WIN32
86   - LIB3270_CSTATE cstate; /**< Connection state */
  82 + int sock; /**< Network socket */
  83 + LIB3270_CSTATE cstate; /**< Connection state */
87 84  
88 85 // flags
89 86 LIB3270_OPTION options; /**< Session options */
... ...
src/lib3270/connect.c
... ... @@ -113,15 +113,10 @@ static void net_connected(H3270 *hSession)
113 113 return;
114 114 }
115 115  
116   -#ifdef _WIN32
117   - hSession->ns_exception_id = AddExcept(hSession->sockEvent, hSession, net_exception);
118   - hSession->ns_read_id = AddInput(hSession->sockEvent, hSession, net_input);
119   -#else
120 116 hSession->ns_exception_id = AddExcept(hSession->sock, hSession, net_exception);
121 117 hSession->ns_read_id = AddInput(hSession->sock, hSession, net_input);
122   -#endif // WIN32
123   - hSession->excepting = 1;
124   - hSession->reading = 1;
  118 + hSession->excepting = 1;
  119 + hSession->reading = 1;
125 120  
126 121 #if defined(HAVE_LIBSSL)
127 122 if(hSession->ssl_con && hSession->secure == LIB3270_SSL_UNDEFINED)
... ... @@ -348,34 +343,6 @@ static void net_connected(H3270 *hSession)
348 343  
349 344 #ifdef WIN32
350 345  
351   - if(hSession->sockEvent == NULL)
352   - {
353   - char ename[256];
354   -
355   - snprintf(ename, 255, "%s-%d", PACKAGE_NAME, getpid());
356   -
357   - hSession->sockEvent = CreateEvent(NULL, TRUE, FALSE, ename);
358   - if(hSession->sockEvent == NULL)
359   - {
360   - lib3270_popup_dialog( hSession,
361   - LIB3270_NOTIFY_CRITICAL,
362   - N_( "Network startup error" ),
363   - N_( "Cannot create socket event" ),
364   - "%s", lib3270_win32_strerror(GetLastError()) );
365   - _exit(1);
366   - }
367   - }
368   -
369   - if (WSAEventSelect(hSession->sock, hSession->sockEvent, FD_READ | FD_CONNECT | FD_CLOSE) != 0)
370   - {
371   - lib3270_popup_dialog( hSession,
372   - LIB3270_NOTIFY_CRITICAL,
373   - N_( "Network startup error" ),
374   - N_( "WSAEventSelect failed" ),
375   - "%s", lib3270_win32_strerror(GetLastError()) );
376   - _exit(1);
377   - }
378   -
379 346 WSASetLastError(0);
380 347 u_long iMode=1;
381 348 trace("sock=%d",hSession->sock);
... ... @@ -523,12 +490,7 @@ static void net_connected(H3270 *hSession)
523 490 hSession->cstate = LIB3270_PENDING;
524 491 lib3270_st_changed(hSession, LIB3270_STATE_HALF_CONNECT, True);
525 492  
526   -#ifdef _WIN32
527   - trace("Sockevent=%08lx callback=%p",hSession->sockEvent,net_connected);
528   - hSession->ns_write_id = AddOutput(hSession->sockEvent, hSession, net_connected);
529   -#else
530 493 hSession->ns_write_id = AddOutput(hSession->sock, hSession, net_connected);
531   -#endif // WIN32
532 494  
533 495 trace("%s: Connection in progress",__FUNCTION__);
534 496  
... ...
src/lib3270/iocalls.c
... ... @@ -51,15 +51,9 @@ static void internal_remove_timeout(void *timer);
51 51 static void internal_remove_source(void *id);
52 52 static void * internal_add_timeout(unsigned long interval_ms, H3270 *session, void (*proc)(H3270 *session));
53 53  
54   -#ifdef WIN32
55   - static void * internal_add_input(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
56   - static void * internal_add_output(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
57   - static void * internal_add_except(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
58   -#else
59   - static void * internal_add_input(int source, H3270 *session, void (*fn)(H3270 *session));
60   - static void * internal_add_output(int source, H3270 *session, void (*fn)(H3270 *session));
61   - static void * internal_add_except(int source, H3270 *session, void (*fn)(H3270 *session));
62   -#endif // WIN32
  54 +static void * internal_add_input(int source, H3270 *session, void (*fn)(H3270 *session));
  55 +static void * internal_add_output(int source, H3270 *session, void (*fn)(H3270 *session));
  56 +static void * internal_add_except(int source, H3270 *session, void (*fn)(H3270 *session));
63 57  
64 58 static int internal_callthread(int(*callback)(H3270 *, void *), H3270 *session, void *parm);
65 59 static int internal_wait(H3270 *hSession, int seconds);
... ... @@ -78,16 +72,6 @@ static void internal_ring_bell(H3270 *);
78 72 static void (*remove_source)(void *id)
79 73 = internal_remove_source;
80 74  
81   -#ifdef WIN32
82   - static void * (*add_input)(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
83   - = internal_add_input;
84   -
85   - static void * (*add_output)(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
86   - = internal_add_output;
87   -
88   - static void * (*add_except)(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
89   - = internal_add_except;
90   -#else
91 75 static void * (*add_input)(int source, H3270 *session, void (*fn)(H3270 *session))
92 76 = internal_add_input;
93 77  
... ... @@ -96,7 +80,6 @@ static void internal_ring_bell(H3270 *);
96 80  
97 81 static void * (*add_except)(int source, H3270 *session, void (*fn)(H3270 *session))
98 82 = internal_add_except;
99   -#endif // WIN32
100 83  
101 84 static int (*callthread)(int(*callback)(H3270 *, void *), H3270 *session, void *parm)
102 85 = internal_callthread;
... ... @@ -131,11 +114,7 @@ static void internal_ring_bell(H3270 *);
131 114 typedef struct input
132 115 {
133 116 struct input *next;
134   -#if defined(_WIN32)
135   - HANDLE source;
136   -#else
137 117 int source;
138   -#endif // WIN32
139 118 int condition;
140 119 void (*proc)(H3270 *session);
141 120 H3270 *session;
... ... @@ -261,11 +240,7 @@ static void internal_remove_timeout(void * timer)
261 240  
262 241 /* Input events. */
263 242  
264   -#ifdef WIN32
265   -static void * internal_add_input(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
266   -#else
267 243 static void * internal_add_input(int source, H3270 *session, void (*fn)(H3270 *session))
268   -#endif // WIN32
269 244 {
270 245 input_t *ip = (input_t *) lib3270_malloc(sizeof(input_t));
271 246  
... ... @@ -280,11 +255,7 @@ static void * internal_add_input(int source, H3270 *session, void (*fn)(H3270 *s
280 255 return ip;
281 256 }
282 257  
283   -#ifdef WIN32
284   -static void * internal_add_output(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
285   -#else
286 258 static void * internal_add_output(int source, H3270 *session, void (*fn)(H3270 *session))
287   -#endif // WIN32
288 259 {
289 260 input_t *ip = (input_t *) lib3270_malloc(sizeof(input_t));
290 261  
... ... @@ -299,13 +270,6 @@ static void * internal_add_output(int source, H3270 *session, void (*fn)(H3270 *
299 270 return ip;
300 271 }
301 272  
302   -
303   -#if defined(_WIN32)
304   -static void * internal_add_except(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
305   -{
306   - return 0;
307   -}
308   -#else
309 273 static void * internal_add_except(int source, H3270 *session, void (*fn)(H3270 *session))
310 274 {
311 275 input_t *ip = (input_t *) lib3270_malloc(sizeof(input_t));
... ... @@ -322,7 +286,6 @@ static void * internal_add_except(int source, H3270 *session, void (*fn)(H3270 *
322 286  
323 287 return ip;
324 288 }
325   -#endif // WIN32
326 289  
327 290 static void internal_remove_source(void *id)
328 291 {
... ... @@ -356,19 +319,19 @@ static void internal_remove_source(void *id)
356 319 static int internal_event_dispatcher(H3270 *hSession, int block)
357 320 {
358 321 #if defined(_WIN32)
359   - HANDLE ha[MAX_HA];
360   - DWORD events;
361   - DWORD tmo;
362 322 unsigned long long now;
363   - int i;
  323 +// int i;
  324 + int maxSock;
  325 + DWORD tmo;
364 326 #else
365   - fd_set rfds, wfds, xfds;
366 327 int ns;
367 328 struct timeval now, twait, *tp;
368 329 int events;
369 330 #endif
  331 +
  332 + fd_set rfds, wfds, xfds;
  333 +
370 334 input_t *ip;
371   - struct timeout *t;
372 335 int processed_any = 0;
373 336  
374 337 retry:
... ... @@ -379,16 +342,33 @@ retry:
379 342 if(processed_any)
380 343 block = 0;
381 344  
382   - events = 0;
383   -
384 345 #if defined(_WIN32)
385 346  
  347 + maxSock = 0;
  348 +
  349 + FD_ZERO(&rfds);
  350 + FD_ZERO(&wfds);
  351 + FD_ZERO(&xfds);
  352 +
386 353 for (ip = inputs; ip != (input_t *)NULL; ip = ip->next)
387 354 {
388 355 if ((unsigned long)ip->condition & InputReadMask)
389   - ha[events++] = ip->source;
  356 + {
  357 + FD_SET(ip->source, &rfds);
  358 + maxSock = max(ip->source,maxSock);
  359 + }
  360 +
390 361 if ((unsigned long)ip->condition & InputWriteMask)
391   - ha[events++] = ip->source;
  362 + {
  363 + FD_SET(ip->source, &wfds);
  364 + maxSock = max(ip->source,maxSock);
  365 + }
  366 +
  367 + if ((unsigned long)ip->condition & InputExceptMask)
  368 + {
  369 + FD_SET(ip->source, &xfds);
  370 + maxSock = max(ip->source,maxSock);
  371 + }
392 372 }
393 373  
394 374 if (block)
... ... @@ -404,19 +384,67 @@ retry:
404 384 else
405 385 {
406 386 // Block for 1 second (at maximal)
407   - tmo = 1;
  387 + tmo = 1000;
408 388 }
409 389 }
410   - else if (!events)
  390 + else
411 391 {
412   - // No block & no events, return
413   - return processed_any;
  392 + tmo = 1000;
414 393 }
415   - else
  394 +
  395 + if(maxSock)
416 396 {
417   - tmo = 1;
  397 + struct timeval tm;
  398 +
  399 + tm.tv_sec = 0;
  400 + tm.tv_usec = tmo;
  401 +
  402 + int ns = select(maxSock+1, &rfds, &wfds, &xfds, &tm);
  403 +
  404 + if (ns < 0 && errno != EINTR)
  405 + {
  406 + lib3270_popup_dialog( hSession,
  407 + LIB3270_NOTIFY_ERROR,
  408 + _( "Network error" ),
  409 + _( "Select() failed when processing for events." ),
  410 + lib3270_win32_strerror(WSAGetLastError()));
  411 + }
  412 + else
  413 + {
  414 + for (ip = inputs; ip != (input_t *) NULL; ip = ip->next)
  415 + {
  416 + if (((unsigned long)ip->condition & InputReadMask) && FD_ISSET(ip->source, &rfds))
  417 + {
  418 + (*ip->proc)(ip->session);
  419 + processed_any = True;
  420 + if (inputs_changed)
  421 + goto retry;
  422 + }
  423 +
  424 + if (((unsigned long)ip->condition & InputWriteMask) && FD_ISSET(ip->source, &wfds))
  425 + {
  426 + (*ip->proc)(ip->session);
  427 + processed_any = True;
  428 + if (inputs_changed)
  429 + goto retry;
  430 + }
  431 +
  432 + if (((unsigned long)ip->condition & InputExceptMask) && FD_ISSET(ip->source, &xfds))
  433 + {
  434 + (*ip->proc)(ip->session);
  435 + processed_any = True;
  436 + if (inputs_changed)
  437 + goto retry;
  438 + }
  439 + }
  440 + }
  441 + }
  442 + else if(block)
  443 + {
  444 + Sleep(tmo);
418 445 }
419 446  
  447 +/*
420 448 if(events)
421 449 {
422 450 DWORD ret = WaitForMultipleObjects(events, ha, FALSE, tmo);
... ... @@ -451,9 +479,12 @@ retry:
451 479 {
452 480 Sleep(100);
453 481 }
  482 +*/
454 483  
455 484 #else
456 485  
  486 + events = 0;
  487 +
457 488 FD_ZERO(&rfds);
458 489 FD_ZERO(&wfds);
459 490 FD_ZERO(&xfds);
... ... @@ -558,6 +589,7 @@ retry:
558 589 if (timeouts != TN)
559 590 {
560 591 #if defined(_WIN32)
  592 + struct timeout *t;
561 593 ms_ts(&now);
562 594 #else
563 595 (void) gettimeofday(&now, (void *)NULL);
... ... @@ -630,31 +662,19 @@ void RemoveTimeOut(void * timer)
630 662 return remove_timeout(timer);
631 663 }
632 664  
633   -#ifdef WIN32
634   -void * AddInput(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
635   -#else
636 665 void * AddInput(int source, H3270 *session, void (*fn)(H3270 *session))
637   -#endif // WIN32
638 666 {
639 667 CHECK_SESSION_HANDLE(session);
640 668 return add_input(source,session,fn);
641 669 }
642 670  
643   -#ifdef WIN32
644   -void * AddOutput(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
645   -#else
646 671 void * AddOutput(int source, H3270 *session, void (*fn)(H3270 *session))
647   -#endif // WIN32
648 672 {
649 673 CHECK_SESSION_HANDLE(session);
650 674 return add_output(source,session,fn);
651 675 }
652 676  
653   -#ifdef WIN32
654   -void * AddExcept(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
655   -#else
656 677 void * AddExcept(int source, H3270 *session, void (*fn)(H3270 *session))
657   -#endif // WIN32
658 678 {
659 679 CHECK_SESSION_HANDLE(session);
660 680 return add_except(source,session,fn);
... ... @@ -673,19 +693,11 @@ void x_except_on(H3270 *h)
673 693 if(h->reading)
674 694 RemoveSource(h->ns_read_id);
675 695  
676   -#ifdef WIN32
677   - h->ns_exception_id = AddExcept(h->sockEvent, h, net_exception);
678   - h->excepting = 1;
679   -
680   - if(h->reading)
681   - h->ns_read_id = AddInput(h->sockEvent, h, net_input);
682   -#else
683 696 h->ns_exception_id = AddExcept(h->sock, h, net_exception);
684 697 h->excepting = 1;
685 698  
686 699 if(h->reading)
687 700 h->ns_read_id = AddInput(h->sock, h, net_input);
688   -#endif // WIN32
689 701 }
690 702  
691 703 void remove_input_calls(H3270 *session)
... ...
src/lib3270/session.c
... ... @@ -310,11 +310,6 @@ static void lib3270_session_init(H3270 *hSession, const char *model, const char
310 310 for(f=0;f<4;f++)
311 311 hSession->csd[f] = hSession->saved_csd[f] = LIB3270_ANSI_CSD_US;
312 312  
313   -#ifdef _WIN32
314   - hSession->sockEvent = NULL;
315   -#endif // _WIN32
316   -
317   -
318 313 // Initialize toggles
319 314 initialize_toggles(hSession);
320 315  
... ...
src/lib3270/telnet.c
... ... @@ -1002,10 +1002,6 @@ void net_input(H3270 *hSession)
1002 1002 hSession->ansi_data = 0;
1003 1003 #endif
1004 1004  
1005   -#if defined(_WIN32)
1006   - ResetEvent(hSession->sockEvent);
1007   -#endif
1008   -
1009 1005 #if defined(HAVE_LIBSSL)
1010 1006 if (hSession->ssl_con != NULL)
1011 1007 nr = SSL_read(hSession->ssl_con, (char *) buffer, BUFSZ);
... ...
src/lib3270/testprogram.c
... ... @@ -36,11 +36,8 @@ int main(int numpar, char *param[])
36 36 // pthread_create(&thread, NULL, mainloop, NULL);
37 37 // pthread_detach(thread);
38 38  
39   -// rc = lib3270_connect_host(h, "fandezhi.efglobe.com", "telnet", LIB3270_CONNECT_OPTION_WAIT);
40   -// rc = lib3270_connect_host(h, "127.0.0.1", "9090", LIB3270_CONNECT_OPTION_WAIT);
41   -
42   -// lib3270_set_host_url(h,"tn3270://fandezhi.efglobe.com:9090?lu=default");
43 39 lib3270_set_url(h,"tn3270://fandezhi.efglobe.com");
  40 + rc = lib3270_connect(h,1);
44 41  
45 42 printf("\nConnect exits with rc=%d\n",rc);
46 43  
... ...
src/lib3270/utilc.h
... ... @@ -36,15 +36,10 @@ LIB3270_INTERNAL char *xs_buffer(const char *fmt, ...) printflike(1, 2);
36 36 LIB3270_INTERNAL void xs_error(const char *fmt, ...) printflike(1, 2);
37 37 LIB3270_INTERNAL void xs_warning(const char *fmt, ...) printflike(1, 2);
38 38  
39   -#ifdef WIN32
40   - LIB3270_INTERNAL void * AddInput(HANDLE, H3270 *session, void (*fn)(H3270 *session));
41   - LIB3270_INTERNAL void * AddOutput(HANDLE, H3270 *session, void (*fn)(H3270 *session));
42   - LIB3270_INTERNAL void * AddExcept(HANDLE, H3270 *session, void (*fn)(H3270 *session));
43   -#else
44   - LIB3270_INTERNAL void * AddInput(int, H3270 *session, void (*fn)(H3270 *session));
45   - LIB3270_INTERNAL void * AddOutput(int, H3270 *session, void (*fn)(H3270 *session));
46   - LIB3270_INTERNAL void * AddExcept(int, H3270 *session, void (*fn)(H3270 *session));
47   -#endif // WIN32
  39 +LIB3270_INTERNAL void * AddInput(int, H3270 *session, void (*fn)(H3270 *session));
  40 +LIB3270_INTERNAL void * AddOutput(int, H3270 *session, void (*fn)(H3270 *session));
  41 +LIB3270_INTERNAL void * AddExcept(int, H3270 *session, void (*fn)(H3270 *session));
  42 +
48 43 LIB3270_INTERNAL void RemoveSource(void *);
49 44 LIB3270_INTERNAL void * AddTimeOut(unsigned long msec, H3270 *session, void (*fn)(H3270 *session));
50 45 LIB3270_INTERNAL void RemoveTimeOut(void *cookie);
... ...
src/plugins/dbus3270/iocallback.c
... ... @@ -46,13 +46,8 @@
46 46 static int static_CallAndWait(int(*callback)(H3270 *session, void *), H3270 *session, void *parm);
47 47 static void static_RemoveSource(void *id);
48 48  
49   -#ifdef WIN32
50   -static void * static_AddInput(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
51   -static void * static_AddExcept(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
52   -#else
53 49 static void * static_AddInput(int source, H3270 *session, void (*fn)(H3270 *session));
54 50 static void * static_AddExcept(int source, H3270 *session, void (*fn)(H3270 *session));
55   -#endif // WIN32
56 51  
57 52 static void * static_AddTimeOut(unsigned long interval_ms, H3270 *session, void (*proc)(H3270 *session));
58 53 static void static_RemoveTimeOut(void * timer);
... ...
src/plugins/hllapi/pluginmain.c
... ... @@ -201,7 +201,7 @@
201 201 break;
202 202  
203 203 case HLLAPI_PACKET_SET_HOST:
204   - send_result(source,lib3270_set_host( lib3270_get_default_session_handle(),
  204 + send_result(source,lib3270_set_url( lib3270_get_default_session_handle(),
205 205 ((struct hllapi_packet_text *) source->buffer)->text) != NULL);
206 206 break;
207 207  
... ...
src/pw3270/v3270/iocallback.c
... ... @@ -46,13 +46,8 @@
46 46 static int static_CallAndWait(int(*callback)(H3270 *session, void *), H3270 *session, void *parm);
47 47 static void static_RemoveSource(void *id);
48 48  
49   -#ifdef WIN32
50   -static void * static_AddInput(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
51   -static void * static_AddExcept(HANDLE source, H3270 *session, void (*fn)(H3270 *session));
52   -#else
53 49 static void * static_AddInput(int source, H3270 *session, void (*fn)(H3270 *session));
54 50 static void * static_AddExcept(int source, H3270 *session, void (*fn)(H3270 *session));
55   -#endif // WIN32
56 51  
57 52 static void * static_AddTimeOut(unsigned long interval_ms, H3270 *session, void (*proc)(H3270 *session));
58 53 static void static_RemoveTimeOut(void * timer);
... ... @@ -71,11 +66,7 @@ static gboolean IO_closure(gpointer data);
71 66 {
72 67 GSource gsrc;
73 68 GPollFD poll;
74   -#if defined(_WIN32)
75   - HANDLE source;
76   -#else
77 69 int source;
78   -#endif // WIN32
79 70 void (*fn)(H3270 *session);
80 71 H3270 *session;
81 72 } IO_Source;
... ... @@ -99,11 +90,7 @@ static gboolean IO_closure(gpointer data);
99 90  
100 91 /*---[ Implement ]-----------------------------------------------------------------------------------------*/
101 92  
102   -#ifdef WIN32
103   -static void * AddSource(HANDLE source, H3270 *session, gushort events, void (*fn)(H3270 *session))
104   -#else
105 93 static void * AddSource(int source, H3270 *session, gushort events, void (*fn)(H3270 *session))
106   -#endif // WIN32
107 94 {
108 95 IO_Source *src = (IO_Source *) g_source_new(&IOSources,sizeof(IO_Source));
109 96  
... ... @@ -119,21 +106,13 @@ static void * AddSource(int source, H3270 *session, gushort events, void (*fn)(H
119 106 return src;
120 107 }
121 108  
122   -#ifdef WIN32
123   -static void * static_AddOutput(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
124   -#else
125 109 static void * static_AddOutput(int source, H3270 *session, void (*fn)(H3270 *session))
126   -#endif // WIN32
127 110 {
128 111 return AddSource(source,session,G_IO_OUT|G_IO_HUP|G_IO_ERR,fn);
129 112 }
130 113  
131 114  
132   -#ifdef WIN32
133   -static void * static_AddInput(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
134   -#else
135 115 static void * static_AddInput(int source, H3270 *session, void (*fn)(H3270 *session))
136   -#endif // WIN32
137 116 {
138 117 return AddSource(source,session,G_IO_IN|G_IO_HUP|G_IO_ERR,fn);
139 118 }
... ... @@ -144,17 +123,10 @@ static void static_RemoveSource(void *id)
144 123 g_source_destroy((GSource *) id);
145 124 }
146 125  
147   -#if defined(WIN32)
148   -static void * static_AddExcept(HANDLE source, H3270 *session, void (*fn)(H3270 *session))
149   -{
150   - return 0;
151   -}
152   -#else
153 126 static void * static_AddExcept(int source, H3270 *session, void (*fn)(H3270 *session))
154 127 {
155 128 return AddSource(source,session,G_IO_HUP|G_IO_ERR,fn);
156 129 }
157   -#endif // WIN32
158 130  
159 131 static gboolean do_timer(TIMER *t)
160 132 {
... ... @@ -208,12 +180,11 @@ static gboolean IO_check(GSource *source)
208 180 * function was called, so the source should be checked again here.
209 181 *
210 182 */
211   -#if defined(_WIN32) /*[*/
  183 +#ifdef _WIN32
212 184  
213   - if(WaitForSingleObject(((IO_Source *) source)->source,0) == WAIT_OBJECT_0)
214   - return TRUE;
  185 + #error AQUI
215 186  
216   -#else /*][*/
  187 +#else
217 188  
218 189 struct pollfd fds;
219 190  
... ... @@ -225,7 +196,7 @@ static gboolean IO_check(GSource *source)
225 196 if(poll(&fds,1,0) > 0)
226 197 return TRUE;
227 198  
228   -#endif /*]*/
  199 +#endif // _WIN32
229 200  
230 201 return FALSE;
231 202 }
... ...