Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions ClientSource/Connection/MessageLogger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,6 @@ void SerialLogger::log(const std::string& msg, Color color){
m_logger.log(msg, color);
}
}
void SerialLogger::log(std::string msg){
if (ok_to_log()){
m_logger.log(msg, COLOR_DARKGREEN);
}
}

bool SerialLogger::ok_to_log(){
WallClock now = current_time();
Expand Down
10 changes: 4 additions & 6 deletions ClientSource/Connection/MessageLogger.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
namespace PokemonAutomation{


class MessageLogger : public MessageSniffer{
class MessageLogger : public Logger, public MessageSniffer{
public:
MessageLogger(bool log_everything = false)
: m_log_everything_owner(log_everything)
Expand All @@ -29,7 +29,6 @@ class MessageLogger : public MessageSniffer{
{}


// virtual void log(std::string msg) override;
virtual void on_send(const BotBaseMessage& message, bool is_retransmit) override;
virtual void on_recv(const BotBaseMessage& message) override;

Expand All @@ -40,13 +39,12 @@ class MessageLogger : public MessageSniffer{



class SerialLogger : public Logger, public MessageLogger{
class SerialLogger : public MessageLogger{
public:
SerialLogger(Logger& logger, bool log_everything);

virtual void log(const char* msg, Color color = Color()) override;
virtual void log(const std::string& msg, Color color = Color()) override;
virtual void log(std::string msg) override;
virtual void log(const char* msg, Color color = COLOR_DARKGREEN) override;
virtual void log(const std::string& msg, Color color = COLOR_DARKGREEN) override;

private:
bool ok_to_log();
Expand Down
1 change: 0 additions & 1 deletion ClientSource/Connection/MessageSniffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ struct BotBaseMessage;

class MessageSniffer{
public:
virtual void log(std::string msg){}
virtual void on_send(const BotBaseMessage& message, bool is_retransmit){}
virtual void on_recv(const BotBaseMessage& message){}
};
Expand Down
32 changes: 16 additions & 16 deletions ClientSource/Connection/PABotBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ void PABotBase::process_ack_request(BotBaseMessage message){

if constexpr (!variable_length){
if (message.body.size() != sizeof(Params)){
m_sniffer->log("Ignoring message with invalid size.");
m_logger.log("Ignoring message with invalid size.");
return;
}
}
Expand All @@ -324,14 +324,14 @@ void PABotBase::process_ack_request(BotBaseMessage message){
WriteSpinLock lg(m_state_lock, "PABotBase::process_ack_request()");

if (m_pending_requests.empty()){
m_sniffer->log("Unexpected request ack message: seqnum = " + std::to_string(seqnum));
m_logger.log("Unexpected request ack message: seqnum = " + std::to_string(seqnum));
return;
}

uint64_t full_seqnum = infer_full_seqnum(m_pending_requests, seqnum);
std::map<uint64_t, PendingRequest>::iterator iter = m_pending_requests.find(full_seqnum);
if (iter == m_pending_requests.end()){
m_sniffer->log("Unexpected request ack message: seqnum = " + std::to_string(seqnum));
m_logger.log("Unexpected request ack message: seqnum = " + std::to_string(seqnum));
return;
}
iter->second.sanitizer.check_usage();
Expand All @@ -357,10 +357,10 @@ void PABotBase::process_ack_request(BotBaseMessage message){
}
return;
case AckState::ACKED:
m_sniffer->log("Duplicate request ack message: seqnum = " + std::to_string(seqnum));
m_logger.log("Duplicate request ack message: seqnum = " + std::to_string(seqnum));
return;
case AckState::FINISHED:
m_sniffer->log("Request ack on command finish: seqnum = " + std::to_string(seqnum));
m_logger.log("Request ack on command finish: seqnum = " + std::to_string(seqnum));
return;
}
}
Expand All @@ -369,7 +369,7 @@ void PABotBase::process_ack_command(BotBaseMessage message){
auto scope_check = m_sanitizer.check_scope();

if (message.body.size() != sizeof(Params)){
m_sniffer->log("Ignoring message with invalid size.");
m_logger.log("Ignoring message with invalid size.");
return;
}
const Params* params = (const Params*)message.body.c_str();
Expand All @@ -378,14 +378,14 @@ void PABotBase::process_ack_command(BotBaseMessage message){
WriteSpinLock lg(m_state_lock, "PABotBase::process_ack_command()");

if (m_pending_commands.empty()){
m_sniffer->log("Unexpected command ack message: seqnum = " + std::to_string(seqnum));
m_logger.log("Unexpected command ack message: seqnum = " + std::to_string(seqnum));
return;
}

uint64_t full_seqnum = infer_full_seqnum(m_pending_commands, seqnum);
auto iter = m_pending_commands.find(full_seqnum);
if (iter == m_pending_commands.end()){
m_sniffer->log("Unexpected command ack message: seqnum = " + std::to_string(seqnum));
m_logger.log("Unexpected command ack message: seqnum = " + std::to_string(seqnum));
return;
}
iter->second.sanitizer.check_usage();
Expand All @@ -399,10 +399,10 @@ void PABotBase::process_ack_command(BotBaseMessage message){
iter->second.ack = std::move(message);
return;
case AckState::ACKED:
m_sniffer->log("Duplicate command ack message: seqnum = " + std::to_string(seqnum));
m_logger.log("Duplicate command ack message: seqnum = " + std::to_string(seqnum));
return;
case AckState::FINISHED:
m_sniffer->log("Command ack on finished command: seqnum = " + std::to_string(seqnum));
m_logger.log("Command ack on finished command: seqnum = " + std::to_string(seqnum));
return;
}
}
Expand All @@ -411,7 +411,7 @@ void PABotBase::process_command_finished(BotBaseMessage message){
auto scope_check = m_sanitizer.check_scope();

if (message.body.size() != sizeof(Params)){
m_sniffer->log("Ignoring message with invalid size.");
m_logger.log("Ignoring message with invalid size.");
return;
}
const Params* params = (const Params*)message.body.c_str();
Expand All @@ -437,7 +437,7 @@ void PABotBase::process_command_finished(BotBaseMessage message){
#endif

if (m_pending_commands.empty()){
m_sniffer->log(
m_logger.log(
"Unexpected command finished message: seqnum = " + std::to_string(seqnum) +
", command_seqnum = " + std::to_string(command_seqnum)
);
Expand All @@ -447,7 +447,7 @@ void PABotBase::process_command_finished(BotBaseMessage message){
uint64_t full_seqnum = infer_full_seqnum(m_pending_commands, command_seqnum);
auto iter = m_pending_commands.find(full_seqnum);
if (iter == m_pending_commands.end()){
m_sniffer->log(
m_logger.log(
"Unexpected command finished message: seqnum = " + std::to_string(seqnum) +
", command_seqnum = " + std::to_string(command_seqnum)
);
Expand All @@ -466,7 +466,7 @@ void PABotBase::process_command_finished(BotBaseMessage message){
m_cv.notify_all();
return;
case AckState::FINISHED:
m_sniffer->log("Duplicate command finish: seqnum = " + std::to_string(seqnum));
m_logger.log("Duplicate command finish: seqnum = " + std::to_string(seqnum));
return;
}
}
Expand Down Expand Up @@ -494,7 +494,7 @@ void PABotBase::on_recv_message(BotBaseMessage message){
return;
case PABB_MSG_ERROR_INVALID_TYPE:{
if (message.body.size() != sizeof(pabb_MsgInfoInvalidType)){
m_sniffer->log("Ignoring message with invalid size.");
m_logger.log("Ignoring message with invalid size.");
return;
}
const pabb_MsgInfoInvalidType* params = (const pabb_MsgInfoInvalidType*)message.body.c_str();
Expand All @@ -509,7 +509,7 @@ void PABotBase::on_recv_message(BotBaseMessage message){
}
case PABB_MSG_ERROR_MISSED_REQUEST:{
if (message.body.size() != sizeof(pabb_MsgInfoMissedRequest)){
m_sniffer->log("Ignoring message with invalid size.");
m_logger.log("Ignoring message with invalid size.");
return;
}
const pabb_MsgInfoMissedRequest* params = (const pabb_MsgInfoMissedRequest*)message.body.c_str();
Expand Down
16 changes: 8 additions & 8 deletions ClientSource/Connection/PABotBaseConnection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,16 +92,16 @@ void PABotBaseConnection::push_error_byte(ErrorBatchType type, char byte){
case ErrorBatchType::NO_ERROR_:
break;
case ErrorBatchType::ZERO_BYTES:
m_sniffer->log("Skipped " + std::to_string(m_current_error_batch.size()) + " zero byte(s).");
m_logger.log("Skipped " + std::to_string(m_current_error_batch.size()) + " zero byte(s).");
break;
case ErrorBatchType::FF_BYTES:
m_sniffer->log("Skipped " + std::to_string(m_current_error_batch.size()) + " 0xff byte(s).");
m_logger.log("Skipped " + std::to_string(m_current_error_batch.size()) + " 0xff byte(s).");
break;
case ErrorBatchType::ASCII_BYTES:
m_sniffer->log("Received possible ASCII: " + m_current_error_batch);
m_logger.log("Received possible ASCII: " + m_current_error_batch);
break;
case ErrorBatchType::OTHER:
// m_sniffer->log("Skipped " + std::to_string(m_current_error_batch.size()) + " invalid length byte(s).");
// m_logger.log("Skipped " + std::to_string(m_current_error_batch.size()) + " invalid length byte(s).");
break;
}

Expand All @@ -119,7 +119,7 @@ void PABotBaseConnection::on_recv(const void* data, size_t bytes){
uint8_t length = ~m_recv_buffer[0];

if (m_recv_buffer[0] == 0){
// m_sniffer->log("Skipping zero byte.");
// m_logger.log("Skipping zero byte.");
push_error_byte(ErrorBatchType::ZERO_BYTES, 0);
m_recv_buffer.pop_front();
continue;
Expand All @@ -130,7 +130,7 @@ void PABotBaseConnection::on_recv(const void* data, size_t bytes){
if (length == 0){
push_error_byte(ErrorBatchType::FF_BYTES, ~length);
}else{
m_sniffer->log("Message is too short: bytes = " + std::to_string(length));
m_logger.log("Message is too short: bytes = " + std::to_string(length));
push_error_byte(ErrorBatchType::OTHER, ~length);
}
m_recv_buffer.pop_front();
Expand All @@ -143,7 +143,7 @@ void PABotBaseConnection::on_recv(const void* data, size_t bytes){
// std::string text = ascii < 32
// ? ", ascii = " + std::to_string(ascii)
// : std::string(", char = ") + ascii;
// m_sniffer->log("Message is too long: bytes = " + std::to_string(length) + text);
// m_logger.log("Message is too long: bytes = " + std::to_string(length) + text);
push_error_byte(ErrorBatchType::ASCII_BYTES, ~length);
m_recv_buffer.pop_front();
continue;
Expand All @@ -170,7 +170,7 @@ void PABotBaseConnection::on_recv(const void* data, size_t bytes){
// Compare
// std::cout << checksumA << " / " << checksumE << std::endl;
if (checksumA != checksumE){
m_sniffer->log("Invalid Checksum: bytes = " + std::to_string(length));
m_logger.log("Invalid Checksum: bytes = " + std::to_string(length));
// std::cout << checksumA << " / " << checksumE << std::endl;
// log(message_to_string(message[1], &message[2], length - PABB_PROTOCOL_OVERHEAD));
m_recv_buffer.pop_front();
Expand Down