|
|
@@ -54,6 +54,7 @@ called_twice (void *cls, uint64_t pos, char *buf, size_t max)
|
|
|
}
|
|
|
fprintf (stderr,
|
|
|
"Handler called after returning END_OF_STREAM!\n");
|
|
|
+ abort ();
|
|
|
return MHD_CONTENT_READER_END_WITH_ERROR;
|
|
|
}
|
|
|
|
|
|
@@ -170,7 +171,7 @@ main (int argc, char **argv)
|
|
|
{
|
|
|
curl_easy_cleanup (c);
|
|
|
MHD_stop_daemon (d);
|
|
|
- return 1;
|
|
|
+ return 99;
|
|
|
}
|
|
|
mret = curl_multi_add_handle (multi, c);
|
|
|
if (mret != CURLM_OK)
|
|
|
@@ -178,7 +179,7 @@ main (int argc, char **argv)
|
|
|
curl_multi_cleanup (multi);
|
|
|
curl_easy_cleanup (c);
|
|
|
MHD_stop_daemon (d);
|
|
|
- return 2;
|
|
|
+ return 99;
|
|
|
}
|
|
|
extra = 10;
|
|
|
while ( (c != NULL) || (--extra > 0) )
|
|
|
@@ -198,7 +199,7 @@ main (int argc, char **argv)
|
|
|
curl_multi_cleanup (multi);
|
|
|
curl_easy_cleanup (c);
|
|
|
MHD_stop_daemon (d);
|
|
|
- return 3;
|
|
|
+ return 99;
|
|
|
}
|
|
|
}
|
|
|
if (MHD_YES !=
|
|
|
@@ -231,22 +232,33 @@ main (int argc, char **argv)
|
|
|
curl_multi_perform (multi, &running);
|
|
|
if (running == 0)
|
|
|
{
|
|
|
- msg = curl_multi_info_read (multi, &running);
|
|
|
- if (msg == NULL)
|
|
|
- break;
|
|
|
- if (msg->msg == CURLMSG_DONE)
|
|
|
+ int pending;
|
|
|
+ int curl_fine = 0;
|
|
|
+ while (NULL != (msg = curl_multi_info_read (multi, &pending)))
|
|
|
{
|
|
|
- if (msg->data.result != CURLE_OK)
|
|
|
- printf ("%s failed at %s:%d: `%s'\n",
|
|
|
- "curl_multi_perform",
|
|
|
- __FILE__,
|
|
|
- __LINE__, curl_easy_strerror (msg->data.result));
|
|
|
- curl_multi_remove_handle (multi, c);
|
|
|
- curl_multi_cleanup (multi);
|
|
|
- curl_easy_cleanup (c);
|
|
|
- c = NULL;
|
|
|
- multi = NULL;
|
|
|
+ if (msg->msg != CURLMSG_DONE)
|
|
|
+ {
|
|
|
+ if (msg->data.result != CURLE_OK)
|
|
|
+ fprintf (stderr,
|
|
|
+ "%s failed at %s:%d: `%s'\n",
|
|
|
+ "curl_multi_perform",
|
|
|
+ __FILE__,
|
|
|
+ __LINE__, curl_easy_strerror (msg->data.result));
|
|
|
+ abort ();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ curl_fine = 1;
|
|
|
}
|
|
|
+ if (! curl_fine)
|
|
|
+ {
|
|
|
+ fprintf (stderr, "libcurl haven't returned OK code\n");
|
|
|
+ abort ();
|
|
|
+ }
|
|
|
+ curl_multi_remove_handle (multi, c);
|
|
|
+ curl_multi_cleanup (multi);
|
|
|
+ curl_easy_cleanup (c);
|
|
|
+ c = NULL;
|
|
|
+ multi = NULL;
|
|
|
}
|
|
|
}
|
|
|
MHD_run (d);
|