diff --git a/legacy/ecore/ChangeLog b/legacy/ecore/ChangeLog index d0daefdf07..31f5fe13e3 100644 --- a/legacy/ecore/ChangeLog +++ b/legacy/ecore/ChangeLog @@ -108,3 +108,8 @@ * Ecore_X gains some more x sync counter controls and Ecore_Evas now uses the netwm sync protocol to get wm's to only configure as fast as it can keep drawing. + +2011-04-01 Cedric Bail + + * Add ecore_con_url_pipeline_set and ecore_con_url_pipeline_get for HTTP 1.1 + pipelining support. diff --git a/legacy/ecore/src/lib/ecore_con/Ecore_Con.h b/legacy/ecore/src/lib/ecore_con/Ecore_Con.h index 692d6c5d5a..60c3ebacf3 100644 --- a/legacy/ecore/src/lib/ecore_con/Ecore_Con.h +++ b/legacy/ecore/src/lib/ecore_con/Ecore_Con.h @@ -525,6 +525,10 @@ typedef enum _Ecore_Con_Url_Time EAPI int ecore_con_url_init(void); EAPI int ecore_con_url_shutdown(void); + +EAPI void ecore_con_url_pipeline_set(Eina_Bool enable); +EAPI Eina_Bool ecore_con_url_pipeline_get(void); + EAPI Ecore_Con_Url * ecore_con_url_new(const char *url); EAPI Ecore_Con_Url * ecore_con_url_custom_new(const char *url, const char *custom_request); diff --git a/legacy/ecore/src/lib/ecore_con/ecore_con_url.c b/legacy/ecore/src/lib/ecore_con/ecore_con_url.c index 5df6d986c1..04b3227fb2 100644 --- a/legacy/ecore/src/lib/ecore_con/ecore_con_url.c +++ b/legacy/ecore/src/lib/ecore_con/ecore_con_url.c @@ -96,6 +96,7 @@ static CURLM *_curlm = NULL; static fd_set _current_fd_set; static int _init_count = 0; static Ecore_Timer *_curl_timeout = NULL; +static Eina_Bool pipelining = EINA_FALSE; typedef struct _Ecore_Con_Url_Event Ecore_Con_Url_Event; struct _Ecore_Con_Url_Event @@ -241,6 +242,35 @@ ecore_con_url_shutdown(void) return 1; } +/** + * Enable or disable HTTP 1.1 pipelining. + * @param enable EINA_TRUE will turn it on, EINA_FALSE will disable it. + */ +EAPI void +ecore_con_url_pipeline_set(Eina_Bool enable) +{ +#ifdef HAVE_CURL + if (enable) + curl_multi_setopt(_curlm, CURLMOPT_PIPELINING, 1); + else + curl_multi_setopt(_curlm, CURLMOPT_PIPELINING, 1); + pipelining = enable; +#endif +} + +/** + * Is HTTP 1.1 pipelining enable ? + * @return EINA_TRUE if it is enable. + */ +EAPI Eina_Bool +ecore_con_url_pipeline_get(void) +{ +#ifdef HAVE_CURL + return pipelining; +#endif + return EINA_FALSE; +} + /** * Creates and initializes a new Ecore_Con_Url connection object. *