diff options
author | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-06-26 02:06:08 +0000 |
---|---|---|
committer | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-06-26 02:06:08 +0000 |
commit | 098f9284606716ba803204c23341bab293e0ff92 (patch) | |
tree | ae5bb34caa3b88968102e93193a01e4d90109b92 /networking | |
parent | a63f350d93c941c89e2c929893dfa25e423e3b94 (diff) | |
download | busybox-w32-098f9284606716ba803204c23341bab293e0ff92.tar.gz busybox-w32-098f9284606716ba803204c23341bab293e0ff92.tar.bz2 busybox-w32-098f9284606716ba803204c23341bab293e0ff92.zip |
Vladimir's last_patch_15
git-svn-id: svn://busybox.net/trunk/busybox@2905 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'networking')
-rw-r--r-- | networking/hostname.c | 7 | ||||
-rw-r--r-- | networking/telnet.c | 46 |
2 files changed, 25 insertions, 28 deletions
diff --git a/networking/hostname.c b/networking/hostname.c index 573c8cece..d87851509 100644 --- a/networking/hostname.c +++ b/networking/hostname.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | 1 | /* vi: set sw=4 ts=4: */ |
2 | /* | 2 | /* |
3 | * $Id: hostname.c,v 1.29 2001/06/23 13:49:14 andersen Exp $ | 3 | * $Id: hostname.c,v 1.30 2001/06/26 02:06:08 bug1 Exp $ |
4 | * Mini hostname implementation for busybox | 4 | * Mini hostname implementation for busybox |
5 | * | 5 | * |
6 | * Copyright (C) 1999 by Randolph Chung <tausq@debian.org> | 6 | * Copyright (C) 1999 by Randolph Chung <tausq@debian.org> |
@@ -49,10 +49,11 @@ static void do_sethostname(char *s, int isfile) | |||
49 | } else { | 49 | } else { |
50 | f = xfopen(s, "r"); | 50 | f = xfopen(s, "r"); |
51 | fgets(buf, 255, f); | 51 | fgets(buf, 255, f); |
52 | #ifdef BB_FEATURE_CLEAN_UP | ||
52 | fclose(f); | 53 | fclose(f); |
54 | #endif | ||
53 | chomp(buf); | 55 | chomp(buf); |
54 | if (sethostname(buf, strlen(buf)) < 0) | 56 | do_sethostname(buf, 0); |
55 | perror_msg_and_die("sethostname"); | ||
56 | } | 57 | } |
57 | } | 58 | } |
58 | 59 | ||
diff --git a/networking/telnet.c b/networking/telnet.c index 2587193e2..ce82a0ee8 100644 --- a/networking/telnet.c +++ b/networking/telnet.c | |||
@@ -64,8 +64,8 @@ static const int DOTRACE = 1; | |||
64 | #include <sys/time.h> | 64 | #include <sys/time.h> |
65 | #endif | 65 | #endif |
66 | 66 | ||
67 | static const int DATABUFSIZE = 128; | 67 | #define DATABUFSIZE 128 |
68 | static const int IACBUFSIZE = 128; | 68 | #define IACBUFSIZE 128 |
69 | 69 | ||
70 | static const int CHM_TRY = 0; | 70 | static const int CHM_TRY = 0; |
71 | static const int CHM_ON = 1; | 71 | static const int CHM_ON = 1; |
@@ -90,15 +90,14 @@ typedef unsigned char byte; | |||
90 | static struct Globalvars { | 90 | static struct Globalvars { |
91 | int netfd; /* console fd:s are 0 and 1 (and 2) */ | 91 | int netfd; /* console fd:s are 0 and 1 (and 2) */ |
92 | /* same buffer used both for network and console read/write */ | 92 | /* same buffer used both for network and console read/write */ |
93 | char * buf; /* allocating so static size is smaller */ | 93 | char buf[DATABUFSIZE]; /* allocating so static size is smaller */ |
94 | short len; | ||
95 | byte telstate; /* telnet negotiation state from network input */ | 94 | byte telstate; /* telnet negotiation state from network input */ |
96 | byte telwish; /* DO, DONT, WILL, WONT */ | 95 | byte telwish; /* DO, DONT, WILL, WONT */ |
97 | byte charmode; | 96 | byte charmode; |
98 | byte telflags; | 97 | byte telflags; |
99 | byte gotsig; | 98 | byte gotsig; |
100 | /* buffer to handle telnet negotiations */ | 99 | /* buffer to handle telnet negotiations */ |
101 | char * iacbuf; | 100 | char iacbuf[IACBUFSIZE]; |
102 | short iaclen; /* could even use byte */ | 101 | short iaclen; /* could even use byte */ |
103 | struct termios termios_def; | 102 | struct termios termios_def; |
104 | struct termios termios_raw; | 103 | struct termios termios_raw; |
@@ -198,7 +197,7 @@ static void conescape() | |||
198 | G.gotsig = 0; | 197 | G.gotsig = 0; |
199 | 198 | ||
200 | } | 199 | } |
201 | static void handlenetoutput() | 200 | static void handlenetoutput(int len) |
202 | { | 201 | { |
203 | /* here we could do smart tricks how to handle 0xFF:s in output | 202 | /* here we could do smart tricks how to handle 0xFF:s in output |
204 | * stream like writing twice every sequence of FF:s (thus doing | 203 | * stream like writing twice every sequence of FF:s (thus doing |
@@ -209,7 +208,7 @@ static void handlenetoutput() | |||
209 | int i; | 208 | int i; |
210 | byte * p = G.buf; | 209 | byte * p = G.buf; |
211 | 210 | ||
212 | for (i = G.len; i > 0; i--, p++) | 211 | for (i = len; i > 0; i--, p++) |
213 | { | 212 | { |
214 | if (*p == 0x1d) | 213 | if (*p == 0x1d) |
215 | { | 214 | { |
@@ -219,16 +218,16 @@ static void handlenetoutput() | |||
219 | if (*p == 0xff) | 218 | if (*p == 0xff) |
220 | *p = 0x7f; | 219 | *p = 0x7f; |
221 | } | 220 | } |
222 | write(G.netfd, G.buf, G.len); | 221 | write(G.netfd, G.buf, len); |
223 | } | 222 | } |
224 | 223 | ||
225 | 224 | ||
226 | static void handlenetinput() | 225 | static void handlenetinput(int len) |
227 | { | 226 | { |
228 | int i; | 227 | int i; |
229 | int cstart = 0; | 228 | int cstart = 0; |
230 | 229 | ||
231 | for (i = 0; i < G.len; i++) | 230 | for (i = 0; i < len; i++) |
232 | { | 231 | { |
233 | byte c = G.buf[i]; | 232 | byte c = G.buf[i]; |
234 | 233 | ||
@@ -290,11 +289,11 @@ static void handlenetinput() | |||
290 | if (G.iaclen) iacflush(); | 289 | if (G.iaclen) iacflush(); |
291 | if (G.telstate == TS_0) G.telstate = 0; | 290 | if (G.telstate == TS_0) G.telstate = 0; |
292 | 291 | ||
293 | G.len = cstart; | 292 | len = cstart; |
294 | } | 293 | } |
295 | 294 | ||
296 | if (G.len) | 295 | if (len) |
297 | write(1, G.buf, G.len); | 296 | write(1, G.buf, len); |
298 | } | 297 | } |
299 | 298 | ||
300 | 299 | ||
@@ -530,6 +529,7 @@ extern int telnet_main(int argc, char** argv) | |||
530 | { | 529 | { |
531 | struct in_addr host; | 530 | struct in_addr host; |
532 | int port; | 531 | int port; |
532 | int len; | ||
533 | #ifdef USE_POLL | 533 | #ifdef USE_POLL |
534 | struct pollfd ufds[2]; | 534 | struct pollfd ufds[2]; |
535 | #else | 535 | #else |
@@ -547,15 +547,11 @@ extern int telnet_main(int argc, char** argv) | |||
547 | exit(1); | 547 | exit(1); |
548 | 548 | ||
549 | G.termios_raw = G.termios_def; | 549 | G.termios_raw = G.termios_def; |
550 | |||
551 | cfmakeraw(&G.termios_raw); | 550 | cfmakeraw(&G.termios_raw); |
552 | 551 | ||
553 | if (argc < 2) show_usage(); | 552 | if (argc < 2) show_usage(); |
554 | port = (argc > 2)? getport(argv[2]): 23; | 553 | port = (argc > 2)? getport(argv[2]): 23; |
555 | 554 | ||
556 | G.buf = xmalloc(DATABUFSIZE); | ||
557 | G.iacbuf = xmalloc(IACBUFSIZE); | ||
558 | |||
559 | host = getserver(argv[1]); | 555 | host = getserver(argv[1]); |
560 | 556 | ||
561 | G.netfd = remote_connect(host, port); | 557 | G.netfd = remote_connect(host, port); |
@@ -599,14 +595,14 @@ extern int telnet_main(int argc, char** argv) | |||
599 | if (FD_ISSET(0, &rfds)) | 595 | if (FD_ISSET(0, &rfds)) |
600 | #endif | 596 | #endif |
601 | { | 597 | { |
602 | G.len = read(0, G.buf, DATABUFSIZE); | 598 | len = read(0, G.buf, DATABUFSIZE); |
603 | 599 | ||
604 | if (G.len <= 0) | 600 | if (len <= 0) |
605 | doexit(0); | 601 | doexit(0); |
606 | 602 | ||
607 | TRACE(0, ("Read con: %d\n", G.len)); | 603 | TRACE(0, ("Read con: %d\n", len)); |
608 | 604 | ||
609 | handlenetoutput(); | 605 | handlenetoutput(len); |
610 | } | 606 | } |
611 | 607 | ||
612 | #ifdef USE_POLL | 608 | #ifdef USE_POLL |
@@ -615,16 +611,16 @@ extern int telnet_main(int argc, char** argv) | |||
615 | if (FD_ISSET(G.netfd, &rfds)) | 611 | if (FD_ISSET(G.netfd, &rfds)) |
616 | #endif | 612 | #endif |
617 | { | 613 | { |
618 | G.len = read(G.netfd, G.buf, DATABUFSIZE); | 614 | len = read(G.netfd, G.buf, DATABUFSIZE); |
619 | 615 | ||
620 | if (G.len <= 0) | 616 | if (len <= 0) |
621 | { | 617 | { |
622 | WriteCS(1, "Connection closed by foreign host.\r\n"); | 618 | WriteCS(1, "Connection closed by foreign host.\r\n"); |
623 | doexit(1); | 619 | doexit(1); |
624 | } | 620 | } |
625 | TRACE(0, ("Read netfd (%d): %d\n", G.netfd, G.len)); | 621 | TRACE(0, ("Read netfd (%d): %d\n", G.netfd, len)); |
626 | 622 | ||
627 | handlenetinput(); | 623 | handlenetinput(len); |
628 | } | 624 | } |
629 | } | 625 | } |
630 | } | 626 | } |