aboutsummaryrefslogtreecommitdiff
path: root/src/testzzuf/daemontest_get_chunked.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/testzzuf/daemontest_get_chunked.c')
-rw-r--r--src/testzzuf/daemontest_get_chunked.c235
1 files changed, 119 insertions, 116 deletions
diff --git a/src/testzzuf/daemontest_get_chunked.c b/src/testzzuf/daemontest_get_chunked.c
index 4110d874..ca94beb0 100644
--- a/src/testzzuf/daemontest_get_chunked.c
+++ b/src/testzzuf/daemontest_get_chunked.c
@@ -139,30 +139,31 @@ testInternalGet ()
139 cbc.buf = buf; 139 cbc.buf = buf;
140 cbc.size = 2048; 140 cbc.size = 2048;
141 cbc.pos = 0; 141 cbc.pos = 0;
142 d = MHD_start_daemon (MHD_USE_SELECT_INTERNALLY /* | MHD_USE_DEBUG */, 142 d = MHD_start_daemon (MHD_USE_SELECT_INTERNALLY /* | MHD_USE_DEBUG */ ,
143 11080, NULL, NULL, &ahc_echo, "GET", MHD_OPTION_END); 143 11080, NULL, NULL, &ahc_echo, "GET", MHD_OPTION_END);
144 if (d == NULL) 144 if (d == NULL)
145 return 1; 145 return 1;
146 zzuf_socat_start(); 146 zzuf_socat_start ();
147 for (i=0;i<LOOP_COUNT;i++) { 147 for (i = 0; i < LOOP_COUNT; i++)
148 fprintf(stderr, "."); 148 {
149 c = curl_easy_init (); 149 fprintf (stderr, ".");
150 curl_easy_setopt (c, CURLOPT_URL, "http://localhost:11081/hello_world"); 150 c = curl_easy_init ();
151 curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer); 151 curl_easy_setopt (c, CURLOPT_URL, "http://localhost:11081/hello_world");
152 curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc); 152 curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
153 curl_easy_setopt (c, CURLOPT_FAILONERROR, 1); 153 curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
154 curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT); 154 curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
155 curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT); 155 curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
156 curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 156 curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
157 // NOTE: use of CONNECTTIMEOUT without also 157 curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
158 // setting NOSIGNAL results in really weird 158 // NOTE: use of CONNECTTIMEOUT without also
159 // crashes on my system! 159 // setting NOSIGNAL results in really weird
160 curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1); 160 // crashes on my system!
161 curl_easy_perform (c); 161 curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
162 curl_easy_cleanup (c); 162 curl_easy_perform (c);
163 } 163 curl_easy_cleanup (c);
164 fprintf(stderr, "\n"); 164 }
165 zzuf_socat_stop(); 165 fprintf (stderr, "\n");
166 zzuf_socat_stop ();
166 MHD_stop_daemon (d); 167 MHD_stop_daemon (d);
167 return 0; 168 return 0;
168} 169}
@@ -175,34 +176,35 @@ testMultithreadedGet ()
175 char buf[2048]; 176 char buf[2048];
176 struct CBC cbc; 177 struct CBC cbc;
177 int i; 178 int i;
178 179
179 cbc.buf = buf; 180 cbc.buf = buf;
180 cbc.size = 2048; 181 cbc.size = 2048;
181 cbc.pos = 0; 182 cbc.pos = 0;
182 d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION /* | MHD_USE_DEBUG */, 183 d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION /* | MHD_USE_DEBUG */ ,
183 11080, NULL, NULL, &ahc_echo, "GET", MHD_OPTION_END); 184 11080, NULL, NULL, &ahc_echo, "GET", MHD_OPTION_END);
184 if (d == NULL) 185 if (d == NULL)
185 return 16; 186 return 16;
186 zzuf_socat_start(); 187 zzuf_socat_start ();
187 for (i=0;i<LOOP_COUNT;i++) { 188 for (i = 0; i < LOOP_COUNT; i++)
188 fprintf(stderr, "."); 189 {
189 c = curl_easy_init (); 190 fprintf (stderr, ".");
190 curl_easy_setopt (c, CURLOPT_URL, "http://localhost:11081/hello_world"); 191 c = curl_easy_init ();
191 curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer); 192 curl_easy_setopt (c, CURLOPT_URL, "http://localhost:11081/hello_world");
192 curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc); 193 curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
193 curl_easy_setopt (c, CURLOPT_FAILONERROR, 1); 194 curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
194 curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT); 195 curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
195 curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 196 curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
196 curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT); 197 curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
197 // NOTE: use of CONNECTTIMEOUT without also 198 curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
198 // setting NOSIGNAL results in really weird 199 // NOTE: use of CONNECTTIMEOUT without also
199 // crashes on my system! 200 // setting NOSIGNAL results in really weird
200 curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1); 201 // crashes on my system!
201 curl_easy_perform (c); 202 curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
202 curl_easy_cleanup (c); 203 curl_easy_perform (c);
203 } 204 curl_easy_cleanup (c);
204 fprintf(stderr, "\n"); 205 }
205 zzuf_socat_stop(); 206 fprintf (stderr, "\n");
207 zzuf_socat_stop ();
206 MHD_stop_daemon (d); 208 MHD_stop_daemon (d);
207 return 0; 209 return 0;
208} 210}
@@ -230,7 +232,7 @@ testExternalGet ()
230 cbc.buf = buf; 232 cbc.buf = buf;
231 cbc.size = 2048; 233 cbc.size = 2048;
232 cbc.pos = 0; 234 cbc.pos = 0;
233 d = MHD_start_daemon (MHD_NO_FLAG /* | MHD_USE_DEBUG */, 235 d = MHD_start_daemon (MHD_NO_FLAG /* | MHD_USE_DEBUG */ ,
234 11080, NULL, NULL, &ahc_echo, "GET", MHD_OPTION_END); 236 11080, NULL, NULL, &ahc_echo, "GET", MHD_OPTION_END);
235 if (d == NULL) 237 if (d == NULL)
236 return 256; 238 return 256;
@@ -241,79 +243,80 @@ testExternalGet ()
241 MHD_stop_daemon (d); 243 MHD_stop_daemon (d);
242 return 512; 244 return 512;
243 } 245 }
244 zzuf_socat_start(); 246 zzuf_socat_start ();
245 for (i=0;i<LOOP_COUNT;i++) { 247 for (i = 0; i < LOOP_COUNT; i++)
246 fprintf(stderr, "."); 248 {
247 c = curl_easy_init (); 249 fprintf (stderr, ".");
248 curl_easy_setopt (c, CURLOPT_URL, "http://localhost:11081/hello_world"); 250 c = curl_easy_init ();
249 curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer); 251 curl_easy_setopt (c, CURLOPT_URL, "http://localhost:11081/hello_world");
250 curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc); 252 curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
251 curl_easy_setopt (c, CURLOPT_FAILONERROR, 1); 253 curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
252 curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 254 curl_easy_setopt (c, CURLOPT_FAILONERROR, 1);
253 curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT); 255 curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
254 curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT); 256 curl_easy_setopt (c, CURLOPT_TIMEOUT_MS, CURL_TIMEOUT);
255 // NOTE: use of CONNECTTIMEOUT without also 257 curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT_MS, CURL_TIMEOUT);
256 // setting NOSIGNAL results in really weird 258 // NOTE: use of CONNECTTIMEOUT without also
257 // crashes on my system! 259 // setting NOSIGNAL results in really weird
258 curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1); 260 // crashes on my system!
259 mret = curl_multi_add_handle (multi, c); 261 curl_easy_setopt (c, CURLOPT_NOSIGNAL, 1);
260 if (mret != CURLM_OK) 262 mret = curl_multi_add_handle (multi, c);
261 { 263 if (mret != CURLM_OK)
262 curl_multi_cleanup (multi); 264 {
263 curl_easy_cleanup (c); 265 curl_multi_cleanup (multi);
264 zzuf_socat_stop(); 266 curl_easy_cleanup (c);
265 MHD_stop_daemon (d); 267 zzuf_socat_stop ();
266 return 1024; 268 MHD_stop_daemon (d);
267 } 269 return 1024;
268 start = time (NULL); 270 }
269 while ((time (NULL) - start < 5) && (c != NULL)) 271 start = time (NULL);
270 { 272 while ((time (NULL) - start < 5) && (c != NULL))
271 max = 0; 273 {
272 FD_ZERO (&rs); 274 max = 0;
273 FD_ZERO (&ws); 275 FD_ZERO (&rs);
274 FD_ZERO (&es); 276 FD_ZERO (&ws);
275 curl_multi_perform (multi, &running); 277 FD_ZERO (&es);
276 mret = curl_multi_fdset (multi, &rs, &ws, &es, &max); 278 curl_multi_perform (multi, &running);
277 if (mret != CURLM_OK) 279 mret = curl_multi_fdset (multi, &rs, &ws, &es, &max);
278 { 280 if (mret != CURLM_OK)
279 curl_multi_remove_handle (multi, c); 281 {
280 curl_multi_cleanup (multi); 282 curl_multi_remove_handle (multi, c);
281 curl_easy_cleanup (c); 283 curl_multi_cleanup (multi);
282 zzuf_socat_stop(); 284 curl_easy_cleanup (c);
283 MHD_stop_daemon (d); 285 zzuf_socat_stop ();
284 return 2048; 286 MHD_stop_daemon (d);
285 } 287 return 2048;
286 if (MHD_YES != MHD_get_fdset (d, &rs, &ws, &es, &max)) 288 }
287 { 289 if (MHD_YES != MHD_get_fdset (d, &rs, &ws, &es, &max))
288 curl_multi_remove_handle (multi, c); 290 {
289 curl_multi_cleanup (multi); 291 curl_multi_remove_handle (multi, c);
290 curl_easy_cleanup (c); 292 curl_multi_cleanup (multi);
291 zzuf_socat_stop(); 293 curl_easy_cleanup (c);
292 MHD_stop_daemon (d); 294 zzuf_socat_stop ();
293 return 4096; 295 MHD_stop_daemon (d);
294 } 296 return 4096;
295 tv.tv_sec = 0; 297 }
296 tv.tv_usec = 1000; 298 tv.tv_sec = 0;
297 select (max + 1, &rs, &ws, &es, &tv); 299 tv.tv_usec = 1000;
298 curl_multi_perform (multi, &running); 300 select (max + 1, &rs, &ws, &es, &tv);
299 if (running == 0) 301 curl_multi_perform (multi, &running);
300 { 302 if (running == 0)
301 curl_multi_info_read (multi, &running); 303 {
302 curl_multi_remove_handle (multi, c); 304 curl_multi_info_read (multi, &running);
303 curl_easy_cleanup (c); 305 curl_multi_remove_handle (multi, c);
304 c = NULL; 306 curl_easy_cleanup (c);
305 } 307 c = NULL;
306 MHD_run (d); 308 }
307 } 309 MHD_run (d);
308 if (c != NULL) 310 }
309 { 311 if (c != NULL)
310 curl_multi_remove_handle (multi, c); 312 {
311 curl_easy_cleanup (c); 313 curl_multi_remove_handle (multi, c);
312 } 314 curl_easy_cleanup (c);
313 } 315 }
314 fprintf(stderr, "\n"); 316 }
317 fprintf (stderr, "\n");
315 curl_multi_cleanup (multi); 318 curl_multi_cleanup (multi);
316 zzuf_socat_stop(); 319 zzuf_socat_stop ();
317 MHD_stop_daemon (d); 320 MHD_stop_daemon (d);
318 return 0; 321 return 0;
319} 322}