"[-Cfbnqtv] [-c CID] [-V VCLS] [-H HOSTNAME] [-i INTERFACE]\n" \
" [-p pidfile] [-r IP] [-s script]"
#define udhcpc_full_usage \
- " -V,--vendorclass=CLASSID Set vendor class identifier\n" \
- " -i,--interface=INTERFACE Interface to use (default: eth0)\n" \
- " -H,-h,--hostname=HOSTNAME Client hostname\n" \
- " -c,--clientid=CLIENTID Set client identifier\n" \
- " -C,--clientid-none Suppress default client identifier\n" \
- " -p,--pidfile=file Store process ID of daemon in file\n" \
- " -r,--request=IP IP address to request (default: none)\n" \
- " -s,--script=file Run file at dhcp events (default: /usr/share/udhcpc/default.script)\n" \
- " -t,--retries=NUM Send up to NUM request packets\n"\
- " -f,--foreground Do not fork after getting lease\n" \
- " -b,--background Fork to background if lease cannot be immediately negotiated\n" \
- " -n,--now Exit with failure if lease cannot be immediately negotiated\n" \
- " -q,--quit Quit after obtaining lease\n" \
- " -R,--release Release IP on quit\n" \
- " -v,--version Display version" \
+ "\n -V,--vendorclass=CLASSID Set vendor class identifier" \
+ "\n -i,--interface=INTERFACE Interface to use (default: eth0)" \
+ "\n -H,-h,--hostname=HOSTNAME Client hostname" \
+ "\n -c,--clientid=CLIENTID Set client identifier" \
+ "\n -C,--clientid-none Suppress default client identifier" \
+ "\n -p,--pidfile=file Store process ID of daemon in file" \
+ "\n -r,--request=IP IP address to request" \
+ "\n -s,--script=file Run file at dhcp events (default: /usr/share/udhcpc/default.script)" \
+ "\n -t,--retries=N Send up to N request packets"\
+ "\n -f,--foreground Stay in foreground" \
+ "\n -b,--background Background if lease cannot be immediately negotiated" \
+ "\n -S,--syslog Log to syslog too" \
+ "\n -n,--now Exit with failure if lease cannot be immediately negotiated" \
+ "\n -q,--quit Quit after obtaining lease" \
+ "\n -R,--release Release IP on quit" \
+ "\n -v,--version Display version" \
#define udhcpd_trivial_usage \
- "[configfile]" \
+ "[-fS] [configfile]" \
#define udhcpd_full_usage \
- ""
+ "\n -f Stay in foreground" \
+ "\n -S Log to syslog too"
#define umount_trivial_usage \
"[flags] FILESYSTEM|DIRECTORY"
OPT_T = 1 << 15,
OPT_t = 1 << 16,
OPT_v = 1 << 17,
+ OPT_S = 1 << 18,
};
#if ENABLE_GETOPT_LONG
static const char udhcpc_longopts[] ALIGN1 =
"timeout\0" Required_argument "T"
"version\0" No_argument "v"
"retries\0" Required_argument "t"
+ "syslog\0" No_argument "S"
;
#endif
/* Default options. */
#if ENABLE_GETOPT_LONG
applet_long_options = udhcpc_longopts;
#endif
- opt = getopt32(argc, argv, "c:CV:fbH:h:F:i:np:qRr:s:T:t:v",
+ opt = getopt32(argc, argv, "c:CV:fbH:h:F:i:np:qRr:s:T:t:vS",
&str_c, &str_V, &str_h, &str_h, &str_F,
&client_config.interface, &client_config.pidfile, &str_r,
&client_config.script, &str_T, &str_t
return 0;
}
- if (ENABLE_FEATURE_UDHCP_SYSLOG) {
+ if (opt & OPT_S) {
openlog(applet_name, LOG_PID, LOG_LOCAL0);
logmode |= LOGMODE_SYSLOG;
}
uint32_t server_id_align, requested_align, static_lease_ip;
unsigned timeout_end;
unsigned num_ips;
+ unsigned opt;
struct option_set *option;
struct dhcpOfferedAddr *lease, static_lease;
-//Huh, dhcpd don't have --foreground, --syslog options?? TODO
+ opt = getopt32(argc, argv, "fS");
- if (!ENABLE_FEATURE_UDHCP_DEBUG) {
+ if (!(opt & 1)) { /* no -f */
bb_daemonize_or_rexec(0, argv);
logmode &= ~LOGMODE_STDIO;
}
- if (ENABLE_FEATURE_UDHCP_SYSLOG) {
+ if (opt & 2) { /* -S */
openlog(applet_name, LOG_PID, LOG_LOCAL0);
logmode |= LOGMODE_SYSLOG;
}