mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
Add --log-level command line option to filter out log messages from lower log levels. Then fix the annoying CzechLight warning message and useless "NACM config validation" log. Then add audit trail as we have in netopeer2-server, and finish off by stripping redundant fields from log message: timestamp, identity, and log level. Fixes #892 Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
106 lines
4.1 KiB
Diff
106 lines
4.1 KiB
Diff
From fd0dbd116f249cd8a4d00b677ed2976b19a28b1e Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Jan=20Kundr=C3=A1t?= <jan.kundrat@cesnet.cz>
|
|
Date: Thu, 7 Aug 2025 12:14:02 +0200
|
|
Subject: [PATCH 12/42] refactor: a better convention for weak_from_this->lock
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
Organization: Wires
|
|
|
|
It is not a "client", so let's stop calling it a "client". My bad.
|
|
|
|
Change-Id: Id8dc4d92c3ade8d86697366d0102e84bd466f504
|
|
Signed-off-by: Mattias Walström <lazzer@gmail.com>
|
|
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
|
---
|
|
src/http/EventStream.cpp | 44 ++++++++++++++++++++--------------------
|
|
1 file changed, 22 insertions(+), 22 deletions(-)
|
|
|
|
diff --git a/src/http/EventStream.cpp b/src/http/EventStream.cpp
|
|
index 0893653..3bdd55e 100644
|
|
--- a/src/http/EventStream.cpp
|
|
+++ b/src/http/EventStream.cpp
|
|
@@ -47,11 +47,11 @@ EventStream::EventStream(const server::request& req,
|
|
}
|
|
|
|
state = WantToClose;
|
|
- boost::asio::post(this->res.io_service(), [maybeClient = std::weak_ptr<EventStream>{shared_from_this()}]() {
|
|
- if (auto client = maybeClient.lock()) {
|
|
- std::lock_guard lock{client->mtx};
|
|
- if (client->state == WantToClose) { // resume unless somebody closed it before this was picked up by the event loop
|
|
- client->res.resume();
|
|
+ boost::asio::post(this->res.io_service(), [weak = std::weak_ptr<EventStream>{shared_from_this()}]() {
|
|
+ if (auto myself = weak.lock()) {
|
|
+ std::lock_guard lock{myself->mtx};
|
|
+ if (myself->state == WantToClose) { // resume unless somebody closed it before this was picked up by the event loop
|
|
+ myself->res.resume();
|
|
}
|
|
}
|
|
});
|
|
@@ -67,23 +67,23 @@ void EventStream::activate()
|
|
{
|
|
start_ping();
|
|
|
|
- auto client = shared_from_this();
|
|
+ auto myself = shared_from_this();
|
|
res.write_head(200, {
|
|
{"content-type", {"text/event-stream", false}},
|
|
{"access-control-allow-origin", {"*", false}},
|
|
});
|
|
|
|
- res.on_close([client](const auto ec) {
|
|
- spdlog::debug("{}: closed ({})", client->peer, nghttp2_http2_strerror(ec));
|
|
- std::lock_guard lock{client->mtx};
|
|
- client->ping.cancel();
|
|
- client->eventSub.disconnect();
|
|
- client->terminateSub.disconnect();
|
|
- client->state = Closed;
|
|
+ res.on_close([myself](const auto ec) {
|
|
+ spdlog::debug("{}: closed ({})", myself->peer, nghttp2_http2_strerror(ec));
|
|
+ std::lock_guard lock{myself->mtx};
|
|
+ myself->ping.cancel();
|
|
+ myself->eventSub.disconnect();
|
|
+ myself->terminateSub.disconnect();
|
|
+ myself->state = Closed;
|
|
});
|
|
|
|
- res.end([client](uint8_t* destination, std::size_t len, uint32_t* data_flags) {
|
|
- return client->process(destination, len, data_flags);
|
|
+ res.end([myself](uint8_t* destination, std::size_t len, uint32_t* data_flags) {
|
|
+ return myself->process(destination, len, data_flags);
|
|
});
|
|
}
|
|
|
|
@@ -156,21 +156,21 @@ void EventStream::enqueue(const std::string& fieldName, const std::string& what)
|
|
void EventStream::start_ping()
|
|
{
|
|
ping.expires_from_now(boost::posix_time::seconds(m_keepAlivePingInterval.count()));
|
|
- ping.async_wait([maybeClient = weak_from_this()](const boost::system::error_code& ec) {
|
|
- auto client = maybeClient.lock();
|
|
- if (!client) {
|
|
+ ping.async_wait([weak = weak_from_this()](const boost::system::error_code& ec) {
|
|
+ auto myself = weak.lock();
|
|
+ if (!myself) {
|
|
spdlog::trace("ping: client already gone");
|
|
return;
|
|
}
|
|
|
|
if (ec == boost::asio::error::operation_aborted) {
|
|
- spdlog::trace("{}: ping scheduler cancelled", client->peer);
|
|
+ spdlog::trace("{}: ping scheduler cancelled", myself->peer);
|
|
return;
|
|
}
|
|
|
|
- client->enqueue("", "\n");
|
|
- spdlog::trace("{}: keep-alive ping enqueued", client->peer);
|
|
- client->start_ping();
|
|
+ myself->enqueue("", "\n");
|
|
+ spdlog::trace("{}: keep-alive ping enqueued", myself->peer);
|
|
+ myself->start_ping();
|
|
});
|
|
}
|
|
|
|
--
|
|
2.43.0
|
|
|