41 void dump(
const char *text,
42 FILE *stream,
unsigned char *
ptr,
size_t size,
48 unsigned int width = 0x10;
54 fprintf(stream,
"%s, %10.10ld bytes (0x%8.8lx)\n",
55 text, (
long)size, (
long)size);
59 fprintf(stream,
"%4.4lx: ", (
long)i);
63 for(c = 0; c <
width; c++)
65 fprintf(stream,
"%02x ", ptr[i + c]);
70 for(c = 0; (c <
width) && (i + c < size); c++) {
72 if(nohex && (i + c + 1 < size) && ptr[i + c] == 0x0D &&
73 ptr[i + c + 1] == 0x0A) {
78 (ptr[i + c] >= 0x20) && (ptr[i + c]<0x80)?ptr[i + c]:
'.');
80 if(nohex && (i + c + 2 < size) && ptr[i + c + 1] == 0x0D &&
81 ptr[i + c + 2] == 0x0A) {
103 fprintf(stderr,
"== Info: %s", data);
109 text =
"=> Send header";
112 text =
"=> Send data";
115 text =
"<= Recv header";
118 text =
"<= Recv data";
122 dump(text, stderr, data, size,
TRUE);
163 long curl_timeo = -1;
174 if(curl_timeo >= 0) {
175 timeout.
tv_sec = curl_timeo / 1000;
179 timeout.
tv_usec = (curl_timeo % 1000) * 1000;
186 fprintf(stderr,
"curl_multi_fdset() failed, code %d.\n", mc);
202 struct timeval wait = { 0, 100 * 1000 };
203 rc = select(0, NULL, NULL, NULL, &wait);
209 rc = select(maxfd + 1, &fdread, &fdwrite, &fdexcep, &timeout);
216 printf(
"select() returns error, this is badness\n");
224 }
while(still_running);
CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, fd_set *read_fd_set, fd_set *write_fd_set, fd_set *exc_fd_set, int *max_fd)
CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, CURL *curl_handle)
CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles)
CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, long *milliseconds)
UNITTEST_START char * ptr
static int my_trace(CURL *handle, curl_infotype type, unsigned char *data, size_t size, void *userp)
#define curl_easy_setopt(handle, option, value)
CURL_EXTERN CURLM * curl_multi_init(void)
static CURLM * multi_handle
CURL_EXTERN CURL * curl_easy_init(void)
CURL_EXTERN void curl_easy_cleanup(CURL *curl)
static void dump(const char *text, FILE *stream, unsigned char *ptr, size_t size, bool nohex)
CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle)