aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp
diff options
context:
space:
mode:
authorRuss Dill <Russ.Dill@asu.edu>2003-12-16 02:28:20 +0000
committerRuss Dill <Russ.Dill@asu.edu>2003-12-16 02:28:20 +0000
commit4b77acafa6f8b907903ea4a140b7c4a314ed71b2 (patch)
treeeb9fcbf83020bdcc0f4cfbab13a22384cbec34a7 /networking/udhcp
parent7becf5987a1712e1366c6b7d3eeab70f3978a089 (diff)
downloadbusybox-4b77acafa6f8b907903ea4a140b7c4a314ed71b2.tar.gz
start attempting to bring udhcp in busybox back to the state where it is (ideally) an exact copy of udhcp outside of busybox so that its easy to merge back and forth
Diffstat (limited to 'networking/udhcp')
-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 */