From b2437b085c8ce62d8f59b1a1de119cd3dfc3f5f4 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Wed, 2 Mar 2022 18:54:17 -0800 Subject: [PATCH] make log messages cleaner --- src/Main.cc | 31 +++++++++++++++---------------- src/Map.cc | 2 +- src/ProxyServer.cc | 4 ++-- src/ProxyShell.cc | 22 +++++++++++----------- src/Quest.cc | 10 +++++----- src/ReceiveCommands.cc | 8 ++++---- src/ReceiveSubcommands.cc | 10 ++++------ src/SendCommands.cc | 2 +- src/Server.cc | 18 +++++++++--------- src/ServerShell.cc | 30 +++++++++++++++--------------- 10 files changed, 67 insertions(+), 70 deletions(-) diff --git a/src/Main.cc b/src/Main.cc index e1b914e0..13a8667e 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -140,9 +140,9 @@ void populate_state_from_config(shared_ptr s, s->all_addresses.emplace("", s->external_address); try { - s->run_dns_server = d.at("RunDNSServer")->as_bool(); + s->dns_server_port = d.at("RunDNSServer")->as_bool(); } catch (const out_of_range&) { - s->run_dns_server = true; + s->dns_server_port = 0; } try { @@ -226,17 +226,16 @@ int main(int argc, char* argv[]) { shared_ptr state(new ServerState()); - log(INFO, "starting network subsystem"); shared_ptr base(event_base_new(), event_base_free); - log(INFO, "reading network addresses"); + log(INFO, "Reading network addresses"); state->all_addresses = get_local_addresses(); for (const auto& it : state->all_addresses) { string addr_str = string_for_address(it.second); - log(INFO, "found interface: %s = %s", it.first.c_str(), addr_str.c_str()); + log(INFO, "Found interface: %s = %s", it.first.c_str(), addr_str.c_str()); } - log(INFO, "loading configuration"); + log(INFO, "Loading configuration"); auto config_json = JSONObject::parse(load_file("system/config.json")); populate_state_from_config(state, config_json); @@ -253,7 +252,7 @@ int main(int argc, char* argv[]) { shared_ptr proxy_server; shared_ptr game_server; if (proxy_port) { - log(INFO, "starting proxy"); + log(INFO, "Starting proxy server"); sockaddr_storage proxy_destination_ss = make_sockaddr_storage( proxy_hostname, proxy_port).first; proxy_server.reset(new ProxyServer(base, proxy_destination_ss, @@ -264,27 +263,27 @@ int main(int argc, char* argv[]) { } } else { - log(INFO, "starting game server"); + log(INFO, "Starting game server"); game_server.reset(new Server(base, state)); for (const auto& it : state->port_configuration) { game_server->listen("", it.second.port, it.second.version, it.second.behavior); } - log(INFO, "loading license list"); + log(INFO, "Loading license list"); state->license_manager.reset(new LicenseManager("system/licenses.nsi")); - log(INFO, "loading battle parameters"); + log(INFO, "Loading battle parameters"); state->battle_params.reset(new BattleParamTable("system/blueburst/BattleParamEntry")); - log(INFO, "loading level table"); + log(INFO, "Loading level table"); state->level_table.reset(new LevelTable("system/blueburst/PlyLevelTbl.prs", true)); - log(INFO, "collecting quest metadata"); + log(INFO, "Collecting quest metadata"); state->quest_index.reset(new QuestIndex("system/quests")); } if (!state->username.empty()) { - log(INFO, "switching to user %s", state->username.c_str()); + log(INFO, "Switching to user %s", state->username.c_str()); drop_privileges(state->username); } @@ -295,7 +294,7 @@ int main(int argc, char* argv[]) { shared_ptr shell; if (should_run_shell) { - log(INFO, "starting interactive shell"); + log(INFO, "Starting interactive shell"); if (proxy_port) { shell.reset(new ProxyShell(base, state, proxy_server)); } else { @@ -303,9 +302,9 @@ int main(int argc, char* argv[]) { } } - log(INFO, "ready"); + log(INFO, "Ready"); event_base_dispatch(base.get()); - log(INFO, "normal shutdown"); + log(INFO, "Normal shutdown"); return 0; } diff --git a/src/Map.cc b/src/Map.cc index 9a6331ce..efbd363c 100644 --- a/src/Map.cc +++ b/src/Map.cc @@ -420,7 +420,7 @@ static vector parse_map(uint8_t episode, uint8_t difficulty, break; default: enemies[num_enemies].experience = 0xFFFFFFFF; - log(WARNING, "unknown enemy type %08" PRIX32 " %08" PRIX32, map[y].base, + log(WARNING, "Unknown enemy type %08" PRIX32 " %08" PRIX32, map[y].base, map[y].skin); break; } diff --git a/src/ProxyServer.cc b/src/ProxyServer.cc index d2950e44..7544dad7 100644 --- a/src/ProxyServer.cc +++ b/src/ProxyServer.cc @@ -112,11 +112,11 @@ void ProxyServer::on_listen_accept(struct evconnlistener*, evutil_socket_t fd, struct sockaddr*, int) { if (this->client_bev.get()) { - log(WARNING, "ignoring client connection because client already exists"); + log(WARNING, "Ignoring client connection because client already exists"); close(fd); return; } else { - log(INFO, "client connected"); + log(INFO, "Client connected"); } this->client_bev.reset(bufferevent_socket_new(this->base.get(), fd, diff --git a/src/ProxyShell.cc b/src/ProxyShell.cc index 0de56b6a..4f10964a 100644 --- a/src/ProxyShell.cc +++ b/src/ProxyShell.cc @@ -26,23 +26,23 @@ void ProxyShell::execute_command(const string& command) { } else if (command_name == "help") { fprintf(stderr, "\ -commands:\n\ +Commands:\n\ help\n\ - you\'re reading it now\n\ + You\'re reading it now.\n\ exit (or ctrl+d)\n\ - shut down the proxy\n\ + Shut down the proxy.\n\ sc \n\ - send a command to the client\n\ + Send a command to the client.\n\ ss \n\ - send a command to the server\n\ + Send a command to the server.\n\ chat \n\ - send a chat message to the server\n\ + Send a chat message to the server.\n\ dchat \n\ - send a chat message to the server with arbitrary data in it\n\ + Send a chat message to the server with arbitrary data in it.\n\ marker \n\ - send a lobby marker message to the server\n\ + Send a lobby marker message to the server.\n\ event \n\ - send a lobby event update to yourself\n\ + Send a lobby event update to yourself.\n\ "); } else if ((command_name == "sc") || (command_name == "ss")) { @@ -81,7 +81,7 @@ commands:\n\ uint16_t* size_field = reinterpret_cast(data.data() + 2); *size_field = data.size(); - log(INFO, "client (from proxy):"); + log(INFO, "Client (from proxy):"); print_data(stderr, data); this->proxy_server->send_to_server(data); @@ -89,7 +89,7 @@ commands:\n\ string data("\x89\x00\x04\x00", 4); data[1] = stod(command_args); - log(INFO, "client (from proxy):"); + log(INFO, "Client (from proxy):"); print_data(stderr, data); this->proxy_server->send_to_server(data); diff --git a/src/Quest.cc b/src/Quest.cc index 90fa4fd1..9748ac9d 100644 --- a/src/Quest.cc +++ b/src/Quest.cc @@ -422,18 +422,18 @@ QuestIndex::QuestIndex(const char* directory) : directory(directory) { } if (ends_with(filename, ".bin") || ends_with(filename, ".bin.gci")) { - // try { + try { shared_ptr q(new Quest(full_path)); this->version_id_to_quest.emplace(make_pair(q->version, q->quest_id), q); this->version_name_to_quest.emplace(make_pair(q->version, q->name), q); string ascii_name = encode_sjis(q->name); - log(INFO, "indexed quest %s (%s-%" PRId64 ", %s, episode=%hhu, joinable=%s, dcv1=%s)", + log(INFO, "Indexed quest %s (%s-%" PRId64 ", %s, episode=%hhu, joinable=%s, dcv1=%s)", ascii_name.c_str(), name_for_version(q->version), q->quest_id, name_for_category(q->category), q->episode, q->joinable ? "true" : "false", q->is_dcv1 ? "true" : "false"); - // } catch (const exception& e) { - // log(WARNING, "failed to parse quest file %s (%s)", filename.c_str(), e.what()); - // } + } catch (const exception& e) { + log(WARNING, "Failed to parse quest file %s (%s)", filename.c_str(), e.what()); + } } } } diff --git a/src/ReceiveCommands.cc b/src/ReceiveCommands.cc index a236e0f8..d9f22ae7 100644 --- a/src/ReceiveCommands.cc +++ b/src/ReceiveCommands.cc @@ -68,7 +68,7 @@ void process_connect(std::shared_ptr s, std::shared_ptr c) break; default: - log(ERROR, "unimplemented behavior: %" PRId64, + log(ERROR, "Unimplemented behavior: %" PRId64, static_cast(c->server_behavior)); } } @@ -525,7 +525,7 @@ void process_ep3_server_data_request(shared_ptr s, shared_ptr, shared_ptr, void process_unimplemented_command(shared_ptr, shared_ptr, uint16_t command, uint32_t flag, uint16_t size, const void*) { - log(WARNING, "unknown command: size=%04X command=%04X flag=%08X\n", + log(WARNING, "Unknown command: size=%04X command=%04X flag=%08X\n", size, command, flag); throw invalid_argument("unimplemented command"); } @@ -2213,7 +2213,7 @@ void process_command(shared_ptr s, shared_ptr c, uint16_t command, uint32_t flag, uint16_t size, const void* data) { // TODO: this is slow; make it better somehow { - log(INFO, "received version=%d size=%04hX command=%04hX flag=%08X", + log(INFO, "Received version=%d size=%04hX command=%04hX flag=%08X", static_cast(c->version), size, command, flag); string data_to_print; diff --git a/src/ReceiveSubcommands.cc b/src/ReceiveSubcommands.cc index 5d8d6465..bb407579 100644 --- a/src/ReceiveSubcommands.cc +++ b/src/ReceiveSubcommands.cc @@ -869,28 +869,26 @@ static void process_subcommand_forward_check_size_game(shared_ptr, forward_subcommand(l, c, command, flag, p, count); } -// used for invalid commands. normally, clients should be disconnected - to restore this behavior, change the return value back to SUBCOMMAND_ERROR_INVALID_COMMAND. static void process_subcommand_invalid(shared_ptr, shared_ptr, shared_ptr, uint8_t command, uint8_t flag, const PSOSubcommand* p, size_t count) { if (command_is_private(command)) { - log(WARNING, "invalid subcommand: %02hhX (%zu of them) (private to player %hhu)", + log(WARNING, "Invalid subcommand: %02hhX (%zu of them) (private to player %hhu)", p->byte[0], count, flag); } else { - log(WARNING, "invalid subcommand: %02hhX (%zu of them) (public)", + log(WARNING, "Invalid subcommand: %02hhX (%zu of them) (public)", p->byte[0], count); } } -// used when an error occurs (unknown commands, etc). normally, clients should be disconnected - to restore this behavior, change the return value back to SUBCOMMAND_ERROR_INVALID_COMMAND. static void process_subcommand_unimplemented(shared_ptr, shared_ptr, shared_ptr, uint8_t command, uint8_t flag, const PSOSubcommand* p, size_t count) { if (command_is_private(command)) { - log(WARNING, "unknown subcommand: %02hhX (%zu of them) (private to player %hhu)", + log(WARNING, "Unknown subcommand: %02hhX (%zu of them) (private to player %hhu)", p->byte[0], count, flag); } else { - log(WARNING, "unknown subcommand: %02hhX (%zu of them) (public)", + log(WARNING, "Unknown subcommand: %02hhX (%zu of them) (public)", p->byte[0], count); } } diff --git a/src/SendCommands.cc b/src/SendCommands.cc index fe567872..bb911f81 100644 --- a/src/SendCommands.cc +++ b/src/SendCommands.cc @@ -74,7 +74,7 @@ void send_command(shared_ptr c, uint16_t command, uint32_t flag, throw logic_error("unimplemented game version in send_command"); } - log(INFO, "sending command"); + log(INFO, "Sending command"); print_data(stderr, send_data.data(), send_data.size()); c->send(move(send_data)); diff --git a/src/Server.cc b/src/Server.cc index f9557638..6ec0a8b0 100644 --- a/src/Server.cc +++ b/src/Server.cc @@ -92,13 +92,13 @@ void Server::on_listen_accept(struct evconnlistener* listener, try { listening_socket = &this->listening_sockets.at(listen_fd); } catch (const out_of_range& e) { - log(WARNING, "[Server] can\'t determine version for socket %d; disconnecting client", + log(WARNING, "[Server] Can\'t determine version for socket %d; disconnecting client", listen_fd); close(fd); return; } - log(INFO, "[Server] client connected via fd %d", listen_fd); + log(INFO, "[Server] Client connected via fd %d", listen_fd); struct bufferevent *bev = bufferevent_socket_new(this->base.get(), fd, BEV_OPT_CLOSE_ON_FREE | BEV_OPT_DEFER_CALLBACKS); @@ -115,7 +115,7 @@ void Server::on_listen_accept(struct evconnlistener* listener, void Server::on_listen_error(struct evconnlistener* listener) { int err = EVUTIL_SOCKET_ERROR(); - log(ERROR, "[Server] failure on listening socket %d: %d (%s)", + log(ERROR, "[Server] Failure on listening socket %d: %d (%s)", evconnlistener_get_fd(listener), err, evutil_socket_error_to_string(err)); event_base_loopexit(this->base.get(), NULL); } @@ -125,7 +125,7 @@ void Server::on_client_input(struct bufferevent* bev) { try { c = this->bev_to_client.at(bev); } catch (const out_of_range& e) { - log(WARNING, "[Server] received message from client with no configuration"); + log(WARNING, "[Server] Received message from client with no configuration"); // ignore all the data // TODO: we probably should disconnect them or something @@ -155,7 +155,7 @@ void Server::on_disconnecting_client_output(struct bufferevent* bev) { void Server::on_client_error(struct bufferevent* bev, short events) { if (events & BEV_EVENT_ERROR) { int err = EVUTIL_SOCKET_ERROR(); - log(WARNING, "[Server] client caused %d (%s)", err, + log(WARNING, "[Server] Client caused error %d (%s)", err, evutil_socket_error_to_string(err)); } if (events & (BEV_EVENT_EOF | BEV_EVENT_ERROR)) { @@ -167,7 +167,7 @@ void Server::on_disconnecting_client_error(struct bufferevent* bev, short events) { if (events & BEV_EVENT_ERROR) { int err = EVUTIL_SOCKET_ERROR(); - log(WARNING, "[Server] disconnecting client caused %d (%s)", err, + log(WARNING, "[Server] Disconnecting client caused error %d (%s)", err, evutil_socket_error_to_string(err)); } if (events & (BEV_EVENT_EOF | BEV_EVENT_ERROR)) { @@ -213,7 +213,7 @@ void Server::receive_and_process_commands(shared_ptr c) { process_command(this->state, c, header->command(c->version), header->flag(c->version), size - header_size, data.data()); } catch (const exception& e) { - log(INFO, "[Server] error in client stream: %s", e.what()); + log(INFO, "[Server] Error in client stream: %s", e.what()); c->should_disconnect = true; return; } @@ -233,7 +233,7 @@ Server::Server(shared_ptr base, void Server::listen(const string& socket_path, GameVersion version, ServerBehavior behavior) { int fd = ::listen(socket_path, 0, SOMAXCONN); - log(INFO, "[Server] listening on unix socket %s (version %s) on fd %d", + log(INFO, "[Server] Listening on unix socket %s (version %s) on fd %d", socket_path.c_str(), name_for_version(version), fd); this->add_socket(fd, version, behavior); } @@ -242,7 +242,7 @@ void Server::listen(const string& addr, int port, GameVersion version, ServerBehavior behavior) { int fd = ::listen(addr, port, SOMAXCONN); string netloc_str = render_netloc(addr, port); - log(INFO, "[Server] listening on tcp interface %s (version %s) on fd %d", + log(INFO, "[Server] Listening on tcp interface %s (version %s) on fd %d", netloc_str.c_str(), name_for_version(version), fd); this->add_socket(fd, version, behavior); } diff --git a/src/ServerShell.cc b/src/ServerShell.cc index 2d33698e..913730a5 100644 --- a/src/ServerShell.cc +++ b/src/ServerShell.cc @@ -34,32 +34,32 @@ void ServerShell::execute_command(const string& command) { } else if (command_name == "help") { fprintf(stderr, "\ -commands:\n\ +Commands:\n\ help\n\ - you\'re reading it now\n\ + You\'re reading it now.\n\ exit (or ctrl+d)\n\ - shut down the server\n\ + Shut down the server.\n\ reload ...\n\ - reload data. can be licenses, battle-params, level-table, or quests.\n\ + Reload data. can be licenses, battle-params, level-table, or quests.\n\ add-license \n\ - add a license to the server. is some subset of the following:\n\ - username= (bb username)\n\ - bb-password= (bb password)\n\ - gc-password= (gc password)\n\ - access-key= (gc/pc access key)\n\ - serial= (gc/pc serial number; required for all licenses)\n\ + Add a license to the server. is some subset of the following:\n\ + username= (BB username)\n\ + bb-password= (BB password)\n\ + gc-password= (GC password)\n\ + access-key= (GC/PC access key)\n\ + serial= (GC/PC serial number; required for all licenses)\n\ privileges= (can be normal, mod, admin, root, or numeric)\n\ delete-license \n\ - delete a license from the server\n\ + Delete a license from the server.\n\ list-licenses\n\ - list all licenses registered on the server\n\ + List all licenses registered on the server.\n\ set-allow-unregistered-users \n\ - enable or disable allowing unregistered users on the server. disabling this\n\ + Enable or disable allowing unregistered users on the server. Disabling this\n\ does not disconnect unregistered users who are already connected.\n\ set-event \n\ - set the event in all lobbies\n\ + Set the event in all lobbies.\n\ announce \n\ - send an announcement message to all players\n\ + Send an announcement message to all players.\n\ "); } else if (command_name == "reload") {