git://git.exim.org
/
users
/
heiko
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Testsuite: limited support for Content-length:
[users/heiko/exim.git]
/
test
/
src
/
server.c
diff --git
a/test/src/server.c
b/test/src/server.c
index 1abd3f49a6cd0e204d3499fae5e798e1b2606d5a..4bdde65bf7154bfa7679e687c2b2b255ae32f3f9 100644
(file)
--- a/
test/src/server.c
+++ b/
test/src/server.c
@@
-496,6
+496,12
@@
s = script;
for (count = 0; count < connection_count; count++)
{
for (count = 0; count < connection_count; count++)
{
+
+ struct {
+ int left;
+ int in_use;
+ } content_length = { .left = 0, .in_use = 0 };
+
alarm(timeout);
if (port <= 0)
{
alarm(timeout);
if (port <= 0)
{
@@
-709,6
+715,7
@@
for (count = 0; count < connection_count; count++)
alarm(timeout);
n = read(dup_accept_socket, CS buffer+offset, s->len - offset);
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",
if (n == 0)
{
printf("%sxpected EOF read from client\n",
@@
-726,8
+733,11
@@
for (count = 0; count < connection_count; count++)
if (data) do
{
n = (read(dup_accept_socket, &c, 1) == 1 && c == '.');
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)
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)
{
} while (!n);
else if (memcmp(ss, buffer, n) != 0)
{
@@
-751,6
+761,7
@@
for (count = 0; count < connection_count; count++)
}
alarm(0);
n = (int)strlen(CS buffer);
}
alarm(0);
n = (int)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);
while (n > 0 && isspace(buffer[n-1])) n--;
buffer[n] = 0;
printf("%s\n", buffer);
@@
-764,6
+775,9
@@
for (count = 0; count < connection_count; count++)
break;
}
}
break;
}
}
+
+ if (sscanf(buffer, "<Content-length: %d", &content_length.left)) content_length.in_use = 1;
+ if (content_length.in_use && content_length.left <= 0) shutdown(dup_accept_socket, SHUT_RD);
}
}
}
}