mirror of
https://github.com/sheumann/hush.git
synced 2024-12-28 22:30:05 +00:00
Fix (hopefully) bug 976. Need more thorough audit.
Restore erroneously removed FEATURE_UDHCP_SYSLOG.
This commit is contained in:
parent
a9801658ee
commit
239369b368
@ -37,6 +37,16 @@ config CONFIG_APP_UDHCPC
|
|||||||
|
|
||||||
See http://udhcp.busybox.net for further details.
|
See http://udhcp.busybox.net for further details.
|
||||||
|
|
||||||
|
config CONFIG_FEATURE_UDHCP_SYSLOG
|
||||||
|
bool "Log udhcp messages to syslog"
|
||||||
|
default n
|
||||||
|
depends on CONFIG_APP_UDHCPD || CONFIG_APP_UDHCPC
|
||||||
|
help
|
||||||
|
If not daemonized, udhcpd prints its messages to stdout/stderr.
|
||||||
|
If this option is selected, it will also log them to syslog.
|
||||||
|
|
||||||
|
See http://udhcp.busybox.net for further details.
|
||||||
|
|
||||||
config CONFIG_FEATURE_UDHCP_DEBUG
|
config CONFIG_FEATURE_UDHCP_DEBUG
|
||||||
bool "Compile udhcp with noisy debugging messages"
|
bool "Compile udhcp with noisy debugging messages"
|
||||||
default n
|
default n
|
||||||
|
@ -67,7 +67,7 @@ void udhcp_background(const char *pidfile)
|
|||||||
#endif /* __uClinux__ */
|
#endif /* __uClinux__ */
|
||||||
}
|
}
|
||||||
|
|
||||||
void udhcp_start_log_and_pid(const char *client_server, const char *pidfile)
|
void udhcp_start_log_and_pid(const char *pidfile)
|
||||||
{
|
{
|
||||||
int pid_fd;
|
int pid_fd;
|
||||||
|
|
||||||
@ -82,9 +82,9 @@ void udhcp_start_log_and_pid(const char *client_server, const char *pidfile)
|
|||||||
setlinebuf(stdout);
|
setlinebuf(stdout);
|
||||||
|
|
||||||
if (ENABLE_FEATURE_UDHCP_SYSLOG) {
|
if (ENABLE_FEATURE_UDHCP_SYSLOG) {
|
||||||
openlog(client_server, LOG_PID, LOG_LOCAL0);
|
openlog(bb_applet_name, LOG_PID, LOG_LOCAL0);
|
||||||
logmode |= LOGMODE_SYSLOG;
|
logmode |= LOGMODE_SYSLOG;
|
||||||
}
|
}
|
||||||
|
|
||||||
bb_info_msg("%s (v%s) started", client_server, BB_VER);
|
bb_info_msg("%s (v%s) started", bb_applet_name, BB_VER);
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,11 @@
|
|||||||
#include "signalpipe.h"
|
#include "signalpipe.h"
|
||||||
|
|
||||||
static int state;
|
static int state;
|
||||||
|
/* Something is definitely wrong here. IPv4 addresses
|
||||||
|
* in variables of type long?? BTW, we use inet_ntoa()
|
||||||
|
* in the code. Manpage says that struct in_addr has a member of type long (!)
|
||||||
|
* which holds IPv4 address, and the struct is passed by value (!!)
|
||||||
|
*/
|
||||||
static unsigned long requested_ip; /* = 0 */
|
static unsigned long requested_ip; /* = 0 */
|
||||||
static unsigned long server_addr;
|
static unsigned long server_addr;
|
||||||
static unsigned long timeout;
|
static unsigned long timeout;
|
||||||
@ -267,7 +272,7 @@ int udhcpc_main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Start the log, sanitize fd's, and write a pid file */
|
/* Start the log, sanitize fd's, and write a pid file */
|
||||||
udhcp_start_log_and_pid("udhcpc", client_config.pidfile);
|
udhcp_start_log_and_pid(client_config.pidfile);
|
||||||
|
|
||||||
if (read_interface(client_config.interface, &client_config.ifindex,
|
if (read_interface(client_config.interface, &client_config.ifindex,
|
||||||
NULL, client_config.arp) < 0)
|
NULL, client_config.arp) < 0)
|
||||||
@ -446,8 +451,9 @@ int udhcpc_main(int argc, char *argv[])
|
|||||||
case INIT_SELECTING:
|
case INIT_SELECTING:
|
||||||
/* Must be a DHCPOFFER to one of our xid's */
|
/* Must be a DHCPOFFER to one of our xid's */
|
||||||
if (*message == DHCPOFFER) {
|
if (*message == DHCPOFFER) {
|
||||||
if ((temp = get_option(&packet, DHCP_SERVER_ID))) {
|
temp = get_option(&packet, DHCP_SERVER_ID);
|
||||||
memcpy(&server_addr, temp, 4);
|
if (temp) {
|
||||||
|
server_addr = *(uint32_t*)temp;
|
||||||
xid = packet.xid;
|
xid = packet.xid;
|
||||||
requested_ip = packet.yiaddr;
|
requested_ip = packet.yiaddr;
|
||||||
|
|
||||||
@ -465,12 +471,12 @@ int udhcpc_main(int argc, char *argv[])
|
|||||||
case RENEWING:
|
case RENEWING:
|
||||||
case REBINDING:
|
case REBINDING:
|
||||||
if (*message == DHCPACK) {
|
if (*message == DHCPACK) {
|
||||||
if (!(temp = get_option(&packet, DHCP_LEASE_TIME))) {
|
temp = get_option(&packet, DHCP_LEASE_TIME);
|
||||||
|
if (!temp) {
|
||||||
bb_error_msg("No lease time with ACK, using 1 hour lease");
|
bb_error_msg("No lease time with ACK, using 1 hour lease");
|
||||||
lease = 60 * 60;
|
lease = 60 * 60;
|
||||||
} else {
|
} else {
|
||||||
memcpy(&lease, temp, 4);
|
lease = ntohl(*(uint32_t*)temp);
|
||||||
lease = ntohl(lease);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* enter bound state */
|
/* enter bound state */
|
||||||
|
@ -55,7 +55,7 @@ int udhcpd_main(int argc, char *argv[])
|
|||||||
read_config(argc < 2 ? DHCPD_CONF_FILE : argv[1]);
|
read_config(argc < 2 ? DHCPD_CONF_FILE : argv[1]);
|
||||||
|
|
||||||
/* Start the log, sanitize fd's, and write a pid file */
|
/* Start the log, sanitize fd's, and write a pid file */
|
||||||
udhcp_start_log_and_pid("udhcpd", server_config.pidfile);
|
udhcp_start_log_and_pid(server_config.pidfile);
|
||||||
|
|
||||||
if ((option = find_option(server_config.options, DHCP_LEASE_TIME))) {
|
if ((option = find_option(server_config.options, DHCP_LEASE_TIME))) {
|
||||||
memcpy(&server_config.lease, option->data + 2, 4);
|
memcpy(&server_config.lease, option->data + 2, 4);
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
#define COMBINED_BINARY
|
#define COMBINED_BINARY
|
||||||
|
|
||||||
void udhcp_background(const char *pidfile);
|
void udhcp_background(const char *pidfile);
|
||||||
void udhcp_start_log_and_pid(const char *client_server, const char *pidfile);
|
void udhcp_start_log_and_pid(const char *pidfile);
|
||||||
|
|
||||||
void udhcp_run_script(struct dhcpMessage *packet, const char *name);
|
void udhcp_run_script(struct dhcpMessage *packet, const char *name);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user