mirror of
https://github.com/ipxe/ipxe
synced 2026-02-14 02:31:26 +03:00
[syslog] Disable console when no syslog server is defined
Explicitly disable the syslog console when no syslog server is defined, rather than (ab)using the socket family address as an equivalent console-enabled flag. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -37,6 +37,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
|||||||
|
|
||||||
/** The syslog server */
|
/** The syslog server */
|
||||||
static struct sockaddr_tcpip logserver = {
|
static struct sockaddr_tcpip logserver = {
|
||||||
|
.st_family = AF_INET,
|
||||||
.st_port = htons ( SYSLOG_PORT ),
|
.st_port = htons ( SYSLOG_PORT ),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -84,10 +85,6 @@ static struct ansiesc_context syslog_ansiesc_ctx = {
|
|||||||
static void syslog_putchar ( int character ) {
|
static void syslog_putchar ( int character ) {
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/* Do nothing if we have no log server */
|
|
||||||
if ( ! logserver.st_family )
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Ignore if we are already mid-logging */
|
/* Ignore if we are already mid-logging */
|
||||||
if ( syslog_entered )
|
if ( syslog_entered )
|
||||||
return;
|
return;
|
||||||
@@ -136,6 +133,7 @@ static void syslog_putchar ( int character ) {
|
|||||||
/** Syslog console driver */
|
/** Syslog console driver */
|
||||||
struct console_driver syslog_console __console_driver = {
|
struct console_driver syslog_console __console_driver = {
|
||||||
.putchar = syslog_putchar,
|
.putchar = syslog_putchar,
|
||||||
|
.disabled = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@@ -166,11 +164,11 @@ static int apply_syslog_settings ( void ) {
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/* Fetch log server */
|
/* Fetch log server */
|
||||||
|
syslog_console.disabled = 1;
|
||||||
old_addr.s_addr = sin_logserver->sin_addr.s_addr;
|
old_addr.s_addr = sin_logserver->sin_addr.s_addr;
|
||||||
logserver.st_family = 0;
|
|
||||||
if ( ( len = fetch_ipv4_setting ( NULL, &syslog_setting,
|
if ( ( len = fetch_ipv4_setting ( NULL, &syslog_setting,
|
||||||
&sin_logserver->sin_addr ) ) >= 0 ) {
|
&sin_logserver->sin_addr ) ) >= 0 ) {
|
||||||
sin_logserver->sin_family = AF_INET;
|
syslog_console.disabled = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Do nothing unless log server has changed */
|
/* Do nothing unless log server has changed */
|
||||||
@@ -181,7 +179,7 @@ static int apply_syslog_settings ( void ) {
|
|||||||
intf_restart ( &syslogger, 0 );
|
intf_restart ( &syslogger, 0 );
|
||||||
|
|
||||||
/* Do nothing unless we have a log server */
|
/* Do nothing unless we have a log server */
|
||||||
if ( ! logserver.st_family ) {
|
if ( syslog_console.disabled ) {
|
||||||
DBG ( "SYSLOG has no log server\n" );
|
DBG ( "SYSLOG has no log server\n" );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user