diff --git a/tests/server/sws.c b/tests/server/sws.c
index 3eff97d45af8eacd771d0bd408ede0337fac7cf7..7d1b76ea1d966e1154153279b493b4cb59821f5e 100644
--- a/tests/server/sws.c
+++ b/tests/server/sws.c
@@ -454,7 +454,7 @@ static int get_request(int sock, struct httprequest *req)
   /*** end of httprequest init ***/
 
   while (req->offset < REQBUFSIZ) {
-    int got = sread(sock, reqbuf + req->offset, REQBUFSIZ - req->offset);
+    ssize_t got = sread(sock, reqbuf + req->offset, REQBUFSIZ - req->offset);
     if (got <= 0) {
       if (got < 0) {
         logmsg("recv() returned error: %d", errno);