[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:
parent
99de239867
commit
c72b8969e2
@ -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