cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fcadb546401aea56c6ef2b257903ad06fe9f28ce

commit fcadb546401aea56c6ef2b257903ad06fe9f28ce
Author: Arnaud Ferraris <arnaud.ferra...@gmail.com>
Date:   Mon Mar 26 16:01:50 2018 -0700

    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 <ced...@osg.samsung.com>
---
 src/lib/ecore_con/Ecore_Con.h          | 17 +++++++++++++++++
 src/lib/ecore_con/ecore_con_url.c      | 28 ++++++++++++++++++++++++++++
 src/lib/ecore_con/ecore_con_url_curl.h |  2 ++
 3 files changed, 47 insertions(+)

diff --git a/src/lib/ecore_con/Ecore_Con.h b/src/lib/ecore_con/Ecore_Con.h
index e5916b1b69..d5d6758acb 100644
--- a/src/lib/ecore_con/Ecore_Con.h
+++ b/src/lib/ecore_con/Ecore_Con.h
@@ -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);
+
 /**
  * @}
  */
diff --git a/src/lib/ecore_con/ecore_con_url.c 
b/src/lib/ecore_con/ecore_con_url.c
index e8ca8c4cdf..6a9d06d582 100644
--- a/src/lib/ecore_con/ecore_con_url.c
+++ b/src/lib/ecore_con/ecore_con_url.c
@@ -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)
diff --git a/src/lib/ecore_con/ecore_con_url_curl.h 
b/src/lib/ecore_con/ecore_con_url_curl.h
index ae79c4c5cb..ed68e5c4f4 100644
--- a/src/lib/ecore_con/ecore_con_url_curl.h
+++ b/src/lib/ecore_con/ecore_con_url_curl.h
@@ -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),

-- 


Reply via email to