mirror of
https://github.com/sheumann/hush.git
synced 2025-02-03 23:34:27 +00:00
udhcpd: add -I LOCAL_ADDR option
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
b79a0fef99
commit
e3f5b73ad0
@ -27,6 +27,7 @@
|
|||||||
//usage: "DHCP server\n"
|
//usage: "DHCP server\n"
|
||||||
//usage: "\n -f Run in foreground"
|
//usage: "\n -f Run in foreground"
|
||||||
//usage: "\n -S Log to syslog too"
|
//usage: "\n -S Log to syslog too"
|
||||||
|
//usage: "\n -I ADDR Local address"
|
||||||
//usage: IF_FEATURE_UDHCP_PORT(
|
//usage: IF_FEATURE_UDHCP_PORT(
|
||||||
//usage: "\n -P N Use port N (default 67)"
|
//usage: "\n -P N Use port N (default 67)"
|
||||||
//usage: )
|
//usage: )
|
||||||
@ -302,6 +303,7 @@ int udhcpd_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
unsigned num_ips;
|
unsigned num_ips;
|
||||||
unsigned opt;
|
unsigned opt;
|
||||||
struct option_set *option;
|
struct option_set *option;
|
||||||
|
char *str_I = str_I;
|
||||||
IF_FEATURE_UDHCP_PORT(char *str_P;)
|
IF_FEATURE_UDHCP_PORT(char *str_P;)
|
||||||
|
|
||||||
#if ENABLE_FEATURE_UDHCP_PORT
|
#if ENABLE_FEATURE_UDHCP_PORT
|
||||||
@ -312,8 +314,10 @@ int udhcpd_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
#if defined CONFIG_UDHCP_DEBUG && CONFIG_UDHCP_DEBUG >= 1
|
#if defined CONFIG_UDHCP_DEBUG && CONFIG_UDHCP_DEBUG >= 1
|
||||||
opt_complementary = "vv";
|
opt_complementary = "vv";
|
||||||
#endif
|
#endif
|
||||||
opt = getopt32(argv, "fSv"
|
opt = getopt32(argv, "fSI:v"
|
||||||
IF_FEATURE_UDHCP_PORT("P:", &str_P)
|
IF_FEATURE_UDHCP_PORT("P:")
|
||||||
|
, &str_I
|
||||||
|
IF_FEATURE_UDHCP_PORT(, &str_P)
|
||||||
IF_UDHCP_VERBOSE(, &dhcp_verbose)
|
IF_UDHCP_VERBOSE(, &dhcp_verbose)
|
||||||
);
|
);
|
||||||
if (!(opt & 1)) { /* no -f */
|
if (!(opt & 1)) { /* no -f */
|
||||||
@ -326,8 +330,13 @@ int udhcpd_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
openlog(applet_name, LOG_PID, LOG_DAEMON);
|
openlog(applet_name, LOG_PID, LOG_DAEMON);
|
||||||
logmode |= LOGMODE_SYSLOG;
|
logmode |= LOGMODE_SYSLOG;
|
||||||
}
|
}
|
||||||
|
if (opt & 4) { /* -I */
|
||||||
|
len_and_sockaddr *lsa = xhost_and_af2sockaddr(str_I, 0, AF_INET);
|
||||||
|
server_config.server_nip = lsa->u.sin.sin_addr.s_addr;
|
||||||
|
free(lsa);
|
||||||
|
}
|
||||||
#if ENABLE_FEATURE_UDHCP_PORT
|
#if ENABLE_FEATURE_UDHCP_PORT
|
||||||
if (opt & 8) { /* -P */
|
if (opt & 16) { /* -P */
|
||||||
SERVER_PORT = xatou16(str_P);
|
SERVER_PORT = xatou16(str_P);
|
||||||
CLIENT_PORT = SERVER_PORT + 1;
|
CLIENT_PORT = SERVER_PORT + 1;
|
||||||
}
|
}
|
||||||
@ -367,7 +376,7 @@ int udhcpd_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
|
|
||||||
if (udhcp_read_interface(server_config.interface,
|
if (udhcp_read_interface(server_config.interface,
|
||||||
&server_config.ifindex,
|
&server_config.ifindex,
|
||||||
&server_config.server_nip,
|
(server_config.server_nip == 0 ? &server_config.server_nip : NULL),
|
||||||
server_config.server_mac)
|
server_config.server_mac)
|
||||||
) {
|
) {
|
||||||
retval = 1;
|
retval = 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user