aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2023-07-20 09:23:17 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2023-07-20 09:23:17 +0200
commit2de7bab3cf1c7757078a113b35e927ecbccc5e3d (patch)
treeb13bf0497dab9bcf87dd6a58805511c4e1d3dc40 /src
parentc8e4c6851b0975200b5a34b8003e7c08389e6b33 (diff)
downloaddabmod-2de7bab3cf1c7757078a113b35e927ecbccc5e3d.tar.gz
dabmod-2de7bab3cf1c7757078a113b35e927ecbccc5e3d.tar.bz2
dabmod-2de7bab3cf1c7757078a113b35e927ecbccc5e3d.zip
Handle event socket bind failure
Diffstat (limited to 'src')
-rw-r--r--src/Events.cpp12
-rw-r--r--src/Events.h1
2 files changed, 12 insertions, 1 deletions
diff --git a/src/Events.cpp b/src/Events.cpp
index d65b73a..3171cda 100644
--- a/src/Events.cpp
+++ b/src/Events.cpp
@@ -47,11 +47,21 @@ EventSender::~EventSender()
void EventSender::bind(const std::string& bind_endpoint)
{
- m_socket.bind(bind_endpoint);
+ try {
+ m_socket.bind(bind_endpoint);
+ m_socket_valid = true;
+ }
+ catch (const zmq::error_t& err) {
+ fprintf(stderr, "Cannot bind event socket: %s", err.what());
+ }
}
void EventSender::send(const std::string& event_name, const json::map_t& detail)
{
+ if (not m_socket_valid) {
+ return;
+ }
+
zmq::message_t zmsg1(event_name.data(), event_name.size());
const auto detail_json = json::map_to_json(detail);
zmq::message_t zmsg2(detail_json.data(), detail_json.size());
diff --git a/src/Events.h b/src/Events.h
index 215c5a8..9f838e5 100644
--- a/src/Events.h
+++ b/src/Events.h
@@ -61,6 +61,7 @@ class EventSender {
private:
zmq::context_t m_zmq_context;
zmq::socket_t m_socket;
+ bool m_socket_valid = false;
};
class LogToEventSender: public LogBackend {