This signature change follows libcurl's behaviour more closely: CURLOPT_POSTFIELDSIZE expects a long, and a value of -1 means that content length calculation is forwarded to libcurl, which performs a strlen() on CURLOPT_POSTFIELD. --- src/lib/ecore_con/Ecore_Con.h | 2 +- src/lib/ecore_con/ecore_con_url.c | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/src/lib/ecore_con/Ecore_Con.h b/src/lib/ecore_con/Ecore_Con.h index 7d9ca12..201986d 100644 --- a/src/lib/ecore_con/Ecore_Con.h +++ b/src/lib/ecore_con/Ecore_Con.h @@ -481,7 +481,7 @@ EAPI Eina_Bool ecore_con_url_httpauth_set(Ecore_Con_Url *url_con, const char *password, Eina_Bool safe); EAPI Eina_Bool ecore_con_url_send(Ecore_Con_Url *url_con, - const void *data, size_t length, + const void *data, long length, const char *content_type); EAPI void ecore_con_url_time(Ecore_Con_Url *url_con, Ecore_Con_Url_Time condition, diff --git a/src/lib/ecore_con/ecore_con_url.c b/src/lib/ecore_con/ecore_con_url.c index 73a8519..3c60253 100644 --- a/src/lib/ecore_con/ecore_con_url.c +++ b/src/lib/ecore_con/ecore_con_url.c @@ -785,13 +785,13 @@ ecore_con_url_httpauth_set(Ecore_Con_Url *url_con, const char *username, * * @param url_con Connection object to perform a request on, previously created * with ecore_con_url_new() or ecore_con_url_custom_new(). - * @param data Payload (data sent on the request) - * @param length Payload length + * @param data Payload (data sent on the request) + * @param length Payload length. If @c -1, rely on automatic length + * calculation via @c strlen() on @p data. * @param content_type Content type of the payload (e.g. text/xml) * * @return #EINA_TRUE on success, #EINA_FALSE on error. * - * * @see ecore_con_url_custom_new() * @see ecore_con_url_additional_headers_clear() * @see ecore_con_url_additional_header_add() @@ -800,7 +800,7 @@ ecore_con_url_httpauth_set(Ecore_Con_Url *url_con, const char *username, * @see ecore_con_url_response_headers_get() */ EAPI Eina_Bool -ecore_con_url_send(Ecore_Con_Url *url_con, const void *data, size_t length, +ecore_con_url_send(Ecore_Con_Url *url_con, const void *data, long length, const char *content_type) { #ifdef HAVE_CURL @@ -830,17 +830,14 @@ ecore_con_url_send(Ecore_Con_Url *url_con, const void *data, size_t length, if (data) { - curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDS, data); - curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDSIZE, length); - - if (content_type && (strlen(content_type) < 200)) + if ((content_type) && (strlen(content_type) < 200)) { - sprintf(tmp, "Content-type: %s", content_type); + snprintf(tmp, sizeof(tmp), "Content-Type: %s", content_type); url_con->headers = curl_slist_append(url_con->headers, tmp); } - sprintf(tmp, "Content-length: %zu", length); - url_con->headers = curl_slist_append(url_con->headers, tmp); + curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDS, data); + curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDSIZE, length); } switch (url_con->condition) -- 1.7.3.1 ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel