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 <cstdio>
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();

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

@ -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) {

Loading…
Cancel
Save