ecore_con_url: implement transfer speed limitation options

Summary: Add MAX_SEND_SPEED & MAX_RECV_SPEED cURL options handling in ecore_con_url.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5848

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
Arnaud Ferraris 2018-03-26 16:01:50 -07:00 committed by Cedric BAIL
parent 86ae239bae
commit fcadb54640
3 changed files with 47 additions and 0 deletions

View File

@ -2366,6 +2366,23 @@ EAPI void ecore_con_url_timeout_set(Ecore_Con_Url *url_con, double timeout);
* @since 1.2
*/
EAPI int ecore_con_url_status_code_get(Ecore_Con_Url *url_con);
/**
* @brief Sets a maximum upload speed.
*
* @param url_con Connection object
* @param max_speed Maximum upload speed, in bytes per second
*/
EAPI void ecore_con_url_limit_upload_speed(Ecore_Con_Url *url_obj, off_t max_speed);
/**
* @brief Sets a maximum download speed.
*
* @param url_con Connection object
* @param max_speed Maximum download speed, in bytes per second
*/
EAPI void ecore_con_url_limit_download_speed(Ecore_Con_Url *url_obj, off_t max_speed);
/**
* @}
*/

View File

@ -1221,6 +1221,34 @@ ecore_con_url_ftp_use_epsv_set(Ecore_Con_Url *url_con,
url_con->ftp_use_epsv = use_epsv;
}
EAPI void
ecore_con_url_limit_upload_speed(Ecore_Con_Url *url_con, off_t max_speed)
{
CURL *curl_easy;
ECORE_CON_URL_CHECK_RETURN(url_con);
EINA_SAFETY_ON_NULL_RETURN(_c);
curl_easy = efl_net_dialer_http_curl_get(url_con->dialer);
EINA_SAFETY_ON_NULL_RETURN(curl_easy);
_c->curl_easy_setopt(curl_easy, CURLOPT_MAX_SEND_SPEED_LARGE, max_speed);
}
EAPI void
ecore_con_url_limit_download_speed(Ecore_Con_Url *url_con, off_t max_speed)
{
CURL *curl_easy;
ECORE_CON_URL_CHECK_RETURN(url_con);
EINA_SAFETY_ON_NULL_RETURN(_c);
curl_easy = efl_net_dialer_http_curl_get(url_con->dialer);
EINA_SAFETY_ON_NULL_RETURN(curl_easy);
_c->curl_easy_setopt(curl_easy, CURLOPT_MAX_RECV_SPEED_LARGE, max_speed);
}
/* LEGACY: proxy */
EAPI Eina_Bool
ecore_con_url_proxy_password_set(Ecore_Con_Url *url_con, const char *password)

View File

@ -268,6 +268,8 @@ typedef enum
CINIT(INFILESIZE_LARGE, OFF_T, 115),
CINIT(POSTFIELDSIZE_LARGE, OFF_T, 120),
CINIT(COOKIELIST, OBJECTPOINT, 135),
CINIT(MAX_SEND_SPEED_LARGE, OFF_T, 145),
CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146),
CINIT(OPENSOCKETFUNCTION, FUNCTIONPOINT, 163),
CINIT(OPENSOCKETDATA, OBJECTPOINT, 164),
CINIT(CRLFILE, STRINGPOINT, 169),