diff --git a/src/bogofilter-smtpd.cpp b/src/bogofilter-smtpd.cpp index e0cebbc..ed575e4 100644 --- a/src/bogofilter-smtpd.cpp +++ b/src/bogofilter-smtpd.cpp @@ -51,6 +51,7 @@ void on_data_line(protocol::protocol_t& protocol, protocol::message_t message) { } if(data_line == ".") { + protocol.submit_message(session_key, session_token, session.message.header, session.message.body); return; } @@ -70,15 +71,8 @@ void on_commit(protocol::protocol_t& protocol, protocol::message_t message) { debug && cerr << "Message committed" << endl; auto session_key = protocol::session_key_from(message); auto session_token = protocol::session_token_from(message); - try { - auto& session = sessions.at(session_key); - protocol.submit_message(session_key, session_token, session.message.header, session.message.body); - sessions.erase(session_key); - protocol.proceed(session_key, session_token); - } catch(out_of_range& e) { - debug && cerr << "Unknown session key" << endl; - protocol.fail(session_key, session_token); - } + protocol.proceed(session_key, session_token); + sessions.erase(session_key); } int main(int argc, char** argv) {