mirror of
https://git.gnunet.org/libmicrohttpd.git
synced 2026-09-28 04:09:31 +03:00
test_callback: improved test
Added detection of curl reported errors, Added check that data was sent.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user