summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--networking/udhcp/dhcpc.c31
-rw-r--r--networking/udhcp/dumpleases.c29
-rw-r--r--networking/udhcp/libbb_udhcp.h26
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 */