@@ -10,6 +10,7 @@ package main
1010import " core:container/xar"
1111import " core:fmt"
1212import " core:nbio"
13+ import log " core:log"
1314
1415Server :: struct {
1516 socket: nbio.TCP_Socket,
@@ -24,13 +25,14 @@ Connection :: struct {
2425}
2526
2627main :: proc () {
28+ context .logger = log.create_console_logger ()
2729 err := nbio.acquire_thread_event_loop ()
2830 fmt.assertf (err == nil , " Could not initialize nbio: %v" , err)
2931 defer nbio.release_thread_event_loop ()
3032
3133 server: Server
3234
33- socket, listen_err := nbio.listen_tcp ({nbio.IP4_Loopback , 1234 })
35+ socket, listen_err := nbio.listen_tcp ({nbio.IP4_Any , 1234 })
3436 fmt.assertf (listen_err == nil , " Error listening on localhost:1234: %v" , err)
3537 server.socket = socket
3638
@@ -57,6 +59,11 @@ on_accept :: proc(op: ^nbio.Operation, server: ^Server) {
5759
5860on_recv :: proc (op: ^nbio.Operation, connection: ^Connection) {
5961 fmt.assertf (op.recv.err == nil , " Error receiving from client: %v" , op.recv.err)
62+ if op.recv.received == 0 {
63+ // NOTE: leaking `connection`.
64+ nbio.close (connection.sock)
65+ return
66+ }
6067
6168 nbio.send_poly (connection.sock, {connection.buf[:op.recv.received]}, connection, on_sent)
6269}
0 commit comments