diff options
Diffstat (limited to 'networking')
-rw-r--r-- | networking/udhcp/dhcpc.c | 31 | ||||
-rw-r--r-- | networking/udhcp/dumpleases.c | 29 | ||||
-rw-r--r-- | networking/udhcp/libbb_udhcp.h | 26 |
3 files changed, 80 insertions, 6 deletions
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index d18a963a9..55664abf9 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c @@ -75,6 +75,35 @@ struct client_config_t client_config = { arp: "\0\0\0\0\0\0", /* appease gcc-3.0 */ }; +#ifndef IN_BUSYBOX +static void __attribute__ ((noreturn)) show_usage(void) +{ + printf( +"Usage: udhcpc [OPTIONS]\n\n" +" -c, --clientid=CLIENTID Client identifier\n" +" -H, --hostname=HOSTNAME Client hostname\n" +" -h Alias for -H\n" +" -f, --foreground Do not fork after getting lease\n" +" -b, --background Fork to background if lease cannot be\n" +" immediately negotiated.\n" +" -i, --interface=INTERFACE Interface to use (default: eth0)\n" +" -n, --now Exit with failure if lease cannot be\n" +" immediately negotiated.\n" +" -p, --pidfile=file Store process ID of daemon in file\n" +" -q, --quit Quit after obtaining lease\n" +" -r, --request=IP IP address to request (default: none)\n" +" -s, --script=file Run file at dhcp events (default:\n" +" " DEFAULT_SCRIPT ")\n" +" -v, --version Display version\n" + ); + exit(0); +} +#else +#define show_usage bb_show_usage +extern void show_usage(void) __attribute__ ((noreturn)); +#endif + + /* just a little helper */ static void change_mode(int new_mode) { @@ -233,7 +262,7 @@ int udhcpc_main(int argc, char *argv[]) return(0); break; default: - bb_show_usage(); + show_usage(); } } diff --git a/networking/udhcp/dumpleases.c b/networking/udhcp/dumpleases.c index 4c6107cf7..5cb3a156f 100644 --- a/networking/udhcp/dumpleases.c +++ b/networking/udhcp/dumpleases.c @@ -1,6 +1,7 @@ #include <fcntl.h> #include <string.h> #include <stdlib.h> +#include <stdio.h> #include <sys/wait.h> #include <arpa/inet.h> #include <netdb.h> @@ -12,12 +13,32 @@ #include <time.h> #include "leases.h" -#include "busybox.h" +#include "libbb_udhcp.h" #define REMAINING 0 #define ABSOLUTE 1 + +#ifndef IN_BUSYBOX +static void __attribute__ ((noreturn)) show_usage(void) +{ + printf( +"Usage: dumpleases -f <file> -[r|a]\n\n" +" -f, --file=FILENAME Leases file to load\n" +" -r, --remaining Interepret lease times as time remaing\n" +" -a, --absolute Interepret lease times as expire time\n"); + exit(0); +} +#else +#define show_usage bb_show_usage +#endif + + +#ifdef IN_BUSYBOX int dumpleases_main(int argc, char *argv[]) +#else +int main(int argc, char *argv[]) +#endif { FILE *fp; int i, c, mode = REMAINING; @@ -42,14 +63,14 @@ int dumpleases_main(int argc, char *argv[]) case 'a': mode = ABSOLUTE; break; case 'r': mode = REMAINING; break; case 'f': - file = optarg; + file = optarg; break; default: - bb_show_usage(); + show_usage(); } } - fp = bb_xfopen(file, "r"); + fp = xfopen(file, "r"); printf("Mac Address IP-Address Expires %s\n", mode == REMAINING ? "in" : "at"); /* "00:00:00:00:00:00 255.255.255.255 Wed Jun 30 21:49:08 1993" */ diff --git a/networking/udhcp/libbb_udhcp.h b/networking/udhcp/libbb_udhcp.h index e09429808..73e21464f 100644 --- a/networking/udhcp/libbb_udhcp.h +++ b/networking/udhcp/libbb_udhcp.h @@ -4,7 +4,7 @@ #define _LIBBB_UDHCP_H #ifdef IN_BUSYBOX -#include "libbb.h" +#include "busybox.h" #ifdef CONFIG_FEATURE_UDHCP_SYSLOG #define SYSLOG @@ -17,12 +17,36 @@ #define COMBINED_BINARY #include "version.h" +#ifdef CONFIG_INSTALL_NO_USR +#define DEFAULT_SCRIPT "/share/udhcpc/default.script" +#else +#define DEFAULT_SCRIPT "/usr/share/udhcpc/default.script" +#endif + +#define xfopen bb_xfopen + #else /* ! BB_VER */ +#include <stdlib.h> +#include <stdio.h> + #define TRUE 1 #define FALSE 0 #define xmalloc malloc +#define xcalloc calloc + +#define DEFAULT_SCRIPT "/usr/share/udhcpc/default.script" + +static inline FILE *xfopen(const char *file, const char *mode) +{ + FILE *fp; + if (!(fp = fopen(file, mode))) { + perror("could not open input file"); + exit(0); + } + return fp; +} #endif /* BB_VER */ |