From fcafdc7a9036bfcc4fafcde0ec53ed01eb31aa49 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 4 Apr 2022 14:03:13 -0500 Subject: [PATCH] cleaned up code that doesn't leak anymore --- lib/onyx-net | 2 +- src/client/net.onyx | 8 ++++++++ src/server/server.onyx | 18 +++++++++++------- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/lib/onyx-net b/lib/onyx-net index 79c85f4..19f30f1 160000 --- a/lib/onyx-net +++ b/lib/onyx-net @@ -1 +1 @@ -Subproject commit 79c85f4bf532700f45227504fcd982c31ceb4ac4 +Subproject commit 19f30f1562238a0bbbb23acc249311a17361e36d diff --git a/src/client/net.onyx b/src/client/net.onyx index d35eb59..4040ff5 100644 --- a/src/client/net.onyx +++ b/src/client/net.onyx @@ -41,6 +41,14 @@ net_handle_packet :: (packet_data: [] u8) { push_game_state(Game_State, null); } + case .Connection_Rejected { + cr_packet := cast(^packets.Connection_Rejected) packet; + printf("Connection refused: {}\n", cr_packet.reason); + + pop_game_state(); + push_game_state(Connect_Menu, null); + } + case .Chat_Message { chat_packet := cast(^packets.Chat_Message) packet; chat_messages << string.alloc_copy(.{ diff --git a/src/server/server.onyx b/src/server/server.onyx index 76a8e7f..9024682 100644 --- a/src/server/server.onyx +++ b/src/server/server.onyx @@ -63,47 +63,51 @@ handle_packet :: (peer: ^onet.Peer, packet_data: [] u8) { send_chat_message(0, msg); } - msg := new(packets.Verify_Connect); @LEAK + msg := new(packets.Verify_Connect); msg.type = .Verify_Connect; msg.player_id = ~~next_player_id; - p := new(onet.Packet); @LEAK + p := new(onet.Packet); p.flags |= .Reliable; p.data = any_to_buffer(msg); + p.free_data = true; onet.peer_send(peer, 0, p); respond_with_error :: macro (reason: packets.Connection_Rejected.Reason) { - msg := new(packets.Connection_Rejected); @LEAK + msg := new(packets.Connection_Rejected); msg.type = .Connection_Rejected; msg.reason = reason; - p := new(onet.Packet); @LEAK + p := new(onet.Packet); p.flags |= .Reliable; p.data = any_to_buffer(msg); + p.free_data = true; onet.peer_send(peer, 0, p); return; } } case .Chat_Message { - packet := new(onet.Packet); @LEAK + packet := new(onet.Packet); packet.flags |= .Reliable; packet.data = memory.copy_slice(packet_data); + packet.free_data = true; onet.host_broadcast(host, 0, packet); } } } send_chat_message :: (from: u16, msg: [] u8) { - chat_packet, packet_size := new_with_extra(packets.Chat_Message, msg.count); @LEAK + chat_packet, packet_size := new_with_extra(packets.Chat_Message, msg.count); chat_packet.type = .Chat_Message; chat_packet.sender_id = from; chat_packet.message_length = ~~ msg.count; memory.copy(~~ ^chat_packet.message_data, msg.data, msg.count); - packet := new(onet.Packet); @LEAK + packet := new(onet.Packet); packet.flags |= .Reliable; packet.data = .{ ~~chat_packet, packet_size }; + packet.free_data = true; onet.host_broadcast(host, 0, packet); } -- 2.25.1