aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMarcos Magueta <mmagueta@MacMini.local>2024-11-25 03:07:34 -0300
committerMarcos Magueta <mmagueta@MacMini.local>2024-11-25 03:07:34 -0300
commit4f1ba5f866c63db27ae33c6cd8fa342ae3163ffa (patch)
treef9be3aaaa6bf3ae07528ced9d3cf2d5616a0502e /lib
parentc75d7c175383bbf9eb7c25589b9c200afca8d454 (diff)
downloadSakura-4f1ba5f866c63db27ae33c6cd8fa342ae3163ffa.tar.gz
Sakura-4f1ba5f866c63db27ae33c6cd8fa342ae3163ffa.zip
fix server
Diffstat (limited to 'lib')
-rw-r--r--lib/server.ml7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/server.ml b/lib/server.ml
index 28f2ead..6544f81 100644
--- a/lib/server.ml
+++ b/lib/server.ml
@@ -16,9 +16,9 @@ let client_read sock maxlen =
let str = Bytes.create maxlen in
let rec _read sock acc =
Lwt_unix.read sock str 0 maxlen
- >>= fun recvlen -> Lwt_io.write_line Lwt_io.stdout (string_of_int recvlen)
+ >>= fun recvlen -> Lwt_io.write_line Lwt_io.stdout (Printf.sprintf "[LOG] Received %d bytes from client" recvlen)
>>= fun () -> if recvlen <= maxlen
- then Lwt.return acc
+ then Lwt.return (acc ^ (Bytes.to_string (Bytes.sub str 0 recvlen)))
else _read sock (acc ^ (Bytes.to_string (Bytes.sub str 0 recvlen)))
in _read sock ""
@@ -26,6 +26,9 @@ let rec socket_read sock =
Lwt_unix.accept sock
>>= fun (client, _) -> client_read client 512
>>= fun results -> Lwt_io.write_line Lwt_io.stdout results
+ >>= fun () -> return results
+ >>= fun results -> Lwt_unix.send client (Bytes.of_string results) 0 (String.length results) []
+ >>= fun _ -> Lwt_unix.wait_write client
>>= fun () -> Lwt_unix.close client
>>= fun () -> socket_read sock