From cae3092df7600ff5e62789f9dae780af70fa16b1 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Thu, 6 Feb 2025 17:11:57 +0100 Subject: [PATCH] Improved server example --- examples/server/server.q | 20 ++++++++++---------- lib/sys/net_linux.q | 4 ++++ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/examples/server/server.q b/examples/server/server.q index 6b2eb0d..852ae50 100644 --- a/examples/server/server.q +++ b/examples/server/server.q @@ -1,15 +1,15 @@ -import sys - -struct sockaddr_in { - sin_family Int16 - sin_port Int16 - sin_addr Int64 - sin_zero Int64 -} - // Open server and client in 2 terminals: // [1] q run examples/server // [2] curl http://127.0.0.1:8080 +import sys + +struct sockaddr_in { + sin_family Int16 + sin_port Int16 + sin_addr Int64 + sin_zero Int64 +} + main() { socket := sys.socket(2, 1, 0) @@ -42,7 +42,7 @@ main() { conn := sys.accept(socket, 0, 0) if conn >= 0 { - sys.write(conn, "HTTP/1.1 200 OK\r\nContent-Length: 6\r\n\r\nHello\n", 44) + sys.write(conn, "HTTP/1.0 200 OK\r\nContent-Length: 6\r\n\r\nHello\n", 44) sys.close(conn) } else { sys.write(1, "error\n", 6) diff --git a/lib/sys/net_linux.q b/lib/sys/net_linux.q index 5368e47..00ed81c 100644 --- a/lib/sys/net_linux.q +++ b/lib/sys/net_linux.q @@ -12,4 +12,8 @@ bind(fd Int, address Pointer, length Int) -> Int { listen(fd Int, backlog Int) -> Int { return syscall(50, fd, backlog) +} + +setsockopt(fd Int, level Int, optname Int, optval Pointer, optlen Int) -> Int { + return syscall(54, fd, level, optname, optval, optlen) } \ No newline at end of file