xconnect helper routine which does:
-address and port resolving
-tries to connect to all resolved addresses until connected
-uses getaddrinfo, so works for IPv6 too
This patch also ports rdate, telnet, and wget to use the new
xconnect function. Thanks Bart!
IPV6 support to busybox. This patch does the following:
* Add IPv6 support to libbb
* Enable IPv6 interface address display
* Add IPv6 config option
* Adds ping6, an adaptation of the ping applet for IPv6
* Adds support routines for ping6:
- xgethostbyname2
- create_icmp6_socket
* Adds ifconfig support for IPv6
* Add support IPv6 to netstat
* Add IPv6 support to route
Thanks Bart!
Fixed up domain removal for local domains. GNU traceroute does not do this. I
don't know why we do. Fixed incorrect argument for reverse resolution. Clean
up cruft that appears when CONFIG_FEATURE_TRACEROUTE_VERBOSE is defined
1. busybox-telnet dosn't inform server about the size of terminal screen.
In the world of xterminals and frame buffers it's rather horrible
to use fixed 80x24 region in upper-left corner of screen/window.
2. If client sends character 0x0d to the server then sends character 0x0a
the server eat the second byte (0x0a) - it's described in telnet RFC.
Client should send two bytes ( 0x0d + 0x0a or 0x0d + 0x00 ) insted of
one 0x0d byte.
3. busybox telnet implementation wasn't 8bit clean (look at 0xff byte).
I need it because I have to use binray transfer like rz/sz. So when
I resloved the problem (2) I corrected this one two.
This also contains a small cleanup patch from vodz, and some minor editing
by me.
the busybox development tree. This eliminates the use of recursive make, and
once again allows us to run 'make' in a subdirectory with the expected result.
And things are now much faster too. Greatly improved IMHO...
-Erik
* networking/ping.c (hostname): Removed.
[CONFIG_FEATURE_FANCY_PING] (noresp): Moved from here . . .
[CONFIG_FEATURE_FANCY_PING] (ping:noresp): . . . to here.
Use H->h_name, not hostname.
[CONFIG_FEATURE_FANCY_PING] (ping): Do not copy H->h_name into
hostname.
Use H->h_name directly.
[!CONFIG_FEATURE_FANCY_PING] (hostent): New global variable.
[!CONFIG_FEATURE_FANCY_PING] (pingstats): Use hostent in favor
of the now obsolete hostname global variable.
[!CONFIG_FEATURE_FANCY_PING] (ping): Likewise.
No need to copy H; use hostent instead.
[!CONFIG_FEATURE_FANCY_PING] (ntransmitted, nreceived,
nrepeats, pingcount, myid, options, tmax, tsum): Removed
superfluous zero initializers.
-- reverse resolve network name and cache in route and ifconfig
applets, fix print nslookup server name if compile without
uClibc, fix route crashe 'route add', fix warnings compile
networking and pwd_grp applets
- Switched to getopt argument parsing
- Added -f option to get fully qualified domain name
- Fixed the -s (short) and -d (domain) options, which were not
doing a gethostbyname lookup to get the FQDN before trying to
separate the local and domain portions of the hostname.
- Fixed probem with 'agressive setting' of the hostname...the
previous busybox version would try to set the hostname if called
with a non-option argument, or the -F option, even if another
option (like -i or -s) was given. This behavior does not match
the net-tools hostname, which does not attempt to set anything if
given a 'display' option, regardless of the presence/absence of
the -F option or additional command line arguments.
- When using a file to set the hostname, behavior now matches
net-tools version...previous busybox version did not handle
comments, and simply grabbed the first line from the file.
by ifconfig that someone had submitted. It fixes 1 bug, gets rid of the
excessive bloating of a structure that is used in a static const array,
and removes the implicit struct copys by keeping only the int type needed.
It also turns this into a configurable feature (off by default).
make busybox be more uClinux friendly. I also adjusted Config.h for
uClinux so it will automagically disable apps the arn't going to
work without fork() and such.
-Erik