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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel