diff options
Diffstat (limited to 'server/server.lisp')
| -rw-r--r-- | server/server.lisp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/server/server.lisp b/server/server.lisp index bf778b1..f1417c5 100644 --- a/server/server.lisp +++ b/server/server.lisp @@ -9,11 +9,10 @@ (defun handle-client (client-socket) (unwind-protect ; To be sure to close the client socket - (let ((data (read-line (usocket:socket-stream client-socket))) - (request "")) - (loop while (not (equalp data "#EOF")) do - (setf request (concatenate 'string request data)) - (setf data (read-line (usocket:socket-stream client-socket) nil nil))) + (let* ((request (read-line (usocket:socket-stream client-socket)))) + (loop while (eq (search "#EOF" request) nil) do + (setf request (concatenate 'string request (read-line (usocket:socket-stream client-socket) nil nil)))) + (setf request (cl-strings:replace-all request "#EOF" "")) (format (usocket:socket-stream client-socket) (handle-request *server-api* request)) (force-output (usocket:socket-stream client-socket))) (usocket:socket-close client-socket))) |
