X-Git-Url: https://git.exim.org/users/heiko/exim.git/blobdiff_plain/e443f67259e2850cf5508b6d5658f6ede47f130b..ac0aabcebbc0d57c1e1c580e2225353e206109a7:/test/src/server.c?ds=sidebyside diff --git a/test/src/server.c b/test/src/server.c index 719350c15..d433ebe0e 100644 --- a/test/src/server.c +++ b/test/src/server.c @@ -519,6 +519,11 @@ s = script; for (count = 0; count < connection_count; count++) { + struct { + int left; + BOOL in_use; + } content_length = { 0, FALSE }; + alarm(timeout); if (port <= 0) { @@ -729,6 +734,7 @@ for (count = 0; count < connection_count; count++) alarm(timeout); n = read(dup_accept_socket, CS buffer+offset, s->len - offset); + if (content_length.in_use) content_length.left -= n; if (n == 0) { printf("%sxpected EOF read from client\n", @@ -746,8 +752,9 @@ for (count = 0; count < connection_count; count++) if (data) do { n = (read(dup_accept_socket, &c, 1) == 1 && c == '.'); + if (content_length.in_use) content_length.left--; while (c != '\n' && read(dup_accept_socket, &c, 1) == 1) - ; + if (content_length.in_use) content_length.left--; } while (!n); else if (memcmp(ss, buffer, n) != 0) { @@ -770,7 +777,8 @@ for (count = 0; count < connection_count; count++) goto END_OFF; } alarm(0); - n = (int)strlen(CS buffer); + n = strlen(CS buffer); + if (content_length.in_use) content_length.left -= (n - offset); while (n > 0 && isspace(buffer[n-1])) n--; buffer[n] = 0; printf("%s\n", buffer); @@ -784,6 +792,11 @@ for (count = 0; count < connection_count; count++) break; } } + + if (sscanf(CCS buffer, "