SUPPORTFILES = first.c test.h
# here are all tools used for running libcurl tests
-noinst_PROGRAMS = lib500 lib501 lib502 lib503 lib504 lib505 lib506
+noinst_PROGRAMS = lib500 lib501 lib502 lib503 lib504 lib505 lib506 lib507
lib500_SOURCES = lib500.c $(SUPPORTFILES)
lib500_LDADD = $(LIBDIR)/libcurl.la
lib506_LDADD = $(LIBDIR)/libcurl.la
lib506_DEPENDENCIES = $(LIBDIR)/libcurl.la
+lib507_SOURCES = lib507.c $(SUPPORTFILES)
+lib507_LDADD = $(LIBDIR)/libcurl.la
+lib507_DEPENDENCIES = $(LIBDIR)/libcurl.la
--- /dev/null
+#include "test.h"
+
+CURLcode test(char *URL)
+{
+ CURL* curls;
+ CURLM* multi;
+ int still_running;
+ int i;
+ CURLMsg *msg;
+
+ multi = curl_multi_init();
+
+ curls=curl_easy_init();
+ curl_easy_setopt(curls, CURLOPT_URL, URL);
+ curl_multi_add_handle(multi, curls);
+
+ while ( CURLM_CALL_MULTI_PERFORM == curl_multi_perform(multi, &still_running) );
+ while(still_running) {
+ struct timeval timeout;
+ int rc;
+ fd_set fdread;
+ fd_set fdwrite;
+ fd_set fdexcep;
+ int maxfd;
+ FD_ZERO(&fdread);
+ FD_ZERO(&fdwrite);
+ FD_ZERO(&fdexcep);
+ timeout.tv_sec = 1;
+ timeout.tv_usec = 0;
+ curl_multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd);
+ rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
+ switch(rc) {
+ case -1:
+ break;
+ case 0:
+ default:
+ while (CURLM_CALL_MULTI_PERFORM == curl_multi_perform(multi, &still_running));
+ break;
+ }
+ }
+ msg = curl_multi_info_read(multi, &still_running);
+ /* this should now contain a result code from the easy handle,
+ get it */
+ i = msg->data.result;
+
+ curl_multi_cleanup(multi);
+ curl_easy_cleanup(curls);
+
+ return i; /* return the final return code */
+}