aboutsummaryrefslogtreecommitdiff
path: root/src/testcurl/test_quiesce.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/testcurl/test_quiesce.c')
-rw-r--r--src/testcurl/test_quiesce.c38
1 files changed, 33 insertions, 5 deletions
diff --git a/src/testcurl/test_quiesce.c b/src/testcurl/test_quiesce.c
index 682d866e..59eea2d0 100644
--- a/src/testcurl/test_quiesce.c
+++ b/src/testcurl/test_quiesce.c
@@ -55,6 +55,7 @@ struct CBC
55 size_t size; 55 size_t size;
56}; 56};
57 57
58static int port;
58 59
59static size_t 60static size_t
60copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx) 61copyBuffer (void *ptr, size_t size, size_t nmemb, void *ctx)
@@ -126,7 +127,7 @@ ServeOneRequest(void *param)
126 fd = (MHD_socket) (intptr_t) param; 127 fd = (MHD_socket) (intptr_t) param;
127 128
128 d = MHD_start_daemon (MHD_USE_ERROR_LOG, 129 d = MHD_start_daemon (MHD_USE_ERROR_LOG,
129 1082, NULL, NULL, &ahc_echo, "GET", 130 0, NULL, NULL, &ahc_echo, "GET",
130 MHD_OPTION_LISTEN_SOCKET, fd, 131 MHD_OPTION_LISTEN_SOCKET, fd,
131 MHD_OPTION_NOTIFY_COMPLETED, &request_completed, &done, 132 MHD_OPTION_NOTIFY_COMPLETED, &request_completed, &done,
132 MHD_OPTION_END); 133 MHD_OPTION_END);
@@ -172,7 +173,8 @@ setupCURL (void *cbc)
172 CURL *c; 173 CURL *c;
173 174
174 c = curl_easy_init (); 175 c = curl_easy_init ();
175 curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:11080/hello_world"); 176 curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1/hello_world");
177 curl_easy_setopt (c, CURLOPT_PORT, (long)port);
176 curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer); 178 curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
177 curl_easy_setopt (c, CURLOPT_WRITEDATA, cbc); 179 curl_easy_setopt (c, CURLOPT_WRITEDATA, cbc);
178 curl_easy_setopt (c, CURLOPT_FAILONERROR, 1); 180 curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
@@ -200,20 +202,33 @@ testGet (int type, int pool_count, int poll_flag)
200 pthread_t thrd; 202 pthread_t thrd;
201 const char *thrdRet; 203 const char *thrdRet;
202 204
205 if (MHD_NO != MHD_is_feature_supported (MHD_FEATURE_AUTODETECT_BIND_PORT))
206 port = 0;
207 else
208 port = 1480;
209
203 cbc.buf = buf; 210 cbc.buf = buf;
204 cbc.size = 2048; 211 cbc.size = 2048;
205 cbc.pos = 0; 212 cbc.pos = 0;
206 if (pool_count > 0) { 213 if (pool_count > 0) {
207 d = MHD_start_daemon (type | MHD_USE_ERROR_LOG | MHD_USE_ITC | poll_flag, 214 d = MHD_start_daemon (type | MHD_USE_ERROR_LOG | MHD_USE_ITC | poll_flag,
208 11080, NULL, NULL, &ahc_echo, "GET", 215 port, NULL, NULL, &ahc_echo, "GET",
209 MHD_OPTION_THREAD_POOL_SIZE, pool_count, MHD_OPTION_END); 216 MHD_OPTION_THREAD_POOL_SIZE, pool_count, MHD_OPTION_END);
210 217
211 } else { 218 } else {
212 d = MHD_start_daemon (type | MHD_USE_ERROR_LOG | MHD_USE_ITC | poll_flag, 219 d = MHD_start_daemon (type | MHD_USE_ERROR_LOG | MHD_USE_ITC | poll_flag,
213 11080, NULL, NULL, &ahc_echo, "GET", MHD_OPTION_END); 220 port, NULL, NULL, &ahc_echo, "GET", MHD_OPTION_END);
214 } 221 }
215 if (d == NULL) 222 if (d == NULL)
216 return 1; 223 return 1;
224 if (0 == port)
225 {
226 const union MHD_DaemonInfo *dinfo;
227 dinfo = MHD_get_daemon_info (d, MHD_DAEMON_INFO_BIND_PORT);
228 if (NULL == dinfo || 0 == dinfo->port)
229 { MHD_stop_daemon (d); return 32; }
230 port = (int)dinfo->port;
231 }
217 232
218 c = setupCURL(&cbc); 233 c = setupCURL(&cbc);
219 234
@@ -342,17 +357,30 @@ testExternalGet ()
342 int i; 357 int i;
343 MHD_socket fd; 358 MHD_socket fd;
344 359
360 if (MHD_NO != MHD_is_feature_supported (MHD_FEATURE_AUTODETECT_BIND_PORT))
361 port = 0;
362 else
363 port = 1481;
364
345 multi = NULL; 365 multi = NULL;
346 cbc.buf = buf; 366 cbc.buf = buf;
347 cbc.size = 2048; 367 cbc.size = 2048;
348 cbc.pos = 0; 368 cbc.pos = 0;
349 d = MHD_start_daemon (MHD_USE_ERROR_LOG, 369 d = MHD_start_daemon (MHD_USE_ERROR_LOG,
350 11080, 370 port,
351 NULL, NULL, 371 NULL, NULL,
352 &ahc_echo, "GET", 372 &ahc_echo, "GET",
353 MHD_OPTION_END); 373 MHD_OPTION_END);
354 if (d == NULL) 374 if (d == NULL)
355 return 256; 375 return 256;
376 if (0 == port)
377 {
378 const union MHD_DaemonInfo *dinfo;
379 dinfo = MHD_get_daemon_info (d, MHD_DAEMON_INFO_BIND_PORT);
380 if (NULL == dinfo || 0 == dinfo->port)
381 { MHD_stop_daemon (d); return 32; }
382 port = (int)dinfo->port;
383 }
356 c = setupCURL(&cbc); 384 c = setupCURL(&cbc);
357 385
358 multi = curl_multi_init (); 386 multi = curl_multi_init ();