aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/server/sws.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/tests/server/sws.c b/tests/server/sws.c
index 244f91b75..dddc606db 100644
--- a/tests/server/sws.c
+++ b/tests/server/sws.c
@@ -1349,9 +1349,12 @@ static void http_connect(curl_socket_t *infdp,
FD_ZERO(&output);
if((clientfd[DATA] == CURL_SOCKET_BAD) &&
- (serverfd[DATA] == CURL_SOCKET_BAD)) {
- /* when secondary tunnel is not established the listener socket
- is monitored to allow client to establish the secondary tunnel */
+ (serverfd[DATA] == CURL_SOCKET_BAD) &&
+ poll_client_rd[CTRL] && poll_client_wr[CTRL] &&
+ poll_server_rd[CTRL] && poll_server_wr[CTRL]) {
+ /* listener socket is monitored to allow client to establish
+ secondary tunnel only when this tunnel is not established
+ and primary one is fully operational */
FD_SET(rootfd, &input);
maxfd = rootfd;
}
@@ -1837,7 +1840,7 @@ int main(int argc, char *argv[])
use_gopher?"GOPHER":"HTTP", ipv_inuse, (int)port);
/* start accepting connections */
- rc = listen(sock, 2);
+ rc = listen(sock, 5);
if(0 != rc) {
error = SOCKERRNO;
logmsg("listen() failed with error: (%d) %s",