Separate info and debug messages a bit

master
Thor 4 years ago
parent d820c21fb0
commit 306a357b4f
  1. 26
      src/bogofilter-smtpd.cpp
  2. 2
      src/mail.cpp
  3. 2
      src/protocol/protocol.cpp

@ -9,22 +9,22 @@
#include <iostream> #include <iostream>
#include <cstdio> #include <cstdio>
const bool debug = true; const bool debug = false;
using namespace std; using namespace std;
mail::session_map_t sessions; mail::session_map_t sessions;
void on_ready(protocol::protocol_t& protocol, protocol::message_t message) { 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"});
protocol.send({"register", "filter", "smtp-in", "data-line"}); protocol.send({"register", "filter", "smtp-in", "data-line"});
protocol.send({"register", "filter", "smtp-in", "commit"}); protocol.send({"register", "filter", "smtp-in", "commit"});
protocol.send({"register", "ready"}); protocol.send({"register", "ready"});
cerr << "Ready to accept messages from SMTPD" << endl;
} }
void on_data(protocol::protocol_t& protocol, protocol::message_t message) { 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_key = protocol::session_key_from(message);
auto session_token = protocol::session_token_from(message); auto session_token = protocol::session_token_from(message);
sessions.emplace(session_key, mail::session_t{}); 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) { 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 tokens = protocol::token::decompose(message.input);
auto session_key = protocol::session_key_from(tokens); 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; 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); session.message.header.push_back(data_line);
return; return;
} }
@ -74,13 +79,13 @@ void on_data_line(protocol::protocol_t& protocol, protocol::message_t message) {
session.message.body.push_back(data_line); session.message.body.push_back(data_line);
} catch(out_of_range& e) { } catch(out_of_range& e) {
debug && cerr << "Unknown session key" << endl; cerr << "Unknown session key from SMTPD" << endl;
protocol.fail(session_key, session_token); protocol.fail(session_key, session_token);
} }
} }
void on_commit(protocol::protocol_t& protocol, protocol::message_t message) { 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_key = protocol::session_key_from(message);
auto session_token = protocol::session_token_from(message); auto session_token = protocol::session_token_from(message);
try { try {
@ -98,13 +103,13 @@ void on_commit(protocol::protocol_t& protocol, protocol::message_t message) {
protocol.proceed(session_key, session_token); protocol.proceed(session_key, session_token);
break; break;
default: case mail::status::ERROR:
debug && cerr << "Bogofilter error (" << session.status << ")" << endl; debug && cerr << "Bogofilter error" << endl;
protocol.fail(session_key, session_token); protocol.fail(session_key, session_token);
break; break;
} }
} catch(out_of_range& e) { } catch(out_of_range& e) {
debug && cerr << "Unknown session key" << endl; cerr << "Unknown session key from SMTPD" << endl;
protocol.fail(session_key, session_token); 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) { int main(int argc, char** argv) {
protocol::ios_protocol_t protocol(cin, cout); protocol::ios_protocol_t protocol(cin, cout);
protocol::handler_map_t handlers; protocol::handler_map_t handlers;
handlers.emplace("config|ready", on_ready); 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.set_handlers(handlers);
protocol.run(); protocol.run();

@ -1,2 +0,0 @@
#include <mail.hpp>

@ -11,7 +11,7 @@
using namespace std; using namespace std;
using namespace util; using namespace util;
const bool debug = true; const bool debug = false;
namespace protocol { namespace protocol {
void protocol_t::set_handlers(const handler_map_t handlers) { void protocol_t::set_handlers(const handler_map_t handlers) {

Loading…
Cancel
Save