summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2012-08-31 23:23:40 +0200
committerDaniel Stenberg <daniel@haxx.se>2012-08-31 23:23:40 +0200
commit7735141e73a56810daf4b0727fb932f69386ce45 (patch)
tree8b1e439c70a074f9989f6e3f3a3df92228693280
parent5ede86ae51b8f71be35152584815f80dbd5a327a (diff)
downloadcurl-7735141e73a56810daf4b0727fb932f69386ce45.tar.gz
test2032: bail out after last transfer
The test would hang and get aborted with a "ABORTING TEST, since it seems that it would have run forever." until I prevented that from happening. I also fixed the data file which got broken CRLF line endings when I sucked down the path from Joe's repo == my fault. Removed #37 from KNOWN_BUGS as this fix and test case verifies exactly this.
-rw-r--r--docs/KNOWN_BUGS7
-rw-r--r--tests/data/test203240
-rw-r--r--tests/libtest/libntlmconnect.c10
3 files changed, 30 insertions, 27 deletions
diff --git a/docs/KNOWN_BUGS b/docs/KNOWN_BUGS
index 6e207789c..4601d48da 100644
--- a/docs/KNOWN_BUGS
+++ b/docs/KNOWN_BUGS
@@ -134,13 +134,6 @@ may have been fixed since this was written!
38. Kumar Swamy Bhatt's problem in ftp/ssl "LIST" operation:
http://curl.haxx.se/mail/lib-2007-01/0103.html
-37. Having more than one connection to the same host when doing NTLM
- authentication (with performs multiple "passes" and authenticates a
- connection rather than a HTTP request), and particularly when using the
- multi interface, there's a risk that libcurl will re-use a wrong connection
- when doing the different passes in the NTLM negotiation and thus fail to
- negotiate (in seemingly mysterious ways).
-
35. Both SOCKS5 and SOCKS4 proxy connections are done blocking, which is very
bad when used with the multi interface.
diff --git a/tests/data/test2032 b/tests/data/test2032
index 4e1f230d9..5a9e4a2fd 100644
--- a/tests/data/test2032
+++ b/tests/data/test2032
@@ -118,26 +118,26 @@ chkhostname curlhost
^User-Agent:.*
</strip>
<protocol>
-GET /20320100 HTTP/1.1
-Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=
-Host: 127.0.0.1:8990
-Accept: */*
-
-GET /20320100 HTTP/1.1
-Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=
-Host: 127.0.0.1:8990
-Accept: */*
-
-GET /20320200 HTTP/1.1
-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
-Host: 127.0.0.1:8990
-Accept: */*
-
-GET /20320200 HTTP/1.1
-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAAIAAgAeAAAAAAAAAAAAAAABoIBAI+/Fp9IERAQ74OsdNPbBpg7o8CVwLSO4DtFyIcZHUMKVktWIu92s2892OVpd2JzqnRlc3R1c2VyY3VybGhvc3Q=
-Host: 127.0.0.1:8990
-Accept: */*
-
+GET /20320100 HTTP/1.1
+Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=
+Host: 127.0.0.1:8990
+Accept: */*
+
+GET /20320100 HTTP/1.1
+Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=
+Host: 127.0.0.1:8990
+Accept: */*
+
+GET /20320200 HTTP/1.1
+Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
+Host: 127.0.0.1:8990
+Accept: */*
+
+GET /20320200 HTTP/1.1
+Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAAIAAgAeAAAAAAAAAAAAAAABoIBAI+/Fp9IERAQ74OsdNPbBpg7o8CVwLSO4DtFyIcZHUMKVktWIu92s2892OVpd2JzqnRlc3R1c2VyY3VybGhvc3Q=
+Host: 127.0.0.1:8990
+Accept: */*
+
</protocol>
</verify>
</testcase>
diff --git a/tests/libtest/libntlmconnect.c b/tests/libtest/libntlmconnect.c
index 8486f3c31..0ef8fc03f 100644
--- a/tests/libtest/libntlmconnect.c
+++ b/tests/libtest/libntlmconnect.c
@@ -207,6 +207,9 @@ int test(char *url)
/* At this point, timeout is guaranteed to be greater or equal than -1. */
+ fprintf(stderr, "%s:%d num_handles %d timeout %ld\n",
+ __FILE__, __LINE__, num_handles, timeout);
+
if(timeout != -1L) {
interval.tv_sec = timeout/1000;
interval.tv_usec = (timeout%1000)*1000;
@@ -214,6 +217,13 @@ int test(char *url)
else {
interval.tv_sec = TEST_HANG_TIMEOUT/1000+1;
interval.tv_usec = 0;
+
+ /* if there's no timeout and we get here on the last handle, we may
+ already have read the last part of the stream so waiting makes no
+ sense */
+ if(num_handles == 3) {
+ break;
+ }
}
select_test(maxfd+1, &fdread, &fdwrite, &fdexcep, &interval);