Commit cb7afe0c04133066186f15a24a8e416f81fd7e98

Authored by perry.werneck@gmail.com
1 parent 4fd1f48a

Ajustes para multi-sessão

src/lib3270/ft.c
... ... @@ -75,9 +75,7 @@ static void ft_in3270(H3270 *session, int ignored unused, void *unused);
75 75 #define BN (Boolean *)NULL
76 76  
77 77 // Globals.
78   -static H3270FT *ftsession = NULL;
79   -
80   -#define CHECK_FT_HANDLE(x) if(!x) x = ftsession;
  78 +H3270FT *ftsession = NULL;
81 79  
82 80 // enum ft_state ft_state = FT_NONE; // File transfer state
83 81 // char *ft_local_filename; // Local file to transfer to/from
... ...
src/lib3270/ftc.h
... ... @@ -20,25 +20,24 @@
20 20  
21 21 #if defined(X3270_FT) /*[*/
22 22  
23   -#include <lib3270/filetransfer.h>
  23 + #include <lib3270/filetransfer.h>
24 24  
25   -LIB3270_INTERNAL Boolean ascii_flag;
26   -LIB3270_INTERNAL Boolean cr_flag;
27   -LIB3270_INTERNAL unsigned long ft_length;
  25 + #define CHECK_FT_HANDLE(x) if(!x) x = ftsession;
28 26  
29   -// LIB3270_INTERNAL H3270FT * ftsession;
  27 + LIB3270_INTERNAL Boolean ascii_flag;
  28 + LIB3270_INTERNAL Boolean cr_flag;
  29 + LIB3270_INTERNAL unsigned long ft_length;
30 30  
31   -// LIB3270_INTERNAL FILE *ft_local_file;
32   -// extern char *ft_local_filename;
  31 + LIB3270_INTERNAL H3270FT * ftsession;
33 32  
34   -LIB3270_INTERNAL Boolean ft_last_cr;
35   -LIB3270_INTERNAL Boolean remap_flag;
  33 + LIB3270_INTERNAL Boolean ft_last_cr;
  34 + LIB3270_INTERNAL Boolean remap_flag;
36 35  
37   -LIB3270_INTERNAL void ft_init(H3270 *session);
  36 + LIB3270_INTERNAL void ft_init(H3270 *session);
38 37  
39   -LIB3270_INTERNAL void ft_aborting(H3270FT *h);
40   -LIB3270_INTERNAL void ft_complete(H3270FT *h, const char *errmsg);
41   -LIB3270_INTERNAL void ft_running(H3270FT *h, Boolean is_cut);
42   -LIB3270_INTERNAL void ft_update_length(H3270FT *h);
  38 + LIB3270_INTERNAL void ft_aborting(H3270FT *h);
  39 + LIB3270_INTERNAL void ft_complete(H3270FT *h, const char *errmsg);
  40 + LIB3270_INTERNAL void ft_running(H3270FT *h, Boolean is_cut);
  41 + LIB3270_INTERNAL void ft_update_length(H3270FT *h);
43 42  
44 43 #endif /*]*/
... ...
src/lib3270/kybd.c
... ... @@ -394,11 +394,11 @@ kybd_inhibit(Boolean inhibit)
394 394 if (inhibit) {
395 395 kybdlock_set(KL_ENTER_INHIBIT, "kybd_inhibit");
396 396 if (kybdlock == KL_ENTER_INHIBIT)
397   - status_reset(NULL);
  397 + status_reset(&h3270);
398 398 } else {
399 399 kybdlock_clr(KL_ENTER_INHIBIT, "kybd_inhibit");
400 400 if (!kybdlock)
401   - status_reset(NULL);
  401 + status_reset(&h3270);
402 402 }
403 403 }
404 404  
... ... @@ -1406,7 +1406,7 @@ LIB3270_KEY_ACTION( backtab )
1406 1406 if (kybdlock) {
1407 1407 if (KYBDLOCK_IS_OERR) {
1408 1408 kybdlock_clr(KL_OERR_MASK, "BackTab");
1409   - status_reset(NULL);
  1409 + status_reset(&h3270);
1410 1410 } else {
1411 1411 ENQUEUE_ACTION(lib3270_backtab);
1412 1412 return 0;
... ... @@ -1515,7 +1515,7 @@ do_reset(Boolean explicit)
1515 1515 }
1516 1516  
1517 1517 /* Clean up other modes. */
1518   - status_reset(NULL);
  1518 + status_reset(&h3270);
1519 1519 mcursor_normal(&h3270);
1520 1520  
1521 1521 }
... ... @@ -1586,7 +1586,7 @@ LIB3270_CURSOR_ACTION( left )
1586 1586 if (KYBDLOCK_IS_OERR)
1587 1587 {
1588 1588 kybdlock_clr(KL_OERR_MASK, "Left");
1589   - status_reset(NULL);
  1589 + status_reset(&h3270);
1590 1590 }
1591 1591 else
1592 1592 {
... ... @@ -1848,7 +1848,7 @@ LIB3270_CURSOR_ACTION( right )
1848 1848 if (KYBDLOCK_IS_OERR)
1849 1849 {
1850 1850 kybdlock_clr(KL_OERR_MASK, "Right");
1851   - status_reset(NULL);
  1851 + status_reset(&h3270);
1852 1852 }
1853 1853 else
1854 1854 {
... ... @@ -1893,7 +1893,7 @@ Left2_action(Widget w unused, XEvent *event, String *params,
1893 1893 if (kybdlock) {
1894 1894 if (KYBDLOCK_IS_OERR) {
1895 1895 kybdlock_clr(KL_OERR_MASK, "Left2");
1896   - status_reset();
  1896 + status_reset(&h3270);
1897 1897 } else {
1898 1898 enq_ta(Left2_action, CN, CN);
1899 1899 return;
... ... @@ -1998,7 +1998,7 @@ Right2_action(Widget w unused, XEvent *event, String *params,
1998 1998 if (kybdlock) {
1999 1999 if (KYBDLOCK_IS_OERR) {
2000 2000 kybdlock_clr(KL_OERR_MASK, "Right2");
2001   - status_reset();
  2001 + status_reset(&h3270);
2002 2002 } else {
2003 2003 enq_ta(Right2_action, CN, CN);
2004 2004 return;
... ... @@ -2151,7 +2151,7 @@ LIB3270_CURSOR_ACTION( up )
2151 2151 if (KYBDLOCK_IS_OERR)
2152 2152 {
2153 2153 kybdlock_clr(KL_OERR_MASK, "Up");
2154   - status_reset(NULL);
  2154 + status_reset(&h3270);
2155 2155 }
2156 2156 else
2157 2157 {
... ... @@ -2189,7 +2189,7 @@ LIB3270_CURSOR_ACTION( down )
2189 2189 if (KYBDLOCK_IS_OERR)
2190 2190 {
2191 2191 kybdlock_clr(KL_OERR_MASK, "Down");
2192   - status_reset(NULL);
  2192 + status_reset(&h3270);
2193 2193 } else
2194 2194 {
2195 2195 ENQUEUE_ACTION(lib3270_cursor_down);
... ...
src/lib3270/sf.c
... ... @@ -50,9 +50,11 @@
50 50  
51 51 #include "charsetc.h"
52 52 #include "ctlrc.h"
53   -#if defined(X3270_FT) /*[*/
54   -#include "ft_dftc.h"
55   -#endif /*]*/
  53 +
  54 +#if defined(X3270_FT)
  55 + #include "ft_dftc.h"
  56 +#endif
  57 +
56 58 #include "kybdc.h"
57 59 #include "screenc.h"
58 60 #include "seec.h"
... ...
src/lib3270/telnet.c
... ... @@ -203,9 +203,9 @@ static char *proxy_host = CN;
203 203 static char *proxy_portname = CN;
204 204 static unsigned short proxy_port = 0;
205 205  
206   -static int telnet_fsm(unsigned char c);
  206 +static int telnet_fsm(H3270 *session, unsigned char c);
207 207 static void net_rawout(unsigned const char *buf, int len);
208   -static void check_in3270(void);
  208 +static void check_in3270(H3270 *session);
209 209 static void store3270in(unsigned char c);
210 210 static void check_linemode(Boolean init);
211 211 static int non_blocking(H3270 *session, Boolean on);
... ... @@ -609,14 +609,14 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo
609 609 haddr.sin.sin_port = passthru_port;
610 610 ha_len = sizeof(struct sockaddr_in);
611 611 } else if (proxy_type > 0) {
612   - if (resolve_host_and_port(&h3270,proxy_host, proxy_portname,
  612 + if (resolve_host_and_port(session,proxy_host, proxy_portname,
613 613 &proxy_port, &haddr.sa, &ha_len, errmsg,
614 614 sizeof(errmsg)) < 0) {
615 615 popup_an_error(session,errmsg);
616 616 return -1;
617 617 }
618 618 } else {
619   - if (resolve_host_and_port(&h3270,host, portname,
  619 + if (resolve_host_and_port(session,host, portname,
620 620 &session->current_port, &haddr.sa, &ha_len,
621 621 errmsg, sizeof(errmsg)) < 0) {
622 622 popup_an_error(session,errmsg);
... ... @@ -818,7 +818,7 @@ static void net_connected(H3270 *session)
818 818 if (SSL_set_fd(session->ssl_con, session->sock) != 1)
819 819 {
820 820 trace_dsn("Can't set fd!\n");
821   - popup_system_error(&h3270,_( "Connection failed" ), _( "Can't set SSL socket file descriptor" ), "%s", SSL_state_string_long(session->ssl_con));
  821 + popup_system_error(session,_( "Connection failed" ), _( "Can't set SSL socket file descriptor" ), "%s", SSL_state_string_long(session->ssl_con));
822 822 set_ssl_state(session,LIB3270_SSL_UNSECURE);
823 823 }
824 824 else
... ... @@ -836,11 +836,7 @@ static void net_connected(H3270 *session)
836 836  
837 837 if(e != session->last_ssl_error)
838 838 {
839   - session->message( &h3270,
840   - LIB3270_NOTIFY_ERROR,
841   - _( "Connection failed" ),
842   - _( "SSL negotiation failed" ),
843   - state);
  839 + session->message(session,LIB3270_NOTIFY_ERROR,_( "Connection failed" ),_( "SSL negotiation failed" ),state);
844 840 session->last_ssl_error = e;
845 841 }
846 842 return;
... ... @@ -907,15 +903,15 @@ static void net_connected(H3270 *session)
907 903 * appeared ready but recv() returned EWOULDBLOCK). Complete the
908 904 * connection-completion processing.
909 905 */
910   -static void connection_complete(void)
  906 +static void connection_complete(H3270 *session)
911 907 {
912   - if (non_blocking(&h3270,False) < 0)
  908 + if (non_blocking(session,False) < 0)
913 909 {
914   - host_disconnect(&h3270,True);
  910 + host_disconnect(session,True);
915 911 return;
916 912 }
917   - host_connected(&h3270);
918   - net_connected(&h3270);
  913 + host_connected(session);
  914 + net_connected(session);
919 915 }
920 916  
921 917 /*
... ... @@ -950,7 +946,7 @@ void net_disconnect(H3270 *session)
950 946  
951 947 /* We're not connected to an LU any more. */
952 948 session->connected_lu = CN;
953   - status_lu(&h3270,CN);
  949 + status_lu(session,CN);
954 950  
955 951 }
956 952  
... ... @@ -984,7 +980,7 @@ void net_input(H3270 *session)
984 980  
985 981 switch (err) {
986 982 case WSAEISCONN:
987   - connection_complete();
  983 + connection_complete(session);
988 984 // and go get data...?
989 985 break;
990 986 case WSAEALREADY:
... ... @@ -992,11 +988,7 @@ void net_input(H3270 *session)
992 988 case WSAEINVAL:
993 989 return;
994 990 default:
995   - lib3270_popup_dialog( &h3270,
996   - LIB3270_NOTIFY_CRITICAL,
997   - N_( "Network startup error" ),
998   - N_( "Second connect() failed" ),
999   - "%s", win32_strerror(GetLastError()) );
  991 + lib3270_popup_dialog(session,LIB3270_NOTIFY_CRITICAL,N_( "Network startup error" ),N_( "Second connect() failed" ),"%s", win32_strerror(GetLastError()) );
1000 992 _exit(1);
1001 993 }
1002 994 }
... ... @@ -1040,11 +1032,7 @@ void net_input(H3270 *session)
1040 1032  
1041 1033 trace_dsn("RCVD SSL_read error %ld (%s)\n", e,err_buf);
1042 1034  
1043   - h3270.message( &h3270,
1044   - LIB3270_NOTIFY_ERROR,
1045   - _( "SSL Error" ),
1046   - _( "SSL Read error" ),
1047   - err_buf );
  1035 + session->message( session,LIB3270_NOTIFY_ERROR,_( "SSL Error" ),_( "SSL Read error" ),err_buf );
1048 1036  
1049 1037 host_disconnect(session,True);
1050 1038 return;
... ... @@ -1053,7 +1041,7 @@ void net_input(H3270 *session)
1053 1041  
1054 1042 if (HALF_CONNECTED && socket_errno() == SE_EAGAIN)
1055 1043 {
1056   - connection_complete();
  1044 + connection_complete(session);
1057 1045 return;
1058 1046 }
1059 1047  
... ... @@ -1095,7 +1083,7 @@ void net_input(H3270 *session)
1095 1083 ns_brcvd += nr;
1096 1084 for (cp = netrbuf; cp < (netrbuf + nr); cp++)
1097 1085 {
1098   - if (telnet_fsm(*cp))
  1086 + if (telnet_fsm(session,*cp))
1099 1087 {
1100 1088 (void) ctlr_dbcs_postprocess();
1101 1089 host_disconnect(session,True);
... ... @@ -1177,8 +1165,7 @@ next_lu(void)
1177 1165 * Telnet finite-state machine.
1178 1166 * Returns 0 for okay, -1 for errors.
1179 1167 */
1180   -static int
1181   -telnet_fsm(unsigned char c)
  1168 +static int telnet_fsm(H3270 *session, unsigned char c)
1182 1169 {
1183 1170 #if defined(X3270_ANSI) /*[*/
1184 1171 char *see_chr;
... ... @@ -1202,9 +1189,9 @@ telnet_fsm(unsigned char c)
1202 1189 if (linemode)
1203 1190 cooked_init();
1204 1191 #endif /*]*/
1205   - host_in3270(&h3270,CONNECTED_ANSI);
  1192 + host_in3270(session,CONNECTED_ANSI);
1206 1193 kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm");
1207   - status_reset(NULL);
  1194 + status_reset(session);
1208 1195 ps_process();
1209 1196 }
1210 1197 if (IN_ANSI && !IN_E) {
... ... @@ -1220,9 +1207,9 @@ telnet_fsm(unsigned char c)
1220 1207 ansi_data = 4 + sl;
1221 1208 }
1222 1209 trace_dsn("%s",see_chr);
1223   - if (!h3270.syncing)
  1210 + if (!session->syncing)
1224 1211 {
1225   - if (linemode && h3270.onlcr && c == '\n')
  1212 + if (linemode && session->onlcr && c == '\n')
1226 1213 ansi_process((unsigned int) '\r');
1227 1214 ansi_process((unsigned int) c);
1228 1215 // sms_store(c);
... ... @@ -1289,10 +1276,10 @@ telnet_fsm(unsigned char c)
1289 1276 break;
1290 1277 case DM:
1291 1278 trace_dsn("\n");
1292   - if (h3270.syncing)
  1279 + if (session->syncing)
1293 1280 {
1294   - h3270.syncing = 0;
1295   - x_except_on(&h3270);
  1281 + session->syncing = 0;
  1282 + x_except_on(session);
1296 1283 }
1297 1284 telnet_state = TNS_DATA;
1298 1285 break;
... ... @@ -1339,7 +1326,7 @@ telnet_fsm(unsigned char c)
1339 1326 cmd(WILL), opt(c));
1340 1327 }
1341 1328  
1342   - check_in3270();
  1329 + check_in3270(&h3270);
1343 1330 check_linemode(False);
1344 1331 }
1345 1332 break;
... ... @@ -1359,7 +1346,7 @@ telnet_fsm(unsigned char c)
1359 1346 dont_opt[2] = c;
1360 1347 net_rawout(dont_opt, sizeof(dont_opt));
1361 1348 trace_dsn("SENT %s %s\n", cmd(DONT), opt(c));
1362   - check_in3270();
  1349 + check_in3270(&h3270);
1363 1350 check_linemode(False);
1364 1351 }
1365 1352 telnet_state = TNS_DATA;
... ... @@ -1379,9 +1366,9 @@ telnet_fsm(unsigned char c)
1379 1366 #if defined(HAVE_LIBSSL) /*[*/
1380 1367 case TELOPT_STARTTLS:
1381 1368 #endif /*]*/
1382   - if (c == TELOPT_TN3270E && h3270.non_tn3270e_host)
  1369 + if (c == TELOPT_TN3270E && session->non_tn3270e_host)
1383 1370 goto wont;
1384   - if (c == TELOPT_TM && !h3270.bsd_tm)
  1371 + if (c == TELOPT_TM && !session->bsd_tm)
1385 1372 goto wont;
1386 1373  
1387 1374 if (!myopts[c]) {
... ... @@ -1390,7 +1377,7 @@ telnet_fsm(unsigned char c)
1390 1377 will_opt[2] = c;
1391 1378 net_rawout(will_opt, sizeof(will_opt));
1392 1379 trace_dsn("SENT %s %s\n", cmd(WILL), opt(c));
1393   - check_in3270();
  1380 + check_in3270(&h3270);
1394 1381 check_linemode(False);
1395 1382 }
1396 1383 if (c == TELOPT_NAWS)
... ... @@ -1432,7 +1419,7 @@ telnet_fsm(unsigned char c)
1432 1419 wont_opt[2] = c;
1433 1420 net_rawout(wont_opt, sizeof(wont_opt));
1434 1421 trace_dsn("SENT %s %s\n", cmd(WONT), opt(c));
1435   - check_in3270();
  1422 + check_in3270(&h3270);
1436 1423 check_linemode(False);
1437 1424 }
1438 1425 telnet_state = TNS_DATA;
... ... @@ -1460,19 +1447,19 @@ telnet_fsm(unsigned char c)
1460 1447 return -1;
1461 1448 }
1462 1449  
1463   - tt_len = strlen(h3270.termtype);
  1450 + tt_len = strlen(session->termtype);
1464 1451 if (try_lu != CN && *try_lu) {
1465 1452 tt_len += strlen(try_lu) + 1;
1466   - h3270.connected_lu = try_lu;
  1453 + session->connected_lu = try_lu;
1467 1454 } else
1468   - h3270.connected_lu = CN;
1469   - status_lu(&h3270,h3270.connected_lu);
  1455 + session->connected_lu = CN;
  1456 + status_lu(session,session->connected_lu);
1470 1457  
1471 1458 tb_len = 4 + tt_len + 2;
1472 1459 tt_out = lib3270_malloc(tb_len + 1);
1473 1460 (void) sprintf(tt_out, "%c%c%c%c%s%s%s%c%c",
1474 1461 IAC, SB, TELOPT_TTYPE, TELQUAL_IS,
1475   - h3270.termtype,
  1462 + session->termtype,
1476 1463 (try_lu != CN && *try_lu) ? "@" : "",
1477 1464 (try_lu != CN && *try_lu) ? try_lu : "",
1478 1465 IAC, SE);
... ... @@ -1569,7 +1556,7 @@ backoff_tn3270e(const char *why)
1569 1556  
1570 1557 /* Reset our internal state. */
1571 1558 myopts[TELOPT_TN3270E] = 0;
1572   - check_in3270();
  1559 + check_in3270(&h3270);
1573 1560 }
1574 1561  
1575 1562 /*
... ... @@ -1706,7 +1693,7 @@ tn3270e_negotiate(void)
1706 1693 tn3270e_subneg_send(TN3270E_OP_IS, e_funcs);
1707 1694 tn3270e_negotiated = 1;
1708 1695 trace_dsn("TN3270E option negotiation complete.\n");
1709   - check_in3270();
  1696 + check_in3270(&h3270);
1710 1697 } else {
1711 1698 /*
1712 1699 * They want us to do something we can't.
... ... @@ -1743,7 +1730,7 @@ tn3270e_negotiate(void)
1743 1730 }
1744 1731 tn3270e_negotiated = 1;
1745 1732 trace_dsn("TN3270E option negotiation complete.\n");
1746   - check_in3270();
  1733 + check_in3270(&h3270);
1747 1734 break;
1748 1735  
1749 1736 default:
... ... @@ -1894,7 +1881,7 @@ process_eor(void)
1894 1881 !tn3270e_bound)
1895 1882 return 0;
1896 1883 tn3270e_submode = E_3270;
1897   - check_in3270();
  1884 + check_in3270(&h3270);
1898 1885 response_required = h->response_flag;
1899 1886 rv = process_ds(ibuf + EH_SIZE,
1900 1887 (ibptr - ibuf) - EH_SIZE);
... ... @@ -1912,7 +1899,7 @@ process_eor(void)
1912 1899 process_bind(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE);
1913 1900 trace_dsn("< BIND PLU-name '%s'\n", plu_name);
1914 1901 tn3270e_bound = 1;
1915   - check_in3270();
  1902 + check_in3270(&h3270);
1916 1903 return 0;
1917 1904 case TN3270E_DT_UNBIND:
1918 1905 if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE)))
... ... @@ -1920,12 +1907,12 @@ process_eor(void)
1920 1907 tn3270e_bound = 0;
1921 1908 if (tn3270e_submode == E_3270)
1922 1909 tn3270e_submode = E_NONE;
1923   - check_in3270();
  1910 + check_in3270(&h3270);
1924 1911 return 0;
1925 1912 case TN3270E_DT_NVT_DATA:
1926 1913 /* In tn3270e NVT mode */
1927 1914 tn3270e_submode = E_NVT;
1928   - check_in3270();
  1915 + check_in3270(&h3270);
1929 1916 for (s = ibuf; s < ibptr; s++) {
1930 1917 ansi_process(*s++);
1931 1918 }
... ... @@ -1934,7 +1921,7 @@ process_eor(void)
1934 1921 if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE)))
1935 1922 return 0;
1936 1923 tn3270e_submode = E_SSCP;
1937   - check_in3270();
  1924 + check_in3270(&h3270);
1938 1925 ctlr_write_sscp_lu(ibuf + EH_SIZE,
1939 1926 (ibptr - ibuf) - EH_SIZE);
1940 1927 return 0;
... ... @@ -2407,9 +2394,10 @@ do_lnext(char c)
2407 2394 * Check for switches between NVT, SSCP-LU and 3270 modes.
2408 2395 */
2409 2396 static void
2410   -check_in3270(void)
  2397 +check_in3270(H3270 *session)
2411 2398 {
2412 2399 LIB3270_CSTATE new_cstate = NOT_CONNECTED;
  2400 +
2413 2401 #if defined(X3270_TRACE) /*[*/
2414 2402 static const char *state_name[] = {
2415 2403 "unconnected",
... ... @@ -2451,14 +2439,14 @@ check_in3270(void)
2451 2439 hisopts[TELOPT_BINARY] &&
2452 2440 hisopts[TELOPT_EOR]) {
2453 2441 new_cstate = CONNECTED_3270;
2454   - } else if (h3270.cstate == CONNECTED_INITIAL) {
  2442 + } else if (session->cstate == CONNECTED_INITIAL) {
2455 2443 /* Nothing has happened, yet. */
2456 2444 return;
2457 2445 } else {
2458 2446 new_cstate = CONNECTED_ANSI;
2459 2447 }
2460 2448  
2461   - if (new_cstate != h3270.cstate) {
  2449 + if (new_cstate != session->cstate) {
2462 2450 #if defined(X3270_TN3270E) /*[*/
2463 2451 int was_in_e = IN_E;
2464 2452 #endif /*]*/
... ... @@ -2498,7 +2486,7 @@ check_in3270(void)
2498 2486 }
2499 2487 #endif /*]*/
2500 2488 trace_dsn("Now operating in %s mode.\n",state_name[new_cstate]);
2501   - host_in3270(&h3270,new_cstate);
  2489 + host_in3270(session,new_cstate);
2502 2490 }
2503 2491 }
2504 2492  
... ... @@ -3017,14 +3005,14 @@ net_abort(void)
3017 3005 if (tn3270e_bound ||
3018 3006 !(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) {
3019 3007 tn3270e_submode = E_3270;
3020   - check_in3270();
  3008 + check_in3270(&h3270);
3021 3009 }
3022 3010 break;
3023 3011 case E_3270:
3024 3012 net_rawout(buf, sizeof(buf));
3025 3013 trace_dsn("SENT AO\n");
3026 3014 tn3270e_submode = E_SSCP;
3027   - check_in3270();
  3015 + check_in3270(&h3270);
3028 3016 break;
3029 3017 }
3030 3018 }
... ...