diff options
| author | 2022-07-25 19:16:59 +0200 | |
|---|---|---|
| committer | 2022-07-25 21:59:31 +0200 | |
| commit | a41baaa181f30229d3552caa69135be978c1ddb5 (patch) | |
| tree | 999411f1ca76390654d1034c6d0bd2c47c3f101c /src/network/room.cpp | |
| parent | network, yuzu: Make copyright headers SPDX-compliant (diff) | |
| download | yuzu-a41baaa181f30229d3552caa69135be978c1ddb5.tar.gz yuzu-a41baaa181f30229d3552caa69135be978c1ddb5.tar.xz yuzu-a41baaa181f30229d3552caa69135be978c1ddb5.zip | |
network: Address review comments
Diffstat (limited to '')
| -rw-r--r-- | src/network/room.cpp | 142 |
1 files changed, 71 insertions, 71 deletions
diff --git a/src/network/room.cpp b/src/network/room.cpp index d5f0bb723..3fc3a0383 100644 --- a/src/network/room.cpp +++ b/src/network/room.cpp | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | #include <mutex> | 7 | #include <mutex> |
| 8 | #include <random> | 8 | #include <random> |
| 9 | #include <regex> | 9 | #include <regex> |
| 10 | #include <shared_mutex> | ||
| 10 | #include <sstream> | 11 | #include <sstream> |
| 11 | #include <thread> | 12 | #include <thread> |
| 12 | #include "common/logging/log.h" | 13 | #include "common/logging/log.h" |
| @@ -43,9 +44,8 @@ public: | |||
| 43 | ENetPeer* peer; ///< The remote peer. | 44 | ENetPeer* peer; ///< The remote peer. |
| 44 | }; | 45 | }; |
| 45 | using MemberList = std::vector<Member>; | 46 | using MemberList = std::vector<Member>; |
| 46 | MemberList members; ///< Information about the members of this room | 47 | MemberList members; ///< Information about the members of this room |
| 47 | mutable std::mutex member_mutex; ///< Mutex for locking the members list | 48 | mutable std::shared_mutex member_mutex; ///< Mutex for locking the members list |
| 48 | /// This should be a std::shared_mutex as soon as C++17 is supported | ||
| 49 | 49 | ||
| 50 | UsernameBanList username_ban_list; ///< List of banned usernames | 50 | UsernameBanList username_ban_list; ///< List of banned usernames |
| 51 | IPBanList ip_ban_list; ///< List of banned IP addresses | 51 | IPBanList ip_ban_list; ///< List of banned IP addresses |
| @@ -311,22 +311,22 @@ void Room::RoomImpl::HandleJoinRequest(const ENetEvent* event) { | |||
| 311 | packet.Append(event->packet->data, event->packet->dataLength); | 311 | packet.Append(event->packet->data, event->packet->dataLength); |
| 312 | packet.IgnoreBytes(sizeof(u8)); // Ignore the message type | 312 | packet.IgnoreBytes(sizeof(u8)); // Ignore the message type |
| 313 | std::string nickname; | 313 | std::string nickname; |
| 314 | packet >> nickname; | 314 | packet.Read(nickname); |
| 315 | 315 | ||
| 316 | std::string console_id_hash; | 316 | std::string console_id_hash; |
| 317 | packet >> console_id_hash; | 317 | packet.Read(console_id_hash); |
| 318 | 318 | ||
| 319 | MacAddress preferred_mac; | 319 | MacAddress preferred_mac; |
| 320 | packet >> preferred_mac; | 320 | packet.Read(preferred_mac); |
| 321 | 321 | ||
| 322 | u32 client_version; | 322 | u32 client_version; |
| 323 | packet >> client_version; | 323 | packet.Read(client_version); |
| 324 | 324 | ||
| 325 | std::string pass; | 325 | std::string pass; |
| 326 | packet >> pass; | 326 | packet.Read(pass); |
| 327 | 327 | ||
| 328 | std::string token; | 328 | std::string token; |
| 329 | packet >> token; | 329 | packet.Read(token); |
| 330 | 330 | ||
| 331 | if (pass != password) { | 331 | if (pass != password) { |
| 332 | SendWrongPassword(event->peer); | 332 | SendWrongPassword(event->peer); |
| @@ -387,9 +387,9 @@ void Room::RoomImpl::HandleJoinRequest(const ENetEvent* event) { | |||
| 387 | } | 387 | } |
| 388 | 388 | ||
| 389 | // Check IP ban | 389 | // Check IP ban |
| 390 | char ip_raw[256]; | 390 | std::array<char, 256> ip_raw{}; |
| 391 | enet_address_get_host_ip(&event->peer->address, ip_raw, sizeof(ip_raw) - 1); | 391 | enet_address_get_host_ip(&event->peer->address, ip_raw.data(), sizeof(ip_raw) - 1); |
| 392 | ip = ip_raw; | 392 | ip = ip_raw.data(); |
| 393 | 393 | ||
| 394 | if (std::find(ip_ban_list.begin(), ip_ban_list.end(), ip) != ip_ban_list.end()) { | 394 | if (std::find(ip_ban_list.begin(), ip_ban_list.end(), ip) != ip_ban_list.end()) { |
| 395 | SendUserBanned(event->peer); | 395 | SendUserBanned(event->peer); |
| @@ -425,7 +425,7 @@ void Room::RoomImpl::HandleModKickPacket(const ENetEvent* event) { | |||
| 425 | packet.IgnoreBytes(sizeof(u8)); // Ignore the message type | 425 | packet.IgnoreBytes(sizeof(u8)); // Ignore the message type |
| 426 | 426 | ||
| 427 | std::string nickname; | 427 | std::string nickname; |
| 428 | packet >> nickname; | 428 | packet.Read(nickname); |
| 429 | 429 | ||
| 430 | std::string username, ip; | 430 | std::string username, ip; |
| 431 | { | 431 | { |
| @@ -443,9 +443,9 @@ void Room::RoomImpl::HandleModKickPacket(const ENetEvent* event) { | |||
| 443 | 443 | ||
| 444 | username = target_member->user_data.username; | 444 | username = target_member->user_data.username; |
| 445 | 445 | ||
| 446 | char ip_raw[256]; | 446 | std::array<char, 256> ip_raw{}; |
| 447 | enet_address_get_host_ip(&target_member->peer->address, ip_raw, sizeof(ip_raw) - 1); | 447 | enet_address_get_host_ip(&target_member->peer->address, ip_raw.data(), sizeof(ip_raw) - 1); |
| 448 | ip = ip_raw; | 448 | ip = ip_raw.data(); |
| 449 | 449 | ||
| 450 | enet_peer_disconnect(target_member->peer, 0); | 450 | enet_peer_disconnect(target_member->peer, 0); |
| 451 | members.erase(target_member); | 451 | members.erase(target_member); |
| @@ -467,7 +467,7 @@ void Room::RoomImpl::HandleModBanPacket(const ENetEvent* event) { | |||
| 467 | packet.IgnoreBytes(sizeof(u8)); // Ignore the message type | 467 | packet.IgnoreBytes(sizeof(u8)); // Ignore the message type |
| 468 | 468 | ||
| 469 | std::string nickname; | 469 | std::string nickname; |
| 470 | packet >> nickname; | 470 | packet.Read(nickname); |
| 471 | 471 | ||
| 472 | std::string username, ip; | 472 | std::string username, ip; |
| 473 | { | 473 | { |
| @@ -486,9 +486,9 @@ void Room::RoomImpl::HandleModBanPacket(const ENetEvent* event) { | |||
| 486 | nickname = target_member->nickname; | 486 | nickname = target_member->nickname; |
| 487 | username = target_member->user_data.username; | 487 | username = target_member->user_data.username; |
| 488 | 488 | ||
| 489 | char ip_raw[256]; | 489 | std::array<char, 256> ip_raw{}; |
| 490 | enet_address_get_host_ip(&target_member->peer->address, ip_raw, sizeof(ip_raw) - 1); | 490 | enet_address_get_host_ip(&target_member->peer->address, ip_raw.data(), sizeof(ip_raw) - 1); |
| 491 | ip = ip_raw; | 491 | ip = ip_raw.data(); |
| 492 | 492 | ||
| 493 | enet_peer_disconnect(target_member->peer, 0); | 493 | enet_peer_disconnect(target_member->peer, 0); |
| 494 | members.erase(target_member); | 494 | members.erase(target_member); |
| @@ -528,7 +528,7 @@ void Room::RoomImpl::HandleModUnbanPacket(const ENetEvent* event) { | |||
| 528 | packet.IgnoreBytes(sizeof(u8)); // Ignore the message type | 528 | packet.IgnoreBytes(sizeof(u8)); // Ignore the message type |
| 529 | 529 | ||
| 530 | std::string address; | 530 | std::string address; |
| 531 | packet >> address; | 531 | packet.Read(address); |
| 532 | 532 | ||
| 533 | bool unbanned = false; | 533 | bool unbanned = false; |
| 534 | { | 534 | { |
| @@ -613,7 +613,7 @@ bool Room::RoomImpl::HasModPermission(const ENetPeer* client) const { | |||
| 613 | 613 | ||
| 614 | void Room::RoomImpl::SendNameCollision(ENetPeer* client) { | 614 | void Room::RoomImpl::SendNameCollision(ENetPeer* client) { |
| 615 | Packet packet; | 615 | Packet packet; |
| 616 | packet << static_cast<u8>(IdNameCollision); | 616 | packet.Write(static_cast<u8>(IdNameCollision)); |
| 617 | 617 | ||
| 618 | ENetPacket* enet_packet = | 618 | ENetPacket* enet_packet = |
| 619 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 619 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -623,7 +623,7 @@ void Room::RoomImpl::SendNameCollision(ENetPeer* client) { | |||
| 623 | 623 | ||
| 624 | void Room::RoomImpl::SendMacCollision(ENetPeer* client) { | 624 | void Room::RoomImpl::SendMacCollision(ENetPeer* client) { |
| 625 | Packet packet; | 625 | Packet packet; |
| 626 | packet << static_cast<u8>(IdMacCollision); | 626 | packet.Write(static_cast<u8>(IdMacCollision)); |
| 627 | 627 | ||
| 628 | ENetPacket* enet_packet = | 628 | ENetPacket* enet_packet = |
| 629 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 629 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -633,7 +633,7 @@ void Room::RoomImpl::SendMacCollision(ENetPeer* client) { | |||
| 633 | 633 | ||
| 634 | void Room::RoomImpl::SendConsoleIdCollision(ENetPeer* client) { | 634 | void Room::RoomImpl::SendConsoleIdCollision(ENetPeer* client) { |
| 635 | Packet packet; | 635 | Packet packet; |
| 636 | packet << static_cast<u8>(IdConsoleIdCollision); | 636 | packet.Write(static_cast<u8>(IdConsoleIdCollision)); |
| 637 | 637 | ||
| 638 | ENetPacket* enet_packet = | 638 | ENetPacket* enet_packet = |
| 639 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 639 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -643,7 +643,7 @@ void Room::RoomImpl::SendConsoleIdCollision(ENetPeer* client) { | |||
| 643 | 643 | ||
| 644 | void Room::RoomImpl::SendWrongPassword(ENetPeer* client) { | 644 | void Room::RoomImpl::SendWrongPassword(ENetPeer* client) { |
| 645 | Packet packet; | 645 | Packet packet; |
| 646 | packet << static_cast<u8>(IdWrongPassword); | 646 | packet.Write(static_cast<u8>(IdWrongPassword)); |
| 647 | 647 | ||
| 648 | ENetPacket* enet_packet = | 648 | ENetPacket* enet_packet = |
| 649 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 649 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -653,7 +653,7 @@ void Room::RoomImpl::SendWrongPassword(ENetPeer* client) { | |||
| 653 | 653 | ||
| 654 | void Room::RoomImpl::SendRoomIsFull(ENetPeer* client) { | 654 | void Room::RoomImpl::SendRoomIsFull(ENetPeer* client) { |
| 655 | Packet packet; | 655 | Packet packet; |
| 656 | packet << static_cast<u8>(IdRoomIsFull); | 656 | packet.Write(static_cast<u8>(IdRoomIsFull)); |
| 657 | 657 | ||
| 658 | ENetPacket* enet_packet = | 658 | ENetPacket* enet_packet = |
| 659 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 659 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -663,8 +663,8 @@ void Room::RoomImpl::SendRoomIsFull(ENetPeer* client) { | |||
| 663 | 663 | ||
| 664 | void Room::RoomImpl::SendVersionMismatch(ENetPeer* client) { | 664 | void Room::RoomImpl::SendVersionMismatch(ENetPeer* client) { |
| 665 | Packet packet; | 665 | Packet packet; |
| 666 | packet << static_cast<u8>(IdVersionMismatch); | 666 | packet.Write(static_cast<u8>(IdVersionMismatch)); |
| 667 | packet << network_version; | 667 | packet.Write(network_version); |
| 668 | 668 | ||
| 669 | ENetPacket* enet_packet = | 669 | ENetPacket* enet_packet = |
| 670 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 670 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -674,8 +674,8 @@ void Room::RoomImpl::SendVersionMismatch(ENetPeer* client) { | |||
| 674 | 674 | ||
| 675 | void Room::RoomImpl::SendJoinSuccess(ENetPeer* client, MacAddress mac_address) { | 675 | void Room::RoomImpl::SendJoinSuccess(ENetPeer* client, MacAddress mac_address) { |
| 676 | Packet packet; | 676 | Packet packet; |
| 677 | packet << static_cast<u8>(IdJoinSuccess); | 677 | packet.Write(static_cast<u8>(IdJoinSuccess)); |
| 678 | packet << mac_address; | 678 | packet.Write(mac_address); |
| 679 | ENetPacket* enet_packet = | 679 | ENetPacket* enet_packet = |
| 680 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 680 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| 681 | enet_peer_send(client, 0, enet_packet); | 681 | enet_peer_send(client, 0, enet_packet); |
| @@ -684,8 +684,8 @@ void Room::RoomImpl::SendJoinSuccess(ENetPeer* client, MacAddress mac_address) { | |||
| 684 | 684 | ||
| 685 | void Room::RoomImpl::SendJoinSuccessAsMod(ENetPeer* client, MacAddress mac_address) { | 685 | void Room::RoomImpl::SendJoinSuccessAsMod(ENetPeer* client, MacAddress mac_address) { |
| 686 | Packet packet; | 686 | Packet packet; |
| 687 | packet << static_cast<u8>(IdJoinSuccessAsMod); | 687 | packet.Write(static_cast<u8>(IdJoinSuccessAsMod)); |
| 688 | packet << mac_address; | 688 | packet.Write(mac_address); |
| 689 | ENetPacket* enet_packet = | 689 | ENetPacket* enet_packet = |
| 690 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 690 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| 691 | enet_peer_send(client, 0, enet_packet); | 691 | enet_peer_send(client, 0, enet_packet); |
| @@ -694,7 +694,7 @@ void Room::RoomImpl::SendJoinSuccessAsMod(ENetPeer* client, MacAddress mac_addre | |||
| 694 | 694 | ||
| 695 | void Room::RoomImpl::SendUserKicked(ENetPeer* client) { | 695 | void Room::RoomImpl::SendUserKicked(ENetPeer* client) { |
| 696 | Packet packet; | 696 | Packet packet; |
| 697 | packet << static_cast<u8>(IdHostKicked); | 697 | packet.Write(static_cast<u8>(IdHostKicked)); |
| 698 | 698 | ||
| 699 | ENetPacket* enet_packet = | 699 | ENetPacket* enet_packet = |
| 700 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 700 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -704,7 +704,7 @@ void Room::RoomImpl::SendUserKicked(ENetPeer* client) { | |||
| 704 | 704 | ||
| 705 | void Room::RoomImpl::SendUserBanned(ENetPeer* client) { | 705 | void Room::RoomImpl::SendUserBanned(ENetPeer* client) { |
| 706 | Packet packet; | 706 | Packet packet; |
| 707 | packet << static_cast<u8>(IdHostBanned); | 707 | packet.Write(static_cast<u8>(IdHostBanned)); |
| 708 | 708 | ||
| 709 | ENetPacket* enet_packet = | 709 | ENetPacket* enet_packet = |
| 710 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 710 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -714,7 +714,7 @@ void Room::RoomImpl::SendUserBanned(ENetPeer* client) { | |||
| 714 | 714 | ||
| 715 | void Room::RoomImpl::SendModPermissionDenied(ENetPeer* client) { | 715 | void Room::RoomImpl::SendModPermissionDenied(ENetPeer* client) { |
| 716 | Packet packet; | 716 | Packet packet; |
| 717 | packet << static_cast<u8>(IdModPermissionDenied); | 717 | packet.Write(static_cast<u8>(IdModPermissionDenied)); |
| 718 | 718 | ||
| 719 | ENetPacket* enet_packet = | 719 | ENetPacket* enet_packet = |
| 720 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 720 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -724,7 +724,7 @@ void Room::RoomImpl::SendModPermissionDenied(ENetPeer* client) { | |||
| 724 | 724 | ||
| 725 | void Room::RoomImpl::SendModNoSuchUser(ENetPeer* client) { | 725 | void Room::RoomImpl::SendModNoSuchUser(ENetPeer* client) { |
| 726 | Packet packet; | 726 | Packet packet; |
| 727 | packet << static_cast<u8>(IdModNoSuchUser); | 727 | packet.Write(static_cast<u8>(IdModNoSuchUser)); |
| 728 | 728 | ||
| 729 | ENetPacket* enet_packet = | 729 | ENetPacket* enet_packet = |
| 730 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); | 730 | enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); |
| @@ -734,11 +734,11 @@ void Room::RoomImpl::SendModNoSuchUser(ENetPeer* client) { | |||
| 734 | 734 | ||
| 735 | void Room::RoomImpl::SendModBanListResponse(ENetPeer* client) { | 735 | void Room::RoomImpl::SendModBanListResponse(ENetPeer* client) { |
| 736 | Packet packet; | 736 | Packet packet; |
| 737 | packet << static_cast<u8>(IdModBanListResponse); | 737 | packet.Write(static_cast<u8>(IdModBanListResponse)); |
| 738 | { | 738 | { |
| 739 | std::lock_guard lock(ban_list_mutex); | 739 | std::lock_guard lock(ban_list_mutex); |
| 740 | packet << username_ban_list; | 740 | packet.Write(username_ban_list); |
| 741 | packet << ip_ban_list; | 741 | packet.Write(ip_ban_list); |
| 742 | } | 742 | } |
| 743 | 743 | ||
| 744 | ENetPacket* enet_packet = | 744 | ENetPacket* enet_packet = |
| @@ -749,7 +749,7 @@ void Room::RoomImpl::SendModBanListResponse(ENetPeer* client) { | |||
| 749 | 749 | ||
| 750 | void Room::RoomImpl::SendCloseMessage() { | 750 | void Room::RoomImpl::SendCloseMessage() { |
| 751 | Packet packet; | 751 | Packet packet; |
| 752 | packet << static_cast<u8>(IdCloseRoom); | 752 | packet.Write(static_cast<u8>(IdCloseRoom)); |
| 753 | std::lock_guard lock(member_mutex); | 753 | std::lock_guard lock(member_mutex); |
| 754 | if (!members.empty()) { | 754 | if (!members.empty()) { |
| 755 | ENetPacket* enet_packet = | 755 | ENetPacket* enet_packet = |
| @@ -767,10 +767,10 @@ void Room::RoomImpl::SendCloseMessage() { | |||
| 767 | void Room::RoomImpl::SendStatusMessage(StatusMessageTypes type, const std::string& nickname, | 767 | void Room::RoomImpl::SendStatusMessage(StatusMessageTypes type, const std::string& nickname, |
| 768 | const std::string& username, const std::string& ip) { | 768 | const std::string& username, const std::string& ip) { |
| 769 | Packet packet; | 769 | Packet packet; |
| 770 | packet << static_cast<u8>(IdStatusMessage); | 770 | packet.Write(static_cast<u8>(IdStatusMessage)); |
| 771 | packet << static_cast<u8>(type); | 771 | packet.Write(static_cast<u8>(type)); |
| 772 | packet << nickname; | 772 | packet.Write(nickname); |
| 773 | packet << username; | 773 | packet.Write(username); |
| 774 | std::lock_guard lock(member_mutex); | 774 | std::lock_guard lock(member_mutex); |
| 775 | if (!members.empty()) { | 775 | if (!members.empty()) { |
| 776 | ENetPacket* enet_packet = | 776 | ENetPacket* enet_packet = |
| @@ -805,25 +805,25 @@ void Room::RoomImpl::SendStatusMessage(StatusMessageTypes type, const std::strin | |||
| 805 | 805 | ||
| 806 | void Room::RoomImpl::BroadcastRoomInformation() { | 806 | void Room::RoomImpl::BroadcastRoomInformation() { |
| 807 | Packet packet; | 807 | Packet packet; |
| 808 | packet << static_cast<u8>(IdRoomInformation); | 808 | packet.Write(static_cast<u8>(IdRoomInformation)); |
| 809 | packet << room_information.name; | 809 | packet.Write(room_information.name); |
| 810 | packet << room_information.description; | 810 | packet.Write(room_information.description); |
| 811 | packet << room_information.member_slots; | 811 | packet.Write(room_information.member_slots); |
| 812 | packet << room_information.port; | 812 | packet.Write(room_information.port); |
| 813 | packet << room_information.preferred_game.name; | 813 | packet.Write(room_information.preferred_game.name); |
| 814 | packet << room_information.host_username; | 814 | packet.Write(room_information.host_username); |
| 815 | 815 | ||
| 816 | packet << static_cast<u32>(members.size()); | 816 | packet.Write(static_cast<u32>(members.size())); |
| 817 | { | 817 | { |
| 818 | std::lock_guard lock(member_mutex); | 818 | std::lock_guard lock(member_mutex); |
| 819 | for (const auto& member : members) { | 819 | for (const auto& member : members) { |
| 820 | packet << member.nickname; | 820 | packet.Write(member.nickname); |
| 821 | packet << member.mac_address; | 821 | packet.Write(member.mac_address); |
| 822 | packet << member.game_info.name; | 822 | packet.Write(member.game_info.name); |
| 823 | packet << member.game_info.id; | 823 | packet.Write(member.game_info.id); |
| 824 | packet << member.user_data.username; | 824 | packet.Write(member.user_data.username); |
| 825 | packet << member.user_data.display_name; | 825 | packet.Write(member.user_data.display_name); |
| 826 | packet << member.user_data.avatar_url; | 826 | packet.Write(member.user_data.avatar_url); |
| 827 | } | 827 | } |
| 828 | } | 828 | } |
| 829 | 829 | ||
| @@ -853,7 +853,7 @@ void Room::RoomImpl::HandleWifiPacket(const ENetEvent* event) { | |||
| 853 | in_packet.IgnoreBytes(sizeof(u8)); // WifiPacket Channel | 853 | in_packet.IgnoreBytes(sizeof(u8)); // WifiPacket Channel |
| 854 | in_packet.IgnoreBytes(sizeof(MacAddress)); // WifiPacket Transmitter Address | 854 | in_packet.IgnoreBytes(sizeof(MacAddress)); // WifiPacket Transmitter Address |
| 855 | MacAddress destination_address; | 855 | MacAddress destination_address; |
| 856 | in_packet >> destination_address; | 856 | in_packet.Read(destination_address); |
| 857 | 857 | ||
| 858 | Packet out_packet; | 858 | Packet out_packet; |
| 859 | out_packet.Append(event->packet->data, event->packet->dataLength); | 859 | out_packet.Append(event->packet->data, event->packet->dataLength); |
| @@ -899,7 +899,7 @@ void Room::RoomImpl::HandleChatPacket(const ENetEvent* event) { | |||
| 899 | 899 | ||
| 900 | in_packet.IgnoreBytes(sizeof(u8)); // Ignore the message type | 900 | in_packet.IgnoreBytes(sizeof(u8)); // Ignore the message type |
| 901 | std::string message; | 901 | std::string message; |
| 902 | in_packet >> message; | 902 | in_packet.Read(message); |
| 903 | auto CompareNetworkAddress = [event](const Member member) -> bool { | 903 | auto CompareNetworkAddress = [event](const Member member) -> bool { |
| 904 | return member.peer == event->peer; | 904 | return member.peer == event->peer; |
| 905 | }; | 905 | }; |
| @@ -914,10 +914,10 @@ void Room::RoomImpl::HandleChatPacket(const ENetEvent* event) { | |||
| 914 | message.resize(std::min(static_cast<u32>(message.size()), MaxMessageSize)); | 914 | message.resize(std::min(static_cast<u32>(message.size()), MaxMessageSize)); |
| 915 | 915 | ||
| 916 | Packet out_packet; | 916 | Packet out_packet; |
| 917 | out_packet << static_cast<u8>(IdChatMessage); | 917 | out_packet.Write(static_cast<u8>(IdChatMessage)); |
| 918 | out_packet << sending_member->nickname; | 918 | out_packet.Write(sending_member->nickname); |
| 919 | out_packet << sending_member->user_data.username; | 919 | out_packet.Write(sending_member->user_data.username); |
| 920 | out_packet << message; | 920 | out_packet.Write(message); |
| 921 | 921 | ||
| 922 | ENetPacket* enet_packet = enet_packet_create(out_packet.GetData(), out_packet.GetDataSize(), | 922 | ENetPacket* enet_packet = enet_packet_create(out_packet.GetData(), out_packet.GetDataSize(), |
| 923 | ENET_PACKET_FLAG_RELIABLE); | 923 | ENET_PACKET_FLAG_RELIABLE); |
| @@ -949,8 +949,8 @@ void Room::RoomImpl::HandleGameNamePacket(const ENetEvent* event) { | |||
| 949 | 949 | ||
| 950 | in_packet.IgnoreBytes(sizeof(u8)); // Ignore the message type | 950 | in_packet.IgnoreBytes(sizeof(u8)); // Ignore the message type |
| 951 | GameInfo game_info; | 951 | GameInfo game_info; |
| 952 | in_packet >> game_info.name; | 952 | in_packet.Read(game_info.name); |
| 953 | in_packet >> game_info.id; | 953 | in_packet.Read(game_info.id); |
| 954 | 954 | ||
| 955 | { | 955 | { |
| 956 | std::lock_guard lock(member_mutex); | 956 | std::lock_guard lock(member_mutex); |
| @@ -989,9 +989,9 @@ void Room::RoomImpl::HandleClientDisconnection(ENetPeer* client) { | |||
| 989 | nickname = member->nickname; | 989 | nickname = member->nickname; |
| 990 | username = member->user_data.username; | 990 | username = member->user_data.username; |
| 991 | 991 | ||
| 992 | char ip_raw[256]; | 992 | std::array<char, 256> ip_raw{}; |
| 993 | enet_address_get_host_ip(&member->peer->address, ip_raw, sizeof(ip_raw) - 1); | 993 | enet_address_get_host_ip(&member->peer->address, ip_raw.data(), sizeof(ip_raw) - 1); |
| 994 | ip = ip_raw; | 994 | ip = ip_raw.data(); |
| 995 | 995 | ||
| 996 | members.erase(member); | 996 | members.erase(member); |
| 997 | } | 997 | } |