From d77c26e8e7f944dbf9fec13c5b5941998e037978 Mon Sep 17 00:00:00 2001
From: Benny Baumann <BenBE@geshi.org>
Date: Wed, 30 Dec 2020 15:22:33 +0100
Subject: [PATCH] Allow output of error messages on status fd

---
 src/service/daemonctl.hpp         | 3 +++
 src/service/daemonctl_rcd.cpp     | 5 +++++
 src/service/daemonctl_systemd.cpp | 6 ++++++
 3 files changed, 14 insertions(+)

diff --git a/src/service/daemonctl.hpp b/src/service/daemonctl.hpp
index 7f56765..b32847a 100644
--- a/src/service/daemonctl.hpp
+++ b/src/service/daemonctl.hpp
@@ -5,6 +5,9 @@
 ATTR_NONNULL_ALL
 void dctl_status_msg(const char* msg);
 
+ATTR_NONNULL_ALL
+void dctl_status_err(const char *msg);
+
 void dctl_status_ready();
 void dctl_status_reload();
 void dctl_status_shutdown();
diff --git a/src/service/daemonctl_rcd.cpp b/src/service/daemonctl_rcd.cpp
index 84bf39e..ca170b9 100644
--- a/src/service/daemonctl_rcd.cpp
+++ b/src/service/daemonctl_rcd.cpp
@@ -7,6 +7,11 @@ void dctl_status_msg(const char* msg) {
     (void)msg;
 }
 
+ATTR_WEAK
+void dctl_status_err(const char *msg) {
+    (void)msg;
+}
+
 ATTR_WEAK
 void dctl_status_ready() {
 
diff --git a/src/service/daemonctl_systemd.cpp b/src/service/daemonctl_systemd.cpp
index c9e4920..e399dde 100644
--- a/src/service/daemonctl_systemd.cpp
+++ b/src/service/daemonctl_systemd.cpp
@@ -12,6 +12,12 @@ void dctl_status_msg(const char* msg) {
     std::cout << SD_INFO << "STATUS=" << msg << std::endl;
 }
 
+ATTR_NONNULL_ALL
+void dctl_status_err(const char *msg) {
+    sd_notifyf(0, "STATUS=%s", msg);
+    std::cerr << SD_ERR << "STATUS=" << msg << std::endl;
+}
+
 void dctl_status_ready() {
     sd_notify(0, "READY=1");
 }
-- 
GitLab