From a0034d9b42790922156200e81e9950e5c340500c Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 28 Dec 2022 18:22:35 -0600 Subject: [PATCH] tiny bug fixes and updating syntax --- example/udp_client.onyx | 6 +++--- example/udp_server.onyx | 2 +- src/host.onyx | 27 +++++++++++---------------- src/peer.onyx | 2 +- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/example/udp_client.onyx b/example/udp_client.onyx index 71b5313..587748f 100644 --- a/example/udp_client.onyx +++ b/example/udp_client.onyx @@ -1,5 +1,5 @@ #load "core/std" -#load "./../src/module" +#load "./../module" use package core onyx_net :: package onyx_net @@ -28,7 +28,7 @@ main :: (args) => { input_thread: thread.Thread; thread.spawn(^input_thread, peer, (peer) => { - input_reader := io.reader_make(^stdin); + input_reader := io.reader_make(^stdio_stream); while true { line := io.read_line(^input_reader) |> string.strip_whitespace(); @@ -39,7 +39,7 @@ main :: (args) => { onyx_net.peer_send_disconnect(peer); onyx_net.peer_flush_outgoing_commands(peer); onyx_net.peer_disconnect(peer); - break; + break break; } case "send" { diff --git a/example/udp_server.onyx b/example/udp_server.onyx index 184b9f8..344f32a 100644 --- a/example/udp_server.onyx +++ b/example/udp_server.onyx @@ -1,5 +1,5 @@ #load "core/std" -#load "./../src/module" +#load "./../module" use package core onyx_net :: package onyx_net diff --git a/src/host.onyx b/src/host.onyx index 4cbf70a..aba60ac 100644 --- a/src/host.onyx +++ b/src/host.onyx @@ -1,6 +1,6 @@ package onyx_net -@CLEANUP +// @CLEANUP use package core Host :: struct { @@ -52,7 +52,9 @@ host_create :: (addr: ^net.Socket_Address, peer_count: u32) -> (^Host, Host_Crea defer if errored do net.socket_close(^host.socket); if addr != null { - if !host.socket->bind(addr.port) { + sa: net.Socket_Address; + net.make_ipv4_address(^sa, 0, addr.port); + if !(host.socket->bind(^sa)) { errored = true; return null, .Socket_Binding_Failed; } @@ -68,7 +70,6 @@ host_create :: (addr: ^net.Socket_Address, peer_count: u32) -> (^Host, Host_Crea host.current_time = ~~ (os.time() & cast(u64) 0xFFFFFFFF); for^ peer: host.peers { - memory.set(peer, 0, sizeof typeof *peer); peer.host = host; peer.state = .Disconnected; peer.channels = .{ null, 0 }; @@ -188,14 +189,14 @@ host_send_commands :: (host: ^Host) -> bool { host_receive_commands :: (host: ^Host, timeout: u32 = 0) -> bool { if timeout > 0 { check_sockets := (^net.Socket).[ ^host.socket ]; - changed_buffer := alloc.array_from_stack(i32, 1); - changed := net.socket_poll_all(check_sockets, timeout, changed_buffer); + changed_buffer := alloc.array_from_stack(net.Socket_Poll_Status, 1); + net.socket_poll_all(check_sockets, timeout, changed_buffer); - if changed.count == 0 do return false; + if changed_buffer[0] == .No_Change do return false; } buffer: [] u8 = host.packet_data[0]; - recv_addr, recv_bytes := host.socket ->recvfrom(buffer); + recv_addr, recv_bytes := host.socket->recvfrom(buffer); host.received_addr = recv_addr; host.received_data = buffer[0 .. recv_bytes]; @@ -513,7 +514,7 @@ host_get_events :: (host: ^Host, timeout: u32 = 0) -> Iterator(^Event) { } defer string.advance(data, data_length); - @CopyPaste + // @CopyPaste channel := ^peer.channels[command.channel]; for channel.reliable_windows { if command.seq_number == it do return; @@ -524,13 +525,7 @@ host_get_events :: (host: ^Host, timeout: u32 = 0) -> Iterator(^Event) { channel.reliable_windows_cursor %= channel.reliable_windows.count; fragment_id := net.network_to_host(command.fragment_id); - fragment: ^Fragmented_Data = null; - for^ channel.pending_fragments { - if it.fragment_id == fragment_id { - fragment = it; - break; - } - } + fragment: ^Fragmented_Data = array.first(channel.pending_fragments, #(it.fragment_id == fragment_id)); if fragment == null { fragment = array.alloc_one(^channel.pending_fragments); @@ -555,7 +550,7 @@ host_get_events :: (host: ^Host, timeout: u32 = 0) -> Iterator(^Event) { } -@Relocate +// @Relocate Event :: struct { Type :: enum { None; diff --git a/src/peer.onyx b/src/peer.onyx index e8c0034..bfbf0e8 100644 --- a/src/peer.onyx +++ b/src/peer.onyx @@ -197,7 +197,7 @@ peer_check_outgoing_commands :: (peer: ^Peer) { } peer_flush_outgoing_commands :: (peer: ^Peer) -> i32 { - send_buffer: [65535] u8; + send_buffer := alloc.array_from_stack(u8, 65535); total_sent := 0; for peer.outgoing_commands { -- 2.25.1