From 306a357b4f72cc372ed92d6c1c0544d236be1450 Mon Sep 17 00:00:00 2001 From: Thor Harald Johansen Date: Sat, 6 Jun 2020 17:11:16 +0200 Subject: [PATCH] Separate info and debug messages a bit --- src/bogofilter-smtpd.cpp | 26 ++++++++++++++++---------- src/mail.cpp | 2 -- src/protocol/protocol.cpp | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) delete mode 100644 src/mail.cpp diff --git a/src/bogofilter-smtpd.cpp b/src/bogofilter-smtpd.cpp index e4a24e7..350c2c6 100644 --- a/src/bogofilter-smtpd.cpp +++ b/src/bogofilter-smtpd.cpp @@ -9,22 +9,22 @@ #include #include -const bool debug = true; +const bool debug = false; using namespace std; mail::session_map_t sessions; void on_ready(protocol::protocol_t& protocol, protocol::message_t message) { - debug && cerr << "Ready" << endl; protocol.send({"register", "filter", "smtp-in", "data"}); protocol.send({"register", "filter", "smtp-in", "data-line"}); protocol.send({"register", "filter", "smtp-in", "commit"}); protocol.send({"register", "ready"}); + cerr << "Ready to accept messages from SMTPD" << endl; } void on_data(protocol::protocol_t& protocol, protocol::message_t message) { - debug && cerr << "New message" << endl; + cerr << "Accepting new message from SMTPD" << endl; auto session_key = protocol::session_key_from(message); auto session_token = protocol::session_token_from(message); sessions.emplace(session_key, mail::session_t{}); @@ -32,7 +32,7 @@ void on_data(protocol::protocol_t& protocol, protocol::message_t message) { } void on_data_line(protocol::protocol_t& protocol, protocol::message_t message) { - debug && cerr << "Received data line" << endl; + debug && cerr << "Received data line from SMTPD" << endl; auto tokens = protocol::token::decompose(message.input); auto session_key = protocol::session_key_from(tokens); @@ -47,6 +47,11 @@ void on_data_line(protocol::protocol_t& protocol, protocol::message_t message) { return; } + if(data_line.substr(0, 5) == "From:" || + data_line.substr(0, 8) == "Subject:") { + cerr << data_line << endl; + } + session.message.header.push_back(data_line); return; } @@ -74,13 +79,13 @@ void on_data_line(protocol::protocol_t& protocol, protocol::message_t message) { session.message.body.push_back(data_line); } catch(out_of_range& e) { - debug && cerr << "Unknown session key" << endl; + cerr << "Unknown session key from SMTPD" << endl; protocol.fail(session_key, session_token); } } void on_commit(protocol::protocol_t& protocol, protocol::message_t message) { - debug && cerr << "Message committed" << endl; + debug && cerr << "Commit request from SMTPD" << endl; auto session_key = protocol::session_key_from(message); auto session_token = protocol::session_token_from(message); try { @@ -98,13 +103,13 @@ void on_commit(protocol::protocol_t& protocol, protocol::message_t message) { protocol.proceed(session_key, session_token); break; - default: - debug && cerr << "Bogofilter error (" << session.status << ")" << endl; + case mail::status::ERROR: + debug && cerr << "Bogofilter error" << endl; protocol.fail(session_key, session_token); break; } } catch(out_of_range& e) { - debug && cerr << "Unknown session key" << endl; + cerr << "Unknown session key from SMTPD" << endl; protocol.fail(session_key, session_token); } @@ -113,7 +118,6 @@ void on_commit(protocol::protocol_t& protocol, protocol::message_t message) { int main(int argc, char** argv) { protocol::ios_protocol_t protocol(cin, cout); - protocol::handler_map_t handlers; handlers.emplace("config|ready", on_ready); @@ -128,6 +132,8 @@ int main(int argc, char** argv) { } } + cerr << "Bogofilter-SMTPD started" << endl; + protocol.set_handlers(handlers); protocol.run(); diff --git a/src/mail.cpp b/src/mail.cpp deleted file mode 100644 index b3ebfdb..0000000 --- a/src/mail.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include - diff --git a/src/protocol/protocol.cpp b/src/protocol/protocol.cpp index 2673d1d..830cdbd 100644 --- a/src/protocol/protocol.cpp +++ b/src/protocol/protocol.cpp @@ -11,7 +11,7 @@ using namespace std; using namespace util; -const bool debug = true; +const bool debug = false; namespace protocol { void protocol_t::set_handlers(const handler_map_t handlers) {