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