diff options
Diffstat (limited to 'networking/telnet.c')
-rw-r--r-- | networking/telnet.c | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/networking/telnet.c b/networking/telnet.c index 574fe8dab..6c5f3d15b 100644 --- a/networking/telnet.c +++ b/networking/telnet.c | |||
@@ -54,7 +54,7 @@ static const int DOTRACE = 1; | |||
54 | #include <arpa/inet.h> /* for inet_ntoa()... */ | 54 | #include <arpa/inet.h> /* for inet_ntoa()... */ |
55 | #define TRACE(x, y) do { if (x) printf y; } while (0) | 55 | #define TRACE(x, y) do { if (x) printf y; } while (0) |
56 | #else | 56 | #else |
57 | #define TRACE(x, y) | 57 | #define TRACE(x, y) |
58 | #endif | 58 | #endif |
59 | 59 | ||
60 | #if 0 | 60 | #if 0 |
@@ -99,8 +99,8 @@ static struct Globalvars { | |||
99 | /* buffer to handle telnet negotiations */ | 99 | /* buffer to handle telnet negotiations */ |
100 | char iacbuf[IACBUFSIZE]; | 100 | char iacbuf[IACBUFSIZE]; |
101 | short iaclen; /* could even use byte */ | 101 | short iaclen; /* could even use byte */ |
102 | struct termios termios_def; | 102 | struct termios termios_def; |
103 | struct termios termios_raw; | 103 | struct termios termios_raw; |
104 | } G; | 104 | } G; |
105 | 105 | ||
106 | #define xUSE_GLOBALVAR_PTR /* xUSE... -> don't use :D (makes smaller code) */ | 106 | #define xUSE_GLOBALVAR_PTR /* xUSE... -> don't use :D (makes smaller code) */ |
@@ -143,7 +143,7 @@ static void doexit(int ev) | |||
143 | { | 143 | { |
144 | cookmode(); | 144 | cookmode(); |
145 | exit(ev); | 145 | exit(ev); |
146 | } | 146 | } |
147 | 147 | ||
148 | static void conescape(void) | 148 | static void conescape(void) |
149 | { | 149 | { |
@@ -190,10 +190,10 @@ static void conescape(void) | |||
190 | 190 | ||
191 | if (G.gotsig) | 191 | if (G.gotsig) |
192 | cookmode(); | 192 | cookmode(); |
193 | 193 | ||
194 | rrturn: | 194 | rrturn: |
195 | G.gotsig = 0; | 195 | G.gotsig = 0; |
196 | 196 | ||
197 | } | 197 | } |
198 | static void handlenetoutput(int len) | 198 | static void handlenetoutput(int len) |
199 | { | 199 | { |
@@ -442,7 +442,7 @@ static void will_charmode(void) | |||
442 | G.charmode = CHM_TRY; | 442 | G.charmode = CHM_TRY; |
443 | G.telflags |= (UF_ECHO | UF_SGA); | 443 | G.telflags |= (UF_ECHO | UF_SGA); |
444 | setConMode(); | 444 | setConMode(); |
445 | 445 | ||
446 | putiac2(DO, TELOPT_ECHO); | 446 | putiac2(DO, TELOPT_ECHO); |
447 | putiac2(DO, TELOPT_SGA); | 447 | putiac2(DO, TELOPT_SGA); |
448 | iacflush(); | 448 | iacflush(); |
@@ -472,7 +472,7 @@ static inline void to_echo(void) | |||
472 | /* if server requests ECHO, don't agree */ | 472 | /* if server requests ECHO, don't agree */ |
473 | if (G.telwish == DO) { putiac2(WONT, TELOPT_ECHO); return; } | 473 | if (G.telwish == DO) { putiac2(WONT, TELOPT_ECHO); return; } |
474 | else if (G.telwish == DONT) return; | 474 | else if (G.telwish == DONT) return; |
475 | 475 | ||
476 | if (G.telflags & UF_ECHO) | 476 | if (G.telflags & UF_ECHO) |
477 | { | 477 | { |
478 | if (G.telwish == WILL) | 478 | if (G.telwish == WILL) |
@@ -506,7 +506,7 @@ static inline void to_sga(void) | |||
506 | else | 506 | else |
507 | if (G.telwish == WONT) | 507 | if (G.telwish == WONT) |
508 | return; | 508 | return; |
509 | 509 | ||
510 | if ((G.telflags ^= UF_SGA) & UF_SGA) /* toggle */ | 510 | if ((G.telflags ^= UF_SGA) & UF_SGA) /* toggle */ |
511 | putiac2(DO, TELOPT_SGA); | 511 | putiac2(DO, TELOPT_SGA); |
512 | else | 512 | else |
@@ -545,11 +545,11 @@ static inline void to_new_environ(void) | |||
545 | 545 | ||
546 | #ifdef CONFIG_FEATURE_AUTOWIDTH | 546 | #ifdef CONFIG_FEATURE_AUTOWIDTH |
547 | static inline void to_naws(void) | 547 | static inline void to_naws(void) |
548 | { | 548 | { |
549 | /* Tell server we will do NAWS */ | 549 | /* Tell server we will do NAWS */ |
550 | putiac2(WILL, TELOPT_NAWS); | 550 | putiac2(WILL, TELOPT_NAWS); |
551 | return; | 551 | return; |
552 | } | 552 | } |
553 | #endif | 553 | #endif |
554 | 554 | ||
555 | static void telopt(byte c) | 555 | static void telopt(byte c) |
@@ -617,7 +617,7 @@ static void fgotsig(int sig) | |||
617 | static void rawmode(void) | 617 | static void rawmode(void) |
618 | { | 618 | { |
619 | tcsetattr(0, TCSADRAIN, &G.termios_raw); | 619 | tcsetattr(0, TCSADRAIN, &G.termios_raw); |
620 | } | 620 | } |
621 | 621 | ||
622 | static void cookmode(void) | 622 | static void cookmode(void) |
623 | { | 623 | { |
@@ -630,10 +630,10 @@ extern int telnet_main(int argc, char** argv) | |||
630 | struct sockaddr_in s_in; | 630 | struct sockaddr_in s_in; |
631 | #ifdef USE_POLL | 631 | #ifdef USE_POLL |
632 | struct pollfd ufds[2]; | 632 | struct pollfd ufds[2]; |
633 | #else | 633 | #else |
634 | fd_set readfds; | 634 | fd_set readfds; |
635 | int maxfd; | 635 | int maxfd; |
636 | #endif | 636 | #endif |
637 | 637 | ||
638 | #ifdef CONFIG_FEATURE_TELNET_AUTOLOGIN | 638 | #ifdef CONFIG_FEATURE_TELNET_AUTOLOGIN |
639 | int opt; | 639 | int opt; |
@@ -651,13 +651,13 @@ extern int telnet_main(int argc, char** argv) | |||
651 | 651 | ||
652 | if (tcgetattr(0, &G.termios_def) < 0) | 652 | if (tcgetattr(0, &G.termios_def) < 0) |
653 | exit(1); | 653 | exit(1); |
654 | 654 | ||
655 | G.termios_raw = G.termios_def; | 655 | G.termios_raw = G.termios_def; |
656 | cfmakeraw(&G.termios_raw); | 656 | cfmakeraw(&G.termios_raw); |
657 | 657 | ||
658 | if (argc < 2) | 658 | if (argc < 2) |
659 | bb_show_usage(); | 659 | bb_show_usage(); |
660 | 660 | ||
661 | #ifdef CONFIG_FEATURE_TELNET_AUTOLOGIN | 661 | #ifdef CONFIG_FEATURE_TELNET_AUTOLOGIN |
662 | autologin = NULL; | 662 | autologin = NULL; |
663 | while ((opt = getopt(argc, argv, "al:")) != EOF) { | 663 | while ((opt = getopt(argc, argv, "al:")) != EOF) { |
@@ -685,7 +685,7 @@ extern int telnet_main(int argc, char** argv) | |||
685 | bb_lookup_host(&s_in, argv[1]); | 685 | bb_lookup_host(&s_in, argv[1]); |
686 | s_in.sin_port = bb_lookup_port((argc == 3) ? argv[2] : "telnet", "tcp", 23); | 686 | s_in.sin_port = bb_lookup_port((argc == 3) ? argv[2] : "telnet", "tcp", 23); |
687 | #endif | 687 | #endif |
688 | 688 | ||
689 | G.netfd = xconnect(&s_in); | 689 | G.netfd = xconnect(&s_in); |
690 | 690 | ||
691 | setsockopt(G.netfd, SOL_SOCKET, SO_KEEPALIVE, &one, sizeof one); | 691 | setsockopt(G.netfd, SOL_SOCKET, SO_KEEPALIVE, &one, sizeof one); |
@@ -695,22 +695,22 @@ extern int telnet_main(int argc, char** argv) | |||
695 | #ifdef USE_POLL | 695 | #ifdef USE_POLL |
696 | ufds[0].fd = 0; ufds[1].fd = G.netfd; | 696 | ufds[0].fd = 0; ufds[1].fd = G.netfd; |
697 | ufds[0].events = ufds[1].events = POLLIN; | 697 | ufds[0].events = ufds[1].events = POLLIN; |
698 | #else | 698 | #else |
699 | FD_ZERO(&readfds); | 699 | FD_ZERO(&readfds); |
700 | FD_SET(0, &readfds); | 700 | FD_SET(0, &readfds); |
701 | FD_SET(G.netfd, &readfds); | 701 | FD_SET(G.netfd, &readfds); |
702 | maxfd = G.netfd + 1; | 702 | maxfd = G.netfd + 1; |
703 | #endif | 703 | #endif |
704 | 704 | ||
705 | while (1) | 705 | while (1) |
706 | { | 706 | { |
707 | #ifndef USE_POLL | 707 | #ifndef USE_POLL |
708 | fd_set rfds = readfds; | 708 | fd_set rfds = readfds; |
709 | 709 | ||
710 | switch (select(maxfd, &rfds, NULL, NULL, NULL)) | 710 | switch (select(maxfd, &rfds, NULL, NULL, NULL)) |
711 | #else | 711 | #else |
712 | switch (poll(ufds, 2, -1)) | 712 | switch (poll(ufds, 2, -1)) |
713 | #endif | 713 | #endif |
714 | { | 714 | { |
715 | case 0: | 715 | case 0: |
716 | /* timeout */ | 716 | /* timeout */ |
@@ -725,9 +725,9 @@ extern int telnet_main(int argc, char** argv) | |||
725 | 725 | ||
726 | #ifdef USE_POLL | 726 | #ifdef USE_POLL |
727 | if (ufds[0].revents) /* well, should check POLLIN, but ... */ | 727 | if (ufds[0].revents) /* well, should check POLLIN, but ... */ |
728 | #else | 728 | #else |
729 | if (FD_ISSET(0, &rfds)) | 729 | if (FD_ISSET(0, &rfds)) |
730 | #endif | 730 | #endif |
731 | { | 731 | { |
732 | len = read(0, G.buf, DATABUFSIZE); | 732 | len = read(0, G.buf, DATABUFSIZE); |
733 | 733 | ||
@@ -735,15 +735,15 @@ extern int telnet_main(int argc, char** argv) | |||
735 | doexit(0); | 735 | doexit(0); |
736 | 736 | ||
737 | TRACE(0, ("Read con: %d\n", len)); | 737 | TRACE(0, ("Read con: %d\n", len)); |
738 | 738 | ||
739 | handlenetoutput(len); | 739 | handlenetoutput(len); |
740 | } | 740 | } |
741 | 741 | ||
742 | #ifdef USE_POLL | 742 | #ifdef USE_POLL |
743 | if (ufds[1].revents) /* well, should check POLLIN, but ... */ | 743 | if (ufds[1].revents) /* well, should check POLLIN, but ... */ |
744 | #else | 744 | #else |
745 | if (FD_ISSET(G.netfd, &rfds)) | 745 | if (FD_ISSET(G.netfd, &rfds)) |
746 | #endif | 746 | #endif |
747 | { | 747 | { |
748 | len = read(G.netfd, G.buf, DATABUFSIZE); | 748 | len = read(G.netfd, G.buf, DATABUFSIZE); |
749 | 749 | ||