From 591f667538f599caf822d5d96f489b82aba5c5f0 Mon Sep 17 00:00:00 2001 From: cedric Date: Fri, 1 Apr 2011 16:37:55 +0000 Subject: [PATCH] ecore: Add pipelining support for HTTP 1.1. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@58265 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- ChangeLog | 5 +++++ src/lib/ecore_con/Ecore_Con.h | 4 ++++ src/lib/ecore_con/ecore_con_url.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/ChangeLog b/ChangeLog index d0daefd..31f5fe1 100644 --- a/ChangeLog +++ b/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/src/lib/ecore_con/Ecore_Con.h b/src/lib/ecore_con/Ecore_Con.h index 692d6c5..60c3eba 100644 --- a/src/lib/ecore_con/Ecore_Con.h +++ b/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/src/lib/ecore_con/ecore_con_url.c b/src/lib/ecore_con/ecore_con_url.c index 5df6d98..04b3227 100644 --- a/src/lib/ecore_con/ecore_con_url.c +++ b/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 @@ -242,6 +243,35 @@ ecore_con_url_shutdown(void) } /** + * 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. * * Creates and initializes a new Ecore_Con_Url connection object that can be -- 2.7.4