diff options
Diffstat (limited to 'src/testzzuf/daemontest_get_chunked.c')
-rw-r--r-- | src/testzzuf/daemontest_get_chunked.c | 235 |
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, ©Buffer); | 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, ©Buffer); |
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, ©Buffer); | 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, ©Buffer); |
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, ©Buffer); | 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, ©Buffer); |
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 | } |