diff options
author | erik <erik@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2000-05-12 19:41:47 +0000 |
---|---|---|
committer | erik <erik@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2000-05-12 19:41:47 +0000 |
commit | 3a7ad24d94bc8ca3a532664af56e7d6a5bedc073 (patch) | |
tree | 37ef0fb8b142a4925b866c7caa5207b71b4ecae6 /networking | |
parent | 22aaf5064548757d7cd32cd4b7d96c78852cdd0c (diff) | |
download | busybox-w32-3a7ad24d94bc8ca3a532664af56e7d6a5bedc073.tar.gz busybox-w32-3a7ad24d94bc8ca3a532664af56e7d6a5bedc073.tar.bz2 busybox-w32-3a7ad24d94bc8ca3a532664af56e7d6a5bedc073.zip |
Lots of updates. Finished implementing BB_FEATURE_TRIVIAL_HELP
which lets you compile out most of the "--help" output, saving
up to 17k.
Renamed mnc to nc.
-Erik
git-svn-id: svn://busybox.net/trunk/busybox@532 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'networking')
-rw-r--r-- | networking/hostname.c | 11 | ||||
-rw-r--r-- | networking/nc.c | 133 | ||||
-rw-r--r-- | networking/nslookup.c | 8 | ||||
-rw-r--r-- | networking/ping.c | 17 | ||||
-rw-r--r-- | networking/telnet.c | 9 |
5 files changed, 165 insertions, 13 deletions
diff --git a/networking/hostname.c b/networking/hostname.c index 8cc334da0..ef921024b 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.7 2000/02/08 19:58:47 erik Exp $ | 3 | * $Id: hostname.c,v 1.8 2000/05/12 19:41:47 erik 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> |
@@ -31,15 +31,18 @@ | |||
31 | #include <stdio.h> | 31 | #include <stdio.h> |
32 | 32 | ||
33 | static const char *hostname_usage = | 33 | static const char *hostname_usage = |
34 | "hostname [OPTION] {hostname | -F file}\n\n" | 34 | "hostname [OPTION] {hostname | -F file}\n" |
35 | "Get or set the hostname or DNS domain name. If a hostname is given\n" | 35 | #ifndef BB_FEATURE_TRIVIAL_HELP |
36 | "\nGet or set the hostname or DNS domain name. If a hostname is given\n" | ||
36 | "(or a file with the -F parameter), the host name will be set.\n\n" | 37 | "(or a file with the -F parameter), the host name will be set.\n\n" |
37 | "Options:\n" | 38 | "Options:\n" |
38 | "\t-s\t\tShort\n" | 39 | "\t-s\t\tShort\n" |
39 | 40 | ||
40 | "\t-i\t\tAddresses for the hostname\n" | 41 | "\t-i\t\tAddresses for the hostname\n" |
41 | "\t-d\t\tDNS domain name\n" | 42 | "\t-d\t\tDNS domain name\n" |
42 | "\t-F FILE\t\tUse the contents of FILE to specify the hostname\n"; | 43 | "\t-F FILE\t\tUse the contents of FILE to specify the hostname\n" |
44 | #endif | ||
45 | ; | ||
43 | 46 | ||
44 | 47 | ||
45 | void do_sethostname(char *s, int isfile) | 48 | void do_sethostname(char *s, int isfile) |
diff --git a/networking/nc.c b/networking/nc.c new file mode 100644 index 000000000..a588587fb --- /dev/null +++ b/networking/nc.c | |||
@@ -0,0 +1,133 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* nc: mini-netcat - built from the ground up for LRP | ||
3 | Copyright (C) 1998 Charles P. Wright | ||
4 | |||
5 | 0.0.1 6K It works. | ||
6 | 0.0.2 5K Smaller and you can also check the exit condition if you wish. | ||
7 | 0.0.3 Uses select() | ||
8 | |||
9 | 19980918 Busy Boxed! Dave Cinege | ||
10 | 19990512 Uses Select. Charles P. Wright | ||
11 | 19990513 Fixes stdin stupidity and uses buffers. Charles P. Wright | ||
12 | |||
13 | This program is free software; you can redistribute it and/or modify | ||
14 | it under the terms of the GNU General Public License as published by | ||
15 | the Free Software Foundation; either version 2 of the License, or | ||
16 | (at your option) any later version. | ||
17 | |||
18 | This program is distributed in the hope that it will be useful, | ||
19 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
21 | GNU General Public License for more details. | ||
22 | |||
23 | You should have received a copy of the GNU General Public License | ||
24 | along with this program; if not, write to the Free Software | ||
25 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
26 | |||
27 | */ | ||
28 | #include "internal.h" | ||
29 | #include <stdio.h> | ||
30 | #include <stdlib.h> | ||
31 | #include <unistd.h> | ||
32 | |||
33 | #include <sys/types.h> | ||
34 | #include <sys/socket.h> | ||
35 | #include <netinet/in.h> | ||
36 | #include <arpa/inet.h> | ||
37 | #include <netdb.h> | ||
38 | #include <sys/time.h> | ||
39 | #include <sys/ioctl.h> | ||
40 | |||
41 | #define BUFSIZE 100 | ||
42 | |||
43 | static const char nc_usage[] = "nc [IP] [port]\n" | ||
44 | #ifndef BB_FEATURE_TRIVIAL_HELP | ||
45 | "\nNetcat opens a pipe to IP:port\n" | ||
46 | #endif | ||
47 | ; | ||
48 | |||
49 | int nc_main(int argc, char **argv) | ||
50 | { | ||
51 | int sfd; | ||
52 | int result; | ||
53 | int len; | ||
54 | char ch[BUFSIZE]; | ||
55 | |||
56 | struct sockaddr_in address; | ||
57 | struct hostent *hostinfo; | ||
58 | |||
59 | fd_set readfds, testfds; | ||
60 | |||
61 | argc--; | ||
62 | argv++; | ||
63 | if (argc < 2 || **(argv + 1) == '-') { | ||
64 | usage(nc_usage); | ||
65 | } | ||
66 | |||
67 | sfd = socket(AF_INET, SOCK_STREAM, 0); | ||
68 | |||
69 | hostinfo = (struct hostent *) gethostbyname(*argv); | ||
70 | |||
71 | if (!hostinfo) { | ||
72 | exit(1); | ||
73 | } | ||
74 | |||
75 | address.sin_family = AF_INET; | ||
76 | address.sin_addr = *(struct in_addr *) *hostinfo->h_addr_list; | ||
77 | address.sin_port = htons(atoi(*(++argv))); | ||
78 | |||
79 | len = sizeof(address); | ||
80 | |||
81 | result = connect(sfd, (struct sockaddr *) &address, len); | ||
82 | |||
83 | if (result < 0) { | ||
84 | exit(2); | ||
85 | } | ||
86 | |||
87 | FD_ZERO(&readfds); | ||
88 | FD_SET(sfd, &readfds); | ||
89 | FD_SET(fileno(stdin), &readfds); | ||
90 | |||
91 | while (1) { | ||
92 | int fd; | ||
93 | int ofd; | ||
94 | int nread; | ||
95 | |||
96 | testfds = readfds; | ||
97 | |||
98 | result = | ||
99 | select(FD_SETSIZE, &testfds, (fd_set *) NULL, (fd_set *) NULL, | ||
100 | (struct timeval *) 0); | ||
101 | |||
102 | if (result < 1) { | ||
103 | exit(3); | ||
104 | } | ||
105 | |||
106 | for (fd = 0; fd < FD_SETSIZE; fd++) { | ||
107 | if (FD_ISSET(fd, &testfds)) { | ||
108 | int trn = 0; | ||
109 | int rn; | ||
110 | |||
111 | ioctl(fd, FIONREAD, &nread); | ||
112 | |||
113 | if (fd == sfd) { | ||
114 | if (nread == 0) | ||
115 | exit(0); | ||
116 | ofd = fileno(stdout); | ||
117 | } else { | ||
118 | ofd = sfd; | ||
119 | } | ||
120 | |||
121 | |||
122 | |||
123 | do { | ||
124 | rn = (BUFSIZE < nread - trn) ? BUFSIZE : nread - trn; | ||
125 | trn += rn; | ||
126 | read(fd, ch, rn); | ||
127 | write(ofd, ch, rn); | ||
128 | } | ||
129 | while (trn < nread); | ||
130 | } | ||
131 | } | ||
132 | } | ||
133 | } | ||
diff --git a/networking/nslookup.c b/networking/nslookup.c index e4bf52f80..82bcf56a1 100644 --- a/networking/nslookup.c +++ b/networking/nslookup.c | |||
@@ -41,7 +41,11 @@ | |||
41 | | + find out how the real nslookup gets the default name server | 41 | | + find out how the real nslookup gets the default name server |
42 | */ | 42 | */ |
43 | 43 | ||
44 | static const char nslookup_usage[] = "nslookup [HOST]\n\nQueries the nameserver for the IP address of the given HOST\n"; | 44 | static const char nslookup_usage[] = "nslookup [HOST]\n" |
45 | #ifndef BB_FEATURE_TRIVIAL_HELP | ||
46 | "\nQueries the nameserver for the IP address of the given HOST\n" | ||
47 | #endif | ||
48 | ; | ||
45 | 49 | ||
46 | 50 | ||
47 | /* I have to see how the real nslookup does this. | 51 | /* I have to see how the real nslookup does this. |
@@ -173,4 +177,4 @@ int nslookup_main(int argc, char **argv) | |||
173 | exit( TRUE); | 177 | exit( TRUE); |
174 | } | 178 | } |
175 | 179 | ||
176 | /* $Id: nslookup.c,v 1.8 2000/05/02 00:07:56 erik Exp $ */ | 180 | /* $Id: nslookup.c,v 1.9 2000/05/12 19:41:47 erik Exp $ */ |
diff --git a/networking/ping.c b/networking/ping.c index 9f83002a2..14a56cd55 100644 --- a/networking/ping.c +++ b/networking/ping.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | 1 | /* vi: set sw=4 ts=4: */ |
2 | /* | 2 | /* |
3 | * $Id: ping.c,v 1.14 2000/04/25 23:24:55 erik Exp $ | 3 | * $Id: ping.c,v 1.15 2000/05/12 19:41:47 erik Exp $ |
4 | * Mini ping implementation for busybox | 4 | * Mini ping 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> |
@@ -90,7 +90,11 @@ static int in_cksum(unsigned short *buf, int sz) | |||
90 | 90 | ||
91 | /* simple version */ | 91 | /* simple version */ |
92 | #ifdef BB_SIMPLE_PING | 92 | #ifdef BB_SIMPLE_PING |
93 | static const char *ping_usage = "ping host\n\n"; | 93 | static const char *ping_usage = "ping host\n" |
94 | #ifndef BB_FEATURE_TRIVIAL_HELP | ||
95 | "\nSend ICMP ECHO_REQUEST packets to network hosts\n" | ||
96 | #endif | ||
97 | ; | ||
94 | 98 | ||
95 | static char *hostname = NULL; | 99 | static char *hostname = NULL; |
96 | 100 | ||
@@ -179,12 +183,15 @@ extern int ping_main(int argc, char **argv) | |||
179 | 183 | ||
180 | #else | 184 | #else |
181 | /* full(er) version */ | 185 | /* full(er) version */ |
182 | static const char *ping_usage = "ping [OPTION]... host\n\n" | 186 | static const char *ping_usage = "ping [OPTION]... host\n" |
183 | "Send ICMP ECHO_REQUEST packets to network hosts.\n\n" | 187 | #ifndef BB_FEATURE_TRIVIAL_HELP |
188 | "\nSend ICMP ECHO_REQUEST packets to network hosts.\n\n" | ||
184 | "Options:\n" | 189 | "Options:\n" |
185 | "\t-c COUNT\tSend only COUNT pings.\n" | 190 | "\t-c COUNT\tSend only COUNT pings.\n" |
186 | "\t-q\t\tQuiet mode, only displays output at start\n" | 191 | "\t-q\t\tQuiet mode, only displays output at start\n" |
187 | "\t\t\tand when finished.\n"; | 192 | "\t\t\tand when finished.\n" |
193 | #endif | ||
194 | ; | ||
188 | 195 | ||
189 | static char *hostname = NULL; | 196 | static char *hostname = NULL; |
190 | static struct sockaddr_in pingaddr; | 197 | static struct sockaddr_in pingaddr; |
diff --git a/networking/telnet.c b/networking/telnet.c index 8c58521eb..8b6d5f5dc 100644 --- a/networking/telnet.c +++ b/networking/telnet.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: telnet.c,v 1.2 2000/05/01 19:10:52 erik Exp $ | 2 | * $Id: telnet.c,v 1.3 2000/05/12 19:41:47 erik Exp $ |
3 | * Mini telnet implementation for busybox | 3 | * Mini telnet implementation for busybox |
4 | * | 4 | * |
5 | * Copyright (C) 2000 by Randolph Chung <tausq@debian.org> | 5 | * Copyright (C) 2000 by Randolph Chung <tausq@debian.org> |
@@ -46,7 +46,12 @@ | |||
46 | 46 | ||
47 | static int STDIN = 0; | 47 | static int STDIN = 0; |
48 | static int STDOUT = 1; | 48 | static int STDOUT = 1; |
49 | static const char *telnet_usage = "telnet host [port]\n\n"; | 49 | static const char *telnet_usage = "telnet host [port]\n" |
50 | #ifndef BB_FEATURE_TRIVIAL_HELP | ||
51 | "\nProvides interactive communication with another\n" | ||
52 | "networked host using the TELNET protocol\n" | ||
53 | #endif | ||
54 | ; | ||
50 | static struct termios saved_tc; | 55 | static struct termios saved_tc; |
51 | static unsigned char options[NTELOPTS]; | 56 | static unsigned char options[NTELOPTS]; |
52 | static char tr_state = 0; /* telnet send and receive state */ | 57 | static char tr_state = 0; /* telnet send and receive state */ |