tools/xenstore: switch barf[_perror]() to use syslog()

When xenstored crashes due to an unrecoverable condition it is calling
either barf() or barf_perror() to issue a message and then exit().

Make sure the message is visible somewhere by using syslog()
additionally to xprintf(), as the latter will be visible only with
tracing active.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Reviewed-by: Julien Grall <jgrall@amazon.com>
This commit is contained in:
Juergen Gross authored and Andrew Cooper committed 2020-12-17 15:04:43 +00:00
1 parent d81133d45d
commit cbc86340ac
1 file changed
+3
+3
View File
@@ -3,6 +3,7 @@
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <syslog.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
@@ -35,6 +36,7 @@ void barf(const char *fmt, ...)
va_end(arglist);
if (bytes >= 0) {
syslog(LOG_CRIT, "%s\n", str);
xprintf("%s\n", str);
free(str);
}
@@ -54,6 +56,7 @@ void barf_perror(const char *fmt, ...)
va_end(arglist);
if (bytes >= 0) {
syslog(LOG_CRIT, "%s: %s\n", str, strerror(err));
xprintf("%s: %s\n", str, strerror(err));
free(str);
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.