/* Called by libevent when we get action on a multi socket filedescriptor */
static void event_cb(struct GlobalInfo *g, int fd, int revents)
{
- CURLMcode rc;
+ CURLMcode mresult;
struct itimerspec its;
int action = ((revents & EPOLLIN) ? CURL_CSELECT_IN : 0) |
- ((revents & EPOLLOUT) ? CURL_CSELECT_OUT : 0);
+ ((revents & EPOLLOUT) ? CURL_CSELECT_OUT : 0);
- rc = curl_multi_socket_action(g->multi, fd, action, &g->still_running);
- mcode_or_die("event_cb: curl_multi_socket_action", rc);
+ mresult = curl_multi_socket_action(g->multi, fd, action, &g->still_running);
+ mcode_or_die("event_cb: curl_multi_socket_action", mresult);
check_multi_info(g);
if(g->still_running <= 0) {
/* Called by main loop when our timeout expires */
static void timer_cb(struct GlobalInfo *g, int revents)
{
- CURLMcode rc;
+ CURLMcode mresult;
uint64_t count = 0;
ssize_t err = 0;
perror("read(tfd)");
}
- rc = curl_multi_socket_action(g->multi,
+ mresult = curl_multi_socket_action(g->multi,
CURL_SOCKET_TIMEOUT, 0, &g->still_running);
- mcode_or_die("timer_cb: curl_multi_socket_action", rc);
+ mcode_or_die("timer_cb: curl_multi_socket_action", mresult);
check_multi_info(g);
}
static void new_conn(const char *url, struct GlobalInfo *g)
{
struct ConnInfo *conn;
- CURLMcode rc;
+ CURLMcode mresult;
conn = (struct ConnInfo *)calloc(1, sizeof(*conn));
conn->error[0] = '\0';
curl_easy_setopt(conn->curl, CURLOPT_LOW_SPEED_LIMIT, 10L);
fprintf(MSG_OUT, "Adding easy %p to multi %p (%s)\n",
conn->curl, g->multi, url);
- rc = curl_multi_add_handle(g->multi, conn->curl);
- mcode_or_die("new_conn: curl_multi_add_handle", rc);
+ mresult = curl_multi_add_handle(g->multi, conn->curl);
+ mcode_or_die("new_conn: curl_multi_add_handle", mresult);
/* note that the add_handle() sets a timeout to trigger soon so that the
* necessary socket_action() call gets called by this app */
static void event_cb(EV_P_ struct ev_io *w, int revents)
{
struct GlobalInfo *g;
- CURLMcode rc;
+ CURLMcode mresult;
int action;
printf("%s w %p revents %i\n", __PRETTY_FUNCTION__, (void *)w, revents);
action = ((revents & EV_READ) ? CURL_POLL_IN : 0) |
((revents & EV_WRITE) ? CURL_POLL_OUT : 0);
- rc = curl_multi_socket_action(g->multi, w->fd, action, &g->still_running);
- mcode_or_die("event_cb: curl_multi_socket_action", rc);
+ mresult = curl_multi_socket_action(g->multi, w->fd, action, &g->still_running);
+ mcode_or_die("event_cb: curl_multi_socket_action", mresult);
check_multi_info(g);
if(g->still_running <= 0) {
fprintf(MSG_OUT, "last transfer done, kill timeout\n");
static void timer_cb(EV_P_ struct ev_timer *w, int revents)
{
struct GlobalInfo *g;
- CURLMcode rc;
+ CURLMcode mresult;
printf("%s w %p revents %i\n", __PRETTY_FUNCTION__, (void *)w, revents);
g = (struct GlobalInfo *)w->data;
- rc = curl_multi_socket_action(g->multi, CURL_SOCKET_TIMEOUT, 0,
+ mresult = curl_multi_socket_action(g->multi, CURL_SOCKET_TIMEOUT, 0,
&g->still_running);
- mcode_or_die("timer_cb: curl_multi_socket_action", rc);
+ mcode_or_die("timer_cb: curl_multi_socket_action", mresult);
check_multi_info(g);
}
static void new_conn(const char *url, struct GlobalInfo *g)
{
struct ConnInfo *conn;
- CURLMcode rc;
+ CURLMcode mresult;
conn = calloc(1, sizeof(*conn));
conn->error[0] = '\0';
fprintf(MSG_OUT, "Adding easy %p to multi %p (%s)\n",
conn->curl, g->multi, url);
- rc = curl_multi_add_handle(g->multi, conn->curl);
- mcode_or_die("new_conn: curl_multi_add_handle", rc);
+ mresult = curl_multi_add_handle(g->multi, conn->curl);
+ mcode_or_die("new_conn: curl_multi_add_handle", mresult);
/* note that add_handle() sets a timeout to trigger soon so that the
necessary socket_action() gets called */
static gboolean timer_cb(gpointer data)
{
struct GlobalInfo *g = (struct GlobalInfo *)data;
- CURLMcode rc;
+ CURLMcode mresult;
- rc = curl_multi_socket_action(g->multi,
+ mresult = curl_multi_socket_action(g->multi,
CURL_SOCKET_TIMEOUT, 0, &g->still_running);
- mcode_or_die("timer_cb: curl_multi_socket_action", rc);
+ mcode_or_die("timer_cb: curl_multi_socket_action", mresult);
check_multi_info(g);
return FALSE;
}
static gboolean event_cb(GIOChannel *ch, GIOCondition condition, gpointer data)
{
struct GlobalInfo *g = (struct GlobalInfo *)data;
- CURLMcode rc;
+ CURLMcode mresult;
int fd = g_io_channel_unix_get_fd(ch);
int action =
((condition & G_IO_IN) ? CURL_CSELECT_IN : 0) |
((condition & G_IO_OUT) ? CURL_CSELECT_OUT : 0);
- rc = curl_multi_socket_action(g->multi, fd, action, &g->still_running);
- mcode_or_die("event_cb: curl_multi_socket_action", rc);
+ mresult = curl_multi_socket_action(g->multi, fd, action, &g->still_running);
+ mcode_or_die("event_cb: curl_multi_socket_action", mresult);
check_multi_info(g);
if(g->still_running) {
static void new_conn(const char *url, struct GlobalInfo *g)
{
struct ConnInfo *conn;
- CURLMcode rc;
+ CURLMcode mresult;
conn = g_malloc0(sizeof(*conn));
conn->error[0] = '\0';
curl_easy_setopt(conn->curl, CURLOPT_LOW_SPEED_TIME, 30L);
MSG_OUT("Adding easy %p to multi %p (%s)\n", conn->curl, g->multi, url);
- rc = curl_multi_add_handle(g->multi, conn->curl);
- mcode_or_die("new_conn: curl_multi_add_handle", rc);
+ mresult = curl_multi_add_handle(g->multi, conn->curl);
+ mcode_or_die("new_conn: curl_multi_add_handle", mresult);
/* note that add_handle() sets a timeout to trigger soon so that the
necessary socket_action() gets called */
static void event_cb(int fd, short kind, void *userp)
{
struct GlobalInfo *g = (struct GlobalInfo *)userp;
- CURLMcode rc;
+ CURLMcode mresult;
int action =
((kind & EV_READ) ? CURL_CSELECT_IN : 0) |
((kind & EV_WRITE) ? CURL_CSELECT_OUT : 0);
- rc = curl_multi_socket_action(g->multi, fd, action, &g->still_running);
- mcode_or_die("event_cb: curl_multi_socket_action", rc);
+ mresult = curl_multi_socket_action(g->multi, fd, action, &g->still_running);
+ mcode_or_die("event_cb: curl_multi_socket_action", mresult);
check_multi_info(g);
if(g->still_running <= 0) {
static void timer_cb(int fd, short kind, void *userp)
{
struct GlobalInfo *g = (struct GlobalInfo *)userp;
- CURLMcode rc;
+ CURLMcode mresult;
(void)fd;
(void)kind;
- rc = curl_multi_socket_action(g->multi,
+ mresult = curl_multi_socket_action(g->multi,
CURL_SOCKET_TIMEOUT, 0, &g->still_running);
- mcode_or_die("timer_cb: curl_multi_socket_action", rc);
+ mcode_or_die("timer_cb: curl_multi_socket_action", mresult);
check_multi_info(g);
}
static void new_conn(const char *url, struct GlobalInfo *g)
{
struct ConnInfo *conn;
- CURLMcode rc;
+ CURLMcode mresult;
conn = calloc(1, sizeof(*conn));
conn->error[0] = '\0';
curl_easy_setopt(conn->curl, CURLOPT_FOLLOWLOCATION, 1L);
fprintf(MSG_OUT, "Adding easy %p to multi %p (%s)\n",
conn->curl, g->multi, url);
- rc = curl_multi_add_handle(g->multi, conn->curl);
- mcode_or_die("new_conn: curl_multi_add_handle", rc);
+ mresult = curl_multi_add_handle(g->multi, conn->curl);
+ mcode_or_die("new_conn: curl_multi_add_handle", mresult);
/* note that the add_handle() sets a time-out to trigger soon so that
the necessary socket_action() gets called */
curl_multi_setopt(multi, CURLMOPT_PIPELINING, CURLPIPE_MULTIPLEX);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
} while(still_running);
int still_running; /* keep number of running handles */
int rc;
- CURLMcode mcode = curl_multi_perform(multi, &still_running);
- if(mcode)
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
+ if(mresult)
break;
- mcode = curl_multi_wait(multi, NULL, 0, 1000, &rc);
- if(mcode)
+ mresult = curl_multi_wait(multi, NULL, 0, 1000, &rc);
+ if(mresult)
break;
/*
do {
struct CURLMsg *m;
int still_running; /* keep number of running handles */
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
/*
curl_multi_setopt(multi, CURLMOPT_MAX_HOST_CONNECTIONS, 1L);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
} while(still_running);
curl_multi_add_handle(multi, curl);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
} while(still_running);
curl_multi_add_handle(multi, curl[i]);
while(still_running) {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
}
curl_multi_add_handle(multi, curl);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
} while(still_running);
CURLMsg *msg;
int queued;
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
do {
curl_multi_add_handle(multi, curl);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
} while(still_running);
struct timeval timeout;
int rc; /* select() return code */
- CURLMcode mc; /* curl_multi_fdset() return code */
+ CURLMcode mresult; /* curl_multi_fdset() return code */
fd_set fdread;
fd_set fdwrite;
}
/* get file descriptors from the transfers */
- mc = curl_multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd);
+ mresult = curl_multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd);
- if(mc != CURLM_OK) {
- fprintf(stderr, "curl_multi_fdset() failed, code %d.\n", mc);
+ if(mresult != CURLM_OK) {
+ fprintf(stderr, "curl_multi_fdset() failed, code %d.\n", mresult);
break;
}
curl_multi_add_handle(multi, curl);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
} while(still_running);
curl_multi_add_handle(multi, curl);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
- if(!mc)
+ if(!mresult)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc) {
- fprintf(stderr, "curl_multi_poll() failed, code %d.\n", (int)mc);
+ if(mresult) {
+ fprintf(stderr, "curl_multi_poll() failed, code %d.\n", (int)mresult);
break;
}
curl_multi_add_handle(multi, curl);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
} while(still_running);
curl_multi_add_handle(multi, curl);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
if(still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc)
+ if(mresult)
break;
} while(still_running);
curl_socket_t fd = 0; /* file descriptor to associate our data with */
/* make our struct pointer associated with socket fd */
- CURLMcode mc = curl_multi_assign(multi, fd, &private);
- if(mc)
- printf("error: %s\n", curl_multi_strerror(mc));
+ CURLMcode mresult = curl_multi_assign(multi, fd, &private);
+ if(mresult)
+ printf("error: %s\n", curl_multi_strerror(mresult));
}
~~~
fd_set fdexcep;
int maxfd;
int rc;
- CURLMcode mc;
+ CURLMcode mresult;
struct timeval timeout = { 1, 0 };
CURLM *multi = curl_multi_init();
FD_ZERO(&fdexcep);
/* get file descriptors from the transfers */
- mc = curl_multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd);
+ mresult = curl_multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd);
- if(mc != CURLM_OK) {
- fprintf(stderr, "curl_multi_fdset() failed, code %d.\n", mc);
+ if(mresult != CURLM_OK) {
+ fprintf(stderr, "curl_multi_fdset() failed, code %d.\n", mresult);
break;
}
/* wait for activity on one of the sockets */
rc = select(maxfd + 1, &fdread, &fdwrite, &fdexcep, &timeout);
- } while(!mc);
+ } while(!mresult);
}
~~~
if(curl) {
curl_multi_add_handle(multi, curl);
do {
- CURLMcode mc = curl_multi_perform(multi, &still_running);
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
- if(!mc && still_running)
+ if(!mresult && still_running)
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_poll(multi, NULL, 0, 1000, NULL);
+ mresult = curl_multi_poll(multi, NULL, 0, 1000, NULL);
- if(mc) {
- fprintf(stderr, "curl_multi_poll() failed, code %d.\n", (int)mc);
+ if(mresult) {
+ fprintf(stderr, "curl_multi_poll() failed, code %d.\n", (int)mresult);
break;
}
curl_multi_add_handle(multi_handle, easy_handle);
do {
- CURLMcode mc;
+ CURLMcode mresult;
int numfds;
- mc = curl_multi_perform(multi_handle, &still_running);
+ mresult = curl_multi_perform(multi_handle, &still_running);
- if(mc == CURLM_OK) {
+ if(mresult == CURLM_OK) {
struct curl_waitfd myown;
myown.fd = myfd;
myown.events = CURL_WAIT_POLLIN; /* wait for input */
/* wait for activity on curl's descriptors or on our own,
or timeout */
- mc = curl_multi_poll(multi_handle, &myown, 1, 1000, &numfds);
+ mresult = curl_multi_poll(multi_handle, &myown, 1, 1000, &numfds);
if(myown.revents) {
/* did our descriptor receive an event? */
}
}
- if(mc != CURLM_OK) {
- fprintf(stderr, "curl_multi failed, code %d.\n", mc);
+ if(mresult != CURLM_OK) {
+ fprintf(stderr, "curl_multi failed, code %d.\n", mresult);
break;
}
CURLM *multi = curl_multi_init();
- CURLMcode mc = curl_multi_socket_action(multi, fd, bitmask, &running);
- if(mc)
- printf("error: %s\n", curl_multi_strerror(mc));
+ CURLMcode mresult = curl_multi_socket_action(multi, fd, bitmask, &running);
+ if(mresult)
+ printf("error: %s\n", curl_multi_strerror(mresult));
}
~~~
int still_running;
CURLM *multi = curl_multi_init();
- CURLMcode mc = curl_multi_perform(multi, &still_running);
- if(mc)
- printf("error: %s\n", curl_multi_strerror(mc));
+ CURLMcode mresult = curl_multi_perform(multi, &still_running);
+ if(mresult)
+ printf("error: %s\n", curl_multi_strerror(mresult));
}
~~~
curl_multi_add_handle(multi, easy);
do {
- CURLMcode mc;
+ CURLMcode mresult;
int numfds;
- mc = curl_multi_perform(multi, &still_running);
+ mresult = curl_multi_perform(multi, &still_running);
- if(mc == CURLM_OK) {
+ if(mresult == CURLM_OK) {
/* wait for activity, timeout or "nothing" */
- mc = curl_multi_wait(multi, NULL, 0, 1000, &numfds);
+ mresult = curl_multi_wait(multi, NULL, 0, 1000, &numfds);
}
- if(mc != CURLM_OK) {
- fprintf(stderr, "curl_multi failed, code %d.\n", mc);
+ if(mresult != CURLM_OK) {
+ fprintf(stderr, "curl_multi failed, code %d.\n", mresult);
break;
}
int main(void)
{
- CURLMcode mc;
+ CURLMcode mresult;
struct curl_waitfd *ufds;
CURLM *multi = curl_multi_init();
/* get the count of file descriptors from the transfers */
unsigned int fd_count = 0;
- mc = curl_multi_waitfds(multi, NULL, 0, &fd_count);
+ mresult = curl_multi_waitfds(multi, NULL, 0, &fd_count);
- if(mc != CURLM_OK) {
- fprintf(stderr, "curl_multi_waitfds() failed, code %d.\n", mc);
+ if(mresult != CURLM_OK) {
+ fprintf(stderr, "curl_multi_waitfds() failed, code %d.\n", mresult);
break;
}
ufds = malloc(fd_count * sizeof(struct curl_waitfd));
/* get wait descriptors from the transfers and put them into array. */
- mc = curl_multi_waitfds(multi, ufds, fd_count, &fd_count);
+ mresult = curl_multi_waitfds(multi, ufds, fd_count, &fd_count);
- if(mc != CURLM_OK) {
- fprintf(stderr, "curl_multi_waitfds() failed, code %d.\n", mc);
+ if(mresult != CURLM_OK) {
+ fprintf(stderr, "curl_multi_waitfds() failed, code %d.\n", mresult);
free(ufds);
break;
}
/* Do polling on descriptors in ufds */
free(ufds);
- } while(!mc);
+ } while(!mresult);
}
~~~
/* this is thread 1 */
do {
- CURLMcode mc;
+ CURLMcode mresult;
int numfds;
- mc = curl_multi_perform(multi, &still_running);
+ mresult = curl_multi_perform(multi, &still_running);
- if(mc == CURLM_OK) {
+ if(mresult == CURLM_OK) {
/* wait for activity, timeout or wakeup */
- mc = curl_multi_poll(multi, NULL, 0, 10000, &numfds);
+ mresult = curl_multi_poll(multi, NULL, 0, 10000, &numfds);
}
if(time_to_die())