fix log settings not applying to command data

This commit is contained in:
Martin Michelsen
2023-09-22 17:45:31 -07:00
parent de9d52b352
commit 0df670893f
4 changed files with 27 additions and 26 deletions
+14 -15
View File
@@ -149,7 +149,7 @@ void Channel::disconnect() {
this->crypt_out.reset();
}
Channel::Message Channel::recv(bool print_contents) {
Channel::Message Channel::recv() {
struct evbuffer* buf = bufferevent_get_input(this->bev.get());
size_t header_size = (this->version == GameVersion::BB) ? 8 : 4;
@@ -204,7 +204,7 @@ Channel::Message Channel::recv(bool print_contents) {
}
command_data.resize(command_logical_size - header_size);
if (print_contents && (this->terminal_recv_color != TerminalFormat::END)) {
if (command_data_log.should_log(LogLevel::INFO) && (this->terminal_recv_color != TerminalFormat::END)) {
if (use_terminal_colors && this->terminal_recv_color != TerminalFormat::NORMAL) {
print_color_escape(stderr, this->terminal_recv_color, TerminalFormat::BOLD, TerminalFormat::END);
}
@@ -241,11 +241,11 @@ Channel::Message Channel::recv(bool print_contents) {
};
}
void Channel::send(uint16_t cmd, uint32_t flag, bool print_contents) {
this->send(cmd, flag, nullptr, 0, print_contents);
void Channel::send(uint16_t cmd, uint32_t flag, bool silent) {
this->send(cmd, flag, nullptr, 0, silent);
}
void Channel::send(uint16_t cmd, uint32_t flag, const std::vector<std::pair<const void*, size_t>> blocks, bool print_contents) {
void Channel::send(uint16_t cmd, uint32_t flag, const std::vector<std::pair<const void*, size_t>> blocks, bool silent) {
if (!this->connected()) {
channel_exceptions_log.warning("Attempted to send command on closed channel; dropping data");
return;
@@ -331,7 +331,7 @@ void Channel::send(uint16_t cmd, uint32_t flag, const std::vector<std::pair<cons
}
send_data.resize(send_data_size, '\0');
if (print_contents && (this->terminal_send_color != TerminalFormat::END)) {
if (!silent && (command_data_log.should_log(LogLevel::INFO)) && (this->terminal_send_color != TerminalFormat::END)) {
if (use_terminal_colors && this->terminal_send_color != TerminalFormat::NORMAL) {
print_color_escape(stderr, TerminalFormat::FG_YELLOW, TerminalFormat::BOLD, TerminalFormat::END);
}
@@ -356,16 +356,15 @@ void Channel::send(uint16_t cmd, uint32_t flag, const std::vector<std::pair<cons
evbuffer_add(buf, send_data.data(), send_data.size());
}
void Channel::send(
uint16_t cmd, uint32_t flag, const void* data, size_t size, bool print_contents) {
this->send(cmd, flag, {make_pair(data, size)}, print_contents);
void Channel::send(uint16_t cmd, uint32_t flag, const void* data, size_t size, bool silent) {
this->send(cmd, flag, {make_pair(data, size)}, silent);
}
void Channel::send(uint16_t cmd, uint32_t flag, const string& data, bool print_contents) {
this->send(cmd, flag, data.data(), data.size(), print_contents);
void Channel::send(uint16_t cmd, uint32_t flag, const string& data, bool silent) {
this->send(cmd, flag, data.data(), data.size(), silent);
}
void Channel::send(const void* data, size_t size, bool print_contents) {
void Channel::send(const void* data, size_t size, bool silent) {
size_t header_size = (this->version == GameVersion::BB) ? 8 : 4;
const auto* header = reinterpret_cast<const PSOCommandHeader*>(data);
this->send(
@@ -373,11 +372,11 @@ void Channel::send(const void* data, size_t size, bool print_contents) {
header->flag(this->version),
reinterpret_cast<const uint8_t*>(data) + header_size,
size - header_size,
print_contents);
silent);
}
void Channel::send(const string& data, bool print_contents) {
return this->send(data.data(), data.size(), print_contents);
void Channel::send(const string& data, bool silent) {
return this->send(data.data(), data.size(), silent);
}
void Channel::dispatch_on_input(struct bufferevent*, void* ctx) {
+10 -9
View File
@@ -75,22 +75,23 @@ struct Channel {
void disconnect();
// Receives a message. Throws std::out_of_range if no messages are available.
Message recv(bool print_contents = true);
Message recv();
// Sends a message with an automatically-constructed header.
void send(uint16_t cmd, uint32_t flag = 0, bool print_contents = true);
void send(uint16_t cmd, uint32_t flag, const void* data, size_t size, bool print_contents = true);
void send(uint16_t cmd, uint32_t flag, const std::vector<std::pair<const void*, size_t>> blocks, bool print_contents = true);
void send(uint16_t cmd, uint32_t flag, const std::string& data, bool print_contents = true);
void send(uint16_t cmd, uint32_t flag = 0, bool silent = false);
void send(uint16_t cmd, uint32_t flag, const void* data, size_t size, bool silent = false);
void send(uint16_t cmd, uint32_t flag, const std::vector<std::pair<const void*, size_t>> blocks, bool silent = false);
void send(uint16_t cmd, uint32_t flag, const std::string& data, bool silent = false);
template <typename CmdT>
void send(uint16_t cmd, uint32_t flag, const CmdT& data) {
this->send(cmd, flag, &data, sizeof(data));
requires(!std::is_pointer_v<CmdT>)
void send(uint16_t cmd, uint32_t flag, const CmdT& data, bool silent = false) {
this->send(cmd, flag, &data, sizeof(data), silent);
}
// Sends a message with a pre-existing header (as the first few bytes in the
// data)
void send(const void* data = nullptr, size_t size = 0, bool print_contents = true);
void send(const std::string& data, bool print_contents = true);
void send(const void* data, size_t size, bool silent = false);
void send(const std::string& data, bool silent = false);
private:
static void dispatch_on_input(struct bufferevent*, void* ctx);
+2 -1
View File
@@ -1878,7 +1878,8 @@ bool CardSpecial::execute_effect(
case ConditionType::UNIT_BLOW:
if (unknown_p7 & 1) {
int16_t count = clamp<int16_t>(this->count_action_cards_with_condition_for_all_current_attacks(ConditionType::UNIT_BLOW, 0xFFFF), -99, 99);
card->action_chain.chain.ap_effect_bonus = clamp<int16_t>(card->action_chain.chain.ap_effect_bonus + count * positive_expr_value, -99, 99);
card->action_chain.chain.ap_effect_bonus = clamp<int16_t>(
card->action_chain.chain.ap_effect_bonus + count * positive_expr_value, -99, 99);
}
return false;
+1 -1
View File
@@ -74,7 +74,7 @@ static void forward_command(shared_ptr<ProxyServer::LinkedSession> ses, bool to_
if (!ch.connected()) {
proxy_server_log.warning("No endpoint is present; dropping command");
} else {
ch.send(command, flag, data, print_contents);
ch.send(command, flag, data, !print_contents);
}
}