Commit 7492b29e9f69491f398b08c5ab44d032be46701c
1 parent
ed2e112b
Exists in
master
and in
5 other branches
Incluindo suporte multi-sessão em mais funções
Showing
7 changed files
with
96 additions
and
301 deletions
Show diff stats
src/lib3270/ansi.c
... | ... | @@ -1312,11 +1312,10 @@ ansi_reverse_index(H3270 *hSession, int ig1 unused, int ig2 unused) |
1312 | 1312 | return DATA; |
1313 | 1313 | } |
1314 | 1314 | |
1315 | -static enum lib3270_ansi_state | |
1316 | -ansi_send_attributes(H3270 *hSession, int nn, int ig2 unused) | |
1315 | +static enum lib3270_ansi_state ansi_send_attributes(H3270 *hSession, int nn, int ig2 unused) | |
1317 | 1316 | { |
1318 | 1317 | if (!nn) |
1319 | - net_sends(""\033[?1;2c");33[?1;2c"); | |
1318 | + net_sends(hSession,""\033[?1;2c");33[?1;2c"); | |
1320 | 1319 | return DATA; |
1321 | 1320 | } |
1322 | 1321 | |
... | ... | @@ -1361,14 +1360,15 @@ ansi_status_report(H3270 *hSession, int nn, int ig2 unused) |
1361 | 1360 | { |
1362 | 1361 | static char cpr[11]; |
1363 | 1362 | |
1364 | - switch (nn) { | |
1365 | - case 5: | |
1366 | - net_sends("\033[0n"); | |
1363 | + switch (nn) | |
1364 | + { | |
1365 | + case 5: | |
1366 | + net_sends(hSession,"\033[0n"); | |
1367 | 1367 | break; |
1368 | - case 6: | |
1369 | - (void) sprintf(cpr, "\033[%d;%dR", | |
1370 | - (hSession->cursor_addr/hSession->cols) + 1, (hSession->cursor_addr%hSession->cols) + 1); | |
1371 | - net_sends(cpr); | |
1368 | + | |
1369 | + case 6: | |
1370 | + (void) sprintf(cpr, "\033[%d;%dR",(hSession->cursor_addr/hSession->cols) + 1, (hSession->cursor_addr%hSession->cols) + 1); | |
1371 | + net_sends(hSession,cpr); | |
1372 | 1372 | break; |
1373 | 1373 | } |
1374 | 1374 | return DATA; |
... | ... | @@ -1771,48 +1771,48 @@ void |
1771 | 1771 | ansi_send_up(H3270 *hSession) |
1772 | 1772 | { |
1773 | 1773 | if (hSession->appl_cursor) |
1774 | - net_sends(""\033OA");33OA"); | |
1774 | + net_sends(hSession,""\033OA");33OA"); | |
1775 | 1775 | else |
1776 | - net_sends(""\033[A");33[A"); | |
1776 | + net_sends(hSession,""\033[A");33[A"); | |
1777 | 1777 | } |
1778 | 1778 | |
1779 | 1779 | void |
1780 | 1780 | ansi_send_down(H3270 *hSession) |
1781 | 1781 | { |
1782 | 1782 | if (hSession->appl_cursor) |
1783 | - net_sends(""\033OB");33OB"); | |
1783 | + net_sends(hSession,""\033OB");33OB"); | |
1784 | 1784 | else |
1785 | - net_sends(""\033[B");33[B"); | |
1785 | + net_sends(hSession,""\033[B");33[B"); | |
1786 | 1786 | } |
1787 | 1787 | |
1788 | 1788 | void |
1789 | 1789 | ansi_send_right(H3270 *hSession) |
1790 | 1790 | { |
1791 | 1791 | if (hSession->appl_cursor) |
1792 | - net_sends(""\033OC");33OC"); | |
1792 | + net_sends(hSession,""\033OC");33OC"); | |
1793 | 1793 | else |
1794 | - net_sends(""\033[C");33[C"); | |
1794 | + net_sends(hSession,""\033[C");33[C"); | |
1795 | 1795 | } |
1796 | 1796 | |
1797 | 1797 | void |
1798 | 1798 | ansi_send_left(H3270 *hSession) |
1799 | 1799 | { |
1800 | 1800 | if (hSession->appl_cursor) |
1801 | - net_sends(""\033OD");33OD"); | |
1801 | + net_sends(hSession,""\033OD");33OD"); | |
1802 | 1802 | else |
1803 | - net_sends(""\033[D");33[D"); | |
1803 | + net_sends(hSession,""\033[D");33[D"); | |
1804 | 1804 | } |
1805 | 1805 | |
1806 | 1806 | void |
1807 | 1807 | ansi_send_home(H3270 *hSession) |
1808 | 1808 | { |
1809 | - net_sends(""\033[H");33[H"); | |
1809 | + net_sends(hSession,""\033[H");33[H"); | |
1810 | 1810 | } |
1811 | 1811 | |
1812 | 1812 | void |
1813 | 1813 | ansi_send_clear(H3270 *hSession) |
1814 | 1814 | { |
1815 | - net_sends(""\033[2K");33[2K"); | |
1815 | + net_sends(hSession,""\033[2K");33[2K"); | |
1816 | 1816 | } |
1817 | 1817 | |
1818 | 1818 | void |
... | ... | @@ -1838,7 +1838,7 @@ ansi_send_pf(H3270 *hSession, int nn) |
1838 | 1838 | if (nn < 1 || nn > sizeof(code)/sizeof(code[0])) |
1839 | 1839 | return; |
1840 | 1840 | (void) sprintf(fn_buf, "\033[%d~", code[nn-1]); |
1841 | - net_sends(fn_buf); | |
1841 | + net_sends(hSession,fn_buf); | |
1842 | 1842 | } |
1843 | 1843 | |
1844 | 1844 | void |
... | ... | @@ -1850,7 +1850,7 @@ ansi_send_pa(H3270 *hSession, int nn) |
1850 | 1850 | if (nn < 1 || nn > 4) |
1851 | 1851 | return; |
1852 | 1852 | (void) sprintf(fn_buf, "\033O%c", code[nn-1]); |
1853 | - net_sends(fn_buf); | |
1853 | + net_sends(hSession,fn_buf); | |
1854 | 1854 | } |
1855 | 1855 | |
1856 | 1856 | void toggle_lineWrap(H3270 *hSession, struct lib3270_toggle *t unused, LIB3270_TOGGLE_TYPE type unused) | ... | ... |
src/lib3270/ctlr.c
... | ... | @@ -353,53 +353,6 @@ unsigned char get_field_attribute(H3270 *h, int baddr) |
353 | 353 | } |
354 | 354 | |
355 | 355 | /* |
356 | - * Find the field attribute for the given buffer address, bounded by another | |
357 | - * buffer address. Return the attribute in a parameter. | |
358 | - * | |
359 | - * Returns True if an attribute is found, False if boundary hit. | |
360 | - */ /* | |
361 | -Boolean | |
362 | -get_bounded_field_attribute(register int baddr, register int bound, | |
363 | - unsigned char *fa_out) | |
364 | -{ | |
365 | - int sbaddr; | |
366 | - | |
367 | - if (!h3270.formatted) { | |
368 | - *fa_out = h3270.ea_buf[-1].fa; | |
369 | - return True; | |
370 | - } | |
371 | - | |
372 | - sbaddr = baddr; | |
373 | - do { | |
374 | - if (h3270.ea_buf[baddr].fa) { | |
375 | - *fa_out = h3270.ea_buf[baddr].fa; | |
376 | - return True; | |
377 | - } | |
378 | - DEC_BA(baddr); | |
379 | - } while (baddr != sbaddr && baddr != bound); | |
380 | - | |
381 | - // Screen is unformatted (and 'formatted' is inaccurate). | |
382 | - if (baddr == sbaddr) { | |
383 | - *fa_out = h3270.ea_buf[-1].fa; | |
384 | - return True; | |
385 | - } | |
386 | - | |
387 | - // Wrapped to boundary. | |
388 | - return False; | |
389 | -} */ | |
390 | - | |
391 | -/* | |
392 | - * Given the address of a field attribute, return the address of the | |
393 | - * extended attribute structure. | |
394 | - */ /* | |
395 | -struct ea * | |
396 | -fa2ea(int baddr) | |
397 | -{ | |
398 | - return &h3270.ea_buf[baddr]; | |
399 | -} | |
400 | -*/ | |
401 | - | |
402 | -/* | |
403 | 356 | * Find the next unprotected field. Returns the address following the |
404 | 357 | * unprotected attribute byte, or 0 if no nonzero-width unprotected field |
405 | 358 | * can be found. |
... | ... | @@ -517,14 +470,14 @@ enum pds process_ds(H3270 *hSession, unsigned char *buf, int buflen) |
517 | 470 | case CMD_RM: /* read modifed */ |
518 | 471 | case SNA_CMD_RM: |
519 | 472 | trace_ds(hSession,"ReadModified\n"); |
520 | - ctlr_read_modified(hSession->aid, False); | |
473 | + ctlr_read_modified(hSession, hSession->aid, False); | |
521 | 474 | return PDS_OKAY_OUTPUT; |
522 | 475 | break; |
523 | 476 | |
524 | 477 | case CMD_RMA: /* read modifed all */ |
525 | 478 | case SNA_CMD_RMA: |
526 | 479 | trace_ds(hSession,"ReadModifiedAll\n"); |
527 | - ctlr_read_modified(hSession->aid, True); | |
480 | + ctlr_read_modified(hSession, hSession->aid, True); | |
528 | 481 | return PDS_OKAY_OUTPUT; |
529 | 482 | break; |
530 | 483 | |
... | ... | @@ -609,12 +562,10 @@ static void insert_sa(H3270 *hSession, int baddr, unsigned char *current_fgp, un |
609 | 562 | } |
610 | 563 | |
611 | 564 | |
612 | -/* | |
613 | - * Process a 3270 Read-Modified command and transmit the data back to the | |
614 | - * host. | |
565 | +/** | |
566 | + * Process a 3270 Read-Modified command and transmit the data back to the host. | |
615 | 567 | */ |
616 | -void | |
617 | -ctlr_read_modified(unsigned char aid_byte, Boolean all) | |
568 | +void ctlr_read_modified(H3270 *hSession, unsigned char aid_byte, Boolean all) | |
618 | 569 | { |
619 | 570 | register int baddr, sbaddr; |
620 | 571 | Boolean send_data = True; | ... | ... |
src/lib3270/ctlrc.h
... | ... | @@ -54,7 +54,7 @@ LIB3270_INTERNAL void ctlr_clear(H3270 *hSession, Boolean can_snap); |
54 | 54 | LIB3270_INTERNAL void ctlr_erase_all_unprotected(H3270 *hSession); |
55 | 55 | LIB3270_INTERNAL void ctlr_init(H3270 *session, unsigned cmask); |
56 | 56 | LIB3270_INTERNAL void ctlr_read_buffer(H3270 *session, unsigned char aid_byte); |
57 | -LIB3270_INTERNAL void ctlr_read_modified(unsigned char aid_byte, Boolean all); | |
57 | +LIB3270_INTERNAL void ctlr_read_modified(H3270 *hSession, unsigned char aid_byte, Boolean all); | |
58 | 58 | LIB3270_INTERNAL void ctlr_reinit(H3270 *session, unsigned cmask); |
59 | 59 | LIB3270_INTERNAL void ctlr_scroll(H3270 *hSession); |
60 | 60 | // LIB3270_INTERNAL void ctlr_shrink(void); | ... | ... |
src/lib3270/kybd.c
... | ... | @@ -502,7 +502,7 @@ static void key_AID(H3270 *hSession, unsigned char aid_code) |
502 | 502 | trace("aid_code: %02x IN_ANSI: %d",aid_code,IN_ANSI); |
503 | 503 | |
504 | 504 | if (aid_code == AID_ENTER) { |
505 | - net_sendc('\r'); | |
505 | + net_sendc(hSession, '\r'); | |
506 | 506 | return; |
507 | 507 | } |
508 | 508 | for (i = 0; i < PF_SZ; i++) |
... | ... | @@ -551,7 +551,7 @@ static void key_AID(H3270 *hSession, unsigned char aid_code) |
551 | 551 | kybdlock_set(hSession,KL_OIA_TWAIT | KL_OIA_LOCKED); |
552 | 552 | } |
553 | 553 | hSession->aid = aid_code; |
554 | - ctlr_read_modified(hSession->aid, False); | |
554 | + ctlr_read_modified(hSession, hSession->aid, False); | |
555 | 555 | ticking_start(hSession,False); |
556 | 556 | status_ctlr_done(hSession); |
557 | 557 | } |
... | ... | @@ -990,7 +990,7 @@ void key_ACharacter(unsigned char c, enum keytype keytype, enum iaction cause,Bo |
990 | 990 | #if defined(X3270_ANSI) /*[*/ |
991 | 991 | else if (IN_ANSI) |
992 | 992 | { |
993 | - net_sendc((char) c); | |
993 | + net_sendc(&h3270,(char) c); | |
994 | 994 | } |
995 | 995 | #endif /*]*/ |
996 | 996 | else |
... | ... | @@ -1017,8 +1017,9 @@ LIB3270_ACTION( nextfield ) |
1017 | 1017 | } |
1018 | 1018 | } |
1019 | 1019 | #if defined(X3270_ANSI) /*[*/ |
1020 | - if (IN_ANSI) { | |
1021 | - net_sendc('\t'); | |
1020 | + if (IN_ANSI) | |
1021 | + { | |
1022 | + net_sendc(hSession,'\t'); | |
1022 | 1023 | return 0; |
1023 | 1024 | } |
1024 | 1025 | #endif /*]*/ |
... | ... | @@ -1344,8 +1345,9 @@ LIB3270_ACTION( delete ) |
1344 | 1345 | return 0; |
1345 | 1346 | } |
1346 | 1347 | #if defined(X3270_ANSI) /*[*/ |
1347 | - if (IN_ANSI) { | |
1348 | - net_sendc('\177'); | |
1348 | + if (IN_ANSI) | |
1349 | + { | |
1350 | + net_sendc(hSession,'\177'); | |
1349 | 1351 | return 0; |
1350 | 1352 | } |
1351 | 1353 | #endif /*]*/ |
... | ... | @@ -1376,7 +1378,7 @@ LIB3270_ACTION( backspace ) |
1376 | 1378 | } |
1377 | 1379 | #if defined(X3270_ANSI) /*[*/ |
1378 | 1380 | if (IN_ANSI) { |
1379 | - net_send_erase(); | |
1381 | + net_send_erase(hSession); | |
1380 | 1382 | return 0; |
1381 | 1383 | } |
1382 | 1384 | #endif /*]*/ |
... | ... | @@ -1472,7 +1474,7 @@ LIB3270_ACTION( erase ) |
1472 | 1474 | #if defined(X3270_ANSI) /*[*/ |
1473 | 1475 | if (IN_ANSI) |
1474 | 1476 | { |
1475 | - net_send_erase(); | |
1477 | + net_send_erase(hSession); | |
1476 | 1478 | return 0; |
1477 | 1479 | } |
1478 | 1480 | #endif /*]*/ |
... | ... | @@ -1798,7 +1800,7 @@ LIB3270_CURSOR_ACTION( newline ) |
1798 | 1800 | #if defined(X3270_ANSI) /*[*/ |
1799 | 1801 | if (IN_ANSI) |
1800 | 1802 | { |
1801 | - net_sendc('\n'); | |
1803 | + net_sendc(hSession,'\n'); | |
1802 | 1804 | return 0; |
1803 | 1805 | } |
1804 | 1806 | #endif /*]*/ |
... | ... | @@ -2125,7 +2127,7 @@ LIB3270_ACTION( deleteword ) |
2125 | 2127 | } |
2126 | 2128 | #if defined(X3270_ANSI) /*[*/ |
2127 | 2129 | if (IN_ANSI) { |
2128 | - net_send_werase(); | |
2130 | + net_send_werase(hSession); | |
2129 | 2131 | return 0; |
2130 | 2132 | } |
2131 | 2133 | #endif /*]*/ |
... | ... | @@ -2193,7 +2195,7 @@ LIB3270_ACTION( deletefield ) |
2193 | 2195 | } |
2194 | 2196 | #if defined(X3270_ANSI) /*[*/ |
2195 | 2197 | if (IN_ANSI) { |
2196 | - net_send_kill(); | |
2198 | + net_send_kill(hSession); | |
2197 | 2199 | return 0; |
2198 | 2200 | } |
2199 | 2201 | #endif /*]*/ | ... | ... |
src/lib3270/sf.c
... | ... | @@ -357,7 +357,7 @@ sf_read_part(unsigned char buf[], unsigned buflen) |
357 | 357 | return PDS_BAD_CMD; |
358 | 358 | } |
359 | 359 | trace_ds(&h3270,"\n"); |
360 | - ctlr_read_modified(AID_QREPLY, True); | |
360 | + ctlr_read_modified(&h3270, AID_QREPLY, True); | |
361 | 361 | break; |
362 | 362 | case SNA_CMD_RB: |
363 | 363 | trace_ds(&h3270," ReadBuffer"); |
... | ... | @@ -375,7 +375,7 @@ sf_read_part(unsigned char buf[], unsigned buflen) |
375 | 375 | return PDS_BAD_CMD; |
376 | 376 | } |
377 | 377 | trace_ds(&h3270,"\n"); |
378 | - ctlr_read_modified(AID_QREPLY, False); | |
378 | + ctlr_read_modified(&h3270, AID_QREPLY, False); | |
379 | 379 | break; |
380 | 380 | default: |
381 | 381 | trace_ds(&h3270," unknown type 0x%02x\n", buf[4]); | ... | ... |
src/lib3270/telnet.c
... | ... | @@ -2850,8 +2850,9 @@ static void tn3270e_nak(H3270 *hSession, enum pds rv) |
2850 | 2850 | net_rawout(hSession, rsp_buf, rsp_len); |
2851 | 2851 | } |
2852 | 2852 | |
2853 | -#if defined(X3270_TRACE) /*[*/ | |
2854 | -/* Add a dummy TN3270E header to the output buffer. */ | |
2853 | +/* | |
2854 | +#if defined(X3270_TRACE) | |
2855 | +// Add a dummy TN3270E header to the output buffer. | |
2855 | 2856 | Boolean |
2856 | 2857 | net_add_dummy_tn3270e(void) |
2857 | 2858 | { |
... | ... | @@ -2883,7 +2884,8 @@ net_add_dummy_tn3270e(void) |
2883 | 2884 | h3270.obptr += EH_SIZE; |
2884 | 2885 | return True; |
2885 | 2886 | } |
2886 | -#endif /*]*/ | |
2887 | +#endif | |
2888 | +*/ | |
2887 | 2889 | #endif /*]*/ |
2888 | 2890 | |
2889 | 2891 | #if defined(X3270_TRACE) /*[*/ |
... | ... | @@ -2900,94 +2902,66 @@ net_add_eor(unsigned char *buf, int len) |
2900 | 2902 | |
2901 | 2903 | |
2902 | 2904 | #if defined(X3270_ANSI) /*[*/ |
2903 | -/* | |
2904 | - * net_sendc | |
2905 | - * Send a character of user data over the network in ANSI mode. | |
2905 | +/** | |
2906 | + * Send a character of user data over the network in ANSI mode. | |
2907 | + * | |
2908 | + * @param hSession Session handle. | |
2909 | + * @param c Character to send. | |
2910 | + * | |
2906 | 2911 | */ |
2907 | 2912 | void |
2908 | -net_sendc(char c) | |
2913 | +net_sendc(H3270 *hSession, char c) | |
2909 | 2914 | { |
2910 | - if (c == '\r' && !h3270.linemode | |
2911 | -/* | |
2912 | -#if defined(LOCAL_PROCESS) | |
2913 | - && !local_process | |
2914 | -#endif | |
2915 | -*/ | |
2916 | - ) { | |
2915 | + if (c == '\r' && !hSession->linemode) | |
2916 | + { | |
2917 | 2917 | /* CR must be quoted */ |
2918 | - net_cookout(&h3270,"\r\0", 2); | |
2919 | - } else { | |
2920 | - net_cookout(&h3270,&c, 1); | |
2918 | + net_cookout(hSession,"\r\0", 2); | |
2919 | + } | |
2920 | + else | |
2921 | + { | |
2922 | + net_cookout(hSession,&c, 1); | |
2921 | 2923 | } |
2922 | 2924 | } |
2923 | 2925 | |
2924 | - | |
2925 | -/* | |
2926 | - * net_sends | |
2927 | - * Send a null-terminated string of user data in ANSI mode. | |
2926 | +/** | |
2927 | + * Send a null-terminated string of user data in ANSI mode. | |
2928 | + * | |
2929 | + * @param hSession Session handle. | |
2930 | + * @param s String to send. | |
2928 | 2931 | */ |
2929 | -void | |
2930 | -net_sends(const char *s) | |
2932 | +void net_sends(H3270 *hSession,const char *s) | |
2931 | 2933 | { |
2932 | - net_cookout(&h3270, s, strlen(s)); | |
2934 | + net_cookout(hSession, s, strlen(s)); | |
2933 | 2935 | } |
2934 | 2936 | |
2935 | - | |
2936 | -/* | |
2937 | - * net_send_erase | |
2938 | - * Sends the KILL character in ANSI mode. | |
2937 | +/** | |
2938 | + * Sends the ERASE character in ANSI mode. | |
2939 | + * | |
2939 | 2940 | */ |
2940 | -void | |
2941 | -net_send_erase(void) | |
2941 | +void net_send_erase(H3270 *hSession) | |
2942 | 2942 | { |
2943 | - net_cookout(&h3270, &verase, 1); | |
2943 | + net_cookout(hSession, &verase, 1); | |
2944 | 2944 | } |
2945 | 2945 | |
2946 | - | |
2947 | -/* | |
2948 | - * net_send_kill | |
2946 | +/** | |
2949 | 2947 | * Sends the KILL character in ANSI mode. |
2950 | 2948 | */ |
2951 | -void | |
2952 | -net_send_kill(void) | |
2949 | +void net_send_kill(H3270 *hSession) | |
2953 | 2950 | { |
2954 | - net_cookout(&h3270, &vkill, 1); | |
2951 | + net_cookout(hSession, &vkill, 1); | |
2955 | 2952 | } |
2956 | 2953 | |
2957 | - | |
2958 | -/* | |
2959 | - * net_send_werase | |
2960 | - * Sends the WERASE character in ANSI mode. | |
2954 | +/** | |
2955 | + * Sends the WERASE character in ANSI mode. | |
2961 | 2956 | */ |
2962 | -void | |
2963 | -net_send_werase(void) | |
2957 | +void net_send_werase(H3270 *hSession) | |
2964 | 2958 | { |
2965 | - net_cookout(&h3270, &vwerase, 1); | |
2959 | + net_cookout(hSession, &vwerase, 1); | |
2966 | 2960 | } |
2967 | 2961 | #endif /*]*/ |
2968 | 2962 | |
2969 | - | |
2970 | -#if defined(X3270_MENUS) /*[*/ | |
2971 | 2963 | /* |
2972 | - * External entry points to negotiate line or character mode. | |
2973 | - */ /* | |
2974 | -void | |
2975 | -net_linemode(void) | |
2976 | -{ | |
2977 | - if (!CONNECTED) | |
2978 | - return; | |
2979 | - if (hisopts[TELOPT_ECHO]) { | |
2980 | - dont_opt[2] = TELOPT_ECHO; | |
2981 | - net_rawout(dont_opt, sizeof(dont_opt)); | |
2982 | - trace_dsn(&h3270,"SENT %s %s\n", cmd(DONT), opt(TELOPT_ECHO)); | |
2983 | - } | |
2984 | - if (hisopts[TELOPT_SGA]) { | |
2985 | - dont_opt[2] = TELOPT_SGA; | |
2986 | - net_rawout(dont_opt, sizeof(dont_opt)); | |
2987 | - trace_dsn(&h3270,"SENT %s %s\n", cmd(DONT), opt(TELOPT_SGA)); | |
2988 | - } | |
2989 | -} | |
2990 | -*/ | |
2964 | +#if defined(X3270_MENUS) | |
2991 | 2965 | |
2992 | 2966 | void net_charmode(H3270 *hSession) |
2993 | 2967 | { |
... | ... | @@ -3008,9 +2982,9 @@ void net_charmode(H3270 *hSession) |
3008 | 2982 | trace_dsn(hSession,"SENT %s %s\n", cmd(DO), opt(TELOPT_SGA)); |
3009 | 2983 | } |
3010 | 2984 | } |
3011 | -#endif /*]*/ | |
2985 | +#endif | |
2986 | +*/ | |
3012 | 2987 | |
3013 | - | |
3014 | 2988 | /* |
3015 | 2989 | * net_break |
3016 | 2990 | * Send telnet break, which is used to implement 3270 ATTN. |
... | ... | @@ -3107,138 +3081,6 @@ parse_ctlchar(char *s) |
3107 | 3081 | } |
3108 | 3082 | #endif /*]*/ |
3109 | 3083 | |
3110 | -#if (defined(X3270_MENUS) || defined(C3270)) && defined(X3270_ANSI) /*[*/ | |
3111 | -/* | |
3112 | - * net_linemode_chars | |
3113 | - * Report line-mode characters. | |
3114 | - */ /* | |
3115 | -struct ctl_char * | |
3116 | -net_linemode_chars(void) | |
3117 | -{ | |
3118 | - static struct ctl_char c[9]; | |
3119 | - | |
3120 | - c[0].name = "intr"; (void) strcpy(c[0].value, ctl_see(vintr)); | |
3121 | - c[1].name = "quit"; (void) strcpy(c[1].value, ctl_see(vquit)); | |
3122 | - c[2].name = "erase"; (void) strcpy(c[2].value, ctl_see(verase)); | |
3123 | - c[3].name = "kill"; (void) strcpy(c[3].value, ctl_see(vkill)); | |
3124 | - c[4].name = "eof"; (void) strcpy(c[4].value, ctl_see(veof)); | |
3125 | - c[5].name = "werase"; (void) strcpy(c[5].value, ctl_see(vwerase)); | |
3126 | - c[6].name = "rprnt"; (void) strcpy(c[6].value, ctl_see(vrprnt)); | |
3127 | - c[7].name = "lnext"; (void) strcpy(c[7].value, ctl_see(vlnext)); | |
3128 | - c[8].name = 0; | |
3129 | - | |
3130 | - return c; | |
3131 | -} */ | |
3132 | -#endif /*]*/ | |
3133 | - | |
3134 | -#if defined(X3270_TRACE) /*[*/ | |
3135 | -/* | |
3136 | - * Construct a string to reproduce the current TELNET options. | |
3137 | - * Returns a Boolean indicating whether it is necessary. | |
3138 | - */ /* | |
3139 | -Boolean | |
3140 | -net_snap_options(void) | |
3141 | -{ | |
3142 | - Boolean any = False; | |
3143 | - int i; | |
3144 | - static unsigned char ttype_str[] = { | |
3145 | - IAC, DO, TELOPT_TTYPE, | |
3146 | - IAC, SB, TELOPT_TTYPE, TELQUAL_SEND, IAC, SE | |
3147 | - }; | |
3148 | - | |
3149 | - if (!CONNECTED) | |
3150 | - return False; | |
3151 | - | |
3152 | - h3270.obptr = h3270.obuf; | |
3153 | - | |
3154 | - // Do TTYPE first. | |
3155 | - if (h3270.myopts[TELOPT_TTYPE]) { | |
3156 | - unsigned j; | |
3157 | - | |
3158 | - space3270out(sizeof(ttype_str)); | |
3159 | - for (j = 0; j < sizeof(ttype_str); j++) | |
3160 | - *h3270.obptr++ = ttype_str[j]; | |
3161 | - } | |
3162 | - | |
3163 | - // Do the other options. | |
3164 | - for (i = 0; i < LIB3270_TELNET_N_OPTS; i++) { | |
3165 | - space3270out(6); | |
3166 | - if (i == TELOPT_TTYPE) | |
3167 | - continue; | |
3168 | - if (h3270.hisopts[i]) { | |
3169 | - *h3270.obptr++ = IAC; | |
3170 | - *h3270.obptr++ = WILL; | |
3171 | - *h3270.obptr++ = (unsigned char)i; | |
3172 | - any = True; | |
3173 | - } | |
3174 | - if (h3270.myopts[i]) { | |
3175 | - *h3270.obptr++ = IAC; | |
3176 | - *h3270.obptr++ = DO; | |
3177 | - *h3270.obptr++ = (unsigned char)i; | |
3178 | - any = True; | |
3179 | - } | |
3180 | - } | |
3181 | - | |
3182 | -#if defined(X3270_TN3270E) | |
3183 | - // If we're in TN3270E mode, snap the subnegotations as well. | |
3184 | - if (h3270.myopts[TELOPT_TN3270E]) { | |
3185 | - any = True; | |
3186 | - | |
3187 | - space3270out(5 + | |
3188 | - ((h3270.connected_type != CN) ? strlen(h3270.connected_type) : 0) + | |
3189 | - ((h3270.connected_lu != CN) ? + strlen(h3270.connected_lu) : 0) + | |
3190 | - 2); | |
3191 | - *h3270.obptr++ = IAC; | |
3192 | - *h3270.obptr++ = SB; | |
3193 | - *h3270.obptr++ = TELOPT_TN3270E; | |
3194 | - *h3270.obptr++ = TN3270E_OP_DEVICE_TYPE; | |
3195 | - *h3270.obptr++ = TN3270E_OP_IS; | |
3196 | - if (h3270.connected_type != CN) { | |
3197 | - (void) memcpy(h3270.obptr, h3270.connected_type,strlen(h3270.connected_type)); | |
3198 | - h3270.obptr += strlen(h3270.connected_type); | |
3199 | - } | |
3200 | - if (h3270.connected_lu != CN) { | |
3201 | - *h3270.obptr++ = TN3270E_OP_CONNECT; | |
3202 | - (void) memcpy(h3270.obptr, h3270.connected_lu,strlen(h3270.connected_lu)); | |
3203 | - h3270.obptr += strlen(h3270.connected_lu); | |
3204 | - } | |
3205 | - *h3270.obptr++ = IAC; | |
3206 | - *h3270.obptr++ = SE; | |
3207 | - | |
3208 | - space3270out(38); | |
3209 | - (void) memcpy(h3270.obptr, functions_req, 4); | |
3210 | - h3270.obptr += 4; | |
3211 | - *h3270.obptr++ = TN3270E_OP_IS; | |
3212 | - for (i = 0; i < 32; i++) { | |
3213 | - if (h3270.e_funcs & E_OPT(i)) | |
3214 | - *h3270.obptr++ = i; | |
3215 | - } | |
3216 | - *h3270.obptr++ = IAC; | |
3217 | - *h3270.obptr++ = SE; | |
3218 | - | |
3219 | - if (h3270.tn3270e_bound) { | |
3220 | - tn3270e_header *h; | |
3221 | - | |
3222 | - space3270out(EH_SIZE + 3); | |
3223 | - h = (tn3270e_header *)h3270.obptr; | |
3224 | - h->data_type = TN3270E_DT_BIND_IMAGE; | |
3225 | - h->request_flag = 0; | |
3226 | - h->response_flag = 0; | |
3227 | - h->seq_number[0] = 0; | |
3228 | - h->seq_number[1] = 0; | |
3229 | - h3270.obptr += EH_SIZE; | |
3230 | - *h3270.obptr++ = 1; // dummy | |
3231 | - *h3270.obptr++ = IAC; | |
3232 | - *h3270.obptr++ = EOR; | |
3233 | - } | |
3234 | - } | |
3235 | -#endif | |
3236 | - return any; | |
3237 | -} | |
3238 | -*/ | |
3239 | -#endif | |
3240 | - | |
3241 | - | |
3242 | 3084 | /* |
3243 | 3085 | * Set blocking/non-blocking mode on the socket. On error, pops up an error |
3244 | 3086 | * message, but does not close the socket. | ... | ... |
src/lib3270/telnetc.h
... | ... | @@ -30,10 +30,10 @@ struct ctl_char { |
30 | 30 | }; |
31 | 31 | |
32 | 32 | LIB3270_INTERNAL void net_abort(H3270 *hSession); |
33 | -LIB3270_INTERNAL Boolean net_add_dummy_tn3270e(void); | |
33 | +// LIB3270_INTERNAL Boolean net_add_dummy_tn3270e(H3270 *hSession); | |
34 | 34 | LIB3270_INTERNAL void net_add_eor(unsigned char *buf, int len); |
35 | 35 | LIB3270_INTERNAL void net_break(H3270 *hSession); |
36 | -LIB3270_INTERNAL void net_charmode(H3270 *hSession); | |
36 | +// LIB3270_INTERNAL void net_charmode(H3270 *hSession); | |
37 | 37 | LIB3270_INTERNAL int net_connect(H3270 *session, const char *, char *, Boolean, Boolean *, Boolean *); |
38 | 38 | LIB3270_INTERNAL void net_disconnect(H3270 *session); |
39 | 39 | LIB3270_INTERNAL void net_exception(H3270 *session); |
... | ... | @@ -43,15 +43,15 @@ LIB3270_INTERNAL void net_interrupt(H3270 *hSession); |
43 | 43 | // LIB3270_INTERNAL void net_linemode(void); |
44 | 44 | // LIB3270_INTERNAL struct ctl_char *net_linemode_chars(void); |
45 | 45 | LIB3270_INTERNAL void net_output(H3270 *hSession); |
46 | -LIB3270_INTERNAL const char *net_query_bind_plu_name(void); | |
47 | -LIB3270_INTERNAL const char *net_query_connection_state(void); | |
48 | -LIB3270_INTERNAL const char *net_query_host(void); | |
49 | -LIB3270_INTERNAL const char *net_query_lu_name(void); | |
50 | -LIB3270_INTERNAL void net_sendc(char c); | |
51 | -LIB3270_INTERNAL void net_sends(const char *s); | |
52 | -LIB3270_INTERNAL void net_send_erase(void); | |
53 | -LIB3270_INTERNAL void net_send_kill(void); | |
54 | -LIB3270_INTERNAL void net_send_werase(void); | |
46 | +//LIB3270_INTERNAL const char *net_query_bind_plu_name(void); | |
47 | +//LIB3270_INTERNAL const char *net_query_connection_state(void); | |
48 | +//LIB3270_INTERNAL const char *net_query_host(void); | |
49 | +//LIB3270_INTERNAL const char *net_query_lu_name(void); | |
50 | +LIB3270_INTERNAL void net_sendc(H3270 *hSession, char c); | |
51 | +LIB3270_INTERNAL void net_sends(H3270 *hSession, const char *s); | |
52 | +LIB3270_INTERNAL void net_send_erase(H3270 *hSession); | |
53 | +LIB3270_INTERNAL void net_send_kill(H3270 *hSession); | |
54 | +LIB3270_INTERNAL void net_send_werase(H3270 *hSession); | |
55 | 55 | // LIB3270_INTERNAL Boolean net_snap_options(void); |
56 | 56 | LIB3270_INTERNAL void space3270out(H3270 *hSession, int n); |
57 | 57 | // LIB3270_INTERNAL const char *tn3270e_current_opts(void); | ... | ... |