From 51b8bd68bb22b1cc5d95e418813c2f08a194ec2b Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Wed, 3 Jul 2002 11:46:38 +0000 Subject: This patch from Bart Visscher adds 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! --- include/applets.h | 3 +++ include/inet_common.h | 5 ++++- include/libbb.h | 3 +++ include/usage.h | 30 ++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/applets.h b/include/applets.h index c2d7acf4b..b6397a656 100644 --- a/include/applets.h +++ b/include/applets.h @@ -344,6 +344,9 @@ #ifdef CONFIG_PING APPLET(ping, ping_main, _BB_DIR_BIN, _BB_SUID_NEVER) #endif +#ifdef CONFIG_PING6 + APPLET(ping6, ping6_main, _BB_DIR_BIN, _BB_SUID_NEVER) +#endif #ifdef CONFIG_PIVOT_ROOT APPLET(pivot_root, pivot_root_main, _BB_DIR_SBIN, _BB_SUID_NEVER) #endif diff --git a/include/inet_common.h b/include/inet_common.h index 2c5e8f673..8050afc67 100644 --- a/include/inet_common.h +++ b/include/inet_common.h @@ -4,7 +4,7 @@ * * Heavily modified by Manuel Novoa III Mar 12, 2001 * - * Version: $Id: inet_common.h,v 1.1 2001/11/10 12:18:42 andersen Exp $ + * Version: $Id: inet_common.h,v 1.2 2002/07/03 11:46:38 andersen Exp $ * */ @@ -28,3 +28,6 @@ extern int INET_resolve(const char *name, struct sockaddr_in *s_in, int hostfirs */ extern int INET_rresolve(char *name, size_t len, struct sockaddr_in *s_in, int numeric, unsigned int netmask); + +extern int INET6_resolve(char *name, struct sockaddr_in6 *sin6); +extern int INET6_rresolve(char *name, size_t len, struct sockaddr_in6 *sin6, int numeric); diff --git a/include/libbb.h b/include/libbb.h index 2b9fd5fd6..f83cc7623 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -233,7 +233,10 @@ extern void gz_close(int gunzip_pid); extern FILE *gz_open(FILE *compressed_file, int *pid); extern struct hostent *xgethostbyname(const char *name); +extern struct hostent *xgethostbyname2(const char *name, int af); extern int create_icmp_socket(void); +extern int create_icmp6_socket(void); +extern int xconnect(const char *host, const char *port); char *dirname (char *path); diff --git a/include/usage.h b/include/usage.h index 5feb3ac10..87678f5e9 100644 --- a/include/usage.h +++ b/include/usage.h @@ -733,12 +733,19 @@ #else #define USAGE_IFCONFIG_OPT_A(a) #endif +#ifdef CONFIG_FEATURE_IPV6 + #define USAGE_IPV6(a) a +#else + #define USAGE_IPV6(a) +#endif #define ifconfig_trivial_usage \ USAGE_IFCONFIG_OPT_A("[-a]") " [
]" #define ifconfig_full_usage \ "configure a network interface\n\n" \ "Options:\n" \ + USAGE_IPV6("[add
[/]]\n") \ + USAGE_IPV6("[del
[/]]\n") \ "\t[[-]broadcast [
]] [[-]pointopoint [
]]\n" \ "\t[netmask
] [dstaddr
]\n" \ USAGE_SIOCSKEEPALIVE("\t[outfill ] [keepalive ]\n") \ @@ -1370,6 +1377,29 @@ "1 packets transmitted, 1 packets received, 0% packet loss\n" \ "round-trip min/avg/max = 20.1/20.1/20.1 ms\n" +#ifndef CONFIG_FEATURE_FANCY_PING6 +#define ping6_trivial_usage "host" +#define ping6_full_usage "Send ICMP ECHO_REQUEST packets to network hosts" +#else +#define ping6_trivial_usage \ + "[OPTION]... host" +#define ping6_full_usage \ + "Send ICMP ECHO_REQUEST packets to network hosts.\n\n" \ + "Options:\n" \ + "\t-c COUNT\tSend only COUNT pings.\n" \ + "\t-s SIZE\t\tSend SIZE data bytes in packets (default=56).\n" \ + "\t-q\t\tQuiet mode, only displays output at start\n" \ + "\t\t\tand when finished." +#endif +#define ping6_example_usage \ + "$ ping6 ip6-localhost\n" \ + "PING ip6-localhost (::1): 56 data bytes\n" \ + "64 bytes from ::1: icmp6_seq=0 ttl=64 time=20.1 ms\n" \ + "\n" \ + "--- ip6-localhost ping statistics ---\n" \ + "1 packets transmitted, 1 packets received, 0% packet loss\n" \ + "round-trip min/avg/max = 20.1/20.1/20.1 ms\n" + #define pivot_root_trivial_usage \ "NEW_ROOT PUT_OLD" #define pivot_root_full_usage \ -- cgit v1.2.3