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
This commit is contained in:
Erik Andersen
2000-05-12 19:41:47 +00:00
parent 3d427ac5ef
commit 7ab9c7ee52
136 changed files with 1743 additions and 454 deletions

View File

@@ -1,6 +1,6 @@
/* vi: set sw=4 ts=4: */
/*
* $Id: hostname.c,v 1.7 2000/02/08 19:58:47 erik Exp $
* $Id: hostname.c,v 1.8 2000/05/12 19:41:47 erik Exp $
* Mini hostname implementation for busybox
*
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -31,15 +31,18 @@
#include <stdio.h>
static const char *hostname_usage =
"hostname [OPTION] {hostname | -F file}\n\n"
"Get or set the hostname or DNS domain name. If a hostname is given\n"
"hostname [OPTION] {hostname | -F file}\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
"\nGet or set the hostname or DNS domain name. If a hostname is given\n"
"(or a file with the -F parameter), the host name will be set.\n\n"
"Options:\n"
"\t-s\t\tShort\n"
"\t-i\t\tAddresses for the hostname\n"
"\t-d\t\tDNS domain name\n"
"\t-F FILE\t\tUse the contents of FILE to specify the hostname\n";
"\t-F FILE\t\tUse the contents of FILE to specify the hostname\n"
#endif
;
void do_sethostname(char *s, int isfile)

133
networking/nc.c Normal file
View File

@@ -0,0 +1,133 @@
/* vi: set sw=4 ts=4: */
/* nc: mini-netcat - built from the ground up for LRP
Copyright (C) 1998 Charles P. Wright
0.0.1 6K It works.
0.0.2 5K Smaller and you can also check the exit condition if you wish.
0.0.3 Uses select()
19980918 Busy Boxed! Dave Cinege
19990512 Uses Select. Charles P. Wright
19990513 Fixes stdin stupidity and uses buffers. Charles P. Wright
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "internal.h"
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#define BUFSIZE 100
static const char nc_usage[] = "nc [IP] [port]\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
"\nNetcat opens a pipe to IP:port\n"
#endif
;
int nc_main(int argc, char **argv)
{
int sfd;
int result;
int len;
char ch[BUFSIZE];
struct sockaddr_in address;
struct hostent *hostinfo;
fd_set readfds, testfds;
argc--;
argv++;
if (argc < 2 || **(argv + 1) == '-') {
usage(nc_usage);
}
sfd = socket(AF_INET, SOCK_STREAM, 0);
hostinfo = (struct hostent *) gethostbyname(*argv);
if (!hostinfo) {
exit(1);
}
address.sin_family = AF_INET;
address.sin_addr = *(struct in_addr *) *hostinfo->h_addr_list;
address.sin_port = htons(atoi(*(++argv)));
len = sizeof(address);
result = connect(sfd, (struct sockaddr *) &address, len);
if (result < 0) {
exit(2);
}
FD_ZERO(&readfds);
FD_SET(sfd, &readfds);
FD_SET(fileno(stdin), &readfds);
while (1) {
int fd;
int ofd;
int nread;
testfds = readfds;
result =
select(FD_SETSIZE, &testfds, (fd_set *) NULL, (fd_set *) NULL,
(struct timeval *) 0);
if (result < 1) {
exit(3);
}
for (fd = 0; fd < FD_SETSIZE; fd++) {
if (FD_ISSET(fd, &testfds)) {
int trn = 0;
int rn;
ioctl(fd, FIONREAD, &nread);
if (fd == sfd) {
if (nread == 0)
exit(0);
ofd = fileno(stdout);
} else {
ofd = sfd;
}
do {
rn = (BUFSIZE < nread - trn) ? BUFSIZE : nread - trn;
trn += rn;
read(fd, ch, rn);
write(ofd, ch, rn);
}
while (trn < nread);
}
}
}
}

View File

@@ -41,7 +41,11 @@
| + find out how the real nslookup gets the default name server
*/
static const char nslookup_usage[] = "nslookup [HOST]\n\nQueries the nameserver for the IP address of the given HOST\n";
static const char nslookup_usage[] = "nslookup [HOST]\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
"\nQueries the nameserver for the IP address of the given HOST\n"
#endif
;
/* I have to see how the real nslookup does this.
@@ -173,4 +177,4 @@ int nslookup_main(int argc, char **argv)
exit( TRUE);
}
/* $Id: nslookup.c,v 1.8 2000/05/02 00:07:56 erik Exp $ */
/* $Id: nslookup.c,v 1.9 2000/05/12 19:41:47 erik Exp $ */

View File

@@ -1,6 +1,6 @@
/* vi: set sw=4 ts=4: */
/*
* $Id: ping.c,v 1.14 2000/04/25 23:24:55 erik Exp $
* $Id: ping.c,v 1.15 2000/05/12 19:41:47 erik Exp $
* Mini ping implementation for busybox
*
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@@ -90,7 +90,11 @@ static int in_cksum(unsigned short *buf, int sz)
/* simple version */
#ifdef BB_SIMPLE_PING
static const char *ping_usage = "ping host\n\n";
static const char *ping_usage = "ping host\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
"\nSend ICMP ECHO_REQUEST packets to network hosts\n"
#endif
;
static char *hostname = NULL;
@@ -179,12 +183,15 @@ extern int ping_main(int argc, char **argv)
#else
/* full(er) version */
static const char *ping_usage = "ping [OPTION]... host\n\n"
"Send ICMP ECHO_REQUEST packets to network hosts.\n\n"
static const char *ping_usage = "ping [OPTION]... host\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
"\nSend ICMP ECHO_REQUEST packets to network hosts.\n\n"
"Options:\n"
"\t-c COUNT\tSend only COUNT pings.\n"
"\t-q\t\tQuiet mode, only displays output at start\n"
"\t\t\tand when finished.\n";
"\t\t\tand when finished.\n"
#endif
;
static char *hostname = NULL;
static struct sockaddr_in pingaddr;

View File

@@ -1,5 +1,5 @@
/*
* $Id: telnet.c,v 1.2 2000/05/01 19:10:52 erik Exp $
* $Id: telnet.c,v 1.3 2000/05/12 19:41:47 erik Exp $
* Mini telnet implementation for busybox
*
* Copyright (C) 2000 by Randolph Chung <tausq@debian.org>
@@ -46,7 +46,12 @@
static int STDIN = 0;
static int STDOUT = 1;
static const char *telnet_usage = "telnet host [port]\n\n";
static const char *telnet_usage = "telnet host [port]\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
"\nProvides interactive communication with another\n"
"networked host using the TELNET protocol\n"
#endif
;
static struct termios saved_tc;
static unsigned char options[NTELOPTS];
static char tr_state = 0; /* telnet send and receive state */