int err = errno;
ERR("Failed to add poll on fd %d (errno = %d: %s)!", fd, err, strerror(err));
free(fdh);
+ fdh = NULL;
goto unlock;
}
fdh->read_active = EINA_FALSE;
* FIXME: Check that these timeouts are sensible defaults
* FIXME: Provide a means to change these timeouts
*/
- curl_easy_setopt(url_con->curl_easy, CURLOPT_MAXCONNECTS, 100);
curl_easy_setopt(url_con->curl_easy, CURLOPT_FORBID_REUSE, 1);
curl_easy_setopt(url_con->curl_easy, CURLOPT_CONNECTTIMEOUT, 30);
curl_easy_setopt(url_con->curl_easy, CURLOPT_FOLLOWLOCATION, 1);
url_con->active = EINA_TRUE;
curl_multi_add_handle(_curlm, url_con->curl_easy);
curl_multi_perform(_curlm, &still_running);
-
+
completed_immediately = _ecore_con_url_process_completed_jobs(url_con);
if (!completed_immediately)
job->progress_cb = progress_cb;
_job_list = eina_list_append(_job_list, job);
- ecore_con_url_get(job->url_con);
+ if (!ecore_con_url_get(job->url_con))
+ {
+ ecore_con_url_free(job->url_con);
+ _job_list = eina_list_remove(_job_list, job);
+ fclose(job->file);
+ free(job->dst);
+ free(job);
+ return NULL;
+ }
return job;
}